Content recommendations using deep data

Disclosed are various embodiments for recommending content for users. A user is associated with a user preferred character that is represented in a first network content. A library is referenced to identify a recommended character based at least upon the user preferred character, the recommended character being represented in a second network content, the library associating the preferred character to the recommended character according to a relationship score. A recommendation is sent for presentation of the second network content.

BACKGROUND

People may want to access media content such as audio/video, electronic books (e-books), and/or audio books over a network. To find such content, people may search for content and make selections based on search results. The content may include a variety of characters that progress the storyline or plot of the content. It may be the case that a user finds himself/herself favoring or preferring particular fictional characters based on his/her subjective tastes.

DETAILED DESCRIPTION

The present disclosure relates to identifying and recommending content for users. Users may access a variety of content offered by a content delivery service over a network. As users play or otherwise interact with the content, the content delivery service may obtain implicit or explicit user feedback. This feedback may express aspects of the content that a user approves, supports, likes, or favors. For example, the content delivery service may determine that a user favors particular characters associated with the content. Based on this feedback, the content delivery service may identify similar characters associated with other content. Accordingly the content delivery service may generate recommendations for other content to the user.

Various embodiments of the present disclosure are directed to presenting content to a user and collecting user interaction data with respect to the presented content. Based on this user interaction data, it may be determined whether a user prefers/favors a particular character. By collecting user interaction data across a variety of users, trends and relationships between characters represented in a corpus of content may be determined.

With reference toFIG. 1, shown is a drawing of a user interface100according to various embodiments of the present disclosure. The user interface100may be presented to a user who has accessed content over a network. User interaction data may be collected for the user as the user plays back or causes rendition of the content. For example, the user may explicitly indicate that he/she favors particular characters such as “Elnora” or “Allan.” The user interface100presents details about the preferences and tastes of the user. As a non-limiting example, the user interface100presents to the user information such as the actor/actress that represents the character, the format of the content (e.g., movie, television show, e-book, etc.), various attributes associated with the character, or any other details about the character.

The user may also implicitly indicate that he/she favors/prefers a character by selecting particular scenes associated with the content, bookmarking the content, tagging portions of the content, purchasing/consuming products associated with a character, etc. To this end, characters preferred by a user may be associated with a particular user.

The user interface100further presents recommendations for other content to the user. According to various embodiments, recommendations are generated based at least upon associating a user's preferred character to a recommended character. A recommended character is a character who has a degree of commonality with respect to a user preferred character, where the degree of commonality exceeds a threshold amount. In this respect, a character who is similar to a user preferred character is identified. By identifying similar characters, recommendations for content associated with the similar character may be generated.

In various embodiments, the user interface100presents a recommended character to the user. The user interface100also presents recommended content that is associated with the recommended character. Furthermore, the user interface100provides an opportunity for the user to play or render the recommended content or to play a scene associated with the recommended character. A scene, for example, is a portion of a video content feature, where the scene has a predetermined start point and stop point along a timeline of the video content feature. In the following discussion, a general description of the system and its components is provided, followed by a discussion of the operation of the same.

With reference toFIG. 2, shown is a networked environment101according to various embodiments. The networked environment101includes a computing environment103and a plurality of clients106a. . .106N in data communication via a network109. The network109includes, for example, the Internet, intranets, extranets, wide area networks (WANs), local area networks (LANs), wired networks, wireless networks, or other suitable networks, etc., or any combination of two or more such networks.

Various applications and/or other functionality may be executed in the computing environment103according to various embodiments. Also, various data is stored in a data store112that is accessible to the computing environment103. The data store112may be representative of a plurality of data stores112as can be appreciated. The data stored in the data store112is associated with, for example, the operation of the various applications and/or functional entities described below.

The components executed on the computing environment103include, for example, a content delivery service115and other applications, services, processes, systems, engines, or functionality not discussed in detail herein. The content delivery service115is executed to serve up or stream video content, multimedia content, or any other content to clients106. The content delivery service115may support a resume functionality such that a playback of video content may be stopped at a point in the video content on one device and later resumed at that point on the same device or a different device. The content delivery service115may be configured to send extrinsic data to the clients106accompanying the content121. The content121may comprise, for example, a movie, television show, e-book, audio book, or any other multimedia.

The content delivery service115may generate a collection of extrinsic data to be sent to the client106along with initial portions of the content121. Extrinsic data may comprise information relating to the content such as, for example, actors/actresses on the screen, details about a presently displayed scene, information about background music, etc. In sending extrinsic data, the content delivery service115may be configured to compress the collection of extrinsic data.

Furthermore, the content delivery service115may be configured to capture user interaction data124. User interaction data124may comprise inputs, commands, instructions, feedback, or any other types of interaction relating to the presentation or rendition of content121. For example, a user may execute actions such as pausing, replaying, forwarding, adjusting the volume, bookmarking, tagging, deep tagging, providing explicit feedback, etc. These actions may be captured by the content delivery service115as user interaction data124.

The content delivery service115may comprise a relationship generation service118. According to various embodiments, the relationship generation service118is configured to quantify a relationship between various characters associated with a corpus of content presented to users. In this respect, the relationship generation service118identifies those characters that are similar with respect to one another. The relationship generation service118analyzes user interaction data124to generate relationship scores as is discussed in further detail below.

The content delivery service115is configured to generate one or more recommendations126for users. Recommendations126may be directed towards identifying content that is customized for a particular user's taste.

The data stored in the data store112includes, for example, a content library127, an extrinsic data library130, character data133, user data136, relationship data134, and potentially other data. The content library127may include content121such as, for example, multiple video content features139. Non-limiting examples of video content features139include movies, television shows, video clips, and/or other forms of video content. Although described as “video content,” it is understood that the video content features139may include accompanying audio, closed captioning text, and/or other data. The content library127may also include other content141such as, for example, audio books, electronic books, or any multimedia content.

The extrinsic data library130includes various extrinsic data items that are associated with the content121stored in the content library127. Non-limiting examples of the extrinsic data items may include names or descriptions of performers in the video content features139or other content141, biographies or filmographies of the performers, commentary, trivia, mistakes, user comments, images, and/or other data. The extrinsic data items may include curated data that is professionally managed, verified, or is otherwise trustworthy.

For example, the extrinsic data library130may include cast member data142, scene data145, soundtrack data151, and/or other data. The cast member data142may include the name, images, and/or other data describing cast members who perform in a video content feature139. The term “cast member” may in some cases encompass additional participants in a video content feature139, such as, for example, crew members.

The scene data145divides a video content feature139into multiple scenes. A scene corresponds to a period of time in the video content feature139having multiple frames and may be determined as having a distinct plot element or setting. The scene data145may identify the cast members and/or characters who are associated with a given scene. In some cases, the scene data145may record the times when the cast members or characters first appear in the scene, last appear in the scene, or are on-screen. In some embodiments, the times may be represented as a frame number, or a range of frame numbers, in the video content feature139. The soundtrack data151may include information about the audio of the video content feature139. For example, the soundtrack data151may identify that a particular audio track is being used at a certain time in the video content feature139or during a certain scene of the video content feature139. In addition, the soundtrack data151may identify performers who vocally perform characters in the audio. Such performers may be considered cast members.

The character data133may include information about characters in video content features139. According to various embodiments, a character comprises a fictional character. A fictional character may be represented by a corresponding cast member. A fictional character represents an aspect of a plot or story that may or may not be associated with a cast member. A cast member may be an actor/actress who portrays the character either through voice and/or through acting. Character data133for a particular character may comprise one or more attributes160. Attributes160describe a type of character (e.g., hero, villain, anti-hero, comic relief character, etc.), personality traits of the character, physical or mental attributes of the character, or any other character attributes. In addition, character data133comprises data for related products163. A related product163may comprise any merchandise or item sold via an electronic commerce system that is associated with a particular character. For example, a character may be associated with an action figure, movie poster, bobble head, or any other item for purchase/consumption.

The user data136includes various data about users of the content delivery service115. The user data136may include acquired content169, behavior history172, bookmarks175, and/or other data. The acquired content169describes to which content in the content library127a user has access. For example, a user may have rented or otherwise consumes a particular video content feature139. In some cases, a user may have a subscription that provides access to all or some of the video content features139. Such a subscription may be limited in some way (e.g., number of titles, number of bytes, quality level, time of day, etc.) or unlimited.

The behavior history172may include the user interaction data124that has been captured. To this end, the behavior history172may include a consumption history, a browsing history, a view history, explicitly configured viewing preferences, and/or other data. The bookmarks175correspond to specific times or scenes in a video content feature139that the user has indicated to be interesting and worthy of returning to in the future. Bookmarks175may include user tags associated with particular scenes or chapters of a content121.

Relationship data134may comprise data expressing various relationships or trends determined by the relationship generation service118. For example, a relationship score may be determined for quantifying a degree of commonality between two or more cast members, characters, scenes, etc. The relationship data134may comprise various statistical models, histograms, or any other mathematical trends, as is discussed in further detail below.

The clients106are representative of a plurality of client devices that may be coupled to the network109. Each client106may comprise, for example, a processor-based system such as a computer system. Such a computer system may be embodied in the form of a smart television, a desktop computer, a laptop computer, personal digital assistants, cellular telephones, smartphones, set-top boxes, music players, web pads, tablet computer systems, game consoles, electronic book readers, or other devices with like capability. Each client106may include one or more displays178a. . .178N. Each display178may comprise, for example, one or more devices such as liquid crystal displays (LCDs), gas plasma-based flat panel displays, organic light emitting diode (OLED) displays, LCD projectors, or other types of display devices. In some embodiments, the displays178may correspond to touchscreen displays.

Each client106may be configured to execute various applications such as a browser181, a respective one of a plurality of content access applications184a. . .184N, and/or other applications. The browser181may be executed in a client106, for example, to access network content served up by the computing environment103and/or other servers, thereby rendering a user interface on the display178such as, for example, the user interface100ofFIG. 1. The content access application184is executed to obtain content121from the content delivery service115and to render the video content features139or other content141on the display178. Additionally, the content access application184may be configured to obtain extrinsic data from the content access application184and to render a user interface based at least in part on the extrinsic data to enhance the user experience in viewing the video content feature139. In addition, the content access application184may include various tools for allowing a user to interact with the playback or rendition of content121received over the network109.

In some cases, the video content feature139may be rendered on a different display178(of the same or different client106) from the user interface. In one embodiment, the content access application184may be a plug-in of the browser181or otherwise executed in the environment of the browser181. The clients106may be configured to execute other applications such as, for example, mobile applications, email applications, social networking applications, etc.

Next, a general description of the operation of the various components of the networked environment101is provided. To begin, a user may acquire rights to view content121in a content library127. A client106associated with a user may request to stream or download a video content feature139or other content141from the content delivery service115.

The content access application184of the client106renders the content121on the display178. The content access application184may also render various user interfaces on the display178using extrinsic data to enhance the user experience. The user interfaces may allow users to quickly learn the cast members and/or characters who are on screen while the content121is presented. The user interfaces may be dynamically updated as the content121progresses in the foreground or in the background. Non-limiting examples of such user interfaces are shown and will be described in connection with at leastFIG. 3.

The content delivery service115is configured to encode for display one or more user interfaces at the client106. One feature of the user interfaces may solicit feedback from a user with respect to the presentation or rendition of content121. In this case, a user may explicitly specify a user sentiment towards aspects of the content121. For example, the user may indicate whether he/she favors a cast member, a character, a scene, or any other aspect of the content121. Accordingly, the content delivery service115may capture this feedback as user interaction data124. In addition, the actions of the user who purchases particular items, consumes digital content, or browses websites may be tracked by the content delivery service115. The user interaction data124may be stored as behavior history172.

A relationship generation service118is configured to analyze the user interaction data124to identify any trends or relationships expressed in the data. Analyzing a user group's preference towards preferred actors/actresses may yield different results than analyzing the user group's preference towards preferred characters. For example, sentiments towards a specific actress may lead to a different trend than sentiments towards a fictional character portrayed by the specific actress. Accordingly, the relationship generation service118may analyze data relating to cast members separately from data relating to characters.

For a particular user, the relationship generation service118may be configured to identify those characters who the particular user finds preferable. For example, the relationship generation service118may determine that a particular user prefers the character “Elnora” in the television show “House Race” and also prefers the character “Edwina” in the movie “Perfect Nun.” The relationship generation service118may track instances where the same user prefers these two characters. In response to the occurrence of these instances, the relationship generation service118updates a relationship score that quantifies a degree of commonality between the character “Elnora” and the character “Edwina.” For example, the relationship score may be based at least upon the quantity of users who express a preference towards both these characters.

The relationship data134may comprise multiple relationship scores, where each relationship score indicates whether two or more characters are similar with respect to one another. To this end, as the content delivery service115obtains more user interaction data124, the relationship generation service118may dynamically update the relationship data134to reflect any trends in user sentiment towards characters, cast members, scenes, etc.

The content delivery service115may generate a recommendation126for a user based at least upon a relationship score. In a non-limiting example, a relationship score quantifying a degree of commonality between the character “Elnora” and the character “Edwina” indicates that many users who prefer the character “Elnora” also prefer the character “Edwina.” In the case that the content delivery service115determines that a particular user prefers the character “Elnora,” the content delivery service115generates a recommendation126for the character “Edwina.” The recommendation126may be presented to the particular user as text in a user interface100(FIG. 1), where the text identifies the character “Edwina.” The recommendation126may also specify recommended content that is associated with the character “Edwina.” According to various embodiments, the recommendation126comprises a link for allowing the particular user to access the recommended content or a scene associated with the recommended content.

While the non-limiting example ofFIG. 2depicts a content delivery service115executed in a computing environment103that delivers content121to a client106, various embodiments of the present disclosure are not so limited. One or more embodiments of the presentation disclosure comprises a content delivery service115that is executable in the client such that the content delivery service115presents content locally stored in the client106. For example, the content delivery service115may comprise a media player that plays/renders downloaded or locally stored content for display to a user of the client106. In this example, it may be the case that the client106plays back content121via the content delivery service115without a broadband network connection. Furthermore, in other embodiments, portions of the content delivery service115are executed by the client106for presenting content121to a user.

Referring next toFIG. 3, shown is one example of content121rendered on a display178(FIG. 2) of a client106(FIG. 2) in the networked environment101(FIG. 2) according to various embodiments. The content121may be streamed over the network109(FIG. 2) or previously downloaded to the client106. The content121is presented to a user in a user interface200. The non-limiting example ofFIG. 3depicts content121that is a video content feature139(FIG. 2).

The user interface200may include a timeline user interface202rendered on top of the content121on the display178of a client106. The timeline user interface202partially obscures the content121in this example. In some cases, the visible portion of the content121may be darkened or dimmed. In other examples, the timeline user interface202may fully cover the content121. In other examples, the timeline user interface202may be rendered adjacent to the presented content121. In still other examples, the timeline user interface202may be rendered on a different display178and potentially by a different client106(FIG. 2).

The timeline user interface202may be invoked by the user providing a pause command or other command, moving a mouse, tapping on or making a gesture relative to a touchscreen, selecting a button on a remote control, or another approach. In one embodiment, the timeline user interface202may appear for a short time when the content121is started and then may disappear. When the timeline user interface202is shown, the content121may continue the playback in the background or may be paused. In this non-limiting example, the content121continues the playback and a pause control is rendered. A playback slider control may be provided to indicate the current position in the content121and to facilitate seeking or cueing by the user to another position in the content121. Volume controls, fast forward controls, reverse controls, and/or other controls may be provided in other examples.

According to various embodiments, the timeline user interface202visually represents a video content feature139and visually segments the video content feature139into multiple scenes228. It is noted that such scenes228may be non-contiguous. To this end, the user interface202may include a sequential play component, the selection of which launches the sequential play of the subset of the scenes228. The timeline user interface202may visually depict that a current scene234is presently being presented to a user. The current scene234may be indicated on the timeline user interface202by way of highlighting.

The timeline user interface202may present scene data145, character data133(FIG. 2), or any other extrinsic data. For example, the timeline user interface202may identify those actors/actresses as well as those characters who are associated with the content121or the current scene234.

According to various embodiments, the timeline user interface202is configured to obtain feedback data to determine the user's sentiment towards aspects of the presented content121. For example, the timeline user interface202may include a scene feedback interface267. Through the scene feedback interface267, a user may explicitly indicate whether he or she favors/prefers the current scene234. The timeline user interface202may also include a character feedback interface171for allowing users to indicate whether they prefer a particular character. Although not shown in the non-limiting example ofFIG. 3, the timeline user interface202may also include an interface for obtaining feedback for actors/actresses. Thus, a content delivery service115(FIG. 2) may obtain user interaction data124(FIG. 2) via utilization of at least the scene feedback interface267or the character feedback interface171. To this end, user interaction data124may be obtained during a playback of the content121by the user.

Turning next toFIG. 4, shown is a drawing of an example of data stored in the data store112in the networked environment101ofFIG. 2according to various embodiments of the present disclosure. In the non-limiting example ofFIG. 4, character data133ais stored for the character “Elnora” and character data133bis stored for the character “Edwina.” Character data133for characters may include a name or identifier for the character, an actor/actress that represents the character, a title or name of the content121(FIG. 2) associated with the character, a genre of the content, or any other information relating to the character. To this end, the character data133may represent a character profile for a character.

In addition, character data133may include attributes160(FIG. 2) for a character. Attributes160may comprise, for example, the character type, the character gender, one or more personality traits, physical characteristics, or any other qualities of a character. In various embodiments, users may generate, edit, and update the character data133for the character. For example, crowd sourcing may be used to allow users to populate various fields of the character profile.

The data store112may also include relationship data134. A content delivery service115(FIG. 2) may obtain user interaction data124(FIG. 2) from one or more users. The user interaction data124may implicitly or explicitly express user sentiment towards aspects of content121(FIG. 2), where an aspect may be, for example, a character associated with the content121. The user interaction data124may be stored in the data store112as behavior history172(FIG. 2). The relationship generation service118may analyze the behavior history172to identify relationships or trends expressed in the user interaction data124.

For example, the relationship generation service118may generate a relationship score that quantifies a degree of commonality between a first character and the second character. In the non-limiting exampleFIG. 4, a relationship generation service118determines a relationship score that quantifies the degree of commonality between the character “Elnora” and the character “Edwina.” The relationship generation service118may analyze various factors in determining this relationship score. Non-limiting examples of such factors include the quantity of users who favor the character “Elnora,” the quantity of users who favor the character “Edwina,” the quantity of users who favor both the characters “Elnora” and “Edwina,” a degree of similarity in the attributes160for each of the characters “Elnora” and “Edwina,” a similarity in genre associated with each character, or any other factor that may indicate a similarity or commonality between the two characters.

For example, of the users who favor the character “Edwina” (e.g.,120), more than half (e.g.,63) also favor the character “Elnora.” This implies a significant degree of commonality between the two characters. This may be translated into a quantitative assessment of the degree of commonality, as shown in the relationship score. The relationship score may comprise a weighted sum of the factors discussed above. For example, the fact that the two characters are associated with the same genre may be given quantitative weight. As another example, a similarity of attributes160such as, for example, similar gender and similar character type may be given quantitative weight in determining a relationship score. Thus, the relationship score may be determined based at least upon user interaction data124, a comparison of attributes160between two characters, or any combination thereof.

