U.S. patent application number 16/426490 was filed with the patent office on 2019-09-12 for online content delivery based on information from social networks.
The applicant listed for this patent is Facebook, Inc.. Invention is credited to Nicholas Galbreath, Jeffrey B. Winner.
Application Number | 20190279230 16/426490 |
Document ID | / |
Family ID | 35461818 |
Filed Date | 2019-09-12 |
![](/patent/app/20190279230/US20190279230A1-20190912-D00000.png)
![](/patent/app/20190279230/US20190279230A1-20190912-D00001.png)
![](/patent/app/20190279230/US20190279230A1-20190912-D00002.png)
![](/patent/app/20190279230/US20190279230A1-20190912-D00003.png)
![](/patent/app/20190279230/US20190279230A1-20190912-D00004.png)
![](/patent/app/20190279230/US20190279230A1-20190912-D00005.png)
![](/patent/app/20190279230/US20190279230A1-20190912-D00006.png)
![](/patent/app/20190279230/US20190279230A1-20190912-D00007.png)
![](/patent/app/20190279230/US20190279230A1-20190912-D00008.png)
United States Patent
Application |
20190279230 |
Kind Code |
A1 |
Winner; Jeffrey B. ; et
al. |
September 12, 2019 |
Online Content Delivery Based on Information from Social
Networks
Abstract
In one embodiment, a social-networking system identifies a first
plurality of users of the online social network, wherein the first
plurality of users each share one or more user attributes,
accesses, from a tracking database, tracking information of online
activities of the first plurality of users with respect to a
plurality of content objects, each content object having an
associated stored value, calculates, for each content object, a
first probability of interaction with the content object by the
first plurality of users based on the accessed tracking
information, calculates, for each content object, an expected value
based on the associated stored value and the first probability of
interaction, and sends, to a client device of a first user of the
first plurality of users, one or more of the content objects based
on the calculated expected values.
Inventors: |
Winner; Jeffrey B.; (Los
Altos, CA) ; Galbreath; Nicholas; (San Francisco,
CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Facebook, Inc. |
Menlo Park |
CA |
US |
|
|
Family ID: |
35461818 |
Appl. No.: |
16/426490 |
Filed: |
May 30, 2019 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
10867844 |
Jun 14, 2004 |
|
|
|
16426490 |
|
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
G06Q 30/02 20130101 |
International
Class: |
G06Q 30/02 20060101
G06Q030/02 |
Claims
1. A method comprising, by one or more computing systems of an
online social network: identifying a first plurality of users of
the online social network, wherein the first plurality of users
each share one or more user attributes; accessing, from a tracking
database, tracking information of online activities of the first
plurality of users with respect to a plurality of content objects,
each content object having an associated stored value; calculating,
for each content object, a first probability of interaction with
the content object by the first plurality of users based on the
accessed tracking information; calculating, for each content
object, an expected value based on the associated stored value and
the first probability of interaction; and sending, to a client
device of a first user of the first plurality of users, one or more
of the content objects based on the calculated expected values.
2. The method of claim 1, wherein the user attributes comprise one
or more of age, gender, location, hometown, interests, relationship
status, or income.
3. The method of claim 1, wherein the first plurality of users have
previously influenced the online activities of the first user.
4. The method of claim 1, wherein the first plurality of users are
members of a predefined custom group.
5. The method of claim 1, wherein the first plurality of users are
friends of the first user on the online social network.
6. The method of claim 1, further comprising: accessing a social
graph comprising a plurality of nodes and a plurality of edges
connecting the nodes, wherein each node corresponds to a user of
the online social network, wherein each edge between two nodes
represents a single degree of separation between the two nodes, and
wherein a degree of separation between any two nodes is a minimum
number of edges required to traverse the social graph data from one
user node to the other.
7. The method of claim 6, wherein the node corresponding to the
first user is within a threshold degree of separation of the nodes
corresponding to each other user of the first plurality of
users.
8. The method of claim 1, wherein the one or more content objects
sent to the client device of the first user comprise content
objects having expected values greater than a threshold expected
value.
9. The method of claim 8, wherein the one or more content objects
sent to the client device of the first user further comprise
content objects having expected values below a threshold expected
value and first probabilities of interaction greater than a
threshold probability of interaction.
10. The method of claim 1, further comprising: identifying a second
plurality of users of the online social network, wherein the second
plurality of users each share one or more user attributes;
accessing, from a tracking database, tracking information of online
activities of the second plurality of users with respect to the
plurality of content objects; and calculating, for each content
object, a second probability of interaction with the content object
by the second plurality of users based on the accessed tracking
information.
11. The method of claim 10, wherein calculating the expected value
for each content object is based on the associated stored value and
the greater of the first probability of interaction and the second
probability of interaction.
12. The method of claim 11, wherein the one or more content objects
sent to the client device of the first user comprise content
objects having expected values greater than a threshold value.
13. The method of claim 12, wherein the one or more content objects
sent to the client device of the first user further comprise
content objects having expected values below a threshold value and
a first probability of interaction or a second probability of
interaction greater than a threshold probability of
interaction.
14. The method of claim 1, wherein the one or more content objects
are sent to the client device of the first user in response to a
request to access a home page of the online social network
associated with the first user.
15. The method of claim 1, wherein one or more of the content
objects sent to the client device of the first user comprises a
hyperlink associated with the respective content object.
16. The method of claim 15, wherein each hyperlink associated with
the content object may be selected by the first user to access
third-party content associated with the content object on a
third-party website external to the online social network.
17. The method of claim 15, wherein the one or more content objects
sent to the client device of the first user further comprises one
or more of: an image associated with the content object; a text
associated with the content object; a content type indicator; or a
content object identifier.
18. The method of claim 1, further comprising: receiving, from the
client device of the first user, an indication of one or more
interactions with one or more of the content objects sent to the
client device of the first user; and updating the tracking
information of the first user from the tracking database based on
the interactions.
19. A system comprising: one or more processors; and a memory
coupled to the processors comprising instructions executable by the
processors, the processors operable when executing the instructions
to: identify a first plurality of users of the online social
network, wherein the first plurality of users each share one or
more user attributes; access, from a tracking database, tracking
information of online activities of the first plurality of users
with respect to a plurality of content objects, each content object
having an associated stored value; calculate, for each content
object, a first probability of interaction with the content object
by the first plurality of users based on the accessed tracking
information; calculate, for each content object, an expected value
based on the associated stored value and the first probability of
interaction; and send, to a client device of a first user of the
first plurality of users, one or more of the content objects based
on the calculated expected values.
20. One or more computer-readable non-transitory storage media
embodying software that is operable when executed to: identify a
first plurality of users of the online social network, wherein the
first plurality of users each share one or more user attributes;
access, from a tracking database, tracking information of online
activities of the first plurality of users with respect to a
plurality of content objects, each content object having an
associated stored value; calculate, for each content object, a
first probability of interaction with the content object by the
first plurality of users based on the accessed tracking
information; calculate, for each content object, an expected value
based on the associated stored value and the first probability of
interaction; and send, to a client device of a first user of the
first plurality of users, one or more of the content objects based
on the calculated expected values.
Description
PRIORITY
[0001] This application is a continuation under 35 U.S.C. .sctn.
120 of U.S. patent application Ser. No. 10/867,844, filed 14 Jun.
2004, which is incorporated herein by reference.
TECHNICAL FIELD
[0002] The present invention generally relates to online content
management, and more specifically, to a system and method for
managing online content delivery based on information from a
person's social network.
BACKGROUND
[0003] Various statistical models have been used to make
predictions about the future behavior and interests of users in an
online environment. Online booksellers have used collaborative
filtering techniques to recommend books that may be of interest to
their customers based on the purchasing behavior of their other
customers with similar interests and demographics.
[0004] Statistical models, including those based on collaborative
filtering techniques, are, however, imperfect, and more accurate
predictors are desired on many fronts. Sellers want them so that
they can recommend more relevant products to their customers.
Advertisers want them so that they can present more relevant ads to
their audience. Web site operators want them so that they can
deliver more relevant content to their visitors.
SUMMARY OF PARTICULAR EMBODIMENTS
[0005] The present invention provides a method for preparing or
selecting relevant content for delivery to a member of a network.
The selection is based, in part, on prior online activities of the
other members of the network, and the closeness of the member's
relationship with the other members of the network.
[0006] The relevant content may be an online ad that is selected
from a number of candidate online ads based on click-through rates
of groups within the online social network that are predefined with
respect to the member or with respect to certain attributes. A
predefined group contains one or more members of the network and
may be any of the following: a group containing all members who are
friends of the member; a group containing all members who are
friends of friends of the member; a group containing all members
who are friends of friends of friends of the member; a group
containing members who have expressed a particular interest (e.g.,
music, cooking, travel, etc.), and a group containing members who
fit a particular demographic (e.g., gender, age group, income
level, ethnicity, etc.).
[0007] An online ad's revenue-generating potential may be
considered in the selection process. For example, an online ad that
has a high per-click revenue associated therewith is to be
preferred in the selection process over an online ad that has a
lower per-click revenue associated therewith, assuming that the
probability of the member clicking on either online ad is the same.
Certain online ads may be displayed without considering the
per-click revenue associated therewith. For example, an invitation
to purchase a particular item, e.g., a particular book, may be
delivered to a member if the probability of the member clicking on
that invitation is greater than a set threshold.
BRIEF DESCRIPTION OF THE DRAWINGS
[0008] So that the manner in which the above recited features of
the present invention can be understood in detail, a more
particular description of the invention briefly summarized above
may be had by reference to embodiments, some of which are
illustrated in the appended drawings. It is to be noted, however,
that the appended drawings illustrate only typical embodiments of
this invention and are therefore not to be considered limiting of
its scope, for the invention may admit to other equally effective
embodiments.
[0009] FIG. 1 is a diagram that conceptually represents the
relationships between members in a social network;
[0010] FIG. 2 is a block diagram illustrating the system for
managing an online social network;
[0011] FIG. 3 is a sample log for tracking the display and click
history of a particular ad;
[0012] FIG. 4 is a sample adjacency list that is maintained by the
graph servers used in the system for managing an online social
network;
[0013] FIG. 5 is a sample table of click-through rates that have
been computed for certain attributes;
[0014] FIG. 6 illustrates in a tabular form the method by which
click probabilities for several ads are calculated for a
member;
[0015] FIG. 7 illustrates in a tabular form the method by which an
ad is selected for delivery to a member; and
[0016] FIG. 8 is a flow diagram that illustrates the method by
which an ad is selected for delivery to a member.
DESCRIPTION OF EXAMPLE EMBODIMENTS
[0017] A social network is generally defined by the relationships
among groups of individuals, and may include relationships ranging
from casual acquaintances to close familial bonds. A social network
may be represented using a graph structure. Each node of the graph
corresponds to a member of the social network. Edges connecting two
nodes represent a relationship between two individuals. In
addition, the degree of separation between any two nodes is defined
as the minimum number of hops required to traverse the graph from
one node to the other. A degree of separation between two members
is a measure of relatedness between the two members.
[0018] FIG. 1 is a graph representation of a social network
centered on a given individual (ME). Other members of this social
network include A-U whose position, relative to ME's, is referred
to by the degree of separation between ME and each other member.
Friends of ME, which includes A, B, and C, are separated from ME by
one degree of separation (1 d/s). A friend of a friend of ME is
separated from ME by 2 d/s. As shown, D, E, F and G are each
separated from ME by 2 d/s. A friend of a friend of a friend of ME
is separated from ME by 3 d/s. FIG. 1 depicts all nodes separated
from ME by more than 3 degrees of separation as belonging to the
category ALL.
[0019] Degrees of separation in a social network are defined
relative to an individual. For example, in ME's social network, H
and ME are separated by 2 d/s, whereas in G's social network, H and
G are separated by only 1 d/s. Accordingly, each individual will
have their own set of first, second and third degree
relationships.
[0020] As those skilled in the art understand, an individual's
social network may be extended to include nodes to an Nth degree of
separation. As the number of degrees increases beyond three,
however, the number of nodes typically grows at an explosive rate
and quickly begins to mirror the ALL set.
[0021] FIG. 2 is a block diagram illustrating a system for managing
an online social network. As shown, FIG. 2 illustrates a computer
system 100, including an application server 200 and distributed
graph servers 300. The computer system 100 is connected to a
network 400, e.g., the Internet, and accessible over the network by
a plurality of computers, which are collectively designated as
500.
[0022] The application server 200 manages a member database 210, a
relationship database 220, a search database 230, an ad database,
and a CTR database 250.
[0023] The member database 210 contains profile information for
each of the members in the online social network managed by the
computer system 100. The profile information may include, among
other things: a unique member identifier, name, age (e.g., <30
years old or 30 years old and older), gender (male or female),
location, hometown, a pointer to an image file, listing of
interests and other attributes (e.g., music, cooking, travel), etc.
The profile information also includes VISIBILITY and CONTACTABILITY
settings, the uses of which are described in U.S. Pat. No.
8,010,458, filed May 26, 2004, which is incorporated by reference.
The relationship database 220 stores information relating to the
first degree relationships between members. In addition, the
contents of the member database 210 are indexed and optimized for
search, and stored in the search database 230. The member database
210, the relationship database 220, and the search database 230 are
updated to reflect inputs of new member information and edits of
existing member information that are made through the computers
500.
[0024] The ad database 240 contains ad information about banner
ads, paid links, and specific product ads that are served by the
application server 200. The ad information includes for each ad: a
unique ad identifier, advertiser identifier, URL of the advertiser,
click-through revenue, hyperlink to an image or text that contains
the ad content, ad type indicator (e.g., 1=banner ad, 2=paid link,
3=product ad), file address of the log that contains the display
and click history of the ad, and other typical information require
to display the ad and to track the traffic on the ad. FIG. 3 is a
sample log for tracking the display and click history of an ad
having the ad identifier LINK1. The log shows the member ID of the
member to whom the ad was displayed, whether there was a click or
no click, and, if there was a click, the time stamp of that
click.
[0025] The member database 210, the relationship database 220, and
the search database 230 are updated to reflect inputs of new member
information and edits of existing member information that are made
through the computers 500. The ad database 240 is updated to
reflect inputs of new ad information and edits of existing ad
information that are made by a third party or the operator of the
online social network through the computers 500 or a dedicated
computer (not shown) connected to the computer system 100.
[0026] The application server 200 also manages the information
exchange requests that it receives from the remote computers 500.
The graph servers 300 receive a query from the application server
200, process the query and return the query results to the
application server 200. The graph servers 300 manage a
representation of the social network for all the members in the
member database. The graph servers 300 have a dedicated memory
device 310, such as a random access memory (RAM), in which an
adjacency list that indicates all first degree relationships in the
social network is stored.
[0027] A sample adjacency list that reflects the social network map
of FIG. 1 is shown in FIG. 4. A list item is generated for each
member and contains a member identifier for that member and member
identifier(s) corresponding to friend(s) of that member. As an
alternative to the adjacency list, an adjacency matrix or any other
graph data structure may be used. The graph servers 300 and related
components are described in U.S. Pat. No. 8,572,221, filed May 26,
2004, which is incorporated by reference.
[0028] The CTR database 250 stores, for each ad in the ad database
240, a set of click-through rates (CTRs) relating to groups within
the online social network that are defined with respect to certain
attributes, and to groups within the online social network that are
defined with respect to a particular member. FIG. 5 shows CTRs
relating to groups within the online social network that are
defined with respect to certain attributes. These groups include:
gender=male, gender=female, age<30, age=30+, interest=music,
interest=cooking, interest=travel. Additional groups may be
defined, e.g., location=94043, marital status=single, annual
income<$100,000, annual income=$100,000+. The age groups and
income groups may be defined in different ways as well.
[0029] FIG. 6 additionally shows CTRs relating to groups within the
social network that are defined with respect to the member ME.
These groups include: d/s=1 (members who are friends of ME), d/s=2
(members who are friends of friends of ME), and d/s=3 (members who
are friends of friends of friends of ME). Additional groups may be
defined, e.g., d/s=4. Combination groups may be defined, e.g.,
d/s=1 & interest=music (members who are friends of ME and whose
expressed interest includes music).
[0030] A particular member may also predefine custom groups, e.g.,
C & D (group consisting of just member C and member D).
Alternatively, the system may track the behavior of the members
with respect to other members and define the custom groups for the
members. As one example, a custom group for ME is populated with
those members whose online activities in the past have influenced
(i.e., have predicted well) the online activities of member ME.
[0031] The CTRs for a particular ad is computed using the display
and click history for that ad. In general, CTR=(number of
clicks)/(number of times displayed). The CTR for a group defined
with respect to a particular attribute=(number of clicks by members
who possess that particular attribute)/(number of times displayed
to members who possess that particular attribute). The CTR for a
group defined with respect to a particular member=(number of clicks
by members who belong in that group)/(number of times displayed to
members who belong in that group). For example, the CTR for member
ME's d/s=1 group=(number of clicks by members who are friends of
ME)/(number of times displayed to members who are friends of
ME).
[0032] The click probability for a member with respect to any
particular ad is estimated as the maximum of the CTRs computed for
that member with respect to the particular ad. FIG. 6 shows that
the click probability for member ME with respect to ad LINK1 is
0.077, with respect to ad LINK is 0.010, with respect to ad LINK3
is 0.011, and with respect to ad LINK4 is 0.041. FIG. 6 also shows
the CTRs for the groups defined with respect to attributes that
member ME does not possess (e.g., gender=female, age<30,
interest=cooking, and interest=travel) noted as N/A. The CTRs
associated with these groups are not considered when estimating
member ME's click probability with respect to each of the ads.
[0033] After the click probabilities are estimated in the manner
described above, expected revenues are derived from the click
probabilities. FIG. 7 is a sample table showing revenues expected
to be earned from different ads (LINK1, LINK2, LINK3, LINK4) as a
result of member ME's predicted online behavior. The expected
revenue for each of the ads is derived by multiplying the click
probability computed for that ad with the per click revenue figure
stored in the ad database 240 for that ad.
[0034] FIG. 8 is a flow diagram that illustrates the method by
which an ad is selected for delivery to the member ME. In Step 810,
the CTRs for a first set of groups defined with respect to
particular attributes and a second set of groups defined with
respect to the member ME are computed for each of the online ads
stored in the ad database 240. In Step 820, for each of the online
ads, the maximum CTR is selected as the estimated probability that
member ME will click on that online ad. In Step 830, the expected
revenues from displaying the online ads to member ME are estimated
by multiplying the estimated probability for each of the online ads
with the per-click revenue associated with that ad. In Step 840,
the online ad with the highest estimated expected revenue is
selected for delivery to member ME.
[0035] Ads are selected by the computer system 100 and delivered to
the computers 500 for display at the computers 500. The ads may be
delivered, for example, in response to a member logging on and
accessing his or her home page. In one embodiment of the invention,
the selection of one or more ads to be delivered to the member is
based on the expected revenue of all the ads. For example, the
system may be designed to deliver only the ad with the highest
expected revenue, or alternatively, ads that are in the top N in
expected revenue (where N>1). In another embodiment of the
invention, the selection of one or more ads to be delivered to the
member is based on the click probability. If the click probability
is above a certain threshold, e.g., 0.50, the ad is to be delivered
without regard to what the expected revenue is.
[0036] The computations of the CTRs, click probabilities, and
expected revenues may be performed in real-time or off-line as a
batch process. However, the batch process is preferred so that ads
can be served more quickly to the members.
[0037] While particular embodiments according to the invention have
been illustrated and described above, it will be clear that the
invention can take a variety of forms and embodiments within the
scope of the appended claims.
* * * * *