1. Field
The present embodiments relate to methods for improving user satisfaction, and more particularly, methods, computer programs, and systems for including enhanced content in a post being created in a social network.
2. Description of the Related Art
The communication capability provided by social networks has opened new forms of communication in today's society, making easier for people to communicate with each other. Users of the social network want to share, not only textual messages, but also other items such as photos and photo albums, videos created by the person making a post, videos available on the internet, music, computer files, etc.
Users want to make their posts stand out by including relevant information associated with the post. For example, a user that visited a restaurant may want to add a photo taken at the restaurant, as well as information about the restaurant, such as the webpage of the restaurant or a ratings page for the restaurant. However, the process for finding additional relevant content to be added to the post is often cumbersome and lengthy, requiring the user to perform searches to find related items for inclusion in the post.
It is in this context that embodiments arise.
Embodiments of the disclosure provide methods, systems, and computer programs for creating recommendations to add enhanced content to a post being created in a social network. It should be appreciated that the present embodiments can be implemented in numerous ways, such as a process, an apparatus, a system, a device or a method on a computer readable medium. Several embodiments are described below.
In one embodiment, a method includes an operation for detecting, using one or more computing devices, user input for a social post before the social post is submitted on the social network. The user input is analyzed, using the one or more computing devices, as it is being entered, to determine relevant content. Further, the method includes another operation for providing for display, using the one or more computing devices, the content recommendations, with the option to select one or more items on the content. If any of the recommendations are selected, the social post is provided for display, using the one or more computing devices, with the user input and with the selected recommendations.
In another embodiment, a computer program embedded in a non-transitory computer-readable storage medium, when executed by one or more processors, if provided for creating a social post in a social network. The computer program includes program instructions for detecting user input for a social post before the social post is submitted on the social network, and program instructions for analyzing the user input, as the user input is being entered, to determine multimedia content that is relevant to the user input. Further, the computer program includes program instructions for providing for display the multimedia content with an option to select one or more items in the multimedia content, and program instructions for receiving a selection of items in the multimedia content. The social post is provided for display, with the social post having the user input and the selected items.
In yet another embodiment, a method for creating a social post in a social network includes an operation for detecting, using one or more computing devices, user input for a social post before the social post is submitted on the social network, the user input including keywords having topical meaning. The keywords are analyzed, using the one or more computing devices, as the user input is being entered to determine content that is relevant to the keywords. Furthermore, the method includes another operation for providing for display, using the one or more computing devices, the content with an option to select one or more items in the content. After receiving, using the one or more computing devices, a selection of items in the content, the social post is provided with the user input and the selected items.
Other aspects will become apparent from the following detailed description, taken in conjunction with the accompanying drawings.
The embodiments may best be understood by reference to the following description taken in conjunction with the accompanying drawings.
The following embodiments describe methods, systems, and computer programs for creating recommendations to add enhanced content to a post being created in a social network. One of the ways to increase user engagement in social networks is to make the creation of social posts easier and the social posts richer in content. Embodiments provide methods to enhance user engagement by helping the users to create and annotate social posts with a variety of related content, including web references, online videos and music, references to other relevant posts, news articles, etc.
It will be apparent, that the present embodiments may be practiced without some or all of these specific details. In other instances, well known process operations have not been described in detail in order not to unnecessarily obscure the present embodiments.
In one embodiment, the stream is presented in a middle panel of page 102. Input box 112 enables the person to add new posts in the social network. When the person enters a new post, the person is able to select the destination, e.g., the target audience for the post. The target audience could be the complete social network (e.g., a public post), a person, or one or more groups defined by the person. The post may include text or some other multimedia items. If the user clicks on one of the multimedia icons 130, a dialog box will be presented to the user to add a photo, a video, a link, a location, a song, a file, etc.
In one embodiment, the groups defined by the person are referred to as “circles,” but other configurations for defining groups are also possible. Examples include various graphically designed interfaces or text based lists, dialog boxes, pull downs, radio buttons, and other interfaces defined from a combinations of graphical elements, text, images, pictures, combinations thereof, etc. In one embodiment, the post may be a text message, a photo, a video, a link to a webpage, or a location of the person. Thus, the content and form of the post should be broadly construed to include any data that can be presented, displayed, listened to, interfaced with, received, sent, shared, approved, or disapproved, etc.
In one embodiment, the stream includes posts added by the person, by others socially linked to the person, or by an entity that the person has chosen to follow (e.g., be linked with/to in the social network). In one embodiment, an entity may be restricted from posting to a person's stream, unless the person has established a social link with the entity beforehand, e.g., the person has chosen to follow the entity.
In one embodiment, each post 124 may include information 116 about the author, the timestamp of the post, and the scope of the post (e.g., public, limited, etc.). Example post 124 may include a text message 118 entered by person “Sue XYZ,” but other types of posts are possible, such as photo 122, a video, a link, data, a news article, etc. The social network provides options 120 to respond to the post, such as providing an endorsement of the post, adding a comment 132 to the post, or sharing the post with others.
As used herein, “endorsement” is a broad term, encompassing its plain and ordinary meaning, including, but not limited to a public recommendation of an item, such as a webpage, a person, a post, an entity, etc. An endorsement may also be referred to or provided as an acknowledgment, a +1, a thumbs-up, a √ (check) mark, a confirmation, a ratification, a validation, a seal of approval, a testimonial, support, advocacy, an approval, a ratification, etc. In one embodiment, a button is provided in various web pages to enable the person to provide his or her endorsement. See for example +1 button 114.
Further, as used herein, enhanced content refers to additional information included in a social post created by the user. The enhanced content may include links to videos, audio, news, social network posts, blogs, locations, businesses, websites, ratings, etc. In general, enhanced content will include any content referenced by the user that has not been created specifically for the post by the user.
In one embodiment, a “mention” is an explicit reference to a user in an electronic message. A mention allows the creator of the post to grab someone's attention to a post because of the introduction of a mention identifier with, for example, someone's name. In one embodiment, a mention is performed by utilizing the ‘+’ or ‘ @’ signs followed by the name of a person or entity. It is noted that a “+” sign may be used to mention a person or an entity. When a person or an entity is mentioned within the context of the social network, the person or entity may receive a notification that the person or entity has been mentioned in a post (depending on notification settings). The user is also able to see the entirety of the post on which the user is mentioned, even if the post wasn't originally shared with the user.
A profile picture of the person 106 may be provided on the left side of page 102. In addition, stream filtering options 108 allows the person to limit or tune what is presented on the stream. In one embodiment, the filtering options included radio buttons to select or deselect the groups created by the person. In addition, the filtering options also include a radio button to enable or disable messages from entity pages in the stream. Although radio buttons are used, other types of user selectable controls may be used, such as drop downs, text fields, toggles, voice inputs, etc. In one embodiment, a chat button 110 is provided to allow the person to engage in conversation with others in the social network. On the right panel, icons 126 represent users in the social network that are linked with the person. In addition, the social network provides suggested new users in area 128. It is again noted that the layout of the features on the page 102 is only one example, and the layout can vary based on site designer preferences.
Embodiments enhance the user's experience when posting on the social network. Typically, when the user composes a post, the user enters some text, and there is an opportunity to improve the user experience by providing references to relevant materials which may be directly relevant to what the user is saying.
In one embodiment, as the user enters the text, suggestions for adding enhanced content to the social post are presented on the suggestions panel 206 situated on the right side of the webpage 202. As text is entered by the user, the system analyzes the entered text and provides suggestions that are relevant to the entered text. For example, if the user is entering a post about a concert that the user attended, suggestions may include news about the concert, a video of the musical performance or the group in the concert, images of the concert, multimedia items related to the general of the musical group (e.g., music of the 80s), etc.
In another embodiment, the suggestions are not presented until the user finishes typing or stops typing for a period of time. The system waits until there is a period of typing inactivity (e.g. one second, although other values are also possible) to present the suggestions. This way, suggestions are not presented while the user is busy typing.
In one embodiment, suggestions panel 206 includes one or more suggestions for videos, Internet links, images, music files, posts, blogs, news, etc., but other items are also possible depending on the subject or keywords of the user input. In one embodiment, only those items that are relevant to the entered text will be included in the suggestions area, which means that the type of suggestions will vary according to the entered text. If the user selects one of the suggested items (e.g., by clicking on the checkbox next to the selected item), the selected item will be included in the post together with the text entered by the user and any other items that may have also been selected by the user.
As the suggestions engine receives user selections for the presented suggestions, the suggestions engine learns from these selections, according to one embodiment. In other words, there is a positive feedback loop to incorporate the user selections as training data for enhancing the recommendations model.
In one embodiment, based on the topic-bearing keywords in the text of the post, as well as on the social network profile preferences of the user (e.g., configured interests in 80s music bands and 80s performers), the system identifies that the post relates to an 80s music group named “The Band” and relates to a concert of this music group. In response, the system provides suggestions related to the music group, music of the 80s, or even other groups similar to “The Band.” For example, based on the identified keywords and topics, the system may suggest popular videos available on the Internet for “The Band,” links to sites with information about the group, images of the group, etc.
In addition, the system may recommend social posts, created by the user or by friends of the user in the social network, that are relevant to the topic detected. Relevant photos may also be suggested, where the photos may be found in online albums of the user, albums of friends of the user, or in other Internet sites.
As the user enters more text on input box 112, the additional information allows the system to further refine the suggestions by providing better suggestions in light of the additional information received. In other words, the suggestions presented on the right side may change as more information is made available by the user.
It is noted that the embodiments illustrated in
In the embodiment shown in
The posts suggested on suggestions panel 206 provides the ability to create a thread of related posts. If the user selects one of the posts, the new posts and the selected post will be linked by the social network, which provides an easy way of following the thread of related links.
In one embodiment, the selections entered by users of the social network for adding enhanced content to social posts are collected by the social network in order to provide a training mechanism for the recommendations engine. When a reference gets incorporated, the incorporation of the reference provides a stronger signal for the future incorporation of the same reference. A positive feedback loop is created to continue improving the recommendations system based on the choices made by users. This way, items that are selected more often will be presented with a higher probability by the recommendations engine.
As in the case when the suggestions are presented on the right panel, if the user selects one or more suggestions, the selections will be added to the post. In one embodiment, the social network provides suggestions to the user on the right panel (e.g., see
By enabling the user to select keywords on the social post, the user may focus on the keywords of the social post, making the recommendations more relevant. In one embodiment, the recommendations are not presented to the user until the user selects one of the keywords. This way, there is less distraction to the user when the user is typing, and the suggestions are made available only when the user desires to see suggestions. In another embodiment, the option to provide suggestions can be disabled by the user, causing the system to stop making recommendations until the user changes the configuration to enable recommendations again.
In yet another embodiment, an option is provided to select the type of suggestion the user desires. For example, the user my select videos as an option and the system would only make suggestions of videos related to the topic of the social post. Of course, the user may select more than one type of multimedia for suggestions, e.g., “give me suggestions for videos and news.”
In some embodiments, a suggestion may include a map location or directions to a place. For example, if the user enters “let's meet at Joe's at 7:00” the system may add a suggestion to include a link to a map to the place mentioned in the post (e.g., Joe's Bar). In addition, the system may add a suggestion to include a link to Joe's Bar website, or a link to the menu page in Joe's Bar website.
In one embodiment, suggestions are not included until a certain threshold of relevance for the suggested items is met. This way, when the user starts typing, suggestions are omitted until there is enough information on the post for the system to identify the topic of the social post, allowing the system to provide relevant recommendations when there is enough information about the topic of the social post. As the user enters additional keywords, the recommendations server continuously recalculates the scores for candidates to be suggested items. When a few words have been entered, typically, the scores will be low as there is not yet enough information. But as additional information is entered, the topic will become clearer and the relevance scores will go higher. Once the threshold score is met by at least one of the possible candidates suggestions, the system will start providing suggestions to the user.
A list of user attributes is provided on entry panel 508. Next to each attribute, the current value of the attribute is presented, if the value exists. In the example of page 502, the user has and occupation of “Waitress,” has her place of employment at “Joe's DDD,” etc. When the user selects one of the attributes, an input window is presented, which provides one or more fields to the user for entering the appropriate values for the attribute. The value for an attribute may be a single item, such as age, or may include a list of values, such as “places to live.” Other attributes may include text (e.g., introduction), photos (e.g., profile photos), addresses, phone numbers, etc.
In one embodiment, an option to provide recommended links 522 is provided. The recommended links gets an indication of the interests of the user, but other types of fields might also be utilized to determine the user's interests. For example, if the user attended certain high school, activities related to the high school will be of interest to the user.
The interests of the user may be utilized by the recommendations system to evaluate and rank multimedia items that can be suggested for inclusion in the social post. Therefore, the recommendations system takes into account not only the content of the textual post, but also the interests of the user, in one embodiment.
Other embodiments may utilize different attributes, present the attributes in a different form, have different privacy options, etc. The embodiments illustrated in
In one embodiment, the user interests and the extracted keywords are combined to score and rank materials for recommendations. The strongest signal for relevancy is where the interests and the keywords intersect. For example, if a user is interested in 80s music and the user is posting something about 80s artists, then a good source for suggestions would be videos of the 80s artists.
In one embodiment, the candidate multimedia suggestions are scored utilizing collaborative-filtering machine-learning algorithms. Collaborative filtering is a technology that aims to learn user preferences and make recommendations based on user and community data. It is a complementary technology to content-based filtering (e.g., keyword-based searching). A well-known example of collaborative filtering is when a user's past shopping history is used to make recommendations for new products. A variety of item-to-item collaborative filtering techniques can be used to implement training of the model, such as Bayes normalization (probabilistic), K-nearest neighbor (clustering), and cross-product recommendations.
The general idea in collaborative filtering is to cluster users by similarity of their interests. Based on the users' interests, users are place in clusters of interest, i.e., each cluster is associated with a topic, interest, or concept. For example, a cluster may be associated with 80s music. A user may belong to one or more clusters.
Once the clusters of users are created, each potential candidate for recommendation can be evaluated against this particular user. The goal is to determine whether a candidate item is relevant to the user and to the post. For example, if an article has been clicked a large number of times by the members of a cluster, the item will be probably relevant to the users in the cluster.
In the example of
A certain Article n is being evaluated by the recommendations system.
In one embodiment, two connections are identified: the user belongs to clusters, and the clusters related to the article in a certain way (e.g. number of clicks). The number of clicks gives a relative weight of the value provided by each of the clusters towards the article.
In one embodiment, the weights for ranking the articles are based on the number of clicks for each cluster. Therefore, there are two types of weights. The first set of weights is based on the number of clicks per cluster. The second set of weights is based on a cluster belong-to relationship, where clusters that include the user will be given more weight than clusters that do not include the user.
In addition, weights may also be assigned to posts that are related to the writer or to friends of the writer. For example, the score is weighted, in one embodiment, based on circle membership.
In another embodiment, a time component is included, where older clicks have less weight than more recent clicks. In other words, the click count decays over time (unless of course, users in the cluster add more clicks). This means that older items are less relevant than more recent articles. In one embodiment, a higher relevance score is given to candidate items that are more recent than older candidate items.
As discussed above with reference to
It is noted that the embodiments illustrated in
The inputs for the recommendation engine 712 include the keywords in the post 708, posts 704 created by the user, posts 702 created by friends of the user, and social network information, such as clusters of interest 706 and user profile 716. The recommendation engine 712 scores multimedia items available in database 714 for possible recommendation. It is noted that the multimedia database 714 may include some multimedia items, but the multimedia database 714 does not necessarily include all possible recommendations because the multimedia database 714 but may also include links to where the recommended items may be found on the network.
In one embodiment, keywords 708 include those words that include a topical value. The recommendation engine 712 utilizes the topic identified by the keywords to formulate recommendations. See for example the description with reference to
The posts entered by the user in the social network 704 serve a dual role. On one hand, the post entered by the user help identify the interests of the user (besides those interests already identified on the user profile). And on the other hand, the posts entered by the user may be included as recommendations. Similarly, friends' posts may be utilized to identify topics of interest to the user, as well as being candidates for recommendations.
Clusters 706 are utilized by the recommendations engine 712, in one embodiment, to implement collaborative filtering in order to identify items that are more popular on the network. More specifically, to identify items that are popular in those clusters that include the user. In addition, user profile 716 provides information regarding the topics of interest for the user.
It is noted that the embodiments illustrated in
In some embodiments, social network server 806 delivers services that enable users to interface with each other. The social network provides a site that enables users to define user accounts, which can be accounts for people and entity accounts. Through those accounts, users are able to connect with their friends, group of friends, entities, groups of entities, etc. In some embodiments, the relationships established in the social network may be utilized in other contexts and websites. Search server 804 provides Internet search capabilities.
Recommendation server 802 provides recommendations or suggestions for relevant multimedia items that can be added to social posts, as the social posts are being created by users. Recommendation server 802 interfaces with web server 810, social network server 806, search server 804, and client devices to perform post-creation operations.
In some embodiments, the social network provides entities with a specific type of interface for posting messages, communicating, sharing, and generally interacting within the social network. In some embodiments, this interface for entities is referred to as “plus pages,” indicated by a token, e.g., “+”, followed by the name of the entity in the social network (e.g., Acme corporation has a “+Acme” page). Real-persons have “person pages,” which are different from plus pages and have different functionality, although some features are common to both plus pages and person pages. Although the symbol “+” and word “plus” is referred to herein as denoting a type of site or place within the social network, it should be appreciated that any symbol, identifier, word, or character may be used to define or identify the social services. In an alternate embodiment, the services can be provided without the use of any special symbols or denoted nomenclature. Thus, so long as the social network site provides the functionality defined herein, the nomenclature utilized to denote the services can take on any form, format or identifier.
Other embodiments may utilize different servers, have the functionality of one server distributed over a plurality of servers, have the functionality of two or more servers combined into a single server, have a different amount of display categories in the social network, prioritize user posts with different criteria, provide different options for adding multimedia content, etc. The embodiments illustrated in
In operation 906, a check is made to determine if multimedia content relevant to the user input is available to provide suggestions to the user for adding multimedia content items in the social post being created. If the check in operation 906 determines that there is relevant multimedia content, the method continues to operation 908, and to operation 918 otherwise.
In operation 908, the multimedia content is presented with an option to select one or more items in the multimedia content (see for example suggestions 206 of
From operation 910, the method continues to operation 912 where the items selected in operation 910 are incorporated into a draft of the social post (see for example video 308 and music file 310 of
Permanent storage 958 represents a persistent data storage device e.g., a hard drive or a USB drive, which may be local or remote. Network interface 962 provides connections via network 964, allowing the exchange of electronic messages (wired or wireless) with other devices. It should be appreciated that processor 954 may be embodied in a general-purpose processor, a special purpose processor, or a specially programmed logic device. Input/Output (I/O) interface 960 provides communication with different peripherals and is connected with processor 954, memory 956, and permanent storage 958, through the bus. Sample peripherals include display 972, keyboard 968, mouse 970, removable media device 966, etc.
Display 972 is configured to display the user interfaces described herein. Keyboard 968, mouse 970, removable media device 966, and other peripherals are coupled to I/O interface 960 in order to exchange information with processor 954. It should be appreciated that data to and from external devices may be communicated through I/O interface 960. Embodiments can also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a wired or a wireless network.
Embodiments can be fabricated as computer readable code on a non-transitory computer readable storage medium. The non-transitory computer readable storage medium holds data which can be read by a computer system. Examples of the non-transitory computer readable storage medium include permanent storage 958, network attached storage (NAS), read-only memory or random-access memory in memory module 956, Compact Discs (CD), Blu-Ray™ discs, flash drives, hard drives, magnetic tapes, and other data storage devices. The non-transitory computer readable storage medium may be distributed over a network-coupled computer system so that the computer readable code is stored and executed in a distributed fashion.
Some, or all operations of the method presented herein are executed through a processor, e.g., processor 954 of
In addition, at least one operation of some methods performs physical manipulation of physical quantities, and some of the operations described herein are useful machine operations. Embodiments presented herein recite a device or apparatus. The apparatus may be specially constructed for the required purpose or may be a general purpose computer. The apparatus includes a processor capable of executing the program instructions of the computer programs presented herein.
Although the foregoing embodiments have been described with a certain level of detail for purposes of clarity, it is noted that certain changes and modifications can be practiced within the scope of the appended claims. Accordingly, the provided embodiments are to be considered illustrative and not restrictive, not limited by the details presented herein, and may be modified within the scope and equivalents of the appended claims.