WO2014100005A1 - Formation and description of user subgroups - Google Patents
Formation and description of user subgroups Download PDFInfo
- Publication number
- WO2014100005A1 WO2014100005A1 PCT/US2013/075809 US2013075809W WO2014100005A1 WO 2014100005 A1 WO2014100005 A1 WO 2014100005A1 US 2013075809 W US2013075809 W US 2013075809W WO 2014100005 A1 WO2014100005 A1 WO 2014100005A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- user
- sub
- group
- page
- vector
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06Q10/00—Administration; Management
- G06Q10/40—Business processes related to social networking or social networking services
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06Q10/00—Administration; Management
- G06Q10/40—Business processes related to social networking or social networking services
- G06Q10/42—Determination of affinities or common interests between users
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Definitions
- the present invention generally relates to the field of computer data storage and retrieval, and more specifically, to identifying and describing user sub-groups.
- Embodiments of the invention form sub-groups from a given user group of a social networking system and form descriptions of the sub-groups.
- the descriptions provide an intuitive understanding of sub-group composition, such as likings of the sub-groups, and are expressed in terms of the preferences or likings of the sub-groups.
- a given user group of a social networking system is clustered into a plurality of sub-groups, and representative characteristics such as the characteristics of a composite or actual member of the subgroup are determined for each sub-group.
- representative characteristics such as the characteristics of a composite or actual member of the subgroup are determined for each sub-group.
- a set of objects, such as pages of the social networking system is ranked with respect to the representative characteristics of the sub-group.
- the highest- ranking objects for a sub-group are then used to form the description of that sub-group. For example, the topics associated with each of the highest-ranking pages can be combined into the sub-group description.
- Clustering algorithms typically represent each object to be clustered (e.g., a user) by representing the object as a feature vector that characterizes the object and comparing the feature vectors of different objects. Specifically, a distance function is applied to the feature vectors of pairs of the objects, with objects for which the distance function produces a low value (i.e., "nearby" objects) being clustered into the same group.
- one set of feature vectors associated with the users is converted to another set of feature vectors with a lesser degree of sparsity, thus improving the ability of the clustering algorithm to meaningfully cluster the users. For example, in one embodiment a set of object affinities of the user is used to infer a smaller set of interests of the user. The user interests then serve as a feature vector to which a distance function is applied to cluster the users into sub-groups.
- a representative user is identified for the sub-group.
- the representative user is a synthetic composite of attributes of the users in the subgroup.
- the attributes of each user in the sub-group are weighted according to a distance of the corresponding user from a centroid of the sub-group, and the weighted attributes are averaged across all the users in the sub-group to obtain a centroid of the sub-group.
- the objects are ranked with respect to a sub-group by applying conditional probabilities to determine the probability that the representative user (e.g., a theoretical composite user) will have an affinity for the objects.
- conditional probabilities are computed in terms of an intermediate variable, such as a user interest. For example, the system may compute, for each possible interest, the conditional probability that a user with given attributes will have that interest, and also computes the conditional probability that a user having that interest will have an affinity for a particular object. These conditional probabilities are then applied to determine the probability that a given user will have an affinity for a particular object.
- a computer- implemented method comprises :
- the page affinity vector of the user indicates, for each page of a plurality of pages of the social networking system, whether the user has expressed an affinity for the page,
- the interest vector indicates, for each concept of a plurality of concepts, whether the user is likely to have an interest in the concept
- the interest vector has fewer elements than the page affinity vector; clustering the group of users into a plurality of sub-groups by applying a distance function to the interest vectors of the users and clustering those for which the distance function produces similar values;
- Identifying the centroid of the first subgroup can comprise averaging the interest vectors of the users in the first sub-group.
- Identifying the user characteristics corresponding to the user centroid can comprise:
- weighting user characteristics of the user based on the determined distance setting the user characteristics corresponding to the user centroid to a weighted average of the weighted user characteristics of the users in the first sub-group.
- Ranking each page or object of the plurality of pages or objects with respect to the first sub-group can comprise:
- the computer-implemented method further can comprise ranking each page or object of the plurality of pages or objects using the computed conditional probabilities.
- the computer-implemented method further can comprise:
- the computer-implemented method further can comprise:
- the page affinity vector of the user indicates, for each page of a plurality of pages of the social networking system, whether the user has expressed an affinity for the page,
- the interest vector indicates, for each concept of a plurality of concepts, whether the user is likely to have an interest in the concept
- the interest vector has fewer elements than the page affinity vector.
- Clustering the group of users into the plurality of sub-groups can comprise applying a distance function to pairs of the generated interest vectors.
- Identifying characteristics corresponding to the sub-group can comprise:
- the computer-implemented method further can comprise:
- a computer-implemented method comprises :
- the page affinity vector of the user indicates, for each page of a plurality of pages of the social networking system, whether the user has expressed an affinity for the page,
- the interest vector indicates, for each concept of a plurality of concepts, whether the user is likely to have an interest in the concept
- the interest vector has fewer elements than the page affinity vector; clustering the group of users into a plurality of sub-groups by ap- plying a distance function to the interest vectors of the users;
- a computer-implemented method which can be claimed as well, further can comprise:
- a computer-implemented method which can be claimed as well, further can comprise:
- the page affinity vector of the user indicates, for each page of a plurality of pages of the social networking system, whether the user has expressed an affinity for the page,
- the interest vector indicates, for each concept of a plurality of concepts, whether the user is likely to have an interest in the concept
- the interest vector has fewer elements than the page affinity vector.
- Ranking each page of the plurality of pages with respect to the first sub-group can comprise:
- the computer-implemented method further can comprise ranking each page of the plurality of pages using the computed conditional probabilities.
- a computer-implemented method which can be claimed as well, further can comprise:
- the objects can be pages of the social networking system.
- Ranking each object of the plurality of object with respect to the first sub-group can comprise:
- the computer-implemented method further can comprise ranking each object of the plurality of objects using the computed conditional probabilities.
- a computer-implemented method which can be claimed as well, further can comprise:
- one or more computer- readable non-transitory storage media embody software that is operable when executed to perform a method according to the invention or any of the above mentioned embodiments.
- a system comprises: 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 perform a method according to the invention or any of the above mentioned embodiments.
- FIG. 1 is a high-level block diagram of a computing environment, according to one embodiment.
- FIG. 2 is a block diagram illustrating the sub-group module of
- FIG. 1 according to one embodiment.
- FIG. 3 illustrates a simplified conceptual example of the mapping from a greater number of topics to a lesser number of interests, according to one embodiment.
- FIG. 4 is a flowchart illustrating the operations performed by the sub-group module when forming sub-groups from an initial target group of users and in forming descriptions of those sub-groups, according to one embodiment.
- FIG. 1 is a high-level block diagram of a computing environment according to one embodiment.
- FIG. 1 illustrates a social networking system 100, a client device 180, and a third party website 190 connected by a network 170.
- a user of the client device 180 interacts with the social networking system 100 via an application such as a web browser, performing operations such as browsing content, posting messages, performing queries for people or other content of interest, and the like.
- the user can also use the client device 180 to interact with the third party website 190.
- the third party website 190 can also interact with the social networking system 100 to obtain or to display data of the social networking system, either directly or indirectly.
- the social networking system 100 comprises an object store 1 10 that stores information on various objects tracked by the social networking system 100. These objects may represent a variety of things with which a user may interact in the social networking system 100, including, without limitation, other users 1 1 1 of the social networking system (represented, e.g. , as a profile object for the user), applications 1 12 (e.g., a game playable within the social networking system), events 1 13 (e.g., a concert that users may attend), groups 1 14 to which users may belong (e.g.
- pages 1 15 e.g., pages constituting a particular person or organization' s presence on the system, such as pages about particular politicians, car models, or TV shows
- items of media 1 16 e.g. , pictures, videos, audio, text, or any other type of media content
- locations 1 17 associated with a user e.g. , "San Jose, California, USA”
- concepts 1 18 or other terms e.g. , an object corresponding to the concept "alternative energy"
- the objects may have additional metadata associated with them.
- some or all of the pages 1 15 have an associated topic (e.g., one of the concepts 1 18, such as a particular car model, television show, sport, or the like).
- the object store 1 10 may further store objects representing other data routinely produced by users of the social networking system 100, such as inbox messages, status updates, comments, notes, and postings.
- An object in the object store 1 10 may represent an entity existing within the social networking system (e.g. , an application 1 12 available on the social networking system), a virtual entity that exists outside the domain of the social networking system (e.g. , a website), or a real-world entity (e.g. , a person, a product, or a show).
- the object store 1 10 may store all of the objects existing within the social networking system 100, such as the code of an application 1 12, or the image data associated with an image media item 1 16. Alternatively, for virtual entities existing outside of the social networking system 100, the object store 1 10 may contain some form of pointer or reference to the entities, such as the uniform resource locator (URL) of an external media item 1 16. Additionally, the object store 1 10 may also store metadata associated with the objects, such as a name describing the object (e.g. "Al Gore" for a person or page 1 15 , or "Green Energy Group” for a group 1 14), an image representing the object (e.g. , a user profile picture), or one or more tags assigned to the object by users (e.g.
- a name describing the object e.g. "Al Gore" for a person or page 1 15 , or "Green Energy Group” for a group 1 14
- an image representing the object e.g. , a user profile picture
- Different types of objects may have different types of metadata, such as a set of associated users 1 1 1 for a group 1 14, a media type (e.g., "video”) for a media item object 1 16, and a unique user ID and name tokens (e.g. , separate first and last names “Al” and “Gore") for a user object 1 1 1 .
- a media type e.g., "video”
- a unique user ID and name tokens e.g. , separate first and last names "Al” and "Gore
- the social networking system 100 further comprises a graph information store 120 that represents the objects of the object store 1 10 as nodes that are linked together in a "social graph.”
- the graph information store 120 thus comprises information about the relationships between or among the objects, represented as the edges connecting the various object nodes.
- edges in the social graph include: an edge between two user objects 1 1 1 representing that the users have a relationship in the social networking system (e.g., are friends, or have communicated, viewed the other's profile, or interacted in some way), an edge between a user object 1 1 1 and an application object 1 12 representing that the user has used the application, and an edge between a user object 1 1 1 and a group object 1 14 representing that the user belongs to the group, and an edge between a user object 1 1 1 and a page object 1 15 representing that the user has viewed the page or expressly specified an affinity for the page (e.g., "Liked" the page).
- an affinity for the page e.g., "Liked" the page.
- one user 1 1 1 establishes a relationship with another user in the social networking system
- the two users are each represented as a node, and the edge between them represents the established relationship; the two users are then said to be connected in the social network system.
- one of these users may send a message to the other user within the social networking system. This act of sending the message is another edge between those two nodes, which can be stored and/or tracked by the social networking system.
- the message itself may be treated as a node.
- one user may tag another user in an image that is maintained by the social networking system. This tagging action may create edges between the users as well as an edge between each of the users and the image, which is also a node.
- a social networking system may keep track of many different types of objects and edges (the interactions and connections among those objects), thereby maintaining an extremely rich store of socially relevant information.
- edges in the graph information store 120 have associated metadata, such as a label describing the type of relationship (e.g. , "friend” as the label between two user objects), and/or a value quantifying the strength of the relationship.
- a relationship degree, or "distance,” between any two objects can be ascertained by determining the number of edges on the shortest path between the objects. For example, two user objects that have an edge between them (e.g. , denoting a friendship relationship) have a relationship degree (or "distance”) of one and are considered first-order connections.
- a user object A is a first-order connection of user object B but not of user object C
- B is a first-order connection of C
- objects A and C have a relationship degree of two, indicating that C is a second-order connection of A (and vice-versa).
- the social networking system 100 further comprises a set of topics 122 determined to be representative of objects (e.g. , pages 1 15) as a whole, and a smaller set of interests 123 representing various interests that a user 1 1 1 could have.
- the topics 122 might comprise a number of topics related to automobiles, such as automobile brands such as FORD or TOYOTA, or particular automobile models such as FORD MUSTANG, TOYOTA PRIUS, OR TOYOTA CAMRY, whereas the interests 123 might include only the single interest "automobile.”
- the topics 122 comprise 6,000 discrete topics whereas the interests 123 comprise only 600 discrete interests.
- Both the topics 122 and the interests 123 may consist partially or entirely of ones of the concepts 1 18.
- the topics 122 and interests 123 may be determined in a number of manners in different embodiments. For example, they may be explicitly specified by employees of the social networking system 100 based on observation and experience. Alternatively, they may be automatically identified, either at a single initial time, or on a recurring basis. For example, the topics 122 may be automatically identified by identifying a topic for each page 1 15 accessed by users 1 1 1 , identifying the 6,000 most frequent topics of the aggregate page accesses, and selecting the most frequently accessed page for each of those topics.
- the social networking system 100 further comprises a set of representative objects 126, each representative object corresponding to one of the topics 122.
- the objects are pages 1 15.
- the corresponding representative page object 126 could be the official page of TOYOTA devoted to the PRIUS .
- the social networking system 100 further comprises a vector of user affinities 124 for each user 1 1 1 .
- the user affinities vector 124 represents expressly-specified affinities of the users for particular objects, such as ones of the representative pages 126.
- One example of an expressly-specified user affinity is a "Like" for a page. For instance, a given user might have expressed an affinity for a representative page 126 devoted to a particular model of car, for a representative page devoted to a particular television show, and for several representative pages devoted to various sports teams in which the user is interested. A typical user would not have expressed an affinity for the vast majority of the representative pages 126, and hence the set of user page affinities for that user would be highly sparse.
- the below often refers to a user affinities vector 124 for pages 1 1 1 , specifically, and refers to the representative objects 126 as representative pages. It is appreciated however, that in other embodiments the representative objects could be other types of objects in the object store 1 10, such as groups 1 14 or applications 1 12, for example, and that users could express affinities for such objects rather than for (or in addition to) pages 1 1 1 .
- the social networking system 100 further comprises a sub-group module 125 that performs actions with respect to sub-groups of the users 1 1 1 , such as forming sub-groups and forming descriptions of existing sub-groups.
- the sub-group module 125 is now described in more detail, below.
- FIG. 2 is a block diagram illustrating the sub-group module 125 of FIG. 1 .
- the sub-group module 125 comprises a sub-group formation module 240 that forms a plurality of sub-groups from an initial given group of users 1 1 1 , a cluster description module 250 that forms descriptions of the subgroups, and a training module 230 that performs initial data processing to produce information used by the sub-group formation module and the cluster description module.
- the training module 230 performs initial data processing to produce information used by the subgroup formation module 240 in the cluster description module 250 to form and describe user sub-groups.
- the training module 230 comprises an interest inference module 23 1 that applies machine learning to map the user affinities vector 124 for a given user to a set of interests 123. Mapping the user affinities vector 124, which is expressed for the various topics 122, to the smaller set of interests 123 reduces the dimensionality of a vector used to describe user affinities or interests, which enhances the ability of the sub-group formation module 242 to form meaningful sub-groups.
- the interest inference module 23 1 employs Collapsed Gibbs sampling for Latent Dirichlet Allocation (LDA).
- FIG. 3 illustrates a simplified conceptual example of the mapping from a greater number of topics to a lesser number of interests, according to one embodiment.
- the affinities vector 124 for a particular user u is shown expressed in terms of the topics 122, with the user having expressed affinities for the 5 13th, 1096th, 3566th, and 5 124th topics out of a set of 6,000 possible topics.
- a mapping operation 305 converts the expressed affinities from the topic space to the (smaller) interest space, determining that the affinities for the expressed topics are equivalent to the 496th and 556th interests out of a set of 600 interests.
- the training module 230 further comprises a probability computation module 232 that computes probabilities of affinities in terms of interests.
- the probability computation module 232 computes P(Oi
- the probability computation module 232 computes P(Oi
- the interest inference module 23 1 is used, for every user of some training subset of the users 1 1 1 , to map the affinities vector 124 of the user to a set of interests 123.
- the probability computation module 232 For each interest in the set of interests 123 , the probability computation module 232 generates a topic affinity histogram based on the affinities vector 124 for the users of the training subset having that interest within their mapped interests .
- the probability computation module 232 identifies the users of the training subset having the interest within their mapped interests, and generates the topic affinity histogram by summing the topic affinity counts from the affinities vector 124 for those users.
- the probability computation module 232 further generates, for each interest in the set of interests 123 , a probability distribution corresponding to the histogram for that interest.
- I j ) of an arbitrary user having an affinity for obj ect Oi corresponding to topic i, given that the user has interest j is (46 / 2,612), or approximately 1 .76%.
- the probability computation module 232 computes P(I j I U) using machine learning, where U represents user characteristics data describing the user, such as the interests 123 corresponding to the user's affinity vector 124, or user profile data of that user. In one embodiment, the probability computation module 232 employs Gibbs sampling.
- the probability computation module 232 computes one function P(I j
- U) For each interest j .
- a system would first choose the jth function corresponding to interest j , and would then evaluate that function using characteristics U as the argument.
- the probability computation module 232 computes one function P(Oi
- a system would first choose the ith function corresponding to object i, and would then evaluate that function using index j as the argument.
- the sub-group formation module 240 forms sub-groups out of a given group of users 1 1 1 .
- the sub-group formation module 240 comprises a clustering module 241 that forms the clusters that define the various sub-groups.
- the sub-group formation module 240 generates, for every user in the given original user group, an interest vector corresponding to the user' s affinity vector 124 using the interest inference module 23 1 .
- the interest vectors then represent the users of the given original user group for purposes of clustering.
- a clustering algorithm such as k-means clustering, is then applied to the interest of vectors.
- the clustering algorithm uses a distance function to determine how similar any two given interest vectors are; the greater the degree of similarity (equivalently, the lesser the distance) between a given pair of interest vectors, the greater the likelihood that they will be grouped into the same sub-group cluster.
- the distance function used to compute the similarity of two interest vectors is the vector dot product—that is, the sum of pairwise products— with greater values indicating greater degrees of similarity. (Note that since the interest vector is less sparse than the affinity vector 124, clustering based on the interest of vector produces higher-quality results than clustering based on the affinity vector 124.)
- the sub-group formation module 240 further comprises a sub-group characteristics module 242 that determines, for each sub-group generated by the clustering module 241 , characteristics that represent the sub-group as a whole.
- the sub-group characteristics module 242 represents the sub-group using the sub-group centroid vector, rather than selecting any one representative user within the sub-group, the centroid vector acting as a synthetic composite user. In such an embodiment, the sub-group characteristics module 242 first computes the centroid vector.
- Centroid vector computation may be accomplished by averaging the interest vectors within a sub-group, i.e., for each of the interests in the interest vectors, summing the corresponding values for that interest in the different interest vectors, and dividing by the number of interest vectors in the sub-group.
- the sub-group characteristics module 242 further determines characteristics that represent the centroid vector.
- the centroid vector itself—that is, the averaged interest vector— is itself used as the characteristics.
- a weighted average of whatever user characteristics U— such as the user's interest vector, or the user's profile data— is used to describe a given user, is used to describe the composite user represented by the centroid vector.
- the degree of similarity (equiva- lently, distance) produced by the distance function when applied to the interest vector and the centroid vector is treated as a weight and applied to the user characteristics U corresponding to the interest vector.
- the weighted user characteristics are then averaged, which emphasizes the characteristics of the users that are most similar to the composite user represented by the centroid vector.
- the sub-group formation module 240 further comprises a ranking module 243 that ranks representative objects 126 with respect to the sub-group characteristics generated by the sub-group characteristics module 242. (The objects that are ranked are those objects with respect to which the conditional probabilities were generated, such as the pages 1 15.) This ranking can then be used to determine the objects for which users in the sub-group would most likely have an affinity. Specifically, the ranking module applies the conditional probabilities generated by the probability computation module 232 in order to rank the objects.
- the cluster description module 250 produces a description for each of the sub-groups formed by the sub-group formation module 240, using the object rankings produced by the ranking module 243. Specifically, the cluster description module 250 identifies some number of the highest-ranked representative objects 126 in each sub-group—such as a predetermined number, or a predetermined percentage of the number of users in the sub-group. The cluster description module 250 then obtains a description of each of the highest- ranking objects, e.g. by identifying the topic 122 corresponding to the representative objects. The cluster description module 250 then produces a description for the sub-group according to the descriptions of each of the highest- ranking representative objects.
- the cluster description module 250 concatenates the textual descriptions of each of the topics 122 to produce the sub-group description. For instance, if the highest- ranking representative objects 126 for a particular sub-group had corresponding topics 122 "TOYOTA PRIUS,” “HYBRID CARS,” “RENEWABLE ENERGY,” and “PBS,” the cluster description module 250 could concatenate or otherwise combine these phrases to form a description of the sub-group.
- the description formed by the cluster description module 250 is of particular use to a human user, to whom such phrases often convey an intuitive sense of the nature of the users in the sub-group. This permits, for example, providing customized information to the users of the sub-group. For instance, a car manufacturer might have submitted an initial target user group to the subgroup module. Upon seeing the description "TOYOTA PRIUS,” “RENEWABLE ENERGY,” and "PBS,” for one sub-group of its initial target group, the car manufacturer might conclude that the sub-group contained people interested in environmental causes, and accordingly could produce an advertisement emphasizing its hybrid car models and their environmental benefits. Such customized advertisements are likely to produce better results, such as higher click- through rates or conversions, than a general ad provided to the entire initial target group.
- FIG. 4 is a flowchart illustrating the operations performed by the sub-group module 125 when forming sub-groups from an initial target group of users 1 1 1 and in forming descriptions of those sub-groups, according to one embodiment.
- the sub-group module 125 first clusters 410 the initial target group of users into subgroups, as discussed above with respect to the clustering module 241 .
- the sub-group module 125 further identifies 420 the centroid of each subgroup and identifies 430 the sub-group characteristics, forming the centroid vector and determining its corresponding composite user characteristics, as discussed above with respect to the sub-group characteristics module 242.
- the sub-group module 125 further ranks 440 representative objects 126, identifying a highest-ranking set of objects, as discussed above with respect to the ranking module 243.
- the subgroup module further forms 450 descriptions of each of the sub-groups using the highest-ranking objects, e.g. , concatenating or otherwise combining the topics 122 associated with the highest-ranking objects, as discussed above with respect to the cluster description module 250.
- a software module is implemented with a computer program product comprising a computer-readable medium containing computer program code, which can be executed by a computer processor for performing any or all of the steps, operations, or processes described.
- Embodiments of the invention may also relate to an apparatus for performing the operations herein.
- This apparatus may be specially constructed for the required purposes, and/or it may comprise a general-purpose computing device selectively activated or reconfigured by a computer program stored in the computer.
- a computer program may be stored in a non-transitory, tangible computer readable storage medium, or any type of media suitable for storing electronic instructions, which may be coupled to a computer system bus.
- any computing systems referred to in the specification may include a single processor or may be architectures employing multiple processor designs for increased computing capability.
- Embodiments of the invention may also relate to a product that is produced by a computing process described herein.
- a product may comprise information resulting from a computing process, where the information is stored on a non-transitory, tangible computer readable storage medium and may include any embodiment of a computer program product or other data combination described herein.
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Theoretical Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Economics (AREA)
- Human Resources & Organizations (AREA)
- Databases & Information Systems (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Finance (AREA)
- Operations Research (AREA)
- Tourism & Hospitality (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Game Theory and Decision Science (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computing Systems (AREA)
Abstract
A system forms sub-groups from a given user group of a social networking system and form descriptions of the sub-groups that provide an intuitive understanding of sub-group composition, such as likings of the sub-groups. In one embodiment, a given user group of a social networking system is clustered into a plurality of sub-groups, and representative characteristics - such as the characteristics of a composite or actual member of the sub-group - are determined for each sub-group. In order to form sub-group descriptions, a set of objects, such as pages of the social networking system, is ranked with respect to the representative characteristics of the sub-group. The highest-ranking objects for a sub-group are then used to form the description of that sub-group. For example, the topics associated with each of the highest-ranking pages can be combined into the sub-group description.
Description
FORMATION AND DESCRIPTION OF USER SUBGROUPS
TECHNICAL FIELD
[0001] The present invention generally relates to the field of computer data storage and retrieval, and more specifically, to identifying and describing user sub-groups.
BACKGROUND
[0002] Organizations often wish to understand in more detail the composition of a set of people of interest. For example, advertisers may wish to better understand the nature of a group of people to whom they might advertise, including the identities of various sub-groups within the larger group and characteristics of those sub-groups, since this would aid in the creation of subgroup- specific advertisements. Unfortunately, in many cases it is difficult to identify useful sub-groups. Further, even in cases where useful sub-groups can be identified, there is no standardized way to describe the sub-groups in a way that meaningfully conveys information about the composition and interests of the sub-groups.
SUMMARY
[0003] Embodiments of the invention form sub-groups from a given user group of a social networking system and form descriptions of the sub-groups. The descriptions provide an intuitive understanding of sub-group composition, such as likings of the sub-groups, and are expressed in terms of the preferences or likings of the sub-groups.
[0004] In one embodiment, a given user group of a social networking system is clustered into a plurality of sub-groups, and representative characteristics such as the characteristics of a composite or actual member of the subgroup are determined for each sub-group. To form sub-group descriptions, a set of objects, such as pages of the social networking system, is ranked with respect to the representative characteristics of the sub-group. The highest- ranking objects for a sub-group are then used to form the description of that sub-group. For example, the topics associated with each of the highest-ranking pages can be combined into the sub-group description.
[0005] Clustering algorithms typically represent each object to be clustered (e.g., a user) by representing the object as a feature vector that characterizes the object and comparing the feature vectors of different objects. Specifically, a distance function is applied to the feature vectors of pairs of the objects, with objects for which the distance function produces a low value (i.e., "nearby" objects) being clustered into the same group. In one embodiment, one set of feature vectors associated with the users is converted to another set of feature vectors with a lesser degree of sparsity, thus improving the ability of the clustering algorithm to meaningfully cluster the users. For example, in one embodiment a set of object affinities of the user is used to infer a smaller set of interests of the user. The user interests then serve as a feature vector to which a distance function is applied to cluster the users into sub-groups.
[0006] In one embodiment, to rank objects with respect to a sub-group, a representative user is identified for the sub-group. In one embodiment, the representative user is a synthetic composite of attributes of the users in the subgroup. In one such embodiment, the attributes of each user in the sub-group are weighted according to a distance of the corresponding user from a centroid of the sub-group, and the weighted attributes are averaged across all the users in the sub-group to obtain a centroid of the sub-group.
[0007] In one embodiment, the objects (e.g., pages of the social networking system) are ranked with respect to a sub-group by applying conditional probabilities to determine the probability that the representative user (e.g., a theoretical composite user) will have an affinity for the objects. In one such embodiment, conditional probabilities are computed in terms of an intermediate variable, such as a user interest. For example, the system may compute, for each possible interest, the conditional probability that a user with given attributes will have that interest, and also computes the conditional probability that a user having that interest will have an affinity for a particular object. These conditional probabilities are then applied to determine the probability that a given user will have an affinity for a particular object.
[0008] Embodiments according to the invention are in particular disclosed in the attached claims directed to a method, a storage medium and a system, wherein any feature mentioned in one claim category, e.g. method, can be claimed in another claim category, e.g. system, as well.
[0009] In an embodiment according to the invention, a computer- implemented method comprises :
for each user of a training set of users of a social networking system:
generating an interest vector from a page affinity vector of the user, wherein:
the page affinity vector of the user indicates, for each page of a plurality of pages of the social networking system, whether the user has expressed an affinity for the page,
the interest vector indicates, for each concept of a plurality of concepts, whether the user is likely to have an interest in the concept, and
the interest vector has fewer elements than the page affinity vector; clustering the group of users into a plurality of sub-groups by applying a distance function to the interest vectors of the users and clustering those for which the distance function produces similar values;
for a first sub-group of the plurality of subgroups :
identifying a centroid of the first sub-group;
identifying user characteristics corresponding to the centroid;
ranking each page of a plurality of pages or objects on the social networking system with respect to the sub-group based on the identified user characteristics, each page having an associated topic phrase;
identifying a plurality of the highest-ranking pages or objects;
forming a textual description of the sub-group comprising the topic phrases or topics associated with the identified plurality of highest-ranking pages or objects.
[0010] Identifying the centroid of the first subgroup can comprise averaging the interest vectors of the users in the first sub-group.
[0011] Identifying the user characteristics corresponding to the user centroid can comprise:
for each user in the first sub-group:
determining a distance of the user' s interest vector from the centroid using the distance function;
weighting user characteristics of the user based on the determined distance;
setting the user characteristics corresponding to the user centroid to a weighted average of the weighted user characteristics of the users in the first sub-group.
[0012] Ranking each page or object of the plurality of pages or objects with respect to the first sub-group can comprise:
for each concept represented by the interest vector:
computing a conditional probability that a user having the concept in the user's interest vector will have an affinity for a given page or object.
[0013] The computer-implemented method further can comprise ranking each page or object of the plurality of pages or objects using the computed conditional probabilities.
[0014] The computer-implemented method further can comprise:
clustering a group of users of a social networking system into a plurality of sub-groups;
for a first sub-group of the plurality of sub-groups :
identifying a centroid of the first sub-group;
identifying user characteristics corresponding to the centroid;
ranking each page or object of a plurality of pages or objects on the social networking system with respect to the first sub-group based on the identified user characteristics, each page having an associated topic;
forming a description of the first sub-group based on the topics associated with a plurality of the highest-ranking pages or objects.
[0015] The computer-implemented method further can comprise:
for each user of the group of users of the social networking system: generating an interest vector from a page affinity vector of the user, wherein:
the page affinity vector of the user indicates, for each page of a plurality of pages of the social networking system, whether the user has expressed an affinity for the page,
the interest vector indicates, for each concept of a plurality of concepts, whether the user is likely to have an interest in the concept, and
the interest vector has fewer elements than the page affinity vector.
[0016] Clustering the group of users into the plurality of sub-groups can comprise applying a distance function to pairs of the generated interest vectors.
[0017] Identifying characteristics corresponding to the sub-group can comprise:
identifying a centroid of the first sub-group; and
identifying user characteristics corresponding to the centroid by weighting characteristics of the users in the sub-group according to their distances from the centroid.
[0018] The computer-implemented method further can comprise:
for each user of a training set of users of a social networking system:
generating, from a first vector of information about a user, a second vector of information about the user, the second vector having lower dimensionality than the first vector;
clustering the group of users into a plurality of sub-groups by applying a distance function to the second vectors of the users;
for a first sub-group of the plurality of sub-groups :
identifying user characteristics corresponding to the first sub-group; ranking each page or object of a plurality of pages or objects with respect to the first sub-group based on the identified characteristics;
forming a textual description of the sub-group based on highest- ranking ones of the ranked pages or objects using topics corresponding to the first vectors.
[0019] In an embodiment according to the invention, which can be claimed as well, a computer-implemented method comprises :
for each user of a training set of users of a social networking system:
generating an interest vector from a page affinity vector of the user, wherein:
the page affinity vector of the user indicates, for each page of a plurality of pages of the social networking system, whether the user has expressed an affinity for the page,
the interest vector indicates, for each concept of a plurality of concepts, whether the user is likely to have an interest in the concept, and
the interest vector has fewer elements than the page affinity vector; clustering the group of users into a plurality of sub-groups by ap-
plying a distance function to the interest vectors of the users;
for a first sub-group of the plurality of subgroups :
identifying a centroid of the first sub-group;
identifying user characteristics corresponding to the centroid;
ranking each page of a plurality of pages on the social networking system with respect to the sub-group based on the identified user characteristics, each page having an associated topic phrase;
identifying a plurality of the highest-ranking objects;
forming a textual description of the sub-group comprising the topic phrases associated with the identified plurality of highest-ranking objects.
[0020] A computer-implemented method, which can be claimed as well, further can comprise:
clustering a group of users of a social networking system into a plurality of sub-groups;
for a first sub-group of the plurality of sub-groups :
identifying a centroid of the first sub-group;
identifying user characteristics corresponding to the centroid;
ranking each page of a plurality of pages on the social networking system with respect to the first sub-group based on the identified user characteristics, each page having an associated topic;
forming a description of the first sub-group based on the topics associated with a plurality of the highest-ranking objects.
[0021] A computer-implemented method, which can be claimed as well, further can comprise:
for each user of the group of users of the social networking system: generating an interest vector from a page affinity vector of the user, wherein:
the page affinity vector of the user indicates, for each page of a plurality of pages of the social networking system, whether the user has expressed an affinity for the page,
the interest vector indicates, for each concept of a plurality of concepts, whether the user is likely to have an interest in the concept, and
the interest vector has fewer elements than the page affinity vector.
[0022] Ranking each page of the plurality of pages with respect to the first
sub-group can comprise:
for each concept represented by the interest vector:
computing a conditional probability that a user having the concept in the user's interest vector will have an affinity for a given page.
[0023] The computer-implemented method further can comprise ranking each page of the plurality of pages using the computed conditional probabilities.
[0024] A computer-implemented method, which can be claimed as well, further can comprise:
clustering a group of users of a social networking system into a plurality of sub-groups;
for a first sub-group of the plurality of subgroups :
identifying characteristics corresponding to the first sub-group; ranking each object of a plurality of objects with respect to the first sub-group based on the identified characteristics, each object having an associated topic;
forming a description of the first sub-group based on the topics associated with a plurality of the highest-ranking objects.
[0025] The objects can be pages of the social networking system.
[0026] Ranking each object of the plurality of object with respect to the first sub-group can comprise:
for each concept represented by the interest vector:
computing a conditional probability that a user having the concept in the user's interest vector will have an affinity for a given object.
[0027] The computer-implemented method further can comprise ranking each object of the plurality of objects using the computed conditional probabilities.
[0028] A computer-implemented method, which can be claimed as well, further can comprise:
for each user of a training set of users of a social networking system:
generating, from a first vector of information about a user, a second vector of information about the user, the second vector having lower dimensionality than the first vector;
clustering the group of users into a plurality of sub-groups by applying a distance function to the second vectors of the users;
for a first sub-group of the plurality of sub-groups :
identifying user characteristics corresponding to the first sub-group; ranking each object of a plurality of objects with respect to the first sub-group based on the identified characteristics;
forming a textual description of the sub-group based on highest- ranking ones of the ranked objects using topics corresponding to the first vectors.
[0029] In a further embodiment of the invention, one or more computer- readable non-transitory storage media embody software that is operable when executed to perform a method according to the invention or any of the above mentioned embodiments.
[0030] In a further embodiment of the invention, a system comprises: 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 perform a method according to the invention or any of the above mentioned embodiments.
BRIEF DESCRIPTION OF DRAWINGS
[0031] FIG. 1 is a high-level block diagram of a computing environment, according to one embodiment.
FIG. 2 is a block diagram illustrating the sub-group module of
FIG. 1 , according to one embodiment.
FIG. 3 illustrates a simplified conceptual example of the mapping from a greater number of topics to a lesser number of interests, according to one embodiment.
FIG. 4 is a flowchart illustrating the operations performed by the sub-group module when forming sub-groups from an initial target group of users and in forming descriptions of those sub-groups, according to one embodiment.
[0032] The figures depict embodiments of the present invention for purposes of illustration only. One skilled in the art will readily recognize from the following description that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles
of the invention described herein.
DETAILED DESCRIPTION SYSTEM ARCHITECTURE
[0033] FIG. 1 is a high-level block diagram of a computing environment according to one embodiment. FIG. 1 illustrates a social networking system 100, a client device 180, and a third party website 190 connected by a network 170. A user of the client device 180 interacts with the social networking system 100 via an application such as a web browser, performing operations such as browsing content, posting messages, performing queries for people or other content of interest, and the like. The user can also use the client device 180 to interact with the third party website 190. Additionally, the third party website 190 can also interact with the social networking system 100 to obtain or to display data of the social networking system, either directly or indirectly.
[0034] The social networking system 100 comprises an object store 1 10 that stores information on various objects tracked by the social networking system 100. These objects may represent a variety of things with which a user may interact in the social networking system 100, including, without limitation, other users 1 1 1 of the social networking system (represented, e.g. , as a profile object for the user), applications 1 12 (e.g., a game playable within the social networking system), events 1 13 (e.g., a concert that users may attend), groups 1 14 to which users may belong (e.g. , a group devoted to alternative energy research), pages 1 15 (e.g., pages constituting a particular person or organization' s presence on the system, such as pages about particular politicians, car models, or TV shows), items of media 1 16 (e.g. , pictures, videos, audio, text, or any other type of media content), locations 1 17 associated with a user (e.g. , "San Jose, California, USA"), and concepts 1 18 or other terms (e.g. , an object corresponding to the concept "alternative energy"). The objects may have additional metadata associated with them. For example, in one embodiment some or all of the pages 1 15 have an associated topic (e.g., one of the concepts 1 18, such as a particular car model, television show, sport, or the like). The object store 1 10 may further store objects representing other data routinely produced by users of the social networking system 100, such as inbox messages, status
updates, comments, notes, and postings. An object in the object store 1 10 may represent an entity existing within the social networking system (e.g. , an application 1 12 available on the social networking system), a virtual entity that exists outside the domain of the social networking system (e.g. , a website), or a real-world entity (e.g. , a person, a product, or a show).
[0035] The object store 1 10 may store all of the objects existing within the social networking system 100, such as the code of an application 1 12, or the image data associated with an image media item 1 16. Alternatively, for virtual entities existing outside of the social networking system 100, the object store 1 10 may contain some form of pointer or reference to the entities, such as the uniform resource locator (URL) of an external media item 1 16. Additionally, the object store 1 10 may also store metadata associated with the objects, such as a name describing the object (e.g. "Al Gore" for a person or page 1 15 , or "Green Energy Group" for a group 1 14), an image representing the object (e.g. , a user profile picture), or one or more tags assigned to the object by users (e.g. the textual strings "game", "crime", and "strategy" for a strategy game application). Different types of objects may have different types of metadata, such as a set of associated users 1 1 1 for a group 1 14, a media type (e.g., "video") for a media item object 1 16, and a unique user ID and name tokens (e.g. , separate first and last names "Al" and "Gore") for a user object 1 1 1 .
[0036] In one embodiment the social networking system 100 further comprises a graph information store 120 that represents the objects of the object store 1 10 as nodes that are linked together in a "social graph." The graph information store 120 thus comprises information about the relationships between or among the objects, represented as the edges connecting the various object nodes. Various examples of edges in the social graph include: an edge between two user objects 1 1 1 representing that the users have a relationship in the social networking system (e.g., are friends, or have communicated, viewed the other's profile, or interacted in some way), an edge between a user object 1 1 1 and an application object 1 12 representing that the user has used the application, and an edge between a user object 1 1 1 and a group object 1 14 representing that the user belongs to the group, and an edge between a user object 1 1 1 and a page object 1 15 representing that the user has viewed the page or expressly specified an affinity for the page (e.g., "Liked" the page).
[0037] For example, if one user 1 1 1 establishes a relationship with another user in the social networking system, the two users are each represented as a node, and the edge between them represents the established relationship; the two users are then said to be connected in the social network system. Continuing this example, one of these users may send a message to the other user within the social networking system. This act of sending the message is another edge between those two nodes, which can be stored and/or tracked by the social networking system. The message itself may be treated as a node. In another example, one user may tag another user in an image that is maintained by the social networking system. This tagging action may create edges between the users as well as an edge between each of the users and the image, which is also a node. In yet another example, if a user confirms attending an event, the user and the event are nodes, where the indication of whether or not the user will attend the event is the edge. Using a social graph, therefore, a social networking system may keep track of many different types of objects and edges (the interactions and connections among those objects), thereby maintaining an extremely rich store of socially relevant information.
[0038] In one embodiment, edges in the graph information store 120 have associated metadata, such as a label describing the type of relationship (e.g. , "friend" as the label between two user objects), and/or a value quantifying the strength of the relationship. Further, a relationship degree, or "distance," between any two objects can be ascertained by determining the number of edges on the shortest path between the objects. For example, two user objects that have an edge between them (e.g. , denoting a friendship relationship) have a relationship degree (or "distance") of one and are considered first-order connections. Similarly, if a user object A is a first-order connection of user object B but not of user object C, and B is a first-order connection of C, then objects A and C have a relationship degree of two, indicating that C is a second-order connection of A (and vice-versa).
[0039] The social networking system 100 further comprises a set of topics 122 determined to be representative of objects (e.g. , pages 1 15) as a whole, and a smaller set of interests 123 representing various interests that a user 1 1 1 could have. For example, the topics 122 might comprise a number of topics related to automobiles, such as automobile brands such as FORD or TOYOTA, or
particular automobile models such as FORD MUSTANG, TOYOTA PRIUS, OR TOYOTA CAMRY, whereas the interests 123 might include only the single interest "automobile." In one embodiment, for example, the topics 122 comprise 6,000 discrete topics whereas the interests 123 comprise only 600 discrete interests. Both the topics 122 and the interests 123 may consist partially or entirely of ones of the concepts 1 18.
[0040] The topics 122 and interests 123 may be determined in a number of manners in different embodiments. For example, they may be explicitly specified by employees of the social networking system 100 based on observation and experience. Alternatively, they may be automatically identified, either at a single initial time, or on a recurring basis. For example, the topics 122 may be automatically identified by identifying a topic for each page 1 15 accessed by users 1 1 1 , identifying the 6,000 most frequent topics of the aggregate page accesses, and selecting the most frequently accessed page for each of those topics.
[0041] In one embodiment, the social networking system 100 further comprises a set of representative objects 126, each representative object corresponding to one of the topics 122. In one embodiment, the objects are pages 1 15. For example, for a page topic 122 "TOYOTA PRIUS," the corresponding representative page object 126 could be the official page of TOYOTA devoted to the PRIUS .
[0042] In one embodiment, the social networking system 100 further comprises a vector of user affinities 124 for each user 1 1 1 . The user affinities vector 124 represents expressly-specified affinities of the users for particular objects, such as ones of the representative pages 126. One example of an expressly-specified user affinity is a "Like" for a page. For instance, a given user might have expressed an affinity for a representative page 126 devoted to a particular model of car, for a representative page devoted to a particular television show, and for several representative pages devoted to various sports teams in which the user is interested. A typical user would not have expressed an affinity for the vast majority of the representative pages 126, and hence the set of user page affinities for that user would be highly sparse.
[0043] For purposes of example, the below often refers to a user affinities vector 124 for pages 1 1 1 , specifically, and refers to the representative objects
126 as representative pages. It is appreciated however, that in other embodiments the representative objects could be other types of objects in the object store 1 10, such as groups 1 14 or applications 1 12, for example, and that users could express affinities for such objects rather than for (or in addition to) pages 1 1 1 .
[0044] The social networking system 100 further comprises a sub-group module 125 that performs actions with respect to sub-groups of the users 1 1 1 , such as forming sub-groups and forming descriptions of existing sub-groups. The sub-group module 125 is now described in more detail, below.
[0045] FIG. 2 is a block diagram illustrating the sub-group module 125 of FIG. 1 . The sub-group module 125 comprises a sub-group formation module 240 that forms a plurality of sub-groups from an initial given group of users 1 1 1 , a cluster description module 250 that forms descriptions of the subgroups, and a training module 230 that performs initial data processing to produce information used by the sub-group formation module and the cluster description module. These modules are now described in greater detail.
[0046] The training module 230 performs initial data processing to produce information used by the subgroup formation module 240 in the cluster description module 250 to form and describe user sub-groups.
[0047] Specifically, the training module 230 comprises an interest inference module 23 1 that applies machine learning to map the user affinities vector 124 for a given user to a set of interests 123. Mapping the user affinities vector 124, which is expressed for the various topics 122, to the smaller set of interests 123 reduces the dimensionality of a vector used to describe user affinities or interests, which enhances the ability of the sub-group formation module 242 to form meaningful sub-groups. In one embodiment, the interest inference module 23 1 employs Collapsed Gibbs sampling for Latent Dirichlet Allocation (LDA).
[0048] FIG. 3 illustrates a simplified conceptual example of the mapping from a greater number of topics to a lesser number of interests, according to one embodiment. Specifically, the affinities vector 124 for a particular user u is shown expressed in terms of the topics 122, with the user having expressed affinities for the 5 13th, 1096th, 3566th, and 5 124th topics out of a set of 6,000 possible topics. A mapping operation 305 converts the expressed affinities
from the topic space to the (smaller) interest space, determining that the affinities for the expressed topics are equivalent to the 496th and 556th interests out of a set of 600 interests.
[0049] Referring again to FIG. 2, the training module 230 further comprises a probability computation module 232 that computes probabilities of affinities in terms of interests. For example, in one embodiment the probability computation module 232 computes P(Oi | Ij)— the probability that a user 1 1 1 with interest j would have an affinity for object i (e.g. , would like the z'th representative page 126)— and also computes P(Ij | U)— the probability that a particular user having the user characteristics U would have interest j. Since∑j [ P(Oi I Ij) * P(Ij I U) ] = P(Oi I U), the ability to calculate both P(0; | Ij) and P(Ij I U) provides the ability to calculate P(Oi | U), as well. Thus, knowledge of user interests is used to estimate user affinities for obj ects corresponding to given topics.
[0050] Specifically, in this embodiment the probability computation module 232 computes P(Oi | Ij) as follows . The interest inference module 23 1 is used, for every user of some training subset of the users 1 1 1 , to map the affinities vector 124 of the user to a set of interests 123. For each interest in the set of interests 123 , the probability computation module 232 generates a topic affinity histogram based on the affinities vector 124 for the users of the training subset having that interest within their mapped interests . Specifically, the probability computation module 232 identifies the users of the training subset having the interest within their mapped interests, and generates the topic affinity histogram by summing the topic affinity counts from the affinities vector 124 for those users. For example, for a training subset of 10,000 users, 552 of the users might have the 17th interest within their mapped interests. If, of those 552 users, 46 had expressed an affinity for the 12th topic, then the histogram corresponding to the 17th interest would contain the value 46 in the 12th entry. The probability computation module 232 further generates, for each interest in the set of interests 123 , a probability distribution corresponding to the histogram for that interest. Continuing the previous example, if there were a total of 2,612 expressions of interest for one of the topics 122 by the users of the training subset that have the 17th interest within their mapped interests, then the probability P(Oi | Ij) of an arbitrary user having an affinity for obj ect
Oi corresponding to topic i, given that the user has interest j, is (46 / 2,612), or approximately 1 .76%.
[0051] In one embodiment, the probability computation module 232 computes P(Ij I U) using machine learning, where U represents user characteristics data describing the user, such as the interests 123 corresponding to the user's affinity vector 124, or user profile data of that user. In one embodiment, the probability computation module 232 employs Gibbs sampling.
[0052] In one embodiment, the probability computation module 232 computes one function P(Ij | U) for each interest j . Thus, to determine the probability of a user with user characteristics U having the jth interest, a system would first choose the jth function corresponding to interest j , and would then evaluate that function using characteristics U as the argument. Similarly, in one embodiment the probability computation module 232 computes one function P(Oi | Ij) for each object i. Thus, to determine the probability that a user having the jth interest would have an affinity for ith object, a system would first choose the ith function corresponding to object i, and would then evaluate that function using index j as the argument.
[0053] The sub-group formation module 240 forms sub-groups out of a given group of users 1 1 1 . Specifically, the sub-group formation module 240 comprises a clustering module 241 that forms the clusters that define the various sub-groups. In one embodiment, the sub-group formation module 240 generates, for every user in the given original user group, an interest vector corresponding to the user' s affinity vector 124 using the interest inference module 23 1 . The interest vectors then represent the users of the given original user group for purposes of clustering. A clustering algorithm, such as k-means clustering, is then applied to the interest of vectors. The clustering algorithm uses a distance function to determine how similar any two given interest vectors are; the greater the degree of similarity (equivalently, the lesser the distance) between a given pair of interest vectors, the greater the likelihood that they will be grouped into the same sub-group cluster. In one embodiment, the distance function used to compute the similarity of two interest vectors is the vector dot product— that is, the sum of pairwise products— with greater values indicating greater degrees of similarity. (Note that since the interest vector is less sparse than the affinity vector 124, clustering based on the interest of vector produces
higher-quality results than clustering based on the affinity vector 124.)
[0054] The sub-group formation module 240 further comprises a sub-group characteristics module 242 that determines, for each sub-group generated by the clustering module 241 , characteristics that represent the sub-group as a whole. In one embodiment, the sub-group characteristics module 242 represents the sub-group using the sub-group centroid vector, rather than selecting any one representative user within the sub-group, the centroid vector acting as a synthetic composite user. In such an embodiment, the sub-group characteristics module 242 first computes the centroid vector. Centroid vector computation may be accomplished by averaging the interest vectors within a sub-group, i.e., for each of the interests in the interest vectors, summing the corresponding values for that interest in the different interest vectors, and dividing by the number of interest vectors in the sub-group. The sub-group characteristics module 242 further determines characteristics that represent the centroid vector. In one embodiment, the centroid vector itself— that is, the averaged interest vector— is itself used as the characteristics. In another embodiment, a weighted average of whatever user characteristics U— such as the user's interest vector, or the user's profile data— is used to describe a given user, is used to describe the composite user represented by the centroid vector. For example, for each interest vector in the sub-group, the degree of similarity (equiva- lently, distance) produced by the distance function when applied to the interest vector and the centroid vector is treated as a weight and applied to the user characteristics U corresponding to the interest vector. The weighted user characteristics are then averaged, which emphasizes the characteristics of the users that are most similar to the composite user represented by the centroid vector.
[0055] The sub-group formation module 240 further comprises a ranking module 243 that ranks representative objects 126 with respect to the sub-group characteristics generated by the sub-group characteristics module 242. (The objects that are ranked are those objects with respect to which the conditional probabilities were generated, such as the pages 1 15.) This ranking can then be used to determine the objects for which users in the sub-group would most likely have an affinity. Specifically, the ranking module applies the conditional probabilities generated by the probability computation module 232 in order to rank the objects. As previously described, since∑j [ P(Oi | Ij) * P(Ij | U) ] =
P(Oi I U), the ability to calculate both Ρ(0; | Ij) and P(Ij | U) provides the ability to calculate P(Oi | U), as well. Thus, given the conditional probabilities P(Oi I Ij) and P(Ij | U), which involve the intermediate variable Ij corresponding to user interest, the value P(Oi | U) can be calculated by multiplying P(Oi | Ij) and P(Ij | U). The various objects Ot are then ranked based on value P(Oi | U).
[0056] The cluster description module 250 produces a description for each of the sub-groups formed by the sub-group formation module 240, using the object rankings produced by the ranking module 243. Specifically, the cluster description module 250 identifies some number of the highest-ranked representative objects 126 in each sub-group— such as a predetermined number, or a predetermined percentage of the number of users in the sub-group. The cluster description module 250 then obtains a description of each of the highest- ranking objects, e.g. by identifying the topic 122 corresponding to the representative objects. The cluster description module 250 then produces a description for the sub-group according to the descriptions of each of the highest- ranking representative objects. For example, in one embodiment, the cluster description module 250 concatenates the textual descriptions of each of the topics 122 to produce the sub-group description. For instance, if the highest- ranking representative objects 126 for a particular sub-group had corresponding topics 122 "TOYOTA PRIUS," "HYBRID CARS," "RENEWABLE ENERGY," and "PBS," the cluster description module 250 could concatenate or otherwise combine these phrases to form a description of the sub-group.
[0057] The description formed by the cluster description module 250 is of particular use to a human user, to whom such phrases often convey an intuitive sense of the nature of the users in the sub-group. This permits, for example, providing customized information to the users of the sub-group. For instance, a car manufacturer might have submitted an initial target user group to the subgroup module. Upon seeing the description "TOYOTA PRIUS," "RENEWABLE ENERGY," and "PBS," for one sub-group of its initial target group, the car manufacturer might conclude that the sub-group contained people interested in environmental causes, and accordingly could produce an advertisement emphasizing its hybrid car models and their environmental benefits. Such customized advertisements are likely to produce better results, such as higher click- through rates or conversions, than a general ad provided to the entire initial
target group.
[0058] FIG. 4 is a flowchart illustrating the operations performed by the sub-group module 125 when forming sub-groups from an initial target group of users 1 1 1 and in forming descriptions of those sub-groups, according to one embodiment.
[0059] The sub-group module 125 first clusters 410 the initial target group of users into subgroups, as discussed above with respect to the clustering module 241 . The sub-group module 125 further identifies 420 the centroid of each subgroup and identifies 430 the sub-group characteristics, forming the centroid vector and determining its corresponding composite user characteristics, as discussed above with respect to the sub-group characteristics module 242. The sub-group module 125 further ranks 440 representative objects 126, identifying a highest-ranking set of objects, as discussed above with respect to the ranking module 243. The subgroup module further forms 450 descriptions of each of the sub-groups using the highest-ranking objects, e.g. , concatenating or otherwise combining the topics 122 associated with the highest-ranking objects, as discussed above with respect to the cluster description module 250.
[0060] The foregoing description of the embodiments of the invention has been presented for the purpose of illustration; it is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Persons skilled in the relevant art can appreciate that many modifications and variations are possible in light of the above disclosure.
[0061] Some portions of this description describe the embodiments of the invention in terms of algorithms and symbolic representations of operations on information. These algorithmic descriptions and representations are commonly used by those skilled in the data processing arts to convey the substance of their work effectively to others skilled in the art. These operations, while described functionally, computationally, or logically, are understood to be implemented by computer programs or equivalent electrical circuits, microcode, or the like. Furthermore, it has also proven convenient at times, to refer to these arrangements of operations as modules, without loss of generality. The described operations and their associated modules may be embodied in software, firmware, hardware, or any combinations thereof.
[0062] Any of the steps, operations, or processes described herein may be
performed or implemented with one or more hardware or software modules, alone or in combination with other devices. In one embodiment, a software module is implemented with a computer program product comprising a computer-readable medium containing computer program code, which can be executed by a computer processor for performing any or all of the steps, operations, or processes described.
[0063] Embodiments of the invention may also relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, and/or it may comprise a general-purpose computing device selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a non-transitory, tangible computer readable storage medium, or any type of media suitable for storing electronic instructions, which may be coupled to a computer system bus. Furthermore, any computing systems referred to in the specification may include a single processor or may be architectures employing multiple processor designs for increased computing capability.
[0064] Embodiments of the invention may also relate to a product that is produced by a computing process described herein. Such a product may comprise information resulting from a computing process, where the information is stored on a non-transitory, tangible computer readable storage medium and may include any embodiment of a computer program product or other data combination described herein.
[0065] Finally, the language used in the specification has been principally selected for readability and instructional purposes, and it may not have been selected to delineate or circumscribe the inventive subject matter. It is therefore intended that the scope of the invention be limited not by this detailed description, but rather by any claims that issue on an application based hereon. Accordingly, the disclosure of the embodiments of the invention is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims.
Claims
1. A computer-implemented method comprising:
for each user of a training set of users of a social networking system:
generating an interest vector from a page affinity vector of the user, wherein:
the page affinity vector of the user indicates, for each page of a plurality of pages of the social networking system, whether the user has expressed an affinity for the page,
the interest vector indicates, for each concept of a plurality of concepts, whether the user is likely to have an interest in the concept, and
the interest vector has fewer elements than the page affinity vector; clustering the group of users into a plurality of sub-groups by applying a distance function to the interest vectors of the users;
for a first sub-group of the plurality of subgroups:
identifying a centroid of the first sub-group;
identifying user characteristics corresponding to the centroid; ranking each page of a plurality of pages on the social networking system with respect to the sub-group based on the identified user characteristics, each page having an associated topic phrase;
identifying a plurality of the highest-ranking objects;
forming a textual description of the sub-group comprising the topic phrases associated with the identified plurality of highest-ranking objects.
2. The computer-implemented method of claim 1 , wherein identifying the centroid of the first subgroup comprises averaging the interest vectors of the users in the first sub-group.
3. The computer-implemented method of claim 2, wherein identifying the user characteristics corresponding to the user centroid comprises:
for each user in the first sub-group:
determining a distance of the user's interest vector from the centroid using the distance function;
weighting user characteristics of the user based on the determined distance; setting the user characteristics corresponding to the user centroid to a weighted average of the weighted user characteristics of the users in the first sub-group.
4. The computer-implemented method of claim 1 , wherein ranking each page of the plurality of pages with respect to the first sub-group comprises:
for each concept represented by the interest vector:
computing a conditional probability that a user having the concept in the user's interest vector will have an affinity for a given page.
5. The computer-implemented method of claim 4, further comprising ranking each page of the plurality of pages using the computed conditional probabilities.
6. A computer-implemented method comprising:
clustering a group of users of a social networking system into a plurality of subgroups;
for a first sub-group of the plurality of sub-groups:
identifying a centroid of the first sub-group;
identifying user characteristics corresponding to the centroid;
ranking each page of a plurality of pages on the social networking system with respect to the first sub-group based on the identified user characteristics, each page having an associated topic;
forming a description of the first sub-group based on the topics associated with a plurality of the highest-ranking objects.
7. The computer-implemented method of claim 6, further comprising:
for each user of the group of users of the social networking system:
generating an interest vector from a page affinity vector of the user, wherein:
the page affinity vector of the user indicates, for each page of a plurality of pages of the social networking system, whether the user has expressed an affinity for the page,
the interest vector indicates, for each concept of a plurality of concepts, whether the user is likely to have an interest in the concept, and
the interest vector has fewer elements than the page affinity vector.
8. The computer-implemented method of claim 7, wherein clustering the group of users into the plurality of sub-groups comprises applying a distance function to pairs of the generated interest vectors.
9. The computer-implemented method of claim 8, wherein identifying the user characteristics corresponding to the user centroid comprises:
for each user in the first sub-group:
determining a distance of the user's interest vector from the centroid using the distance function;
weighting user characteristics of the user based on the determined distance; and
setting the user characteristics corresponding to the user centroid to a
weighted average of the weighted user characteristics of the users in the first sub-group.
10. The computer-implemented method of claim 7, wherein identifying the centroid of the first subgroup comprises averaging the interest vectors of the users in the first sub-group.
11. The computer-implemented method of claim 7, wherein ranking each page of the plurality of pages with respect to the first sub-group comprises:
for each concept represented by the interest vector:
computing a conditional probability that a user having the concept in the user's interest vector will have an affinity for a given page.
12. The computer-implemented method of claim 11, further comprising ranking each page of the plurality of pages using the computed conditional probabilities.
13. A computer-implemented method comprising :
clustering a group of users of a social networking system into a plurality of subgroups;
for a first sub-group of the plurality of subgroups:
identifying characteristics corresponding to the first sub-group;
ranking each object of a plurality of objects with respect to the first subgroup based on the identified characteristics, each object having an associated topic;
forming a description of the first sub-group based on the topics associated with a plurality of the highest-ranking objects.
14. The computer-implemented method of claim 13, wherein the objects are pages of the social networking system.
15. The computer-implemented method of claim 13, wherein clustering the group of users into the plurality of sub-groups comprises applying a distance function to pairs of the generated interest vectors.
16. The computer-implemented method of claim 13, wherein identifying characteristics corresponding to the sub-group comprises:
identifying a centroid of the first sub-group; and
identifying user characteristics corresponding to the centroid by weighting characteristics of the users in the sub-group according to their distances from the centroid.
17. The computer-implemented method of claim 16, wherein identifying the centroid of the first subgroup comprises averaging the interest vectors of the users in the first sub-group.
18. The computer-implemented method of claim 13 wherein ranking each object of the plurality of object with respect to the first sub-group comprises:
for each concept represented by the interest vector:
computing a conditional probability that a user having the concept in the user's interest vector will have an affinity for a given object.
19. The computer-implemented method of claim 18, further comprising ranking each object of the plurality of objects using the computed conditional probabilities.
20. A computer-implemented method comprising:
for each user of a training set of users of a social networking system:
generating, from a first vector of information about a user, a second vector of information about the user, the second vector having lower dimensionality than the first vector;
clustering the users into a plurality of sub-groups by applying a distance function to the second vectors of the users;
for a first sub-group of the plurality of sub-groups:
identifying user characteristics corresponding to the first sub-group;
ranking each object of a plurality of objects with respect to the first subgroup based on the identified characteristics;
forming a textual description of the sub-group based on highest-ranking ones of the ranked objects using topics corresponding to the first vectors.
21. A computer-implemented method comprising:
for each user of a training set of users of a social networking system:
generating an interest vector from a page affinity vector of the user, wherein:
the page affinity vector of the user indicates, for each page of a plurality of pages of the social networking system, whether the user has expressed an affinity for the page,
the interest vector indicates, for each concept of a plurality of concepts, whether the user is likely to have an interest in the concept, and
the interest vector has fewer elements than the page affinity vector; clustering the group of users into a plurality of sub-groups by applying a distance function to the interest vectors of the users and clustering those for which the distance function produces similar values;
for a first sub-group of the plurality of subgroups:
identifying a centroid of the first sub-group;
identifying user characteristics corresponding to the centroid; ranking each page of a plurality of pages or objects on the social networking system with respect to the sub-group based on the identified user characteristics, each page having an associated topic phrase;
identifying a plurality of the highest-ranking pages or objects; forming a textual description of the sub-group comprising the topic phrases or topics associated with the identified plurality of highest-ranking pages or objects.
22. The computer-implemented method of claim 21, wherein identifying the centroid of the first subgroup comprises averaging the interest vectors of the users in the first sub-group.
23. The computer-implemented method of any of claims 1 to 2, wherein identifying the user characteristics corresponding to the user centroid comprises:
for each user in the first sub-group:
determining a distance of the user's interest vector from the centroid using the distance function;
weighting user characteristics of the user based on the determined distance; setting the user characteristics corresponding to the user centroid to a
weighted average of the weighted user characteristics of the users in the first sub-group.
24. The computer-implemented method of any of claims 1 to 3, wherein ranking each page or object of the plurality of pages or objects with respect to the first subgroup comprises:
for each concept represented by the interest vector:
computing a conditional probability that a user having the concept in the user's interest vector will have an affinity for a given page or object.
25. The computer-implemented method of any of claims 1 to 4, further comprising ranking each page or object of the plurality of pages or objects using the computed conditional probabilities.
26. The computer-implemented method of any of claims 1 to 5, further comprising:
clustering a group of users of a social networking system into a plurality of subgroups;
for a first sub-group of the plurality of sub-groups:
identifying a centroid of the first sub-group;
identifying user characteristics corresponding to the centroid;
ranking each page or object of a plurality of pages or objects on the social networking system with respect to the first sub-group based on the identified user characteristics, each page having an associated topic; forming a description of the first sub-group based on the topics associated with a plurality of the highest-ranking pages or objects.
27. The computer-implemented method of any of claims 1 to 6, further comprising:
for each user of the group of users of the social networking system:
generating an interest vector from a page affinity vector of the user, wherein:
the page affinity vector of the user indicates, for each page of a plurality of pages of the social networking system, whether the user has expressed an affinity for the page,
the interest vector indicates, for each concept of a plurality of concepts, whether the user is likely to have an interest in the concept, and
the interest vector has fewer elements than the page affinity vector.
28. The computer-implemented method of any of claims 1 to 7, wherein clustering the group of users into the plurality of sub-groups comprises applying a distance function to pairs of the generated interest vectors.
29. The computer-implemented method of any of claims 1 to 8, wherein identifying characteristics corresponding to the sub-group comprises:
identifying a centroid of the first sub-group; and
identifying user characteristics corresponding to the centroid by weighting characteristics of the users in the sub-group according to their distances from the centroid.
30. The computer-implemented method of any of claims 1 to 9, further comprising:
for each user of a training set of users of a social networking system:
generating, from a first vector of information about a user, a second vector of information about the user, the second vector having lower dimensionality than the first vector;
clustering the group of users into a plurality of sub-groups by applying a distance function to the second vectors of the users;
for a first sub-group of the plurality of sub-groups:
identifying user characteristics corresponding to the first sub-group;
ranking each page or object of a plurality of pages or objects with respect to the first sub-group based on the identified characteristics;
forming a textual description of the sub-group based on highest-ranking ones of the ranked pages or objects using topics corresponding to the first vectors.
31. One or more computer-readable non-transitory storage media embodying software that is operable when executed to perform a method according to any of claims 1 to 10.
32. 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 perform a method according to any of the claims 1 to 10.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US13/720,763 US9348886B2 (en) | 2012-12-19 | 2012-12-19 | Formation and description of user subgroups |
| US13/720,763 | 2012-12-19 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2014100005A1 true WO2014100005A1 (en) | 2014-06-26 |
Family
ID=49841528
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2013/075809 Ceased WO2014100005A1 (en) | 2012-12-19 | 2013-12-17 | Formation and description of user subgroups |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US9348886B2 (en) |
| EP (1) | EP2747022A1 (en) |
| WO (1) | WO2014100005A1 (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP3188086A1 (en) * | 2015-12-30 | 2017-07-05 | Facebook, Inc. | Identifying entities using a deep-learning model |
| US10402750B2 (en) | 2015-12-30 | 2019-09-03 | Facebook, Inc. | Identifying entities using a deep-learning model |
Families Citing this family (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2528595A (en) * | 2013-03-12 | 2016-01-27 | Ibm | Method for user categorization in social media, computer program, and computer |
| US9607340B2 (en) * | 2013-03-12 | 2017-03-28 | Oracle International Corporation | Method and system for implementing author profiling |
| US9251275B2 (en) | 2013-05-16 | 2016-02-02 | International Business Machines Corporation | Data clustering and user modeling for next-best-action decisions |
| US20150006297A1 (en) * | 2013-06-27 | 2015-01-01 | Exacttarget, Inc. | Generating communications including content based on derived attributes |
| US9965541B2 (en) * | 2015-02-24 | 2018-05-08 | Salesforce.Com, Inc. | Interest groups based on network feed items |
| US11074274B2 (en) | 2016-05-03 | 2021-07-27 | Affinio Inc. | Large scale social graph segmentation |
| WO2017214703A1 (en) | 2016-06-13 | 2017-12-21 | Affinio Inc. | Modelling user behaviour in social network |
| US10402836B2 (en) * | 2017-01-31 | 2019-09-03 | Facebook, Inc. | System and method for selecting geographic regions for presentation of content based on characteristics of online system users in different geographic regions |
| US11106995B2 (en) * | 2017-02-23 | 2021-08-31 | International Business Machines Corporation | Automatic segmentation of a collection of user profiles |
| US20190069030A1 (en) * | 2017-08-25 | 2019-02-28 | Facebook, Inc. | Determining effects of presenting a content item to various users on actions performed by the users based on actions performed by users to whom the content item was and was not presented |
| CA3117534A1 (en) * | 2017-11-01 | 2019-05-09 | Affinio Inc. | Mutually repulsing centroids for segmenting a vast social graph |
| US20190156366A1 (en) * | 2017-11-17 | 2019-05-23 | Facebook, Inc. | Identifying actions for different groups of users after presentation of a content item to the groups of users |
| US10706079B2 (en) * | 2018-01-23 | 2020-07-07 | Vmware, Inc. | Group clustering using inter-group dissimilarities |
| US11789952B2 (en) * | 2018-09-26 | 2023-10-17 | Salesforce, Inc. | Ranking enterprise search results based on relationships between users |
| GB2611695A (en) | 2020-07-14 | 2023-04-12 | Affinio Inc | Method and system for secure distributed software-service |
| US20230046696A1 (en) * | 2021-08-10 | 2023-02-16 | Shusheng Fang | Method and system for provisioning realtime social community based on location service |
| CN119295141B (en) * | 2024-12-10 | 2025-02-25 | 国网四川省电力公司成都供电公司 | User energy portrait analysis method and system based on AI |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6405159B2 (en) * | 1998-06-03 | 2002-06-11 | Sbc Technology Resources, Inc. | Method for categorizing, describing and modeling types of system users |
| US20100005105A1 (en) * | 2008-07-02 | 2010-01-07 | Palo Alto Research Center Incorporated | Method for facilitating social networking based on fashion-related information |
| JP2011118642A (en) * | 2009-12-03 | 2011-06-16 | Nippon Telegr & Teleph Corp <Ntt> | System and method for analyzing growth potential of service scale, and program for the system and method |
| US20110252044A1 (en) * | 2010-04-13 | 2011-10-13 | Konkuk University Industrial Cooperation Corp. | Apparatus and method for measuring contents similarity based on feedback information of ranked user and computer readable recording medium storing program thereof |
| WO2012055067A1 (en) * | 2010-10-26 | 2012-05-03 | Hewlett-Packard Development Company, L.P. | Extraction of content from a web page |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6981040B1 (en) * | 1999-12-28 | 2005-12-27 | Utopy, Inc. | Automatic, personalized online information and product services |
| US9715500B2 (en) * | 2004-04-27 | 2017-07-25 | Apple Inc. | Method and system for sharing playlists |
| US8484083B2 (en) * | 2007-02-01 | 2013-07-09 | Sri International | Method and apparatus for targeting messages to users in a social network |
| CN101779180B (en) * | 2007-08-08 | 2012-08-15 | 贝诺特公司 | Method and device for context-based content recommendation |
| US8019707B2 (en) * | 2007-09-20 | 2011-09-13 | Deutsche Telekom Ag | Interactive hybrid recommender system |
| EP2107761A1 (en) * | 2008-03-31 | 2009-10-07 | Sony Corporation | Method to determine a subgroup of users |
| US8219583B2 (en) * | 2008-11-10 | 2012-07-10 | Nbcuniversal Media, Llc | Methods and systems for mining websites |
| US20100205057A1 (en) | 2009-02-06 | 2010-08-12 | Rodney Hook | Privacy-sensitive methods, systems, and media for targeting online advertisements using brand affinity modeling |
| US20110106796A1 (en) * | 2009-10-29 | 2011-05-05 | Marko Svaic | System and method for recommendation of interesting web pages based on user browsing actions |
| US8180804B1 (en) | 2010-04-19 | 2012-05-15 | Facebook, Inc. | Dynamically generating recommendations based on social graph information |
| US20110288935A1 (en) | 2010-05-24 | 2011-11-24 | Jon Elvekrog | Optimizing targeted advertisement distribution |
| US8538959B2 (en) * | 2010-07-16 | 2013-09-17 | International Business Machines Corporation | Personalized data search utilizing social activities |
| US20130054708A1 (en) * | 2011-08-30 | 2013-02-28 | Yahoo! Inc. | Systems and methods for suggesting a topic in an online group |
-
2012
- 2012-12-19 US US13/720,763 patent/US9348886B2/en active Active
-
2013
- 2013-12-17 WO PCT/US2013/075809 patent/WO2014100005A1/en not_active Ceased
- 2013-12-17 EP EP13197667.2A patent/EP2747022A1/en not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6405159B2 (en) * | 1998-06-03 | 2002-06-11 | Sbc Technology Resources, Inc. | Method for categorizing, describing and modeling types of system users |
| US20100005105A1 (en) * | 2008-07-02 | 2010-01-07 | Palo Alto Research Center Incorporated | Method for facilitating social networking based on fashion-related information |
| JP2011118642A (en) * | 2009-12-03 | 2011-06-16 | Nippon Telegr & Teleph Corp <Ntt> | System and method for analyzing growth potential of service scale, and program for the system and method |
| US20110252044A1 (en) * | 2010-04-13 | 2011-10-13 | Konkuk University Industrial Cooperation Corp. | Apparatus and method for measuring contents similarity based on feedback information of ranked user and computer readable recording medium storing program thereof |
| WO2012055067A1 (en) * | 2010-10-26 | 2012-05-03 | Hewlett-Packard Development Company, L.P. | Extraction of content from a web page |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP3188086A1 (en) * | 2015-12-30 | 2017-07-05 | Facebook, Inc. | Identifying entities using a deep-learning model |
| US10402750B2 (en) | 2015-12-30 | 2019-09-03 | Facebook, Inc. | Identifying entities using a deep-learning model |
Also Published As
| Publication number | Publication date |
|---|---|
| EP2747022A1 (en) | 2014-06-25 |
| US20140172855A1 (en) | 2014-06-19 |
| US9348886B2 (en) | 2016-05-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9348886B2 (en) | Formation and description of user subgroups | |
| US20220405607A1 (en) | Method for obtaining user portrait and related apparatus | |
| CN108491529B (en) | Information recommendation method and device | |
| CN105210064B (en) | Classify resources using deep networks | |
| US9430561B2 (en) | Formation of topic profiles for prediction of topic interest groups | |
| EP3367676B1 (en) | Video content analysis for automatic demographics recognition of users and videos | |
| US9208441B2 (en) | Information processing apparatus, information processing method, and program | |
| CN109299994B (en) | Recommendation method, device, equipment and readable storage medium | |
| Jiang et al. | Fema: flexible evolutionary multi-faceted analysis for dynamic behavioral pattern discovery | |
| CN104376010B (en) | User recommendation method and device | |
| US20130185294A1 (en) | Recommender system, recommendation method, and program | |
| CN111615706A (en) | Analysis of Spatial Sparse Data Based on Submanifold Sparse Convolutional Neural Networks | |
| KR20160057475A (en) | System and method for actively obtaining social data | |
| US20100142803A1 (en) | Transductive Multi-Label Learning For Video Concept Detection | |
| US11615444B2 (en) | Recommending that an entity in an online system create content describing an item associated with a topic having at least a threshold value of a performance metric and to add a tag describing the item to the content | |
| CN108334558A (en) | A kind of collaborative filtering recommending method of combination tag and time factor | |
| US20190073410A1 (en) | Text-based network data analysis and graph clustering | |
| US20140280178A1 (en) | Systems and Methods for Labeling Sets of Objects | |
| CN111651678B (en) | A personalized recommendation method based on knowledge graph | |
| US20190073411A1 (en) | Image-based network data analysis and graph clustering | |
| Kumar et al. | Recent trends in recommender systems: a survey | |
| Xu et al. | Towards annotating media contents through social diffusion analysis | |
| Yerva et al. | Entity-based classification of twitter messages | |
| CN113902526A (en) | Artificial intelligence based product recommendation method and device, computer equipment and medium | |
| Nosshi et al. | Hybrid recommender system via personalized users’ context |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 13866333 Country of ref document: EP Kind code of ref document: A1 |
|
| DPE1 | Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101) | ||
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 13866333 Country of ref document: EP Kind code of ref document: A1 |