US20160110464A1 - Method of recommending content via social signals - Google Patents
Method of recommending content via social signals Download PDFInfo
- Publication number
- US20160110464A1 US20160110464A1 US14/985,171 US201514985171A US2016110464A1 US 20160110464 A1 US20160110464 A1 US 20160110464A1 US 201514985171 A US201514985171 A US 201514985171A US 2016110464 A1 US2016110464 A1 US 2016110464A1
- Authority
- US
- United States
- Prior art keywords
- content
- content items
- social
- user
- social graph
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000003860 storage Methods 0.000 claims description 27
- 230000009471 action Effects 0.000 claims description 16
- 238000005457 optimization Methods 0.000 description 27
- 230000006855 networking Effects 0.000 description 20
- 238000004891 communication Methods 0.000 description 16
- 238000009826 distribution Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 230000002776 aggregation Effects 0.000 description 7
- 238000004220 aggregation Methods 0.000 description 7
- 210000003813 thumb Anatomy 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000012552 review Methods 0.000 description 5
- 230000004931 aggregating effect Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000013475 authorization Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000003825 pressing Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000036651 mood Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000013442 quality metrics Methods 0.000 description 1
- 208000024891 symptom Diseases 0.000 description 1
Images
Classifications
-
- G06F17/30867—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9536—Search customisation based on social or collaborative filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G06F17/3053—
-
- G06F17/30554—
-
- G06F17/30958—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0278—Product appraisal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
- G06Q50/01—Social networking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/306—User profiles
Definitions
- the present invention relates to content recommendation systems.
- Many web sites such as the “My Yahoo!®,” page by Yahoo! Inc., allow users to view original content from the web site provider, as well as content from a variety of partners and other third-party sources.
- content feeds such as RSS (Really Simple Syndication) feeds, Atom feeds, and other content distribution technologies
- RSS Really Simple Syndication
- Atom feeds and other content distribution technologies
- users are able to select content sources and customize their home page so that it reflects their interests. For example, one user may place the “Oddly Enough News” feed by Thompson Reuters on their home page alongside other news feeds, video feeds, blog feeds, and other content. Another user may choose an entirely different set of content sources to follow.
- News feed aggregators and other content selection technologies also allow similar functionality, with varying degrees of control, features, and presentation options.
- a certain amount of the content delivered to users is of little or no interest or value to the user, even if the user has time to digest the content. This is true even of content delivered via content sources selected by the user. For example, a user that has selected a content feed named “Politics” may only be interested in one or two of the stories presented via that feed. The lack of interest may, among other reasons, be due to a feed selection mismatch, or may be a symptom of a quality problem with the feed logic that selects content for that feed.
- the relevancy of the content may vary from content provider to content provider.
- One content provider may take pride in matching the description of the feed with the contents provided via the feed, and may use advanced methods to ensure maximum relevancy to the broadest consumer base.
- relevancy may also vary from user to user. In other words, content that is interesting to one user may be uninteresting to another based on mood, time of day, level of education, or many other “human” factors.
- Facebook® a social networking web site
- Facebook® has circumvented the content aggregation model described above by allowing users who are friends with one another, i.e., connected via the web site, to recommend content to each other.
- Users post links to news articles, videos, and other content items that are accessible via the Internet, sometimes along with introductory comments meant to introduce the content to friends. Comments may be attached to postings by other users of the web site, such as friends of the user.
- friends of the posting user may signal their approval of content by pressing a “thumbs up” button. This content, however, is found in a sea of personal postings and micro blog updates by friends, and users are unable to specify content categories that they are interested in.
- CNN® uses information gathered from Facebook® to list stories that are popular on the social networking site. For example, a large number of users may post links to CNN® stories, and CNN® provides a list of the most popular stories to users of the CNN® web site.
- Facebook® provides “social plug-ins” that allow users of web sites such as the CNN® web site, to view a list of content items from the same web site that are recommended by the user's friends on Facebook®. However, the user must be currently visiting the CNN® web site, and will only see CNN® web site stories that are linked to or recommended by friends.
- FIG. 1A illustrates a block diagram of an environment in which an embodiment may be implemented.
- FIG. 1B illustrates a block diagram of an environment in which an embodiment may be implemented.
- FIG. 1C illustrates a block diagram of an environment in which an embodiment may be implemented.
- FIG. 2 illustrates a logical diagram representing a social graph and social graph elements in an embodiment.
- FIG. 3 illustrates sample output generated in an embodiment.
- FIG. 4 illustrates a method for aggregating content in an embodiment.
- FIG. 5 illustrates a method for generating a web page using social graph information in an embodiment.
- FIG. 6 illustrates a computer system upon which an embodiment may be implemented.
- Users of the Internet often “register,” or create “accounts” with a variety of web sites by generating unique identifiers such as user names.
- a user By registering with a web site, a user becomes uniquely identifiable to the web site, allowing the user to create, request and receive personalized content. Users often must log in to each web site in order to view this personalized content.
- a user may log in to a personalized home page, which is configured to deliver personalized news feeds and other content to the user.
- Multiple content feeds such as RSS feeds, each coming from a different content provider, are requested by the home page provider. These content feeds may have been chosen by the user when configuring the personalized home page.
- a first news feed may be retrieved from CNN®
- a second news feed may be retrieved from Fox News®.
- Each of the news feeds includes a list of content objects that identify news articles.
- the content objects may include, for example, a title for the news article and a link to that news article.
- a small portion of the article, such as the first three lines of text, may also be included in the content object.
- the user is also a member of a social networking website, where the user is connected to other users.
- friends or “connections” of the user. Friends of the user may have already viewed some of the news articles and provided feedback on them. For example, one friend may have posted a link to one of the articles on the social networking website. Another friend may have provided a rating for the article, giving it four out of five stars.
- social signals Evidence of social signals may be stored by social networking providers.
- the user's social graph information i.e., information associated with the user's social network
- the social graph information includes information about social signals generated by the user's friends.
- the social graph information is then used to determine which content may be more relevant to the user. For example, content that has been recommended or commented on by the user's friends or connections may be deemed to be more relevant to the user.
- a single news feed is created, based on social graph information such as social signals, from content objects in the CNN and Fox News feeds in an embodiment. Thus, news articles may be placed in order of relevance based on social signals and other social graph information, even if the content comes from multiple sources.
- embodiments are described in the context of news feeds and social networking websites, embodiments may be applied to other types of content and content delivery mechanisms as well as different types of websites that allow users to create associations with other users.
- FIG. 1A illustrates a block diagram of an environment in which an embodiment may be implemented.
- Content optimization engine 120 is communicatively coupled to client 110 , and receive requests from client 110 .
- client 110 may send requests such as request 176 to content optimization engine 120 .
- Request 176 may be a request for content, such as content 154 which is sent from content optimization engine 120 to client 110 .
- content optimization engine 120 may also be communicatively coupled, via a network such as the Internet, to content providers such as content providers 130 and 132 .
- Content optimization engine 120 sends requests such as requests 170 and 172 to content providers. These requests may include requests for sets of content objects such as content sets 150 and 152 .
- content optimization engine 120 may request a content feed that contains content objects made up of metadata associated with content on the Internet. Metadata may include a URL (Uniform Resource Locator) that identifies the location of the content on the Internet, a title for the content, an image or URL identifying the location of an image associated with the content, and other data about or associated with the content.
- URL Uniform Resource Locator
- one or more link alias providers such as link alias provider 180 are communicatively coupled to content optimization engine 120 via a network.
- Requests such as request 179 may be sent from content optimization engine 120 to a link alias provider.
- These requests are for information associated with a particular content object or URL, such as a distribution metric that indicates the popularity of the object or URL.
- the link alias provider may determine the distribution metric, such as distribution metric 190 , based on the number of requests made for a URL alias associated with the object or URL.
- Content optimization engine 120 is also communicatively coupled, via a network, to a social network service provider such as social network service provider 140 in an embodiment.
- Content optimization engine 120 sends requests such as request 174 to a social network service provider.
- requests such as request 174 to a social network service provider.
- many social network service providers may be the subject of such requests.
- Social network service providers send social graph information such as social graph information 160 and associated information and social graph elements to the content optimization engine 120 .
- FIG. 2 illustrates a logical diagram representing a social graph and social graph elements in an embodiment.
- Social graphs may be combined with one another to create larger social graphs, as long as a logical common node exists.
- user 210 is a node in three separate social graphs: social graph 220 , social graph 230 , and social graph, 240 .
- These social graphs may be generated by different social network sites, such as Yahoo!® PULSE, Facebook®, or Twitter®.
- user 210 may be a user of all three of these social networking web sites, which may each use an open authorization mechanism such as OAuth (Open Authorization) to allow secure API authorization from desktop and web applications.
- Friends 222 and 224 - 238 have a direct relationship with user 210 , and so do authors 242 - 246 .
- Friend-of-friend 223 is connected to user 210 via friend 222 .
- Connections such as friends, authors, and others, may be grouped together into a connection group such as connection group 280 .
- each group may be associated with one or more importance metrics that indicate a weight that should be given to recommendations provided by members of the group.
- group metrics are group metrics 270 - 272 , which are associated with friend 222 , friend-of-friend 223 , and author 242 , respectively.
- Friend 222 , friend-of-friend 223 , and author 242 also have an associated individual weight metric such as weight metrics 250 - 252 and group identifiers such as group identifiers 260 - 262 in an embodiment.
- Other metrics and additional instances of the same types of metrics discussed may be associated with friends, authors, and other connections in an embodiment.
- Content optimization engine 120 includes one or more input/output interfaces, such as input/output interface 121 .
- the input/output interface may be configured to receive requests, such as request 176 from client computing devices such as client 110 .
- the input/output interface may be connected to input logic 126 , which is configured to manage throughput of information in an embodiment.
- input logic 126 may create a buffer in storage 128 , which may include one or more volatile or non-volatile memory devices. All devices in content optimization engine 120 are capable of being communicatively coupled to one another via a BUS, such as BUS 602 (not shown in FIG. 1A ).
- Content optimization engine 120 includes one or more processors such as processor 122 , which is coupled to aggregation logic 123 .
- Aggregation logic 123 is configured to perform aggregation of content objects based on personalization information generated from personalization logic 125 , social signal information generated by social signal logic 129 , and ranking information received from ranking logic 124 .
- Personalization information may be based in part on filters generated by a user of the system and stored in storage 128 .
- Social signal information may be derived from social graphs and weighting metrics associated with social graph information received from social network service providers.
- Ranking information may be based on traditional ranking methods and metrics associated with the content providers that provide the content objects, such as content provider 130 .
- the aggregated content may be delivered as output via input/output interface 121 to a client, such as client 110 in the form of a content set, such as content set 154 .
- Social networking web sites such as Yahoo!® PULSE, Facebook®, and Twitter® allow users to interact with one another. These sites typically allow users to display pictures, comments, notes, status updates, songs, videos, and more. Content on social networking sites may be generated by end-users that utilize the online service in order to share the content and connect with others.
- Users of social networking web sites may perform many actions that are directly or indirectly associated with content. These actions may be associated with content that is generated by the users of the web site as well as content that is created by content providers and other interactive web sites. Many such web sites, such as the CNN® home page, provide interactive tools that allow users to post comments about, like, or otherwise generate events associated with the content on social networking web sites. For example, a user may be reading a news story that touts environmental responsibility and sustainability. The user may enjoy the article and wish to share it with his friends, so he clicks on a Facebook® logo provided by the CNN® web site, enters a comment, and with a single click of the mouse button, posts a link to the story, an associated picture, the title of the story, and his comment to his Facebook® wall. If he does not want to take the time to post a comment, he may simply click a “thumbs up” button on the news article page to indicate that he likes the article.
- Social signals may be defined as any action or evidence of action taken by a user. Often, the users are part of a social graph, and the action taken is associated with content on the Internet. These actions are key indicators of interest. For example, when a user clicks a “thumbs up” button on a web video to indicate that he likes the web video, the action is the clicking of the “thumbs up” button, and evidence of the action may be stored in a database or other storage in the form of a time stamp and an identifier associated with a particular action and an object. Evidence may be stored using other identifiers or without time stamps in other embodiments. The interest shown by the user is presumably positive, since he clicked a “thumbs up” button.
- a non-exclusive list of social signals include: generating a content object or content, recommending a content object or content, flagging a content object or content, reviewing a content object or content, viewing a content object or content, posting a link to a content object or content, and posting content that is related to a content object. Any action a user takes may be considered a social signal.
- Generating a content object may include posting a link to content that can be found elsewhere on the Internet, such as a news story, not written by the user, that is on a web site that is not the web site to which the content object is being posted.
- Generating content may include actually creating the content that is to be consumed. For example, a user may create a video and upload it to a video-sharing web site. Or, a user may provide a comment on a news article published by CNN® using his Facebook® login that is associated with his CNN® login. This may result in the creation of a content object in Facebook®.
- Recommending a content object or content may include any means of providing an indication to other users that those users should read, view, or otherwise consume the content being recommended. For example, a user may provide a “star rating” for a web video, giving the video a rating of four out of five possible stars, indicating that the content is good, but not excellent. Flagging may also be one way of recommending content. For example, a user may be viewing a news article on a web site, and may press a “thumbs up” button to indicate that he likes the content. Flagging may also be used to indicate that the user dislikes content, feels that the content is inappropriate for certain users, or otherwise mark the content with some designation.
- Reviewing a content object or content may include actually writing a review associated with content.
- an online book retailer may post a web page that is dedicated to the sale of and information about a particular book. Either the book or the web page about the book could be considered content.
- a user may write a detailed book review about the book, and even provide a rating for the book. The book review, when posted, will likely be associated with a user profile attached to the online book retailer.
- Viewing a content object or content may include clicking on a link that is posted on a social networking site by another, or simply visiting a web site.
- There are many ways to track the viewing of content For example, when a link is posted to a social networking web site, it is common for the social networking web site to alter the link to point to a redirect script on the social networking web site, which will redirect the request to the originally intended location. This enables the social networking web site to determine which links users are clicking on within their web site, and log the user action.
- Posting a link to a content object or content may include actually typing a link into a form provided by the social networking web site or simply pressing a button provided by a content provider that is designed to automatically post a link to the current page to the social network provider associated with the button.
- the link is usually associated with the user that posts the link.
- Posting content that is related to a content object may include adding comments, pictures, or metadata associated with posted content objects.
- a user may wish to post a video on his Facebook® wall. If the video is hosted by a video hosting service, the posting may include information required to locate the video, such as a URL, along with an image used to entice viewers into viewing the video and a title and description of the video. Most, if not all, of this information is determined by the author of the video, and not necessarily the user posting the content object (although the author and the poster may be the same person).
- the user posting the content object may wish to provide, in the posting, more information than the content object includes. For example, the user may wish to explain to his friends why he is posting the video by adding additional comments to the posting.
- the user may include information that indicates whether or not he actually likes the video. This information may include a star-rating or a like/dislike indicator as described above.
- social signals Although several specific examples of social signals have been described above, these examples represent only a subset of social signals that may be tracked by service providers. Any social signal may be used to aggregate content or recommend content to users in an embodiment.
- FIG. 1A illustrates a block diagram of an environment in which an embodiment may be implemented.
- Client 110 may make a request 176 to content optimization engine 120 for a content set.
- the request 176 may comprise a search query, a request for a personalized home page, or any other request that involves the delivery of content or content objects.
- the content optimization engine makes requests for content to content provider 130 and content provider 132 .
- the user of client 110 may have subscribed to an RSS feed associated with each of the content providers in an embodiment.
- Each of the content providers provides a content set (content sets 150 and 152 ) to content optimization engine 120 .
- Content optimization engine 120 also requests social graph information 160 from social network service provider 140 .
- Social network service provider 140 sends social graph information 160 to content optimization engine 120 .
- Social graph information 160 includes information associated with a user's social graph, and may or may not include a complete social graph.
- social graph information 160 may include one or more social graphs such as social graphs 220 , 240 , and 280 , along with information about friends, authors, and other connections within the social graph.
- content optimization engine requests only social graph information that matches content provided by one or more content providers.
- content provider 130 may provide a list of content objects. If content metadata, such as title, keywords, link information, or other information can be matched to a content object, content metadata, or a social signal associated with a node in the social graph, then those nodes and relevant data about those nodes may be returned. Varying degrees of information may be requested from and/or returned by a social network service provider.
- Social graph information 160 may indicate that a particular content item is popular among the user's friends.
- the user may be user 210 and a particular news story about plans to build a high-speed train between Los Angeles and San Jose may be popular among his friends in social graph 220 .
- Friend 222 may have posted a link to the story along with a comment, and friends 224 and 226 may have indicated that they liked the story.
- friend-of-friend 223 may have also commented on the story, or re-posted it to his friends. All or any amount of information about these social signals may be included in social graph information 160 .
- the content object is placed into content set 154 and delivered to client 110 .
- Many actions may be taken based on the popularity determination. For example, if content set 154 is limited by user preferences, say, to a certain number of content objects, social signals may determine whether or not each content object “makes the cut.” Content objects with high relevancy as determined by other methods may still outrank content associated with particular social signals, but social signals may be a key part of determining placement and/or location.
- Content objects associated with social signals may be displayed on the screen to users in a unified, separate section that is distinct from other content objects not associated with social signals, even if the content objects come from different content feeds.
- content objects A, B, C, D, and E may be content objects delivered by content provider 130
- content objects V, W, X, Y, and Z may be content objects delivered by content provider 132 . If content objects A, C, D, X, and Y are in any way associated with a social signal, then these content objects may be displayed together on a portion of the display provided to the user 210 . This portion of the display may even be designated as “socially selected articles.”
- FIG. 3 illustrates sample output generated in an embodiment.
- Content set 300 includes several content objects in a “top stories” category.
- Content object 302 includes an optional relevancy indicator 304 that is based on several social signals.
- a picture or avatar of “fredwilson” (the user name for Fred Wilson) is displayed, along with an announcement that “fredwilson +16 others liked this.”
- Information associated with Fred Wilson may be displayed because he is an “important” user within the requesting user's social graph.
- Fred Wilson may be a friend, friend-of-friend, or N-degrees of separation away from the user in a social graph.
- the 16 other users described by the relevancy indicator may be other users of the social networks that the user 220 is connected to.
- These users may or may not have a meaningful association with user 220 . More than one “important” user may be displayed in an embodiment. In another embodiment, no information related to social networks is displayed, but any information collected about users of social networks may still used for determining the placement of content objects.
- FIG. 1B illustrates a block diagram of an environment in which an embodiment may be implemented.
- FIG. 1B includes additional social network service provider 142 and additional social network service provider 144 .
- Content optimization engine may also make requests ( 177 and 178 ) to these additional social network service providers for social graph information ( 162 and 164 ).
- the additional social graph information may be used to determine whether or not a content object is included in content set 154 . For example, if social graph information 160 identifies that a first user “likes” a particular content object, but social graph information 162 and social graph information 164 may identify several users that “dislike” the same content object. Social graph information 162 and social graph information 164 may outweigh social graph information 160 , causing the content object to not be included in content set 154 .
- Social graph information such as social graph information 160
- metrics may be assigned to friends, authors, and other nodes of a social graph, and these metrics may be inherited by content objects associated with social signals that are associated with those nodes.
- friend 222 may post a link to a news story via a social network service provider web site.
- the act of posting is recorded as a social signal by the social network service provider 140 , and delivered as social graph information 160 to content optimization engine 120 .
- Information associated with friend 222 may also be included in social graph information 160 .
- the association between friend 222 and the social signal is provided to content optimization engine as social graph information 160 in an embodiment.
- Weight metric 251 may also be included as social graph information.
- Weight metric 251 represents a measurement of credibility that should be applied to social signals associated with friend 222 in an embodiment.
- friend 222 may have a weight metric of +5, while friend 224 may have a weight metric of +2.
- Other friends may have negative weight metrics.
- a weight metric may even be set to NULL, where the metric has no effect.
- Friend-of-friend 223 may have a weight metric 250 of +4, but the metric may be reduced by content optimizer based on the social graph distance from user 220 .
- the effective weight metric of friend of friend 223 may be effectively reduced to +2 by virtue of the fact that the node is two-degrees away from user 220 .
- a separation metric may describe this relationship, and may be used in conjunction with other metrics for ranking and aggregation purposes.
- a group metric may be assigned to a group of friends.
- Group 280 includes three friends (friends 234 , 236 , and 238 ).
- Group 280 may have a group identifier that is passed to content optimization engine 220 as social graph information 160 .
- Friend 234 may be associated with a group identifier as well as a group metric. This metric represents a measurement of credibility that should be applied to social signals associated with the group.
- conflicts between group metrics and weight metrics associated with the same friend may be resolved in many ways.
- a user may be in a low-value group labeled “people not to chat with” because he tends to engage in chat sessions that last for unusually long periods of time.
- the group may have a - 5 group metric value.
- the same user may have a weight metric of +10.
- User preferences may define the effective weight as a sum of the two values ( 5 ).
- each metric may be given a weight, to resolve the dispute in favor of the metric considered more accurate.
- a sum of the weight metric and 50 % of the group metric may be used, for a result of 7 . 5 using the example above.
- one of the metric types may be ignored. This is especially useful if one metric type is considered more accurate than others.
- Metrics may be assigned to friends and groups by the user 220 .
- metrics may also be assigned by other users of the social network service provider 140 .
- friend 224 may be very popular among users in the social network service provider, which provides a user rating system.
- Other users may perform social signals that elevate friend 224 to a high ranking, thereby giving friend 224 additional credibility that is used for aggregating and ranking content for user 220 .
- Metrics may also be assigned to social networking service providers. For example, a user may deem social signals associated with Facebook® friends to be more credible than social signals associated with My Space® friends based on the nature of the real-world relationships mimicked on these sites. Authors that the user follows on Twitter® may be given even more clout in the form of a metric because the user actually chooses to follow what the author micro-blogs about. This is a more active show of interest in opinion, as opposed to an indication that the user wants to “keep up” with the friend, as with Facebook®.
- Metrics may be used to select content objects to include in a content set displayed to a user.
- content providers such as content provider 130 and 140 may provide various content sets to content optimization engine 120 .
- These content sets may include content objects.
- content objects A, B, C, D, and E may be content objects delivered by content provider 130
- content objects V, W, X, Y, and Z may be content objects delivered by content provider 132 . If content objects A, B, D, X, and Z are associated with metrics that meet a particular threshold (which may be user-configured, pre-defined, or determined in a different way) then these content objects may be included in content set 154 .
- Aggregation of multiple content sets into a different content set is performed based on social signals, and, more specifically, may be based on metrics associated with a social graph. Metrics may be considered social signals. Metrics may also be used to rank content objects. For example, content objects with high metric values may be ranked higher than content objects having lower metric values.
- FIG. 4 illustrates a method for aggregating content in an embodiment.
- a first content set from a first content provider is received.
- a second content set is received from a second content provider.
- the first content provider may be a news service and the second content provider may be a web video site.
- the first content set may be provided in response to a request being made by a computing device to a URL that identifies an RSS feed.
- the second content set may be provided in response to a request being made to a URL that identifies an Atom feed.
- social graph information is received from a service provider.
- social graph information may be received from Facebook®.
- a portion of the first content set and a portion of the second content set are aggregated based at least in part on the social graph information.
- FIG. 5 illustrates a method for generating a web page using social graph information in an embodiment.
- first social graph information is received from a first service provider.
- second social graph information is received from a second service provider.
- the position for a first content object is selected based at least in part on the first and second social graph information.
- a web page is generated that includes the first content object, as well as other objects.
- Link alias providers such as link alias provider 180 provide shortened versions of URLs, which make the content associated with the URL easier to share. Many URLs are very long, causing users to wonder if they successfully pasted the entire URL into a form or an email when they attempt to share the URL. A 200 character URL may be shortened to a URL having only several characters, removing this fear. Examples of these link alias providers include bit.ly and tinyURL. In an embodiment, social signals may include the creation of link aliases.
- FIG. 1C illustrates a block diagram of an environment in which an embodiment may be implemented.
- Content optimization engine 120 may make a request 179 to link alias provider 180 for a distribution metric associated with content objects provided by content provider 130 .
- the distribution metric is a measure of popularity associated with a URL. This is determined by the link alias provider or any server with access to distribution data associated with links.
- the distribution metric is based on records kept by the link alias provider on how many times the shortened version of the URL was requested and translated into the long version of the URL in response to users clicking on the shortened link.
- the distribution metric may also be based on any other statistic derived from data collected from the link alias provider.
- the distribution metric may be discounted for duplicate information.
- Each selection is a social signal that may be used to generate the distribution metric.
- the distribution metric may be used in conjunction with social graph information to aggregate content and/or rank content in an embodiment.
- a user may wish to limit content suggestions based on social signals to content associated with social signals from particular social network service providers.
- the techniques described herein are implemented by one or more special-purpose computing devices.
- the special-purpose computing devices may be hard-wired to perform the techniques, or may include digital electronic devices such as one or more application-specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs) that are persistently programmed to perform the techniques, or may include one or more general purpose hardware processors programmed to perform the techniques pursuant to program instructions in firmware, memory, other storage, or a combination.
- ASICs application-specific integrated circuits
- FPGAs field programmable gate arrays
- Such special-purpose computing devices may also combine custom hard-wired logic, ASICs, or FPGAs with custom programming to accomplish the techniques.
- the special-purpose computing devices may be desktop computer systems, portable computer systems, handheld devices, networking devices or any other device that incorporates hard-wired and/or program logic to implement the techniques.
- FIG. 6 is a block diagram that illustrates a computer system 600 upon which an embodiment of the invention may be implemented.
- Computer system 600 includes a bus 602 or other communication mechanism for communicating information, and a hardware processor 604 coupled with bus 602 for processing information.
- Hardware processor 604 may be, for example, a general purpose microprocessor.
- Computer system 600 also includes a main memory 606 , such as a random access memory (RAM) or other dynamic storage device, coupled to bus 602 for storing information and instructions to be executed by processor 604 .
- Main memory 606 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 604 .
- Such instructions when stored in storage media accessible to processor 604 , render computer system 600 into a special-purpose machine that is customized to perform the operations specified in the instructions.
- Computer system 600 further includes a read only memory (ROM) 608 or other static storage device coupled to bus 602 for storing static information and instructions for processor 604 .
- ROM read only memory
- a storage device 610 such as a magnetic disk or optical disk, is provided and coupled to bus 602 for storing information and instructions.
- Computer system 600 may be coupled via bus 602 to a display 612 , such as a cathode ray tube (CRT), for displaying information to a computer user.
- a display 612 such as a cathode ray tube (CRT)
- An input device 614 is coupled to bus 602 for communicating information and command selections to processor 604 .
- cursor control 616 is Another type of user input device
- cursor control 616 such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 604 and for controlling cursor movement on display 612 .
- This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.
- Computer system 600 may implement the techniques described herein using customized hard-wired logic, one or more ASICs or FPGAs, firmware and/or program logic which in combination with the computer system causes or programs computer system 600 to be a special-purpose machine. According to one embodiment, the techniques herein are performed by computer system 600 in response to processor 604 executing one or more sequences of one or more instructions contained in main memory 606 . Such instructions may be read into main memory 606 from another storage medium, such as storage device 610 . Execution of the sequences of instructions contained in main memory 606 causes processor 604 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.
- Non-volatile media includes, for example, optical or magnetic disks, such as storage device 610 .
- Volatile media includes dynamic memory, such as main memory 606 .
- Common forms of storage media include, for example, a floppy disk, a flexible disk, hard disk, solid state drive, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip or cartridge.
- Storage media is distinct from but may be used in conjunction with transmission media.
- Transmission media participates in transferring information between storage media.
- transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 602 .
- transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications.
- Various forms of media may be involved in carrying one or more sequences of one or more instructions to processor 604 for execution.
- the instructions may initially be carried on a magnetic disk or solid state drive of a remote computer.
- the remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem.
- a modem local to computer system 600 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal.
- An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 602 .
- Bus 602 carries the data to main memory 606 , from which processor 604 retrieves and executes the instructions.
- the instructions received by main memory 606 may optionally be stored on storage device 610 either before or after execution by processor 604 .
- Computer system 600 also includes a communication interface 618 coupled to bus 602 .
- Communication interface 618 provides a two-way data communication coupling to a network link 620 that is connected to a local network 622 .
- communication interface 618 may be an integrated services digital network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line.
- ISDN integrated services digital network
- communication interface 618 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN.
- LAN local area network
- Wireless links may also be implemented.
- communication interface 618 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
- Network link 620 typically provides data communication through one or more networks to other data devices.
- network link 620 may provide a connection through local network 622 to a host computer 624 or to data equipment operated by an Internet Service Provider (ISP) 626 .
- ISP 626 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the “Internet” 628 .
- Internet 628 uses electrical, electromagnetic or optical signals that carry digital data streams.
- the signals through the various networks and the signals on network link 620 and through communication interface 618 which carry the digital data to and from computer system 600 , are example forms of transmission media.
- Computer system 600 can send messages and receive data, including program code, through the network(s), network link 620 and communication interface 618 .
- a server 630 might transmit a requested code for an application program through Internet 628 , ISP 626 , local network 622 and communication interface 618 .
- the received code may be executed by processor 604 as it is received, and/or stored in storage device 610 , or other non-volatile storage for later execution.
Abstract
A method for recommending content via social signals is provided. Two different content sets having content objects that have content-identifying information are received from separate content providers. Social graph information is received from a service provider. A portion of the first content set and a portion of the second content set are aggregated based at least in part on the social graph information, thereby generating a third content set.
Description
- This application claims the benefit as a Continuation of application Ser. No. 12/861,936, filed Aug. 24, 2010, the entire contents of which is hereby incorporated by reference as if fully set forth herein, under 35 U.S.C. §120. The applicant hereby rescinds any disclaimer of claim scope in the parent application or the prosecution history thereof and advises the USPTO that the claims in this application may be broader than any claim in the parent application.
- The present invention relates to content recommendation systems.
- The amount of content available on the Internet is growing at a staggering rate. News stories, multimedia presentations, blog entries, music, user generated content, and other forms of information are generated by a large number of sources, and there is no sign that this trend is slowing. Web sites and other publishing tools have made it trivial for authors to place content on the Internet for all to see, even if these authors do not consider themselves “tech-savvy.” At the same time, traditional news sources such as newspapers and magazines are generating more content than ever before and posting it to web sites in order to capture a larger market.
- Many web sites, such as the “My Yahoo!®,” page by Yahoo! Inc., allow users to view original content from the web site provider, as well as content from a variety of partners and other third-party sources. By using content feeds such as RSS (Really Simple Syndication) feeds, Atom feeds, and other content distribution technologies, users are able to select content sources and customize their home page so that it reflects their interests. For example, one user may place the “Oddly Enough News” feed by Thompson Reuters on their home page alongside other news feeds, video feeds, blog feeds, and other content. Another user may choose an entirely different set of content sources to follow. News feed aggregators and other content selection technologies also allow similar functionality, with varying degrees of control, features, and presentation options.
- Even though a “human filter” is constructively applied to the available content through the content selection process, it is common for users to profess interest in a much larger amount of information than they are capable of digesting. For example, users may subscribe to scores of news feeds and other groups of content, but may only have the time or desire to read, watch, or otherwise consume a small percentage of that content.
- A certain amount of the content delivered to users is of little or no interest or value to the user, even if the user has time to digest the content. This is true even of content delivered via content sources selected by the user. For example, a user that has selected a content feed named “Politics” may only be interested in one or two of the stories presented via that feed. The lack of interest may, among other reasons, be due to a feed selection mismatch, or may be a symptom of a quality problem with the feed logic that selects content for that feed.
- Since only a small amount of content delivered by each content source is consumed by users, it is common for users to select multiple feeds that are similar to one another. For example, a user may select several content feeds from publishers of national news or aggregators of political news. Although this technique may increase the number of content items, e.g., news stories, articles, and other media, it may also increase clutter, making it difficult for users to select relevant content without being overloaded by irrelevant content.
- The relevancy of the content may vary from content provider to content provider. One content provider may take pride in matching the description of the feed with the contents provided via the feed, and may use advanced methods to ensure maximum relevancy to the broadest consumer base. However, relevancy may also vary from user to user. In other words, content that is interesting to one user may be uninteresting to another based on mood, time of day, level of education, or many other “human” factors.
- Facebook®, a social networking web site, has circumvented the content aggregation model described above by allowing users who are friends with one another, i.e., connected via the web site, to recommend content to each other. Users post links to news articles, videos, and other content items that are accessible via the Internet, sometimes along with introductory comments meant to introduce the content to friends. Comments may be attached to postings by other users of the web site, such as friends of the user. In addition, friends of the posting user may signal their approval of content by pressing a “thumbs up” button. This content, however, is found in a sea of personal postings and micro blog updates by friends, and users are unable to specify content categories that they are interested in.
- CNN® uses information gathered from Facebook® to list stories that are popular on the social networking site. For example, a large number of users may post links to CNN® stories, and CNN® provides a list of the most popular stories to users of the CNN® web site. In addition, Facebook® provides “social plug-ins” that allow users of web sites such as the CNN® web site, to view a list of content items from the same web site that are recommended by the user's friends on Facebook®. However, the user must be currently visiting the CNN® web site, and will only see CNN® web site stories that are linked to or recommended by friends.
- The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
- The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
-
FIG. 1A illustrates a block diagram of an environment in which an embodiment may be implemented. -
FIG. 1B illustrates a block diagram of an environment in which an embodiment may be implemented. -
FIG. 1C illustrates a block diagram of an environment in which an embodiment may be implemented. -
FIG. 2 illustrates a logical diagram representing a social graph and social graph elements in an embodiment. -
FIG. 3 illustrates sample output generated in an embodiment. -
FIG. 4 illustrates a method for aggregating content in an embodiment. -
FIG. 5 illustrates a method for generating a web page using social graph information in an embodiment. -
FIG. 6 illustrates a computer system upon which an embodiment may be implemented. - In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention.
- Users of the Internet often “register,” or create “accounts” with a variety of web sites by generating unique identifiers such as user names. By registering with a web site, a user becomes uniquely identifiable to the web site, allowing the user to create, request and receive personalized content. Users often must log in to each web site in order to view this personalized content.
- According to one embodiment, a user may log in to a personalized home page, which is configured to deliver personalized news feeds and other content to the user. Multiple content feeds such as RSS feeds, each coming from a different content provider, are requested by the home page provider. These content feeds may have been chosen by the user when configuring the personalized home page. For example, a first news feed may be retrieved from CNN®, and a second news feed may be retrieved from Fox News®. Each of the news feeds includes a list of content objects that identify news articles. The content objects may include, for example, a title for the news article and a link to that news article. A small portion of the article, such as the first three lines of text, may also be included in the content object.
- In an embodiment, the user is also a member of a social networking website, where the user is connected to other users. These other users are often referred to as “friends” or “connections” of the user. Friends of the user may have already viewed some of the news articles and provided feedback on them. For example, one friend may have posted a link to one of the articles on the social networking website. Another friend may have provided a rating for the article, giving it four out of five stars. These actions, and other actions associated with content are called “social signals.” Evidence of social signals may be stored by social networking providers.
- The user's social graph information, i.e., information associated with the user's social network, may be requested by the user's home page provider. In an embodiment, the social graph information includes information about social signals generated by the user's friends. The social graph information is then used to determine which content may be more relevant to the user. For example, content that has been recommended or commented on by the user's friends or connections may be deemed to be more relevant to the user. A single news feed is created, based on social graph information such as social signals, from content objects in the CNN and Fox News feeds in an embodiment. Thus, news articles may be placed in order of relevance based on social signals and other social graph information, even if the content comes from multiple sources.
- Although embodiments are described in the context of news feeds and social networking websites, embodiments may be applied to other types of content and content delivery mechanisms as well as different types of websites that allow users to create associations with other users.
-
FIG. 1A illustrates a block diagram of an environment in which an embodiment may be implemented.Content optimization engine 120 is communicatively coupled toclient 110, and receive requests fromclient 110. For example,client 110 may send requests such asrequest 176 tocontent optimization engine 120.Request 176 may be a request for content, such ascontent 154 which is sent fromcontent optimization engine 120 toclient 110. - In an embodiment,
content optimization engine 120 may also be communicatively coupled, via a network such as the Internet, to content providers such ascontent providers 130 and 132.Content optimization engine 120 sends requests such asrequests content optimization engine 120 may request a content feed that contains content objects made up of metadata associated with content on the Internet. Metadata may include a URL (Uniform Resource Locator) that identifies the location of the content on the Internet, a title for the content, an image or URL identifying the location of an image associated with the content, and other data about or associated with the content. - As shown in
FIG. 1C , one or more link alias providers such aslink alias provider 180 are communicatively coupled tocontent optimization engine 120 via a network. Requests such asrequest 179 may be sent fromcontent optimization engine 120 to a link alias provider. These requests are for information associated with a particular content object or URL, such as a distribution metric that indicates the popularity of the object or URL. The link alias provider may determine the distribution metric, such asdistribution metric 190, based on the number of requests made for a URL alias associated with the object or URL. -
Content optimization engine 120 is also communicatively coupled, via a network, to a social network service provider such as socialnetwork service provider 140 in an embodiment.Content optimization engine 120 sends requests such asrequest 174 to a social network service provider. In an embodiment, many social network service providers may be the subject of such requests. Social network service providers send social graph information such associal graph information 160 and associated information and social graph elements to thecontent optimization engine 120. -
FIG. 2 illustrates a logical diagram representing a social graph and social graph elements in an embodiment. Social graphs may be combined with one another to create larger social graphs, as long as a logical common node exists. For example, user 210 is a node in three separate social graphs:social graph 220,social graph 230, and social graph, 240. These social graphs may be generated by different social network sites, such as Yahoo!® PULSE, Facebook®, or Twitter®. For example, user 210 may be a user of all three of these social networking web sites, which may each use an open authorization mechanism such as OAuth (Open Authorization) to allow secure API authorization from desktop and web applications.Friends 222 and 224-238 have a direct relationship with user 210, and so do authors 242-246. Friend-of-friend 223 is connected to user 210 viafriend 222. - Connections, such as friends, authors, and others, may be grouped together into a connection group such as
connection group 280. In an embodiment, each group may be associated with one or more importance metrics that indicate a weight that should be given to recommendations provided by members of the group. Examples of group metrics are group metrics 270-272, which are associated withfriend 222, friend-of-friend 223, andauthor 242, respectively.Friend 222, friend-of-friend 223, andauthor 242 also have an associated individual weight metric such as weight metrics 250-252 and group identifiers such as group identifiers 260-262 in an embodiment. Other metrics and additional instances of the same types of metrics discussed may be associated with friends, authors, and other connections in an embodiment. -
Content optimization engine 120 includes one or more input/output interfaces, such as input/output interface 121. The input/output interface may be configured to receive requests, such asrequest 176 from client computing devices such asclient 110. The input/output interface may be connected to inputlogic 126, which is configured to manage throughput of information in an embodiment. For example,input logic 126 may create a buffer instorage 128, which may include one or more volatile or non-volatile memory devices. All devices incontent optimization engine 120 are capable of being communicatively coupled to one another via a BUS, such as BUS 602 (not shown inFIG. 1A ).Content optimization engine 120 includes one or more processors such asprocessor 122, which is coupled toaggregation logic 123.Aggregation logic 123 is configured to perform aggregation of content objects based on personalization information generated frompersonalization logic 125, social signal information generated bysocial signal logic 129, and ranking information received from rankinglogic 124. Personalization information may be based in part on filters generated by a user of the system and stored instorage 128. Social signal information may be derived from social graphs and weighting metrics associated with social graph information received from social network service providers. Ranking information may be based on traditional ranking methods and metrics associated with the content providers that provide the content objects, such as content provider 130. When aggregated content is generated byaggregation logic 123, the aggregated content may be delivered as output via input/output interface 121 to a client, such asclient 110 in the form of a content set, such ascontent set 154. - Social networking web sites, such as Yahoo!® PULSE, Facebook®, and Twitter® allow users to interact with one another. These sites typically allow users to display pictures, comments, notes, status updates, songs, videos, and more. Content on social networking sites may be generated by end-users that utilize the online service in order to share the content and connect with others.
- Users of social networking web sites may perform many actions that are directly or indirectly associated with content. These actions may be associated with content that is generated by the users of the web site as well as content that is created by content providers and other interactive web sites. Many such web sites, such as the CNN® home page, provide interactive tools that allow users to post comments about, like, or otherwise generate events associated with the content on social networking web sites. For example, a user may be reading a news story that touts environmental responsibility and sustainability. The user may enjoy the article and wish to share it with his friends, so he clicks on a Facebook® logo provided by the CNN® web site, enters a comment, and with a single click of the mouse button, posts a link to the story, an associated picture, the title of the story, and his comment to his Facebook® wall. If he does not want to take the time to post a comment, he may simply click a “thumbs up” button on the news article page to indicate that he likes the article.
- Social signals may be defined as any action or evidence of action taken by a user. Often, the users are part of a social graph, and the action taken is associated with content on the Internet. These actions are key indicators of interest. For example, when a user clicks a “thumbs up” button on a web video to indicate that he likes the web video, the action is the clicking of the “thumbs up” button, and evidence of the action may be stored in a database or other storage in the form of a time stamp and an identifier associated with a particular action and an object. Evidence may be stored using other identifiers or without time stamps in other embodiments. The interest shown by the user is presumably positive, since he clicked a “thumbs up” button.
- Other social signals are less clear about the opinion of the user, but more clearly indicate a level of interest. For example, when a user posts a link to a news article along with a comment to his social networking page for his friends to see, his posting of a comment about the content he is linking to indicates a certain level of interest. Furthermore, the length or content of the comment posted by the user may indicate further interest. For example, if the user's comment has many exclamation marks at the end, it may be assumed that the user wants all of his friends to read the article, or at least his comments on it. In addition, if a user places key words in the comment, such as “world cup,” the content of the comments posted in association with the article may also be used to match content for friends of the user. In other words, friends of that user may perform a search for “world cup” via Yahoo!® Search and the content posted by the user on Facebook® will be considered more relevant based on the friendship and the matching comment.
- A non-exclusive list of social signals include: generating a content object or content, recommending a content object or content, flagging a content object or content, reviewing a content object or content, viewing a content object or content, posting a link to a content object or content, and posting content that is related to a content object. Any action a user takes may be considered a social signal.
- Generating a content object may include posting a link to content that can be found elsewhere on the Internet, such as a news story, not written by the user, that is on a web site that is not the web site to which the content object is being posted. Generating content may include actually creating the content that is to be consumed. For example, a user may create a video and upload it to a video-sharing web site. Or, a user may provide a comment on a news article published by CNN® using his Facebook® login that is associated with his CNN® login. This may result in the creation of a content object in Facebook®.
- Recommending a content object or content may include any means of providing an indication to other users that those users should read, view, or otherwise consume the content being recommended. For example, a user may provide a “star rating” for a web video, giving the video a rating of four out of five possible stars, indicating that the content is good, but not excellent. Flagging may also be one way of recommending content. For example, a user may be viewing a news article on a web site, and may press a “thumbs up” button to indicate that he likes the content. Flagging may also be used to indicate that the user dislikes content, feels that the content is inappropriate for certain users, or otherwise mark the content with some designation.
- Reviewing a content object or content may include actually writing a review associated with content. For example, an online book retailer may post a web page that is dedicated to the sale of and information about a particular book. Either the book or the web page about the book could be considered content. A user may write a detailed book review about the book, and even provide a rating for the book. The book review, when posted, will likely be associated with a user profile attached to the online book retailer.
- Viewing a content object or content may include clicking on a link that is posted on a social networking site by another, or simply visiting a web site. There are many ways to track the viewing of content. For example, when a link is posted to a social networking web site, it is common for the social networking web site to alter the link to point to a redirect script on the social networking web site, which will redirect the request to the originally intended location. This enables the social networking web site to determine which links users are clicking on within their web site, and log the user action.
- Posting a link to a content object or content may include actually typing a link into a form provided by the social networking web site or simply pressing a button provided by a content provider that is designed to automatically post a link to the current page to the social network provider associated with the button. The link is usually associated with the user that posts the link.
- Posting content that is related to a content object may include adding comments, pictures, or metadata associated with posted content objects. For example, a user may wish to post a video on his Facebook® wall. If the video is hosted by a video hosting service, the posting may include information required to locate the video, such as a URL, along with an image used to entice viewers into viewing the video and a title and description of the video. Most, if not all, of this information is determined by the author of the video, and not necessarily the user posting the content object (although the author and the poster may be the same person). The user posting the content object may wish to provide, in the posting, more information than the content object includes. For example, the user may wish to explain to his friends why he is posting the video by adding additional comments to the posting. In addition, the user may include information that indicates whether or not he actually likes the video. This information may include a star-rating or a like/dislike indicator as described above.
- Although several specific examples of social signals have been described above, these examples represent only a subset of social signals that may be tracked by service providers. Any social signal may be used to aggregate content or recommend content to users in an embodiment.
-
FIG. 1A illustrates a block diagram of an environment in which an embodiment may be implemented.Client 110 may make arequest 176 tocontent optimization engine 120 for a content set. Therequest 176 may comprise a search query, a request for a personalized home page, or any other request that involves the delivery of content or content objects. The content optimization engine makes requests for content to content provider 130 andcontent provider 132. For example, the user ofclient 110 may have subscribed to an RSS feed associated with each of the content providers in an embodiment. Each of the content providers provides a content set (content sets 150 and 152) tocontent optimization engine 120.Content optimization engine 120 also requestssocial graph information 160 from socialnetwork service provider 140. Socialnetwork service provider 140 sendssocial graph information 160 tocontent optimization engine 120. -
Social graph information 160 includes information associated with a user's social graph, and may or may not include a complete social graph. In an embodiment,social graph information 160 may include one or more social graphs such associal graphs -
Social graph information 160 may indicate that a particular content item is popular among the user's friends. For example, the user may be user 210 and a particular news story about plans to build a high-speed train between Los Angeles and San Jose may be popular among his friends insocial graph 220.Friend 222 may have posted a link to the story along with a comment, andfriends friend 223 may have also commented on the story, or re-posted it to his friends. All or any amount of information about these social signals may be included insocial graph information 160. - Based on the social signals associated with the news story displayed by user 210′s friends, the content object is placed into content set 154 and delivered to
client 110. Many actions may be taken based on the popularity determination. For example, if content set 154 is limited by user preferences, say, to a certain number of content objects, social signals may determine whether or not each content object “makes the cut.” Content objects with high relevancy as determined by other methods may still outrank content associated with particular social signals, but social signals may be a key part of determining placement and/or location. - Content objects associated with social signals may be displayed on the screen to users in a unified, separate section that is distinct from other content objects not associated with social signals, even if the content objects come from different content feeds. For example, content objects A, B, C, D, and E may be content objects delivered by content provider 130, and content objects V, W, X, Y, and Z may be content objects delivered by
content provider 132. If content objects A, C, D, X, and Y are in any way associated with a social signal, then these content objects may be displayed together on a portion of the display provided to the user 210. This portion of the display may even be designated as “socially selected articles.” -
FIG. 3 illustrates sample output generated in an embodiment. Content set 300 includes several content objects in a “top stories” category.Content object 302 includes anoptional relevancy indicator 304 that is based on several social signals. A picture or avatar of “fredwilson” (the user name for Fred Wilson) is displayed, along with an announcement that “fredwilson +16 others liked this.” Information associated with Fred Wilson may be displayed because he is an “important” user within the requesting user's social graph. For example, Fred Wilson may be a friend, friend-of-friend, or N-degrees of separation away from the user in a social graph. The 16 other users described by the relevancy indicator may be other users of the social networks that theuser 220 is connected to. These users may or may not have a meaningful association withuser 220. More than one “important” user may be displayed in an embodiment. In another embodiment, no information related to social networks is displayed, but any information collected about users of social networks may still used for determining the placement of content objects. -
FIG. 1B illustrates a block diagram of an environment in which an embodiment may be implemented. Specifically,FIG. 1B includes additional social network service provider 142 and additional socialnetwork service provider 144. Content optimization engine may also make requests (177 and 178) to these additional social network service providers for social graph information (162 and 164). The additional social graph information may be used to determine whether or not a content object is included incontent set 154. For example, ifsocial graph information 160 identifies that a first user “likes” a particular content object, butsocial graph information 162 andsocial graph information 164 may identify several users that “dislike” the same content object.Social graph information 162 andsocial graph information 164 may outweighsocial graph information 160, causing the content object to not be included incontent set 154. - Social graph information, such as
social graph information 160, may also be used to rank content. In an embodiment, metrics may be assigned to friends, authors, and other nodes of a social graph, and these metrics may be inherited by content objects associated with social signals that are associated with those nodes. - For example,
friend 222 may post a link to a news story via a social network service provider web site. The act of posting is recorded as a social signal by the socialnetwork service provider 140, and delivered associal graph information 160 tocontent optimization engine 120. Information associated withfriend 222 may also be included insocial graph information 160. For example, the association betweenfriend 222 and the social signal is provided to content optimization engine associal graph information 160 in an embodiment.Weight metric 251 may also be included as social graph information. -
Weight metric 251 represents a measurement of credibility that should be applied to social signals associated withfriend 222 in an embodiment. For example,friend 222 may have a weight metric of +5, whilefriend 224 may have a weight metric of +2. Other friends may have negative weight metrics. A weight metric may even be set to NULL, where the metric has no effect. Friend-of-friend 223 may have aweight metric 250 of +4, but the metric may be reduced by content optimizer based on the social graph distance fromuser 220. In other words, the effective weight metric of friend offriend 223 may be effectively reduced to +2 by virtue of the fact that the node is two-degrees away fromuser 220. A separation metric may describe this relationship, and may be used in conjunction with other metrics for ranking and aggregation purposes. - Many types of metrics may be used, and metric values need not be limited to those described herein. For example, a group metric may be assigned to a group of friends.
Group 280, for example, includes three friends (friends Group 280 may have a group identifier that is passed tocontent optimization engine 220 associal graph information 160.Friend 234 may be associated with a group identifier as well as a group metric. This metric represents a measurement of credibility that should be applied to social signals associated with the group. - Conflicts between group metrics and weight metrics associated with the same friend may be resolved in many ways. For example, a user may be in a low-value group labeled “people not to chat with” because he tends to engage in chat sessions that last for unusually long periods of time. The group may have a -5 group metric value. However, the same user may have a weight metric of +10. User preferences may define the effective weight as a sum of the two values (5). In another embodiment, each metric may be given a weight, to resolve the dispute in favor of the metric considered more accurate. For example, a sum of the weight metric and 50% of the group metric may be used, for a result of 7.5 using the example above. In another embodiment, one of the metric types may be ignored. This is especially useful if one metric type is considered more accurate than others.
- Metrics may be assigned to friends and groups by the
user 220. In an embodiment, metrics may also be assigned by other users of the socialnetwork service provider 140. For example,friend 224 may be very popular among users in the social network service provider, which provides a user rating system. Other users may perform social signals that elevatefriend 224 to a high ranking, thereby givingfriend 224 additional credibility that is used for aggregating and ranking content foruser 220. - Metrics may also be assigned to social networking service providers. For example, a user may deem social signals associated with Facebook® friends to be more credible than social signals associated with My Space® friends based on the nature of the real-world relationships mimicked on these sites. Authors that the user follows on Twitter® may be given even more clout in the form of a metric because the user actually chooses to follow what the author micro-blogs about. This is a more active show of interest in opinion, as opposed to an indication that the user wants to “keep up” with the friend, as with Facebook®.
- It could be assumed that users are less interested in articles for which they post no comments than for articles for which they post comments. On the other hand, if a user always posts comments on links he provides, then his commenting may be given no weight. Therefore, quality metrics may be assigned to particular types of social signals, as well as instances of particular social signals. In addition, if a particular posting includes comments with key words that match key words in a content object in one of the content sets sent to content optimization engine by a content provider, then the match may increase a relevancy metric. For example, if a first user and a second user are friends, and the first user performs a search for a digital camera which the second user has written a review about, then the content object associated with the review written by the friend would benefit from increased relevancy.
- Metrics may be used to select content objects to include in a content set displayed to a user. For example, several content providers such as
content provider 130 and 140 may provide various content sets tocontent optimization engine 120. These content sets may include content objects. For example, content objects A, B, C, D, and E may be content objects delivered by content provider 130, and content objects V, W, X, Y, and Z may be content objects delivered bycontent provider 132. If content objects A, B, D, X, and Z are associated with metrics that meet a particular threshold (which may be user-configured, pre-defined, or determined in a different way) then these content objects may be included incontent set 154. Aggregation of multiple content sets into a different content set is performed based on social signals, and, more specifically, may be based on metrics associated with a social graph. Metrics may be considered social signals. Metrics may also be used to rank content objects. For example, content objects with high metric values may be ranked higher than content objects having lower metric values. -
FIG. 4 illustrates a method for aggregating content in an embodiment. Atstep 410, a first content set from a first content provider is received. Atstep 420, a second content set is received from a second content provider. For example, the first content provider may be a news service and the second content provider may be a web video site. The first content set may be provided in response to a request being made by a computing device to a URL that identifies an RSS feed. The second content set may be provided in response to a request being made to a URL that identifies an Atom feed. Atstep 430, social graph information is received from a service provider. For example, social graph information may be received from Facebook®. Atstep 440, a portion of the first content set and a portion of the second content set are aggregated based at least in part on the social graph information. -
FIG. 5 illustrates a method for generating a web page using social graph information in an embodiment. Atstep 510, first social graph information is received from a first service provider. Atstep 520, second social graph information is received from a second service provider. Atstep 530, the position for a first content object is selected based at least in part on the first and second social graph information. Atstep 540, a web page is generated that includes the first content object, as well as other objects. - Link alias providers such as
link alias provider 180 provide shortened versions of URLs, which make the content associated with the URL easier to share. Many URLs are very long, causing users to wonder if they successfully pasted the entire URL into a form or an email when they attempt to share the URL. A 200 character URL may be shortened to a URL having only several characters, removing this fear. Examples of these link alias providers include bit.ly and tinyURL. In an embodiment, social signals may include the creation of link aliases. -
FIG. 1C illustrates a block diagram of an environment in which an embodiment may be implemented.Content optimization engine 120 may make arequest 179 to linkalias provider 180 for a distribution metric associated with content objects provided by content provider 130. The distribution metric is a measure of popularity associated with a URL. This is determined by the link alias provider or any server with access to distribution data associated with links. The distribution metric is based on records kept by the link alias provider on how many times the shortened version of the URL was requested and translated into the long version of the URL in response to users clicking on the shortened link. The distribution metric may also be based on any other statistic derived from data collected from the link alias provider. For example, if the same user (based on IP address or other information) clicks on the same link over and over, then the distribution metric may be discounted for duplicate information. Each selection is a social signal that may be used to generate the distribution metric. The distribution metric may be used in conjunction with social graph information to aggregate content and/or rank content in an embodiment. - Many configurable user options may be provided to users to allow them to tune the amount and quality of content subjected to the methods described herein. For example, a user may wish to limit content suggestions based on social signals to content associated with social signals from particular social network service providers.
- According to one embodiment, the techniques described herein are implemented by one or more special-purpose computing devices. The special-purpose computing devices may be hard-wired to perform the techniques, or may include digital electronic devices such as one or more application-specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs) that are persistently programmed to perform the techniques, or may include one or more general purpose hardware processors programmed to perform the techniques pursuant to program instructions in firmware, memory, other storage, or a combination. Such special-purpose computing devices may also combine custom hard-wired logic, ASICs, or FPGAs with custom programming to accomplish the techniques. The special-purpose computing devices may be desktop computer systems, portable computer systems, handheld devices, networking devices or any other device that incorporates hard-wired and/or program logic to implement the techniques.
- For example,
FIG. 6 is a block diagram that illustrates acomputer system 600 upon which an embodiment of the invention may be implemented.Computer system 600 includes abus 602 or other communication mechanism for communicating information, and ahardware processor 604 coupled withbus 602 for processing information.Hardware processor 604 may be, for example, a general purpose microprocessor. -
Computer system 600 also includes amain memory 606, such as a random access memory (RAM) or other dynamic storage device, coupled tobus 602 for storing information and instructions to be executed byprocessor 604.Main memory 606 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed byprocessor 604. Such instructions, when stored in storage media accessible toprocessor 604, rendercomputer system 600 into a special-purpose machine that is customized to perform the operations specified in the instructions. -
Computer system 600 further includes a read only memory (ROM) 608 or other static storage device coupled tobus 602 for storing static information and instructions forprocessor 604. Astorage device 610, such as a magnetic disk or optical disk, is provided and coupled tobus 602 for storing information and instructions. -
Computer system 600 may be coupled viabus 602 to adisplay 612, such as a cathode ray tube (CRT), for displaying information to a computer user. Aninput device 614, including alphanumeric and other keys, is coupled tobus 602 for communicating information and command selections toprocessor 604. Another type of user input device iscursor control 616, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections toprocessor 604 and for controlling cursor movement ondisplay 612. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane. -
Computer system 600 may implement the techniques described herein using customized hard-wired logic, one or more ASICs or FPGAs, firmware and/or program logic which in combination with the computer system causes orprograms computer system 600 to be a special-purpose machine. According to one embodiment, the techniques herein are performed bycomputer system 600 in response toprocessor 604 executing one or more sequences of one or more instructions contained inmain memory 606. Such instructions may be read intomain memory 606 from another storage medium, such asstorage device 610. Execution of the sequences of instructions contained inmain memory 606 causesprocessor 604 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions. - The term “storage media” as used herein refers to any media that store data and/or instructions that cause a machine to operation in a specific fashion. Such storage media may comprise non-volatile media and/or volatile media. Non-volatile media includes, for example, optical or magnetic disks, such as
storage device 610. Volatile media includes dynamic memory, such asmain memory 606. Common forms of storage media include, for example, a floppy disk, a flexible disk, hard disk, solid state drive, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip or cartridge. - Storage media is distinct from but may be used in conjunction with transmission media. Transmission media participates in transferring information between storage media. For example, transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise
bus 602. Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications. - Various forms of media may be involved in carrying one or more sequences of one or more instructions to
processor 604 for execution. For example, the instructions may initially be carried on a magnetic disk or solid state drive of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local tocomputer system 600 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal. An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data onbus 602.Bus 602 carries the data tomain memory 606, from whichprocessor 604 retrieves and executes the instructions. The instructions received bymain memory 606 may optionally be stored onstorage device 610 either before or after execution byprocessor 604. -
Computer system 600 also includes acommunication interface 618 coupled tobus 602.Communication interface 618 provides a two-way data communication coupling to anetwork link 620 that is connected to alocal network 622. For example,communication interface 618 may be an integrated services digital network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line. As another example,communication interface 618 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation,communication interface 618 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information. - Network link 620 typically provides data communication through one or more networks to other data devices. For example,
network link 620 may provide a connection throughlocal network 622 to ahost computer 624 or to data equipment operated by an Internet Service Provider (ISP) 626.ISP 626 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the “Internet” 628.Local network 622 andInternet 628 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals onnetwork link 620 and throughcommunication interface 618, which carry the digital data to and fromcomputer system 600, are example forms of transmission media. -
Computer system 600 can send messages and receive data, including program code, through the network(s),network link 620 andcommunication interface 618. In the Internet example, aserver 630 might transmit a requested code for an application program throughInternet 628,ISP 626,local network 622 andcommunication interface 618. - The received code may be executed by
processor 604 as it is received, and/or stored instorage device 610, or other non-volatile storage for later execution. - In the foregoing specification, embodiments of the invention have been described with reference to numerous specific details that may vary from implementation to implementation. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
Claims (20)
1. A method comprising:
receiving, at a system that comprises one or more processors, information about a plurality of content items;
wherein the plurality of content items include content items available from a plurality of distinct content providers;
receiving, at the system, social graph information from a first social network service provider;
wherein the social graph information includes information about a social graph of a particular user;
based, at least in part, on which content items, of the plurality of content items, match social signals in the social graph of the particular user, the system selecting a particular set of content items from the plurality of content items; and
sending, from the system to a client computing device that is associated with the particular user, data that is based on the particular set of content items;
wherein the method is performed by one or more computing devices.
2. The method of claim 1 wherein sending data that is based on the particular set of content items includes sending search results, based on the particular set of content items, for a search query submitted by the particular user.
3. The method of claim 1 wherein sending data that is based on the particular set of content items includes sending a personalized page that is based on the particular set of content items.
4. The method of claim 1 wherein:
social signals in the social graph of the particular user indicate that a particular content item is popular among friends of the particular user, and
the particular content item is selected for inclusion in the particular set of content items.
5. The method of claim 4 wherein the social signals indicate at least one of:
a friend of the particular user posted a link to the particular content item;
a friend of the particular user commented on the particular content item; or
a friend of the particular user liked the particular content item.
6. The method of claim 4 wherein the social signals indicate that a friend of a friend of the particular user took a particular action relative to the particular content item.
7. The method of claim 1 wherein the system selects the particular set of content items from the plurality of content items based, at least in part, on which content items, of the plurality of content items, match social signals in social graphs obtained from a plurality of distinct social network service providers.
8. The method of claim 1 wherein:
the method further comprises, before the step of receiving social graph information from the first social network service provider:
the system sending, to the first social network service provider, metadata for the plurality of content items; and
the social graph information received by the system from the first social network service provider has been filtered by the first social network service provider based on the metadata.
9. The method of claim 1 further comprising the system determining that, for first and second content items of the particular set of content items, the first content item should be presented at the client computing device at a higher ranking than the second content item based at least in part on a first social signal being associated with the first content item.
10. The method of claim 9 wherein the first social signal comprises data that indicates one or more of: (a) generating the first content item; (b) recommending the first content item; (c) flagging the first content item; (d) reviewing the first content item; (e) viewing the first content item; (f) posting a link to the first content item; and (g) posting content that is related to the first content item.
11. The method of claim 1 , wherein the plurality of content items include content items that represent news stories.
12. One or more computer-readable non-transitory storage media storing instructions which, when executed by one or more processors, causes the one or more processors to perform:
receiving, at a system the includes the one or more processors, information about a plurality of content items;
wherein the plurality of content items include content items available from a plurality of distinct content providers;
receiving, at the system, social graph information from a first social network service provider;
wherein the social graph information includes information about a social graph of a particular user;
based, at least in part, on which content items, of the plurality of content items, match social signals in the social graph of the particular user, the system selecting a particular set of content items from the plurality of content items; and
sending, from the system to a client computing device that is associated with the particular user, data that is based on the particular set of content items.
13. The one or more computer-readable non-transitory storage media of claim 12 wherein sending data that is based on the particular set of content items includes sending search results, based on the particular set of content items, for a search query submitted by the particular user.
14. The one or more computer-readable non-transitory storage media of claim 12 wherein sending data that is based on the particular set of content items includes sending a personalized page that is based on the particular set of content items.
15. The one or more computer-readable non-transitory storage media of claim 12 wherein:
social signals in the social graph of the particular user indicate that a particular content item is popular among friends of the particular user, and the particular content item is selected for inclusion in the particular set of content items.
16. The one or more computer-readable non-transitory storage media of claim 15 wherein the social signals indicate at least one of:
a friend of the particular user posted a link to the particular content item;
a friend of the particular user commented on the particular content item; or
a friend of the particular user liked the particular content item.
17. The one or more computer-readable non-transitory storage media of claim 15 wherein the social signals indicate that a friend of a friend of the particular user took a particular action relative to the particular content item.
18. The one or more computer-readable non-transitory storage media of claim 12 wherein the system selects the particular set of content items from the plurality of content items based, at least in part, on which content items, of the plurality of content items, match social signals in social graphs obtained from a plurality of distinct social network service providers.
19. The one or more computer-readable non-transitory storage media of claim 12 wherein:
the instructions further comprise instructions that cause, before the step of receiving social graph information from the first social network service provider:
the system sending, to the first social network service provider, metadata for the plurality of content items; and
the social graph information received by the system from the first social network service provider has been filtered by the first social network service provider based on the metadata.
20. A system comprising one or more processors, the system being programmed to cause the one or more processors to perform:
receiving, at the system, information about a plurality of content items;
wherein the plurality of content items include content items available from a plurality of distinct content providers;
receiving, at the system, social graph information from a first social network service provider;
wherein the social graph information includes information about a social graph of a particular user;
based, at least in part, on which content items, of the plurality of content items, match social signals in the social graph of the particular user, the system selecting a particular set of content items from the plurality of content items; and
sending, from the system to a client computing device that is associated with the particular user, data that is based on the particular set of content items.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/985,171 US20160110464A1 (en) | 2010-08-24 | 2015-12-30 | Method of recommending content via social signals |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/861,936 US9240020B2 (en) | 2010-08-24 | 2010-08-24 | Method of recommending content via social signals |
US14/985,171 US20160110464A1 (en) | 2010-08-24 | 2015-12-30 | Method of recommending content via social signals |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/861,936 Continuation US9240020B2 (en) | 2010-08-24 | 2010-08-24 | Method of recommending content via social signals |
Publications (1)
Publication Number | Publication Date |
---|---|
US20160110464A1 true US20160110464A1 (en) | 2016-04-21 |
Family
ID=45698568
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/861,936 Active 2031-03-17 US9240020B2 (en) | 2010-08-24 | 2010-08-24 | Method of recommending content via social signals |
US14/985,171 Abandoned US20160110464A1 (en) | 2010-08-24 | 2015-12-30 | Method of recommending content via social signals |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/861,936 Active 2031-03-17 US9240020B2 (en) | 2010-08-24 | 2010-08-24 | Method of recommending content via social signals |
Country Status (3)
Country | Link |
---|---|
US (2) | US9240020B2 (en) |
TW (1) | TWI477976B (en) |
WO (1) | WO2012027051A2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230073633A1 (en) * | 2012-08-07 | 2023-03-09 | Paypal, Inc. | Social sharing system |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7680882B2 (en) * | 2007-03-06 | 2010-03-16 | Friendster, Inc. | Multimedia aggregation in an online social network |
US8533202B2 (en) * | 2009-07-07 | 2013-09-10 | Yahoo! Inc. | Entropy-based mixing and personalization |
US9183270B2 (en) * | 2010-05-17 | 2015-11-10 | Wal-Mart Stores, Inc. | Social genome |
US20120131475A1 (en) * | 2010-11-19 | 2012-05-24 | International Business Machines Corporation | Social network based on video recorder parental control system |
US20120198324A1 (en) * | 2011-01-27 | 2012-08-02 | Ruchi Mahajan | Systems, Methods, and Apparatuses to Write on Web Pages |
US9110992B2 (en) * | 2011-06-03 | 2015-08-18 | Facebook, Inc. | Context-based selection of calls-to-action associated with search results |
US9289686B2 (en) | 2011-07-28 | 2016-03-22 | Zynga Inc. | Method and system for matchmaking connections within a gaming social network |
US9195771B2 (en) * | 2011-08-09 | 2015-11-24 | Christian George STRIKE | System for creating and method for providing a news feed website and application |
US8650252B2 (en) * | 2011-09-28 | 2014-02-11 | Facebook, Inc. | Instantaneous recommendation of social interactions in a social networking system |
US10552446B2 (en) * | 2012-03-01 | 2020-02-04 | Zynga Inc. | Leveraging social graphs with game play auto-neighboring |
US9710844B2 (en) * | 2012-05-02 | 2017-07-18 | Sears Brands, L.L.C. | Object driven newsfeed |
US8762472B2 (en) | 2012-08-29 | 2014-06-24 | Wetpaint.Com, Inc. | Personalization based upon social value in online media |
US8984082B2 (en) | 2012-08-29 | 2015-03-17 | Wetpaint.Com, Inc. | Personalization based upon social value in online media |
US9355425B2 (en) * | 2012-10-25 | 2016-05-31 | Google Inc. | Soft posting to social activity streams |
US10037538B2 (en) * | 2012-12-11 | 2018-07-31 | Facebook, Inc. | Selection and presentation of news stories identifying external content to social networking system users |
US9547697B2 (en) * | 2012-12-21 | 2017-01-17 | Google Inc. | Aggregating interactions for content items |
US9935910B2 (en) | 2012-12-21 | 2018-04-03 | Google Llc | Recipient location aware notifications in response to related posts |
US9787783B2 (en) * | 2013-06-10 | 2017-10-10 | Google Inc. | Providing supplemental content in relation to embedded media |
US20150066948A1 (en) * | 2013-08-27 | 2015-03-05 | Adobe Systems Incorporated | Influence Scoring for Social Media Authors |
US9705945B1 (en) * | 2014-01-13 | 2017-07-11 | Google Inc. | Decorating embedded graphic representations on social shares with metadata |
US20150371341A1 (en) * | 2014-06-20 | 2015-12-24 | Adobe Systems Incorporated | Managing social feed assignment |
US20160147753A1 (en) * | 2014-11-20 | 2016-05-26 | Facebook, Inc. | Suggesting Content for Discovery Based on User Interests and Authorship |
US20160294891A1 (en) * | 2015-03-31 | 2016-10-06 | Facebook, Inc. | Multi-user media presentation system |
WO2017088977A1 (en) * | 2015-11-25 | 2017-06-01 | Diez Canas Guillermo | System and method for content distribution and discovery over message communication technology |
US10586071B2 (en) | 2017-11-24 | 2020-03-10 | International Business Machines Corporation | Safeguarding confidential information during a screen share session |
US20230015697A1 (en) * | 2021-07-13 | 2023-01-19 | Citrix Systems, Inc. | Application programming interface (api) authorization |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110208822A1 (en) * | 2010-02-22 | 2011-08-25 | Yogesh Chunilal Rathod | Method and system for customized, contextual, dynamic and unified communication, zero click advertisement and prospective customers search engine |
US20110295722A1 (en) * | 2010-06-09 | 2011-12-01 | Reisman Richard R | Methods, Apparatus, and Systems for Enabling Feedback-Dependent Transactions |
US20120001919A1 (en) * | 2008-10-20 | 2012-01-05 | Erik Lumer | Social Graph Based Recommender |
US20120011432A1 (en) * | 2009-08-19 | 2012-01-12 | Vitrue, Inc. | Systems and methods for associating social media systems and web pages |
US20130124538A1 (en) * | 2010-04-19 | 2013-05-16 | Yofay Kari Lee | Structured Search Queries Based on Social-Graph Information |
US20130191372A1 (en) * | 2010-04-19 | 2013-07-25 | Yofay Kari Lee | Personalized Structured Search Queries for Online Social Networks |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5982369A (en) | 1997-04-21 | 1999-11-09 | Sony Corporation | Method for displaying on a screen of a computer system images representing search results |
US6745177B2 (en) | 1999-04-09 | 2004-06-01 | Metro One Telecommunications, Inc. | Method and system for retrieving data from multiple data sources using a search routing database |
US6453404B1 (en) | 1999-05-27 | 2002-09-17 | Microsoft Corporation | Distributed data cache with memory allocation model |
US6862559B1 (en) | 1999-07-23 | 2005-03-01 | Xerox Corporation | Methods and apparatuses for measuring diversity in combinatorial structures |
US8914361B2 (en) | 1999-09-22 | 2014-12-16 | Google Inc. | Methods and systems for determining a meaning of a document to match the document to content |
US6839702B1 (en) | 1999-12-15 | 2005-01-04 | Google Inc. | Systems and methods for highlighting search results |
US6636854B2 (en) | 2000-12-07 | 2003-10-21 | International Business Machines Corporation | Method and system for augmenting web-indexed search engine results with peer-to-peer search results |
US20020151327A1 (en) | 2000-12-22 | 2002-10-17 | David Levitt | Program selector and guide system and method |
US6526440B1 (en) | 2001-01-30 | 2003-02-25 | Google, Inc. | Ranking search results by reranking the results based on local inter-connectivity |
KR20030058660A (en) | 2001-12-31 | 2003-07-07 | 주식회사 케이티 | The method of Collaborative Filtering using content references of users in Personalization System |
US20040078213A1 (en) | 2002-06-19 | 2004-04-22 | Sabre Inc. | Method, system and computer program product for dynamic construction of packages and optimal assignment of generated packages to shopping categories |
US6947930B2 (en) | 2003-03-21 | 2005-09-20 | Overture Services, Inc. | Systems and methods for interactive search query refinement |
US7152065B2 (en) | 2003-05-01 | 2006-12-19 | Telcordia Technologies, Inc. | Information retrieval and text mining using distributed latent semantic indexing |
US8600963B2 (en) | 2003-08-14 | 2013-12-03 | Google Inc. | System and method for presenting multiple sets of search results for a single query |
US7664735B2 (en) | 2004-04-30 | 2010-02-16 | Microsoft Corporation | Method and system for ranking documents of a search result to improve diversity and information richness |
US7958115B2 (en) | 2004-07-29 | 2011-06-07 | Yahoo! Inc. | Search systems and methods using in-line contextual queries |
CN1609859A (en) | 2004-11-26 | 2005-04-27 | 孙斌 | Search result clustering method |
US7783631B2 (en) | 2005-03-31 | 2010-08-24 | Google Inc. | Systems and methods for managing multiple user accounts |
JP4625365B2 (en) | 2005-05-02 | 2011-02-02 | 日本放送協会 | Recommendation rank selection device and recommendation rank selection program |
US7853485B2 (en) | 2005-11-22 | 2010-12-14 | Nec Laboratories America, Inc. | Methods and systems for utilizing content, dynamic patterns, and/or relational information for data analysis |
US20070192293A1 (en) | 2006-02-13 | 2007-08-16 | Bing Swen | Method for presenting search results |
US8775930B2 (en) | 2006-07-07 | 2014-07-08 | International Business Machines Corporation | Generic frequency weighted visualization component |
US7752534B2 (en) | 2006-09-19 | 2010-07-06 | International Business Machines Corporation | Method and apparatus for customizing the display of multidimensional data |
US20080154878A1 (en) | 2006-12-20 | 2008-06-26 | Rose Daniel E | Diversifying a set of items |
US9996627B2 (en) * | 2007-03-30 | 2018-06-12 | Excalibur Ip, Llc | Point of presence distribution mechanism for digital content objects |
US8180680B2 (en) | 2007-04-16 | 2012-05-15 | Jeffrey Leventhal | Method and system for recommending a product over a computer network |
US9183305B2 (en) | 2007-06-19 | 2015-11-10 | Red Hat, Inc. | Delegated search of content in accounts linked to social overlay system |
US8401980B2 (en) * | 2009-11-10 | 2013-03-19 | Hamid Hatama-Hanza | Methods for determining context of compositions of ontological subjects and the applications thereof using value significance measures (VSMS), co-occurrences, and frequency of occurrences of the ontological subjects |
US20090157668A1 (en) | 2007-12-12 | 2009-06-18 | Christopher Daniel Newton | Method and system for measuring an impact of various categories of media owners on a corporate brand |
US9602605B2 (en) | 2007-10-26 | 2017-03-21 | Facebook, Inc. | Sharing digital content on a social network |
US7853622B1 (en) * | 2007-11-01 | 2010-12-14 | Google Inc. | Video-related recommendations using link structure |
US9706345B2 (en) * | 2008-01-04 | 2017-07-11 | Excalibur Ip, Llc | Interest mapping system |
US9224172B2 (en) | 2008-12-02 | 2015-12-29 | Yahoo! Inc. | Customizable content for distribution in social networks |
US20100146048A1 (en) | 2008-12-08 | 2010-06-10 | Russell Rothstein | Social network systems and methods |
US8533202B2 (en) | 2009-07-07 | 2013-09-10 | Yahoo! Inc. | Entropy-based mixing and personalization |
WO2011119775A1 (en) * | 2010-03-23 | 2011-09-29 | Google Inc. | Organizing social activity information on a site |
US8583725B2 (en) * | 2010-04-05 | 2013-11-12 | Microsoft Corporation | Social context for inter-media objects |
US20110320380A1 (en) * | 2010-06-23 | 2011-12-29 | Microsoft Corporation | Video content recommendations |
-
2010
- 2010-08-24 US US12/861,936 patent/US9240020B2/en active Active
-
2011
- 2011-07-26 WO PCT/US2011/045262 patent/WO2012027051A2/en active Application Filing
- 2011-08-16 TW TW100129176A patent/TWI477976B/en active
-
2015
- 2015-12-30 US US14/985,171 patent/US20160110464A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120001919A1 (en) * | 2008-10-20 | 2012-01-05 | Erik Lumer | Social Graph Based Recommender |
US20120011432A1 (en) * | 2009-08-19 | 2012-01-12 | Vitrue, Inc. | Systems and methods for associating social media systems and web pages |
US20110208822A1 (en) * | 2010-02-22 | 2011-08-25 | Yogesh Chunilal Rathod | Method and system for customized, contextual, dynamic and unified communication, zero click advertisement and prospective customers search engine |
US20130124538A1 (en) * | 2010-04-19 | 2013-05-16 | Yofay Kari Lee | Structured Search Queries Based on Social-Graph Information |
US20130191372A1 (en) * | 2010-04-19 | 2013-07-25 | Yofay Kari Lee | Personalized Structured Search Queries for Online Social Networks |
US20110295722A1 (en) * | 2010-06-09 | 2011-12-01 | Reisman Richard R | Methods, Apparatus, and Systems for Enabling Feedback-Dependent Transactions |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230073633A1 (en) * | 2012-08-07 | 2023-03-09 | Paypal, Inc. | Social sharing system |
US11706268B2 (en) * | 2012-08-07 | 2023-07-18 | Paypal, Inc. | Social sharing system |
Also Published As
Publication number | Publication date |
---|---|
US20120054275A1 (en) | 2012-03-01 |
WO2012027051A2 (en) | 2012-03-01 |
TW201229778A (en) | 2012-07-16 |
WO2012027051A3 (en) | 2012-04-19 |
US9240020B2 (en) | 2016-01-19 |
TWI477976B (en) | 2015-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9240020B2 (en) | Method of recommending content via social signals | |
US11936610B2 (en) | Privacy aligned and personalized social media content sharing recommendations | |
US11533356B2 (en) | Establishing a trust association | |
US11601510B1 (en) | Method and system for topic disambiguation and classification | |
US10305851B1 (en) | Network-based content discovery using messages of a messaging platform | |
JP5981024B2 (en) | Sharing TV and video programs via social networking | |
US9332315B2 (en) | Timestamped commentary system for video content | |
US7941535B2 (en) | System for targeting third party content to users based on social networks | |
US8468143B1 (en) | System and method for directing questions to consultants through profile matching | |
US9449050B1 (en) | Identifying relevant messages in a conversation graph | |
US20220006661A1 (en) | Access and communicate live audio streaming under micro channel or keyword(s) | |
US20090276709A1 (en) | Method and apparatus for providing dynamic playlists and tag-tuning of multimedia objects | |
US20120150971A1 (en) | Presenting notifications of content items shared by social network contacts | |
US11316940B1 (en) | Music discovery using messages of a messaging platform | |
US9633124B2 (en) | Managing access rights to content using social media | |
JP2015005308A (en) | Providing link to portion of media object in real time in social networking update | |
US10990620B2 (en) | Aiding composition of themed articles about popular and novel topics and offering users a navigable experience of associated content | |
US20180302761A1 (en) | Recommendation System for Multi-party Communication Sessions | |
US9690443B2 (en) | Computer-implemented systems and methods for facilitating a micro-blog post | |
US11086905B1 (en) | Method and system for presenting stories |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: YAHOO HOLDINGS, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:YAHOO| INC.;REEL/FRAME:042963/0211 Effective date: 20170613 |
|
AS | Assignment |
Owner name: OATH INC., NEW YORK Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:YAHOO HOLDINGS, INC.;REEL/FRAME:045240/0310 Effective date: 20171231 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |