The present teaching relates to methods, systems, and programming for content service. Particularly, the present teaching is directed to methods, systems, and programming for providing organized content to a user.
The development of the Internet leads to information explosion, where the information and data online are unorganized and have a huge volume. According, it is difficult to identify useful or interesting information for a particular user from the unorganized and abundant information.
A search engine may be a program that searches documents for specified queries and returns a list of documents where the queries are found. A search engine cannot provide content to a user without a query submitted by a user. A search result provided by a search engine depends only on the submitted query rather than other activities of the user. In addition, content items in a search result provided by a search engine are listed as independent items without organization.
A recommendation engine tries to provide popular content to users. Without considering activities of users, a recommendation engine recommends same content items to different users, and cannot assure any interest of the users in the recommended items.
Therefore, there is a need to develop techniques to provide content to a user to overcome the above drawbacks.
The present teaching relates to methods, systems, and programming for content service. Particularly, the present teaching is directed to methods, systems, and programming for providing organized content to a user.
In one example, a method, implemented on a machine having at least one processor, storage, and a communication platform capable of connecting to a network for providing content to a user is disclosed. Information related to a user is obtained. One or more channels are determined for the user from a plurality of channels based on the information, wherein each of the plurality of channels includes one or more online content items. A personal interest space is established associated with the user based on the information related to the user and the one or more channels. Content is provided in the one or more channels to the user based on information related to the personal interest space.
In a different example, a system having at least one processor, storage, and a communication platform connected to a network for providing content to a user is disclosed, which includes a user information processor configured for obtaining information related to a user, an initial channel allocator configured for determining one or more channels for the user from a plurality of channels based on the information, wherein each of the plurality of channels includes one or more online content items, an initial interest space generator configured for establishing a personal interest space associated with the user based on the information related to the user and the one or more channels, and a channel based content recommender configured for providing content in the one or more channels to the user based on information related to the personal interest space.
Other concepts relate to software for implementing the present teaching on providing content to a user. A software product, in accord with this concept, includes at least one machine-readable non-transitory medium and information carried by the medium. The information carried by the medium may be executable program code data, parameters in association with the executable program code, and/or information related to a user, a request, content, or information related to a social group, etc.
In one example, a machine-readable, non-transitory and tangible medium having data recorded thereon for providing content to a user is disclosed. The medium, when read by the machine, causes the machine to perform a series of steps, including, obtaining information related to a user; determining one or more channels for the user from a plurality of channels based on the information related to the user, wherein each of the plurality of channels includes one or more online content items; establishing a personal interest space associated with the user based on the information related to the user and the one or more channels; and providing content in the one or more channels to the user based on information related to the personal interest space.
Additional novel features will be set forth in part in the description which follows, and in part will become apparent to those skilled in the art upon examination of the following and the accompanying drawings or may be learned by production or operation of the examples. The novel features of the present teachings may be realized and attained by practice or use of various aspects of the methodologies, instrumentalities and combinations set forth in the detailed examples discussed below.
The methods, systems, and/or programming described herein are further described in terms of exemplary embodiments. These exemplary embodiments are described in detail with reference to the drawings. These embodiments are non-limiting exemplary embodiments, in which like reference numerals represent similar structures throughout the several views of the drawings, and wherein:
In the following detailed description, numerous specific details are set forth by way of examples in order to provide a thorough understanding of the relevant teachings. However, it should be apparent to those skilled in the art that the present teachings may be practiced without such details. In other instances, well known methods, procedures, systems, components, and/or circuitry have been described at a relatively high-level, without detail, in order to avoid unnecessarily obscuring aspects of the present teachings.
The present disclosure describes method, system, and programming aspects of dynamically providing organized content to a user, realized as a specialized and networked system by utilizing one or more computing devices (e.g., mobile phone, personal computer, etc.) and network communications (wired or wireless). The method and system as disclosed herein aim at providing interesting content to a user in an effective and efficient manner.
One of the goals of the system in the present teaching is to redefine the way users consume web contents. The present teaching discloses a technology-driven interest-oriented content portal, “interest portal” in short, which facilitates users to efficiently define and explore their interests. The interest portal may be supported by an “interest engine” which seamlessly integrates the cutting-edge technologies of search and recommendation to enable a unique and personalized content consumption experience per user. The interest engine may evolve users' interest by continuously learning from their interactions with the contents as well as the social circles, and algorithmically deliver the most personally relevant contents with respect to users' interests. An interest engine may use an enriched user interest profile of a user as a query to identify organized content for the user.
The interest engine in the present teaching can organize online information into different channels. Each channel includes content items that are related to a common topic or category or have a common feature, e.g. popular items, hot items, etc. The interest engine may periodically crawl or search online for news or other content from the Internet, and classify the crawled or searched content items into different channels, according to their respective topics. This operation may not need any involvement of the users. A channel may also include one or more sub-channels, each of which includes content items associated with a sub-topic of the topic associated with the channel. For example, a channel associated with topic “sports” may include sub-channels associated with topics like “tennis,” “basketball,” “swimming,” “running,” etc. A channel may be correlated to another channel, based on a correlation between their respective topics. For example, channel “travel” may be correlated with channel “flight ticket”; channel “children” may be correlated with channel “minivan”. Similarly, a sub-channel may be correlated with another sub-channel.
A user may subscribe to a channel (or a sub-channel) provided by the interest engine. In other words, the interest engine may assign a channel to a user after the user submits a subscription request for the channel. In addition, the interest engine may assign one or more channels to a user based on e.g. a query submitted by the user for channels, a channel previously assigned to the user, a channel subscribed to by the user, content items browsed or viewed by the user, channels associated with other users, or channels selected randomly for testing the user's interest.
The interest engine may store all channels assigned to a user into a personal interest space associated with the user. In addition to information about the channels, the personal interest space may also include information about: correlations between the channels, other users connected to the user, one or more channels shared by the user with other users, channel weights associated with the channels, etc. A channel weight associated with a channel in a personal interest space may indicate how important the channel is to the user or how interesting the channel is to the user. Different users can have different personal interest spaces.
Accordingly, the interest engine may also store different content channels associated with some metadata. For example, metadata associated with a channel may include information about: dynamic content provided by the interest engine through the channel, sub-channels in the channel, subscribed users of the channel, correlations between the channel and other channels, an assigned advertiser for the channel, etc. The interest engine may assign an advertiser to a channel based on a bidding process performed with respect to a plurality of advertisers. For example, based on a bidding process performed with respect to Apple Inc. and Samsung Group, the interest engine may assign one of them to channel “smartphone,” such that the assigned advertiser has authority to put its advertisements into the channel.
The interest engine may provide dynamic content to a subscribed user through the channel. Dynamic content refers to content within a channel, when the interest engine can keep updating content in the channel based on newly obtained information from the Internet and/or activities of a subscribed user. After the interest engine assigns a channel to a personal interest space of a user, the channel may become a personal channel for the user, such that content provided through the channel to the user may be different from content provided to other users subscribed to the channel. For example, two users subscribed to channel “electronics” may gradually receive different content items provided by the interest engine, after one user clicks most articles in the channel about smartphone and the other user clicks most articles in the channel about digital camera.
In accordance with one embodiment, a plurality of specialized interest engines may be generated based on the interest engine (referred to as general interest engine accordingly) disclosed above. A specialized interest engine may have a similar structure to the general interest engine, except that the specialized interest engine provides content all associated with a specific entity, e.g. a particular website, a company, an organization, etc. An entity may build up a specialized interest engine quickly based on a general interest engine, e.g. based on a software development kit (SDK) in connection with the general interest engine, without a need to construct from scratch. In this scenario, different entities are associated with different specialized interest engines that are all connected to the general interest engine. This can form an ecosystem of interest engines, where the general interest engine may coordinate different specialized interest engines to maximize overall traffic of the ecosystem without overwriting the benefit brought by a specialized interest engine to the associated entity. For example, when a user views many content items in channels from a specialized interest engine and intends to leave, the specialized interest engine may provide the user content items from another specialized interest engine via the general interest engine, to keep the user.
The terms “content channel” and “channel” may be used interchangeably herein. The terms “personal interest space” and “interest space” may be used interchangeably herein.
Additional novel features will be set forth in part in the description which follows, and in part will become apparent to those skilled in the art upon examination of the following and the accompanying drawings or may be learned by production or operation of the examples. The novel features of the present teachings may be realized and attained by practice or use of various aspects of the methodologies, instrumentalities and combinations set forth in the detailed examples discussed below.
Users 110 may be of different types such as users connected to the network 120 via desktop computers 110-4, laptop computers 110-3, a built-in device in a motor vehicle 110-2, or a mobile device 110-1. In one embodiment, users 110 may be connected to the network 120 and able to access and interact with online content provided by the interest engine 140 through wired or wireless technologies and related operating systems implemented within user-wearable devices (e.g., glasses, wrist watch, etc.). A user, e.g., the user 110-1, may send a request for online content to the interest engine 140, via the network 120 and receive content organized in channels through the network 120.
The interest engine 140 may serve as a backend for an interest portal associated with an entity, which may be an individual, a firm, or an organization, such as a television station, a newspaper issuer, a web page host, an online service provider, an app manager, or a game server. For example, interest engine 140 can be provided by an organization such as USPTO.gov, a content provider such as CNN.com and google.com, or a content-feed source such as tweeter or blogs. In one embodiment, interest engine 140 may be provided by entities that develop, support and/or provide online content via mobile applications (e.g., installed on smartphones, tablet devices, etc.).
The interest engine 140 aims at providing interesting content to a user without requiring many inputs from the user. Content provided by the interest engine 140 may include, for example, graphics, data, news, articles, software-based products, and so forth. The interest engine 140 may or may not provide software or app used to access the content.
Referring to the above example, the content sent to user 110-1 may be generated by the interest engine 140 based on the content sources 160. A content source may correspond to an entity where the content was originally generated and/or stored. For example, a novel may be originally printed in a magazine, but then posted online at a web site controlled by a content provider managing the interest engine 140. The content sources 160 in the exemplary networked environment 100 include multiple content sources 160-1, 160-2 . . . 160-3.
A user may also submit a search query to the interest engine 140 via an interest portal. The interest engine 140 may forward the query to the search/recommendation engine 150 for performing a search based on the query. In one embodiment, the query may be used to search for a channel stored in the interest engine 140. When there is no channel matching the query, the interest engine 140 may provide an option for the user to create a new channel based on the query and subscribe to the new channel. When the user is entering the query via the interest portal, the interest engine 140 may provide query suggestions each of which is a name of a channel stored at the interest engine 140. In another embodiment, the query may be used to search for content items within one or more channels stored in the interest engine 140.
The interest engine 140 may also cooperate with the search/recommendation engine 150 to recommend a channel or a content item within a channel to a user. The recommendation may be based on the user's assigned channels, the user's activities, or other information related to the user.
It can be understood that the search/recommendation engine 150 may also perform regular search and recommendation operations based on unorganized content online. It can also be understood that in some embodiment, the search engine and the recommendation engine are separate from each other.
When content is sent to the user 110-1, one or more advertising opportunities may be available for one or more advertisements to be presented with the content to the user 110-1, through a same channel, on a same web page, via a same application, or in a same user session. For an available advertising opportunity, the interest engine 140 may send an ad request to advertisers 170 to ask for advertisements. In one embodiment, the ad request may include a bid request, such that the interest engine 140 can sell the advertising opportunity by soliciting bids from the advertisers 170.
An advertiser, e.g. 170-1, may correspond to an entity, whether an individual, a firm, or an organization, doing or planning to do (or otherwise involved in) advertising business. As such, an advertiser 170-1 may be an entity that provides product(s) and/or service(s), and itself handles the advertising process for its own product(s) and/or service(s) at a platform (e.g., websites, mobile applications, etc.). For example, advertisers 170-1 . . . 170-2 may include companies like General Motors, Best Buy, or Disney. In some other cases, however, an advertiser 170-1 may be an entity that only handles the advertising process for product(s) and/or service(s) provided by another entity. In one embodiment, the advertisers 170 have stored their advertisements at an ad database connected to the interest engine 140.
To have an easy management of the online content, an interest engine may organize all content in the unorganized content space 310 to generate a channel based content space 320, where content items are categorized into different channels each of which is represented by a bundle of dots in
As discussed above, the channels in the channel based content space 320 are dynamically changing. For example, a newly generated article may be added to a channel if the article is related to the topic associated with the channel. In another example, a document originally assigned to a first channel may be reassigned to a second channel when the interest engine determines that the article is more related to the second channel than the first channel. In yet another example, a document or article may be assigned to multiple channels when the document or article is related to all these channels. In a different example, a document or file may be divided into multiple content items each of which can be assigned to a channel. Accordingly, each channel includes one or more dynamic content items.
As discussed above, the interest engine may assign a channel to a user, based on a subscription request or the user's activities on the interest portal. For each user, the interest engine can establish a personal interest space associated with the user. Each personal interest space may include one or more channels from the channel based content space 320. As shown in
A channel may be correlated with another channel based on e.g. their respective topics, their respective subscribed users, their respective assigned advertisers, etc. A correlation between two channels may be represented by a distance between the two corresponding bundles shown in
The interest engine can store the channels and personal interest spaces with associated metadata.
The dynamic content is being updated and added based on dynamic information on the Internet. As the information on the Internet is updating every second, the interest engine may update the content in each channel accordingly, e.g. by crawling new content from the Internet.
In one embodiment, the interest engine may support an interest portal that serves as a news reader for a user. In this embodiment, the interest engine crawls, analyzes and indexes hundreds of millions of news articles from tens of thousands of high-quality news, blogs, forums, as well as major social media sites. The interest engine may develop user interest profiles by learning from all kinds of user behavior data and deliver personalized news articles accordingly to the news reader's PC web and/or mobile users. This news reader allows users to self-define any interests at their will, or subscribe interests out of numerous algorithmically generated and recommended polymorphic interests in a rich format of social tags, categories, topics, keywords, or news sources at any granularity from any perspective. It thus well satisfies users' entire interest spectrum especially long-tail interest and highly informative deep contents instead of popular interest and entertainment driven shallow contents only. This news reader makes news reading a rewarding experience rather than time-killing. Users can proactively pull contents as what search engines do, passively receive contents as recommendation engines do, or anywhere between. Throughout the entire experience, users are empowered with various ways to refine their interests such as like/dislike, interactive question answering, social tagging, topic browsing/subscription, clicks/skips, social sharing/commenting, etc. (more innovative interactions are under the way), from which the new reader learns users' precise preferences. The more a user interacts with the new reader, the better news reader understands the user, and thus the more personally relevant contents will be delivered per user's interest. By providing the most wanted contents only, the news reader provides a better way to conquer the information-overloading problem in this information explosion era. It can be understood that similar implementations can be extended to other domains and even the entire web.
A correlation coefficient, e.g. Cor12, may a value that indicates a degree of correlation between channels C1 and C2. In one embodiment, the correlation coefficient may be a numerical number between 0 and 1, where a larger correlation coefficient means a higher degree of correlation.
A channel may be subscribed to by many users. The interest engine can provide dynamic content through this channel to the subscribed users. In addition, the interest engine can also provide the dynamic content to other assigned users, each of whom may be assigned to the channel based on: the user's online activities, social relationship with another user who is subscribed to the channel, another channel assigned to the user and correlated to the channel, etc.
A channel may be associated with an assigned advertiser who has authority to put advertisements through this channel. Different advertisers can bid for being assigned to a channel for a time period. The interest engine can choose one or more from the advertisers based on their respective bids. In one example, Apple Inc. and Samsung Group may bid to be an assigned advertiser for the channel “smartphone” during a time period, e.g. a year, a month, or a week. The interest engine can determine one of them to be the assigned advertiser for the channel, such that users assigned to the channel can receive through the channel not only content within the channel but also advertisements from the assigned advertiser. In another example, a channel “Apple products” or “Apple Inc.” can be open for bidding, such that a company other than Apple may be an assigned advertiser for the channel.
As shown in
As discussed above, a user may be associated with a personal interest space which includes one or more associated channels. Each of the channels is associated with a channel weight that may indicate how important the channel is to the user. For example, a channel weight may be a percentage number and the sum of all channel weights associated with a user is equal to one. In this case, each weight represents how interesting the channel is to the user, relative to other associated channels. The interest engine may provide or recommend content to the user according to the channel weights, unless the user specifies a channel to receive content. For example, the channel weight of channel C1 for user U1 is 20%, which means without user's indication of a specific channel, the interest engine may provide dynamic content to the user with 20% of the content comes through channel C1.
A user may be connected to other users, each of whom may be a friend, a relative, a colleague, or a classmate of the user. Two user IDs may be determined to be connected based on the above relationship, or other information like: the two user IDs are registered with a same email address; the two user IDs are connected in a social network; the two user IDs had online communications before, etc.
A user may share one or more of the user's associated channels with other users, such that all other users can view the shared channels of the user. This may be helpful to other users, as a shared channel may have been personalized for the user based on the user's activities. The other users who are not aware of the channel before and are interested in similar topics may feel easy to learn from this user's personalized shared channel. It can be understood that the user may share a channel to merely users connected to the user.
As shown in
The user interface 2000 also includes multiple channel icons 2020, each of which indicates a channel associated with the user. For example, channel “health” is activated in
The channel “recommended” may be assigned to each user; but includes different content items for different users. The content items in the channel “recommended” may be related to the other channels assigned to the user and/or based on hot topics among all users. The channel “Work” and “Life” may be assigned to each user; but include different content items for different users. For example, a user may self-define what sub-channels should be put into the channel “Work,” which may include content items related to the user's work. The user may also self-define what sub-channels should be put into the channel “Life,” which may include content items related to the user's personal life.
Based on the user's interactions with the user interface 2000, the interest engine can determine channel weights for different channels. For example, if the user spends most time on content items in the channel “health,” the interest engine may display more content items in the channel “health” and/or recommend more content items related to health in the channel “recommended.” The interest engine may also recommend content items based on the time, e.g. recommending more work-related items to the user during work time or work days, and recommending more life-related items to the user during off-work time, weekends or holidays. The user can click the add button 2030 to select more channels to add to his/her personal interest space.
The user interface 2000 may also include control buttons like: “main page” 2052; “discovery” 2054; and “Me” 2056. As shown in
It can be understood that in other embodiments, other user interfaces or other layouts of the user interface may also achieve similar effects as the user interface 2000 shown in
In one embodiment, the interest engine may import a user's connection with other users from a social network, e.g. Facebook. Based on the connection, the interest engine may better determine the user's interest, e.g. by inferring the user's interest from channels assigned to his/her connected users.
In another embodiment, the interest engine may import a user's online behavior from another website, e.g. amazon.com. Based on the online behavior, the interest engine may better determine the user's interest, e.g. after a user buys a book about Steve Jobs from amazon.com, the interest engine may recommend channel “Steve Jobs” or channel “technology celebrity” to the user, even if the user has not expressed any interest about Steve Jobs through the app or interest portal.
Then if user A keeps viewing more and more football related items, the interest engine may increase the size of the channel 616 now related more to tennis than sports in general. The interest engine may also split the football channel associated with user A into two channels “American Football” and “Soccer” at 618, if the user turns out to be interested in both of the channels.
If user B also views articles related to NBA players, the channel “NBA players” may be assigned to user B and correlated to the channel “basketball” for the user B, at 626. In one embodiment, at 628, the interest engine may merge the channel “NBA players” and the channel “basketball” for user B such that user B can easily access interesting content items from the two related topics.
The user information/request processor 702 in this example receives user information or a request from the user 110. The user information may include the user's demographic information, the user's personal information provided by the user at registration or imported from another website, the user's input during initial setting when the user logs in the app or portal for the first time, etc. For example, the user information may indicate that the user is male, 35, working as a software engineer, likes software and Internet during work time, and likes sports and games during weekend. The request may be a subscription request from the user to subscribe to a channel, an un-subscription request from the user to unsubscribe from a channel, or a content update request to update content in a channel of the user's personal interest space.
Based on the user information or the request, the initial channel allocator 704 may allocate channels for the user. The channel allocation may be based on the user's demographic information and initial setting when the user logs in the app or portal for the first time. The channel allocation may also be based on a search query submitted by the user to the search/recommendation engine 150 or to the interest engine 140 directly. The search query may be for searching content items or channels. In one example, the initial channel al locator 704 may allocate an existing channel in the content channels 730 matching the user's query to the user. In another example, the initial channel allocator 704 may generate a new channel that is not in the content channels 730 and matches the user's query, and allocate the new channel to the user.
The initial interest space generator 706 in this example can generate a personal interest space for the user based on the channels allocated to the user by the initial channel allocator 704. The personal interest space may include information about the channels allocated to the user, and user information about the user. The interest space is personal because it represents interest of the user in terms of different channels. The initial interest space generator 706 may store the personal interest space as one of the channel based interest spaces 740.
Based on the personal interest space, the search/recommendation engine 150 may provide content items to the user 110 through channels in the personal interest space. In one embodiment, the search/recommendation engine 150 may be part of the interest engine 140. In another embodiment, the interest engine 140 may also perform similar functions as the search/recommendation engine 150.
The channel content updater 708 in this example may update content of a channel, based on a request or a timer. As content in the Internet keeps changing and updating, the channel content updater 708 may obtain most updated content items from the Internet and assign them into different channels according to their related topics. The channel content updater 708 may perform the updating periodically or upon a request from the user 110. In one embodiment, the channel content updater 708 may cooperate with the search/recommendation engine 150 to search for new information on the Internet for updating corresponding channels.
The user dynamic information analyzer 710 in this example may obtain the user's dynamic information. The dynamic information may include the user's interaction with the interest engine 140, the app or the interest portal supported by the interest engine 140. The dynamic information may also include the user's interaction with the search/recommendation engine 150. The dynamic information may also include the user's social connection with other users, from a social network. The dynamic information may also include the user's online behavior from other websites or other apps. The user dynamic information analyzer 710 can analyze the dynamic information to generate user interest information associated with the user, and send the user interest information to the interest space updater 712.
The interest space updater 712 in this example receives the user interest information and determines whether to update the personal interest space of the user. For example, if the user interest information indicates a new interest of the user that has not been included in any channel assigned to the user, the interest space updater 712 may determine to update the personal interest space of the user by adding a new channel to catch the new interest of the user. The interest space updater 712 may retrieve and update the personal interest space of the user, and store it back.
At 802, user information from a user is received. Then, the process moves on to 804. In one embodiment, a channel query for content channels is received from the user at 810; one or more channels are identified based on the channel query at 812; and the process goes on to 804. At 804, channels are allocated to the user based on the user information and/or the channel query.
A personal interest space of the user is then generated at 806 based on the allocated channels. At 808, the interest engine can store the personal interest space associated with the user. The process then moves on to 830 to update content of a channel based on a request or a timer.
In one embodiment, the process also includes 820 to 824. The user's dynamic information is obtained at 820. Then at 822, the interest engine can determine whether to update the personal interest space of the user based on the dynamic information. If it is determined not to update the personal interest space at 823, the process goes back to 820. Otherwise, if it is determined to update the personal interest space at 823, the process go on to 824, where the personal interest space is updated based on the dynamic information. The process may then go to 830 to update content of a channel based on a request or a timer.
The query based channel identifier 902 in this example may receive a channel query for channels, either from the search/recommendation engine 150 or directly from the user 110. The query based channel identifier 902 can obtain content channel information from the stored channels 730, and identify one or more channels whose channel information matches the channel query. The query based channel identifier 902 may send the identified channel(s) to the search/recommendation engine 150 or to the user 110 directly, in response to the query. In one embodiment, the query based channel identifier 902 may also send the identified channel(s) to the initial interest space generator 706 for generating a personal interest space for the user. In another embodiment, the query based channel identifier 902 may also send the identified channel and/or a new channel generated by the channel generator 904 to the channel expansion engine 912 for channel expansion.
If no existing channel is identified from the channels 730 based on the query, the query based channel identifier 902 may send the query to the channel generator 904 for generating a new channel. The channel generator 904 in this example receives the query from the query based channel identifier 902 and generates a new channel based on the query. The channel generator 904 may send the new channel to the query based channel identifier 902, to the search/recommendation engine 150 or to the user 110 directly, in response to the query. In one embodiment, the channel generator 904 may also send the new channel to the initial interest space generator 706 for generating a personal interest space for the user.
The subscription based channel assigner 906 in this example may receive a subscription request from a user for subscribing to a channel. The subscription based channel assigner 906 may retrieve content channel information from the stored channels 730, and assign a channel to the user based on the request. The subscription based channel assigner 906 may send information about the subscribed channel to the channel expansion engine 912 for channel expansion. In one embodiment, the subscription based channel assigner 906 may receive an un-subscription request from the user, and unsubscribe the user from the corresponding channel.
The user information based channel assigner 908 in this example may receive user information from the user information/request processor 702. The user information based channel assigner 908 may retrieve content channel information from the stored channels 730, and assign one or more channels to the user based on the user information. For example, if the user information indicates that the user is a mom and likes children related articles, the user information based channel assigner 908 may assign channels like “children health”, “children songs”, etc. to the user. The user information based channel assigner 908 may send information about the user information based channel assignment to the channel expansion engine 912 for channel expansion.
The recommendation based channel assigner 910 in this example may receive recommended content for a user from the search/recommendation engine 150. The recommendation based channel assigner 910 may retrieve content channel information from the stored channels 730, and assign a channel to the user based on the recommended content, such that the recommended content may be provided to the user through the channel. The recommendation based channel assigner 910 may send information about the recommended channel to the channel expansion engine 912 for channel expansion.
The channel expansion engine 912 in this example may receive channels assigned to the user from the query based channel identifier 902, the subscription based channel assigner 906, the user information based channel assigner 908, and the recommendation based channel assigner 910. The channel expansion engine 912 may expand more channels for the user. The channel expansion engine 912 may select one of the expansion criteria 913 and expand channels based on it. An expansion criterion may specify a condition that when met can cause an expansion of channels. For example, when a channel assigned to a user has one or more channels correlated to it, the channel expansion engine 912 may expand to assign the one or more channels to the user if the correlations between the channel and the one or more channels are greater than a threshold. In another example, when a user is assigned to a first channel, the channel expansion engine 912 may expand to assign a second channel to the user if the number of users who are assigned to both the first and the second channels is greater than a threshold. After the channel expansion, the channel expansion engine 912 may send the allocated channels (including the assigned channels based on query, subscription, user information, recommendation, and the expanded channels) to the initial interest space generator 706 for generating a personal interest space for the user.
In one embodiment, a subscription request is obtained at 1020 from a user. One or more channels are assigned to the user at 1022 based on the subscription request. The process then moves on to 1044.
In another embodiment, user information of a user is obtained at 1030. Then at 1032, one or more channels are assigned to the user based on the user information. Then the process moves on to 1044.
In a different embodiment, recommended content for a user is obtained at 1040. One or more channels are assigned to the user based on the recommended content at 1042. Then the process goes on to 1044.
At 1044, one or more channels are expanded for the user, based on e.g. the identified channel, the generated new channel, the subscribed channel, the user information based assigned channel, and/or the recommended channel.
The user affinity information receiver 1102 in this example can receive user affinity information from a social media or social network. The user affinity information may include information about how different users are connected or associated in the social media or network. The user affinity information may be used to infer a user's interest based on interests of users associated with the user. The user affinity information receiver 1102 may send the user affinity information to the user dynamic information analyzer 1108 for analysis.
The user interaction monitor 1104 in this example can monitor user interactions with the interest engine, with the interest portal, or with the app supported by the interest engine. The user interactions may include information about users' behavior on the user interface 2000 as described above. The user interactions may be used to infer a trend of a user's interest. The user interaction monitor 1104 may send the user interaction information to the user dynamic information analyzer 1108 for analysis.
The user behavior receiver 1106 in this example can receive user behavior from other online sources, e.g. other websites, other portals, or other apps. The user behavior received by the user behavior receiver 1106 may include a user's online shopping behavior, online chatting behavior, online posting behavior, etc. These online user behaviors may also be used to infer the user's interest or better understand the user's short term and long term intent. The user behavior receiver 1106 may send the user behavior information to the user dynamic information analyzer 1108 for analysis.
The user dynamic information analyzer 1108 in this example may receive all of the above described user dynamic information from the user affinity information receiver 1102, the user interaction monitor 1104 and the user behavior receiver 1106. The user dynamic information analyzer 1108 can analyze the user dynamic information associated with each user to determine user interest information for the user. The user interest information may indicate the user's short term or long term interest. This determination may be based on information from the user dynamic information database 1120. In one embodiment, the user dynamic information database 1120 may store a mapping table to map different user dynamic information to user interest information. For example, clicking on an article may be mapped to a weak interest on the topic of the article; viewing an article for a long time may be mapped to a strong interest on the topic of the article; sharing an article to a friend may be mapped to a stronger interest on the topic of the article; and requesting for more articles related to the article may be mapped to an even stronger interest on the topic of the article. Based on the user dynamic information and a mapping table, the user dynamic information analyzer 1108 may determine the user interest information for a user and send the user interest information to the interest space updater 712 for determining whether to update a personal interest space of the user.
At 1208, interest data related to user dynamic information are retrieved, e.g. from a database. Dynamic information, including the user's interactions, affinities with other users, and behaviors elsewhere online, may be analyzed at 1210 to determine the user's interest. The interest information of the user is then provided at 1212.
The user identity determiner 1302 in this example can receive user interest information from the user dynamic information analyzer 710, and determine a user identity associated with the user interest information. The user identity determiner 1302 may then send the user identity to the interest space update determiner 1304 for determining whether to update a personal interest space associated with the user identity. The user identity determiner 1302 may also send the user identity to the interest space retriever 1306 for retrieving the personal interest space associated with the user. The interest space retriever 1306 in this example may retrieve a personal interest space associated with a user from the channel based interest spaces 740, and send the retrieved personal interest space to the interest space update determiner 1304 and to the interest space update engine 1308.
The interest space update determiner 1304 in this example may receive the user interest information from the user dynamic information analyzer 710, the user identity from the user identity determiner 1302, and the retrieved personal interest space from the interest space retriever 1306. Based on the received information, the interest space update determiner 1304 can determine whether to the personal interest space associated with the user needs to be updated. This determination may be based on one of the update criteria 1307. An update criterion may specify when a personal interest space should be updated. In one example, the interest space update determiner 1304 may determine to update a personal interest space of a user when new interest not expressed in the personal interest space is discovered from the user interest information of the user. In this case, one or more new channels may need to be added to the personal interest space. In another example, the interest space update determiner 1304 may determine to update a personal interest space of a user when the user's interest changes based on the user interest information of the user, e.g. after the user indicates a dislike of some articles. In this case, one or more new channels may need to be deleted from the personal interest space. In yet another example, the interest space update determiner 1304 may take into account timing information from the timer 1305 to determine whether to update a personal interest space, e.g. to update a personal interest space if the personal interest space has not been updated for a long time, and not to update a personal interest space if the personal interest space was just updated not long ago.
If the interest space update determiner 1304 determines that a personal interest space needs to be updated, the interest space update determiner 1304 may inform the interest space update engine 1308 to perform the update. The interest space update engine 1308 in this example can receive the personal interest space from the interest space retriever 1306 and update the personal interest space according to an instruction from the interest space update determiner 1304. The interest space update engine 1308 may store the updated interest space back after the update.
The content crawler 1501 in this example can continuously obtain content from the Internet, e.g. by crawling. The content crawler 1501 may forward the obtained content to the channel update controller 1502 for controlling a channel update. The channel update controller 1502 in this example may determine whether it is time to check channels for update, e.g. based on the timer 1503 and/or based on the obtained content. For example, the channel update controller 1502 may determine to check channels for update if sufficient content has been obtained by the content crawler 1501, e.g. when the number of newly obtained content items exceeds a threshold. In another example, the channel update controller 1502 may determine to check channels for update if it has been a long time since last check, even if the number of newly obtained content items does not exceed the threshold. In one embodiment, the channel update controller 1502 may determine to check a particular channel for update, upon receiving a channel update request, from the user information/request processor 702 or from a user directly.
If the channel update controller 1502 determines to check channels for update, the channel update controller 1502 informs the channel metadata retriever 1504 to retrieve metadata of the relevant channels. The channel update controller 1502 may analyze the obtained content to determine one or more topics or categories, based on which the channel metadata retriever 1504 may retrieve metadata of channels relevant to the one or more topics from the content channels 730. The metadata may include information in the tables shown in
The content based channel identifier 1511 may identify one or more channels to update based on the obtained content and metadata of channels. For example, based on an obtained content item related to New York City's basketball team, the content based channel identifier 1511 may identify channels like “sports”, “basketball”, “New York Knicks”, and “New York City” for update. The content based channel identifier 1511 may send the identified channels to the channel based content organizer 1512 for updating content in the channels.
The channel metadata retriever 1504 may also send the metadata to the channel based query generator 1506 for generating channel based on queries. In one embodiment, the channel update controller 1502 determines to check a group of channels for update, e.g. based on a predetermined update schedule. Then the channel metadata retriever 1504 may retrieve metadata of the group of channels and send the metadata to the channel based query generator 1506.
The channel based query generator 1506 in this example may generate one or more queries for each of the group of channels, based on the topic associated with the topic. For example, the channel based query generator 1506 may generate queries “basketball”, “NBA”, “NCAA”, “all-star”, “Kobe Bryant”, and “Michael Jordan” for the channel “basketball”. For example, the channel based query generator 1506 may generate queries “mental health”, “heart health”, “men's health”, “women's health”, “fitness”, “diet”, “exercise” and “health insurance” for the channel “health”. The channel based query generator 1506 may send the generated queries to the search/recommendation engine 150 for searching content online related to the queries.
The search result analyzer 1508 may receive the search result from the search/recommendation engine 150 about the generated queries, and analyze the search result to determine searched content that can be used to update corresponding channels. For example, the search result analyzer 1508 may filter out content items generated one day ago from the search result, if the search result analyzer 1508 has provided these content items for update within the day. The search result analyzer 1508 may send the searched content or filtered content items to the relevant advertisement obtainer 1510 for obtaining relevant advertisements. The search result analyzer 1508 may also send the searched content to the channel based content organizer 1512 for updating corresponding channels.
The relevant advertisement obtainer 1510 in this example may obtain advertisements from the advertisers 170, based on the searched content received from the search result analyzer 1508. For example, the relevant advertisement obtainer 1510 may obtain an advertisement on a Yoga class, to be presented with an article in the search result about Yoga. In one embodiment, the relevant advertisement obtainer 1510 may obtain advertisements based on a bidding process with respect to the advertisers 170. In another embodiment, the relevant advertisement obtainer 1510 may receive a request from the channel based content organizer 1512 to obtain advertisements relevant to a channel identified by the content based channel identifier 1511. For example, the relevant advertisement obtainer 1510 may obtain advertisements on tennis racquets to be presented with content items in the channel “tennis”.
The channel based content organizer 1512 may update a channel identified by the content based channel identifier 1511 with corresponding crawled content from the Internet or update a channel whose associated query has been generated and submitted to get a search result at the search result analyzer 1508. In one example, the channel based content organizer 1512 may receive identified channels from the content based channel identifier 1511 and content items based on which the channels are identified. The channel based content organizer 1512 may ask the relevant advertisement obtainer 1510 for advertisements relevant to the content items. Then, the channel based content organizer 1512 may organize the content items and the relevant advertisements into the identified channels to update these channels. The channel based content organizer 1512 may store the updated channels with the updated content and advertisements.
In another example, the channel based content organizer 1512 may receive searched content items based on some queries from the search result analyzer 1508, corresponding channels based on which the queries were generated from the content based channel identifier 1511, and advertisements relevant to the channels from the relevant advertisement obtainer 1510. Then, the channel based content organizer 1512 may organize the searched content items and the relevant advertisements into the corresponding channels to update these channels. The channel based content organizer 1512 may store the updated channels with the updated content and advertisements.
In one embodiment, online content is obtained, e.g. by crawling, from the Internet at 1630. The interest engine determines at 1632 to update some channel based on the obtained content. At 1634, metadata of the channel is retrieved. At least one channel is identified to be updated based on the obtained content. The process then goes to 1616.
Advertisements relevant to the obtained content or the channel are obtained at 1616. Then at 1618, the content items and the advertisements are organized into the channel to update the channel. At 1620, the channel is stored with the updated content items and the relevant advertisements, such that the interest engine may provide updated content and advertisements to subscribed users through the channel.
The search engine 1702 in this example may receive a search query from a user or the interest engine. When the search query is from the interest engine, the search engine 1702 may search for online content items matching the query and send the search result to the interest engine. When the search query is from the user, the search engine 1702 may first search for online content items matching the query. In addition to that, the search engine 1702 may send the query to the channel query generator 1704 to generate a channel query.
The channel query generator 1704 may generate and send the channel query to the interest engine to identify channels matching the channel query. The channel query may or may not be the same as the search query. The searched channel receiver 1706 in this example may receive the identified channels from the interest engine and forward them to the search engine 1702 to generate the search result. In this case, the search engine 1702 may generate a search result that includes both content items matching the search query and identified channels matching the channel query. The search engine 1702 can provide this hybrid search result to the user.
The search engine 1702 may also send information about the search query and search result to the user interaction information generator 1708 for generating user interaction information. The user interaction information generator 1708 may generate and send user interaction information to the interest engine for updating channels and/or personal interest spaces. In one embodiment, the user interaction information generator 1708 may generate the user interaction information based on a user's interaction with the search engine 1702. In another embodiment, the user interaction information generator 1708 may also generate the user interaction information based on a content request from the user, forwarded by the content request analyzer 1710.
The content request analyzer 1710 in this example may receive a content request from a user or from the interest engine. In one example, the user may send the content request regarding content items in a channel, e.g. by clicking on one of the channel buttons 2020 in
The interest space identifier 1712 may identify the personal interest space of the user and inform the content channel determiner 1714. The content channel determiner 1714 may determine one or more channels within this user's personal interest space, based on the content request. In one embodiment, the content request is with respect to a channel that is not yet in the user's personal interest space. In that case, the content channel determiner 1714 can still determine the channel and instruct the channel based content recommender 1716 to provide content items in the channel to the user.
The channel based content recommender 1716 may provide organized content within the determined channels to the user who sends or triggers the content request. In one embodiment, the content request is regarding popular content among all users. Then the popular content recommender 1718 may identify the popular content and provide them to the user. In another embodiment, even if the content request is regarding a channel subscribed by the user, the popular content recommender 1718 may still recommend some popular content to the user, in addition to the channel based content provided by the channel based content recommender 1716.
It can be understood that according to some embodiments, the components in the search/recommendation engine 150 may be implemented within the interest engine 140 instead.
In one embodiment, a content request associated with a user is received and analyzed at 1812. A personal interest space associated with the user is identified at 1814. At 1816, content channels are determined based on the personal interest space and the request. At 1818, content items within the determined channels are provided or recommended to the user. Popular content items may also be recommended to the user at 1820. Then the process moves on to 1810.
At 1810, user interaction information of the user is generated and provided, e.g. to the interest engine for updating a personal interest space of the user.
In one embodiment, the general interest engine 2110 may include a same structure as the interest engine 140 disclosed above. The general interest engine 2110 may organize any content online. A specialized interest engine may have a same or similar structure as the interest engine 140 disclosed above. In contrast to the general interest engine 2110, the specialized interest engine may organize content published by a specific publisher. For example, the specialized interest engine 12122 organizes content published by www.cnn.com 2123; the specialized interest engine 22124 organizes content published by www.nba.com 2125; and the specialized interest engine N 2126 organizes content published by www.sina.com 2127. Each of the users 2150 may interact with one or more of the publishers 2123, 2125, 2127. For example, a user may download an app on his smartphone to view content from www.nba.com, through channels supported by the specialized interest engine 22124.
A specialized interest engine may be generated based on the general interest engine. An entity or publisher may build up a specialized interest engine quickly based on a general interest engine, e.g. based on an SDK in connection with the general interest engine, without a need to construct from scratch. As shown in
In one embodiment, after a user views many content items in channel “basketball” on an app associated with www.cnn.com 2123, the specialized interest engine 12122 may provide a recommended app associated with www.nba.com 2125 to the user, such that the user can install the recommended app to receive more basketball related content items organized in channels. In another embodiment, after a user views many content items in channel “basketball” on an app associated with www.cnn.com 2123, the specialized interest engine 12122 may direct the user to the specialized interest engine 22124 or direct the user to the website of www.nba.com 2125, such that the user's traffic is driven to another content provider www.nba.com 2125. In another embodiment, www.nba.com 2125 may also use content from www.cnn.com 2123 to keep users. This kind of traffic re-direction or re-driven may help to maximize the overall traffic within the interest engine based ecosystem 2100.
In one example, one publisher may import a personal interest space of a user from another publisher, via the general interest engine 2110 which may serve as an interest engine coordinator. In another example, one publisher may export a personal interest space of a user to another publisher, via the general interest engine 2110.
In one embodiment, a specialized interest engine's channels are provided by the general interest engine 2110. In another embodiment, a specialized interest engine may also create a channel that is not in the general interest engine 2110.
To implement various modules, units, and their functionalities described in the present disclosure, computer hardware platforms may be used as the hardware platform(s) for one or more of the elements described herein (e.g., the interest engine 140 and/or other components of systems 100 and 100 described with respect to
The computer 2300, for example, includes COM ports 2350 connected to and from a network connected thereto to facilitate data communications. The computer 2300 also includes a central processing unit (CPU) 2320, in the form of one or more processors, for executing program instructions. The exemplary computer platform includes an internal communication bus 2310, program storage and data storage of different forms, e.g., disk 2370, read only memory (ROM) 2330, or random access memory (RAM) 2340, for various data files to be processed and/or communicated by the computer, as well as possibly program instructions to be executed by the CPU. The computer 2300 also includes an I/O component 2360, supporting input/output flows between the computer and other components therein such as user interface elements 2380. The computer 2300 may also receive programming and data via network communications.
Hence, aspects of the methods of providing organized content, as outlined above, may be embodied in programming. Program aspects of the technology may be thought of as “products” or “articles of manufacture” typically in the form of executable code and/or associated data that is carried on or embodied in a type of machine readable medium. Tangible non-transitory “storage” type media include any or all of the memory or other storage for the computers, processors or the like, or associated modules thereof, such as various semiconductor memories, tape drives, disk drives and the like, which may provide storage at any time for the software programming.
All or portions of the software may at times be communicated through a network such as the Internet or various other telecommunication networks. Such communications, for example, may enable loading of the software from one computer or processor into another, for example, from a management server or host computer of a DSP into the hardware platform(s) of a computing environment or other system implementing a computing environment or similar functionalities in connection with providing organized content. Thus, another type of media that may bear the software elements includes optical, electrical and electromagnetic waves, such as used across physical interfaces between local devices, through wired and optical landline networks and over various air-links. The physical elements that carry such waves, such as wired or wireless links, optical links or the like, also may be considered as media bearing the software. As used herein, unless restricted to tangible “storage” media, terms such as computer or machine “readable medium” refer to any medium that participates in providing instructions to a processor for execution.
Hence, a machine-readable medium may take many forms, including but not limited to, a tangible storage medium, a carrier wave medium or physical transmission medium. Non-volatile storage media include, for example, optical or magnetic disks, such as any of the storage devices in any computer(s) or the like, which may be used to implement the system or any of its components as shown in the drawings. Volatile storage media include dynamic memory, such as a main memory of such a computer platform. Tangible transmission media include coaxial cables; copper wire and fiber optics, including the wires that form a bus within a computer system. Carrier-wave transmission media may take the form of electric or electromagnetic signals, or acoustic or light waves such as those generated during radio frequency (RF) and infrared (IR) data communications. Common forms of computer-readable media therefore include for example: a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD or DVD-ROM, any other optical medium, punch cards paper tape, any other physical storage medium with patterns of holes, a RAM, a PROM and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave transporting data or instructions, cables or links transporting such a carrier wave, or any other medium from which a computer may read programming code and/or data. Many of these forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to a physical processor for execution.
Those skilled in the art will recognize that the present teachings are amenable to a variety of modifications and/or enhancements. For example, although the implementation of various components described above may be embodied in a hardware device, it may also be implemented as a software only solution—e.g., an installation on an existing server. In addition, the providing organized content as disclosed herein may be implemented as a firmware, firmware/software combination, firmware/hardware combination, or a hardware/firmware/software combination.
While the foregoing has described what are considered to constitute the present teachings and/or other examples, it is understood that various modifications may be made thereto and that the subject matter disclosed herein may be implemented in various forms and examples, and that the teachings may be applied in numerous applications, only some of which have been described herein. It is intended by the following claims to claim any and all applications, modifications and variations that fall within the true scope of the present teachings.
Number | Name | Date | Kind |
---|---|---|---|
20030041147 | van den Oord | Feb 2003 | A1 |
20070047523 | Jiang | Mar 2007 | A1 |
Number | Date | Country | |
---|---|---|---|
Parent | 15758423 | US | |
Child | 17193918 | US |