# US 10,313,755 B2 · Recommendation engine apparatus and methods

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

- Number: US 10,313,755 B2
- Document ID: US10313755B2
- Status: Granted
- Kind: B2
- Application number: 14/968,653
- Filed: 2015-12-14
- Published: 2016-07-21
- Granted: 2019-06-04
- Earliest claimed: 2009-03-30
- Assignees: Time Warner Cable Enterprises LLC
- Applicants: Time Warner Cable Enterprises LLC
- Inventors: David Kimble; Fee Ling Chin
- Web page: https://patentgrep.com/patent/US10313755B2

## CPC

- H04N 21/4668: {for recommending content, e.g. movies}
- H04N 7/17318: {Direct or substantially direct transmission and handling of requests}
- H04N 21/25891: {being end-user preferences (retrieval of video data in a video database based on user preferences G06F16/739; arrangements for recognizing users' preferences H04H60/46; user profiles in network data switching protocols H04L67/306; processing of user preferences or user profiles in wireless networks H04W8/18)}
- 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/44224: {Monitoring of user activity on external systems, e.g. Internet browsing}
- H04N 21/466: Learning process for intelligent management, e.g. learning user preferences for recommending movies {(services using the results of monitoring in broadcast systems H04H60/61)}
- H04N 21/4667: {Processing of monitored end-user data, e.g. trend analysis based on the log file of viewer selections}
- H04N 21/4826: {using recommendation lists, e.g. of programmes or channels sorted out according to their score}
- H04N 21/6582: {Data stored in the client, e.g. viewing habits, hardware capabilities, credit card number (arrangements where receivers interact with the broadcast H04H20/38)}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Recommendation engine apparatus and associated methods provide content compiled from various sources and selected to match user preferences. In one embodiment, the recommendation apparatus comprises a headend entity; in another, it is co-located on a user's CPE. In one embodiment, the recommendation engine creates content records from content metadata for comparison to a user profile. The user profile is pre-programmed; however has the ability to dynamically shift toward a user's preferences as the user takes actions regarding content. Client applications are utilized to compile and present content; feedback mechanisms are utilized to enable “learning” from user activities to generate more precise recommendations as well as to “unlearn” stale preferences. Recommended content is displayed in the form of a playlist, or as a continuous stream on a virtual channel, or presented in an electronic program guide. A business rules “engine” useful in implementing operational or business goals is also disclosed.

## Claims

### Claim 1

A method of providing content for consumption by a user, the method comprising:
maintaining data representative of a user profile at a storage apparatus of a web server associated with a multi-systems operator, the user profile being associated with the user of a client device;
identifying one or more recommended content items for the user based at least partly on the data representative of the user profile;
causing provision to the client device, via an Internet connection to the web server, of data relating to the one or more recommended content items;
receiving data indicating a user action taken with respect to a content item of the one or more recommended content items, the data originated by the client device;
based at least on the received data, causing the content item to be provided to the client device for presentation to the user; and
updating the data representative of the user profile based at least partly on the data indicating the user action received from the client device, the updating of the data representative of the user profile comprising applying a weighting factor to a data structure associated with the content item, the applying of the weighting factor comprising selecting the weighting factor from among a plurality of weighting factors, the selecting being based on the user action taken with respect to the content item;
wherein the identifying of the one or more recommended content items for the user comprises adding data descriptive of the content item to a list of the one or more recommended content items when a score parameter associated with the content item meets or exceeds a prescribed minimum value, the score parameter generated based at least on: (i) the updated data representative of the user profile, and (ii) the data structure with the weighting factor applied thereto.

### Claim 2 (depends on 1)

The method of claim 1, further comprising scheduling the content item to broadcast at a future time;
wherein the causing the content item to be provided to the client device or another device of the user comprises causing the content item to be provided to the client device or the another device at the future time.

### Claim 3 (depends on 1)

The method of claim 1, wherein:
the updating of the data representative of the user profile further comprises updating the data representative of the user profile based on user activity data collected from a plurality of devices associated with the user, the plurality of devices including the client device.

### Claim 4 (depends on 1)

The method of claim 1, wherein the data relating to the one or more recommended content items comprises data representative of a list of the one or more recommended content items ranked in an order based at least partly on a level of correlation to the data representative of the user profile.

### Claim 5 (depends on 1)

The method of claim 1, wherein:
the user comprises a subscriber of a managed content delivery network;
the one or more recommended content items are configured for delivery over the managed content delivery network; and
the one or more recommended content items comprise a plurality of recommended content items provided by a plurality of content sources each independent of the managed content delivery network.

### Claim 6 (depends on 1)

The method of claim 1, wherein the causing of the content item to be provided comprises accessing a user-specific data storage location of a network data storage apparatus, the user-specific data storage location being accessible only to the user or the client device.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
generating data representative of a playlist comprising the content item, the playlist comprising the one or more recommended content items ranked in an order of priority; and
causing provision of access to the data representative of the playlist to the client device via the Internet connection to the web server.

### Claim 8

A web server apparatus associated with a network operator for use in a managed content delivery network, the apparatus comprising:
a first storage apparatus configured to store a plurality of data representative of a plurality of respective user profiles associated with respective ones of users of respective client devices, the plurality of data representative of the user profiles each comprising data relating to historical content-related activity for the respective user;
a digital processor apparatus in data communication with the first storage apparatus; and
a second storage apparatus in data communication with the digital processor apparatus and comprising a computer program configured to, when executed on the digital processor apparatus:
identify one or more recommended content items for one of the users based at least partly on a data structure generated from historical content-related activity data within data representative of a profile of the one of the users, the historical content-related activity data comprising data indicative of a plurality of user actions;
provide, to the client device of that user, access to a list of the one or more recommended content items, the provision being based at least on one or more weighting factors associated with that user;
receive, from the client device of that user, data indicating a selection of a content item of the one or more recommended content items;
cause the selected content item to be provided to the client device of that user for rendering thereby;
based at least on a negative value being applied to the one or more weighting factors, the negative value based at least on the plurality of user actions, generate an updated version of a data structure associated with the selected content item, and combine (i) the updated version of the data structure associated with the selected content item with (ii) the data structure generated from historical content-related activity data to produce a combined data structure; and
based at least on a value correlated to the combined data structure being below a minimum value, remove the selected content item from the list of the one or more recommended content items;
wherein the one or more weighting factors are correlated to respective portions of the data representative of the plurality of user actions based at least on a point of time associated with each of the user actions as reflected in the respective portions of the data.

### Claim 9 (depends on 8)

The web server apparatus of claim 8, wherein the computer program is further configured to, when executed on the digital processor apparatus, cause a recording of the selected content item during a broadcast of the selected content item, the recording of the selected content item being stored on a user-specific portion of the network storage apparatus that is only accessible to the one of the users.

### Claim 10 (depends on 8)

The web server apparatus of claim 8, wherein the selected content item is scheduled to broadcast at a future time.

### Claim 11 (depends on 8)

The web server apparatus of claim 8, wherein the computer program is further configured to, when executed on the digital processor apparatus:
update the historical content-related activity data associated with the data representative of the profile of the one of the users based at least partly on user activity data collected from a plurality of devices associated with the one of the users, the plurality of devices including the client device.

### Claim 12 (depends on 8)

The web server apparatus of claim 8, wherein the one or more recommended content items are presented according to a prescribed presentation scheme, the scheme based at least partly on a correlation between respective subject matter of the one or more recommended content items and to the historical content-related activity data associated with the data representative of the profile of the one of the users.

### Claim 13 (depends on 12)

The web server apparatus of claim 12, wherein the prescribed presentation scheme further comprises presentation of recommended content items that are broadcast at a first time as having a higher priority than presentation of content items that are broadcast at a second time which is subsequent to the first time.

### Claim 14 (depends on 1)

The method of claim 1, wherein:
the applying of the weighting factor to the data structure comprises applying the weighting factor to a matrix, the matrix comprising at least one column of values corresponding to a plurality of aspects related to the data representative of the user profile; and
the selecting the weighting factor based on the user action taken comprises selecting the user action from a plurality of user actions.

### Claim 15 (depends on 14)

The method of claim 14, wherein:
the plurality of user actions comprises one or more of viewing, recording, or searching for the content item; and
each of the plurality of user actions corresponds to a respective one of the plurality of weighting factors.

### Claim 16 (depends on 1)

The method of claim 1, further comprising deriving the score parameter from (i) one or more values associated with the data representative of the user profile and (ii) one or more values associated with the data structure associated with the content item.

### Claim 17 (depends on 8)

The web server apparatus of claim 8, wherein the computer program is further configured to, when executed on the digital processor apparatus:
based at least on a positive value being applied to the one or more weighting factors, the positive being based on at least one of the plurality of user actions, remove a content item from the list of the one or more recommended content items, the removed content item being selected based at least on a length of time the content item has stayed on the list.

### Claim 18 (depends on 1)

The method of claim 1, wherein:
the weighting factor selected based on the user action taken with respect to the content item comprises a scalar quantity;
the data structure associated with the content item comprises a vector; and
the applying the weighting factor to the data structure associated with the content item further comprises deriving a product of the vector and the scalar quantity to generate an updated data structure associated with the content item.

### Claim 19

A non-transitory computer-readable apparatus comprising a storage medium having at least one computer program thereon, the at least one computer program having a plurality of instructions configured to, upon execution by a processor apparatus, cause a network apparatus to:
access data representative of a user profile maintained at a storage apparatus of a web server associated with a network operator, the user profile being associated with the user of a client device;
identify one or more recommended content items for the user based at least partly on the data representative of the user profile;
cause provision to the client device, via at least an Internet connection to the web server, of data relating to the one or more recommended content items;
receive data indicative of a user action taken with respect to a content item of the one or more recommended content items, the data originated by the client device;
based at least on the received data, make the content item accessible to the client device for presentation to the user; and
update the data representative of the user profile based at least partly on the data indicative of the user action received from the client device, the update of the data representative of the user profile comprising application of one of a plurality of weighting factors to a data structure associated with the content item based at least on the user action taken with respect to the content item;
wherein the identification of the one or more recommended content items for the user comprises an addition of data descriptive of the content item to a list of the one or more recommended content items when a score parameter associated with the content item meets or exceeds a prescribed criterion, the score parameter generated based at least on: (i) the updated data representative of the user profile, and (ii) the data structure with the one weighting factor applied thereto.

### Claim 20 (depends on 19)

The non-transitory computer-readable apparatus of claim 19, wherein the making of the content item accessible to the client device or to another device of the user comprises making of the content item accessible to the client device or the other device at a future scheduled time.

### Claim 21 (depends on 19)

The non-transitory computer-readable apparatus of claim 19, wherein the update of the data representative of the user profile further comprises an update of the data representative of the user profile based on user activity data collected from a plurality of devices associated with the user, the plurality of devices including the client device.

### Claim 22 (depends on 19)

The non-transitory computer-readable apparatus of claim 19, wherein the data relating to the one or more recommended content items comprises data representative of a list of the one or more recommended content items ranked in an order based at least partly on a level of correlation to the data representative of the user profile.

### Claim 23 (depends on 19)

The non-transitory computer-readable apparatus of claim 19, wherein:
the user comprises a subscriber of a managed content delivery network;
the one or more recommended content items are configured for delivery over the managed content delivery network; and
the one or more recommended content items comprise a plurality of recommended content items provided by a plurality of content sources each independent of the managed content delivery network.

### Claim 24 (depends on 19)

The non-transitory computer-readable apparatus of claim 19, wherein the making of the content item accessible comprises accessing a user-specific data storage location of a network data storage apparatus, the user-specific data storage location being accessible only to the user or the client device.

### Claim 25 (depends on 19)

The non-transitory computer-readable apparatus of claim 19, wherein plurality of instructions are further configured to, upon execution by the processor apparatus, cause the network apparatus to:
generate data representative of a playlist comprising the content item, the playlist comprising the one or more recommended content items ranked in an order of priority; and
cause provision of access to the data representative of the playlist to the client device via the at least Internet connection to the web server.

### Claim 26 (depends on 19)

The non-transitory computer-readable apparatus of claim 19, wherein:
the application of the one of the plurality of weighting factors to the data structure comprises an application of the one weighting factor to a matrix, the matrix comprising at least one column of values corresponding to a plurality of aspects related to the data representative of the user profile;
the application of the one of the plurality of weighting factors to the data structure further comprises a selection of the one weighting factor from among a plurality of weighting factors; and
the selection of the one weighting factor based on the user action taken is based on a selection of the user action from a plurality of user actions.

### Claim 27 (depends on 19)

The non-transitory computer-readable apparatus of claim 19, wherein:
the one weighting factor is selected based on the user action taken with respect to the content item, the one weighting factor comprising a scalar quantity;
the data structure associated with the content item comprises a vector; and
the applying the one of a plurality of weighting factors to the data structure associated with the content item further comprises deriving a product of the vector and the scalar quantity to generate an updated data structure associated with the content item.

### Claim 28

A non-transitory computer-readable apparatus comprising a storage medium having at least one computer program thereon, the at least one computer program having a plurality of instructions configured to, upon execution by a processor apparatus, cause a web server apparatus to:
identify one or more recommended content items for one user of a plurality of users, the identification being based at least partly on a data structure generated from data relating to historical user interaction with content by the one user;
provide, to a client device of the one user, access to a representation of the one or more recommended content items, the provision being based at least one on one or more weighting factors associated with the one user;
receive, from the client device, data indicative of a selection of a content item of the one or more recommended content items by the one user;
enable provision of the selected content item to the client device for rendering thereby;
based at least on a prescribed value being applied to the one or more weighting factors, the prescribed value based at least on the data relating to the historical user interaction, generate an updated version of a data structure associated with the selected content item, and combine at least a portion of (i) the updated version of the data structure associated with the selected content item with at least a portion of (ii) the data relating to the historical user interaction to produce a combined data structure; and
based at least on a value correlated to the combined data structure meeting a second prescribed criterion, remove the selected content item from the list of the one or more recommended content items;
wherein the one or more weighting factors are correlated to respective portions of the data relating to the historical user interaction based at least on a temporal association.

### Claim 29 (depends on 28)

The non-transitory computer-readable apparatus of claim 28, wherein the plurality of instructions are further configured to, upon execution by the processor apparatus, cause the web server apparatus to: cause a recording of the selected content item during a broadcast of the selected content item, the recording of the selected content item being stored on a user-specific portion of a network storage apparatus that is only accessible to the one user.

### Claim 30 (depends on 28)

The non-transitory computer-readable apparatus of claim 28, wherein the selected content item is scheduled to broadcast at a future time.

### Claim 31 (depends on 28)

The non-transitory computer-readable apparatus of claim 28, wherein the plurality of instructions are further configured to, upon execution by the processor apparatus, cause the web server apparatus to: update the data relating to the historical user interaction based at least partly on user activity data collected from a plurality of devices associated with the one user, the plurality of devices including the client device.

### Claim 32 (depends on 28)

The non-transitory computer-readable apparatus of claim 28, wherein the plurality of instructions are further configured to, upon execution by the processor apparatus, cause the web server apparatus to: cause presentation of the one or more recommended content items according to a prescribed presentation scheme, the prescribed presentation scheme being based at least partly on a correlation between respective subject matter of the one or more recommended content items and to the data relating to the historical user interaction.

### Claim 33 (depends on 32)

The non-transitory computer-readable apparatus of claim 32, wherein plurality of instructions are further configured to, upon execution by the processor apparatus, cause the web server apparatus to: enable, based on the prescribed presentation scheme, presentation of recommended content items that are broadcast at a first time as having a higher priority than presentation of content items that are broadcast at a second time which is subsequent to the first time.

### Claim 34 (depends on 28)

The non-transitory computer-readable apparatus of claim 28, wherein plurality of instructions are further configured to, upon execution by the processor apparatus, cause the web server apparatus to: based at least on a second prescribed value being applied to the one or more weighting factors, the second prescribed value being based on at least one of a plurality of user actions associated with the data relating to the historical user interaction, remove a content item from the list of the one or more recommended content items, the removed content item being selected based at least on a length of time the content item has stayed on the list.
