1. Field
This application relates generally to media content, and more specifically to a system and method for personalized delivery of media content.
2. Related Art
Conventional methods of delivering media for individuals may require substantial user effort to identify potential media content and/or to select media content to access. For example, a user may be required to perform a plurality of searches of the Internet to locate media of interest. Accordingly, improvements may be made over conventional methods of selecting or delivering media.
In one aspect, a system includes a social media tag-cloud generator. The social media tag-cloud generator obtains a user's social media feed and generates a topic tag cloud. The topic tag cloud includes a weighted key term representing a topic that occurs in the user's social media feed. A media-content source module obtains a first metadata about a first media-content episode. The media-content source module obtains a second metadata about a second media-content episode. The first metadata includes information to identify the first media content episode and to locate the first media content episode in a computer network. The second metadata includes information to identify the second media content episode and to locate the second media content episode in the computer network. A media-content scoring module determines a first score for the first media-content episode. The first score includes a first value judgment based on the weighted key term. A second score is determined for the second media-content episode. The second score includes a second value judgment based on the weighted key term. A sorted list is generated based on the first score and the second score. The sorted list includes the first metadata about the first media content episode and the second metadata about a second media-content episode. A client management module provides the sorted list to a client media-content application operating in a user's computing device. A user's skip/consume behavior information with respect to the first media-content episode and the second media-content episode is received from the client media-content application.
Optionally, the first value judgment can be based on the weighted key term, the first weighted average judgment based on the user's skip/consume behavior information with respect to the first media content episode, a first prior by curator score of a first program of the first media content, a first episode delta score of the first media content, and a first user peer score of the first program. The second value judgment can be based on the weighted key term, the second weighted average judgment based on the user's skip/consume behavior information with respect to the second media content episode, a second prior by curator score of a second program of the second media content, a second episode delta score of the second media content, and a second user peer score of the second program. The user's social media feed comprises a social networking service microblog feed managed by the user.
In another aspect, a method includes the step of receiving a user's skip/consume behavior data with respect to a set of consumed media-content episodes. The user's skip/consume behavior data is received from a client media-content application in a user's mobile device. A media-content episode is associated with a media-content program and a media-content topic. A set of unconsumed media content episodes is received. A set of media-content programs and a set of media-content topics associated with the set of consumed media-content episodes are scored, with at least one processor, based on the user's skip/consume behavior data with respect each member of the set of consumed media-content episodes. The set of unconsumed media-content episodes is sorted according to a score of the set of media-content programs and the set of media-content topics.
The present application can be best understood by reference to the following description taken in conjunction with the accompanying figures, in which like parts may be referred to by like numerals.
A graphical example of an implementation of a user peer value function is provided in
The Figures described above are a representative set, and are not an exhaustive with respect to embodying the invention.
Disclosed are a system, method, and article of manufacture of personalized delivery of media content. Although the present embodiments included have been described with reference to specific example embodiments, it can be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the particular example embodiment.
Reference throughout this specification to “one embodiment,” “an embodiment,” “one example,” or similar language means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, appearances of the phrases “in one embodiment,” “in an embodiment,” and similar language throughout this specification may, but do not necessarily, all refer to the same embodiment.
Furthermore, the described features, structures, or characteristics of the invention may be combined in any suitable manner in one or more embodiments. In the following description, numerous specific details are provided, such as examples of programming, software modules, user selections, network transactions, database queries, database structures, hardware modules, hardware circuits, hardware chips, etc., to provide a thorough understanding of embodiments of the invention. One skilled in the relevant art can recognize, however, that the invention may be practiced without one or more of the specific details, or with other methods, components, materials, and so forth. In other instances, well-known structures, materials, or operations are not shown or described in detail to avoid obscuring aspects of the invention.
The schematic flow chart diagrams included herein are generally set forth as logical flow chart diagrams. As such, the depicted order and labeled steps are indicative of one embodiment of the presented method. Other steps and methods may be conceived that are equivalent in function, logic, or effect to one or more steps, or portions thereof, of the illustrated method. Additionally, the format and symbols employed are provided to explain the logical steps of the method and are understood not to limit the scope of the method. Although various arrow types and line types may be employed in the flow chart diagrams, and they are understood not to limit the scope of the corresponding method. Indeed, some arrows or other connectors may be used to indicate only the logical flow of the method. For instance, an arrow may indicate a waiting or monitoring period of unspecified duration between enumerated steps of the depicted method. Additionally, the order in which a particular method occurs may or may not strictly adhere to the order of the corresponding steps shown.
A user's social media content feed can be utilized to determine topics of interest to the user. These topics can be weighted based on such factors as the frequency of appearance of hyperlinks to documents about the topic in a social media feed, analysis of the documents themselves, and the like. In some embodiments, a topic tag cloud can be generated that includes the weighted topics. The topic tag cloud can be utilized to score media content and/or sort media content playlist 112 (e.g. see
Media content source application programming interface(s) (APIs) 202 can be utilized to obtain metadata about available media content to be included in a sorted media content playlist. Example media content sources can include news and information audio/video sources (e.g. NPR®, audio/visual weblogs, podcasts, online educational content (e.g. iTunes® university and the like), traffic reports, weather reports, local news content, etc.). Content metadata can include information used to identify and/or locate the media content to be listed and/or ranked. Content metadata can include, inter alia, media content titles, media content type, topic of content media, episode designation(s), program designation(s), origin information, a reference to the full version, media content location (e.g. a uniform resource locator (URL)), a computer generated transcript of the content, and the like.
Content scoring module 204 can score each incoming media-content episode. Based on these scores, content scoring module 204 can sort a media content playlist and provide the media content playlist to a user's client media content application. Content scoring module 204 can dynamically update and/or re-sort the media content playlist based on input data (e.g. user skip/consume data, social media feed data, etc.). An example of a content scoring module 204 is provided in
Client management module 206 can serve a client media-content application operating in a user's computing device. For example, client management module 206 can provide media content playlists and concomitant metadata (e.g. links to media content and the like) to the client media content application. Client management module 206 can obtain data from the client media-content application as well. For example, client management module 206 can obtain user behavior data with respect to the media content playlist such as, inter alia, a user's skip/consume data and timestamps that indicate amount of time a user consumed a particular media content, etc. A skip can be an operation to pass over and/or omit the remainder of a media-content episode. As shown, example content scoring module 204 can continuously evaluate and dynamically update sorted content media playlists based on input information.
Modules 404-414 can analyze program and/or episode level information about media content ‘e’ 402 and generate a score for media content ‘e’ 416 (e.g. as represented by ‘Se’) with respect to a particular user. In this way, modules 404-414 can each provide an independent orthogonal component of the final score ‘Se’. Each media content member of unsorted list 400 can be scored in turn. The process can be repeated at specified periodic intervals and/or upon certain specified system triggers. At the program level, prior by curator module 404 can provide a score previously assigned by a system administrator to media content ‘e’ 402.
At both the program and episode levels, weighted average judgment module 406 can assigned a scored to be factored into Se based on weighted average judgments determined by the user's previous skip/consume behavior with respect to media content the user has previously experienced. Examples of components of a weighted average judgment functions are provided in
At the episode and/or program level, topic judgment module 408 can assign a topic score to be factored into Se. A topic score for a particular episode and/or program can be determined based on the weight of the respective topics of the user's current topic tag cloud 312. For example, the ‘science’ topic can be weighted greater than the ‘business’ topic in the user's current topic tag cloud 312. Topic judgment module 408 can then assign media content associated with topic ‘science’ higher than media content associated with topic ‘business’.
At the episode level, episode delta module 410 can provide a score to be factored into Se based on a collaborative filtering process. For example, a set of users can consume a particular episode of a podcast. An expected score (e.g. an expected weighted average judgment) can be generated for each user (e.g. using each user's historical consumption data). Expected score is an average of judgments of the user for that program, weighted by time decay, and judgments of other users. As each user consumes the episode, an actual score (e.g. an actual weighted average judgment) can be generated based on the user's behavior. The difference (e.g. the ‘delta’) between the expected and actual score can be determined for each user. These scores can be averaged to determine the ‘episode delta’ score for the episode. Media content episodes with higher episode delta values can be ‘pushed higher’ in a user's sorted media playlist. In this way, a user can be exposed to media content that her peers found interesting. An example of an episode delta process is provided in
At the program level, user peer value module 412 can apply a collaborative filtering algorithm with a similarity of users aspect to further influence the value of score Se. For example user peer value module 412 can provide a user peer score. User peer score can be factored into Se. In one example, a peer subset of users U1-UN can be determined to be similar to a particular user U. For example, users U1-UN can have made similar judgments with respect to various media content as user U. Once a peer subset is determined, a media content program P that the peer subset favored (e.g. based on their weighted average judgments as derived from skip/consume behavior with respect to episode(s) of program Ps) can receive a higher user peer score when presented to user U′s content scoring module than media content the peer subset did not favor. In one example, a user peer score can be the average judgment of users U1-UN for a program P.
An example of determining peer subset U1-UN is now provided. The users of system 100 can be mapped in an n-dimensional space. Each dimension of the n-dimensional space can correspond to a media content episode and/or program. The location of each user in the n-dimensional space can be based on their previous respective judgments (e.g. weighted average judgments derived from skip/consume behavior) with respect to the media content episode and/or program of each dimension. For user U, the peer subset of other users U1-UN can be determined based on their respective distance from user in the n-dimensional space. This can be determined utilizing a judgment distance function. For example, the distance from the user can be calculated from the dot product of the user's weighted average judgments with every other user. Other users found to be within a specified distance from user U can be included within the peer subset. A graphical example of a user peer value function is provided in
At the program level, an exploration score module 414 can increase the score Se of randomly and/or system administrator selected media content. In some embodiments, exploration score module 414 can be optional. An exploration score can be applied to media content programs that a user has not yet heard. In this way, exploration score module 414 can be utilized to prevent a user from being ‘trapped’ inside a narrow set of media content topics.
It is noted that, in some embodiments, one or more modules 404-414 can be omitted according to a system administrator preference. Additionally, a system administrator can tune score Se in various ways. For example, the respective scores of modules 404-414 can each be weighted to increase or decrease their influence on Se.
As used herein, a program can be a production of at least one or more episodes (e.g. a serialized television, podcast and/or radio program). An episode can be a unit of a serialized program. However, an episode can also be a single audio and/or video production (or even an image in some embodiments), and need not be a unit of a serialized program (e.g. a single recording of a famous speech and/or other event). Examples of programs include Talk of the Nation®, Fresh Air®, the News Hour®, This American Life® and the like.
Score 602 can indicate a user's level of interest in the episode. This can also imply an interest in a serialized program of which the episode is a part. Weight value 608 can indicate the weight the score judgment carries. A weighted average judgment can be calculated from score 602 and weight value 608 (e.g. by weighted average judgment module 406). The weight is higher if the user consumes content for longer and lower otherwise. Thus, the longer a user consumes an episode the greater the score can grow and the greater the weight that score can have in the scoring of other media content episodes in the same program by content scoring module 204 (e.g. the greater the influence on the score Se by weighted average judgment 406).
A graphical example 800 of an implementation of a user peer value function is provided in
Nearby users can be formed into peer subset of users U1-UN 808. For example, users U1-UN 808 can have made similar judgments with respect to various media content as user U in the past. Users U1-UN 808 can be determined according to their distance from user U 802. For example, the distance from the user can be calculated from the dot product of the user's weighted average judgments with every other user. The circle 806 graphically represents a specified distance used to determined similarity (e.g. with a specified threshold value according to a judgment distance function). Once a peer subset is determined, media content that users U1-UN 808 favored (e.g. with weighted average judgments as derived from skip/consume behavior above a specified value) can receive a higher score when presented to user U's content scoring module than media content the peer subset did not favor. For example, example 800 can be used to generate a user peer score. In this way, users U1-UN 808 consume the Marketplace® program. Users U1-UN 808 are also determined to be sufficiently similar to user U. User U's content scoring module can then score episodes of Marketplace® higher even if user U has not yet been exposed to Marketplace®.
At least some values based on the results of the above-described processes can be saved for subsequent use. Additionally, a (e.g. non-transients) computer-readable medium can be used to store (e.g., tangibly embody) one or more computer programs for performing any one of the above-described processes by means of a computer. The computer program may be written, for example, in a general-purpose programming language (e.g., Pascal, C, C++, Java, Python) and/or some specialized application-specific language (PHP, Java Script, XML).
Although the present embodiments have been described with reference to specific example embodiments, various modifications and changes can be made to these embodiments without departing from the broader spirit and scope of the various embodiments. For example, the various devices, modules, etc. described herein can be enabled and operated using hardware circuitry, firmware, software or any combination of hardware, firmware, and software (e.g., embodied in a machine-readable medium).
In addition, it can be appreciated that the various operations, processes, and methods disclosed herein can be embodied in a machine-readable medium and/or a machine accessible medium compatible with a data processing system (e.g., a computer system), and can be performed in any order (e.g., including using means for achieving the various operations). Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. In some embodiments, the machine-readable medium can be a non-transitory form of machine-readable medium. Finally, acts in accordance with
This application is a claims priority to U.S. patent provisional application No. 61/716,540 titled SYSTEM AND METHOD FOR PERSONALIZED DELIVERY OF MEDIA and filed on Oct. 21, 2012. This provisional application is hereby incorporated by reference in its entirety.