# US 11,451,841 B2 · Content feed delivery system and method

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,451,841 B2
- Document ID: US11451841B2
- Status: Granted
- Kind: B2
- Application number: 17/111,086
- Filed: 2020-12-03
- Published: 2022-06-09
- Granted: 2022-09-20
- Earliest claimed: 2020-12-03
- Assignees: Avast Software s.r.o.
- Applicants: Avast Software s.r.o.
- Inventors: B{hacek over (r)}etislav {hacek over (S)}opik
- Web page: https://patentgrep.com/patent/US11451841B2

## CPC

- H04N 21/2407: {Monitoring of transmitted content, e.g. distribution time, number of downloads (arrangements for monitoring programmes for broadcast or for distribution combined with broadcast H04H20/14)}
- H04N 21/252: {Processing of multiple end-users' preferences to derive collaborative data}
- G06Q 30/02: Marketing; Price estimation or determination; Fundraising
- G06Q 50/00: Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism (healthcare informatics G16H)
- H04L 65/612: for unicast
- H04N 21/2408: {Monitoring of the upstream path of the transmission network, e.g. client requests (monitoring data switching networks utilization H04L43/0876; scheduling or organising the servicing of application requests H04L67/60)}
- H04N 21/25841: {involving the geographical location of the client (retrieval from the Internet by querying based on geographical locations G06F16/9537; arrangements for identifying locations of receiving stations in broadcast systems H04H60/51; location of the user terminal in data switching networks H04L67/52; services making use of the location of users or terminals in wireless networks H04W4/02; locating users or terminals in wireless networks H04W64/00)}
- H04N 21/26603: {for automatically generating descriptors from content, e.g. when it is not made available by its provider, using content analysis techniques}
- H04N 21/2668: Creating a channel for a dedicated end-user group, e.g. insertion of targeted commercials based on end-user profiles {(information retrieval from the Internet by querying with filtering and personalisation G06F16/9535; arrangements for replacing or switching information during the broadcast H04H20/10; push services over packet-switching network H04L12/1859; adaptation of message content in packet-switching networks H04L51/063)}
- H04N 21/47202: {for requesting content on demand, e.g. video on demand}
- H04N 21/6125: {involving transmission via Internet (transmission by internet of broadcast information H04H60/82)}
- H04N 21/84: Generation or processing of descriptive data, e.g. content descriptors {(systems specially adapted for using meta-information in broadcast systems H04H60/73)}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method of providing a content feed. The method includes monitoring a plurality of user content streams of a plurality of users on a plurality of computing devices, the plurality of user content streams including a plurality of content instances accessible via a network. A plurality of archetypes are generated based on the plurality of user content streams. A selection of a particular archetype of the plurality of archetypes from a particular user is received on a particular computing device. A particular content stream is determined based on the particular archetype, and the particular content stream is delivered to the particular user via the particular computing device.

## Claims

### Claim 1

A method of providing a content feed comprising:
monitoring a plurality of user content streams of a plurality of users on a plurality of computing devices, the plurality of user content streams comprising a plurality of content instances accessible via a network;
generating a plurality of archetypes based on the plurality of user content streams, wherein the plurality of archetypes comprise a plurality of weighted lists comprising the plurality of content instances;
receiving a selection of a particular archetype of the plurality of archetypes from a particular user on a particular computing device;
generating a first vector representing the particular archetype based on the plurality of archetypes;
determining at least one particular content instance of the plurality of content instances available via a platform, the plurality of weighted lists comprising weights of the at least one particular content instance in the plurality of archetypes;
generating a second vector based on the weights of the at least one particular content instance in the plurality of archetypes;
determining a similarity of the first vector and the second vector;
determining a particular content stream including the at least one particular content instance based on the determined similarity of the first vector and the second vector; and
delivering the particular content stream to the particular user via the particular computing device.

### Claim 2 (depends on 1)

The method of claim 1, the method further comprising detecting the platform based on an access by the particular user to the platform via the network.

### Claim 3 (depends on 1)

The method of claim 1, the method further comprising detecting the platform based on a selection by the particular user of the platform via the network.

### Claim 4 (depends on 1)

The method of claim 1, further comprising applying a latent dirichlet allocation (“LDA”) algorithm to the plurality of user content streams to generate the plurality of archetypes.

### Claim 5 (depends on 1)

The method of claim 1, wherein:
the first vector comprises a first plurality of variables of a quantity equal to a number of the plurality of archetypes, wherein the first plurality of variables comprise a certain variable corresponding to the particular archetype and other variables corresponding to other archetypes of the plurality of archetypes, and wherein the certain variable is equal to one (1) and the other variables are equal to zero (0); and
the second vector comprises a second plurality of variables of the quantity equal to the number of the plurality of archetypes, wherein each of the second plurality of variables corresponds to a particular weight of the at least one particular content instance at a respective one of the plurality of archetypes, and wherein the sum of the second plurality of variables is equal to one (1).

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
determining a plurality of labels of the plurality of archetypes based on the plurality of weighted lists comprising the plurality of content instances; and
receiving the selection of the particular archetype from the particular user as a selection of a particular label of the plurality of labels.

### Claim 7 (depends on 1)

The method of claim 1, the plurality of content instances comprising at least one of video data, photographic data, or text data.

### Claim 8 (depends on 1)

The method of claim 1, the plurality of content instances comprising at least one of news reports or social media posts.

### Claim 9 (depends on 1)

The method of claim 1, further comprising monitoring the plurality of user content streams of the plurality of users on the plurality of computing devices via a browser extension executed on each of the plurality of computing devices.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
enabling a plurality of monitoring agents on the plurality of computing devices; and
monitoring the plurality of user content streams of the plurality of users on the plurality of computing devices via the plurality of monitoring agents.

### Claim 11 (depends on 1)

The method of claim 1, wherein the plurality of user content streams comprise a plurality of network destinations.

### Claim 12 (depends on 1)

The method of claim 1, further comprising:
receiving a selection of a particular feed type from the particular user on the particular computing device; and
determining the particular content stream further based on the particular feed type.

### Claim 13 (depends on 12)

The method of claim 12, wherein the particular feed type comprises a particular content platform.

### Claim 14 (depends on 1)

The method of claim 1, further comprising:
determining a plurality of geographic locations of the plurality of computing devices; and
associating the plurality of geographic locations respectively with the plurality of archetypes.

### Claim 15 (depends on 14)

The method of claim 14, further comprising:
receiving a selection of a particular geographic region from the particular user on the particular computing device; and
determining the particular content stream further based on the particular geographic region.

### Claim 16 (depends on 1)

The method of claim 1, further comprising:
applying a plurality of labels to the plurality of archetypes based on the plurality of user content streams; and
receiving the selection of the particular archetype from the particular user as a selection of a particular label of the plurality of labels.

### Claim 17

A method of providing a content feed comprising:
monitoring a plurality of user content streams of a plurality of users on a plurality of computing devices, the plurality of user content streams comprising a plurality of content instances accessible via a network;
generating a plurality of archetypes based on the plurality of user content streams, wherein the plurality of archetypes comprise a plurality of weighted lists comprising the plurality of content instances;
receiving a selection of a particular archetype of the plurality of archetypes from a particular user on a particular computing device;
generating a first vector representing the particular archetype based on the plurality of archetypes;
receiving a selection from the particular user of a platform;
determining at least one particular content instance of the plurality of content instances available via the platform, the plurality of weighted lists comprising weights of the at least one particular content instance in the plurality of archetypes;
generating a second vector based on the weights of the at least one particular content instance in the plurality of archetypes;
determining a similarity of the first vector and the second vector; and
determining a particular content stream including the at least one particular content instance based on the determined similarity of the first vector and the second vector; and
delivering the particular content stream to the particular user via the particular computing device.

### Claim 18 (depends on 17)

The method of claim 17, the method further comprising applying an LDA algorithm to the plurality of user content streams to generate the plurality of archetypes.

### Claim 19

A method of providing a content feed comprising:
monitoring a plurality of user content streams of a plurality of users on a plurality of computing devices, the plurality of user content streams comprising a plurality of content instances accessible via a network;
generating a plurality of archetypes based on the plurality of user content streams, wherein the plurality of archetypes comprise a plurality of weighted lists comprising the plurality of content instances;
receiving a selection of a particular archetype of the plurality of archetypes from a particular user on a particular computing device;
generating a first vector representing the particular archetype based on the plurality of archetypes;
detecting a platform accessed by the particular user via the network;
determining at least one particular content instance of the plurality of content instances available via the platform, the plurality of weighted lists comprising weights of the at least one particular content instance in the plurality of archetypes;
generating a second vector based on the weights of the at least one particular content instance in the plurality of archetypes;
determining a similarity of the first vector and the second vector; and
determining a particular content stream including the at least one particular content instance based on the determined similarity of the first vector and the second vector; and
delivering the particular content stream to the particular user via the particular computing device.

### Claim 20 (depends on 19)

The method of claim 19, wherein determining the similarity of the first vector and the second vector comprises determining a cosine similarity of the first vector and the second vector.

### Claim 21 (depends on 19)

The method of claim 19, wherein:
the first vector comprises a first plurality of variables of a quantity equal to a number of the plurality of archetypes, wherein the first plurality of variables comprise a certain variable corresponding to the particular archetype and other variables corresponding to other archetypes of the plurality of archetypes, and wherein the certain variable is equal to one (1) and the other variables are equal to zero (0); and
the second vector comprises a second plurality of variables of the quantity equal to the number of the plurality of archetypes, wherein each of the second plurality of variables corresponds to a particular weight of the at least one particular content instance at a respective one of the plurality of archetypes, and wherein the sum of the second plurality of variables is equal to one (1).

### Claim 22 (depends on 21)

The method of claim 21, wherein determining the similarity of the first vector and the second vector comprises determining a cosine similarity of the first vector and the second vector.

### Claim 23

A method comprising:
receiving a plurality of content instances from a plurality of computing devices via a network;
generating a plurality of archetypes based on the plurality of content instances, wherein the plurality of archetypes comprise a plurality of weighted lists comprising the plurality of content instances;
enabling an application on a particular computing device;
receiving a selection of a particular archetype of the plurality of archetypes from a particular user on the particular computing device via the application;
generating a first vector representing the particular archetype based on the plurality of archetypes;
determining at least one particular content instance of the plurality of content instances available via a platform, the plurality of weighted lists comprising weights of the at least one particular content instance in the plurality of archetypes;
generating a second vector based on the weights of the at least one particular content instance in the plurality of archetypes;
determining a similarity of the first vector and the second vector;
determining a particular content instance based on the determined similarity of the first vector and the second vector; and
delivering the particular content instance to the particular user via the particular computing device.

### Claim 24 (depends on 23)

The method of claim 23, further comprising:
determining a plurality of geographic locations of the plurality of computing devices;
associating the plurality of geographic locations respectively with the plurality of archetypes;
receiving a selection of a particular geographic region from the particular user on the particular computing device via the application; and
determining the particular content instance further based on the particular geographic region.

### Claim 25 (depends on 24)

The method of claim 24, further comprising:
receiving a selection of a particular feed type from the particular user on the particular computing device via the application; and
determining the particular content instance further based on the particular feed type.

### Claim 26

A system for providing content feeds comprising:
a plurality of computing devices each comprising at least a first hardware processor and at least a first non-transitory computer-readable storage medium coupled to the at least the first hardware processor and storing first programming instructions for execution by the at least the first hardware processor, wherein the first programming instructions, when executed, cause the plurality of computing devices to perform operations comprising monitoring a plurality of user content streams, the plurality of user content streams comprising a plurality of content instances accessible via a network;
a server comprising at least a second hardware processor and at least a second non-transitory computer-readable storage medium coupled to the at least the second hardware processor and storing second programming instructions for execution by the at least the second hardware processor, wherein the second programming instructions, when executed, cause the server to perform operations comprising:
receiving the plurality of user content streams from the plurality of computing devices; and
generating a plurality of archetypes based on the plurality of user content streams, wherein the plurality of archetypes comprise a plurality of weighted lists comprising the plurality of content instances; and
a particular computing device comprising at least a third hardware processor and at least a third non-transitory computer-readable storage medium coupled to the at least the third hardware processor and storing third programming instructions for execution by the at least the third hardware processor, wherein the third programming instructions, when executed, cause the particular computing device to perform operations comprising:
receiving the plurality of archetypes from the server;
receiving a selection of a particular archetype of the plurality of archetypes from a particular user;
generating a first vector representing the particular archetype based on the plurality of archetypes;
determining at least one particular content instance of the plurality of content instances available via a platform, the plurality of weighted lists comprising weights of the at least one particular content instance in the plurality of archetypes;
generating a second vector based on the weights of the at least one particular content instance in the plurality of archetypes;
determining a similarity of the first vector and the second vector;
determining a particular content stream including the at least one particular content instance based on the determined similarity of the first vector and the second vector; and
delivering the particular content stream to the particular user.
