Using Machine Learning to Recommend Live Stream Content

By training the machine learning model to utilize the historical and current consumption data of live streaming items, the problem of classification and recommendation of live streaming items is solved, and more efficient resource utilization and user satisfaction are achieved.

CN114896492BActive Publication Date: 2025-07-11GOOGLE LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210420764.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2017-05-22
Filing Date
2018-02-22
Publication Date
2025-07-11
Estimated Expiration
2038-02-22

AI Technical Summary

Technical Problem

It is difficult for the prior art to effectively classify and recommend live streaming media items, resulting in waste of resources and decreased user satisfaction during search and acquisition.

Method used

By generating training data, a machine learning model is trained to identify user's consumption confidence in live streaming items, and a machine learning model is used to classify and recommend live streaming items.

Benefits of technology

It improves the classification accuracy and recommendation efficiency of live streaming media items, reduces resource waste, and improves user satisfaction in the search and acquisition system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114896492B_ABST
    Figure CN114896492B_ABST
Patent Text Reader

Abstract

The present invention relates to using machine learning to recommend live stream content. A system and method for training a machine learning model to recommend live streaming media items to users of a content sharing platform are disclosed. In one implementation, training data for the machine learning model is generated by generating a first training input that includes one or more previously presented live streaming media items consumed by users of a first user group. The training data further includes generating a second training input that includes one or more currently presented live streaming media items currently being consumed by users of a second user group. The training data further includes generating a first target output that identifies a live streaming media item and a confidence level at which a user will consume the live streaming media item. The method includes providing the training data to train the machine learning model.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Division Explanation

[0002] This application is a divisional application of Chinese Patent Application No. 201880027502.X with an application date of February 22, 2018. Technical Field

[0003] Aspects and embodiments of the present disclosure relate to content sharing platforms, and more particularly to generating recommendations for live streaming media items. Background Art

[0004] Social networks connected via the Internet allow users to connect with each other and share information. Many social networks include content sharing aspects that allow users to upload, view, and share content such as video items, image items, audio items, etc. Other users of the social network can comment on the shared content, discover new content, locate updates, share content, and otherwise interact with the provided content. The shared content can include content from professional content creators such as movie clips, TV clips, and music video items, as well as content from amateur content creators such as video blog posts and original short video items. Summary of the Invention

[0005] The following Summary of the Invention is a simplified summary of the present disclosure to provide a basic understanding of some aspects of the present disclosure. This Summary of the Invention is not an extensive overview of the present disclosure. It is not intended to identify key or essential elements of the present disclosure, nor is it intended to define the scope of any particular embodiment of the present disclosure or the scope of any claims. Its purpose is only to present some concepts of the present disclosure in a simplified form as a prelude to the more detailed description that follows.

[0006] In one implementation, the method includes generating training data for a machine learning model. Generating training data for a machine learning model includes generating a first training input that includes one or more previously presented media items, such as previously presented live streaming media items consumed by users of a first plurality of user groups on a content sharing platform. Generating training data for a machine learning model also includes generating a second training input that includes a currently presented media item, such as a currently presented live streaming media item currently being consumed by users of a second plurality of user groups on a content sharing platform. The method includes generating a first target input for the first training input and the second training input. The first target input identifies a media item, such as a live streaming media item, and a confidence level that a user will consume the media item. The method also includes providing the training data to train the machine learning model on (i) a set of training inputs that includes the first training input and the second training input and (ii) a set of target outputs that includes the first target output. Once the machine learning model has been trained, it can then be used to classify live streaming media items during their transmission (i.e., without having to wait for the transmission of the live streaming media item to complete).

[0007] In another implementation, generating training data for a machine learning model also includes generating a third training input that includes first context information associated with user accesses made by users of a first plurality of user groups who consumed one or more previously presented live streaming media items on a content sharing platform. Generating training data for a machine learning model also includes generating a fourth training input that includes second context information associated with user accesses made by users of a second plurality of user groups who are currently consuming a currently presented live streaming media item on a content sharing platform. The method includes providing the training data to train the machine learning model on (i) a set of training inputs that includes the first, second, third, and fourth training inputs and (ii) a set of target outputs that includes the first target output.

[0008] In one implementation, generating training data for a machine learning model also includes generating a fifth training input that includes first user information associated with users of a first plurality of user groups who consumed one or more previously presented live streaming media items on a content sharing platform. In one implementation, generating training data for a machine learning model also includes generating a sixth training input that includes second user information associated with users of a second plurality of user groups who are currently consuming a currently presented live streaming media item on a content sharing platform. The method also includes providing the training data to train the machine learning model on (i) a set of training inputs that includes the first, second, fifth, and sixth training inputs and (ii) a set of target outputs that includes the first target output.

[0009] In one implementation, each training input in the training input set is associated (e.g., mapped) with a corresponding target output in the target output set of the training inputs used to train the machine learning model.

[0010] In one implementation, the first training input includes a first user group among the first plurality of user groups, which consumes a first previously presented live streaming media item among the one or more previously presented live streaming media items, where the first previously presented live streaming media item is live streamed to the first user group.

[0011] In one implementation, the first training input includes a second user group among the first plurality of user groups, which consumes a second previously presented live streaming media item among the one or more previously presented live streaming media items, where the second previously presented live streaming media item is presented to the second user group after being live streamed.

[0012] In one implementation, the first training input includes a third user group among the first plurality of user groups, which consumes a different previously presented live streaming media item among the one or more previously presented live streaming media items, where the different previously presented live streaming media item is live streamed to the third user group and then classified into a similar category of live streaming media items.

[0013] In one implementation, the method further receives an indication of a user access to the content sharing platform by a user. The method generates a test output by the machine learning model, which identifies a test live streaming media item and a confidence level that the user will consume the test live streaming media item. The method further provides a recommendation of the test live streaming media item to the user. The method receives an indication of the user's consumption of the test live streaming media item in consideration of the recommendation. In response to the indication of the user's consumption of the test live streaming media item, the method adjusts the machine learning model based on the indication of the consumption.

[0014] In some embodiments, the machine learning model is configured to process a new user access to the content sharing platform by a new user and generate one or more outputs that indicate (i) a current live streaming media item, and (ii) a confidence level that the new user will consume the current live streaming media item.

[0015] In various embodiments, a method for recommending media items, such as live streaming media items, is disclosed. The method includes receiving an indication of a user access to a content sharing platform. In response to the user access, the method provides a first input including a context associated with the user access to the content sharing platform, a second input including user information associated with the user access to the content sharing platform, and a media item that is provided concurrently with the user access (e.g., a live streaming media item that is live streamed concurrently with the user access) and is being consumed by users of a first plurality of user groups on the content sharing platform to a trained machine learning model. The method also obtains one or more outputs from the trained machine learning model that identify (i) a plurality of media items that can be, for example, live streaming media items, and (ii) a confidence level that a user will consume a corresponding media item of the plurality of media items.

[0016] In another embodiment, the method provides a recommendation of one or more of a plurality of live streaming media items to a user of the content sharing platform taking into account the confidence level that the user will consume a corresponding media item of the plurality of media items.

[0017] In one embodiment, when providing a recommendation of one or more of a plurality of live streaming media items to a user of the content sharing platform, the method determines whether a confidence level associated with each of the plurality of live streaming media items exceeds a threshold level. In response to determining that the confidence level associated with one or more of the plurality of live streaming media items exceeds the threshold level, the method provides a recommendation of each of the one or more of the plurality of live streaming media items to the user.

