Social media platforms such as twitter, Facebook, Google plus, Sina weibo, etc. are becoming more important in online business. They are not only platforms for communicating but also places for product selling, advertising and consumer study. A social circle is one feature of social media platforms. Examples of social circles include twitter lists, friend lists in Facebook, circles in Google plus, and groups in Sina weibo.
The accompanying drawings illustrate various examples of various aspects of the present disclosure. It will be appreciated that the illustrated element boundaries (e.g., boxes, groups of boxes, or other shapes) in the figures represent one example of the boundaries. It will be appreciated that in some examples one element may be designed as multiple elements or that multiple elements may be designed as one element. In some examples, an element shown as an internal component of another element may be implemented as an external component and vice versa.
Systems and methods for generating a social circle for a user of a social network are disclosed. A user may exist in a social circle for various reasons, such as sharing a common interest with other members in the social circle, being related to the creator of the social circle in a way (e.g. as a family member, friend, neighbor, or colleague), and etc. An example of the systems and methods disclosed herein takes advantages of relationships between a target user's friends and the social circles these friends join to generate a candidate social circle that can be recommended to the target user. Another example disclosed herein can further take into account the similarity between contents posted by the friends when generating a candidate social circle for the target user.
In the following, certain examples according to the present disclosure are described in detail with reference to the drawings.
The system 100 may include a server 102, and one or more client computers 104, in communication over a network 106. As illustrated in
The network 106 may be a local area network (LAN), a wide area network (WAN), or another network configuration. The network 106 may include routers, switches, modems, or any other kind of interface device used for interconnection. The network 106 may connect to several client computers 104. Through the network 106, several client computers 104 may connect to the server 102. The client computers 104 may be similarly structured as the server 102.
The server 102 may have other units operatively coupled to the processor 108 through the bus 110. These units may include tangible, machine-readable storage media, such as storage 122. The storage 122 may include any combinations of hard drives, read-only memory (ROM), random access memory (RAM), RAM drives, flash drives, optical drives, cache memory, and the like. Storage 122 may include a model constructing unit 124, a ranking unit 126 and a generating unit 128. Storage 122 may be referred to as a memory device.
The model constructing unit 124 may construct a personalized circle-user graph (PCUG) model based on friends of a user in a social network and social circles joined by these friends. In a social network, while creating a social circle, the creator put members into that circle. It can be any reason that a user is added as a member of a particular social circle. The behavior of placing a user in a social circle can be viewed as a tagging action for the user. Users with similar tags (i.e., being members of the same social circle) may share some common features. Moreover, users being put into the same social circle may have something in common according to the creator's point of view. The PCUG model disclosed herein is built from the existing social circle structures and relationship between users and social circles.
The ranking unit 126 may rank the social circles in the PCUG model at least partly based on connections between the users and the social circles. The generating unit 128 may generate a candidate social circle based on rankings of said social circles.
With reference to
Where |c| is the number of members of social circle c and |Cu| is the social circles user u is in. Given a target user ui, the initial value of Rc is
wherein uif is the friend set of user ui. The definition of the function circle (u,c) is:
At block 303, a candidate social circle is generated based on rankings of said social circles. The candidate social circle can be recommended to the user, used for advertising purposes, and etc. For example, after the iterative computation converges, the top-k ranked social circles will be selected as the candidates to be e.g. recommended to the user.
According to another example of the present disclosure, ranking may further comprise ranking social circles based on similarity between contents posted by the friends; combining a rank obtained from content similarity and a rank obtained from said PCUG model to obtain a combined rank; and ranking social circles based on the combined ranks
With reference to
A user may name his or her created social circles in various ways. For example, a twitter user may create a circle (or list in twitter's terminology) with his friends that like playing basketball and name this circle as “football”. Similar to most tagging systems, user generated names of social circles may be arbitrary, obscure and difficult to understand. Thus, it can be difficult to identify similar circles using their names. For example, “celeb” and “celebrity” as well as “entertainment” and “entertnmnt” have the same meanings but differ in appearance. In addition, the PCUG model described above may be highly unbalanced due to skewness of co-ocurring relations (a small fraction of users are added in a huge number of social circles, while most users are added in a small number of social circles). To better construct the personalized circle-user graph (PCUG) model and make use of the similarity, social circles can be merged according to similarity of their names.
With reference to
Where De is the edit distance between social circle names ci and cj. The above formula (4) takes the length of the names into consideration. For example, the edit distance between “entertainment” and “entertainments” is 1. Likewise, the edit distance between “as” and “a” is also 1. However, “entertainment” and “entertainments” are much more similar than “as” and “a”.
Name de-duplication of social circles can improve the structure of the PCUG model. However, there are still single-user nodes without edges and social circle nodes which have only one edge. These two kinds of nodes can be removed from the PCUG model since user nodes without edges are considered noise in the model and it may not be useful to create a social circle containing only one member.
As described above, in an example, social circles can be merged if they have similar names. It is possible that a user is added in more than one social circle within a particular merged social circle set. For example, a music fan might be added to many music related circles created by his/her friends. After merging, all the music related social circles with similar names are merged into one single circle. In this case, this user has only one edge connected to the merged music circle node even though he was connected to many different music related circles. In order to distinguish this kind of relationship, according to an example, a weight can be assigned to a connection (i.e. edge) between each merged social circle and its member, wherein the weight is a function of the number of constituent social circles containing said member in the merged social circle. For example, the weight of each edge can be calculated as follows:
Where cu0 is the original social circle set that has been merged to circle c.
Given a set of candidate social circles generated by the method described above, it is discovered that many candidate social circles share common members. This might be due to at least two reasons: the fact that a user can be put into multiple social circles, and the clustering and merging of similar social circles. In order to reduce overlap between social circles recommended to the user, according to an example of the present disclosure, ranking of the social circles may be further based on similarity between them. For example, a Maximum marginal relevance algorithm can be used to rank and select the candidate social circles by taking into account the diversity of social circle members. According to an example, the following formula may be used:
In this formula, C is the set of candidate social circles, S is the subset of C which has not been selected as a candidate, r(ci) is the ranking score of ci in PCUG model, and Sim( ) is a function to compute the member similarity of two circles. In an example, the similarity between two social circles is defined as percentage of the same members between these two social circles. λ is a parameter in the range of e.g. 0-1 to balance the ranking result and its diversity and can be set as needed. In an example, the first candidate social circle generated from the PCUG model can be selected as the first discovered social circle (i.e. ci∈C-S), then formula (6) can be used to compute the rankings of the rest of the candidate social circles and rank them accordingly. After that, top-k candidates are selected as the candidate social circles.
With reference to
As described above, in the PCUG model, if a user has an edge connecting to a candidate social circle, the user will be selected as a member of that social circle, no matter whether the user is really related to the circle or not. Actually, it is quite possible that a user is put into a social circle that she might not be related to. For example, a user may be put into a social circle named “football” by someone the user happened to play football with once. In such cases, the user may not be related to these circles or may even be irrelevant to them. This situation can be addressed by detecting and removing irrelevant users.
For example, a sampling approach can be used to select representative content for a social circle, and then similarity between this content and content posted by a member can be calculated. If the similarity is below a certain threshold, then the user can be considered as irrelevant and removed from the candidate social circle. In addition, the weight assigned to each edge or connection between a user node and a social circle node can be used to remove irrelevant users. For example, members of a candidate social circle can be ranked according to their weights and users with low rankings may be removed.
Instead of exploring the direct relationship between a social circle and its members, another approach can utilize the co-occurrence relationship between members of a circle to remove irrelevant members. The co-occurrence of two members can be calculated as the number of times they are put into the same social circles, as the following formula shows:
Wherein cu0 is the original social circle set. A member of a social circle is ranked according to the total number of times (i.e. ranking score) this member co-occurs with all other members, as shown below:
A member is removed if its ranking score is below a certain threshold. This threshold can be a fixed at a certain number, such as one, or can be automatically selected using a method, such as the Otsu thresholding method.
With reference to
The non-transitory, computer-readable medium 800 may correspond to any typical storage device that stores computer-implemented instructions, such as programming code or the like. For example, the non-transitory, computer-readable medium 800 may include one or more of a non-volatile memory, a volatile memory, and/or one or more storage devices. Examples of non-volatile memory include, but are not limited to, electrically erasable programmable read only memory (EEPROM) and read only memory (ROM). Examples of volatile memory include, but are not limited to, static random access memory (SRAM), and dynamic random access memory (DRAM). Examples of storage devices include, but are not limited to, hard disks, compact disc drives, digital versatile disc drives, and flash memory devices.
A processor 801 generally retrieves and executes the computer-implemented instructions stored in the non-transitory, computer-readable medium 800 for detecting valuable sections on a web page. At block 802, a model constructing module may construct a personalized circle-user graph (PCUG) model based on friends of a user and social circles joined by the friends. At block 803, a ranking module may rank the social circles at least partly based on connections between friends and social circles in said PCUG model. At block 804, a generating module may generate a candidate social circle based on rankings of said social circles. The candidate social circle can be recommended to the user.
From the above depiction of the implementation mode, the above examples can be implemented by hardware, software or firmware or a combination thereof. For example the various methods, processes, modules and functional units described herein may be implemented by a processor (the term processor is to be interpreted broadly to include a CPU, processing unit, ASIC, logic unit, or programmable gate array etc.) The processes, methods and functional units may all be performed by a single processor or split between several processers. They may be implemented as machine readable instructions executable by one or more processors. Further the teachings herein may be implemented in the form of a software product. The computer software product is stored in a storage medium and comprises a plurality of instructions for making a computer device (which can be a personal computer, a server or a network device, etc.) implement the method recited in the examples of the present disclosure.
The figures are only illustrations of an example, wherein the modules or procedure shown in the figures are not necessarily essential for implementing the present disclosure. Moreover, the sequence numbers of the above examples are only for description, and do not indicate an example is more superior to another.
Those skilled in the art can understand that the modules in the device in the example can be arranged in the device in the example as described in the example, or can be alternatively located in one or more devices different from that in the example. The modules in the aforesaid example can be combined into one module or further divided into a plurality of sub-modules.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/CN2013/071934 | 2/27/2013 | WO | 00 |