In various embodiments, the relationship generation service118counts/determines those instances where a common user prefers two or more characters. To this end, relationship data134is dynamically updated in response to continued user interaction.

Referring next toFIG. 5, shown is a flowchart that provides one example of the operation of a portion of the content delivery service115according to various embodiments. It is understood that the flowchart ofFIG. 5provides merely an example of the many different types of functional arrangements that may be employed to implement the operation of the portion of the content delivery service115as described herein. As an alternative, the flowchart ofFIG. 5may be viewed as depicting an example of steps of a method implemented in the computing environment103(FIG. 2) according to one or more embodiments.

Beginning with box503, the content delivery service115streams a first video content feature139(FIG. 2) to a user. The video content feature may be presented to a user via a user interface such as, for example, the user interface200ofFIG. 3. In box506, the content delivery service115obtains user interaction data124(FIG. 2). According to various embodiments, the content delivery service115obtains user interaction data124via a scene feedback interface267(FIG. 3), character feedback interface171(FIG. 3), actor/actress feedback interface, or any other user interface. The character feedback interface171may provide explicit user feedback expressing that the user favors/prefers a particular character.

In various embodiments, the user interaction data124comprises consumption history or browsing history data relating to a product associated with a character. In this respect, when a user interacts with a related product163, the content delivery service115infers that the user favors a particular character. For example, if a user searches an electronic commerce catalog for a product, browses a network page for a product, consumes digital content, or purchases a product, then it is implied that the user favors a particular character when that product is related to the particular character.

In box509, the content delivery service115associates a preferred character to the user. The content delivery service115may first determine that the user prefers a character based at least upon explicit user feedback expressing a preference for the character. The content delivery service115may also determine that the user prefers a character based at least upon implicit user interaction data124. For example, browse history, consumption history, search history, or any action taken towards a related product163may imply a preference for the character. Consumption history may include a history of items purchased, a history of digital content consumed, or a history of any other commercial transaction.

In various embodiments, user feedback expressing that the user favors one or more scenes associated with content121may be used to determine that the user prefers a character based at least upon whether that character is in the one or more scenes. To this end, patterns in a user's scene preference may lead to a determination that the user prefers a particular character. For example, if the frequency in which a character appears in a group of user preferred scenes exceeds a predetermined threshold amount, then the content delivery service115identifies the character as a preferred character and then associates the preferred character to the user. The content delivery service115associates a preferred character to the user by storing the preferred character as user data136for the user. In various embodiments, the preferred character may be represented by a corresponding cast member of content that is streamed to the user.

In box512, the content delivery service115references a library to identify a recommended character. The recommended character is a character who has a degree of commonality with respect to the preferred character. The recommended character may be represented by a corresponding cast member of content121that differs from the streamed content121. According to various embodiments, relationship data134may be stored as a library of relationships between characters. A relationship between characters may be quantified as a relationship score such that the relationship score expresses a degree of commonality between two characters. To this end, a particular character may have a unique relationship score for each of a plurality of other characters.

If a relationship score associated between a first character and a second character exceeds a predetermined threshold amount, then the content delivery service115may determine that the second character is a recommended character if the user has explicitly or implicitly indicated a preference towards the first character, such that the first character is a preferred character. It may be the case that multiple recommended characters are identified for a particular preferred character. That is to say, if the user prefers a first character, then the content delivery service115may identify all those other characters that have a degree of commonality to the first character that exceeds a predetermined threshold amount.

In box515, the content delivery service115sends a recommendation126(FIG. 2) to the user. The recommendation126may comprise a listing of one or more recommended characters. Additionally, the recommendation126may also be a recommendation to play additional content121or a scene that is associated with the recommended character.