[0018] In one embodiment, the trained machine learning model has been trained using a first training input that includes one or more previously presented live streaming media items consumed by users of a second plurality of user groups on the content sharing platform.

[0019] In one embodiment, the first training input includes a first user group of the second plurality of user groups that consumes a first previously presented live streaming media item that is live streamed to users of the first user group.

[0020] In one embodiment, the first training input includes a second user group of the second plurality of user groups that consumes a second previously presented live streaming media item that is presented to users of the second user group after being live streamed.

[0021] In one embodiment, the first training input includes a third user group that consumes different previously presented live streaming media items by a second plurality of user groups, where the different previously presented live streaming media items are live streamed to the users of the third user group and subsequently classified into similar categories of live streaming media items.

[0022] In one embodiment, the live streaming media item is a live streaming video item.

[0023] In additional embodiments, one or more processing devices for performing the operations of the above embodiments are disclosed. In additional embodiments, a system is disclosed that includes a memory; and a processing device coupled to the memory for performing operations including a method according to any of the above embodiments. In additional embodiments, a system is disclosed that includes a memory; and a processing device coupled to the memory; and a computer-readable storage medium storing instructions that, when executed, cause the processor to perform operations including a method according to any of the above embodiments. Further, in an embodiment of the present disclosure, a computer-readable storage medium (which may be a non-transitory computer-readable storage medium, but the embodiment is not limited thereto) stores instructions for performing the operations of the described embodiments. In other embodiments, systems for performing the operations of the described embodiments are also disclosed. BRIEF DESCRIPTION OF THE DRAWINGS

[0024] Aspects and embodiments of the present disclosure will be more fully understood from the following detailed description given below and the accompanying drawings of the various aspects and embodiments of the present disclosure, which should not be considered as limiting the present disclosure to specific embodiments, but are for explanation and understanding only.

[0025] Figure 1 An example system architecture in accordance with an embodiment of the present disclosure is illustrated.

[0026] Figure 2 is an example training set generator in accordance with an embodiment of the present disclosure for creating training data for a machine learning model that recommends live streaming media items.

[0027] Figure 3 A flowchart depicting an example of a method for training a machine learning model to recommend live streaming video items in accordance with an embodiment of the present disclosure is shown.

[0028] Figure 4 A flowchart depicting an example of a method for using a trained machine learning model to recommend live streaming video items in accordance with an embodiment of the present disclosure is shown.

[0029] Figure 5is a block diagram illustrating an exemplary computer system 500 in accordance with one embodiment of the present disclosure. DETAILED DESCRIPTION

[0030] A large number of content items are accessible online, and the number of available content items is continuously increasing. To assist in searching for and retrieving content items, it is known to classify or index content items based on their content. For example, media items that are frequently archived (such as pre-recorded movies) were previously recorded and stored, which provided sufficient time to analyze the content of the archived media items. For example, the archived media items could be classified by human classifiers or machine-assisted classifiers to generate metadata that describes the content of the archived media items, and this metadata could be used to determine whether to return the item in response to a search query. However, this is generally not the case for "live stream" media items. Media items such as video items (also referred to as "videos") can be uploaded by video owners (e.g., video creators or video distributors authorized to upload video items on behalf of the video creators) to a content sharing platform for live streaming as an event, for consumption by users of the content sharing platform via their user devices. A live stream media item can refer to a live broadcast or transmission of a live event, where the media item is transmitted at least partially concurrently as the event occurs, and where the media item cannot be fully obtained until after the event has ended. A live stream media item is a broadcast of a live event and presents incomplete information (e.g., the complete data of the live stream has not been received) and / or insufficient time (or other means) to perform robust content analysis and classify the item. Compared to classified archived media items, little or no information can be known about the content of live stream media items. This difficulty in classifying live stream items means that live stream items pose challenges in searching for and retrieving content items - such as identifying relevant live stream items - for example, in cases where live stream items are incorrectly or incompletely classified (or not classified at all), which may mean that although the content of the live stream item may be highly relevant to a search query, it is not located in response to the search query. Moreover, incorrect, incomplete, or missing classification of live stream items would mean that the process of searching for and retrieving items results in inefficient use of network resources, making it difficult to provide sufficient computing resources to identify relevant live stream media items.

[0031] Aspects of the present disclosure address the above-mentioned and other challenges by training a machine learning model using training data that includes previously presented live streaming items and currently presented live streaming items. The previously presented live streaming items are live streaming items that users in a first plurality of user groups consumed on a content sharing platform in the past. The currently presented live streaming items are live streaming items that users in a second plurality of user groups are currently consuming on the content sharing platform. A user group can be a grouping of users—such as users of a content sharing platform—based on one or more attributes or characteristics, such as previously presented live streaming items consumed by the users or currently presented live streaming items that the users are consuming. In an implementation, the trained machine learning model can be used to recommend one or more live streaming items to a particular user accessing the content sharing platform.

[0032] Training the machine learning model and using the trained machine learning model to classify live streaming items provides a more efficient classification of live streaming items, for example enabling a more accurate classification of live streaming items while the live media is still being transmitted. This enables a more accurate search for and retrieval of live stream items and / or a more accurate recommendation of live streaming items, which in turn reduces the computational (processing) resources required for the process of obtaining / providing media items—retrieving / recommending live streaming items that have been classified using the trained machine learning model is more resource efficient compared to retrieving / recommending media items for which little or no information about their content is available. Additionally, aspects of the present disclosure improve the overall user satisfaction of a search and retrieval system or content sharing platform, for example by ensuring that the items returned in response to a search query are actually relevant to the query.

[0033] It may be noted that live streaming items are used for illustrative and not limiting purposes. In other implementations, aspects of the present disclosure can be applied to other media items, such as any media item for which little or no information about the content of the media item is known. For example, aspects of the present disclosure can be applied to new media items that have not yet been classified, or any media item for which it is difficult to classify the content, such as virtual reality media items, augmented reality media items, or three-dimensional media items.

[0034] As mentioned above, a live streaming item can be a live broadcast or transmission of a live event. It may further be noted that, unless otherwise mentioned, a “live streaming item” or “currently presented live streaming item” refers to a media item that is being live streamed (e.g., the media item is transmitted concurrently with the live event occurring). After the live stream of a live streaming item is complete, the complete live streaming item can be obtained and stored, and can be referred to herein as a “previously presented live streaming item” or “archived live streaming item”.

[0035] Figure 1 FIG. illustrates an example system architecture 100 in accordance with one embodiment of the present disclosure. The system architecture 100 (also referred to herein as the "system") includes a content sharing platform 120 connected to a network 104, one or more server machines 130 to 150, a data store 106, and client devices 110A - 110Z.

[0036] In an embodiment, the network 104 may include a public network (e.g., the Internet), a private network (e.g., a local area network (LAN) or a wide area network (WAN)), a wired network (e.g., Ethernet), a wireless network (e.g., an 802.11 network or a WiFi network), a cellular network (e.g., a Long Term Evolution (LTE) network), routers, hubs, switches, server computers, and / or combinations thereof.

[0037] In an embodiment, the data store 106 is a persistent storage capable of storing content items (such as media items) and data structures for tagging, organizing, and indexing the content items. The data store 106 may be hosted by one or more storage devices (such as main memory, magnetic or optically based disks, tapes, or hard drives, NAS, SAN, etc.). In some embodiments, the data store 106 may be a network - attached file server, while in other embodiments, the data store 106 may be some other type of persistent storage, such as an object - oriented database, a relational database, etc., which may be hosted by the content sharing platform 120 or by one or more different machines coupled to the server content sharing platform 120 via the network 104.

[0038] Each of the client devices 110A - 110Z may include a computing device, such as a personal computer (PC), a laptop computer, a mobile phone, a smartphone, a tablet computer, a netbook computer, an Internet - connected television, etc. In some embodiments, the client devices 110A to 110Z may also be referred to as "user devices". In an embodiment, each client device includes a media viewer 111. In one embodiment, the media viewer 111 may be an application that allows a user to view or upload content such as images, video items, web pages, documents, etc. For example, the media viewer 111 may be a web browser capable of accessing, retrieving, presenting, and / or navigating content provided by a web server (e.g., a web page such as a HyperText Markup Language (HTML) page, a digital media item, etc.). The media viewer 111 may render, display, and / or present content (e.g., web pages, media viewers) to the user. The media viewer 111 may also include an embedded media player (e.g., a player or an HTML5 player). In another example, the media viewer 111 can be a stand-alone application (e.g., a mobile application or app) that allows a user to view digital media items (e.g., digital video items, digital images, e-books, etc.). According to aspects of the present disclosure, the media viewer 111 can be a content sharing platform application for a user to record, edit, and / or upload content for sharing on a content sharing platform. Thus, the media viewer 111 can be provided to the client devices 110A-110Z by the server machine 150 or the content sharing platform 120. For example, the media viewer 111 can be an embedded media player embedded in a web page provided by the content sharing platform 120. In another example, the media viewer 111 can be an application downloaded from the server machine 150.

[0039] In one implementation, the content sharing platform 120 or the server machines 130-150 can be one or more computing devices (such as rack servers, router computers, server computers, personal computers, mainframe computers, laptop computers, tablet computers, desktop computers, etc.), data storage (e.g., hard disks, memories, databases), networks, software components, and / or hardware components that can be used to provide a user with access to media items and / or provide media items to the user. For example, the content sharing platform 120 can allow a user to consume, upload, search, and approve (e.g., "like"), disapprove (e.g., "dislike") media items and / or comments on the media items. The content sharing platform 120 can also include a website (e.g., a web page) or application backend software that can be used to provide a user with access to media items.

[0040] In embodiments of the present disclosure, a "user" can be represented as a single individual. However, other embodiments of the present disclosure cover a "user" as an entity controlled by a set of users and / or automated sources. For example, a set of individual users united as a group in a social network can be considered a "user". In another example, an automated consumer can be an automated ingestion pipeline of the content sharing platform 120, such as a topic channel.

[0041] The content sharing platform 120 includes a plurality of channels (e.g., channels A through Z). A channel can be data content obtained from a common source or data content having a common theme, topic, or substance. The data content can be digital content selected by a user, digital content made available by a user, digital content uploaded by a user, content selected by a content provider, digital content selected by a broadcaster, and so on. For example, channel X can include videos Y and Z. A channel can be associated with an owner, which is a user who can perform actions on the channel. Different activities can be associated with a channel based on the actions of the owner, such as the owner making digital content available on the channel, the owner selecting (e.g., liking) digital content associated with another channel, the owner commenting on digital content associated with another channel, and so on. The activities associated with a channel can be collected into an activity feed for that channel. Users other than the channel owner can subscribe to one or more channels that they are interested in. The concept of "subscribing" can also be referred to as "liking", "following", "becoming friends", etc.

[0042] Once a user subscribes to a channel, the user can be presented with information from the activity feed of that channel. If a user subscribes to multiple channels, the activity feeds of each channel that the user subscribes to can be combined into a syndicated activity feed. Information from the syndicated activity feed can be presented to the user. A channel can have its own feed. For example, when navigating to the home page of a channel on the content sharing platform, the feed items generated by that channel can be shown on the channel home page. A user can have a syndicated feed, which is a feed that includes at least a subset of the content items from all the channels that the user subscribes to. The syndicated feed can also include content items from channels that the user has not subscribed to. For example, the content sharing platform 120 or other social networks can insert recommended content items into the user's syndicated feed, or can insert content items associated with the user's relevant connections into the syndicated feed.

[0043] Each channel can include one or more media items 121. Examples of media items 121 can include, but are not limited to, digital videos, digital movies, digital photos, digital music, website content, social media updates, e-books, e-magazines, digital newspapers, digital audiobooks, e-journals, web blogs, Really Simple Syndication (RSS) feeds, digital comic strips, software applications, etc. In some embodiments, the media items 121 can also be referred to as content or content items.

[0044] Media item 121 can be consumed via the Internet and / or via a mobile device application. For reasons of clarity and brevity, a video item is used as an example of media item 121 throughout this document. As used herein, "media", "media item", "online media item", "digital media", "digital media item", "content", and "content item" can include electronic files that can be executed or loaded using software, firmware, or hardware configured to present digital media items to an entity. In one implementation, content sharing platform 120 can use data store 106 to store media item 121. In another implementation, content sharing platform 120 can use data store 106 to store video items or fingerprints as electronic files in one or more formats.

[0045] In one implementation, media item 121 is a video item. A video item is a collection of sequential video frames (e.g., image frames) representing a scene in motion. For example, a series of sequential video frames can be continuously captured and then reconstructed to produce an animation. Video items can be represented in various formats, including but not limited to analog, digital, two-dimensional, and three-dimensional video. Further, a video item can include a movie, a video clip, or any collection of animated images to be displayed sequentially. Additionally, a video item can be stored as a video file that includes a video component and an audio component. The video component can refer to video data in a video coding format or an image coding format (e.g., H.264 (MPEG-A AVC), H.264 MPEG-4 Part 2, Graphics Interchange Format (GIF), WebP, etc.). The audio component can refer to audio data in an audio coding format (e.g., Advanced Audio Coding (AAC), MP3, etc.). It can be noted that a GIF can be saved as an image file (e.g.,.gif file) or as an animated GIF (e.g., GIF89a format) as a series of images. It can be noted that, by way of example, H.264 can be a video coding format that is a block-based motion-compensated video compression standard for the recording, compression, or distribution of video content.

[0046] In an embodiment, the content sharing platform 120 allows users to create, share, view, or use playlists that include media items (e.g., playlist A-Z that includes media item 121). A playlist refers to a collection of media items that are configured to be played one by one in a specific order without any user interaction. In an embodiment, the content sharing platform 120 may maintain playlists on behalf of users. In an embodiment, the playlist feature of the content sharing platform 120 allows users to group their favorite media items together in a single location for playback. In an embodiment, the content sharing platform 120 may send the media items on a playlist to the client device 110 for playback or display. For example, the media viewer 110 may be used to play the media items on the playlist in the order in which they are listed on the playlist. In another example, a user may navigate between the media items on the playlist. In yet another example, a user may wait for the next media item on the playlist to play or may select a specific media item in the playlist to play.

