Dynamic probabilities based intermixing for television recommendations
The dynamic probabilities intermixing process addresses the challenge of personalizing TV viewing experiences by ranking media content recommendations based on calculated probabilities, ensuring that both high and low probability recommendations from diverse providers are considered, thereby enhancing user experience.
Patent Information
- Application Number
- PCT/US2023/082682
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-12-06
- Publication Date
- 2025-06-12
AI Technical Summary
TV applications face challenges in personalizing the viewing experience for users due to the diverse types of media content provided by various media content providers, leading to difficulties in effectively intermixing recommendations.
A dynamic probabilities intermixing process is employed to rank media content recommendations. This process determines category affinity score criteria for users, calculates probabilities for media content categories, associates categories with media content providers, categorizes media content items, and creates a ranked list of media content items sourced from multiple providers, ensuring that higher-probability recommendations are prioritized while also considering lower-probability candidates from different providers.
The dynamic probabilities intermixing process enhances the personalization of the viewing experience by giving higher importance to more highly probable media content recommendations while ensuring that lower-probability recommendations from different providers are not underestimated, resulting in a more diverse and user-tailored media content list.
Smart Images

Figure US2023082682_12062025_PF_FP_ABST
Abstract
Description
DYNAMIC PROBABILITIES BASED INTERMIXINGFOR TELEVISION RECOMMENDATIONSBACKGROUND
[0001] A television (TV) application may present various types of media content of interest to a user. The media content may have different formats such as streaming video and audio. The types of media content may include, but are not limited to, movies, television shows, sporting events, news items, short form videos, and music. In addition, or in the alternative, a variety of media content providers may deliver various types of media content for viewing by the user.SUMMARY
[0002] A TV application may find it difficult to personalize a viewing experience for a user because of the diverse types of media content provided by the variety of media content providers. When personalizing a viewing experience for a user, the TV application may list recommendations of media content for viewing by a user in a ranked list in a row in a user interface of the TV application (e.g., a '‘Top Picks For You’’). The TV application may generate the ranked list using an intermixing process that ranks the media content based on dynamic probabilities. The dynamic probabilities intermixing process may give higher importance to more highly probable media content recommendation candidates while not underestimating the media content recommendation candidates that may be considered lower probability media content recommendation candidates simply because they are provided by a different media content provider.
[0003] In some aspects, the techniques described herein relate to a method including: determining, by a server computer, category affinity score criteria for a user for a plurality of media content categories; calculating a probability for the user for each of the plurality of media content categories based on the category affinity score criteria; associating at least one media content category with each media content provider of a plurality of media content providers; categorizing each media content item of the plurality of media content items into at least one media content category of the plurality' of media content categories; and creating a ranked list of a plurality of media content items sourced by the plurality of media content providers.
[0004] In some aspects, the techniques described herein relate to a method, wherein creating the ranked list of the plurality of media content items sourced by the plurality of media content providers further includes: selecting a first media content item from a first media content category, the selecting based on the calculated probability for the first media content category; and recalculating the probability for each of the plurality of media content categories based on the selection of the first media content item from the first media content category.
[0005] In some aspects, the techniques described herein relate to a method, wherein creating the ranked list of a plurality' of media content items sourced by the plurality of media content providers further includes: selecting a second media content item from a second media content type category, the selecting based on the recalculated probability for the second media content type category; and ranking the first media content item higher than the second media content item in the ranked list of the plurality' of media content items.
[0006] In some aspects, the techniques described herein relate to a method, wherein recalculating the probability for each of the plurality of media content categories based on the selection of the first media content item from the first media content category includes: reducing the probability of the first media content category' by a first factor; and increasing the probability of remaining media content categories by a second factor.
[0007] In some aspects, the techniques described herein relate to a method, wherein determining the content category affinity includes determining, for each media content provider, usage of an application associated with the media content provider, the determining of the application usage including identifying a number of selections of the application.
[0008] In some aspects, the techniques described herein relate to a method, wherein determining the category' affinity' score criteria includes determining a number of watch action selections for each of the plurality of media content items.
[0009] In some aspects, the techniques described herein relate to a method, wherein determining the category' affinity' score criteria includes: for each media content category, associating a boost multiplier with each respective media content category' of the plurality of media content categories; and multiplying, for each of the plurality of media content categories, the probability for each of the plurality of media content categories by the associated boost multiplier.
[0010] In some aspects, the techniques described herein relate to a method, wherein categorizing each media content item of the plurality of media content items into at least one media content category of the plurality of media content categories includes: creating a respective media content group for each media content category of the plurality of media content categories; and sorting the plurality of media content items into the media content groups.
[0011] In some aspects, the techniques described herein relate to a method, further including: generating a sequence of selectable information items that correspond to respective media content items included in the ranked list; and sending, by the server computer, the sequence of selectable information items to a computing device for display in a user interface on a display device of the computing device.
[0012] In some aspects, the techniques described herein relate to a non-transitory computer-readable medium storing executable instructions that when executed by at least one processor of a server computer cause the at least one processor to execute operations, the operations including: determining category affinity score criteria for a user for a plurality of media content categories; calculating a probability for the user for each of the plurality of media content categories based on the category affinity score criteria; associating at least one media content category with each media content provider of a plurality of media content providers; categorizing each media content item of the plurality of media content items into at least one media content category of the plurality of media content categories; and creating a ranked list of a plurality of media content items sourced by the plurality of media content providers.
[0013] In some aspects, the techniques described herein relate to a non-transitory computer-readable medium, wherein creating the ranked list of the plurality of media content items sourced by the plurality of media content providers further includes: selecting a first media content item from a first media content category, the selecting based on the calculated probability for the first media content category; and recalculating the probability for each of the plurality of media content categories based on the selection of the first media content item from the first media content category.
[0014] In some aspects, the techniques described herein relate to a non-transitory' computer-readable medium, wherein creating the ranked list of a plurality of media content items sourced by the plurality of media content providers further includes: selecting a second media content item from a second media content type category, the selecting based on the recalculated probability for the second media content typecategory; and ranking the first media content item higher than the second media content item in the ranked list of the plurality of media content items.
[0015] In some aspects, the techniques described herein relate to a non-transitory computer-readable medium, wherein recalculating the probability for each of the plurality of media content categories based on the selection of the first media content item from the first media content category includes: reducing the probability of the first media content category by a first factor; and increasing the probability of remaining media content categories by a second factor.
[0016] In some aspects, the techniques described herein relate to a non-transi tory computer-readable medium, wherein determining the content category' affinity includes determining, for each media content provider, usage of an application associated with the media content provider, the determining of the application usage including identifying a number of selections of the application.
[0017] In some aspects, the techniques described herein relate to a non-transitor ' computer-readable medium, wherein determining the category’ affinity score criteria includes determining a number of watch action selections for each of the plurality of media content items.
[0018] In some aspects, the techniques described herein relate to a non-transitory' computer-readable medium, wherein determining the category affinity score criteria includes: for each media content category, associating a boost multiplier with each respective media content category' of the plurality of media content categories; and multiplying, for each of the plurality of media content categories, the probability for each of the plurality' of media content categories by the associated boost multiplier.
[0019] In some aspects, the techniques described herein relate to a non-transitory’ computer-readable medium, wherein categorizing each media content item of the plurality' of media content items into at least one media content category of the plurality of media content categories includes: creating a respective media content group for each media content category’ of the plurality of media content categories; and sorting the plurality of media content items into the media content groups.
[0020] In some aspects, the techniques described herein relate to a non-transitory' computer-readable medium, wherein the operations further include: generating a sequence of selectable information items that correspond to respective media content items included in the ranked list; and sending the sequence of selectable informationitems to a computing device for display in a user interface on a display device of the computing device.
[0021] In some aspects, the techniques described herein relate to a system including: at least one processor; and a non-transi lory computer-readable medium storing executable instructions that execute an intermixing module on a server, the intermixing module configured to: determine category affinity score criteria for a user for a plurality of media content categories; calculate a probability for the user for each of the plurality’ of media content categories based on the category affinity score criteria; associate at least one media content category’ with each media content provider of a plurality' of media content providers; categorize each media content item of the plurality of media content items into at least one media content category of the plurality of media content categories; and create a ranked list of a plurality of media content items sourced by the plurality of media content providers.
[0022] In some aspects, the techniques described herein relate to a system, wherein creating the ranked list of the plurality of media content items sourced by the plurality of media content providers further includes: selecting a first media content item from a first media content category, the selecting based on the calculated probability for the first media content category7; and recalculating the probability for each of the plurality of media content categories based on the selection of the first media content item from the first media content category.
[0023] In some aspects, the techniques described herein relate to a system, wherein creating the ranked list of a plurality of media content items sourced by the plurality of media content providers further includes: selecting a second media content item from a second media content type category, the selecting based on the recalculated probability for the second media content type category; and ranking the first media content item higher than the second media content item in the ranked list of the plurality of media content items.
[0024] In some aspects, the techniques described herein relate to a system, wherein recalculating the probability for each of the plurality of media content categories based on the selection of the first media content item from the first media content category includes: reducing the probability' of the first media content category' by a first factor; and increasing the probability of remaining media content categories by a second factor.
[0025] In some aspects, the techniques described herein relate to a system, wherein determining the content category affinity includes determining, for each media content provider, usage of an application associated with the media content provider, the determining of the application usage including identifying a number of selections of the application.
[0026] In some aspects, the techniques described herein relate to a system, wherein determining the category affinity score criteria includes determining a number of watch action selections for each of the plurality of media content items.
[0027] In some aspects, the techniques described herein relate to a system, wherein determining the category affinity score criteria includes: for each media content category, associating a boost multiplier with each respective media content category of the plurality of media content categories; and multiplying, for each of the plurality of media content categories, the probability for each of the plurality of media content categories by the associated boost multiplier.
[0028] In some aspects, the techniques described herein relate to a system, wherein categorizing each media content item of the plurality of media content items into at least one media content category of the plurality of media content categories includes: creating a respective media content group for each media content category of the plurality of media content categories; and sorting the plurality of media content items into the media content groups.
[0029] In some aspects, the techniques described herein relate to a system, wherein the intermixing module is further configured to: generate a sequence of selectable information items that correspond to respective media content items included in the ranked list; and send the sequence of selectable information items to a computing device for display in a user interface on a display device of the computing device.
[0030] The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features will be apparent from the description and drawings, and from the claims.BRIEF DESCRIPTION OF THE DRAWINGS
[0031] FIG. 1A illustrates an example of a user interacting with a network- connected display device and a media adapter, according to implementations described throughout this disclosure.
[0032] FIG. IB illustrates an example system for implementing a dynamic probabilities intermixing process and for presenting a ranked list of media content recommendations in a user interface of a TV application executing on a network- connected display device, according to implementations described throughout this disclosure.
[0033] FIG. 2 illustrates an example graph showing how media content may be ranked and user interface slots may be allocated for three categories of media content providers, according to implementations described throughout this disclosure.
[0034] FIG. 3 illustrates a block diagram for implementing a media content provider category affinity computation for a dynamic probabilities intermixing process, according to implementations described throughout this disclosure.
[0035] FIGS. 4A-B are illustrations of example graphs showing the effect of calculated parameters on beta probability distributions for media content categories, according to implementations described throughout this disclosure.
[0036] FIG. 5 is an illustration of the implementation of a dynamic probabilities intermixing algorithm by a probabilistic intermixing module, according to implementations described throughout this disclosure.
[0037] FIG. 6 illustrates a flowchart depicting example operations of a dynamic probabilities intermixing algorithm, according to implementations described throughout this disclosure.DETAILED DESCRIPTION
[0038] When personalizing a viewing experience for a user, a TV application may list recommendations of media content for viewing by a user in a row of a user interface of the TV application. For example, the row may include, for each media content recommendation, an area or slot for the media content recommendation. Multiple media content providers or streaming sen-ice platforms may deliver the media content to a user. The slot may include a visual representation of the media content recommendation along with a link to the recommended media content. The TV application may personalize a viewing experience for a user by listing the media content recommendations for viewing by the user in a ranked order in the row of the user interface of the TV application. For example, as will be described herein, the row may be included in an area of the user interface labeled as a "Top Picks For You.”
[0039] A technical problem for a TV application may be how to intermix the recommendations of media content for viewing from multiple media content providers in the row of a user interface for the TV application. For example, the media content recommendations may be in an ordered list for each media content provider such that the first media content candidate in the list is ranked the best among all the media content recommendations in the list. Media content provider category affinity scores for a user may provide a probability score for a media content provider. The probability score may indicate how much the user likes the media content provided by the respective media content provider.
[0040] As a technical solution, the TV application may use a dynamic probabilities intermixing process as described herein to continuously recalculate media content provider category affinity scores for the user when generating the ordered list of media content recommendations. Use of the dynamic probabilities intermixing process can result in the technical effect of giving higher importance to more highly probable media content recommendation candidates while not underestimating the media content recommendation candidates that may be considered lower probability media content recommendation candidates simply because they are provided by a different media content provider.
[0041] FIG. 1A illustrates an example of a user 101 interacting with a network- connected display device 104 and a media adapter 107, according to implementations described throughout this disclosure. FIG. 1 A will further be described with reference to FIG. IB, which is described in more detail herein.
[0042] In some implementations, referring also to FIG. IB, the user 101 may connect to and interact with the media adapter 107 using a television (TV) application110 installed on a mobile computing device 102. Examples of the mobile computing device 102 may include, but are not limited to, a mobile phone, a smartphone, a tablet computer, a laptop computer, and a personal digital assistant.
[0043] The user, interacting with the TV application 110, may launch a user interface (UI) 112 on a display 132 of the network-connected display device 104. The TV application 110 may present a ranked list of recommended media content in a row111 in the user interface 112 (e.g., “Top Picks For You”). For example, the row 111 may include, for each media content recommendation, an area or slot (e.g., slot 109) that includes a visual representation of the media content recommendation along with a link to the recommended media content.
[0044] The network-connected display device 104 may communicate with a server computer 106 and media content providers 160 by way of a network 150. The media content providers 160, the network-connected display device 104, the server computer 106, and the mobile computing device 102 may interact with and communicate with one other by way of the network 150. In some implementations, the mobile computing device 102 may interface or connect to the media adapter 107 and / or the network-connected display device 104 by way of a wireless communication link that may be a short-range wireless connection such as, for example a Bluetooth connection or a Wi-Fi (e.g., direct Wi-Fi) connection.
[0045] In some implementations, referring to FIG. IB, the user 101 may connect to and interact with the media adapter 107 by way of the network-connected display device 104 using a server-side television (TV) application 116 installed on the server computer 106. The media adapter 107 may be connected or interfaced to the network- connected display device 104. The network-connected display device 104 may be communicatively coupled or connected to the server computer 106 by way of a network 150. The network-connected display device 104 may execute a unified television application 130 that may interface with the server-side TV application 116. The unified television application 130 may present a ranked list of recommended media content in the row 111 in the user interface 112 (e.g.. “Top Picks For You'’). The network-connected display device 104 may receive the ranked list as a media content recommendation stream from the server computer 106.
[0046] In some implementations, the user 101 may interact with the network- connected display device 104 using a remote control device 105. In some implementations, the TV application 110 may render a virtual remote control in a user interface on the mobile computing device 102. The user may interact with the remote control device 105 and / or the virtual remote control when selecting media content for viewing on the network-connected display device 104.
[0047] FIG. IB illustrates an example system 100 for implementing a dynamic probabilities intermixing process and for presenting a ranked list of media content recommendations in a user interface (e g., the user interface 112) of a TV application (e.g., the unified television application 130) executing on a network-connected display device (e.g., the network-connected display device 104), according to implementations described throughout this disclosure.
[0048] The mobile computing device 102 may be configured to execute the TVapplication 110. The mobile computing device 102 may include a mobile computing device display 108 configured to display a UI 114. A user may interact with the UI 114 to set up, control, and interact with the TV application 110.
[0049] The mobile computing device 102 may be any type of computing device that includes one or more processors (processor(s) 140), one or more memory devices (memory device(s) 142), and an operating system 144. The mobile computing device 102 may be a smartphone, a tablet, a wearable device, a laptop computer, or a desktop computer. In some implementations, the operating system 144 may be system software that manages computer hardware, software resources, and provides common sendees for computing programs.
[0050] In some implementations, the mobile computing device 102 may be a tablet, a smartphone, or a wearable. In these implementations, the operating system 144 may be referred to as a mobile operating system. The mobile operating system may be configured to execute on devices that, in general, include display devices that may be smaller in size than, for example, a display device included in a laptop computer or a desktop computer. In some implementations, the mobile computing device 102 may be a laptop computer. In these implementations, the operating system may be referred to as a laptop or desktop operating system. In these implementations, the operating system 144 may be an operating system designed for a display that is larger in size than that included in a tablet, a smartphone, or a wearable.
[0051] In some implementations, the media adapter 107 (e.g., a casting device, a media streaming device, a media streaming player) may be interfaced with or connected to the network-connected display device 104. The media adapter 107 may interact with and communicate with the media content providers 160, the server computer 106. and the mobile computing device 102 when providing media content to the network- connected display device 104. In some implementations, the media adapter 107 may be embedded in and / or an integrated part of the network-connected display device 104.
[0028] The media adapter 107 may facilitate providing (e.g., streaming) media content (e.g.. streaming video such as movies, TV shows, etc.) from one or more streaming services included in the media content providers 160 to the network-connected display device 104. For example, the media adapter 107 may directly connect to a connector on the netw ork-connected display device 104 by way of connection 165. The media adapter 107 may provide digital video and / or audio to the network-connected display device 104. For example, the media adapter 107 may connect to a high-definitionmultimedia interface (HDMI) connector included in the network-connected display device 104. Examples of the media adapter 107 may include, but are not limited to, a set- top box, a television box, and a streaming media adapter.
[0052] The user 101 may connect to and interact with the media adapter 107 using a television (TV) application 110 installed on the mobile computing device 102. The user, interacting with the TV application 110, may select streaming services (e.g., free services, subscription-based services) for viewing media content on the network- connected display device 104. As described, the media adapter 107 can facilitate the interface between the media content providers 160 and the network-connected display device 104 that the user 101 uses to view media content (e.g., streaming media content, movies, TV shows, etc.).
[0053] In some implementations, the mobile computing device 102 may connect to or interface with the media adapter 107 by way of a wireless communication link 163. The wireless communication link 163 may be short-range wireless connection such as a Bluetooth connection. In some examples, the wireless communication link 163 may be a Wi-Fi (e.g., direct Wi-Fi) connection.
[0054] The media adapter 107 may be any type of computing device that includes one or more processors (processor(s) 170), one or more memory7devices (memory' device(s) 172), and an operating system 174. In some implementations, the processor(s) 170 may include a system on a chip (SoC). The SoC may include a central processing unit (CPU), a graphic processing unit (GPU), one or more memory interfaces, and one or more input / output interfaces and devices. In some implementations, the operating system 174 may be system software that manages computer hardware, software resources, and provides common services for computing programs.
[0055] The media content providers 160 may include a variety of streaming service and media content sources and service platforms. In some implementations w here multiple different media content providers deliver recommended media content, each media content provider may support the delivery’ of specific types of media content. A video sharing provider may support the delivery of news items, short form videos, and / or music. A subscription-based streaming service provider may support the delivery of movies, television shows, and / or sporting events. A free streaming service provider may support the delivery' of movies, television shows, and / or music. A free live television news channel provider may support the delivery’ of news items. A subscription-based live sports channel provider may support the delivery7of live sporting events.
[0056] Example subscription-based streaming service providers may include but are not limited to a subscription based video on demand media content providers (SVOD 160a), and advertisement based video on demand media content providers (AVOD 160b). The media content providers 160 may include user generated content providers 160c. The media content providers 160 may include free streaming service providers such as free live television (TV) content providers 160d. The media content providers 160 may include paid streaming service providers such as paid live television (TV) content providers 160e.
[0057] The network-connected display device 104 may include the unified television application 130. The unified television application 130 may keep a record of the interactions of the user with the media content in the media content recommendation stream received from the server computer 106 for display in one or more rows in the user interface 112. The network-connected display device 104 may send the record of the interactions to the server computer 106 for use in determining media content recommendations for the user.
[0058] In some implementations, the network-connected display device 104 may be configured to execute the unified television application 130. For example, the network-connected display device 104 may be a smart television. For example, a smart television may be a network-enabled television that may connect to media content providers (e.g., media content providers 160) by way of a network (e.g., the network 150). The media content providers may source media content to the smart television. In these implementations, a user may interact with the unified television application 130 to access media content from the media content providers 160. The unified television application 130 may interface with the server computer 106, and specifically with the server-side TV application 116. The unified television application 130 may provide similar functionality to the user as that provided by an application executing on the media adapter 107. For example, executing the unified television application 130 by the network-connected display device 104 allows the network-connected display device 104 to obtain a media content recommendation stream from the server computer 106.
[0059] The network-connected display device 104 may be configured to connect to the network 150. In some implementations, the network-connected display device 104 is a television (e.g., a smart television (TV)). The network-connected display device 104 may include one or more processors (processor(s) 156), one or more memory devices(memory device(s) 152), and an operating system (OS) 154. The operating system 154 may execute (or assist with executing) the unified television application 130.
[0060] In some implementations, the operating system 154 may be a browser application. A browser application is a web browser configured to access information on the Internet by way of a network (e.g., the network 150). A browser application may launch one or more browser tabs in the context of one or more browser windows in the browser application. In some implementations, the operating system 154 is a Linuxbased operating system configured to execute (or assist with executing) the unified television application 130.
[0061] The system 100 includes one or more server computers (e.g., the server computer 106) configured to interface with the mobile computing device 102, the media adapter 107, the media content providers 160, and the network-connected display device 104 by way of the network 150. In some implementations, the network 150 may establish a wireless communication link between the network-connected display device 104, the mobile computing device 102, the media adapter 107, the media content providers 160, and the server computer 106.
[0062] The server computer 106 may include an intermixing module 120. The intermixing module 120 may implement a dynamic probabilities intermixing process for generating a ranked list of media content recommendations. The server computer 106 may send the ranked list of media content recommendations as a media content recommendation stream to the network-connected display device 104. The network- connected display device 104 may provide the media content recommendation stream to the unified television application 130. The unified television application 130 may generate the rows for display to the user in the user interface 112 as described herein.
[0063] The server computer 106 may include a unified media platform (UMP) 158. The UMP 158 may contribute to the managing of media content recommendations. The UMP 158 may manage the providing of the media content associated with the media content recommendations generated by the intermixing module 120 to the network- connected display device 104. In some implementations, the UMP 158 may manage the providing of the media content associated with the media content recommendations from the media content providers 160 to the mobile computing device 102.
[0064] The UMP 158 may provide a media content recommendation stream as described herein to the network-connected display device 104. In some implementations, the UMP 158 may provide the media content recommendation stream to the mediaadapter 107, which in turn streams the selected media content from the media content providers 160 to the network-connected display device 104. In some implementations, the server-side television application 116 may provide the media content recommendation stream that includes a ranked ordered list of media content recommendations generated by the intermixing module 120 to the network-connected display device 104 for presenting in the user interface 112 by the unified television application 130. In response to receiving an indication of a selection from the media content recommendations, the server-side television application 116 may enable display of the media content on the display 132. In some implementations, the UMP 158 may function as a centralized media content management module configured to provide the media content recommendations to the mobile computing device 102.
[0065] The server computer 106 may include a knowledge module 166. The knowledge module 1 6 may generate media content recommendations for associating with an account of a user based, in part, on a multi-dimensional user activity characteristic associated with the account of the user and the information associated with media content items provided by the media content providers 160. The user activity' characteristic associated with the account of the user may be obtained from a plurality of information sources that may include, but are not limited to, a search engine, a mapping application, and an online retailer. The information sources may provide activity data related to activities of the account of the user by way of a respective software program or application.
[0066] The knowledge module 166 may generate media content recommendations for associating with an account of a user further based, in part, on knowledge of the user (e.g., interests and activities) as determined from the interactions of the user with the TV application 110, the media adapter 107, and the network- connected display device 104. For example, the account of the user associated with the mobile computing device 102, the media adapter 107, or the network-connected display device 104 may be associated with one or more information sources (e.g., applications of the user).
[0067] The server computer 106 may include a provider to content category mapping module 122 as part of the intermixing module 120. The provider to content category mapping module 122 may map each media content recommendation to at least one category based on a category type associated with the media content provider. In some implementations, a media content provider may be associated with more than onecategory. Examples of the mapping of media content providers to a category7type are shown with reference to FIG. 3.
[0068] The server computer 106 may include a category affinity' module 118 as part of the intermixing module 120. The category' affinity' module 1 18 may' receive information and data from the knowledge module 166 related to a user activity' characteristic associated with the account of the user. The category affinity module 118 may calculate media content provider category affinity scores for a user based on past interactions of the user with a TV application (e.g., the unified TV application 130) and the user activity' characteristic. The category' affinity' scores may represent how much a user interacts with certain media content from particular media content providers in a specific category indicating how much the user likes the media content.
[0069] For example, category' affinity score criteria may include a count of the number of times the user selects a media content provider application for a media content provider. In some implementations, the user may select the media content provider application in a user interface of the TV application 110 executing on the mobile computing device 102. Based on the selection, the TV application 110 may open or launch the media content provider application on the mobile computing device 102. In some implementations, the user may select the media content provider application in a user interface of the unified television application 130 executing on the network- connected display device 104. Based on the selection, the unified television application 130 may open or launch the media content provider application on the network- connected display device 104.
[0070] For example, the count of the number of times the user selects the media content provider application for the media content provider may be increased each time the user selects, and the unified television application 130 and / or the TV application 110 opens the media content provider application. In addition, or in the alternative, the count of the number of times the user selects the media content provider application for the media content provider may be increased when the user selects a media content recommendation for media content that is delivered by the media content provider associated with the media content provider application.
[0071] The count of the number of times the user selects the media content provider application for the media content provider may be increased when the user selects a media content recommendation that is included in a slot in the user interface of the TV application 110 and / or the unified television application 130. For example.referring to FIG. 1A, each media content recommendation may have an associated icon or other type of representation that may be displayed in an area or slot (e.g., the slot 109) in a single row (e.g., the row 111) of the user interface (e.g., the user interface 112) of a TV application (e.g., the unified television application 130). As such, each media content recommendation may be associated with a slot in a single row of a user interface of a TV application. The count of the number of times the user selects, and the TV application 110 and / or the unified television application 130 subsequently opens a media content provider application may be for all media content provider applications in a particular category.
[0072] A user may use the remote control device 105 to interact with the unified television application 130. In addition, or in the alternative, the category affinity score criteria may include a count of the number of times the user uses the remote control device 105 to select or click on media content in the user interface of the unified television application 130. The count of the number of times the user uses the remote control device 105 to select or click on media content may include a count of the number of times the user uses the television remote control to select or click on a media content provider application in a user interface of the unified television application 130. For example, referring to FIG. 1 A, the count of the number of times the user uses the remote control device 105 to select or click on media content may be increased when the user, interacting with the remote control device 105, selects or clicks on a media content recommendation that is included in a slot (e.g., slot 109) in the user interface (e.g., user interface 112) of the TV application (e.g., the unified television application 130).
[0073] In addition, or in the alternative, the category affinity score criteria may include entitlement information associated with the user for each media content provider. For example, the entitlement information associated with the user for a media content provider may identity’ if the user has a valid subscription to the services provided by the media content provider, how long the user has had the valid subscription, and other usage information. In addition, or in the alternative, the entitlement information associated with the user for a media content provider may further identify what services provided by the media content provider the user may be entitled to.
[0074] In addition, or in the alternative, the category affinity score criteria may include when (e.g., date and time of day) the unified television application 130 launches the media content provider application on the network-connected display device 104. In addition, or in the alternative, the category affinity score criteria may include when (e.g..date and time of day) the TV application 110 launches the media content provider application on the mobile computing device 102. The category affinity score criteria may include when (e.g., date and time of day) the TV application 1 10 and / or the unified television application 130 launches the media content provider application on the mobile computing device 102 and the network-connected display device 104, respectively. For example, the category’ affinity score criteria may specify when the TV application 110 and / or the unified television application 130 launches media content provider applications in a particular category.
[0075] The server computer 106 may include a probabilistic intermixing module 124 as part of the intermixing module 120. The probabilistic intermixing module 124 may perform a mixing and ranking of categorized media content provided by different types and sources for the media content. The probabilistic intermixing module 124 may receive input from a category affinity model 126. The category affinity model 126 may provide a model for each media content category that the probabilistic intermixing module 124 may use when ranking the media content for a user. For example, the category affinity module 118 may generate and dynamically update the category affinity model 126 based on calculations of media content provider category affinity scores for the user based on past interactions of the user with the unified TV application 130, the TV application 110, and the user activity characteristic provided by the knowledge module 166.
[0076] The server computer 106 may include an artificial boost module 128 as part of the intermixing module 120. The artificial boost module 128 may provide a multiplier for a probability of each media content category to the probabilistic intermixing module 124 for use in determining the mixing and ranking of categorized media content provided by different types and sources for the media content to the user.
[0077] A Top Picks For You (TPFY) row in a user interface of a TV application may provide a list of media content recommendations to a user of the TV application. The TPFY row may include media content recommendations of different types for a variety of different media content providers and sources.
[0078] The server computer 106 may include Top Picks For You (TPFY) generator module 186 as part of the intermixing module 120. Referring to FIG. 1A, the TPFY generator module 186 may generate the row 111 to include the media content as ranked by the probabilistic intermixing module 124 including a selectable slot for each identified ranked media content item in the row 111. For example, the slot 109 is formedia content item “AV ranked first in the ranked media content list provided to the network-connected display device 104 in the media content recommendation stream received from the server computer 106. The server computer 106 may be computing devices that take the form of a number of different devices, for example a standard server, a group of such servers, or a rack server system. In some implementations, the server computer 106 may be a single system sharing components such as one or more processors (e.g., processor(s) 180) and one or more memory devices (e.g., memory device(s) 182).
[0079] The mobile computing device 102 may include the mobile computing device display 108. In some implementations, the mobile computing device display 108 is a display device such as a liquid crystal display (LCD), a light-emitting diode (LED) display, an organic light-emitting diode (OLED) display, or an active-matrix organic light-emitting diode (AMOLED) display. The network-connected display device 104 may include the display 132. In some implementations, the display 132 is a display device such as a liquid cry stal display (LCD), a light-emitting diode display (LED) display, a plasma display, a quantum dot light-emitting diode display (QLED) display, or an organic light-emitting diode (OLED) display.
[0080] The processor(s) 156, the processor(s) 140, the processor(s) 170, and the processor(s) 180 may be formed in a substrate configured to execute one or more machine executable instructions or pieces of software, firmware, or a combination thereof. The processor(s) 156, the processor(s) 140, the processor(s) 170, and the processor(s) 180 may be semiconductor-based. For example, the processor(s) 156, the processor(s) 140, the processor(s) 170, and the processor(s) 180 may include semiconductor material that can perform digital logic.
[0081] The memory device(s) 152, the memory device(s) 142. the memory’ device(s) 172, and the memory device(s) 182 may include main memory' that stores information in a format that can be read and / or executed by the processor(s) 156, the processor(s) 140, the processor(s) 170, and the processor(s) 180 respectively. The memory device(s) 152, the memory device(s) 142, the memory device(s) 172, and the memory device(s) 182 may include one or more random-access memory (RAM) devices and / or one or more read-only memory (ROM) devices.
[0082] The memory' device(s) 152, memory' device(s) 142, the memory device(s) 172. and the memory device(s) 182 may store applications that, when executed by the processor(s) 156, the processor(s) 140, the processor(s) 170, and the processor(s) 180, respectively, perform operations. For example, the memory device(s) 142 may store theoperating system 144 and the TV application 110 that, when executed by the processor(s) 140. may perform operations on the mobile computing device 102. For example, the memory device(s) 152 may store operating system 154 and the unified television application 130 that, when executed by the processor(s) 156, may perform operations on the network-connected display device 104.
[0083] In some implementations, the memory device(s) 182 may represent any kind of (or multiple kinds of) memory (e.g., RAM. flash, cache, disk, tape. etc.). In some implementations, the memory device(s) 182 may include external storage, e.g., memory physically remote from but accessible by the server computer 106. The server computer 106 may include one or more modules, engines, or applications representing specially programmed software. In some implementations, the server computer 106 may include the operating system 184, the server-side TV application 116, the UMP 158, the knowledge module 166, and the intermixing module 120. For example, the memory device(s) 182 may store the operating sy stem 184, the server-side TV application 116, the UMP 158, the knowledge module 166, and the intermixing module 120 that, when executed by the processor(s) 180, may perform operations on server computer 106 to implement a dynamic probabilities intermixing process for generating a ranked list of media content recommendations.
[0084] The network 150 may include the Internet and / or other types of data networks, such as a local area network (LAN), a wide area network (WAN), a cellular network, satellite network, or other types of data networks. The network 150 may also include any number of computing devices (e.g., computer, servers, routers, network switches, etc.) that are configured to receive and / or transmit data within the network 150. The network 150 may further include any number of hardwired and / or wireless connections. The network 150 may be, for example, communications networks having one or more types of topologies, including but not limited to the Internet, intranets, local area networks (LANs), cellular networks, Ethernet, Storage Area Networks (SANs), telephone networks, and Bluetooth personal area networks (PAN). In some implementations, two or more devices in a sub-network may be coupled by way of a wired connection, while at least some of the devices in the same sub-network are coupled by way of a local radio communication network (e.g., ZigBee, Z-Wave, Insteon, Bluetooth, Wi-Fi and other radio communication networks).
[0085] FIG. 2 illustrates an example graph 200 showing how media content maybe ranked and user interface slots may be allocated for three categories of media contentproviders: live television media content providers and sources (live 202), user generated media content providers and sources (UGC 204), and video on demand media content providers and sources (VOD 206). Each category (live 202, UGC 204, and VOD 206) may include subscription-based (paid) media content providers, and free media content providers and sources.
[0086] In some implementations, to intermix the recommendations of media content for viewing from multiple media content providers into a single row in a user interface of a TV application, a single score for each recommended media content may be used that is independent of the media content provider providing the content. Intermixing media content recommendations in this manner may allow for the comparison of media content recommendations for use in an ordered list of media content that is independent of the media content provider that is providing the respective recommended media content.
[0087] In general, however, using a simple intermixing process for determining media recommendation candidates may result in giving media content candidates from a first media content provider higher probabilities for recommendations than media content candidates from a second media content provider. In some implementations, a simple intermixing process may determine recommendations for media content using a roundrobin method.
[0088] In some implementations, the server computer 106 may transmit a media content recommendation stream to the network-connected display device 104. The media content recommendation stream may include a ranked and ordered list of recommended media content items that includes information and data associated with each media content item such as a title, a description, and a link to a source of the media content. The TPFY generator module 186 may perform a slot distribution process that generates the media content recommendation stream as an ordered series of slots for inclusion in a row of a user interface of a TV application. For example, the network-connected display device 104 may receive the media content recommendation stream from the sen' er computer 106. The unified television application 130 may associate each slot with an icon or other type of representation that may be displayed in an area or slot in a single row7of the user interface of the unified television application 130. For example, referring to FIG. 1A, the unified television application 130 may associate an icon or other type of representation for a first ranked media content item in slot 109 in the row 111 of the user interface 112.
[0089] The simple intermixing process may determine the slot distribution for recommended media content items in a row of a user interface for a TV application based on the respective provider of the media content. For example, an implementation may include three media content providers, a first media content provider (Pl), a second media content provider (P2), and a third media content provider (P3), with each media content provider providing five media content recommendation candidates in a ranked order (e.g., content Al to A5 for provider Pl, content Bl to B5 for provider P2. and content Cl to C5 for provider P3). Each media content provider may have an associated media content provider category affinity' score or media content probability score that may be used to rank the media content recommendations for the user. For example, Pl may have an associated media content probability’ score of 0.50, P2 may have an associated media content probability score of 0.30, and P3 may have an associated media content probability score of 0.20. As such, a media content provider probability7score distribution for Pl, P2, and P3 is 0.50, 0.30, 0.20, respectively. The higher the media content probability score for a media content provider, the more a user likes or prefers content provided by the media content provider.
[0090] In this example, a simple intermixing process can create or generate a row of fifteen candidates that are the top fifteen best media content candidates for viewing by the user. Based on the media content probability scores and the use of the round-robin method, the round-robin method may rank the media content recommendations for slots 1 to 15 as follows: Al , Bl , Cl , A2, B2, C2, A3, B3, C3, A4, B4, C4, A5, B5, C5. The simple intermixing process may rank each media content in its ranked order based on the media content probability score and may allocate a slot in the row of the user interface for each respective media content provider based on its associated media content probability score. For example, the simple intermixing process may allocate slots 1, 4. 7, 10, and 13 to the first media content provider. For example, the simple intermixing process may allocate slots 2, 5. 8, 11, and 14 to the second media content provider. For example, the simple intermixing process may allocate slots 3, 6, 9, 12, and 15 to the third media content provider.
[0091] A dynamic probabilities intermixing process may' give higher importance to more highly probable media content recommendation candidates while not underestimating the media content recommendation candidates that may be considered lower probability media content recommendation candidates simply because they are provided by a different media content provider. The dynamic probabilities intermixingprocess may determine recommendations for media content using a probabilistic method. For example, a sampling distribution for the recommended media content may be based on a probability distribution for the media content providers.
[0092] In some implementations, the dynamic probabilities intermixing process may modify the slot distribution for media content providers on a progressive slot-by- slot basis. Referring to the example above, Pl has the highest probability score. The dynamic probabilities intermixing process selects Pl to have its associated top ranked media content recommendation candidate, content Al, for the first slot (slot 1). The dynamic probabilities intermixing process may then modify or recalculate the media content provider probability score distribution for Pl, P2, and P3. The dynamic probabilities intermixing process may use the recalculated media content provider probability score distribution to determine which of the three possible media content providers may provide a media content recommendation for the second slot (slot 2). For example, the recalculated media content provider probability score distribution for Pl, P2, and P3 may be 0.40, 0.35, 0.25, respectively. The recalculated media content provider probability score distribution reduced the probability for Pl by 0.10 from 0.50 to 0.40, redistributing the 0. 10 by increasing the probability for P2 by 0.05 from 0.30 to 0.35 and the probability for P3 by 0.05 from 0.20 to 0.25.
[0093] The intent of the redistribution is to provide the other media content providers. P2 and P3. with higher probabilities such that these media content providers have an increased opportunity to provide media content recommendation candidates in comparison to Pl. After each selected media content candidate recommendation, the dynamic probabilities intermixing process may recalculate the media content provider probability score distribution for Pl, P2, and P3. For example, the dynamic probabilities intermixing process may then modify or recalculate the media content provider probability score distribution for Pl, P2, and P3 when selecting a media content provider. Doing so at each selection step allows each media content provider an increasingly equal opportunity to provide media content recommendation candidates while giving the prime and initial slots to the media content provider, Pl, that based on the initial rankings and distribution is preferred by the user.
[0094] Continuing with the above example, the dynamic probabilities intermixing process may then modify or recalculate the media content provider probability score distribution for Pl, P2, and P3 when determining the media content recommendation for the third slot (slot 3). For example, the recalculated media contentprovider probability' score distribution for Pl, P2, and P3 may be 0.34, 0.38, 0.28, respectively. The recalculated media content provider probability’ score distribution reduced the probability- for Pl by 0.06 from 0.40 to 0.34, redistributing the 0.06 by increasing the probability for P2 by 0.03 from 0.35 to 0.38 and the probability’ for P3 by 0.03 from 0.25 to 0.28. In this example, the second media content provider (P2) may provide a media content recommendation for the third slot (slot 3).
[0095] In some implementations, the redistribution may be shared proportionally between the media content providers. In the previous examples, the second media content provider and the third media content provider each benefitted from one-half or 50% of the redistribution provided by the reduction in the media content provider probability score for the first media content provider. In some implementations, media content provider probability scores for media content providers other than the first media content provider may be recalculated using a different redistribution that may benefit media content providers with increasingly lower media content provider probability scores. For example, a greater percentage of the reduction in the media content provider probability score for the first media content provider may be provided to the media content provider with the lo vest media content provider probability’ score.
[0096] Referring to FIG. 2, the graph 200 show s slot allocation for media content items from three media content providers or sources: live television media content providers and sources (live 202), user generated media content providers and sources (UGC 204), and video on demand media content providers and sources (VOD 206). The graph 200 shoyvs a total number of slots on an x-axis 208 (e.g., a total number of slots equal to twenty) and a number of times a selected media content items falls in a particular category on a y-axis 210.
[0097] For example, an initial probability distribution of recommended media content for the user from the media content providers may be 0.7 for media content provided by the video on demand media content providers and sources (VOD 206), 0.2 for media content provided by the user generated media content providers and sources (UGC 204). and 0.1 for media content provided by the live television media content providers and sources (live 202). Referring to a first slot (slotl 212), out of a total of 1000 media content items selected, approximately 700 media content items are selected from the video on demand media content providers and sources (VOD 206), approximately 200 media content items are selected from the user generated media content providers and sources (UGC 204), and approximately 100 media content itemsare selected from the live television media content providers and sources (live 202).
[0098] The dynamic probabilities intermixing process may change the probability distribution of recommended media content for the user from the media content providers as the slot allocation advances from the first slot (slotl 212) to the twentieth slot (slot20 214) based on the dynamic aspect of the intermixing process. For example, the dynamic probabilities intermixing process recommends media content for the prime and initial slots to the media content provider or source that is more hked by the user. The dynamic probabilities intermixing process, however, provides equal opportunity to all of the media content providers as the slot allocation process continues from the initial slots to the final slots providing an equal opportunity to provide media content to all of the media content providers and sources. The dynamic probabilities intermixing process may exploit more in the beginning slots while exploring new opportunities in the end slots.
[0099] FIG. 3 illustrates a block diagram for implementing a media content provider category affinity computation 300 for a dynamic probabilities intermixing process. For example, referring to FIG. IB, the intermixing module 120 may implement the category affinity computation 300. The category affinity computation 300 may calculate a media content category7affinity score for a user.
[0100] One or more content recommendation providers may provide content recommendations 302 for media content provided by multiple video on demand media content sources. Referring to FIG. IB, the provider to content category mapping module 122 may map each media content recommendation to at least one category based on a category ty pe associated with the provider or source of the recommended media content. A list of categories 312a-e for association with a respective media content provider may include, but are not limited to, a subscription-based Video On Demand (SVOD) category 312a associated with subscription-based Video On Demand (SVOD) content providers, an advertising based video on demand (AVOD) category7312b associated with an advertising based video on demand (AVOD) content providers, a paid live television category 312e associated with paid live television content providers, a free live television category 312d associated with free live television content providers, and a user generated media content category 312c associated with user generated media content providers. For example, the provider to content category7mapping module 122 may categorize a video sharing provider as a user generated media content provider. The provider to content category mapping module 122 may categorize a subscription-based streaming serviceprovider as a subscription-based VOD provider. The provider to content categorymapping module 122 may categorize a free live television news channel provider as a free live television content provider. The provider to content category mapping module 122 may categorize a subscription-based live sports channel provider as a paid live television content provider. The provider to content category- mapping module 122 rnay categorize a free streaming service provider as an Ad based VOD provider. The provider to content category mapping module 122 may map each media content recommendation to at least one category based on a category t pe associated with the media content provider. In some implementations, a media content provider may be associated with more than one category-. In these implementations, a media content provider may be categorized based on the type for the majority of the media content the provider sources.
[0101] As shown in FIG. 3, the provider to content category mapping module 122 may map the media content providers 310a-c to or associate the media content providers 310a-c with the subscription-based Video On Demand (SVOD) category- 312a. The provider to content category mapping module 122 may map the media content providers 310d-e to or associate the media content providers 310d-e with the advertising based video on demand (AVOD) category^ 312b. In some implementations, the advertising based video on demand (AVOD) category- 312b may include advertising based video on demand content providers that implement revenue sharing. The provider to content category mapping module 122 may map the media content provider 31 Of to or associate the media content provider 31 Of with the user generated media content category 312c. The provider to content category mapping module 122 may map the media content providers 310g-h to or associate the media content providers 310g-h with the free live television category 312d. The provider to content category mapping module 122 maymap the media content providers 3 lOi-j to or associate the media content providers 3 lOi- j with the paid live television category 312e.
[0102] The category- affinity- computation 300 may calculate a content categoryaffinity score (a media content provider category affinity score) for a user. A categoryaffinity for a user may provide a probability score for a media content provider. The probability score may indicate how much the user likes the media content provided by the respective media content provider. Referring to FIG. 1 A, the category- affinity- module 118 may receive information and data from the knowledge module 166 related to a user activity characteristic associated with the account of the user. The category affinitymodule 118 may calculate a content category affinity- scores for a user based on pastinteractions of the user with a TV application (e.g., the unified TV application 130), the user activity characteristic, and category affinity score criteria as described with reference to FIG. IB. The category affinity scores may represent how much a user interacts with certain media content from particular media content providers in a specific category indicating how much the user likes the media content.
[0103] For example, the category affinity module 118 may calculate a content categoiy affinity score based on user interactions with a TV application (e.g., the unified television application 130). In some implementations, the calculation may be performed over a period of time (e.g., one day, one week, two weeks, one month, etc.).
[0104] Equation 1:Number of times a media content category is opened = (Number of media content provider application open clicks + Number of assistant based media content application open clicks + Number of remote application open requests + Number of watch action clicks on the application).
[0105] Equation 2:Total number of times media content in all media content categories is opened -where n = total number of media content categories.
[0106] Equation 3:Proportion of media content application opens for a media content category = Number of times media content in the media content category is opened (Equation 1) / Total number of times media content in all media content categories is opened (Equation 2).
[0107] Equation 4:Proportion of media content application usage for a media content category - Media content application usage time for the media content category / Total media content application usage time for all media content categories.
[0108] Equation s:Content category affinity score = (11 1 * Proportion of media content application opens for a media content category (Equation 3) + W2 * Proportion of media content application usage for a media content category (Equation 4) / W1 + W2, where W1 and W2 are weights that the artificial boost module 128 may calculate using, for example, linear regression.
[0109] In some implementations, the category affinity computation 300 may also include a time decay factor. The time decay factor may give preference to categoryaffinity score criteria related to recent clicks as compared to older clicks. In some implementations, the category affinity computation 300 may also include a preferential boost for category affinity score criteria dependent on the time of day and / or the day of the week.
[0110] FIGS. 4A-B are illustrations of example graphs (graph 400 and graph 450, respectively) showing the effect of calculated parameters on beta probability distributions for media content categories. In some implementations, the category affinity’ module 1 18 can generate and update the category affinity model 126 by applying a machine learning sampling algorithm (e.g., Thompson sampling) to a beta probability distribution for each media content category.
[0111] The machine learning sampling algorithm may address an explorationexploitation dilemma. Actions that are performed several times may be referred to as exploration. Exploitation may address explicit trial and error searches for positive behavior or results. Based on the results of the actions of a user, the machine learning sampling algorithm provides a reward or penalty for the action. F or example, the machine learning sampling algorithm may sample interactions of a user with recommended media content.
[0112] The machine learning sampling algorithm may address an explorationexploitation dilemma. Actions that are performed several times may be referred to as exploration. Exploitation may address explicit trial and error searches for positive behavior or results. Based on the results of the actions of a user, the machine learning sampling algorithm may provide a reward or penalty’ for the action. For example, the machine learning sampling algorithm may sample interactions of a user with recommended media content.
[0113] For example, the category affinity module 1 18 may calculate an initial content category affinity score based on user interactions using a heuristic as shown, for example, in Equations 1-5. The category affinity module 118 may use the initial content category affinity score as input to the machine learning sampling algorithm to generate an updated content category affinity score based on applying the machine learning sampling algorithm to a beta probability distribution for the content category (the media content category). Applying the machine learning sampling algorithm to a beta probability' distribution for the content category may add exploration capabilities to the machine learning sampling algorithm. For example, a content category that has a first content category affinity score may receive a second content affinity’ score that is higherthan the first content affinity score after applying the machine learning sampling algorithm to a beta probability distribution for the content category based on explore / exploit strategy of the machine learning sampling algorithm that may sample higher probabilities for less interacted with content categories which can help in exploring. Increasing the content category affinity score may encourage the user to explore more diverse media content recommendations.
[0114] For example, applying the machine learning sampling algorithm to a beta probability distribution for the content category may include:
[0115] (1) for each content category, calculating an initial content category' affinity score using Equations 1-5;
[0116] (2) for each content category, assigning a = the initial content category’ affinity score, and b = 1 - a. For example, if an initial content category' affinity score for subscription-based Video On Demand (SVOD) content is equal to 0.4, then for the SVOD content category a = 0.4 and b = 0.6;
[0117] (3) using a and b as parameters to construct a beta probability distribution for each content category;
[0118] (4) using the machine learning sampling algorithm to sample a number between zero and one for each content category based on the constructed beta probability' distribution for each content category; and
[0119] (5) normalizing the sampled numbers across all the content categories so that the sum of all of the sampled numbers is equal to one.
[0120] The normalized sampled number for each content category' may be considered an updated content category affinity score for the respective content category.
[0121] In some implementations, the user may not have enough past interactions with media content for use by the machine learning sampling algorithm. In these implementations, a cohort of users may be created based on, for example, similar demographics as the user. The category affinity' module 118 may calculate a content category affinity score as described herein for the cohort of users. In some implementations, the category affinity module 118 may define a threshold for a content category affinity score. For example, if a content category' affinity' score is less than the threshold score value the content category' affinity' score for that content category' may be set equal to zero. In some implementations, a content affinity' threshold score value may be set at the same value for all content categories. In some implementations, a content affinity threshold score value may be set at different values for each content category.For example, a content affinity' threshold score value for advertising based video on demand (AVOD) content may be set equal to 0.05. Therefore, a content category affinity’ score equal to 0.04 for the AVOD content may be set equal to zero.
[0122] FIGS. 4A-B show examples of how the parameters a and b can control the shape of the beta probability7distribution curves. Referring to FIG. 4A, the category' affinity module 118 may use calculated parameters a and b to construct a beta probability’ distribution for a first content category (a first curve 402) and a second content category’ (a second curve 404). Referring to FIG. 4B, the category affinity module 118 may use calculated parameters a and b to construct a beta probability distribution for a third content category7(a third curve 406) and a fourth content category (a fourth curve 408). As shown in FIGS. 4A-B, a shape of the beta probability distribution curve for a content category may be narrow or broad based on the calculated parameters a and b.
[0123] In some implementations, the artificial boost module 128 may provide an boost value to the category7affinity7module 118 for use in determining a content category7affinity score. In some implementations, the boost value may be a multiplier that the category affinity module 118 can apply to a probability for each content category.
[0124] For example, the artificial boost module 128 may' provide the category7affinity7module 118 with a boost value to apply to a content category7.
[0125] For example, for a total number of content categories = S', an initial content category affinity score for each content category = Cl to CS (as calculated by, for example. Equation 5), and a boost value for the first content category = k, the category affinity7module 118 may:
[0126] (1) apply the boost value to the initial content category affinity7score Cl for the first content category resulting in an updated content category affinity7score for the first content category = CH.
[0127] Equation 6:Cll = Cl I (k*CI).
[0128] (2) update content category affinity scores for the second through S’ number of content categories that in this example will be equal to the initial content category affinity scores for each of the categories.
[0129] Equation 7 :For i = 2 to i = S, Cli = Ci.
[0130] (3) normalize the updated content category affinity scores.
[0131] Equation 8:For 1=1 to i=S, C2i = Cli '(Cll + C12 + C13+ .. CIS)
[0132] In a non-limiting example, the total number of content categories is set equal to three. If the initial content category affinity score Cl for the first content category is boosted by a factor of 0.5, using Equations 6 to 8, Equations 9 to 11 may then calculate an updated content category' affinity scores C ’ll, C '12, and C’13 for the first category, the second category, and the third category respectively as:
[0133] Equation 9:C’ll = 1.5 * Cl / (Cl + C2 + C3)
[0134] Equation 10:C’12 - C2 / (C1 + C2 C3)
[0135] Equation 11 :C’13 = C3 / (C1 + C2 + C3). where Cl = initial content category affinity score for the first content category, C2 = initial content category affinity’ score for the second content category, and C3 = initial content category affinity score for the third content category.
[0136] In some implementations, two ty pes of artificial boosts may be a permanent boost and a temporary boost. For example, a permanent boost may not have an end date. Referring to FIG. IB, the artificial boost module 128 may provide a permanent boost to the category affinity module 118 for use in presenting an increased number of monetized media content that the TPFY generator module 186 may use in generating a TPFY row of a user interface for a TV application. For example, a temporary boost may have a set end date. Referring to FIG. IB, the category affinity module 118 may run an experiment on a particular content category' when a newer media content candidate generation model is used to improve a quality of the content category. The temporary boost may show an increased number of media content items in the content category to alloyv for evaluation of the effectiveness of the neyver media content recommendation candidate generation model.
[0137] In some implementations, a boost value may be capped. A boost value may not be greater than (exceed) a first value. In addition, or in the alternative, a boost value may not be less than (be below) a second value. The boost value capping may be added as a limitation because a boost value applied to one content category may become a distributed penalty on the other content categories in the total content categories. In some implementations, the use of artificial boosts may result in a drop in user engagement metrics.
[0138] Referring to FIG. 3, the probabilistic intermixing module 124 may implement an intermixing algorithm that may provide an intermix of recommended media content from multiple media content providers in a single row of a user interface for a TV application. For example, the intermixing algorithm may perform the following steps:
[0139] (1) fetch or obtain media content recommendations (content recommendations 302) from one or more media content recommendation providers.
[0140] (2) bucketize or categorize the media content into a category or bucket associated with a respective content category 312a-e. For example, the content categories 312a-e may include buckets for the media content. In some implementations, media content provided by video on demand (VOD) content providers may be categorized in one or more of the subscription-based Video On Demand (SVOD) category 312a and the advertising based video on demand (AVOD) category 312b. For example, advertising based video on demand (AVOD) media content with no revenue sharing may be bucketized with subscription-based Video On Demand (SVOD) media content in the subscription-based Video On Demand (SVOD) category 312a while AVOD with revenue sharing may be categorized into the AVOD category 312b. In some implementations, the media content provided by free live television content providers may be considered free live TV (e.g.. FAST channels) with revenue sharing.
[0141] (3) retain the order of the media content as received by the media content recommendation providers when categorizing or bucketizing the media content into at least one content category 312a-e.
[0142] (4) perform a probabilistic intermixing of the media content from each content category or bucket, the TPFY generator module 186 retaining the ranked ordering of the media content within each category or bucket when generating the TPFY row for the user interface of the TV application.
[0143] Referring to FIG. 3, the probabilistic intermixing module 124 may implement a dynamic probabilities intermixing algorithm using content category affinity scores as calculated by the category affinity module 118 as described herein as the probabilities used by the dynamic probabilities intermixing algorithm. The dynamic probabilities intermixing process may output media content recommendation candidates for a user ensuring the right amount of diversity from each media content category' even when content category affinity scores for the media content categories may be skewed. For example, implementing a dynamic probabilities intermixing process may ensure theeven if the content category affinity score for a first content category is 0.8, the content category affinity score for a second content category is 0.1, and the content category’ affinity score for a third content category' is 0.1, the top five media content recommendation candidates may not be just from the first content category.
[0144] FIG. 5 is an illustration of the implementation of a dynamic probabilities intermixing algorithm 500 by the probabilistic intermixing module 124 as shown in FIG. IB. In some implementations, the probabilistic intermixing module 124 may use a dynamic probabilities intermixing algorithm. For example, for three groups, Group Pl 502, Group P2 504, and Group P3 506, n slots 508a-l (e.g., n =12) in a TPFY row 510 of a user interface (e.g., the user interface 112) of a TV application (e.g., the unified television application 130), and a content category affinity score initial probability’ distribution for the three groups to be Group Pl probability = 0.5, Group P2 probability' = 0.3, and Group P3 probability' = 0.2.
[0145] The dynamic probabilities intermixing algorithm may:
[0146] (1) create one or more buckets of media content in a ratio of the content category affinity scores.
[0147] (2) generate a ranked ordered list of media content recommendations by selecting a media content recommendation candidate from a bucket or category' based on the content category affinity scores or probabilities. For example, there is a 50% chance that media content categorized or bucketized in the content category with the content category affinity score of 0.5 may be selected for inclusion in the ranked ordered list of recommended media content in a next iteration of the media content selection process being performed by the dynamic probabilities intermixing process.
[0148] (3) select a media content recommendation candidate from a content category or bucket;
[0149] (4) reduce the content category affinity score or probability' by a factor =K and redistribute the content category affinity' scores or probabilities for other content categories or buckets by the factor = K so that media content categorized or bucketized into the other content categories may have a greater or higher chance of being selected in the next iteration of the generating of the ranked ordered list of media content recommendations. The dynamic redistributing and recalculating of the content category' affinity scores or probabilities results in media content recommendations for inclusion in the ranked ordered list that are provided or sources from a variety of different media content providers and that are of a variety of ty pes of media content.
[0150] (4) redistribute a content category affinity' score or probability if the content category’ or bucket no longer includes any media content recommendations (e.g., the content category or bucket is finished or empty). In some implementations, the dynamic probabilities intermixing algorithm may redistribute the content category' affinity’ score or probability' equally among content categories or buckets that include candidate media content recommendations.
[0151] The dynamic probabilities intermixing algorithm continues to perform steps (2) to (4) until the media content items have been included in the ranked ordered list of media content recommendations.
[0152] For example, referring to FIGS. 1A-B, 3. and 5, and to the steps for performing the dynamic probabilities intermixing algorithm by the probabilistic intermixing module 124, the TPFY generator module 186 may create a row (e.g., the row 510) that includes n slots (e.g., slots 508a-l), each slot representing a media content recommendation. For twenty media content items with content category' affinity’ scores of 0.5 for a first content category or bucket (Group Pl 502). 0.3 for a second content category or bucket (Group P2 504), and 0.2 for a third content category or bucket (Group P3 506), the first bucket may include ten media content items 512a-j, the second bucket may include six media content items 514a f, and the third bucket may include four media content items 516a-d. The factor, K = 0.2.
[0153] In a first step, the dynamic probabilities intermixing algorithm may select a first media content recommendation candidate for including in a first position or slot (e.g., the slot 508a) in a row (e.g., the row 510) of a user interface (e.g., the user interface 112) for a TV application (e.g., the unified television application 130) by the TPFY generator module 186 from Group Pl based on the Group Pl probability being the highest or largest probability. Based on the media content candidates being included in each group in the order as received from the media content recommendation provider, the selected first media content recommendation candidate may be the media content recommendation candidate at the top or first in the received order for Group A (e.g., media content recommendation candidate Al 512a).
[0154] In a second step, the dynamic probabilities intermixing algorithm may update the probabilities as follows by decreasing the probability’ for Group Pl by the factor, K. and increasing the probability' for each of Group P2 and Group P3 by K / 2.
[0155] Equation 12:Group Pl second probability / = 0.3 = Group Pl probability / K 0.5 0.2
[0156] Equation 13:Group P 2 second probability = 0.2 = Group P 2 probability + (K / 2) = 0.1 +(0.2 / 2)
[0157] Equation 14:Group P 3 second probability = 0.5 = Group P 3 probability + (KP2) = 0.4 +(0.2 / 2)
[0158] In a third step, the dynamic probabilities intermixing algorithm may select a second media content recommendation candidate for including in a second position or slot (e.g., slot 508b) in the row (e.g., the row 510) of the user interface (e.g., the user interface 112) for the TV application (e.g., the unified television application 130) by the TPFY generator module 186 from Group P3 based on the Group P3 second probability being the highest or largest probability. Based on the media content candidates being included in each group in the order as received from the media content recommendation provider, the selected second media content recommendation candidate may be the media content recommendation candidate at the top or first in the received order for Group P3 (e.g., media content recommendation candidate Cl 516a).
[0159] In a fourth step, the dynamic probabilities intermixing algorithm may update the probabilities as follows by decreasing the probability for Group P3 by the factor, K, and increasing the probability for each of Group Pl and Group P2 by K '2.
[0160] Equation 15 :Group Pl third probability = 0.4 = Group Pl second probability + (K / 2) = 0.3 + 0.1
[0161] Equation 16:Group P 2 third probability = 0.3 = Group P 2 second probability + (K2) = 0.2 (0.2 2)
[0162] Equation 17:Group P3 third probability = 0.3 = Group P3 probability - (K) = 0.5 - 0.2
[0163] In a fifth step, the dynamic probabilities intermixing algorithm may select a third media content recommendation candidate for including in a third position or slot (e.g., slot 508c) in the row (e.g., the row 510) of the user interface (e.g., the user interface 112) for the TV application (e g., the unified television application 130) by the TPFY generator module 186 from Group Pl based on the Group Pl third probability being the highest or largest probability. Based on the media content candidates being included in each group in the order as received from the media content recommendation provider, the selected third media content recommendation candidate may be the media content recommendation candidate ain the second received order for Group Pl (e.g., media content recommendation candidate A2 512b).
[0164] The dynamic probabilities intermixing algorithm continues to dynamically recalculate the content category affinity scores or probabilities for each group using the factor = K until media content recommendation candidates are selected for each of the n slots. In some implementations, the dynamic probabilities intermixing algorithm continues to dynamically recalculate the content category affinity scores or probabilities for each group using the factor = K until there are no longer any media content candidates left to recommend.
[0165] In some implementations of the dynamic probabilities intermixing algorithm by the probabilistic intermixing module 124, the dynamic probabilities intermixing algorithm may select an initial number of media content recommendation candidates from the groups with a higher content category affinity score. However, as the dynamic probabilities intermixing algorithm recalculates the probabilities for each iteration of the selection process, the dynamic probabilities intermixing algorithm may then select media content recommendation candidates from other groups with content category affinity’ scores that initially were lower than the content category affinity score for the initial group. Implementing the dynamic probabilities intermixing algorithm in this manner may ensure that the dynamic probabilities intermixing algorithm selects media content recommendation candidates from diverse groups in future iterations of the dynamic probabilities intermixing algorithm and no group is starved. In some implementations, the factor = K may be tuned.
[0166] In some implementations, the probabilistic intermixing module 124 may use a static probabilities algorithm. For example, the static probabilities algorithm may pick a media content recommendation candidate from a group with the highest or largest probability at each iteration of the algorithm without updating or changing the content category affinity scores or probabilities for each group between each selection iteration of the algorithm.
[0167] In some implementations, the probabilistic intermixing module 124 mayuse a multi-slot distribution algorithm. For example, for three groups, Group Pl, Group P2, and Group P3, and n slots, and a content category affinity score initial probabilitydistribution for the three groups to be Group Pl probability = 0.5, Group P2 probability- = 0.3, and Group P3 probability- = 0.2, the multi-slot distribution algorithm may:
[0168] (1) use the content category affinity- score initial probability distribution for the three groups when selecting a media content recommendation candidate for association with a first slot in a row of a user interface for a TV application.
[0169] (2) linearly project and calculate the content category affinity score nth slot probability distribution using the following equations:
[0170] Equation 18:Group Pl nth probability P 1 (n) = n*0.5.
[0171] Equation 19:Group P2 nth probability P2(n) = n *0.3.
[0172] Equation 20:Group P3 nth probability P3(n) = n *0.2.
[0173] For example, the linearly projection and calculation of the content category affinity score nth slot probability distribution in this manner may not be considered the use of a probability density function as Group Pl nth probability P 1 (n) + Group P2 nth probability P2(n) + Group P3 nth probability’ P3(n) may not be equal to one.
[0174] (3) based on the occupancy of previous n-1 slots, remove the content category’ affinity score for the content category of the media content recommendation candidates associated with the previous n-1 slots. For example, assuming the content category for the content category affinity7score for Group Pl was associated with a first number of slots = SI slots, the content category for the content category affinity score for Group P2 was associated with a second number of slots = S2, and the content category7for the content category affinity score for Group P3 was associated with a third number of slots = S3. the third number of slots, S3, may be calculated using Equation 21.
[0175] Equation 21 :A third number of slots, S3 - n - SI - S2 - 1
[0176] The effective probabilities for Group Pl. Group P2, and Group P3 maybe calculated as in Equation 22.
[0177] Equation 22:Effective Group Pl probability, EPl(n) = n *0.5 - SI.
[0178] Equation 23:Effective Group P2 probability’, EP2(n) = n *0.3 - S2.
[0179] Equation 24:Effective Group P3 probability’, EP3(n) = n *0.2 - (n - SI - S2 - 1).
[0180] (4) based on the calculated effective probabilities for Group Pl, GroupP2, and Group P3, select the content category for the group that has the highest or largest calculated effective probability. For example, if EPl(n) > EP2(n), and EPl(n) > EP3(nfthe multi-slot distribution algorithm may pick the next available media content recommendation candidate from the content category associated with Group Pl for associating with the nth slot in the row in the user interface of the TV application.
[0181] In some implementations, the multi-slot distribution algorithm may provide consistent results during retries and iterations of the multi-slot distribution algorithm by maintaining the same distribution after filling multiple slots. In some implementations, the multi-slot distribution algorithm may continuously select media content recommendation items for a single content category in situations where the probabilities distribution is highly skewed (e.g., a content category affinity score initial probability distribution for the three groups is a Group Pl probability = 0.8, Group P2 probability = 0.1, and Group P3 probability = 0.1). When the probabilities distribution is highly skewed, exploration of less probable media content may be limited. In some implementations, a threshold value may be set that may limit the continuous selection of media content from a single category. For example, if the threshold value is set equal to M, media content may not be selected for recommendation from a particular content category more than M times. In some implementations, a category affinity score may have one or more guardrails. For example, a category affinity score may have a value greater than or equal to a first category7affinity score (e.g., 03.) and less than or equal to a second category affinity score (e.g., 0.7).
[0182] In some implementations, cold start user behavior may influence the dynamic probabilities intermixing algorithm. The cold start user behavior may indicate that the user is new to the use of the system 100. In this situation, the user may have little to no category affinity score criteria such as click counts or application usage information. In addition, or the alternative, the user may not have used or has no experience with one or more content provider categories. For example, a category affinity' score may fall below a no engagement threshold (NET) value indicating the user is new to the system or user interaction with viewing media content has declined.
[0183] In some implementations, a category affinity score may fall below a threshold value or may be equal to zero if a user has not engaged with that particular type of media content included in the category. In situations where a user prefers not to engage in with media content in a particular category, the dynamic probabilities intermixing algorithm may revert to normal behavior, the category' affinity score for media content in the particular category may be equal to zero, and the dynamic probabilities intermixing algorithm may not provide any media content recommendation candidates categorizedin the category.
[0184] In these implementations, the dynamic probabilities intermixing algorithm may default to the use of an average of category affinity scores for users located in a particular region. In these implementations, the dynamic probabilities intermixing algorithm may default to the use of default predefined category affinity scores. In some implementations, the dynamic probabilities intermixing algorithm may apply one or more artificial boosts after the dynamic probabilities intermixing algorithm applies the predefined category affinity scores.
[0185] In some implementations, the dynamic probabilities intermixing algorithm may define a cold start period as a period of time (e.g., a number of days, a number of weeks) that the dynamic probabilities intermixing algorithm uses the default predefined category affinity scores and / or the average of category affinity scores for users located in a particular region. In some implementations, the dynamic probabilities intermixing algorithm may define a length (a time period) for the cold start period that ensures there is sufficient category affinity score criteria for the user that may be used by the dynamic probabilities intermixing algorithm or the category affinity score criteria for the user has reached a threshold level where the dynamic probabilities intermixing algorithm may use the category affinity' score criteria to calculate category' affinity' scores.
[0186] In some implementations, referring to FIG. IB, the content category mapping module 122 may implement a one-to-one mapping. For example, though a media content provider may source media content that may be categorized in more than one media content category7, the content category' mapping module 122 may map the media content provider to the media content category' that represents the majority of the media content it sources.
[0187] In some implementations, the content category mapping module 122 may provide a weighted mapping of the media content provider to the media content category7. The content category mapping module 122 may map media content sourced by a media content provider into media content categories the content provider may support using a split ratio of X Y. For example, if the media content provider sources subscription based video on demand (SVOD) content with a weight = X and advertisement based video on demand media (AVOD) content with a weight = Y, when calculating category' affinity' scores for a user the category' affinity module 118 may include a user interaction with SVOD content in the category affinity score calculation for the SVOD content with a weight of X / (X+Y) and may include a user interaction with AVOD content in the categoryaffinity score calculation for the AVOD content with a weight of Y / (X+Y).
[0188] In some implementations, the content category mapping module 122 may implement a one-to-one mapping derived from existing media content provider configurations. For example, media content sources by a media content provider may be mapped into one category based on the user entitlements for media content sourced by that provider. For example, if the user has entitlement for a subscription-based service, any user interaction with the subscription-based service is mapped to SVOD for the user. If the user is not entitled to media content provided by the SVOD, the user interaction with the media content may be mapped to AVOD for the user.
[0189] FIG. 6 illustrates a flowchart 600 depicting example operations of a dynamic probabilities intermixing algorithm. Although the flowchart 600 of FIG. 6 illustrates the operations in sequential order, it will be appreciated that this is merely an example, and that additional or alternative operations may be included. Further, operations of FIG. 6 and related operations may be executed in a different order than that shown, or in a parallel or overlapping fashion. The operations may define a computer- implemented method. Although the flowchart 600 is described with reference to the system 100 of FIG. IB, the flowchart 600 may be executed according to any of the figures discussed herein. In some examples, the operations of the flowchart 600 are executed by the server computer 106.
[0190] Operation 602 includes determining, by a server computer, category affinity score criteria for a user for a plurality of media content categories. For example, referring to FIG. IB, the category affinity module 118 may determine category' affinity' score criteria for a user for a plurality of media content categories.
[0191] Operation 604 includes calculating a probability for the user for each of the plurality of media content categories based on the category affinity score criteria. For example, the probabilistic intermixing module 124 may calculate a probability for the user for each of the plurality' of media content categories based on the category affinity' score criteria.
[0192] Operation 606 includes associating at least one media content category' with each media content provider of a plurality of media content providers. For example, the content category' mapping module 122 may associate at least one media content category with each media content provider of a plurality of media content providers.
[0193] Operation 608 includes categorizing each media content item of the plurality' of media content items into at least one media content category of the pluralityof media content categories. For example, the category affinity module 118 may categorize each media content item of the plurality of media content items into at least one media content category of the plurality of media content categories.
[0194] Operation 610 includes creating a ranked list of a plurality of media content items sourced by the plurality of media content providers. For example, the probabilistic intermixing module 124 may create a ranked list of a plurality of media content items sourced by the plurality of media content providers.
[0195] In some examples, the techniques described herein relate to a method including: determining, by a server computer, category affinity score criteria for a user for a plurality of media content categories; calculating a probability for the user for each of the plurality of media content categories based on the category affinity score criteria; associating at least one media content category with each media content provider of a plurality' of media content providers; categorizing each media content item of the plurality of media content items into at least one media content category of the plurality' of media content categories; and creating a ranked list of a plurality of media content items sourced by the plurality of media content providers.
[0196] In some examples, the techniques described herein relate to a method, wherein creating the ranked list of the plurality of media content items sourced by the plurality of media content providers further includes: selecting a first media content item from a first media content category, the selecting based on the calculated probability for the first media content category; and recalculating the probability for each of the plurality' of media content categories based on the selection of the first media content item from the first media content category.
[0197] In some examples, the techniques described herein relate to a method, wherein creating the ranked list of a plurality of media content items sourced by the plurality' of media content providers further includes: selecting a second media content item from a second media content type category, the selecting based on the recalculated probability for the second media content type category; and ranking the first media content item higher than the second media content item in the ranked list of the plurality' of media content items.
[0198] In some examples, the techniques described herein relate to a method, wherein recalculating the probability for each of the plurality of media content categories based on the selection of the first media content item from the first media content category includes: reducing the probability of the first media content category by a firstfactor; and increasing the probability of remaining media content categories by a second factor.
[0199] In some examples, the techniques described herein relate to a method, wherein determining the content category affinity includes determining, for each media content provider, usage of an application associated with the media content provider, the determining of the application usage including identifying a number of selections of the application.
[0200] In some examples, the techniques described herein relate to a method, wherein determining the category affinity score criteria includes determining a number of watch action selections for each of the plurality of media content items.
[0201] In some examples, the techniques described herein relate to a method, wherein determining the category affinity score criteria includes: for each media content category, associating a boost multiplier with each respective media content category of the plurality of media content categories; and multiplying, for each of the plurality of media content categories, the probability for each of the plurality of media content categories by the associated boost multiplier.
[0202] In some examples, the techniques described herein relate to a method, wherein categorizing each media content item of the plurality' of media content items into at least one media content category of the plurality of media content categories includes: creating a respective media content group for each media content category of the plurality’ of media content categories; and sorting the plurality of media content items into the media content groups.
[0203] In some examples, the techniques described herein relate to a method, further including: generating a sequence of selectable information items that correspond to respective media content items included in the ranked list; and sending, by the server computer, the sequence of selectable information items to a computing device for display in a user interface on a display device of the computing device.
[0204] In some examples, the techniques described herein relate to a non- transitory computer-readable medium stonng executable instructions that when executed by at least one processor of a server computer cause the at least one processor to execute operations, the operations including: determining category affinity score criteria for a user for a plurality of media content categories; calculating a probability for the user for each of the plurality of media content categories based on the category affinity score criteria; associating at least one media content category with each media content providerof a plurality of media content providers; categorizing each media content item of the plurality of media content items into at least one media content category of the plurality of media content categories; and creating a ranked list of a plurality of media content items sourced by the plurality of media content providers.
[0205] In some examples, the techniques described herein relate to a non- transitory computer-readable medium, wherein creating the ranked list of the plurality of media content items sourced by the plurality of media content providers further includes: selecting a first media content item from a first media content category, the selecting based on the calculated probability for the first media content category; and recalculating the probability for each of the plurality' of media content categories based on the selection of the first media content item from the first media content category.
[0206] In some examples, the techniques described herein relate to a non- transitory computer-readable medium, wherein creating the ranked list of a plurality of media content items sourced by the plurality of media content providers further includes: selecting a second media content item from a second media content type category, the selecting based on the recalculated probability for the second media content type category; and ranking the first media content item higher than the second media content item in the ranked list of the plurality of media content items.
[0207] In some examples, the techniques described herein relate to a non- transitory computer-readable medium, wherein recalculating the probability for each of the plurality of media content categories based on the selection of the first media content item from the first media content category includes: reducing the probability of the first media content category by a first factor; and increasing the probability of remaining media content categories by a second factor.
[0208] In some examples, the techniques described herein relate to a non- transitory computer-readable medium, wherein determining the content category affinity' includes determining, for each media content provider, usage of an application associated with the media content provider, the determining of the application usage including identifying a number of selections of the application.
[0209] In some examples, the techniques described herein relate to a non- transitory computer-readable medium, wherein determining the category affinity score criteria includes determining a number of watch action selections for each of the plurality of media content items.
[0210] In some examples, the techniques described herein relate to a non- transitory computer-readable medium, wherein determining the category affinity score criteria includes: for each media content category, associating a boost multiplier with each respective media content category of the plurality of media content categories; and multiplying, for each of the plurality' of media content categories, the probability for each of the plurality of media content categories by the associated boost multiplier.
[0211] In some examples, the techniques described herein relate to a non- transitory computer-readable medium, wherein categorizing each media content item of the plurality of media content items into at least one media content category of the plurality of media content categories includes: creating a respective media content group for each media content category of the plurality’ of media content categories; and sorting the plurality of media content items into the media content groups.
[0212] In some examples, the techniques described herein relate to a non- transitory computer-readable medium, wherein the operations further include: generating a sequence of selectable information items that correspond to respective media content items included in the ranked list; and sending the sequence of selectable information items to a computing device for display in a user interface on a display device of the computing device.
[0213] In some examples, the techniques described herein relate to a system including: at least one processor; and a non-transitory computer-readable medium storing executable instructions that execute an intermixing module on a server, the intermixing module configured to: determine category affinity score criteria for a user for a plurality' of media content categories; calculate a probability for the user for each of the plurality of media content categories based on the category affinity score criteria; associate at least one media content category with each media content provider of a plurality of media content providers; categorize each media content item of the plurality' of media content items into at least one media content category of the plurality’ of media content categories; and create a ranked list of a plurality of media content items sourced by the plurality of media content providers.
[0214] In some examples, the techniques described herein relate to a system, wherein creating the ranked list of the plurality of media content items sourced by the plurality of media content providers further includes: selecting a first media content item from a first media content category, the selecting based on the calculated probability for the first media content category; and recalculating the probability for each of the plurality'of media content categories based on the selection of the first media content item from the first media content category.
[0215] In some examples, the techniques described herein relate to a system, wherein creating the ranked list of a plurality of media content items sourced by the plurality of media content providers further includes: selecting a second media content item from a second media content type category, the selecting based on the recalculated probability for the second media content type category; and ranking the first media content item higher than the second media content item in the ranked list of the plurality of media content items.
[0216] In some examples, the techniques described herein relate to a system, wherein recalculating the probability for each of the plurality of media content categories based on the selection of the first media content item from the first media content category includes: reducing the probability of the first media content category by a first factor; and increasing the probability of remaining media content categories by a second factor.
[0217] In some examples, the techniques described herein relate to a system, wherein determining the content category affinity includes determining, for each media content provider, usage of an application associated with the media content provider, the determining of the application usage including identifying a number of selections of the application.
[0218] In some examples, the techniques described herein relate to a system, wherein determining the category affinity score criteria includes determining a number of watch action selections for each of the plurality of media content items.
[0219] In some examples, the techniques described herein relate to a system, wherein determining the category affinity' score criteria includes: for each media content category, associating a boost multiplier with each respective media content category of the plurality of media content categories; and multiplying, for each of the plurality of media content categories, the probability for each of the plurality of media content categories by the associated boost multiplier.
[0220] In some examples, the techniques described herein relate to a system, wherein categorizing each media content item of the plurality' of media content items into at least one media content category of the plurality of media content categories includes: creating a respective media content group for each media content category of the plurality’of media content categories; and sorting the plurality of media content items into the media content groups.
[0221] In some examples, the techniques described herein relate to a system, wherein the intermixing module is further configured to: generate a sequence of selectable information items that correspond to respective media content items included in the ranked list; and send the sequence of selectable information items to a computing device for display in a user interface on a display device of the computing device.
[0222] Various implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and / or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and / or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
[0223] These computer programs (also known as programs, software, software applications or code) include machine instructions for a programmable processor and can be implemented in a high-level procedural and / or object-oriented programming language, and / or in assembly / machine language. As used herein, the terms “machine- readable medium” “computer-readable medium” refers to any computer program product, apparatus and / or device (e.g., magnetic discs, optical disks, memory7, Programmable Logic Devices (PLDs)) used to provide machine instructions and / or data to a programmable processor, including a non-transitory machine-readable medium that receives machine instructions as a machine-readable signal. The term “machine-readable signal” refers to any signal used to provide machine instructions and / or data to a programmable processor.
[0224] To provide for interaction with a user, the systems and techniques described here can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory7feedback, or tactile feedback);and input from the user can be received in any form, including acoustic, speech, or tactile input.
[0225] The systems and techniques described here can be implemented in a computing system that includes a back end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front end component (e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back end, middleware, or front end components. The components of the system can be interconnected by any form or non-transitory medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network ("LAN"), a wide area network (‘"WAN”), and the Internet.
[0226] The computing system can include clients and servers. A client and server are generally remote from each other and ty pically interact through a communication network. The relationship of client and serv er arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
[0227] In this specification and the appended claims, the singular forms "a," "an" and "the" do not exclude the plural reference unless the context clearly dictates otherwise. Further, conjunctions such as “and,” “or.” and “and / or” are inclusive unless the context clearly dictates otherwise. For example, “A and / or B” includes A alone. B alone, and A with B. Further, connecting lines or connectors shown in the various figures presented are intended to represent example functional relationships and / or physical or logical couplings between the various elements. Many alternative or additional functional relationships, physical connections or logical connections may be present in a practical device.
[0228] Terms such as, but not limited to, approximately, substantially, generally, etc. are used herein to indicate that a precise value or range thereof is not required and need not be specified. As used herein, the terms discussed above will have ready and instant meaning to one of ordinary skill in the art.
[0229] Moreover, use of terms such as up, down, top, bottom, side, end, front, back, etc. herein are used with reference to a currently considered or illustrated orientation. If they are considered with respect to another orientation, it should be understood that such terms must be correspondingly modified.
[0230] Further, in this specification and the appended claims, the singular forms "a," "an" and "the" do not exclude the plural reference unless the context clearly dictates otherwise. Moreover, conjunctions such as “and,” “or,” and “and / or” are inclusive unless the context clearly dictates otherwise. For example, “A and / or B” includes A alone, B alone, and A with B.
[0231] Although example methods, apparatuses and articles of manufacture have been described herein, the scope of coverage of this patent is not limited thereto. It is to be understood that terminology employed herein is for the purpose of describing particular aspects and is not intended to be limiting. On the contrary, this patent covers all methods, apparatus and articles of manufacture fairly falling within the scope of the claims of this patent.
[0232] Further to the descriptions above, a user may be provided with controls allowing the user to make an election as to both if and when systems, programs, or features described herein may enable collection of user information (e.g., a user’s preferences, a user’s current location, a user’s credentials, etc.), and if the user is sent content or communications from a server. In addition, certain data may be treated in one or more ways before it is stored or used, so that personally identifiable information is removed. For example, a user’s identity may be treated so that no personally identifiable information can be determined for the user, or a user’s geographic location may be generalized where location information is obtained (such as to a city, ZIP code, or state level), so that a particular location of a user cannot be determined. Thus, the user may have control over what information is collected about the user, how that information is used, and what information is provided to the user.
Claims
WHAT IS CLAIMED IS:
1. A method comprising: determining, by a server computer, category affinity score criteria for a user for a plurality of media content categories; calculating a probability for the user for each of the plurality of media content categories based on the category affinity score criteria; associating at least one media content category with each media content provider of a plurality of media content providers; categorizing each media content item of the plurality of media content items into at least one media content category of the plurality of media content categories; and creating a ranked list of a plurality of media content items sourced by the plurality' of media content providers.
2. The method of claim 1, wherein creating the ranked list of the plurality’ of media content items sourced by the plurality’ of media content providers further comprises: selecting a first media content item from a first media content category, the selecting based on the calculated probability’ for the first media content category; and recalculating the probability for each of the plurality of media content categories based on the selection of the first media content item from the first media content category.
3. The method of claim 2, wherein creating the ranked list of a plurality of media content items sourced by the plurality’ of media content providers further comprises: selecting a second media content item from a second media content type category, the selecting based on the recalculated probability for the second media content type category; and ranking the first media content item higher than the second media content item in the ranked list of the plurality of media content items.
4. The method of claim 2, wherein recalculating the probability’ for each of the plurality of media content categories based on the selection of the first media content item from the first media content category comprises: reducing the probability of the first media content category by a first factor; andincreasing the probability of remaining media content categories by a second factor.
5. The method of claim 1, wherein determining the content category affinity comprises determining, for each media content provider, usage of an application associated with the media content provider, the determining of the application usage comprising identifying a number of selections of the application.
6. The method of claim 1, wherein determining the category7affinity score criteria comprises determining a number of watch action selections for each of the plurality of media content items.
7. The method of claim 1, wherein determining the category7affinity7score criteria comprises: for each media content category, associating a boost multiplier with each respective media content category of the plurality of media content categories; and multiplying, for each of the plurality of media content categories, the probability7for each of the plurality of media content categories by the associated boost multiplier.
8. The method of claim 1, wherein categorizing each media content item of the plurality7of media content items into at least one media content category of the plurality7of media content categories comprises: creating a respective media content group for each media content category of the plurality of media content categories; and sorting the plurality of media content items into the media content groups.
9. The method of claim 1, further comprising: generating a sequence of selectable information items that correspond to respective media content items included in the ranked list; and sending, by the server computer, the sequence of selectable information items to a computing device for display in a user interface on a display device of the computing device.
10. A non-transitory computer-readable medium storing executable instructions that when executed by at least one processor of a server computer cause the at least one processor to execute operations, the operations comprising: determining category affinity score criteria for a user for a plurality of media content categories; calculating a probability for the user for each of the plurality of media content categories based on the category affinity score criteria; associating at least one media content category with each media content provider of a plurality of media content providers; categorizing each media content item of the plurality of media content items into at least one media content category of the plurality of media content categories; and creating a ranked list of a plurality of media content items sourced by the plurality' of media content providers.
11. The non-transitory computer-readable medium of claim 10, wherein creating the ranked list of the plurality of media content items sourced by the plurality of media content providers further comprises: selecting a first media content item from a first media content category7, the selecting based on the calculated probability for the first media content category; and recalculating the probability for each of the plurality of media content categories based on the selection of the first media content item from the first media content category.
12. The non-transitory computer-readable medium of claim 11, wherein creating the ranked list of a plurality of media content items sourced by the plurality of media content providers further comprises: selecting a second media content item from a second media content type category, the selecting based on the recalculated probability for the second media content type category; and ranking the first media content item higher than the second media content item in the ranked list of the plurality of media content items.
13. The non-transitory computer-readable medium of claim 11 , wherein recalculating the probability for each of the plurality of media content categories based on the selection of the first media content item from the first media content category comprises: reducing the probability of the first media content category by a first factor; and increasing the probability of remaining media content categories by a second factor.
14. The non-transitory computer-readable medium of claim 10, wherein determining the content category affinity comprises determining, for each media content provider, usage of an application associated with the media content provider, the determining of the application usage comprising identifying a number of selections of the application.
15. The non-transi tory computer-readable medium of claim 10, wherein determining the category affinity score criteria comprises determining a number of watch action selections for each of the plurality of media content items.
16. The non-transi tory computer-readable medium of claim 10, wherein determining the category' affinity' score criteria comprises: for each media content category, associating a boost multiplier with each respective media content category of the plurality of media content categories; and multiplying, for each of the plurality of media content categories, the probability' for each of the plurality' of media content categories by the associated boost multiplier.
17. The non-transitory’ computer-readable medium of claim 10, wherein categorizing each media content item of the plurality of media content items into at least one media content category of the plurality of media content categories comprises: creating a respective media content group for each media content category of the plurality of media content categories; and sorting the plurality of media content items into the media content groups.
18. The non-transitory' computer-readable medium of claim 10, wherein the operations further comprise: generating a sequence of selectable information items that correspond to respective media content items included in the ranked list; andsending the sequence of selectable information items to a computing device for display in a user interface on a display device of the computing device.
19. A system comprising: at least one processor; and a non-transitory computer-readable medium storing executable instructions that execute an intermixing module on a server, the intermixing module configured to: determine category affinity score criteria for a user for a plurality of media content categories; calculate a probability for the user for each of the plurality of media content categories based on the category affinity score criteria; associate at least one media content category with each media content provider of a plurality of media content providers; categorize each media content item of the plurality of media content items into at least one media content category of the plurality of media content categories; and create a ranked list of a plurality of media content items sourced by the plurality' of media content providers.
20. The system of claim 19, wherein creating the ranked list of the plurality of media content items sourced by the plurality of media content providers further comprises: selecting a first media content item from a first media content category, the selecting based on the calculated probability for the first media content category; and recalculating the probability for each of the plurality of media content categories based on the selection of the first media content item from the first media content category.
21. The sy stem of claim 20, wherein creating the ranked list of a plurality of media content items sourced by the plurality of media content providers further comprises: selecting a second media content item from a second media content type category, the selecting based on the recalculated probability for the second media content type category; and ranking the first media content item higher than the second media content item in the ranked list of the plurality of media content items.
22. The system of claim 20, wherein recalculating the probability for each of the plurality of media content categories based on the selection of the first media content item from the first media content category comprises: reducing the probability of the first media content category by a first factor; and increasing the probability of remaining media content categories by a second factor.
23. The system of claim 19, wherein determining the content category affinity comprises determining, for each media content provider, usage of an application associated with the media content provider, the determining of the application usage comprising identifying a number of selections of the application.
24. The system of claim 19, wherein determining the category affinity' score criteria comprises determining a number of watch action selections for each of the plurality of media content items.
25. The system of claim 19, wherein determining the category affinity' score criteria comprises: for each media content category, associating a boost multiplier with each respective media content category of the plurality of media content categories; and multiplying, for each of the plurality of media content categories, the probability' for each of the plurality of media content categories by the associated boost multiplier.
26. The system of claim 19, wherein categorizing each media content item of the plurality of media content items into at least one media content category of the plurality of media content categories comprises: creating a respective media content group for each media content category of the plurality of media content categories; and sorting the plurality of media content items into the media content groups.
27. The system of claim 19, wherein the intermixing module is further configured to: generate a sequence of selectable information items that correspond to respective media content items included in the ranked list; and send the sequence of selectable information items to a computing device for display in a user interface on a display device of the computing device.
Citation Information
Patent Citations
Systems and methods for combining media recommendations from multiple recommendation engines
US20150169705A1
Systems and methods for ranking content sources based on a number of media assets identified to be interesting to a user
US20180367857A1
Network-Connected Television Devices with Knowledge-based Media Content Recommendations and Unified User Interfaces
US20210289262A1
Methods and systems to improve control of content items, channels, accounts, subscriptions, and related information
US20230370679A1