U.S. patent application number 17/232168 was filed with the patent office on 2021-07-29 for system and method for presenting targeted content.
The applicant listed for this patent is Jagadeshwar Reddy Nomula. Invention is credited to Jagadeshwar Reddy Nomula.
Application Number | 20210233121 17/232168 |
Document ID | / |
Family ID | 1000005523111 |
Filed Date | 2021-07-29 |
United States Patent
Application |
20210233121 |
Kind Code |
A1 |
Nomula; Jagadeshwar Reddy |
July 29, 2021 |
SYSTEM AND METHOD FOR PRESENTING TARGETED CONTENT
Abstract
A method and system for presenting targeted content to users
over the internet is provided. The method includes enabling a user
to sign into a website. An identifier is generated for the user, if
the user is signing into the website for the first time.
Information corresponding to the user is mined and the information
is linked to the user. Further, verification is made to determine
whether the generated identifier matches with existing identifiers.
If the generated identifier matches with an existing identifier,
then existing information corresponding to the matched identifier
is linked to the user. Targeted content is presented to the user by
processing at least the information linked to the user.
Inventors: |
Nomula; Jagadeshwar Reddy;
(Fremont, CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Nomula; Jagadeshwar Reddy |
Fremont |
CA |
US |
|
|
Family ID: |
1000005523111 |
Appl. No.: |
17/232168 |
Filed: |
April 16, 2021 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
15245208 |
Aug 24, 2016 |
|
|
|
17232168 |
|
|
|
|
13089772 |
Apr 19, 2011 |
|
|
|
15245208 |
|
|
|
|
61400663 |
Aug 2, 2010 |
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
G06Q 30/0269 20130101;
H04L 67/22 20130101; G06Q 30/0277 20130101; G06F 16/9558 20190101;
G06F 16/958 20190101; G06Q 30/02 20130101; G06F 16/9535 20190101;
G06Q 30/0255 20130101; G06Q 50/01 20130101; H04L 67/02 20130101;
H04L 41/22 20130101 |
International
Class: |
G06Q 30/02 20060101
G06Q030/02; G06F 16/958 20060101 G06F016/958; G06F 16/9535 20060101
G06F016/9535; G06F 16/955 20060101 G06F016/955; H04L 12/24 20060101
H04L012/24; G06Q 50/00 20060101 G06Q050/00; H04L 29/08 20060101
H04L029/08 |
Claims
1. A method, performed by a first backend computer system
comprising a plurality of modules including a first module, for
providing an entity of content targeting a specific user to the
first module operating a first website, the first backend computer
system having access to a database storing, for each user of a
plurality of users, a respective user identifier used to identify
the respective user and a respective set of user identification
information identifying the respective user, the stored plurality
of users including a first user, the database storing, for the
first user, a first user identifier used to identify the first user
and a first set of user identification information identifying the
first user, the method comprising steps of: receiving, by the first
backend computer system, from a second source of user information,
a second set of identification information of the first user
identifying the first user; matching, by the first backend computer
system, the received second set of identification information of
the first user with the stored first set of user identification
information of the first user; acquiring, by the first backend
computer system, an entity of content targeting the first user
using activity data of the first user captured by the second source
of user information, the activity data of the first user adapted to
identify prior activities of the first user captured by the second
source of user information; and incorporating, by the first backend
computer system, through the first module, the acquired entity of
content targeting the first user into a content page of the first
website displayable on a user terminal visiting the first
website.
2. The method of claim 1, wherein the acquiring of the entity of
content targeting the first user using the activity data of the
first user captured by the second source of user information,
comprises: receiving, by the first backend computer system, from
the second source of user information, a first set of data packets
derived using the activity data of the first user captured by
second source of user information; and acquiring, by the first
backend computer system, the entity of content targeting the first
user using the received first set of data packets. using, one way
hash of first name, last name, date of birth, location and/or email
address
3. The method of claim 1, wherein the second source of user
information comprises a second backend computer system operating a
second website; and wherein the activity data of the first user is
adapted to identify prior activities which the first user conducted
on the second website as captured by the second backend computer
system. using, one way hash of first name, last name, date of
birth, location and/or email address
4. The method of claim 3, wherein the first backend computer system
comprises the second backend computer system as a second module
operating the second website;
5. The method of claim 3, wherein the activity data of the first
user captured by the second backend computer system comprises
purchase-related activity data of the first user identifying prior
purchase-related activities of the first user which the first user
conducted on the second website.
6. The method of claim 5, wherein the purchase-related activity
data of the first user comprises purchase data of the first user
identifying at least one merchandise item which the first user
previously purchased from the second website through visiting the
second website.
7. The method of claim 1, wherein the matching of the received
second set of identification information of the first user with the
stored first set of user identification information of the first
user, comprises steps of: acquiring, by the first backend computer
system, a second user identifier using the received second set of
identification information of the first user; checking, by the
first backend computer system, whether the second user identifier
satisfactorily matches with the first user identifier of the first
user stored in the database; and determining, by the first backend
computer system, that the received second set of identification
information of the first user matches with the stored first user
identifier of the first user if the checking operation returns a
positive result. using, one way hash of first name, last name, date
of birth, location and/or email address
8. The method of claim 7, wherein the second user identifier, as
acquired by the first backend computer system, is included in the
received second set of identification information of the first
user.
9. The method of claim 7, wherein the checking of whether the
received second user identifier satisfactorily matches with the
stored first user identifier of the first user, comprises: deciding
whether the received second user identifier exactly or partially
matches with the stored first user identifier of the first user,
using one way hashes for the comparison. if, by the deciding
operation, the received second user identifier is found to be an
exact match with the stored first user identifier of the first
user, then returning a positive result; otherwise if, by the
deciding operation, the received second user identifier is found to
be a partial match with the stored first user identifier of the
first user, and if the partial match is found to be satisfactory to
link the received second user identifier with the partially matched
first user identifier of the first user, then returning a positive
result; and otherwise returning a non-positive result.
10. The method of claim 1, wherein the first user is a friend of a
second user in an online social network of the second user and the
second user is visiting the first website through a user terminal
of the second user; and wherein the incorporating of the acquired
entity of content targeting the first user into a content page of
the first website, comprises: receiving, by the first backend
computer system, from a social networking platform implementing the
online social network of the second user, social networking
information of the first user indicating that the first user is a
friend of the second user; forming, by the first backend computer
system, the content page such that the content page is a personal
content page personal to the second user, and incorporating the
acquired entity of content targeting the first user into the
personal content page; and sending, by the first backend computer
system, the personal content page of the second user to the user
terminal of the second user for the personal content page of the
second user to be presented on the user terminal of the second
user.
11. The method of claim 10, wherein the first website comprises a
social networking platform implementing the online social network
of the second user.
12. The method of claim 10, wherein the entity of content targeting
the first user, as incorporated into the personal page of the
second user, comprises a set of one or more gift recommendations
targeting the first user.
13. The method of claim 1, wherein the entity of content targeting
the first user, as acquired by the first backend computer system,
comprises an advertisement targeting the first user.
14. The method of claim 1, wherein collaborative filtering is used
to generate the entity of content targeting the first user as
acquired by the first backend computer system, and the employed
collaborative filtering uses the activity data of the first user
captured by the second source of user information.
Description
CROSS-REFERENCE TO RELATED APPLICATION
[0001] The present application is a continuation application under
35 U.S.C. .sctn. 120 of the U.S. Non-provisional patent application
Ser. No. 15/245,208, filed on Aug. 24, 2016, which is further a
continuation application under 35 U.S.C. .sctn. 120 of the U.S.
Non-provisional patent application Ser. No. 13/089,772, filed on
Apr. 19, 2011 and claiming the benefit under 35 U.S.C. .sctn.
119(e) of U.S. Provisional Application No. 61/400,663, filed on
Aug. 2, 2010, the entire disclosures of both aforesaid prior
applications being incorporated herein by reference.
1. Field BACKGROUND
[0002] Embodiments relate generally to the field of presenting
targeted content to users of a website and, more particularly but
not exclusively, to presenting targeted content to the users based
on information aggregated from one or more online social networking
platforms.
2. Discussion of Related Field
[0003] It is a well-known fact that penetration of internet has
increased substantially, and continues to increase. With increased
penetration of the internet, users have started using internet for
a gamut of reasons. Internet is being used for conducting research
that helps in taking decisions, expressing views and opinions, and
buying products and services, among other reasons.
[0004] A large number of web portals enable users to buy goods and
services online. Some web portals allow users to only search or
browse their inventory online and facilitate buying of goods and
services available in their inventory. On the other hand, some web
portals present targeted content, such as advertisements,
recommendations or suggestions to a user on what goods or services
the user may wish to buy.
[0005] One of the commonly adopted methodologies for presenting
targeted content is collaborative filtering. Collaborative
filtering is used with machine learning algorithms to present
targeted content to users of the web portal. Amazon is one such web
portal that appears to use collaborative filtering to group users
who have carried out similar actions, and provides recommendations
thereafter. It has been often observed that, sometimes, unrelated
recommendations are presented to the user, when recommendations are
provided based on the group a user pertains to, which has been
algorithmically determined by adopting collaborative filtering
algorithm. Additionally, the instant approach may not be ideal when
a user is using the web portal for purchasing gifts for other
persons. While purchasing gifts, the preference of the person
receiving the gift is of importance. However, the instant approach
does not appear to be designed to consider the preference of the
person who will be receiving the gift into consideration for
providing recommendations to the user purchasing the gifts.
[0006] Another approach for presenting targeted content to the user
is by using information gathered from an online social networking
platform, which the user might be using. A website,
www.goodreads.com, is one such example that appears to recommend
books to its users based on the information corresponding to the
user that is gathered from an online social networking platform
(www.facebook.com), which the user might be using. In the instant
approach, the user is allowed to log into the web portal using his
online social networking authentication credentials. After the user
provides his online social networking authentication credentials,
the user is asked to provide access to information that may be used
to give recommendations. Once the user grants rights to access the
information, the information is used to provide recommendation to
the user. It shall be noted that, in the instant approach,
information corresponding to the user is gathered from only one
social networking platform, which the user is using. However, it
has been observed that generally a single user socializes by using
more than one online social networking platform. For instance, a
user may use LinkedIn Network to socialize and increase
acquaintances within his professional work. The same user may also
use Facebook to interact and stay in touch with his friends.
Additionally, the user may be using location based social
networking platforms, such as, Foursquare to meet his friends at a
given location. The interactions in each of these social networks
are isolated from each other and there are no clear ways to
aggregate the interactions of a user across social networks and
share the information to applications, which can leverage this
information to enhance the relevance of targeted content presented
to the user.
[0007] In light of the foregoing discussion, there is a need for a
technique to improve relevancy of the targeted content presented to
users. Further, the technique shall enable aggregation of
information corresponding to users across online social networking
platforms. Furthermore, the technique shall enable sharing of the
aggregated information to applications that can leverage the
information to enhance the relevance of the targeted content
presented to the user.
SUMMARY
[0008] In one aspect, a method for presenting targeted content to
users over the internet is provided. The method includes enabling a
user to sign into a website. An identifier is generated for the
user, if the user is signing into the website for the first time.
Information corresponding to the user is mined and the information
is linked to the user. Further, verification is made to determine
whether the generated identifier matches with existing identifiers.
If the generated identifier matches with an existing identifier,
then existing information corresponding to the matched identifier
is linked to the user. Targeted content is presented to the user by
processing at least the information linked to the user.
[0009] In another aspect, a method for presenting, to a user,
recommendation of gifts for the user's one or more friends over the
internet is provided. The method includes, authenticating the user
through an online social networking platform and receiving
selection from the user, wherein the selection comprises at least
one friends of the user, present in the online social networking
platform. Thereafter, information corresponding to the friend is
mined from the online social networking platform. Recommending
corresponding to gifts for the friend is presented based on
processing of at least the mined information.
[0010] In yet another aspect, a system for presenting targeted
content to users over the internet is provided. The system includes
an authentication module, a data aggregation module, an identifier
generation module, a database and a targeted content selection
module. The authentication module is configured to enable a user to
sign into a website. The data aggregation module is configured to
mine information corresponding to the user. The identifier
generation module is configured to generate an identifier for the
user, if the user is signing into the website for the first time,
and verify whether the generated identifier matches with existing
identifiers.
[0011] The database is configured to store mined information
corresponding to the user, and link existing information
corresponding to the matched identifier to the user, if the
generated identifier matches with an existing identifier. The
targeted content selection module is configured to present targeted
content to the user by processing at least the information linked
to the user.
BRIEF DESCRIPTION OF DRAWINGS
[0012] Embodiments are illustrated by way of example and not
limitation in the Figures of the accompanying drawings, in which
like references indicate similar elements and in which:
[0013] FIG. 1 is a block diagram illustrating a system 100 for
presenting targeted content to users, in accordance with an
embodiment;
[0014] FIG. 2 is a flow chart illustrating a method for generating
identifier for a user, in accordance with an embodiment;
[0015] FIG. 3 is a flow chart illustrating a method for generating
identifiers when a user creates an account using an online social
networking platform, in accordance with an embodiment;
[0016] FIG. 4 is a flow chart illustrating a method for determining
whether an identifier has already been created for a user whenever
a new identifier has to be created, in accordance with an
embodiment; and
[0017] FIG. 5 is a flow chart illustrating a method for
recommending gifts, which a user may wish to purchase for his
friends, in accordance with an embodiment.
DETAILED DESCRIPTION
[0018] The following detailed description includes references to
the accompanying drawings, which form a part of the detailed
description. The drawings show illustrations in accordance with
example embodiments. These example embodiments, which are also
referred to herein as "examples," are described in enough detail to
enable those skilled in the art to practice the present subject
matter. The embodiments can be combined, other embodiments can be
utilized, or structural, logical, and electrical changes can be
made without departing from the scope of what is claimed. The
following detailed description is, therefore, not to be taken in a
limiting sense, and the scope is defined by the appended claims and
their equivalents.
[0019] In this document, the terms "a" or "an" are used, as is
common in patent documents, to include one or more than one. In
this document, the term "or" is used to refer to a nonexclusive
"or" such that "A or B" includes "A but not B." "B but not A," and
"A and B." unless otherwise indicated. Furthermore, all
publications, patents, and patent documents referred to in this
document are incorporated by reference herein in their entirety, as
though individually incorporated by reference. In the event of
inconsistent usages between this document and those documents so
incorporated by reference, the usage in the incorporated
reference(s) should be considered supplementary to that of this
document; for irreconcilable inconsistencies, the usage in this
document controls.
[0020] FIG. 1 is a block diagram illustrating a system 100 for
presenting targeted content to users, in accordance with an
embodiment. System 100 may enable presenting targeted content, over
the internet. The targeted content presented to the users, for
example, can be, presenting recommendations corresponding to goods
and services, which the users may wish to, buy or gift. Examples of
goods and services can include, but are not limited to, gifts,
books, concerts, restaurants, musical compositions, spa treatments,
gadgets, clothing, pet accessories, jewelry and cosmetics. The
targeted content presented to users, for example, may include, but
not limited to, advertisements, links to web pages and customized
layout of the website the user is visiting.
[0021] A user may use his user terminal 110 to access a website in
which the targeted content is displayed to the user. The user
terminal 110 can be, for example, a desktop computer, a laptop, a
communication device, a personal digital assistant or a
programmable consumer electronics device. The website, for example,
can be an ecommerce website that enables online buying of goods and
services. Alternatively, the website can be a blog or a corporate
website. On the other hand, the website can be a platform that
allows, for example, viewing of videos (Ex: YouTube), presentations
(Ex: Slideshare), documents (Ex: Scribd) or lyrics (Ex:
www.lyrics.com).
[0022] System 100 includes an authentication module 102, a data
aggregation module 104, a database 106, an identifier generation
module 107 and a targeted content selection module 108. The system
100 is configured to communicate with user terminals (Ex: User
terminal 110) over a communication network 116. In FIG. 1, only one
user terminal 110 is illustrated to simplify understanding of the
embodiment. The system 100 is also configured to communicate over
the communication network 116, with one or more social networking
platforms. In FIG. 1 a first social networking platform 112 and a
second social networking platform 114 are illustrated.
[0023] System 100 may be coupled with one or more websites in which
visitors (users) to the websites are presented with targeted
content. The authentication module 102 may be configured to enable
users of a website to sign-in to the website, either by allowing
the users to create an account in the website or by allowing
signing-in using an online social networking platform (Ex: First
social networking platform 112 or second social networking platform
114). If a user signs-in using the online first social networking
platform 112, then the data aggregation module 104, which is
configured to mine data corresponding to the user from the first
social networking platform 112, extracts the data from the first
social networking platform 112 after receiving permission from the
user for such data mining. At least a part of the mined data is
communicated to the identifier generation module 107. The
identifier generation module 107 is configured to generate
identifiers, using the mined data, for the user and the user's
contacts present in the first social networking platform 112.
Thereafter, the generated identifiers and the mined data are
communicated to the database 106. The database 106 is configured to
receive data from the data aggregation module 104 and the generated
identifiers, and store the same for retrieval when desired. It
shall be noted that the identifiers and the corresponding data are
linked. Additionally, the relationship between the identifiers
created for various users (and their friends) may also be created
and stored. The targeted content selection module 108 is configured
to query the database 106 and process the data provided by the
database 106 to select content that can be presented to the
user.
[0024] As highlighted in the foregoing discussion, the identifier
generation module 107 is configured to generate identifiers using
the information provided by or information mined using permission
granted by the visitor. FIG. 2 is a flow chart illustrating a
method for generating identifier for a user, in accordance with an
embodiment. In this embodiment, an identifier is generated for a
user who creates an account in the website. At step 202, the
website is displayed in the web browser of the user terminal 110.
If the user does not have an account in the website, then he may
create an account using an account creation web page present in the
website or by using an online social networking platform. In this
embodiment, the user attempts to create an account using the
account creation page. The account creation page may request the
user to provide information that is required to create an account.
For example, the information requested may include, first name,
last name, date of birth, location and email address. At step 204,
the information required to create the account is received from the
user. Thereafter, at least a part of the information that is
required to generate an identifier for the user is communicated to
the identifier generation module 107, at step 206. The identifier,
for example, may be generated using information fields, such as,
first name, last name, date of birth, email address and location.
It shall be noted that, from the instant example, one of more
information field may be added or removed to generate
identifiers.
[0025] In the foregoing embodiment, the identifier was created
using information provided by the user while creating an account
using the account creation page of the website. In another
embodiment, identifier for a user may be generated when the user
creates an account using a social networking platform. FIG. 3 is a
flow chart illustrating a method for generating identifiers when a
user creates an account using an online social networking platform,
in accordance with an embodiment. As mentioned earlier, a user can
create an account in the website using the website's account
creation page or by using an online social networking platform (Ex:
Facebook). If the user chooses to create an account using the
online social networking platform, then at step 302, authentication
webpage of the social networking platform is displayed. The user
provides the authentications credentials, and upon successful
authentication, a web page seeking permission to access data
corresponding to the user, from the social networking platform is
displayed at step 304. The information sought to be accessed, for
example, may include, user's name, date of birth, location, email
address, likes, dislikes, groups, interests and feeds.
Additionally, permission may be sought to access user's friends'
name, date of birth, location, email address, likes, dislikes,
groups, interests and feeds. If the user does not grant access,
then information is not accessed. On the other hand, if the user
grants access, then at step 310, data is extracted by the data
aggregation module 104. At least a part of the user's data, such as
user's name, date of birth, location and sex, is used to generate
identifier for the user at step 312 by the identifier generation
module 107. Further, if the website configured in such a way that
generation of identifier for each of user's friends is desired,
then at step 318, identifier for each of user's friends is
generated using information that is accessible to the data
aggregation module 104.
[0026] It may be noted that, as aforementioned, data aggregated
from one or more social networking platforms is used by the system
100 to present targeted content to the user. Hence, when a user
creates an account in the website using the website's account
creation page, the system 100 may have to identify whether data,
extracted from a social networking platform, corresponding to the
user is already present in the database 106, and use the same to
present targeted content. For example, User 1 may create an account
in the website using a social networking platform (Ex: Facebook),
and provide access to data corresponding to User 2, who is in User
1's online social network. After gaining access to User 2's data,
the system may generate an identifier for user 2, extract data
corresponding to User 2 and store the data corresponding to User 2
in the database 106. In a scenario, wherein User 2 creates an
account in the website using the account creation page of the
website, the system may generate an identifier for User 2.
Thereafter, the system may verify whether information, aggregated
from a social networking platform, corresponding to User 2 is
available in the database, and use the same to present targeted
content, if information is available.
[0027] In another scenario, when the system 100 gets access to data
corresponding to a user from more than one social networking
platform, the system 100 may have to correlate the data from the
social networking platforms to a single user. For example, system
100 may be coupled with two websites, Website 1 and Website 2,
which allows users to create accounts in their websites using a
first social networking platform and a second social networking
platform, respectively. A user, for example, User 1 may create an
account using the first social networking platform in website 1.
The system 100 creates an identifier for User 1, when User 1
creates an account using the first social networking platform in
website 1. Additionally, User 1 may create an account using the
second social networking platform in website 2. System 100 creates
an identifier for User 1 upon creation of the account in website 2.
Thereafter, the system 100 may compare the identifier generated and
identify that the identifier are generated for a unique person.
Thereafter, the system 100 aggregates the information,
corresponding to User 1, extracted from both the social networking
platforms, and use the information to present targeted content to
User 1.
[0028] In light of the foregoing discussion, it may be noted that
the system 100 may be configured to determine whether an identifier
has already been created for a user whenever the system 100
generates a new identifier. FIG. 4 is a flow chart illustrating a
method for determining whether an identifier has already been
created for a user whenever a new identifier has to be created, in
accordance with an embodiment. At step 402, the user provides
information that is required to create an account in the website.
The information may be provided using an account creation page in
the website or by using a social networking platform. Thereafter,
at step 404, system 100 generates an identifier using the
information received by the user. The generated identifier is
compared with the existing identifiers at step 406. It shall be
noted that, there can be various scenarios, wherein an identifier
for the user has already been created. For example, the instant
user's online social networking friend might have created an
account using the social networking platform. During creation of
the account, system 100 might have accessed information
corresponding to the instant user, and created an identifier for
the instant user. In another example, the instant user might have
created an account in a first website, which is coupled to the
system 100, using a first social networking platform. Thereafter,
the instant user might be in the process of creating an account in
a second website, which is coupled to the system 100, using a
second social networking platform. In this scenario as well, the
system might have created an identifier for the instant user when
he created an account in the first website. Hence, by comparing the
newly generated identifier with the existing identifier, the system
100 can identify unique users, and also aggregate information
gathered from multiple social networking platforms to increase the
relevancy of the targeted content presented to the user.
[0029] It shall be noted that, there can be various scenarios,
wherein the newly generated identifier and the existing identifiers
do not match completely. At step 410, the system checks whether
there is a partial match between the newly generated identifier and
the existing identifiers. If there is a partial match, then at step
412, the system 100 checks if the partial match is satisfactory to
conclude that an identifier for the instant user already exists. If
the partial match is satisfactory, then the system correlates
existing information corresponding to the instant user with the
newly discovered information to present targeted content to the
instant user. However, if the match is not satisfactory, then the
system may conclude that a new unique user has been identified.
[0030] In an embodiment, system 100 may be coupled to an ecommerce
website that enables purchasing of entities over the internet. The
user accesses the ecommerce website using a web browser provided in
the user terminal 110. In an embodiment, the user is asked to
authenticate himself. The user may authenticate himself by
communicating his authentication credentials, such as, user
identification and password to the authentication module 102.
Alternatively, the user may authenticate himself using his
authentication credentials for a online social networking platform,
such as Facebook. To authenticate himself using the website online
social networking platform, the user can click on the sign-in
button of the social networking platform and provide the required
authentication credentials in the sign-in web page of the social
networking platform. The sign-in button of the social networking
platform can be provided in the ecommerce website. In an
embodiment, the authentication module 102 can be configured to seek
additionally permission from the user. For example, when the user
successfully authenticates himself by using the social networking
platform, the user is requested to grant explicit permission to
extract information corresponding to him. Further, permission may
be sought to extract information corresponding to the user's
friends. Furthermore, permission may be sought to carry out certain
actions in the social networking platform, on behalf of the
user.
[0031] If the user grants permission to the extract the requested
information, then the data aggregation module 104 extract the
information. The data aggregation module 104 may be configured to
extract data to which the permission has been granted by the
user.
[0032] In an embodiment, the data aggregation module 104 may
extract, from the social networking platform, data corresponding
to, user identification, date of birth, location of the user, email
address, likes and dislikes. Additionally, the data aggregation
module 104 may extract data corresponding to friends, such as,
friends' name, date of birth, location, likes and dislikes.
[0033] In an embodiment, information to be stored in the database
106 may appear as:
TABLE-US-00001 [user] [[userid]: 1234 [username]: Jagdish Nomula
[dob]: 01/01/1976 [location]: San Jose [friends] [friend ]
[[friendid]: 1324 [username]: Todd Johnson [dob]:01/02/1974
[location]: San Francisco [hobbies]: Hiking, Tennis [likes]:
Britney Spears, Barak Obama [feed]: The next time Steve pulls out a
new iPhone, you can be sure where everyone's eyes will be .... ]
.... ]]
[0034] For the above example, in an embodiment, a hash function may
be used, which maps username, date of birth and location to a Byte
Array. A person skilled in art would know that this functionality
could be replaced with other implementations. This function could
be a one-way hash function, to ensure that privacy of users is not
compromised.
[0035] The identifier generation module 107 may be configured to
generate an identifier for the user. The identifier may be
generated using name of the user, date of birth and location of the
user, which are extracted from the social networking platform.
[0036] In an embodiment, the identifier may be generated using the
name of the user and the user's date of birth.
[0037] In another embodiment, the identifier may be generated using
the user ID and the user's date of birth.
[0038] In yet another embodiment, the identifier may be generated
using the user ID, user's date of birth, email address and location
of the user.
[0039] The identifier generated and the extracted data is sent to
the database 106. The database 106 is configured to store the
identifier and the corresponding data. The database 106 is
configured to be queried, at least by the targeted content
selection module 108. The database 106 may be configured to enable
retrieval of data from the database 106 by the targeted content
selection 108 for further processing to generate recommendations of
entities, which will be presented to the user. It shall be noted
that the information used for processing is mapped to the context
in which targeted content is being presented to the user.
[0040] In an embodiment, system 100 may be configured to recommend
gifts to users, which the users may buy for his friend(s). FIG. 5
is a flow chart illustrating a method for recommending gifts, which
a user may wish to purchase for his friends in accordance with an
embodiment. An ecommerce website may allow a user to purchase gifts
for his friends. Such a website may be configured to present
recommendations corresponding to the gifts the user's friend or
friends may like. In order to purchase gifts, the user accesses the
website using a web browser. The website may allow the user to
purchase gifts or present recommendations after the user
successfully authenticates himself. At step 502, the user
authenticates himself using a social networking platform. A link to
the authentication page of the social networking platform may be
provided in the ecommerce website. After successful authentication,
the user selects one or more friends who are in his friend network
in the online social networking platform, for whom the user wishes
to purchase gifts. To make understanding convenient, we may assume
that the user selects one friend from the social networking
platform. The system 100 extracts information corresponding to the
friend, and processes the information at step 506. Thereafter,
based on the processing, system 100 presents recommendations
corresponding to the gifts the user's friend may like. In one
embodiment of extracting application related information, a naive
Bayes classifier is used to classify a person as a sports fanatic
or tech savvy person and recommend him sports accessories or tech
gadgets. In another embodiment, collaborative filtering algorithm
is used to recommend gifts to used based on gifting/personality
related keywords in social feed.
[0041] In an embodiment, after the user selects a friend to whom he
wishes to purchase gift(s), the system may generate an identifier
for the friend. Thereafter, the system 100 may verify if the
generated identifier matches (completely or partially as described
earlier) with existing identifiers. If the generated identifier
does not match with the existing identifier, the system 100 may
conclude that a new user has been identified. The system 100
extracts information corresponding to the friend from the social
networking platform. The information is processed by system 100 to
present recommendations corresponding to the gifts the user's
friend may like.
[0042] Alternatively, if the generated identifier for the friend
matches with an existing identifier, then the system may use
information corresponding to the friend, which may already exist in
system 100, and may extract any new information corresponding to
the friend from the social networking platform, to process and
present recommendations. It shall be noted that information,
corresponding to the friend, which may have been extracted from
other social networking platforms, may exist in the system. In this
scenario, system 100 will be able to provide recommendation based
on information, corresponding to the friend, which has been
aggregated from more than one online social networking
platform.
[0043] As an example, the system 100 may be configured with two
websites, one that sells goods and services, and other that
facilitates purchasing gifts for friends. If the friend (from the
above embodiments) has used to first website to purchase an iPhone,
the system may have generated an identifier for the friend and
aggregated information about the friend, including the activity of
purchasing of the iPhone. Thereafter, when the user (from the above
embodiments) signs-in to the second website to purchase gifts for
his friend, the system 100 may generate an identifier for the
friend. Thereafter, the system 100 realizes that an identifier has
already been created for the friend. Subsequently, system 100 uses
information corresponding to the friend, such as, purchase of the
iPhone, to provide recommendation. For example, the gift
recommendations may include accessories for iPhone, such as, iPhone
cases, car charger and iPhone screen protector, which the user's
friend may like, thereby, increasing the relevancy of the
recommendations presented.
[0044] In another example of recommending gifts, system 100 may
have access to information corresponding to the user's friend from
more than one social networking platform, such as Foursquare, which
may provide information corresponding to the friend's location, and
another social networking platform, such as Facebook, which may
provide information, such as likes, dislikes and interests,
corresponding to the friend's. The system can use the information,
aggregated from both the social networking platforms, corresponding
to the friend, to provide gift recommendations to the user. For
example, the system may identifies that the user's friend is in
London from one of the social networking platforms, and may also
identify that the friend likes wine tasting, from the second social
networking platform. In light of these identifications, the system
may include wine tasting sessions and offers among the
recommendation of gifts provided to the user, who may purchase the
gift for his friend, thereby enhancing the relevancy of the
recommendations presented.
[0045] In an embodiment, user friend's information (feed
information) is combined with recommendation algorithms, such as,
collaborative algorithm, which can be used in the friend feed as
additional attributes in estimating the relevance of results that
are shown to the user.
[0046] In one of the embodiments, a friend feed is analyzed for
keywords in an application context, which is used to refine the
neighbor-hood scores given by collaborative filtering/information
retrieval algorithms. The important keywords themselves can be
extracted from a data store combined with category information in
the feed from the friend. For example, if the feed includes "Music:
Britney Spears concert is great", then a music recommendation
application would add Britney Spears as one of the liked artists in
Music Entities Category, by doing a data-store lookup for important
string matches in the feed, combined with sentiment analysis. In an
embodiment, important strings in the feed are extracted using token
weights, TFIDF (term frequency inverted document frequency) scores
across social feed by eliminating stop words approach in one
embodiment. The sentiment analysis can be done by a Bayes
classifier in one embodiment. In another embodiment, a SVM (support
vector machines) classifier is used to get sentiment information
about a given entity. It is to be noted that a person skilled in
the art can come up with different ways of analyzing feed. One
embodiment for instance can just use look up in the data store for
the whole, skip the token weights and use a decision tree for
sentiment analysis.
[0047] A person skilled in art would know that social feeds that
are derived in an application can be used across other applications
as we are storing the feeds and users info in a data store.
[0048] We also need to note that, we are aggregating information
about the user's friend as well, from the feed in the data store,
which can be used later when we need to present targeted content to
the friend when the friend visits a website that is coupled to
system 100.
[0049] In another embodiment, all the recommendation services
leveraging social network feeds can be hosted in a single domain,
in which case, the website can lookup cookie values and provide
recommendations without asking the user to login into social
network.
[0050] In an embodiment, when a user visits a food recommendation
site, the user is asked to log into location networking sites such
as www.twitter.com or www.foursquare.com or www.google.com/latitude
to retrieve his and his network's information. The response from
the feeds can then be used to aggregate the information for each
user in the response from the location based social network, using
identifier approach. In this embodiment, we have information about
his location as well as the user's personal interests, which can be
used, for example, to recommend "Indian restaurants" in "San Jose".
The system 100 can predict that the user likes Indian restaurant,
based on his analysis of, for example, Facebook profile, and
location as San Jose, from one of the location based social
networks.
[0051] In an embodiment, the system 100 may present a user with
targeted content based on information extracted, corresponding to
the user, from more than one social networking platforms. This may
be made possible by coupling the system 100 with more than one
website that enables creation of account using distinct social
networking platforms.
[0052] It shall be noted that, with time, system 100 may have
access to various categories of information corresponding to
several users. Using this information, the system may generate a
graph of users and, goods and service, which users may be
interested in. This graph may be used by the system to process and
present targeted content.
[0053] The processes described above and illustrated in the
drawings is shown as a sequence of steps, this was done solely for
the sake of illustration. Accordingly, it is contemplated that some
steps may be added, some steps may be omitted, the order of the
steps may be re-arranged, and/or some steps may be performed
simultaneously.
[0054] The example embodiments described herein may be implemented
in an operating environment comprising software installed on a
computer, in hardware, or in a combination of software and
hardware.
[0055] Although embodiments have been described with reference to
specific example embodiments, it will be evident that various
modifications and changes may be made to these embodiments without
departing from the broader spirit and scope of the system and
method described herein. Accordingly, the specification and
drawings are to be regarded in an illustrative rather than a
restrictive sense.
[0056] Many alterations and modifications of the present invention
will no doubt become apparent to a person of ordinary skill in the
art after having read the foregoing description. It is to be
understood that the phraseology or terminology employed herein is
for the purpose of description and not of limitation. It is to be
understood that the description above contains many specifications,
these should not be construed as limiting the scope of the
invention but as merely providing illustrations of some of the
personally preferred embodiments of this invention. Thus the scope
of the invention should be determined by the appended claims and
their legal equivalents rather than by the examples given.
* * * * *
References