[0047] In some embodiments, the content sharing platform 120 may make recommendations for media items to a user or group of users, such as recommendation 122. A recommendation may be an indicator (e.g., an interface component, an electronic message, a recommendation feed, etc.) that provides a user with a personalized suggestion of media items that may be of interest to the user. For example, a recommendation may be presented as a thumbnail of a media item. In response to an interaction (e.g., a click) made by the user, a larger version of the media item may be presented for playback. In an embodiment, recommendations may be made using data from various sources, including media items that a user likes, recently added playlist media items, recently viewed media items, media item ratings, information from cookies, user history, and other sources. In one embodiment, as will be further described herein, a recommendation may be based on the output of a trained machine learning model 160. It may be noted that recommendations may be for media items 121, channels, playlists, and the like. In one embodiment, recommendation 122 may be a recommendation for one or more live streaming media items that are currently live streaming on the content sharing platform 120.

[0048] The server machine 130 includes a training set generator 131 that is capable of generating training data (e.g., a set of training inputs and a set of target outputs) to train a machine learning model. Some operations of the training set generator 131 are described in detail below with respect to Figures 2 to 3 Some operations of the training set generator 131 are described in detail below with respect to

[0049] Server machine 140 includes a training engine 141 that can use training data from a training set generator 131 to train a machine learning model 160. The machine learning model 160 can refer to a model artifact created by the training engine 141 using training data that includes training inputs and corresponding target outputs (correct responses for the corresponding training inputs). The training engine 141 can find patterns in the training data that map the training inputs to training outputs (responses to be predicted) and provide the machine learning model 160 that captures these patterns. The machine learning model 160 can, for example, consist of single-layer linear or non-linear operations (e.g., a support vector machine [SVM]) or can be a deep network, i.e., a machine learning model consisting of multi-layer non-linear operations. An example of a deep network is a neural network having one or more hidden layers, and such a machine learning model can be trained, for example, by adjusting the weights of the neural network according to a backpropagation learning algorithm or the like. For convenience, the remainder of this disclosure will refer to this embodiment as a neural network, even though some embodiments may substitute a neural network or employ an SVM or other type of machine learning in addition to it. In one aspect, the training set is obtained from server machine 130.