In box518, the content delivery service115obtains additional interaction data. The additional user interaction data relates to whether the user interacts with any of the recommended content and/or the extent to which the user interacts with any of the recommended content. Thus, the additional interaction data may indicate whether the user initiated a playback of the recommended content, whether the user completed playing the recommended content, or any other information relating to interaction with the recommended content. The additional user interaction may indicate whether the user approves or disapproves of the recommendation126. Disapproval, for example, may be expressed as an abandonment of playing the recommended content.

In box521, the content delivery service115updates the relationship score based at least upon the additional user interaction data. If the additional user interaction data indicates that the user approves of the recommendation126, then the relationship score may be updated to reflect a relatively stronger degree of commonality between the two characters. If the additional user interaction data indicates that the user disapproves of the recommendation, then the relationship score may be updated to reflect a weaker degree of commonality between the characters.

Continuing on toFIG. 6, shown is a flowchart that provides one example of the operation of another portion of the content delivery service115according to various embodiments. It is understood that the flowchart ofFIG. 6provides merely an example of the many different types of functional arrangements that may be employed to implement the operation of the portion of the content delivery service115as described herein. As an alternative, the flowchart ofFIG. 6may be viewed as depicting an example of steps of a method implemented in the computing environment103(FIG. 2) according to one or more embodiments.

Beginning with box603ofFIG. 6, the content delivery service115determines that a first user prefers a first character. The content delivery service115, for example, may analyze user interaction data124(FIG. 2) to determine whether the first user has implicitly or explicitly indicated that he/she prefers the first character. In box606, the content delivery service115determines that the first user prefers a second character. The content delivery service115, for example, may analyze user interaction data124to determine whether the first user has implicitly or explicitly indicated that he/she prefers the second character.

In box609, the content delivery service115determines a relationship score. The content delivery service115may employ a relationship generation service118to determine a relationship score that quantifies a degree of commonality between the first character and the second character. In various embodiments, the relationship score may be determined by comparing a set of attributes160(FIG. 2) of the first character to a second set of attributes160of the second character. A greater number of attributes in common results in a greater relationship score.

In addition, the relationship score may be determined based at least upon the user interaction data124. The user interaction data may indicate a quantity of users who have expressed a preference towards both the first character and the second character. The quantity may be adjusted to account for a proportion of users who have expressed a preference towards both the preferred character and the recommended character. The proportion may be made with respect to a total quantity of users, the quantity of users who favor the first character, the quantity of users who favor the second character, etc.

In box612, the content delivery service115determines that a second user prefers the first character. The content delivery service115, for example, may analyze user interaction data124of the second user to determine whether the second user has implicitly or explicitly indicated that he/she prefers the first character. In box615, the content delivery service115generates a recommendation126(FIG. 2) for the second user based at least upon the relationship score. For example, if the relationship score for the first character and the second character exceeds a predetermine threshold, then a recommendation126may be generated. If the first character is associated with multiple relationship scores for other characters, then the content delivery service115may be configured to identify the highest score to generate the recommendation126.

With reference toFIG. 7, shown is a schematic block diagram of the computing environment103according to an embodiment of the present disclosure. The computing environment103includes one or more computing devices700. Each computing device700includes at least one processor circuit, for example, having a processor703and a memory706, both of which are coupled to a local interface709. To this end, each computing device700may comprise, for example, at least one server computer or like device. The local interface709may comprise, for example, a data bus with an accompanying address/control bus or other bus structure as can be appreciated.

Stored in the memory706are both data and several components that are executable by the processor703. In particular, stored in the memory706and executable by the processor703are a content delivery service115, a relationship generation service118, and potentially other applications. Also stored in the memory706may be a data store112and other data. In addition, an operating system may be stored in the memory706and executable by the processor703.

Also, the processor703may represent multiple processors703and/or multiple processor cores and the memory706may represent multiple memories706that operate in parallel processing circuits, respectively. In such a case, the local interface709may be an appropriate network that facilitates communication between any two of the multiple processors703, between any processor703and any of the memories706, or between any two of the memories706, etc. The local interface709may comprise additional systems designed to coordinate this communication, including, for example, performing load balancing. The processor703may be of electrical or of some other available construction.