Current methods of predicting user entertainment and/or content favorites can be complicated and generate inaccurate results. With the proliferation of content made available for consumption, it has become exceedingly difficult to efficiently locate meaningful content. The flexibility and precision offered by content recommendation systems can be beneficial, as such, there remains an ever-present need for improved and simplified ways to identify relevant content for users.
The following summary is for illustrative purposes only, and is not intended to limit or constrain the detailed description. The following summary merely presents various described aspects in a simplified form as a prelude to the more detailed description provided below.
Features herein relate to a content recommendation system and methods that may be used as a stand-alone recommendation system or comprise a portion of another recommendation system. The content recommendation system may be based on a user's previous content consumption history. According to one aspect of the disclosure herein, a user may request and/or consume a plurality of content items made available by a content provider. These content items may be transmitted from a content provider's server to one or more consumption or access devices associated with a user. Additionally, or alternatively, the content items may be transmitted from a data processing facility, such as a local office, to the user for consumption. The amount of content consumed by a user and other information relating to said content may be tracked and recorded by a content provider's and/or a third-party's computing device, which may be disposed at the local office or another location. Additionally or alternatively, a user's consumption behavior may be monitored by one or more of the user's consumption or access devices.
A user's content consumption history and other related information may be processed by the content recommendation system to generate content rankings, implicit user favorites, and/or content recommendations for the user. Additionally, a user may identify particular content preferences and/or provide other information input to the recommendation system to further customize said rankings, favorites, and content recommendations. For example, the user may identify a particular category of content for which the user desires to receive a content recommendation, determine implicit favorites and/or rankings from the recommendation system.
The content recommendation system may determine (and/or assign) scores to one or more elements of a content category being ranked (or analyzed) by the system based at least in part upon the content consumption history of a user. The content recommendation system may be further configured to determine (and/or disregard) extraneous content information within the user's content consumption history that may not be considered by the system when determining content recommendation, rankings, or user favorites. The content recommendation system may determine a user's favorite type of content (e.g., favorite sports teams, favorite actors, favorite genres of movies, etc.) based on the user's content consumption history. The content recommendation system may generate content recommendations for the user based on various types of information, such as user profile preferences, content rankings and/or user favorites determined by the system for the user. In some aspects of the present disclosure, the content recommendation system may utilize an iterative algorithm including multiple rounds of scoring to rank content category elements, determine implicit favorites, and generate content recommendations for a user.
The summary here is not an exhaustive listing of the novel features described herein, and are not limiting of the claims. These and other features are described in greater detail below.
These and other features, aspects, and advantages of the present disclosure will become better understood with regard to the following description, claims, and drawings. The present disclosure is illustrated by way of example, and not limited by, the accompanying figures in which like numerals indicate similar elements.
In the following description of various illustrative embodiments, reference is made to the accompanying drawings, which form a part hereof, and in which is shown, by way of illustration, various embodiments in which aspects of the disclosure may be practiced. It is to be understood that other embodiments may be utilized, and structural and functional modifications may be made, without departing from the scope of the present disclosure.
There may be one link 101 originating from the local office 103, and it may be split a number of times to distribute the signal to various premises 102 in the vicinity (which may be many miles) of the local office 103. The links 101 may include components not illustrated, such as splitters, filters, amplifiers, etc. to help convey the signal clearly, but in general each split introduces a bit of signal degradation. Portions of the links 101 may also be implemented with fiber-optic cable, while other portions may be implemented with coaxial cable, other lines, or wireless communication paths. By running fiber optic cable along some portions, for example, signal degradation may be significantly minimized, allowing a single local office 103 to reach even farther with its network of links 101 than before.
The local office 103 may include an interface, such as a termination system (TS) 104. More specifically, the interface 104 may be a cable modem termination system (CMTS), which may be a computing device configured to manage communications between devices on the network of links 101 and backend devices such as servers 105-107 (to be discussed further below). The interface 104 may be as specified in a standard, such as the Data Over Cable Service Interface Specification (DOCSIS) standard, published by Cable Television Laboratories, Inc. (a.k.a. CableLabs), or it may be a similar or modified device instead. The interface 104 may be configured to place data on one or more downstream frequencies to be received by modems at the various premises 102, and to receive upstream communications from those modems on one or more upstream frequencies.
The local office 103 may also include one or more network interfaces 108, which can permit the local office 103 to communicate with various other external networks 109. These networks 109 may include, for example, networks of Internet devices, telephone networks, cellular telephone networks, fiber optic networks, local wireless networks (e.g., WiMAX), satellite networks, and any other desired network, and the network interface 108 may include the corresponding circuitry needed to communicate on the external networks 109, and to other devices on the network such as a cellular telephone network and its corresponding cell phones.
As noted above, the local office 103 may include a variety of servers 105-107 that may be configured to perform various functions. For example, the local office 103 may include a push notification server 105. The push notification server 105 may generate push notifications to deliver data and/or commands to the various premises 102 in the network (or more specifically, to the devices in the premises 102 that are configured to detect such notifications). The local office 103 may also include a content server 106. The content server 106 may be one or more computing devices that are configured to provide content to users at their premises. This content may be, for example, video on demand movies, television programs, songs, text listings, etc. The content server 106 may include software to validate user identities and entitlements, to locate and retrieve requested content, to encrypt the content, and to initiate delivery (e.g., streaming) of the content to the requesting user(s) and/or device(s).
The local office 103 may also include one or more application servers 107. An application server 107 may be a computing device configured to offer any desired service, and may run various languages and operating systems (e.g., servlets and JSP pages running on Tomcat/MySQL, OSX, BSD, Ubuntu, Redhat, HTML5, JavaScript, AJAX and COMET). For example, an application server may be responsible for collecting television program listings information and generating a data download for electronic program guide listings. In some aspects of the disclosure, application server 107 may be responsible for monitoring user viewing habits and collecting that information for use in selecting advertisements. In other embodiments, application server 107 may be responsible for formatting and inserting advertisements in a video stream being transmitted to the premises 102. Although shown separately, one of ordinary skill in the art will appreciate that the push server 105, content server 106, and application server 107 may be combined. Further, here the push server 105, content server 106, and application server 107 are shown generally, and it will be understood that they may each contain memory storing computer executable instructions to cause a processor to perform steps described herein and/or memory for storing data.
An example premises 102a, such as a home, may include an interface 120. The interface 120 can include any communication circuitry needed to allow a device to communicate on one or more links 101 with other devices in the network. For example, the interface 120 may include a modem 110, which may include transmitters and receivers used to communicate on the links 101 and with the local office 103. The modem 110 may be, for example, a coaxial cable modem (for coaxial cable lines 101), a fiber interface node (for fiber optic lines 101), twisted-pair telephone modem, cellular telephone transceiver, satellite transceiver, local wi-fi router or access point, or any other desired modem device. Also, although only one modem is shown in
The
One or more aspects of the disclosure may be embodied in a computer-usable data and/or computer-executable instructions, such as in one or more program modules, executed by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types when executed by a processor in a computer or other data processing device. The computer executable instructions may be stored on one or more computer readable media such as a hard disk, optical disk, removable storage media, solid state memory, RAM, etc. The functionality of the program modules may be combined or distributed as desired in various embodiments. In addition, the functionality may be embodied in whole or in part in firmware or hardware equivalents such as integrated circuits, field programmable gate arrays (FPGA), and the like. Particular data structures may be used to more effectively implement one or more aspects of the disclosure, and such data structures are contemplated within the scope of computer executable instructions and computer-usable data described herein.
In step 301, the content recommendation system may be configured to perform various system configuration steps. This configuration process may include registering a user's consumption or access device with a content provider. For example, this registration step may include receiving information (e.g., a username, password, device ID, etc.) for setting up a user account with a content provider. When setting up a user account, a user may specify user and/or device preferences that may determine, at least partially, which content items are subsequently provided to the user.
Additionally or alternatively, the user may have the option to provide rankings for a plurality of elements associated with content categories and/or sub-categories. For example, as will be discussed in more detail below with respect to
Various sub-categories (and/or content elements) may be included within one or more content categories without departing from the scope of the present disclosure. For example, the Sports content category may include a plurality of sub-categories such as types of sports (e.g., basketball, football, soccer, etc.), and/or may include a plurality of content elements, such as Sports teams (e.g., Miami Heat, Dallas Cowboys, Real Madrid, etc.), Sports players (e.g., Ronaldo, Dwayne Wade, Tom Brady, etc.), and the like. Additionally or alternatively, each sub-category may include additional sub-categories and/or various other elements associated with and/or relating to the particular sub-category. For example, the basketball sub-category may include multiple sub-categories corresponding to basketball teams and basketball players. A first basketball team sub-category may include a plurality of elements identifying the various basketball teams available for the user to rank. Similarly, a second basketball player sub-category may include a plurality of elements identifying the various basketball players associated with particular basketball teams. One or more consumption or access devices associated with a user may be configured to permit the user to assign rankings to various categories, sub-categories and associated elements as described above. The one or more consumption or access devices associated with the user may also be configured to transmit user rankings to the content provider.
Referring back to step 301, the registration process may also include associating one or more consumption or access devices with a particular user. For example, one or more computing devices at local office 103 may associate device identifiers (e.g., MAC identifiers, IP addresses, and the like) to one or more household or user identifiers. One or more homes may have a unique household identifier. By associating devices with households, the computing device may track content consumption by each household rather than by individual devices within or associated with the household or a particular user. Alternatively, by associating devices with a user identifier or a user account, the computing device may track content consumption for a plurality of users residing in the same household. Accordingly, the computing device may be configured to generate separate content rankings for multiple users within the same household and/or account.
In some embodiments, one or more consumption or access devices may be assigned to a household. For example, a service provider may collect MAC identifiers from various consumption or access devices at a home 102a when one or more consumption or access devices register with a network operated, owned, or managed by the service provider. The service provider may similarly collect IP addresses from consumption or access devices at the home 102a (either at the time of registration or at any other time). Alternatively (or additionally), one or more homes may be assigned a particular set of IP addresses, such as a range of IP addresses (e.g., 123.123.123.001 to 123.123.123.255), a list of specific IP addresses (e.g., 123.123.123.001, 144.123.123.155, and 123.123.123.123), or a combination thereof. The set of MAC identifiers and IP addresses associated with one or more homes may be determined and/or updated at any time. Similarly, if a user logs into his or her user account from an out-of-household location, the user's credentials may be used to identify the user or the user's home 102.
Once a user account is set up, one or more consumption or access devices associated with a user may be configured to receive content items from the content provider so that the remaining steps of
For example, one or more content items provided by a content provider may include a sports exhibition, a television program, a movie, or an audio recording transmitted by server 106 at a local or central office 103, over a cable network 101 (e.g., coaxial cables, optical fibers, wireless links, or any combination thereof, etc.). In other examples, the content items may be an Internet (or any packet-switched network) video clip transmitted by a web server to a computing device associated with a user and presented by a browser application during a web browsing session. Other content items may be retrieved and presented to users by software applications executing at gateways and televisions, PCs, mobile devices, or other electronic devices. For instance, mobile applications executing on mobile phones and other devices may be programmed to present content items to users upon the user's request.
During step 301, the system may prompt the user to establish a user profile and/or content preferences for a user account. The system may provide the user with a questionnaire (or other queries) for the purpose of eliciting the user's content preferences. Additionally or alternatively, the user may have the option of selecting (and/or ranking) favorite types of content and/or content items from a list of different content items and content categories. In some aspects of the present disclosure, the user may be prompted to rank various categories of content. The user's preferences and input selections may be processed and stored by the system, for example, in a user profile. Users may access their respective profiles via a user interface, and may adjust any rankings and other content preferences as they desire.
In step 302, the content recommendation system (e.g., one or more computing devices) may retrieve content consumption history data for the requesting user. A content service provider may track and record the consumption history and/or consumption behavior of a user over time. In some embodiments, the recommendation system may retrieve content consumption history data for a user from a computing device at local office 103 (e.g., application server 107). The system may retrieve from memory (or another computing device) information indicating the various content items that have been consumed by a particular user (e.g., the requesting user) or groups of users (e.g., within the same household) over a predetermined period of time (e.g., one month, one year, etc). In some aspects of the present disclosure, a user may provide input to the recommendation system, via a user interface, indicating an amount of time for the predetermined time period. For example, the user interface may include a sliding scale indicating various time periods that a user may select from (e.g., one day to one year; one day to 5 years, etc.).
The content consumption history data retrieved by the system may include information indicating the various categories, sub-categories, and/or elements of content, and the associated content items therein, that have been consumed by the user over time. For example, content consumption history data may include information indicating the content items (and/or the number of content items) within a Sports content category (e.g., number of content items corresponding to sporting events or programming) that have been consumed by a user over a predetermined time period. Additionally, content consumption history data may include information indicating the content items (and/or the number of content items) within a sub-category of Basketball content (e.g., content items corresponding to basketball-related events or programming) that has been consumed by the user over a predetermined time period. Content consumption history data may also include information indicating the content items (and/or the number of content items) associated with elements of a particular category or sub-category. For example, content consumption history data may include information indicating the content items and/or the number of content items featuring a particular basketball team (e.g., Miami Heat), or a particular basketball player (e.g., Dwayne Wade). As noted above, the content consumption history data may also include information identifying a plurality of content elements associated with variety of categories and sub-categories of content (e.g., movies, television shows, comedies, thrillers, drama, etc.) without departing from the scope of the present disclosure.
In some embodiments, the recommendation system may determine that a user has consumed a content item if the user has consumed at least a threshold length of the playing time for the content item. For example, the system may determine that a user has consumed a content item if at least 50% of the content item has been consumed. As another example, the system may determine that a user has consumed a content item if at least 75% of the content item has been consumed. Any desirable threshold may be used by the system to determine whether a content item has been consumed without departing from the scope of the present disclosure.
In step 303, the content recommendation system may determine one or more content categories for which content items in the user's consumption history may be ranked or analyzed. As discussed above, content items may be identified by various categories and/or sub-categories of content. During step 303, a user may determine a particular category and/or sub-category of content that the user wishes to rank and/or determine implicit user favorites. The user may access an interface made available via a display device (e.g., device 112) such that the user may indicate their desired content preferences and selections. The available selection of sub-categories may be restricted based on prior categorical selections made by the user during step 303. For example, after selecting the Sports category, the user may be restricted to one or more sub-categories corresponding to and/or associated with various types of sports content (e.g., basketball, football, soccer, etc.).
In some embodiments, the user interface may comprise a stand-alone software application executing on a user's device, such as smartphone 116, or installed onto a suitable computing device operatively connected to a display device (e.g., display device 112. In other embodiments, the user interface (“UI”) may be component of one or more applications (or services) provided by the content service provider. The user interface may transmit data to the computer device indicating a user's desired content category and/or content sub-category selection. For example, in the instance that a user desires the recommendation system to implicitly determine their favorite basketball teams (and/or determine a ranking of the user's favorite basketball teams), the user may first identify, via the interface, a content category associated with Sports (e.g., the Sports category). Additionally or alternatively, the user may then identify one or more sub-categories within the selected content category. For instance, within the Sports category, the user may be provided, via the user interface, an option for selecting a content sub-category associated with the sport of Basketball. As another example, in the instance that a user desires the recommendation system to implicitly determine their favorite actor in comedic movies (and/or determine a ranking of the user's favorite actors in comedic movies), the user may first identify, via the interface, a content category associated with Movies (e.g., the Movie category). Additionally or alternatively, the user may then identify one or more sub-categories within the selected category. For example, within the Movie category, the user may be provided, via the user interface, an option for selecting a content sub-category associated with Comedies.
As discussed above, and as shown in
As discussed above with respect to step 303, in some aspects of the disclosure, a user may establish default rankings for content categories displayed in an interface. For example, referring to
As an additional potential feature, systems, methods, and computer interfaces in accordance with at least some examples of this disclosure may allow a user to get assistance or “on-line help” during the category selection process (e.g., by activating “help” icon 418 in this example interface 415). While any desired information may be provided in response to user interaction with icon 418 of UI 415, in some examples, the UI may display to the user information (e.g., a display of instructions) to assist the user in selecting content categories, sub-categories, and elements. In other aspects of the present disclosure, a user may activate a “search” icon presented in the UI (e.g., UI 415), to browse through and/or search for available categories and sub-categories of content. In some embodiments, by activating the search and/or help icon, the user may access a hierarchal map of the various categories and sub-categories of content that may be analyzed by the recommendation system. Such interface display screens may allow the user to more easily navigate the user interface to selectively identify desired categories, sub-categories, and/or elements of content.
Referring back to
During step 304, the computing device may determine a plurality of content elements associated with the category and/or sub-category of content selected by the user during step 303. For example, as illustrated in
For example, referring to
As another example, if the user selects the content sub-category of NBA basketball teams during step 303, the computing device may determine (and/or identify) each of the available content elements (i.e., NBA basketball teams) that may be ranked by the recommendation system. The interface may provide the user with a listing of the elements associated with the desired content sub-category selected by the user. In this example, the interface may provide the user with a listing of NBA basketball teams (e.g., Miami Heat, Dallas Mavericks, etc.) that may be ranked by the system, and/or from which the system may determine implicit user favorites. In some embodiments, the recommendation system may request data from a computing device (e.g., content server) to determine the various content elements for a desired category or sub-category of content.
As yet another example, during step 303, if the user selects the content sub-category corresponding to comedic actors, the computing device may determine (and/or identify) each of the available content elements (i.e., actors in comedic movies) that may be ranked or further analyzed by the recommendation system. The interface may provide the user with a listing of the elements associated with the desired content sub-category selected by the user. In this example, the interface may provide the user with a listing of comedic actors (e.g., Seth Rogen, Bill Hader, etc.) that may be ranked by the system, and/or from which the system may determine implicit user favorites.
Referring back to
Referring back to the basketball content example discussed above, the content recommendation system may analyze one or more elements corresponding to NBA basketball teams (e.g., Miami Heat) to determine a number of content items in the user's consumption history that are associated with and/or feature said elements. In this example, the recommendation system may determine a number of NBA basketball games featuring the Miami Heat (and/or other NBA teams) that were previously consumed by the user during a predetermined time period (e.g., one year, two years, etc.). Similarly, referring back to the comedic actors example discussed above, the content recommendation system may analyze one or more elements corresponding to comedic actors in Movies (e.g., Seth Rogen) to determine a number of content items in the user's consumption history that are associated with and/or feature said elements. In this example, the computing device may determine a number of comedic movies featuring Seth Rogen (and/or other comedic actors) that were previously consumed by the user during a predetermined time period (e.g., one year, two years, etc.). As yet another example, and as discussed in more detail below with respect to
As shown in
Referring back to
In some aspects of the present disclosure, the recommendation system may determine the primary score value for a content element based on an amount of time a user spent consuming one or more content items associated with and/or featuring said content element. In some embodiments, the primary score for a content element may be determined based on a percentage (%) and/or length of a content item actually consumed by the user. For example, a user who begins consuming a content item, but only consumes half of it, might not have enjoyed the content item. Additionally or alternatively, a user that only consumes half of a content item may not have enjoyed the content item to the same extent as a user who consumed the entire content item. The recommendation system herein may track the user's consumption of a content item, and may record an amount (and/or length) of the content item consumed by the user. In embodiments where the primary score for an element indicates the number of instances that a user has consumed content items associated with and/or featuring the content element, the recommendation system may be configured to adjust the primary score for the content element based on an amount (or percentage) of the content item(s) actually consumed by the user.
Table 1 below shows exemplary primary score values corresponding to different amounts (or percentages) of a content item consumed by a user with respect to various categories (and/or types) of content. As illustrated below, the threshold amounts (or percentages) of a content item consumed by a user may correspond to particular primary score values.
As shown in Table 1, the primary score value assigned a content item may be based on the type of content being consumed by the user and/or an amount of the content item that was consumed by the user. The content consumption threshold values may be processed by the recommendation system to determine primary score values for a content element. Accordingly, rather than assigning a content element the entire primary score value for each content item consumed by a user (notwithstanding an amount of time the user actually spent consuming the content item), the recommendation system may determine a proportionate primary score value for an element in accordance with consumption thresholds (e.g., based on an amount of time the user actually spent consuming the content item).
Table 1 illustrates that in Example B, the recommendation system may determine that when 0-20% of a content item within the content category of Sports has been consumed by the user, the associated element (e.g., the element being analyzed during step 305) may be assigned a primary score value of 0.25 points for that particular content item. Similarly, when 21-40% of the content item has been consumed by the user, the associated element (e.g., the element being analyzed during step 305) may be assigned a primary score value of 0.50 points for that particular content item. As illustrated by Table 1, a user may consume a lesser amount of a movie (e.g., 15%) and the recommendation system may still assign the associated content element a primary score value of 0.25 points. The recommendation system may utilize various content consumption thresholds for various categories (and/or types) of content to determine primary score values for a content element. The recommendation system may retrieve from memory (or another computing device) data indicating consumption thresholds for various categories of content. In some aspects of the disclosure, the user may modify or adjust consumption thresholds utilized by the recommendation system. Adjustments to the consumption thresholds may be stored in memory and/or the user's profile or account.
As discussed above, a higher primary score may indicate a higher level of popularity (or interest) associated with a particular content element in view of the corpus of content items previously consumed by the user. Referring back to the basketball content example discussed above, the recommendation system may determine a primary score value for the Miami Heat based on the number of content items associated with the Miami Heat (e.g., basketball exhibitions featuring the Miami Heat) that were consumed by the user within a predetermined period of time. For example, if the user consumed 15 basketball games featuring the Miami Heat, the recommendation system may assign the Miami Heat a primary score value of 15. As another example, referring to the comedic actor example discussed above, if the user consumed 10 movies featuring the actor Seth Rogen, the recommendation system may assign the content element corresponding to Seth Rogen a primary score value of 10. Additionally or alternatively, the recommendation system may adjust the primary score value for a content element (e.g., Miami Heat, Seth Rogen, etc.) based on an amount of time the user spent consuming content items associated with and/or featuring said element. For instance, in the basketball example above, if the user only consumed half of each of the 15 basketball games featuring the Miami Heat, the primary score value may be adjusted from 15 points to 11.25 points (i.e., 15 games*0.75 pts). By contrast, in the comedic actor example above, if the user consumed half of each of the 10 comedic movies featuring Seth Rogen, the primary score value may not require further adjustments, and Seth Rogen (e.g., content element) may still be assigned a primary score value of 10 (i.e., 10 movies*1 pt).
Referring now to
After step 307, the system may return to step 305 to continue the loop until all of the content elements determined during step 304 have been processed, and when all of those elements have been processed, the method may proceed to step 308. At step 308, the recommendation system may rank (and/or sort) the content elements analyzed during step 305 based on their respective primary score values. In some aspects of the present disclosure, the recommendation system may incorporate various user preferences and or default rankings provided by the user when determining a ranking for the content elements analyzed during step 305. There are a variety of ways in which the recommendation system my utilize user preferences to adjust content rankings without departing from the scope of the present disclosure. For example, the recommendation system may retrieve default rankings of NFL teams from a user's profile, and use these rankings to adjust the rankings for content elements as determined by the recommendation system using primary score values. As another example, the recommendation system may generate (or adjust) rankings for content elements using a weighted average of content rankings determined based on primary score values and/or default rankings submitted by the user (or other groups of users). The recommendation system may provide the user with an option for determining an amount of weight to afford each type of ranking (e.g., rankings based on primary score, default rankings, etc.) made available to the user. For example, the user may determine that content rankings created by other users of the content service should receive a relatively low weighting (and/or not be considered at all) by the content recommendation system when generating or adjusting content rankings.
Referring back to
At step 310, the recommendation system (e.g., one or more computing devices) may identify a plurality of content items corresponding to the one or more content elements determined during step 304. During step 310, the recommendation system may process the consumption history data obtained during step 302 to determine (and/or identify) the content items consumed by the user that are associated with and/or feature the elements determined during step 304. For example, with respect to a particular element representing an NBA basketball team (e.g., Miami Heat), the recommendation system may process the user's consumption history data to determine (and/or identify) the one or more content items consumed by the user associated with and/or featuring the Miami Heat. In this example, the recommendation system may determine (or identify) each content item (e.g., basketball game) previously consumed by the user that featured the Miami Heat against another opponent in a basketball game. In some embodiments, the recommendation system may retrieve from memory (or some other form of storage) data indicating the various content items in a user's consumption history that are associated with and/or feature a particular content element.
In another embodiment, the recommendation system may associate in a database (or some other storage) a particular content element with each of the corresponding content items that were identified for said element during step 310. Referring back to the example above, in the instance a user selects the sub-category of NBA basketball teams, the population of elements to be ranked may include all 30 basketball teams comprising the NBA. In this example, the recommendation system may process the user's consumption history data and identify a plurality of content items consumed by the user that are associated with and/or feature at least one team of the thirty (30) NBA teams (e.g., content items corresponding to a basketball game featuring an NBA team). For each NBA team, the recommendation system may associate in a database a record of the basketball game(s) (e.g., content items) consumed by the user that feature and/or are associated with the respective NBA team.
At step 312, the recommendation system may begin a loop that is performed for the one or more content items identified during step 310. In some embodiments, the system may begin a loop that is performed for one, some, or all of the content items identified during step 310. At step 314, the recommendation system may retrieve secondary score values for the one or more elements corresponding to and/or associated with the content item being analyzed during step 312. The recommendation system may retrieve from memory (or some other data storage) information indicating the secondary score values for the one or more elements corresponding to and/or associated with the content item being analyzed during step 312. In instances where a content element has not been assigned a secondary score (or a secondary score value has not yet been determined for the element), the recommendation system may assign the element a predetermined secondary score value, such as zero (0) points or some other suitable point value. In other embodiments where an element does not have an assigned secondary score value (or a secondary score value has not yet been determined for the element), the method may skip step 314 and proceed to step 316.
After retrieving the secondary score values for the one or more elements corresponding to the content item being analyzed during step 312, the method may proceed to step 316, where the computing device may increment the secondary score value for the higher-ranked (and/or highest ranked) content element. As discussed above with respect to step 308, the recommendation system may rank content elements based upon primary score values. During step 316, the recommendation system may compare data indicating the primary score values for the one or more elements corresponding to and/or associated with the content item being analyzed during step 315. The computing device may increment, by a predetermined value (e.g., 1 point or some other suitable point value), the secondary score of the content element having the higher (or highest) ranking. In some embodiments where multiple elements have the same primary score value, the computing device may increment the secondary score value of both content elements by the predetermined value (e.g., 1 point). In other embodiments where multiple elements have the same primary score value, the computing device may increment the secondary score value of both elements by a proportion of the predetermined value (e.g., 0.5 points). In some embodiments, the recommendation system may determine which content element should receive an increment in secondary score value based on other criteria and/or or user preferences as described herein.
Referring now to
In this example, as shown in
Referring now to
For example, a user may desire rank elements (e.g., teams) from various sub-categories (e.g., basketball, football, etc.). Given that a basketball season (82 games) may include more games than a football season (16 games), the number of games (e.g., content items) may not be entirely indicative of a user's interest in a particular sub-category of content. For instance, a user consuming five (5) basketball games for a basketball team may not correspond to or indicate a similar user preference or level of popularity with the user as having consumed 5 football games for a particular football team. Additionally, a user may not have access to content items (e.g., games) for a particular content element (e.g., team). For example, certain sports games (e.g., content items) may not be made available to a user for consumption based on a variety of factors and/or other restrictions (e.g., geographical restrictions, black-out restrictions, etc.). The recommendation system may be configured to retrieve data from a remote system (or computing device) to determine whether and/or which content items are available for consumption by a user of a content service. Accordingly, the recommendation system may adjust the rankings for a content element based on the total percentage of available content items associated with and/or featuring the content element that has been consumed by the user over the predetermined time period.
In some aspects of the present disclosure, the recommendation system may communicate and/or receive data from a computing device (e.g., server) associated with a social networking site and/or status broadcast system such as FACEBOOK or TWITTER. The recommendation system may request various types of data about a user (and/or other users of the social networking site) from the computing device without departing from the scope of the present invention. For example, the recommendation system may request data indicating a number of users on the social networking site indicating a preference or liking for a particular content element. As another example, the recommendation system may request geographic, demographic and other types of data or preferences for one or more users. Additionally or alternatively, the recommendation system may request data indicating a number of users commenting on (and/or a number of published comments made) concerning a particular content element. The recommendation system may utilize the data received from the social networking site to adjust the content rankings for a content element as described in the disclosure herein.
At step 320, the recommendation system may determine user content favorites and/or generate content recommendations. In some embodiments, the recommendation system may determine implicit user content favorites based on rankings of content elements previously determined by the system. In one of these embodiments, the recommendation system may determine a user content favorite for a particular category or sub-category of content based on the highest ranked element for the particular category of content. For example, referring to
In some aspects of the present disclosure the recommendation system may determine which ranked content elements to identify as a user favorite based on absolute thresholds. In one embodiment, the recommendation system may identify a threshold number of highest-ranked elements (e.g., a threshold number of content elements having the highest secondary score values) as implicit content favorites for a user. The recommendation system may receive user input indicating and/or adjusting the threshold number of highest-ranked elements that should comprise a user's content favorites. In another embodiment, the recommendation system may exclude ranked content elements from being identified as a user's implicit content favorite based on threshold secondary score values. For example, the user may identify a minimum secondary score value for an element to be considered (and/or identified as) an implicit content favorite. In other embodiments, the recommendation system may exclude a ranked element from being identified as a user's implicit content favorite based on a threshold number of content items associated with and/or featuring the ranked element that have been consumed by the user. For example, the user may identify a minimum number of content items associated with and/or featuring a content element that should be consumed by a user for the element to be considered (and/or identified as) an implicit content favorite by the recommendations system. As another example, the user may identify a minimum percentage of available content items associated with and/or featuring a content element that need to be consumed by a user for the element to be considered (and/or identified as) an implicit content favorite.
In other aspects of the present disclosure, the recommendation system may determine which ranked content elements to identify as a user content favorite by utilizing relative thresholds. In some embodiments, the recommendation system may analyze a ranking of content elements (e.g., as determined during step 318) and their respective secondary score values to determine a difference (e.g., delta) in secondary score values between ranked element. The recommendation system may determine which ranked content elements to identify as an implicit user favorite based on a threshold difference in secondary score values between ranked content elements. In one of these embodiments, the recommendation system may determine which ranked content elements may be identified as implicit user favorites in accordance with a maximum difference in secondary score values between two ranked elements. For example, as illustrated in
As discussed above with respect to step 310 and
In another of these embodiments, the recommendation system may configured to determine which ranked content elements may be identified as implicit content favorites for a user based on the highest ranked element(s) comprising a threshold proportion of a total number of content items consumed by the user. The recommendation system may determine a predetermined (and/or default) threshold proportion value based on information contained within the user's profile. Additionally or alternatively, the recommendation system may adjust the predetermined threshold proportion value based on user input data. For example, the recommendation system may configured to determine which basketball teams may be identified as a user's favorite basketball team based on the highest ranked basketball teams that comprise a minimum threshold proportion of the total number of basketball games consumed by a user during a predetermined time period.
As illustrated in
In some aspects of the present disclosure, during step 320, the recommendation system may generate content recommendations for the user. The content recommendation system may generate content recommendations based on the consumption history of the user requesting content rankings and/or recommendations, the consumption history of one or more other users or groups of users, and/or other user content consumption preferences. In some embodiments, the content recommendation system may determine content recommendations for a user based on content rankings determined during step 318. There are a variety of ways in which the content recommendation system may recommend content items for a user based on previously determined content rankings without departing from the scope of the present disclosure. For example, the content recommendation system may identify one or more content items made available on a content server (and/or by a content provider) that have not yet been consumed by the user, and that are associated with (and/or feature) a ranked content element and/or an element identified by the recommendation system as an implicit user favorite. Referring back to the example in
In some aspects of the present disclosure, the recommendation system may be operatively connected to and/or configured to communicate with one or more computing devices at local office 103, such as application servers 107. The recommendation system may transmit data to applications servers 107 indicating various user content consumption preferences, such as implicit user favorites (e.g., favorite teams, players, actors, directors, etc.), content rankings, and the like. The application servers 107 at the local office 103 (and/or any other suitable computing device configured to adjust program guide listings or features) may process data received from the recommendation system, and utilize this data to adjust one or more aspects of (and/or program listings information included in) a data download for electronic program guide listings. For example, program listings for content items associated with and/or featuring content elements (e.g., teams, players, actors, etc.) that are ranked and/or have been identified as a user favorite may be emphasized in the electronic program guide display for the user. As another example, program listings for content items that have been recommended to a user by the content recommendation system may similarly be emphasized within the electronic program guide display of the user. There are a variety of ways in which the program guide display may emphasize a particular content item (e.g., program listing) without departing from the scope of the present disclosure. For example, the electronic program guide may display text, graphics, a flag, and/or some other type of indicator, within or near a program listing to visually emphasize that particular listing. As another example, an emphasized program listing may be a different color than other program listings and/or highlighted in the program guide display.
In other aspects of the present disclosure, the program guide may provide the user with an option to filter program listings based on user content preferences, content recommendations, content rankings, and user favorites determined by the recommendation system as described herein. The program guide may also provide the user with an option to record (and/or automatically record) future programming content based on user content preferences and other information received from the content recommendation system. In some embodiments, the program guide may be configured to display pop-up messages on a display device of a user to indicate that programming content featuring and/or associated with a user favorite (and/or are related to other user content preferences) is currently on or will begin shortly. Similarly, the program guide may display reminders indicating that such programming will begin within a predetermined amount of time (e.g., 1 hour, 1 day, etc.). The electronic program guide may provide the user with an option to adjust or modify various preferences (and/or parameters) of the program guide display as described herein.
Referring now to
Referring now to
At step 332, the recommendation system may begin a loop that is performed for the one or more content elements determined during step 304. In some embodiments, the system may begin a loop that is performed for one, some, or all of the elements analyzed during loop 305. During loop 332, the recommendation system may analyze content elements in a predetermined order. There are a variety of ways in which the recommendation system may determine the order in which to analyze content elements during loop 332 without departing from the scope of the present disclosure. For example, in some embodiments, the recommendation system may analyze content elements based upon their respective rankings as determined by the system during step 308. For instance, the recommendation system may analyze content elements in order of descending rank. In other embodiments, the recommendation system may analyze elements in order of descending primary score values. In some embodiments, the computing device may associate in a database the content element being analyzed during loop 332 with each of the corresponding content items that were identified for that particular element during step 330.
At step 334, the recommendation system may identify one or more content items associated with and/or featuring the content element being analyzed during loop 332. In some embodiments, during step 334, the recommendation may retrieve from memory (or some other form of storage) data indicating the various content items in a user's consumption history that are associated with and/or feature the content element being analyzed during loop 332. The recommendation system may be configured to determine a number of content items that are associated with and/or feature the content element being analyzed during loop 332. In some aspects of the present disclosure, during step 334, the recommendation system may analyze the identified content items to determine whether said items have previously been flagged, marked or otherwise identified by the recommendation system. For example, as will be discussed in more detail below with respect to step 338, the recommendation system may flag, mark, or otherwise indicate whether associated content items have previously been analyzed by the recommendation system during loop 332. There are a variety of ways in which the system may distinguish between content items and determine whether a content item has previously been analyzed by the system during loop 332 without departing from the scope of the present disclosure. As one example, the system may analyze content items for a unique identifier indicating that the content item has not yet been analyzed by the recommendation system during loop 332.
After the content items associated with the content element being analyzed during loop 332 have been identified, the method may proceed to step 336, where the recommendation system may increment the secondary score value for the content element being analyzed based upon the associated content items identified during step 334. For example, in some aspects of the present disclosure, the recommendation system may increment the secondary score value of a content element based on a number of content items the system identified as being associated with (and/or featuring) the element being analyzed during loop 332. In other embodiments, the recommendation system may increment the secondary score value for a content element by a predetermined value (e.g., 1 point) for each content item identified as being associated with and/or featuring the element being analyzed during loop 332. In other aspects of the present disclosure, the recommendation system may determine (and/or increment) secondary score values for one or more other content elements associated with the content items identified during step 334. In embodiments where a content item is associated with and/or features a second content element having the same ranking as the element being analyzed during loop 332, during step 336, the recommendation system may be configured to increment the secondary score value for the element being analyzed during loop 332 by a portion (and/or fraction) of the predetermined value. For example, the recommendation system may increment the secondary score value of the content element being analyzed during loop 332 by one-half point, rather than one point. Additionally or alternatively, the recommendation system may also increment the secondary score value of the second content element having the same ranking as the element being analyzed during loop 332.
At step 338, the recommendation system may flag, mark, or otherwise indicate that the content items identified during step 334 have been processed (and/or analyzed) by the recommendation system during loop 332. As discussed above, in some aspects of the present disclosure, in subsequent iterations of loop 332 with respect to lower ranked content elements, the recommendation system may disregard (or discount) content items that have already been identified, analyzed, and/or processed by the recommendation system with respect to other elements. During step 338, the recommendation system may flag, mark, or otherwise indicate that one or more content items identified during step 334 that have already been considered, analyzed and/or processed by the recommendation system during loop 332.
After step 338, the method may return to step 332 to continue the loop until all of the content elements analyzed during step 305 (and/or ranked during step 308) have been processed, and when all of those elements have been processed, the method may proceed to step 340, where the system may rank (and/or sort) the content elements analyzed during step 332 based on their respective secondary score values. During step 340, the recommendation system may adjust the rankings for one or more content elements based upon preferences and/or other criteria. In some aspects of the present disclosure, the features and/or processes described above with respect to step 318 may be performed by the recommendation system during step 340. At step 342, the recommendation system may determine implicit user content favorites and/or generate content recommendations. The content recommendation system may generate content recommendations based on the consumption history of the user requesting content rankings and/or recommendations, the consumption history of one or more other users or groups of users, and/or other user content consumption preferences. In some aspects of the present disclosure, the features and/or processes described above with respect to step 320 may be performed by the recommendation system during step 342.
Although example embodiments are described above, the various features and steps may be combined, divided, omitted, rearranged, revised and/or augmented in any desired manner, depending on the specific outcome and/or application. Various alterations, modifications, and improvements will readily occur to those skilled in art. Such alterations, modifications, and improvements as are made obvious by this disclosure are intended to be part of this description though not expressly stated herein, and are intended to be within the spirit and scope of the disclosure. Accordingly, the foregoing description is by way of example only, and not limiting. This patent is limited only as defined in the following claims and equivalents thereto.