[0050] Server machine 150 includes a live stream recommendation engine 151 that provides data (e.g., context information associated with a user's access to content sharing platform 120, user information associated with the user's access, or live stream media items that are being live streamed concurrently with the user's access and are currently being consumed by users of one or more user groups) as input to the trained machine learning model 160 and runs the trained machine learning model 160 on the input to obtain one or more outputs. As described in detail below with respect to Figure 4 In one embodiment, the live stream recommendation engine 151 is also capable of identifying one or more live stream media items that are currently or about to be live streamed from the output of the trained machine learning model 160 and extracting confidence data from the output that indicates the confidence level that the user will consume the corresponding live stream media item, and using the confidence data to provide recommendations for live stream media items that are currently being live streamed.

[0051] It should be noted that in some embodiments, the functions of server machines 130, 140, and 150 or content sharing platform 120 can be provided by a smaller number of machines. For example, in some embodiments, server machines 130 and 140 can be integrated into a single machine, and in some other embodiments, server machines 130, 140, and 150 can be integrated into a single machine. Additionally, in some embodiments, one or more of server machines 130, 140, and 150 can be integrated into content sharing platform 120.

[0052] In general, and where appropriate, functions described in one embodiment as being performed by content sharing platform 120, server machine 130, server machine 140, or server machine 150 may be performed on client devices 110A - 110Z in other embodiments. Additionally, functions attributed to a particular component may be performed by different components or multiple components operating together. Content sharing platform 120, server machine 130, server machine 140, or server machine 150 may also be accessed as a service provided to other systems or devices through an appropriate application programming interface and is thus not limited to use within a website.

[0053] Although embodiments of the present disclosure have been discussed with respect to a content sharing platform and facilitating social network sharing of content items on the content sharing platform, the embodiments may also be generally applicable to any type of social network that provides connections between users. Embodiments of the present disclosure are not limited to content sharing platforms that provide channel subscriptions for users.

[0054] Where the systems discussed herein collect personal information about a user or may make use of personal information, the user may be provided with an opportunity to control whether content sharing platform 120 collects user information (e.g., information about the user's social network, social actions or activities, occupation, user preferences, or the user's current location) or to control whether and / or how content may be received from the content server that may be more relevant to the user. Additionally, certain data may be treated in one or more ways before it is stored or used such that personally identifiable information is removed. For example, a user's identity may be processed so that personally identifiable information cannot be determined for the user, or where location information is obtained, the user's geographical location may be generalized (such as processed to the city, ZIP code, or state level) so that the user's specific location cannot be determined. Thus, the user may control how content sharing platform 120 collects and uses information about that user.

[0055] Figure 2 is an example training set generator according to an embodiment of the present disclosure, which is used to create training data for a machine learning model that recommends live streaming media items. System 200 shows training set generator 131, training input 230, and target output 240. System 200 may include components similar to those of system 100 as described with respect to Figure 1 The components described with respect to system 100 of Figure 1 may be used to help describe Figure 2 system 200.

[0056] In an embodiment, the training set generator 131 generates training data including one or more training inputs 230, one or more target outputs 240. The training data may further include mapping data that maps the training inputs 230 to the target outputs 240. The training inputs 230 may also be referred to as "features" or "attributes". In an embodiment, the training set generator 131 may provide the training data in a training set and provide the training set to a training engine 141 in which the training set is used to train a machine learning model 160. Generating the training set may be further described with respect to Figure 3 depicted.

[0057] In one embodiment, the training inputs 230 may include one or more previously presented live streaming media items 230A, a currently presented live streaming media item 230B, context information 230C, or user information 230D. In one embodiment, the previously presented live streaming media items 230A may be archived live streaming media items consumed by users of one or more user groups of the content sharing platform 120.

[0058] In one embodiment, the previously presented live streaming media items 230A may include previously presented live streaming media items mapped to (or associated with) user groups (referred to as "user groups") that consumed (e.g., watched together) the (same) previously presented live streaming media item while the live streaming media item was live streamed to the users of the user group. It may be noted that the previously presented live streaming media items 230A may include multiple previously presented live streaming media items, where each previously presented live streaming media item is mapped to a corresponding user group that watched the previously presented live streaming media item together. It may be noted that users who watched one or more of the same live streaming media items while the media item was live streamed (compared to users who did not watch any of the same live streaming media items) will cluster more closely together.

[0059] In an implementation, one or more features can be considered to cluster users, such as consumption of the same previously presented live streaming media item. It can be noted that, in some implementations, groups of users can be clustered before being used as training input 230 (or, as described below, before being used as input to the trained machine learning model 160). For example, the (previously presented) live streaming media item mapped to the group of users can be the training input 230, where the group is determined before being used as the training input 230. The above training input 230 can be a single training input and, for example, be referred to as the previously presented live streaming media item mapped to the group of users or the group of users who consumed the previously presented live streaming media item (etc.). It can also be noted that the above training input 230 can include a specific live streaming media item and additional information of the users identifying or specifying the specific group of users. It can be noted that, in implementations where the live streaming media item is mapped to the group of users, the training set generator 131 can further generate new groups of users or modify existing groups of users. In other implementations, the (e.g., previously presented) live streaming media item and the users who consumed the (previously presented) live streaming media item can be separate training inputs 230, where the training set generator 131 determines the group of users (e.g., based on the context information 230C or user information 230D of the users in the group of users). It can be noted that the above can be applied to other groups of users described herein and the live streaming media items mapped to other groups of users.

[0060] In some implementations, machine learning techniques can be used to determine the group of users used as the training input 230 (or input to the trained machine learning model 160). For example, K-means clustering or other clustering algorithms can be used.

[0061] It can be noted that, as will be described below, additional features can be used to distinguish the groups of users who consumed the previously presented live streaming media item 230.

[0062] In another implementation, the previously presented live streaming media item 230A includes the previously presented live streaming media item mapped to (or associated with) the group of users, where the group of users consumed the (same) previously presented live streaming media item (e.g., consumed the archived live streaming media item) after the live streaming media item was live-streamed. It can be noted that the previously presented live streaming media item 230A can include multiple previously presented live streaming media items, where each previously presented live streaming media item is mapped to the corresponding group of users who jointly watched the corresponding archived live streaming media item. It can be noted that users who watched the archived live streaming media item and different users who watched the same live streaming media item while the media item was being live-streamed will be clustered more closely together.

[0063] In yet another embodiment, the previously presented live streaming media item 230A includes different previously presented live streaming media items mapped to (or associated with) user groups, where the user groups consumed one or more of the different previously presented live streaming media items during the live streaming of the different previously presented live streaming media items, and the different previously presented live streaming media items were subsequently classified into similar or the same live streaming media item categories. For example, a first user group consumed live stream A, and a second user group consumed live stream B. Live stream A and live stream B were subsequently archived and categorized (e.g., human categorization or machine-assisted categorization, such as content analysis). Both live stream A and B were categorized as a football game. The users who consumed live stream A and the different users who consumed live stream B can be included in the same user group. The previously presented live streaming media item 230A and the corresponding user groups described above are intended to be illustrative rather than restrictive, as other combinations of the elements given herein or other previously presented live streaming media items 230A and associated user groups can be used.

[0064] It can also be noted that content analysis can be performed on the previously presented live streaming media item 230A (e.g., the complete information received), and metadata describing the previously presented live streaming media item 230A can be obtained. In one embodiment, the metadata can include descriptors or categories describing the content of the previously presented live streaming media item 230A. The descriptors and categories can be generated using human categorization or machine-assisted categorization and are associated with the corresponding previously presented live streaming media item 230A. In some embodiments, the metadata of the previously presented live streaming media item 230A can be used as additional training input 230.

[0065] In one embodiment, the training input 230 can include the currently presented live streaming media item 230B. In one embodiment, the currently presented live streaming media item 230B can include currently presented live streaming media items mapped to (or associated with) user groups, where the users of the user groups are currently consuming (e.g., co-watching) the (same) live streaming media item while the live streaming media item is being live streamed to the users of the user groups on the content sharing platform 120. It can be noted that the currently presented live streaming media item 230B can include multiple currently presented live streaming media items, where each currently presented live streaming media item is mapped to the corresponding user group that co-watches the corresponding currently presented live streaming media item. In some embodiments, the currently presented live streaming media items have little or no metadata describing their content.

[0066] In an embodiment, the training input 230 may include context information 230C. The context information may refer to information about the environment or context of a user's access to the content sharing platform 120 for consuming a particular media item. For example, a user may use a browser or a native application to access the content sharing platform 120. The context record of the user's access may be recorded and stored, and may include, for example, the daily time of the user's access, the Internet Protocol (IP) address assigned to the user device making the access (which may be used to determine the location of the device or the user), the type of the user device, or other context information describing the user's access. In an embodiment, the context information 230C may include the context information of the user's access to the content sharing platform 120 by some or all of the users in a user group for consuming a previously presented live streaming media item 230A or a currently presented live streaming media item 230B.

[0067] In an embodiment, the training input 230 may include user information 230D. The user information may refer to information about or describing the user accessing the content sharing platform 120. For example, the user information 230D may include the user's age, gender, user history (e.g., previously watched media items), or affinity. Affinity may refer to the user's interest in a particular category of media items (e.g., news, video games, college basketball, etc.). An affinity score (e.g., a numerical value from 0 to 1, from low to high) may be assigned to each category to quantify the user's interest in a particular category. For example, a user may have an affinity score of 0.5 for college basketball and an affinity score of 0.9 for food games. For example, a user may log in (e.g., account name and password) to the content sharing platform 120, and the user information 230D may be associated with the user account. In another example, a cookie may be associated with the user, the user device, or the user application, and the user information 230D may be determined from the cookie. In an embodiment, the user information 230D may include the user information of some or all of the users in some or all of the user groups consuming a previously presented live streaming media item 230A or a currently presented live streaming media item 230B.

[0068] In an embodiment, the target output 240 may include one or more live streaming media items 240A. In one embodiment, the live streaming media item 240A may include the currently presented live streaming media item. In one embodiment, the live streaming media item 240A may include associated confidence data 240B. The confidence data 240B may include or indicate the confidence level that a user will consume the live streaming media item 240A. In one example, the confidence level is a real number between 0 and 1, where 0 indicates the confidence that no user will consume the live streaming media item 240A, and 1 indicates absolute confidence that a user will consume the live streaming media item 240A.

[0069] In some embodiments, after generating a training set and using the training set to train a machine learning model 160, the machine learning model 160 can be further trained (e.g., for additional data of the training set) or adjusted (e.g., adjusting weights associated with the input data of the machine learning model 160, such as connection weights in a neural network) using the recommended live streaming media items (e.g., recommended by the trained or partially trained machine learning model 160) and the user's interactions with the recommended live streaming media items. For example, after generating a training set and using the training set to train a machine learning model 160, the machine learning model 160 can be used to make recommendations of live streaming media items to users of the content sharing platform 120. After making such a recommendation, the system 100 can receive an indication that the user has consumed the recommended live streaming media item. For example, the system 100 can receive an indication that the user has consumed the recommended live streaming media item (e.g., watched the live streaming media item for a threshold amount of time) or an indication that the user has not consumed the recommended live streaming media item (e.g., has not selected the recommended live streaming media item). Information about the recommended live streaming media item can be used as additional training input 230 or additional target output 240 to further train or adjust the machine learning model 160. For example, the context information of the user's access and the user information of the user associated with the recommended live streaming media item can be used as additional training input 230, and the recommended live streaming media item can be used as the target output 240. In still other examples, the indication of the user's consumption can be used to generate or adjust the confidence data of the recommended live streaming media item, and the confidence data can be used for the additional target output 240.

[0070] In one embodiment, to further train or adjust the machine learning model 160 using the recommended live streaming media items, the system 100 can receive an indication of the user's access to the content sharing platform 120. The system 100 uses the (trained or partially trained) machine learning model 160 to generate a test output identifying a test live streaming media item and a confidence level that the user will consume the test live streaming media item. The system 100 provides a recommendation of the test live streaming media item to the user based on the confidence level (e.g., if the confidence level exceeds a threshold). The system 100 receives an indication that the user has consumed the test live streaming media item in consideration of the recommendation. The system 100 adjusts the machine learning model based on the indication of the consumption in response to the indication that the user has consumed the test live streaming media item.

[0071] Figure 3FIG. 300 is a flow chart depicting an example of a method 300 for training a machine learning model in accordance with an embodiment of the present disclosure. The method is performed by processing logic that may include hardware (circuitry, dedicated logic, etc.), software (e.g., instructions running on a processing device), or a combination thereof. In one embodiment, some or all of the operations of method 300 may be performed by Figure 1 one or more components of system 100. In other embodiments, some or all of the operations of method 300 may be performed by a training set generator 131 of a server machine 130 as described with respect to Figures 1 to 2 . It may be noted that the components described with respect to Figures 1 to 2 may be used to illustrate aspects of Figure 3 .

[0072] Method 300 begins by generating training data for a machine learning model. In some embodiments, at block 301, the processing logic implementing method 300 initializes a training set T to an empty set. At block 302, the processing logic generates a first training input that includes one or more previously presented live streaming items 230A consumed by users of a first plurality of user groups on a content sharing platform (as described with respect to Figure 2 ). At block 303, the processing logic generates a second training input that includes a currently presented live streaming item 230B currently being consumed by users of the first plurality of user groups on the content sharing platform. At block 304, the processing logic generates a third training input that includes first context information associated with user accesses made by users of the first plurality of user groups consuming one or more previously presented live streaming items 230A on content sharing platform 120. At block 305, the processing logic generates a fourth training input that includes second context information associated with user accesses made by users of a second plurality of user groups consuming the currently presented live streaming item on content sharing platform 120. At block 306, the processing logic generates a fifth training input that includes first user information associated with users of the first plurality of user groups consuming one or more previously presented live streaming items 230A on content sharing platform 120. At block 307, the processing logic generates a sixth training input that includes second user information associated with users of the second plurality of user groups consuming the currently presented live streaming item 230B on content sharing platform 120.

[0073] At block 308, the processing logic generates a first target output for one or more of the training inputs (e.g., training inputs one through six). This first target output identifies the live streaming media item (e.g., currently presented) and the confidence level that the user will consume the live streaming media item. At block 309, the processing logic generates mapping data indicative of an input / output mapping. This input / output mapping (or mapping data) can refer to the training inputs (e.g., one or more of the training inputs described herein), the target outputs for the training inputs (e.g., where the target output identifies the live streaming media item and the confidence level that the user will consume the live streaming media item), and where the (multiple) training inputs are associated with (or map to) the training outputs. At block 310, the processing logic adds the mapping data generated at block 309 to the training set T.

[0074] At block 311, the processing logic branches based on whether the training set T is sufficient for training the machine learning model 160. If so, the execution proceeds to block 312; otherwise, the execution continues back to block 302. It should be noted that in some embodiments, the sufficiency of the training set T can be determined simply based on the number of input / output mappings in the training set, while in some other embodiments, in addition to or instead of the number of input / output mappings, the sufficiency of the training set T can be determined based on one or more other criteria (e.g., a measure of the diversity of the training examples, accuracy, etc.).

[0075] At block 312, the processing logic provides the training set T to the machine learning model 160. In one embodiment, the training set T is provided to the training engine 141 of the server machine 140 to perform the training. For example, in the case of a neural network, the input values of the input / output mapping (e.g., the numerical values associated with the training input 230) are input into the neural network, and the output values of the input / output mapping (e.g., the numerical values associated with the target output 240) are stored in the output nodes of the neural network. The connection weights in the neural network are then adjusted according to a learning algorithm (e.g., backpropagation, etc.), and the process is repeated for other input / output mappings in the training set T. After block 312, the machine learning model 160 can be trained using the training engine 141 of the server machine 140. The trained machine learning model 160 can be implemented by the live stream recommendation engine 151 (of the server machine 150 or the content sharing platform 120) to determine live streaming media items and the confidence data for each live streaming media item, and make recommendations of live streaming media items to the user.

[0076] Figure 4FIG. 400 is a flowchart depicting an example of a method for recommending live streaming video items using a trained machine learning model in accordance with an embodiment of the present disclosure. The method is performed by processing logic that may include hardware (circuitry, dedicated logic, etc.), software (e.g., instructions running on a processing device), or a combination thereof. In one embodiment, some or all of the operations of method 400 may be performed by Figure 1 one or more components of system 100. In other embodiments, some or all of the operations of method 400 may be performed by the live stream recommendation engine 151 of the server machine 150 or the content sharing platform 120 implementing the trained model, such as the trained machine learning model 160 described with respect to Figures 1 to 3 . It may be noted that the components described with respect to Figures 1 to 2 may be used to illustrate aspects of Figure 4 .

[0077] In some embodiments, the trained machine learning model 160 may be used to recommend currently presented live streaming media items that are being live streamed on the content sharing platform 120. In some embodiments, in response to a user accessing (e.g., an accessing user) the content sharing platform 120, multiple inputs may be provided to the trained machine learning model 160. For example, the inputs may include the currently presented live streaming media item mapped to the user or user group that is currently consuming the currently presented live streaming media item (at the time of the user's access). The input may also include information related to the user accessing the content sharing platform 120, such as user information 230D, or context data such as context information 230C regarding the context of the user's access. The trained machine learning model 160 may graphically or map the accessing user in a multi-dimensional space (e.g., where each dimension is based on a feature of the training input 230). The multi-dimensional space may map other users in the group based on the group used as the training input 230 or other groups determined from the mapping data. The accessing user may be mapped in one or more user groups in the multi-dimensional space. The trained machine learning model 160 may identify other users or user groups (e.g., nearby users or user groups) that are close to (e.g., within a certain threshold distance) the accessing user, examine the currently presented live streaming media items that the nearby users or user groups are accessing, and output one or more currently presented live streaming media items that the nearby users or user groups are consuming. In some embodiments, the closer the nearby users or user groups are to the accessing user, the higher the confidence level that the accessing user will access the currently presented live streaming media item associated with the corresponding nearby users or user groups.

[0078] Method 400 begins at block 401, where the processing logic implementing method 400 receives an indication of user access to content sharing platform 120. At block 402, in response to the user access, the processing logic provides input data having a first input, a second input, and a third input to trained machine learning model 160. The first input includes context information associated with the user access to content sharing platform 120 (e.g., context information 230C). For example, the context information may include the daily time of the user access and the type of device accessing content sharing platform 120. The second input includes user information associated with the user access to content sharing platform 120 (e.g., user information 230D). For example, the user information may include the gender and age of the user. The third input includes a live streaming media item that is being live streamed concurrently with the user access and that is currently being consumed by users of a first plurality of user groups on content sharing platform 120. For example, the third input may include the currently presented live streaming media item that is being live streamed on content sharing platform 120 and that is mapped to or associated with the user group consuming the currently presented live streaming media item. In an implementation, the input (e.g., the first through third inputs) may be provided to trained machine learning model 160 in a single operation or multiple operations.

[0079] At block 403, the processing logic obtains one or more outputs from trained machine learning model 160 and based on the input data, the outputs identifying (i) a plurality of live streaming media items and (ii) a confidence level for the user to consume a respective one of the plurality of live streaming media items. For example, trained machine learning model 160 may output a live streaming media item currently being live streamed on content sharing platform 120 and confidence data indicating a confidence level that a user accessing content sharing platform 120 will consume the currently presented live streaming media item.

[0080] At block 404, the processing logic may provide recommendations to the user of content sharing platform 120 for one or more of the plurality of live streaming media items, taking into account the confidence level for the user to consume a respective one of the plurality of live streaming media items. In one implementation, the processing logic may determine which of the plurality of live streaming media items determined by trained machine learning model 160 has a confidence level that exceeds or meets a threshold level. The processing logic may select some (e.g., the top three) or all of the live streaming media items (a group of live streaming media items) having a confidence level that exceeds or meets the threshold level, and provide recommendations for each live streaming media item in the group of live streaming media items.

[0081] Figure 5FIG. 0 is a block diagram illustrating an exemplary computer system 500 in accordance with an embodiment of the present disclosure. The computer system 500 executes one or more instruction sets that cause a machine to perform any one or more of the methods discussed herein. The instruction sets, instructions, etc. may refer to instructions that, when executed by the computer system 500, cause the computer system 500 to perform one or more operations of the training set generator 131 or the live stream recommendation engine 151. The machine may operate in the capacity of a server or a client machine in a client-server network environment, or as an endpoint computer in an end-to-end (or distributed) network environment. The machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a mobile phone, a web appliance, a server, a network router, a switch or bridge, or any machine capable of executing a set of instructions (sequentially or otherwise) that specify actions to be taken by that machine. Additionally, although only a single machine is illustrated, the term "machine" shall also be taken to include any collection of machines that individually or jointly execute the instruction set to perform any one or more of the methods discussed herein.

[0082] The computer system 500 includes a processor 502, a main memory 504 (e.g., read only memory (ROM), flash memory, dynamic random access memory (DRAM), such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM)), a static memory 506 (e.g., flash memory, static random access memory (SRAM)), and a data storage device 516 that communicate with each other via a bus 508.

[0083] The processor 502 represents one or more general-purpose processing devices, such as a microprocessor, a central processing unit, etc. More particularly, the processor 502 may be a complex instruction set computing (CICS) microprocessor, a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, or a processor implementing other instruction sets or a combination of instruction sets. The processor 502 may also be one or more special-purpose processing devices, such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), a network processor, etc. The processor 502 is configured to execute the instructions of the system architecture 100 and the training set generator 131 or the live stream recommendation engine 151 to perform the operations and steps discussed herein.

[0084] The computer system 500 may further include a network interface device 522 that provides communication with other machines via a network 518 such as a local area network (LAN), an intranet, an external network, or the Internet. The computer system 500 may also include a display device 510 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an alphanumeric input device 512 (e.g., a keyboard), a cursor control device 514 (e.g., a mouse), and a signal generation device 520 (e.g., a speaker).

[0085] The data storage device 516 may include a computer-readable storage medium 524 having stored thereon an instruction set embodying any one or more of the methods or functions described herein, such as the system architecture 100 and the training set generator 131 or the live stream recommendation engine 151. The instruction set of the system architecture 100 and the training set generator 131 or the live stream recommendation engine 151 may also reside, completely or at least partially, within the main memory 504 and / or the processing device 502 during execution by the computer system 500, and the main memory 504 and the processing device 502 also constitute computer-readable storage media. The instruction set may further be transmitted and received over the network 518 via the network interface device 522.

[0086] Although the computer-readable storage medium 524 is shown as a single medium in this exemplary embodiment, the term "computer-readable storage medium" should be understood to include a single medium or multiple media (e.g., a centralized or distributed database, and / or associated caches and servers) storing one or more instruction sets. The term "computer-readable storage medium" can include any medium that is capable of storing, encoding, or carrying an instruction set for execution by a machine and that causes the machine to perform one or more of the methods of the present disclosure. The term "computer-readable storage medium" should therefore be understood to include, but not be limited to, solid state memories, optical media, and magnetic media.

[0087] Numerous details are set forth in the above description. However, it will be apparent to those skilled in the art who have benefited from the present disclosure that the present disclosure may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form rather than in detail to avoid obscuring the present disclosure.

[0088] Some portions of the detailed description that follows are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means by which those skilled in the data processing arts convey the substance of their work effectively to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulation of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, etc.

[0089] However, it should be borne in mind that all of these and similar terms are to be associated with appropriate physical quantities and are merely convenient symbols applied to these quantities. Unless otherwise apparent from the following discussion, it is to be appreciated that throughout the description, discussions using terms such as "providing," "receiving," "adjusting," "generating," "obtaining," "determining," etc., refer to the actions and processes of a computer system or similar electronic computing device that manipulates data represented as physical (e.g., electronic) quantities within the registers and memories of the computer system and transforms it into other data similarly represented as physical quantities within the memories or registers of the computer system or other such information storage, transmission, or display devices.

[0090] Embodiments of the present disclosure also relate to an apparatus for performing the operations herein. The apparatus may be specially constructed for the required purposes or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in a computer. Such a computer program may be stored in a non-transitory computer-readable storage medium, which may be, but is not limited to, any type of disk, including a floppy disk, optical disk, compact disk read-only memory (CD-ROM), magneto-optical disk, read-only memory (ROM), random access memory (RAM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), magnetic or optical card, or any other type of medium suitable for storing electronic instructions.

[0091] The terms "example" or "exemplary" are used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as "example" or "exemplary" is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, the use of the terms "example" or "exemplary" is intended to present concepts in a concrete fashion. As used in this application, the term "or" is intended to mean inclusive "or" and not exclusive "or". That is, unless stated otherwise or otherwise clear from the context, "X includes A or B" is intended to mean any of the natural inclusive permutations. That is, if X includes A; X includes B; or X includes both A and B, then "X includes A or B" is satisfied under any of the foregoing instances. In addition, unless stated otherwise or otherwise clear from the context as indicating a singular form, the articles "a", "an", as used in this application and the appended claims, should generally be construed to mean "one or more". In addition, the use of the terms "embodiment" or "an embodiment" or "implementation" or "a implementation" is not always intended to refer to the same embodiment or implementation, unless so stated. In addition, as used herein, the terms "first", "second", "third", "fourth", etc. are intended as labels to distinguish between different elements and do not necessarily have the meaning of an order based on their numerical indication.

[0092] For ease of explanation, the methods herein are depicted and described as a series of acts or operations. However, acts in accordance with the present disclosure can occur in various orders and / or concurrently and have other acts not presented and described herein. Additionally, not all acts illustrated are required to implement the methods in accordance with the disclosed subject matter. Moreover, those skilled in the art will understand and appreciate that the methods can alternatively be represented as a series of intermediate states via a state diagram or events. Additionally, it should be appreciated that the methods disclosed in this specification can be stored on a manufacture to facilitate transporting or transmitting such methods to a computing device. As used herein, the term manufacture is intended to include a computer program accessible from any computer readable device or storage medium.

[0093] It is to be understood that the above description is intended to be illustrative and not restrictive. Other embodiments will be apparent to those skilled in the art upon reading and understanding the above description. The scope of the present disclosure is, therefore, to be determined with reference to the appended claims along with the full scope of equivalents to which such claims are entitled.

Claims

1. A method for training a machine learning model, the method comprising: generating, by a training set generator, training data for the machine learning model, wherein generating the training data comprises: generating, by the training set generator, a first training input, the first training input comprising one or more currently presented live streaming items that are currently being consumed by users of a first plurality of user groups on a content sharing platform; generating, by the training set generator, a second training input, the second training input comprising first context information associated with user accesses made by the users of the first plurality of user groups who are consuming the one or more currently presented live streaming items on the content sharing platform; and generating, by the training set generator, a first target output for the first training input and the second training input, wherein the first target output identifies a live streaming item and an indication of whether the user is to consume the live streaming item; and providing, by the training set generator, the training data to train the machine learning model on (i) a training input set comprising the first training input and the second training input and (ii) a target output set comprising the first target output.

2. The method according to claim 1, wherein, Generating the training data further comprises: generating, by the training set generator, a third training input, the third training input comprising one or more previously presented live streaming items that are being consumed by users of a second plurality of user groups on the content sharing platform; and generating, by the training set generator, a fourth training input, the fourth training input comprising second context information associated with user accesses made by the users of the second plurality of user groups who are consuming the one or more previously presented live streaming items on the content sharing platform; and wherein the training input set comprises the first training input, the second training input, the third training input, and the fourth training input.

3. The method according to claim 2, wherein, Generating the training data further comprises: generating, by the training set generator, a fifth training input, the fifth training input comprising first user information associated with the users of the second plurality of user groups who are consuming the one or more previously presented live streaming items on the content sharing platform; and generating, by the training set generator, a sixth training input, the sixth training input comprising second user information associated with the users of the first plurality of user groups who are currently consuming the one or more currently presented live streaming items on the content sharing platform; and wherein the training input set comprises the first training input, the second training input, the fifth training input, and the sixth training input.

4. The method according to any one of claims 1 to 3, wherein Each training input in the training input set is associated with a corresponding target output in the target output set.

5. The method according to any one of claims 2 to 3, wherein The third training input identifies a first user group among the second plurality of user groups that consumes a first previously presented live streaming media item among the one or more previously presented live streaming media items, wherein the first previously presented live streaming media item is live streamed to the second user group.

6. The method according to any one of claims 2 to 3, wherein The third training input identifies a second user group among the second plurality of user groups that consumes a second previously presented live streaming media item among the one or more previously presented live streaming media items, wherein the second previously presented live streaming media item is presented to the second user group after being live streamed.

7. The method according to any one of claims 2 to 3, wherein The third training input identifies a third user group among the second plurality of user groups that consumes a plurality of different previously presented live streaming media items among the one or more previously presented live streaming media items, wherein the different previously presented live streaming media items are live streamed to the third user group and subsequently classified into a similar category of live streaming media items.

8. The method according to any one of claims 1 to 3, further comprising: Receiving, by a computer system, an indication of a user access to the content sharing platform by the user; Generating, by the machine learning model, a test output that identifies a test live streaming media item and a confidence level indicating whether the user wants to consume the test live streaming media item; Providing, by the computer system, a recommendation of the test live streaming media item to the user; Receiving, by the computer system, an indication of the user's consumption of the test live streaming media item in view of the recommendation; And Adjusting, by the computer system in response to the indication of the user's consumption of the test live streaming media item, the machine learning model based on the indication of the consumption.

9. The method according to any one of claims 1 to 3, wherein, The machine learning model is configured to process a new user access to the content sharing platform and generate one or more outputs that indicate (i) a current live streaming media item and (ii) a confidence level indicating whether the new user wants to consume the current live streaming media item.

10. A method, comprising: Receiving, by a content recommendation engine, an indication of a user access to a content sharing platform by a user; In response to receiving the indication of the user access, Providing, by the content recommendation engine, a first input to a trained machine learning model that includes a plurality of live streaming media items that are being live streamed simultaneously with the user access and are currently being consumed by users of a first plurality of user groups on the content sharing platform; And Obtaining, by the content recommendation engine, from the trained machine learning model one or more outputs that identify (i) the plurality of live streaming media items and (ii) a confidence level indicating whether the user wants to consume a corresponding live streaming media item among the plurality of live streaming media items.

11. The method according to claim 10, wherein The content recommendation engine provides a second input further including context information associated with the user access to the content sharing platform and a third input including user information associated with the user access to the trained machine learning model.

12. The method according to any one of claims 10 to 11, further comprising: The content recommendation engine provides a recommendation of one or more of the plurality of live streaming items to the user of the content sharing platform, taking into account the confidence level that the user will consume the corresponding live streaming item among the plurality of live streaming items.

13. The method according to claim 12, wherein Providing a recommendation of one or more of the plurality of live streaming items to the user of the content sharing platform includes: The content recommendation engine determines whether the confidence level associated with each of the plurality of live streaming items exceeds a threshold level; and In response to determining that the confidence level associated with one or more of the plurality of live streaming items exceeds the threshold level, the content recommendation engine provides a recommendation of each of the one or more of the plurality of live streaming items to the user.

14. The method according to any one of claims 10 to 11, wherein, The trained machine learning model has been trained using a first training input, the first training input including one or more previously presented live streaming items consumed by users of a second plurality of user groups on the content sharing platform.

15. The method according to claim 14, wherein, The first training input identifies a first user group of the second plurality of user groups, the first user group consuming a first previously presented live streaming item that was live streamed to the users of the first user group, and wherein the first training input identifies a second user group of the second plurality of user groups, the second user group consuming a second previously presented live streaming item that was presented to the users of the second user group after being live streamed.

16. The method according to claim 14, wherein, The first training input identifies a third user group of the second plurality of user groups that consumes different previously presented live streaming items that were live streamed to the users of the third user group and subsequently classified into similar categories of live streaming items.

17. A system, comprising: A memory; And A processing device coupled to the memory, configured to: Receive an indication of a user access to a content sharing platform; In response to receiving the indication of the user access, Provide a first input including a plurality of live streaming items that are being live streamed simultaneously with the user access and are currently being consumed by users of a first plurality of user groups on the content sharing platform to a trained machine learning model; And Obtain one or more outputs from the trained machine learning model, the one or more outputs identifying (i) the plurality of live streaming items and (ii) a confidence level indicating whether the user will consume the corresponding live streaming item among the plurality of live streaming items.

18. The system according to claim 17, wherein the processing device is further configured to: Providing recommendations to a user of the content sharing platform for one or more of the plurality of live streaming media items, taking into account a confidence level that the user will consume a respective live streaming media item of the plurality of live streaming media items.

19. A system comprising: A memory; And A processing device coupled to the memory, configured to: Generate training data for a machine learning model, wherein generating the training data includes: Generating a first training input that includes one or more currently presented live streaming media items being consumed by users of a first plurality of user groups on a content sharing platform; Generating a second training input that includes first context information associated with user accesses made by the users of the first plurality of user groups consuming the one or more currently presented live streaming media items on the content sharing platform; and Generating a first target output for the first training input and the second training input, wherein the first target output identifies a live streaming media item and an indication of whether the user will consume the live streaming media item; and Providing the training data to train the machine learning model on (i) a training input set that includes the first training input and the second training input, and (ii) a target output set that includes the first target output.

20. The system according to claim 19, wherein, To generate the training data, the processing device is further configured to: Generate a third training input that includes one or more previously presented live streaming media items consumed by users of a second plurality of user groups on the content sharing platform; and Generate a fourth training input that includes second context information associated with user accesses made by the users of the second plurality of user groups consuming the one or more previously presented live streaming media items on the content sharing platform; And Wherein the training input set includes the first training input, the second training input, the third training input, and the fourth training input.

Citation Information

Patent Citations

  • Multimedia resource pushing system and multimedia resource pushing method

    CN105791910A

  • Studio video streaming synthesis control method, device and terminal equipment

    CN106658205A