US7596597B2 - Recommending contacts in a social network - Google Patents

Recommending contacts in a social network Download PDF

Info

Publication number
US7596597B2
US7596597B2 US11/468,863 US46886306A US7596597B2 US 7596597 B2 US7596597 B2 US 7596597B2 US 46886306 A US46886306 A US 46886306A US 7596597 B2 US7596597 B2 US 7596597B2
Authority
US
United States
Prior art keywords
contact
user
users
target user
path
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.)
Expired - Fee Related, expires
Application number
US11/468,863
Other versions
US20080059576A1 (en
Inventor
Dafan Liu
Hua Chen
Wei-Ying Ma
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Priority to US11/468,863 priority Critical patent/US7596597B2/en
Assigned to MICROSOFT CORPORATION reassignment MICROSOFT CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CHEN, HUA, LIU, DAFAN, MA, WEI-YING
Publication of US20080059576A1 publication Critical patent/US20080059576A1/en
Priority to US12/546,630 priority patent/US9626648B2/en
Application granted granted Critical
Publication of US7596597B2 publication Critical patent/US7596597B2/en
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLC reassignment MICROSOFT TECHNOLOGY LICENSING, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MICROSOFT CORPORATION
Priority to US15/452,442 priority patent/US10891343B2/en
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24575Query processing with adaptation to user needs using context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles

Definitions

  • a social network consists of individuals and their relationships to other individuals. For example, within a company, the employees and their relationships to other employees, such as being members of the same development team or the same management committee, form a social network. Each of the employees may also have relationships to their family members and other non-family friends. Each relationship within a social network specifies a direct relationship between two individuals, such as being members of the same team. Individuals may also have indirect relationships with other individuals. For example, Tom and Mary may not know each other, but both Tom and Mary have a relationship with Jim. In such a case, Tom and Mary would have an indirect relationship to each other through Jim.
  • the distance (number of relationships) between two individuals within a social network is commonly referred to as their “degree of separation.” For example, Tom and Mary would have two degrees of separation. Because social networks can have hundreds or thousands of individuals and direct relationships, social networks can be very complex. It would be a difficult and time-consuming task to identify individuals and all their relationships within a large social network.
  • the names of users can be derived from the to, from, and cc fields of electronic mail messages, from meeting entries within a calendar, from letters stored as electronic documents, and so on.
  • Each of these other users has a relationship, referred to as a direct relationship, with the user regardless of the “closeness” of the relationship.
  • a user may have a relationship with a co-worker and a relationship with a worker at another company that was cc′d on the same electronic mail message.
  • the relationship with the co-worker may be closer than the relationship with the worker at the other company.
  • the users with whom a user has a relationship are referred to generally as “contacts” of that user.
  • a user may need to get in touch with their contacts. For example, a user who is a moving to a new job or moving to a new house may want to notify their contacts of the move. As another example, when a user is considering moving to a new job or needs advice on a particular subject, the user may seek advice from their contacts. The user may also request a contact to seek advice on that user's behalf from the contact's contact. Relying on contacts to propagate a request through a social network can be ineffective and even undesirable in certain situations. For example, as the request propagates from contact to contact, important aspects of the request may be omitted or changed, resulting in any response being ineffective.
  • the request may propagate to a contact even though the original requester would not want that contact to know about the request. For example, an employee requesting information about job openings at other companies would not want that request to propagate to a user at the requester's current company.
  • a method and system for recommending potential contacts to a target user is provided.
  • a recommendation system identifies users who are related to the target user through no more than a maximum degree of separation.
  • the recommendation system identifies the users by starting with the contacts of the target user and identifying users who are contacts of the target user's contacts.
  • the recommendation system continues the process of identifying contacts of contacts until the maximum degree of separation is reached.
  • the recommendation system then ranks the identified users, who are potential contacts for the target user, based on a likelihood that the target user will want to have a direct relationship with the identified users.
  • the recommendation system may base the likelihood on the number of contact paths and the length of the contact paths between the target user and an identified user.
  • the recommendation system may also filter out identified users who do not satisfy a recommendation criterion.
  • the recommendation system then presents to the target user a ranking of the users who have not been filtered out.
  • the target user can then decide whether to add the presented users as one of their contacts.
  • FIG. 1 is a diagram that illustrates an example social network.
  • FIG. 2 lists contact paths with a path length of three or less between user 0 and each of the other users.
  • FIG. 3 is a diagram that illustrates social paths between two users in one embodiment.
  • FIG. 4 is a block diagram that illustrates components of the recommendation system in one embodiment.
  • FIG. 5 is a flow diagram that illustrates the processing of the recommend potential contacts component of the recommendation system in one embodiment.
  • FIG. 6 is a flow diagram that illustrates the processing of the identify paths to potential contacts component of the recommendation system in one embodiment.
  • FIG. 7 is a flow diagram that illustrates the processing of the search for contact paths component of the recommendation system in one embodiment.
  • FIG. 8 is a flow diagram that illustrates the processing of the rank potential contacts component of the recommendation system in one embodiment.
  • FIG. 9 is a flow diagram that illustrates the processing of the filter direct contacts component of the recommendation system in one embodiment.
  • FIG. 10 is a flow diagram that illustrates the processing of the filter marginal contacts component of the recommendation system in one embodiment.
  • FIG. 11 is a flow diagram that illustrates the processing of the identify social paths component of the recommendation system in one embodiment.
  • a recommendation system identifies users who are related to the target user through no more than a maximum degree of separation.
  • the recommendation system identifies the users by starting with the contacts of the target user and identifying users who are contacts of the target user's contacts.
  • the recommendation system continues the process of identifying contacts of contacts until the maximum degree of separation (e.g., three) is reached.
  • the sequence of users from the target user to an identified user is referred to as a “contact path.” For example, if the target user is Aaron, one of Aaron's contacts is Bill, and one of Bill's contacts is Carlos, then the sequence of Aaron-Bill-Carlos represents a contact path between Aaron and Carlos.
  • That contact path has a path length of two because Aaron and Carlos are separated by two degrees of separation: Aaron's relationship to Bill and Bill's relationship to Carlos.
  • the maximum degree of separation corresponds to a maximum contact path length between two users for making contact recommendations.
  • the recommendation system then ranks the identified users, who are potential contacts for the target user, based on a likelihood that the target user will want to have a direct relationship with the identified users.
  • the recommendation system may base the likelihood on the number of contact paths and the length of the contact paths between the target user and an identified user. For example, if Aaron has only one contact path to Carlos with a path length of two, but Aaron has three contact paths to Cindy with two path lengths of two and one path length of three, then the recommendation system would rank Cindy higher than Carlos because of the multiple contact paths.
  • the recommendation system may also filter out identified users who do not satisfy a recommendation criterion.
  • One recommendation criterion may be that the identified user should not already be a contact of the target user—there is no need to recommend a user who is already a contact.
  • Another recommendation criterion may be that there should be multiple contact paths between the target contact and the identified user. This criterion helps ensure that only users with strong indirect relationships are recommended to the target user.
  • the recommendation system then presents to the target user a ranking of the users who have not been filtered out. The target user can then decide whether to add presented users as one of their contacts. In this way, the recommendation system can allow a target user to establish a direct relationship with users that are currently only indirectly related.
  • the recommendation system ranks the identified users based on the number of contact paths between the target user and the identified users and the lengths of those paths.
  • the recommendation system may generate a path score for each contact path between the target user and an identified user.
  • the path score may be inversely proportional to the length of the contact path.
  • the recommendation system then aggregates the path scores for each contact path into a recommendation score for the identified user.
  • the recommendation system may represent the recommendation score by the following equation:
  • Rank ⁇ ⁇ ( Z ) ⁇ p ⁇ ( X ⁇ Z ) ⁇ 1 ⁇ p ⁇
  • Rank(Z) represents the recommendation score of identified user Z
  • p represents the contact path from target user X to identified user Z
  • represents the path length of contact path p.
  • the recommendation system may alternatively use various other metrics for generating a path score such as a path score that geometrically or exponentially decreases with path length.
  • the recommendation system may not weight each path score equally when aggregating the path scores. For example, the recommendation system may give full weight to the path scores for the first three contact paths, but may give decreasing weight to path scores for additional contact paths.
  • the recommendation system identifies “social paths” within a social path length between a pair of users using the contact paths. To identify social paths between a pair of users, the recommendation system first identifies contact paths from the first user of the pair and contact paths from the second user of the pair. The sum of the maximum contact path length for the first user and the maximum contact path length for the second user equals the social path length. For example, if the social path length is six, then the maximum contact path lengths for the first user and the second user may be three.
  • the first user A may have a contact path of A-C, A-B-C, and A-B-C-D
  • the second user G may have contact paths of G-F-C, G-F-E, and G-F-E-D.
  • the recommendation system determines whether any of the end users at the end of a contact path of the first user are in common with the end users of a contact path of the second user.
  • user C and user D are end users who are common to contact paths of both the first user and the second user.
  • the recommendation system may then generate the social paths based on the common users.
  • the recommendation system may generate the social paths of A-C-F-G (from A-C and G-F-C), A-B-C-F-G (from A-B-C and G-F-C), and A-B-C-D-E-F-G (from A-B-C-D and G-F-E-D).
  • a social path is different from a contact path because the social path may be considered to be an undirected path, while a contact path may be considered to be a directed path.
  • A-C-F-G there is a directed path from user A to user C and from user G to user C, there might not be a directed path from user A to user G.
  • FIG. 1 is a diagram that illustrates an example social network.
  • the social network 100 includes nodes 0 - 12 representing users 0 - 12 and directed links between the nodes representing direct relationships. For example, because node 0 has a directed link to node 1 , then user 1 is in the contact list of user 0 .
  • a sequence of nodes connected by directed links represents a contact path. For example, the sequence of nodes 0 - 1 - 2 - 5 represents a contact path with a path length of three between user 0 and user 5 .
  • the sequence of nodes 0 - 9 - 10 - 8 - 5 represents a contact path with a path length of four between user 0 and user 5 .
  • the sequence of nodes 0 - 1 - 2 - 5 also indicates that contact paths 0 - 1 and 0 - 1 - 2 also exist between user 0 and users 1 and 2 .
  • FIG. 2 lists contact paths with a path length of three or less between user 0 and each of the other users.
  • the recommendation system does not allow the same user to be added twice to a contact path.
  • the presence of a duplicate user may indicate a strong relationship between the target user and the duplicate user, which can be factored in when ranking users.
  • FIG. 3 is a diagram that illustrates social paths between two users in one embodiment.
  • the two users, user X and user Y are represented by node X and node Y.
  • the nodes 301 represent the contact paths for user X of a certain maximum contact path length
  • the nodes 302 represent the contact paths for user Y of a certain maximum contact path length.
  • the nodes 303 represent the common nodes of the contact paths of user X and user Y. Each path from user X to user Y formed by considering the links to be undirected is a social path.
  • FIG. 4 is a block diagram that illustrates components of the recommendation system in one embodiment.
  • the recommendation system 430 is connected to the user data stores 410 via communications link 420 .
  • the user data stores contain information that includes explicit and implicit contacts of the users.
  • the recommendation system includes a gather social network component 431 and a social network store 432 .
  • the gather social network component searches the user data stores for contacts of the users and stores contact lists for each user in the social network store.
  • the recommendation system also includes a recommend potential contacts component 433 and an identify social paths component 434 .
  • the recommend potential contacts component invokes an identify paths to potential contacts component 435 , a rank potential contacts component 436 , a filter direct contacts component 437 , and a filter marginal contacts component 438 .
  • the identify paths to potential contacts component identifies contact paths from a target user by invoking a search for contact paths component 439 .
  • the rank potential contacts component ranks potential contacts based on path length of the contact paths.
  • the filter direct contacts component filters out potential contacts who are direct contacts of the target user.
  • the filter marginal contacts component filters out contacts who only have one contact path from the target user.
  • the search for contact paths component performs the searching for contact paths from a target user.
  • the identify social paths component invokes the search for contact paths component for a pair of users and then identifies the social paths from the contact paths.
  • the recommendation system may also include a contact path index 440 that maps end users of contact paths to their contact paths. The index facilitates the identifying social paths from pairs of contact paths.
  • the computing devices on which the recommendation system may be implemented may include a central processing unit, memory, input devices (e.g., keyboard and pointing devices), output devices (e.g., display devices), and storage devices (e.g., disk drives).
  • the memory and storage devices are computer-readable media that may contain instructions that implement the recommendation system.
  • the data structures, message structures, and instructions may be stored or transmitted via a data transmission medium, such as a signal on a communications link.
  • Various communications links may be used, such as the Internet, a local area network, a wide area network, or a point-to-point dial-up connection.
  • the recommendation system may be implemented in and used by various operating environments that include personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
  • the recommendation system may be described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices.
  • program modules include routines, programs, objects, components, data structures, and so on that perform particular tasks or implement particular abstract data types.
  • the functionality of the program modules may be combined or distributed as desired in various embodiments.
  • the recommend potential contacts component and the identify social paths component may be used independently of each other.
  • FIG. 5 is a flow diagram that illustrates the processing of the recommend potential contacts component of the recommendation system in one embodiment.
  • the component is passed a target user and identifies and presents to the target user potential contacts that have been ranked.
  • the component invokes the identify paths to potential contacts component to identify contact paths from the target user to potential contacts with a contact path length less than or equal to a maximum contact path length.
  • the component invokes the filter direct contacts component to remove direct contacts of the target user from the potential contacts.
  • the component invokes the filter marginal contacts component to remove potential contacts with only one contact path from the target user.
  • the component invokes the rank potential contacts component to rank the potential contacts identified in the contact paths.
  • the component presents the potential contacts as ranked to the target user and then completes.
  • the potential contacts may be used in ways other than presenting to the target user.
  • the knowledge of potential contacts of a target user may be important to third parties such law enforcement officials, philanthropic organizations, and so on.
  • FIG. 6 is a flow diagram that illustrates the processing of the identify paths to potential contacts component of the recommendation system in one embodiment.
  • the component is passed a target user and then invokes the search for contact paths component.
  • the search for contact paths component is a recursive component that is passed the current path from a target user, the length of the current path, and a user to add to the path.
  • the component initializes the path to empty.
  • the component sets the initial length of the path to zero.
  • the component sets a list of paths to empty.
  • the component invokes the search for contact paths component to identify the contact paths from the target user.
  • the component sorts the list of paths by the end user of the paths to facilitate processing of the paths based on the end users.
  • the component may also generate an index of end user to contact path.
  • the contact paths are stored in the list of paths.
  • FIG. 7 is a flow diagram that illustrates the processing of the search for contact paths component of the recommendation system in one embodiment.
  • the component is passed a path, a length of the path, and a user.
  • the component adds the user to the path and recursively invokes the component for each direct contact of the passed user to extend the path up to the maximum contact path length.
  • the component increments the path length.
  • the component adds the passed user to the path.
  • the component adds the path to the list of paths.
  • decision block 704 if the path length is greater than or equal to the maximum contact path length, then the component returns, else the component continues at block 705 .
  • the component recursively invokes itself for each direct contact of the passed user.
  • the component selects the next direct contact of the passed user.
  • decision block 706 if all the direct contacts of the passed user have already been selected, then the component returns, else the component continues at block 707 .
  • decision block 707 if the selected contact is already on the path, then the component loops to block 705 to select the next direct contact of the passed user, else the component continues at block 708 .
  • the component recursively invokes the search for contact paths component passing the path, the path length, and the selected contact. The component then loops to block 705 to select the next direct contact of the passed user.
  • FIG. 8 is a flow diagram that illustrates the processing of the rank potential contacts component of the recommendation system in one embodiment.
  • the component generates a recommendation score for each user identified as a potential contact by aggregating the path scores for the user.
  • the component initializes the recommendation score to 0 for each user.
  • the component loops selecting each contact path and aggregating a path score for the selected contact path into recommendation scores for the identified users.
  • the component selects the next contact path.
  • decision block 802 if all the contact paths have already been selected, then the component returns, else the component continues at block 803 .
  • the component increments an index of potential contacts.
  • the index identifies the end user.
  • the component maps the end user to the index so that the same index can be used for that end user and continues at block 807 .
  • the component selects the index for the end user of the selected contact path.
  • the component aggregates the path score for the selected contact path into the recommendation score for the end user of the selected contact path. The component then loops to block 801 to select the next contact path.
  • FIG. 9 is a flow diagram that illustrates the processing of the filter direct contacts component of the recommendation system in one embodiment.
  • the component removes potential contacts who are already direct contacts of the target user.
  • the component selects the next potential contact.
  • decision block 902 if all the potential contacts have already been selected, then the component returns, else the component continues at block 903 .
  • decision block 903 if the selected potential contact is a direct contact of the target user, then the component continues at block 904 , else the component loops to block 901 to select the next potential contact.
  • the component removes the selected potential contact from the list of potential contacts and then loops to block 901 to select the next potential contact.
  • FIG. 10 is a flow diagram that illustrates the processing of the filter marginal contacts component of the recommendation system in one embodiment.
  • the component removes potential contacts who do not satisfy the marginal contact criterion.
  • the component selects the next potential contact.
  • decision block 1002 if all the potential contacts have already been selected, then the component returns, else the component continues at block 1003 .
  • the component counts the number of contact paths to the selected potential contact.
  • a marginal contact threshold e.g., the number of contact paths is greater than one
  • the selected potential contact satisfies the marginal contact criterion and the component loops to block 1001 to select the next potential contact, else the component continues at block 1005 .
  • the component removes the selected potential contact from the list of potential contacts and then loops to block 1001 to select the next potential contact.
  • the threshold may be that a contact is not marginal if there is at least one path of length two or two paths of length three.
  • FIG. 11 is a flow diagram that illustrates the processing of the identify social paths component of the recommendation system in one embodiment.
  • the component is passed a pair of users and identifies the social paths between the users based on contact paths from each of the users.
  • the component may generate a user index for the contact paths of the first user and a user index for the contact paths of the second user to facilitate the locating of common users.
  • the component invokes the identify paths to potential contacts component to identify the contact paths from the first user.
  • the component invokes the identify paths to potential contacts component to identify the contact paths from the second user.
  • the component loops identifying social paths between the first user and the second user based on common potential contacts as indicated by the identified paths.
  • the component selects the next contact path of the first user.
  • decision block 1104 if all the potential contacts of the first user have already been selected, then the component returns, else the component continues at block 1105 .
  • block 1105 the component selects the end user of the selected contact path.
  • block 1106 the component selects the next contact path from the second user with the same selected end user.
  • decision block 1107 if all such contact paths have already been selected, then the component loops to block 1103 to select the next contact path from the first user, else the component continues at block 1108 .
  • block 1108 the component combines the selected contact paths into a social path between the first user and the second user and then loops to block 1106 to select the next contact path of the second user.

Abstract

A method and system for recommending potential contacts to a target user is provided. A recommendation system identifies users who are related to the target user through no more than a maximum degree of separation. The recommendation system identifies the users by starting with the contacts of the target user and identifying users who are contacts of the target user's contacts, contacts of those contacts, and so on. The recommendation system then ranks the identified users, who are potential contacts for the target user, based on a likelihood that the target user will want to have a direct relationship with the identified users. The recommendation system then presents to the target user a ranking of the users who have not been filtered out.

Description

BACKGROUND
A social network consists of individuals and their relationships to other individuals. For example, within a company, the employees and their relationships to other employees, such as being members of the same development team or the same management committee, form a social network. Each of the employees may also have relationships to their family members and other non-family friends. Each relationship within a social network specifies a direct relationship between two individuals, such as being members of the same team. Individuals may also have indirect relationships with other individuals. For example, Tom and Mary may not know each other, but both Tom and Mary have a relationship with Jim. In such a case, Tom and Mary would have an indirect relationship to each other through Jim. The distance (number of relationships) between two individuals within a social network is commonly referred to as their “degree of separation.” For example, Tom and Mary would have two degrees of separation. Because social networks can have hundreds or thousands of individuals and direct relationships, social networks can be very complex. It would be a difficult and time-consuming task to identify individuals and all their relationships within a large social network.
Fortunately, the identity of individuals and their relationships with other individuals can be automatically derived from data stored by computer systems. Many individuals use their computer systems to store indications of relationships to other individuals. In particular, many software applications allow a user to explicitly store names of others with whom the user has a relationship. (“User” refers to any individual who has a relationship represented on a computer system.) The names (or some other identifiers such as electronic mail addresses) of the other users are stored in address lists for electronic mail programs, in contact lists for instant messaging programs, in invitation lists for event organizing programs, and so on. In addition, the names of the other users can be derived from data that is not an explicit list. For example, the names of users can be derived from the to, from, and cc fields of electronic mail messages, from meeting entries within a calendar, from letters stored as electronic documents, and so on. Each of these other users has a relationship, referred to as a direct relationship, with the user regardless of the “closeness” of the relationship. For example, a user may have a relationship with a co-worker and a relationship with a worker at another company that was cc′d on the same electronic mail message. In this example, the relationship with the co-worker may be closer than the relationship with the worker at the other company. The users with whom a user has a relationship are referred to generally as “contacts” of that user.
In many situations, a user may need to get in touch with their contacts. For example, a user who is a moving to a new job or moving to a new house may want to notify their contacts of the move. As another example, when a user is considering moving to a new job or needs advice on a particular subject, the user may seek advice from their contacts. The user may also request a contact to seek advice on that user's behalf from the contact's contact. Relying on contacts to propagate a request through a social network can be ineffective and even undesirable in certain situations. For example, as the request propagates from contact to contact, important aspects of the request may be omitted or changed, resulting in any response being ineffective. Also, the request may propagate to a contact even though the original requester would not want that contact to know about the request. For example, an employee requesting information about job openings at other companies would not want that request to propagate to a user at the requester's current company.
SUMMARY
A method and system for recommending potential contacts to a target user is provided. A recommendation system identifies users who are related to the target user through no more than a maximum degree of separation. The recommendation system identifies the users by starting with the contacts of the target user and identifying users who are contacts of the target user's contacts. The recommendation system continues the process of identifying contacts of contacts until the maximum degree of separation is reached. The recommendation system then ranks the identified users, who are potential contacts for the target user, based on a likelihood that the target user will want to have a direct relationship with the identified users. The recommendation system may base the likelihood on the number of contact paths and the length of the contact paths between the target user and an identified user. The recommendation system may also filter out identified users who do not satisfy a recommendation criterion. The recommendation system then presents to the target user a ranking of the users who have not been filtered out. The target user can then decide whether to add the presented users as one of their contacts.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a diagram that illustrates an example social network.
FIG. 2 lists contact paths with a path length of three or less between user 0 and each of the other users.
FIG. 3 is a diagram that illustrates social paths between two users in one embodiment.
FIG. 4 is a block diagram that illustrates components of the recommendation system in one embodiment.
FIG. 5 is a flow diagram that illustrates the processing of the recommend potential contacts component of the recommendation system in one embodiment.
FIG. 6 is a flow diagram that illustrates the processing of the identify paths to potential contacts component of the recommendation system in one embodiment.
FIG. 7 is a flow diagram that illustrates the processing of the search for contact paths component of the recommendation system in one embodiment.
FIG. 8 is a flow diagram that illustrates the processing of the rank potential contacts component of the recommendation system in one embodiment.
FIG. 9 is a flow diagram that illustrates the processing of the filter direct contacts component of the recommendation system in one embodiment.
FIG. 10 is a flow diagram that illustrates the processing of the filter marginal contacts component of the recommendation system in one embodiment.
FIG. 11 is a flow diagram that illustrates the processing of the identify social paths component of the recommendation system in one embodiment.
DETAILED DESCRIPTION
A method and system for recommending potential contacts to a target user is provided. In one embodiment, a recommendation system identifies users who are related to the target user through no more than a maximum degree of separation. The recommendation system identifies the users by starting with the contacts of the target user and identifying users who are contacts of the target user's contacts. The recommendation system continues the process of identifying contacts of contacts until the maximum degree of separation (e.g., three) is reached. The sequence of users from the target user to an identified user is referred to as a “contact path.” For example, if the target user is Aaron, one of Aaron's contacts is Bill, and one of Bill's contacts is Carlos, then the sequence of Aaron-Bill-Carlos represents a contact path between Aaron and Carlos. That contact path has a path length of two because Aaron and Carlos are separated by two degrees of separation: Aaron's relationship to Bill and Bill's relationship to Carlos. The maximum degree of separation corresponds to a maximum contact path length between two users for making contact recommendations. The recommendation system then ranks the identified users, who are potential contacts for the target user, based on a likelihood that the target user will want to have a direct relationship with the identified users. The recommendation system may base the likelihood on the number of contact paths and the length of the contact paths between the target user and an identified user. For example, if Aaron has only one contact path to Carlos with a path length of two, but Aaron has three contact paths to Cindy with two path lengths of two and one path length of three, then the recommendation system would rank Cindy higher than Carlos because of the multiple contact paths. The recommendation system may also filter out identified users who do not satisfy a recommendation criterion. One recommendation criterion may be that the identified user should not already be a contact of the target user—there is no need to recommend a user who is already a contact. Another recommendation criterion may be that there should be multiple contact paths between the target contact and the identified user. This criterion helps ensure that only users with strong indirect relationships are recommended to the target user. The recommendation system then presents to the target user a ranking of the users who have not been filtered out. The target user can then decide whether to add presented users as one of their contacts. In this way, the recommendation system can allow a target user to establish a direct relationship with users that are currently only indirectly related.
In one embodiment, the recommendation system ranks the identified users based on the number of contact paths between the target user and the identified users and the lengths of those paths. The recommendation system may generate a path score for each contact path between the target user and an identified user. The path score may be inversely proportional to the length of the contact path. The recommendation system then aggregates the path scores for each contact path into a recommendation score for the identified user. The recommendation system may represent the recommendation score by the following equation:
Rank ( Z ) = p ( X Z ) 1 p
where Rank(Z) represents the recommendation score of identified user Z, p represents the contact path from target user X to identified user Z, and |p| represents the path length of contact path p. The recommendation system may alternatively use various other metrics for generating a path score such as a path score that geometrically or exponentially decreases with path length. The recommendation system may not weight each path score equally when aggregating the path scores. For example, the recommendation system may give full weight to the path scores for the first three contact paths, but may give decreasing weight to path scores for additional contact paths.
In one embodiment, the recommendation system identifies “social paths” within a social path length between a pair of users using the contact paths. To identify social paths between a pair of users, the recommendation system first identifies contact paths from the first user of the pair and contact paths from the second user of the pair. The sum of the maximum contact path length for the first user and the maximum contact path length for the second user equals the social path length. For example, if the social path length is six, then the maximum contact path lengths for the first user and the second user may be three. In such a case, the first user A may have a contact path of A-C, A-B-C, and A-B-C-D, and the second user G may have contact paths of G-F-C, G-F-E, and G-F-E-D. After the contact paths for the first user and the second user are identified, the recommendation system then determines whether any of the end users at the end of a contact path of the first user are in common with the end users of a contact path of the second user. Continuing with the example, user C and user D are end users who are common to contact paths of both the first user and the second user. The recommendation system may then generate the social paths based on the common users. For example, the recommendation system may generate the social paths of A-C-F-G (from A-C and G-F-C), A-B-C-F-G (from A-B-C and G-F-C), and A-B-C-D-E-F-G (from A-B-C-D and G-F-E-D). A social path is different from a contact path because the social path may be considered to be an undirected path, while a contact path may be considered to be a directed path. Thus, although in the social path A-C-F-G there is a directed path from user A to user C and from user G to user C, there might not be a directed path from user A to user G. In general, if C is in B's contact list, but B is not in C's contact list, it can be assumed that C knows B so the social path A-B-C-F-G provides a path through which G may be able to contact A. The generating of social paths between a pair of users using their contact paths significantly avoids non-linearly increasing computational complexity that occurs when searching a social network for increasing degrees of separation.
FIG. 1 is a diagram that illustrates an example social network. The social network 100 includes nodes 0-12 representing users 0-12 and directed links between the nodes representing direct relationships. For example, because node 0 has a directed link to node 1, then user 1 is in the contact list of user 0. A sequence of nodes connected by directed links represents a contact path. For example, the sequence of nodes 0-1-2-5 represents a contact path with a path length of three between user 0 and user 5. The sequence of nodes 0-9-10-8-5 represents a contact path with a path length of four between user 0 and user 5. The sequence of nodes 0-1-2-5 also indicates that contact paths 0-1 and 0-1-2 also exist between user 0 and users 1 and 2. FIG. 2 lists contact paths with a path length of three or less between user 0 and each of the other users. In one embodiment, the recommendation system does not allow the same user to be added twice to a contact path. Alternatively, the presence of a duplicate user may indicate a strong relationship between the target user and the duplicate user, which can be factored in when ranking users.
FIG. 3 is a diagram that illustrates social paths between two users in one embodiment. The two users, user X and user Y, are represented by node X and node Y. The nodes 301 represent the contact paths for user X of a certain maximum contact path length, and the nodes 302 represent the contact paths for user Y of a certain maximum contact path length. The nodes 303 represent the common nodes of the contact paths of user X and user Y. Each path from user X to user Y formed by considering the links to be undirected is a social path.
FIG. 4 is a block diagram that illustrates components of the recommendation system in one embodiment. The recommendation system 430 is connected to the user data stores 410 via communications link 420. The user data stores contain information that includes explicit and implicit contacts of the users. The recommendation system includes a gather social network component 431 and a social network store 432. The gather social network component searches the user data stores for contacts of the users and stores contact lists for each user in the social network store. The recommendation system also includes a recommend potential contacts component 433 and an identify social paths component 434. The recommend potential contacts component invokes an identify paths to potential contacts component 435, a rank potential contacts component 436, a filter direct contacts component 437, and a filter marginal contacts component 438. The identify paths to potential contacts component identifies contact paths from a target user by invoking a search for contact paths component 439. The rank potential contacts component ranks potential contacts based on path length of the contact paths. The filter direct contacts component filters out potential contacts who are direct contacts of the target user. The filter marginal contacts component filters out contacts who only have one contact path from the target user. The search for contact paths component performs the searching for contact paths from a target user. The identify social paths component invokes the search for contact paths component for a pair of users and then identifies the social paths from the contact paths. The recommendation system may also include a contact path index 440 that maps end users of contact paths to their contact paths. The index facilitates the identifying social paths from pairs of contact paths.
The computing devices on which the recommendation system may be implemented may include a central processing unit, memory, input devices (e.g., keyboard and pointing devices), output devices (e.g., display devices), and storage devices (e.g., disk drives). The memory and storage devices are computer-readable media that may contain instructions that implement the recommendation system. In addition, the data structures, message structures, and instructions may be stored or transmitted via a data transmission medium, such as a signal on a communications link. Various communications links may be used, such as the Internet, a local area network, a wide area network, or a point-to-point dial-up connection.
The recommendation system may be implemented in and used by various operating environments that include personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
The recommendation system may be described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, and so on that perform particular tasks or implement particular abstract data types. Typically, the functionality of the program modules may be combined or distributed as desired in various embodiments. For example, the recommend potential contacts component and the identify social paths component may be used independently of each other.
FIG. 5 is a flow diagram that illustrates the processing of the recommend potential contacts component of the recommendation system in one embodiment. The component is passed a target user and identifies and presents to the target user potential contacts that have been ranked. In block 501, the component invokes the identify paths to potential contacts component to identify contact paths from the target user to potential contacts with a contact path length less than or equal to a maximum contact path length. In block 502, the component invokes the filter direct contacts component to remove direct contacts of the target user from the potential contacts. In block 503, the component invokes the filter marginal contacts component to remove potential contacts with only one contact path from the target user. In block 504, the component invokes the rank potential contacts component to rank the potential contacts identified in the contact paths. In block 505, the component presents the potential contacts as ranked to the target user and then completes. In certain implementations, the potential contacts may be used in ways other than presenting to the target user. For example, the knowledge of potential contacts of a target user may be important to third parties such law enforcement officials, philanthropic organizations, and so on.
FIG. 6 is a flow diagram that illustrates the processing of the identify paths to potential contacts component of the recommendation system in one embodiment. The component is passed a target user and then invokes the search for contact paths component. The search for contact paths component is a recursive component that is passed the current path from a target user, the length of the current path, and a user to add to the path. In block 601, the component initializes the path to empty. In block 602, the component sets the initial length of the path to zero. In block 603, the component sets a list of paths to empty. In block 604, the component invokes the search for contact paths component to identify the contact paths from the target user. In block 605, the component sorts the list of paths by the end user of the paths to facilitate processing of the paths based on the end users. The component may also generate an index of end user to contact path. The contact paths are stored in the list of paths.
FIG. 7 is a flow diagram that illustrates the processing of the search for contact paths component of the recommendation system in one embodiment. The component is passed a path, a length of the path, and a user. The component adds the user to the path and recursively invokes the component for each direct contact of the passed user to extend the path up to the maximum contact path length. In block 701, the component increments the path length. In block 702, the component adds the passed user to the path. In block 703, the component adds the path to the list of paths. In decision block 704, if the path length is greater than or equal to the maximum contact path length, then the component returns, else the component continues at block 705. In blocks 705-708, the component recursively invokes itself for each direct contact of the passed user. In block 705, the component selects the next direct contact of the passed user. In decision block 706, if all the direct contacts of the passed user have already been selected, then the component returns, else the component continues at block 707. In decision block 707, if the selected contact is already on the path, then the component loops to block 705 to select the next direct contact of the passed user, else the component continues at block 708. In block 708, the component recursively invokes the search for contact paths component passing the path, the path length, and the selected contact. The component then loops to block 705 to select the next direct contact of the passed user.
FIG. 8 is a flow diagram that illustrates the processing of the rank potential contacts component of the recommendation system in one embodiment. The component generates a recommendation score for each user identified as a potential contact by aggregating the path scores for the user. The component initializes the recommendation score to 0 for each user. In blocks 801-807, the component loops selecting each contact path and aggregating a path score for the selected contact path into recommendation scores for the identified users. In block 801, the component selects the next contact path. In decision block 802, if all the contact paths have already been selected, then the component returns, else the component continues at block 803. In decision block 803, if the end user of the contact path has already been processed by this component, then the component continues at block 806, else the component continues at block 804. In block 804, the component increments an index of potential contacts. The index identifies the end user. In block 805, the component maps the end user to the index so that the same index can be used for that end user and continues at block 807. In block 806, the component selects the index for the end user of the selected contact path. In block 807, the component aggregates the path score for the selected contact path into the recommendation score for the end user of the selected contact path. The component then loops to block 801 to select the next contact path.
FIG. 9 is a flow diagram that illustrates the processing of the filter direct contacts component of the recommendation system in one embodiment. The component removes potential contacts who are already direct contacts of the target user. In block 901, the component selects the next potential contact. In decision block 902, if all the potential contacts have already been selected, then the component returns, else the component continues at block 903. In decision block 903, if the selected potential contact is a direct contact of the target user, then the component continues at block 904, else the component loops to block 901 to select the next potential contact. In block 904, the component removes the selected potential contact from the list of potential contacts and then loops to block 901 to select the next potential contact.
FIG. 10 is a flow diagram that illustrates the processing of the filter marginal contacts component of the recommendation system in one embodiment. The component removes potential contacts who do not satisfy the marginal contact criterion. In block 1001, the component selects the next potential contact. In decision block 1002, if all the potential contacts have already been selected, then the component returns, else the component continues at block 1003. In block 1003, the component counts the number of contact paths to the selected potential contact. In decision block 1004, if paths to the selected potential contact satisfies a marginal contact threshold (e.g., the number of contact paths is greater than one), then the selected potential contact satisfies the marginal contact criterion and the component loops to block 1001 to select the next potential contact, else the component continues at block 1005. In block 1005, the component removes the selected potential contact from the list of potential contacts and then loops to block 1001 to select the next potential contact. One skilled in the art will appreciate that many different marginal contact thresholds can be used. For example, the threshold may be that a contact is not marginal if there is at least one path of length two or two paths of length three.
FIG. 11 is a flow diagram that illustrates the processing of the identify social paths component of the recommendation system in one embodiment. The component is passed a pair of users and identifies the social paths between the users based on contact paths from each of the users. The component may generate a user index for the contact paths of the first user and a user index for the contact paths of the second user to facilitate the locating of common users. In block 1101, the component invokes the identify paths to potential contacts component to identify the contact paths from the first user. In block 1102, the component invokes the identify paths to potential contacts component to identify the contact paths from the second user. In blocks 1103-1108, the component loops identifying social paths between the first user and the second user based on common potential contacts as indicated by the identified paths. In block 1103, the component selects the next contact path of the first user. In decision block 1104, if all the potential contacts of the first user have already been selected, then the component returns, else the component continues at block 1105. In block 1105, the component selects the end user of the selected contact path. In block 1106, the component selects the next contact path from the second user with the same selected end user. In decision block 1107, if all such contact paths have already been selected, then the component loops to block 1103 to select the next contact path from the first user, else the component continues at block 1108. In block 1108, the component combines the selected contact paths into a social path between the first user and the second user and then loops to block 1106 to select the next contact path of the second user.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims. Accordingly, the invention is not limited except as by the appended claims.

Claims (12)

1. A computer-readable storage medium containing instructions for controlling a computing system to identify potential contacts for a target user, by a method comprising:
identifying from a contact list of the target user contact paths from the target user to other users that are within a maximum contact path length;
ranking the other users on the identified contact paths based in part on a score generated by the following:
Rank ( Z ) = p ( X Z ) 1 p
where Rank(Z) represents the score of another user Z, p represents the contact path from target user X to the other user Z, and |p| represents the path length of the contact path p;
filtering out users on the identified contact paths who do not satisfy a recommendation criterion; and
storing an indication of the ranking of the non-filtered-out users as an identification of potential contacts
wherein the identifying of contact paths traverses a social network formed by the contact lists of users starting at the contact list of the target user, wherein the ranking of the other users generates a recommendation score for another user by aggregating a path score for each contact path from the target user to the other user, wherein the recommendation criterion is that another user is not in the contact list of the target user and that there are multiple contact paths between the target and the other user, and wherein the maximum contact path length is three.
2. The computer-readable storage medium of claim 1 wherein the identifying of contact paths traverses a social network formed by the contact lists of other users starting at the contact list of the target user.
3. The computer-readable storage medium of claim 1 wherein the ranking of other users generates a recommendation score for another user by aggregating a path score for each contact path from the target user to the other user.
4. The computer-readable storage medium of claim 1 wherein the recommendation criterion is that another user is not in the contact list of the target user and that there are multiple contact paths between the target user and the user.
5. A method performed by a computing device to identify potential contacts for a target user, the method comprising:
identifying by the computing device from a contact list of the target user contact paths from the target user to other users that are within a maximum contact path length;
ranking by the computing device the other users on the identified contact paths based in part on a score generated by the following:
Rank ( Z ) = p ( X Z ) 1 p
where Rank(Z) represents the score of another user Z, p represents the contact path from target user X to the other user Z, and |p| represents the path length of the contact path p;
filtering out by the computing device users on the identified contact paths who do not satisfy a recommendation criterion; and
storing by the computing device an indication of the ranking of the non-filtered-out users as an identification of potential contacts
wherein the identifying of contact paths traverses a social network formed by the contact lists of users starting at the contact list of the target user, wherein the ranking of the other users generates a recommendation score for another user by aggregating a path score for each contact path from the target user to the other user, wherein the recommendation criterion is that another user is not in the contact list of the target user and that there are multiple contact paths between the target and the other user, and wherein the maximum contact path length is three.
6. The method of claim 5 wherein the identifying of contact paths traverses a social network formed by the contact lists of other users starting at the contact list of the target user.
7. The method of claim 5 wherein the ranking of other users generates a recommendation score for another user by aggregating a path score for each contact path from the target user to the other user.
8. The method of claim 5 wherein the recommendation criterion is that another user is not in the contact list of the target user and that there are multiple contact paths between the target user and the user.
9. A computing device for identifying potential contacts for a target user, comprising:
a memory storing computer-executable instructions for
identifying by the computing device from a contact list of the target user contact paths from the target user to other users that are within a maximum contact path length;
ranking by the computing device the other users on the identified contact paths based in part on a score generated by the following:
Rank ( Z ) = p ( X Z ) 1 p
where Rank(Z) represents the score of another user Z, p represents the contact path from target user X to the other user Z, and |p| represents the path length of the contact path p;
filtering out by the computing device users on the identified contact paths who do not satisfy a recommendation criterion; and
storing by the computing device an indication of the ranking of the non-filtered-out users as an identification of potential contacts
wherein the identifying of contact paths traverses a social network formed by the contact lists of users starting at the contact list of the target user, wherein the ranking of the other users generates a recommendation score for another user by aggregating a path score for each contact path from the target user to the other user, wherein the recommendation criterion is that another user is not in the contact list of the target user and that there are multiple contact paths between the target and the other user, and wherein the maximum contact path length is three; and
a processor for executing the computer-executable instructions stored in the memory.
10. The computing device of claim 9 wherein the identifying of contact paths traverses a social network formed by the contact lists of other users starting at the contact list of the target user.
11. The computing device of claim 9 wherein the ranking of other users generates a recommendation score for another user by aggregating a path score for each contact path from the target user to the other user.
12. The computing device of claim 9 wherein the recommendation criterion is that another user is not in the contact list of the target user and that there are multiple contact paths between the target user and the user.
US11/468,863 2006-08-31 2006-08-31 Recommending contacts in a social network Expired - Fee Related US7596597B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US11/468,863 US7596597B2 (en) 2006-08-31 2006-08-31 Recommending contacts in a social network
US12/546,630 US9626648B2 (en) 2006-08-31 2009-08-24 Recommending contacts in a social network
US15/452,442 US10891343B2 (en) 2006-08-31 2017-03-07 Recommending contacts in a social network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/468,863 US7596597B2 (en) 2006-08-31 2006-08-31 Recommending contacts in a social network

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/546,630 Continuation US9626648B2 (en) 2006-08-31 2009-08-24 Recommending contacts in a social network

Publications (2)

Publication Number Publication Date
US20080059576A1 US20080059576A1 (en) 2008-03-06
US7596597B2 true US7596597B2 (en) 2009-09-29

Family

ID=39153309

Family Applications (3)

Application Number Title Priority Date Filing Date
US11/468,863 Expired - Fee Related US7596597B2 (en) 2006-08-31 2006-08-31 Recommending contacts in a social network
US12/546,630 Active 2029-11-10 US9626648B2 (en) 2006-08-31 2009-08-24 Recommending contacts in a social network
US15/452,442 Active 2027-09-12 US10891343B2 (en) 2006-08-31 2017-03-07 Recommending contacts in a social network

Family Applications After (2)

Application Number Title Priority Date Filing Date
US12/546,630 Active 2029-11-10 US9626648B2 (en) 2006-08-31 2009-08-24 Recommending contacts in a social network
US15/452,442 Active 2027-09-12 US10891343B2 (en) 2006-08-31 2017-03-07 Recommending contacts in a social network

Country Status (1)

Country Link
US (3) US7596597B2 (en)

Cited By (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080065701A1 (en) * 2006-09-12 2008-03-13 Kent Lindstrom Method and system for tracking changes to user content in an online social network
US20080126187A1 (en) * 2006-11-10 2008-05-29 Felkel D Hollis Method and System for Determining the Ability of an Organization to Successfully Interact with Government
US20090070684A1 (en) * 2007-09-11 2009-03-12 Yahoo! Inc. Social Network Site Including Contact-Based Recommendation Functionality
US20090104895A1 (en) * 2007-10-22 2009-04-23 Cisco Technology, Inc. (Ca Corporation) Dynamic contact list
US20090157795A1 (en) * 2007-12-18 2009-06-18 Concert Technology Corporation Identifying highly valued recommendations of users in a media recommendation network
US20090271370A1 (en) * 2008-04-28 2009-10-29 Yahoo! Inc. Discovery of friends using social network graph properties
US20090319288A1 (en) * 2008-06-24 2009-12-24 Yahoo Inc. Suggesting contacts for social networks
US20090319466A1 (en) * 2006-08-31 2009-12-24 Microsoft Corporation Recommending contacts in a social network
US20100082693A1 (en) * 2008-09-25 2010-04-01 Ethan Hugg Organization of a contact list based on social network context
US20100125599A1 (en) * 2008-11-17 2010-05-20 International Business Machines Corporation Obtaining trusted recommendations through discovery of common contacts in contact lists
US20110004692A1 (en) * 2009-07-01 2011-01-06 Tom Occhino Gathering Information about Connections in a Social Networking Service
US20110145719A1 (en) * 2009-12-14 2011-06-16 International Business Machines Corporation People recommendation indicator method and apparatus in a social networking site
US20110302263A1 (en) * 2006-10-31 2011-12-08 Yahoo! Inc. Social namespace addressing for non-unique identifiers
US20120036213A1 (en) * 2006-09-12 2012-02-09 Tiu Jr William K Tracking Changes to Non-Friend Content in an Online Social Network
US8407311B1 (en) * 2008-03-17 2013-03-26 Google Inc. System and method for creating relationships among users of an instant messaging service
US20130132195A1 (en) * 2011-11-22 2013-05-23 Yahoo! Inc. Methods and systems for creating dynamic user segments based on social graphs
US8566263B2 (en) 2003-11-28 2013-10-22 World Assets Consulting Ag, Llc Adaptive computer-based personalities
USRE44559E1 (en) 2003-11-28 2013-10-22 World Assets Consulting Ag, Llc Adaptive social computing methods
US8600920B2 (en) 2003-11-28 2013-12-03 World Assets Consulting Ag, Llc Affinity propagation in adaptive network-based systems
US20130346575A1 (en) * 2012-06-26 2013-12-26 Wetpaint.Com, Inc. Portfolio optimization for media merchandizing
US8651961B2 (en) 2010-12-03 2014-02-18 Solocron Entertainment Llc Collaborative electronic game play employing player classification and aggregation
US8725796B2 (en) 2011-07-07 2014-05-13 F. David Serena Relationship networks having link quality metrics with inference and concomitant digital value exchange
US20140173003A1 (en) * 2011-10-11 2014-06-19 Kakao Corp. Method and system for providing instant messaging service
USRE44967E1 (en) 2003-11-28 2014-06-24 World Assets Consulting Ag, Llc Adaptive social and process network systems
USRE44966E1 (en) 2003-11-28 2014-06-24 World Assets Consulting Ag, Llc Adaptive recommendations systems
USRE44968E1 (en) 2003-11-28 2014-06-24 World Assets Consulting Ag, Llc Adaptive self-modifying and recombinant systems
US8762472B2 (en) * 2012-08-29 2014-06-24 Wetpaint.Com, Inc. Personalization based upon social value in online media
US8831969B1 (en) * 2013-10-02 2014-09-09 Linkedin Corporation System and method for determining users working for the same employers in a social network
US20150039609A1 (en) * 2012-08-29 2015-02-05 Wetpaint.Com, Inc. Personalization based upon social value in online media
US8990393B2 (en) 2010-04-19 2015-03-24 Henri Rizk System and method for managing relationships with independent multi-dimensional grouping, individualized privileges, and interactive feedback in a social network
US9071567B2 (en) 2011-01-31 2015-06-30 Oracle International Corporation Workspace-aware social networks in an enterprise
US9069945B2 (en) 2011-03-04 2015-06-30 Puneet Singh User validation in a social network
USRE45770E1 (en) 2003-11-28 2015-10-20 World Assets Consulting Ag, Llc Adaptive recommendation explanations
US20160092588A1 (en) * 2013-10-12 2016-03-31 Chian Chiu Li Systems And Methods for Contacting Target Person
US9442989B1 (en) * 2010-02-08 2016-09-13 Google Inc. Scoring authors of posts
US9442984B2 (en) 2010-05-19 2016-09-13 Adobe Systems Incorporated Social media contributor weight
US9710555B2 (en) * 2010-05-28 2017-07-18 Adobe Systems Incorporated User profile stitching
US10540660B1 (en) 2010-05-19 2020-01-21 Adobe Inc. Keyword analysis using social media data
US10977677B2 (en) 2013-07-15 2021-04-13 Dropbox, Inc. Contact importer
US11715132B2 (en) 2003-11-28 2023-08-01 World Assets Consulting Ag, Llc Adaptive and recursive system and method

Families Citing this family (118)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060059159A1 (en) * 2004-09-15 2006-03-16 Vu Hao Thi Truong Online dating service providing response status tracking for a service subscriber
US7882039B2 (en) * 2004-09-15 2011-02-01 Yahoo! Inc. System and method of adaptive personalization of search results for online dating services
US8059646B2 (en) 2006-07-11 2011-11-15 Napo Enterprises, Llc System and method for identifying music content in a P2P real time recommendation network
US8327266B2 (en) 2006-07-11 2012-12-04 Napo Enterprises, Llc Graphical user interface system for allowing management of a media item playlist based on a preference scoring system
US9003056B2 (en) 2006-07-11 2015-04-07 Napo Enterprises, Llc Maintaining a minimum level of real time media recommendations in the absence of online friends
US7970922B2 (en) 2006-07-11 2011-06-28 Napo Enterprises, Llc P2P real time media recommendations
US8805831B2 (en) 2006-07-11 2014-08-12 Napo Enterprises, Llc Scoring and replaying media items
US8249903B2 (en) * 2006-10-10 2012-08-21 Accenture Global Services Limited Method and system of determining and evaluating a business relationship network for forming business relationships
US8583634B2 (en) * 2006-12-05 2013-11-12 Avaya Inc. System and method for determining social rank, relevance and attention
US9224427B2 (en) 2007-04-02 2015-12-29 Napo Enterprises LLC Rating media item recommendations using recommendation paths and/or media item usage
US7941764B2 (en) 2007-04-04 2011-05-10 Abo Enterprises, Llc System and method for assigning user preference settings for a category, and in particular a media category
US8112720B2 (en) 2007-04-05 2012-02-07 Napo Enterprises, Llc System and method for automatically and graphically associating programmatically-generated media item recommendations related to a user's socially recommended media items
US20080250067A1 (en) * 2007-04-06 2008-10-09 Concert Technology Corporation System and method for selectively identifying media items for play based on a recommender playlist
US20090049045A1 (en) 2007-06-01 2009-02-19 Concert Technology Corporation Method and system for sorting media items in a playlist on a media device
US9037632B2 (en) 2007-06-01 2015-05-19 Napo Enterprises, Llc System and method of generating a media item recommendation message with recommender presence information
US8839141B2 (en) 2007-06-01 2014-09-16 Napo Enterprises, Llc Method and system for visually indicating a replay status of media items on a media device
US9164993B2 (en) 2007-06-01 2015-10-20 Napo Enterprises, Llc System and method for propagating a media item recommendation message comprising recommender presence information
US8285776B2 (en) 2007-06-01 2012-10-09 Napo Enterprises, Llc System and method for processing a received media item recommendation message comprising recommender presence information
US9373076B1 (en) * 2007-08-08 2016-06-21 Aol Inc. Systems and methods for building and using social networks in image analysis
US7865522B2 (en) 2007-11-07 2011-01-04 Napo Enterprises, Llc System and method for hyping media recommendations in a media recommendation system
US9060034B2 (en) 2007-11-09 2015-06-16 Napo Enterprises, Llc System and method of filtering recommenders in a media item recommendation system
US8224856B2 (en) 2007-11-26 2012-07-17 Abo Enterprises, Llc Intelligent default weighting process for criteria utilized to score media content items
US8620896B2 (en) * 2007-12-06 2013-12-31 Yahoo! Inc. Reverse matching relationships in networks of existing identifiers
US9734507B2 (en) 2007-12-20 2017-08-15 Napo Enterprise, Llc Method and system for simulating recommendations in a social network for an offline user
US8396951B2 (en) 2007-12-20 2013-03-12 Napo Enterprises, Llc Method and system for populating a content repository for an internet radio service based on a recommendation network
US8060525B2 (en) * 2007-12-21 2011-11-15 Napo Enterprises, Llc Method and system for generating media recommendations in a distributed environment based on tagging play history information with location information
US8117193B2 (en) 2007-12-21 2012-02-14 Lemi Technology, Llc Tunersphere
US8316015B2 (en) 2007-12-21 2012-11-20 Lemi Technology, Llc Tunersphere
EP2243109A4 (en) * 2007-12-26 2012-01-18 Gamelogic Inc System and method for collecting and using player information
US8122091B2 (en) * 2007-12-31 2012-02-21 International Business Machines Corporation System and method for name resolution
US20090210391A1 (en) * 2008-02-14 2009-08-20 Hall Stephen G Method and system for automated search for, and retrieval and distribution of, information
US8972177B2 (en) * 2008-02-26 2015-03-03 Microsoft Technology Licensing, Llc System for logging life experiences using geographic cues
US8015144B2 (en) 2008-02-26 2011-09-06 Microsoft Corporation Learning transportation modes from raw GPS data
US8966121B2 (en) 2008-03-03 2015-02-24 Microsoft Corporation Client-side management of domain name information
US20090234876A1 (en) * 2008-03-14 2009-09-17 Timothy Schigel Systems and methods for content sharing
US8725740B2 (en) * 2008-03-24 2014-05-13 Napo Enterprises, Llc Active playlist having dynamic media item groups
US8489517B2 (en) * 2008-03-30 2013-07-16 Cachinko Llc Method, system, and storage device for clique based social networking and social graphing
US8490004B2 (en) * 2008-04-17 2013-07-16 Gary Stephen Shuster Evaluation of remote user attributes in a social networking environment
US8484311B2 (en) 2008-04-17 2013-07-09 Eloy Technology, Llc Pruning an aggregate media collection
US9342833B2 (en) * 2008-06-25 2016-05-17 Microsoft Technology Licensing, Llc Method of aggregating business and social networks
WO2010014853A1 (en) * 2008-07-30 2010-02-04 Michael Zimmerman Data-oriented user interface for mobile device
US9183535B2 (en) * 2008-07-30 2015-11-10 Aro, Inc. Social network model for semantic processing
KR101058660B1 (en) * 2008-07-31 2011-08-22 연세대학교 산학협력단 Device and method for recommending call partner according to user's situation using mobile terminal
US20100070537A1 (en) * 2008-09-17 2010-03-18 Eloy Technology, Llc System and method for managing a personalized universal catalog of media items
US20100082357A1 (en) * 2008-09-30 2010-04-01 Nokia Corporation Methods, apparatuses, and computer program products for providing activity coordination services
US8484227B2 (en) 2008-10-15 2013-07-09 Eloy Technology, Llc Caching and synching process for a media sharing system
US8880599B2 (en) * 2008-10-15 2014-11-04 Eloy Technology, Llc Collection digest for a media sharing system
US8386534B2 (en) 2008-10-30 2013-02-26 At&T Intellectual Property I, L.P. Automatic gleaning of semantic information in social networks
US20100111372A1 (en) * 2008-11-03 2010-05-06 Microsoft Corporation Determining user similarities based on location histories
US20100153292A1 (en) * 2008-12-11 2010-06-17 Microsoft Corporation Making Friend and Location Recommendations Based on Location Similarities
US9607052B2 (en) * 2008-12-29 2017-03-28 Technion Research & Development Foundation Limited Query networks evaluation system and method
US20100174998A1 (en) 2009-01-06 2010-07-08 Kiha Software Inc. Calendaring Location-Based Events and Associated Travel
US20100174747A1 (en) * 2009-01-06 2010-07-08 International Business Machines Corporation Methods for recommending new individuals to be invited into a confirmed social network based on mined social data
US9063226B2 (en) 2009-01-14 2015-06-23 Microsoft Technology Licensing, Llc Detecting spatial outliers in a location entity dataset
US8200602B2 (en) 2009-02-02 2012-06-12 Napo Enterprises, Llc System and method for creating thematic listening experiences in a networked peer media recommendation environment
US20100217720A1 (en) * 2009-02-20 2010-08-26 Microsoft Corporation Identifying users for effective propagation of content
CN101510856A (en) * 2009-03-12 2009-08-19 腾讯科技(深圳)有限公司 Method and apparatus for extracting member relation loop in SNS network
US9069862B1 (en) 2010-10-14 2015-06-30 Aro, Inc. Object-based relationship search using a plurality of sub-queries
US9009177B2 (en) 2009-09-25 2015-04-14 Microsoft Corporation Recommending points of interests in a region
WO2011038491A1 (en) 2009-09-30 2011-04-07 Evan V Chrapko Systems and methods for social graph data analytics to determine connectivity within a community
US20110099164A1 (en) 2009-10-23 2011-04-28 Haim Zvi Melman Apparatus and method for search and retrieval of documents and advertising targeting
GB2475251A (en) * 2009-11-10 2011-05-18 Skype Ltd Identifying new contacts in a peer to peer network
GB2475252A (en) * 2009-11-10 2011-05-18 Skype Ltd A hashing scheme is used to facilitate identifying the presence of matching information items on different network nodes without disclosing the information.
US20110173198A1 (en) * 2010-01-12 2011-07-14 Yahoo! Inc. Recommendations based on relevant friend behaviors
CA2729966A1 (en) * 2010-01-28 2011-07-28 Her Majesty The Queen In Right Of Canada As Represented By The Minister Of The Department Of National Defence Method and system for extracting and characterizing relationships between entities mentioned in documents
US20110188742A1 (en) * 2010-02-02 2011-08-04 Jie Yu Recommending user image to social network groups
US8612134B2 (en) * 2010-02-23 2013-12-17 Microsoft Corporation Mining correlation between locations using location history
US9261376B2 (en) 2010-02-24 2016-02-16 Microsoft Technology Licensing, Llc Route computation based on route-oriented vehicle trajectories
US10288433B2 (en) * 2010-02-25 2019-05-14 Microsoft Technology Licensing, Llc Map-matching for low-sampling-rate GPS trajectories
US8719198B2 (en) 2010-05-04 2014-05-06 Microsoft Corporation Collaborative location and activity recommendations
US9593957B2 (en) 2010-06-04 2017-03-14 Microsoft Technology Licensing, Llc Searching similar trajectories by locations
US8429099B1 (en) 2010-10-14 2013-04-23 Aro, Inc. Dynamic gazetteers for entity recognition and fact association
US20120246087A1 (en) * 2010-11-19 2012-09-27 Naresh Talati Method and apparatus for establishing an exclusive network of Strong Tie connections which is then used to make referenceable connections between members for various personal and business benefits
CN102724168B (en) * 2011-03-30 2014-10-01 腾讯科技(深圳)有限公司 A method and a device for pushing user information
CN102868716A (en) * 2011-07-08 2013-01-09 中兴通讯股份有限公司 Searching method, system and search server for contact path
US8838581B2 (en) * 2011-08-19 2014-09-16 Facebook, Inc. Sending notifications about other users with whom a user is likely to interact
WO2013026095A1 (en) * 2011-08-25 2013-02-28 Matsumoto Yashimasa Social rating system
US8751591B2 (en) 2011-09-30 2014-06-10 Blackberry Limited Systems and methods of adjusting contact importance for a computing device
CN104717134A (en) * 2011-09-30 2015-06-17 北京奇虎科技有限公司 Method and device for automatic recommendation of friends through mobile communication tool
US9026592B1 (en) 2011-10-07 2015-05-05 Google Inc. Promoting user interaction based on user activity in social networking services
EP2584506A1 (en) * 2011-10-18 2013-04-24 Research In Motion Limited Method and system for determining eligible communication partners utilizing an entity discovery engine
US8983996B2 (en) * 2011-10-31 2015-03-17 Yahoo! Inc. Assisted searching
US9754226B2 (en) 2011-12-13 2017-09-05 Microsoft Technology Licensing, Llc Urban computing of route-oriented vehicles
US20130166188A1 (en) 2011-12-21 2013-06-27 Microsoft Corporation Determine Spatiotemporal Causal Interactions In Data
US9858313B2 (en) 2011-12-22 2018-01-02 Excalibur Ip, Llc Method and system for generating query-related suggestions
US9183259B1 (en) 2012-01-13 2015-11-10 Google Inc. Selecting content based on social significance
US8843491B1 (en) 2012-01-24 2014-09-23 Google Inc. Ranking and ordering items in stream
US9177065B1 (en) 2012-02-09 2015-11-03 Google Inc. Quality score for posts in social networking services
CN103312745A (en) * 2012-03-12 2013-09-18 腾讯科技(深圳)有限公司 Method, system and device for mining information of potential friend
CN103425648B (en) * 2012-05-15 2016-04-13 腾讯科技(深圳)有限公司 The disposal route of relation loop and system
US9454519B1 (en) 2012-08-15 2016-09-27 Google Inc. Promotion and demotion of posts in social networking services
US10216785B2 (en) * 2012-08-20 2019-02-26 Facebook, Inc. Dynamically-sorted contact information
US9537706B2 (en) 2012-08-20 2017-01-03 Plentyoffish Media Ulc Apparatus, method and article to facilitate matching of clients in a networked environment
US9378529B2 (en) * 2012-12-14 2016-06-28 Facebook, Inc. Arranging stories on newsfeeds based on expected value scoring on a social networking system
US20140172877A1 (en) * 2012-12-14 2014-06-19 Dan Yigal Rubinstein Boosting ranks of stories by a needy user on a social networking system
US9407719B2 (en) * 2013-01-30 2016-08-02 Linkedin Corporation Batch connect
US11568008B2 (en) 2013-03-13 2023-01-31 Plentyoffish Media Ulc Apparatus, method and article to identify discrepancies between clients and in response prompt clients in a networked environment
US9672289B1 (en) 2013-07-23 2017-06-06 Plentyoffish Media Ulc Apparatus, method and article to facilitate matching of clients in a networked environment
US9870465B1 (en) 2013-12-04 2018-01-16 Plentyoffish Media Ulc Apparatus, method and article to facilitate automatic detection and removal of fraudulent user information in a network environment
US10540607B1 (en) 2013-12-10 2020-01-21 Plentyoffish Media Ulc Apparatus, method and article to effect electronic message reply rate matching in a network environment
US9647920B2 (en) * 2014-01-14 2017-05-09 International Business Machines Corporation Providing geolocation notifications to increase collaboration between users
US9578043B2 (en) 2015-03-20 2017-02-21 Ashif Mawji Calculating a trust score
WO2016171874A1 (en) * 2015-04-22 2016-10-27 Google Inc. Providing user-interactive graphical timelines
US10176263B2 (en) * 2015-09-25 2019-01-08 Microsoft Technology Licensing, Llc Identifying paths using social networking data and application data
US20170235792A1 (en) 2016-02-17 2017-08-17 Www.Trustscience.Com Inc. Searching for entities based on trust score and geography
US9679254B1 (en) 2016-02-29 2017-06-13 Www.Trustscience.Com Inc. Extrapolating trends in trust scores
US9721296B1 (en) 2016-03-24 2017-08-01 Www.Trustscience.Com Inc. Learning an entity's trust model and risk tolerance to calculate a risk score
US10671615B2 (en) * 2016-05-27 2020-06-02 Facebook, Inc. Methods and systems for assigning affinity scores to contacts
US10497068B2 (en) * 2016-09-17 2019-12-03 Fujitsu Limited Advice engine systems
CN108446281B (en) * 2017-02-13 2021-03-12 北京嘀嘀无限科技发展有限公司 Method, device and storage medium for determining user intimacy
CN106850417A (en) * 2017-04-06 2017-06-13 北京深思数盾科技股份有限公司 A kind of method and device for setting up user-association relation
CN107330013B (en) * 2017-06-15 2021-04-23 上海掌门科技有限公司 Method and equipment for user recommendation
WO2019125082A1 (en) 2017-12-22 2019-06-27 Samsung Electronics Co., Ltd. Device and method for recommending contact information
KR102628042B1 (en) * 2017-12-22 2024-01-23 삼성전자주식회사 Device and method for recommeding contact information
US11784960B2 (en) * 2018-01-31 2023-10-10 Dotalign, Inc. Method, apparatus, and computer-readable medium for leveraging connections
US11762869B1 (en) 2018-09-28 2023-09-19 Splunk Inc. Generating journey flow visualization with node placement based on shortest distance to journey start
US11144185B1 (en) * 2018-09-28 2021-10-12 Splunk Inc. Generating and providing concurrent journey visualizations associated with different journey definitions
US11893070B2 (en) 2022-02-08 2024-02-06 My Job Matcher, Inc. Apparatus and methods for expanding contacts for a social networking platform

Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6233571B1 (en) 1993-06-14 2001-05-15 Daniel Egger Method and apparatus for indexing, searching and displaying data
US20040122855A1 (en) * 2002-12-19 2004-06-24 Joann Ruvolo Method of creating and displaying relationship chains between users of a computerized network
US20040148275A1 (en) * 2003-01-29 2004-07-29 Dimitris Achlioptas System and method for employing social networks for information discovery
US20050159970A1 (en) * 2004-01-21 2005-07-21 Orkut Buyukkokten Methods and systems for the display and navigation of a social network
US20050171799A1 (en) 2004-01-29 2005-08-04 Yahoo! Inc. Method and system for seeding online social network contacts
US20050171955A1 (en) * 2004-01-29 2005-08-04 Yahoo! Inc. System and method of information filtering using measures of affinity of a relationship
US20050171832A1 (en) 2004-01-29 2005-08-04 Yahoo! Inc. Method and system for sharing portal subscriber information in an online social network
US20050177385A1 (en) 2004-01-29 2005-08-11 Yahoo! Inc. Method and system for customizing views of information associated with a social network user
US20050182745A1 (en) * 2003-08-01 2005-08-18 Dhillon Jasjit S. Method and apparatus for sharing information over a network
US20050198131A1 (en) * 2004-03-05 2005-09-08 Barry Appelman Passively populating a participant list with known contacts
US20050197846A1 (en) 2004-03-04 2005-09-08 Peter Pezaris Method and system for generating a proximity index in a social networking environment
US20050210409A1 (en) * 2004-03-19 2005-09-22 Kenny Jou Systems and methods for class designation in a computerized social network application
US20050256756A1 (en) 2004-05-17 2005-11-17 Lam Chuck P System and method for utilizing social networks for collaborative filtering
US20060021009A1 (en) * 2004-07-22 2006-01-26 Christopher Lunt Authorization and authentication based on an individual's social network
US20060042483A1 (en) 2004-09-02 2006-03-02 Work James D Method and system for reputation evaluation of online users in a social networking scheme
US7016307B2 (en) * 2004-03-11 2006-03-21 Yahoo! Inc. Method and system for finding related nodes in a social network
US7028026B1 (en) 2002-05-28 2006-04-11 Ask Jeeves, Inc. Relevancy-based database retrieval and display techniques
US7099862B2 (en) * 2001-08-02 2006-08-29 International Business Machines Corporation Programmatic discovery of common contacts
US20060251339A1 (en) * 2005-05-09 2006-11-09 Gokturk Salih B System and method for enabling the use of captured images through recognition
US7359894B1 (en) * 2004-06-30 2008-04-15 Google Inc. Methods and systems for requesting and providing information in a social network

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7325012B2 (en) * 1999-12-06 2008-01-29 Interface Software, Inc. Relationship management system determining contact pathways in a contact relational database
EP1442411A4 (en) * 2001-09-30 2006-02-01 Realcontacts Ltd Connection service
US7069308B2 (en) * 2003-06-16 2006-06-27 Friendster, Inc. System, method and apparatus for connecting users in an online computer system based on their relationships within social networks
US20050171954A1 (en) * 2004-01-29 2005-08-04 Yahoo! Inc. Selective electronic messaging within an online social network for SPAM detection
US20060190536A1 (en) * 2005-02-23 2006-08-24 International Business Machines Corporation Method, system and program product for building social networks
US7596597B2 (en) * 2006-08-31 2009-09-29 Microsoft Corporation Recommending contacts in a social network

Patent Citations (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6233571B1 (en) 1993-06-14 2001-05-15 Daniel Egger Method and apparatus for indexing, searching and displaying data
US7099862B2 (en) * 2001-08-02 2006-08-29 International Business Machines Corporation Programmatic discovery of common contacts
US7028026B1 (en) 2002-05-28 2006-04-11 Ask Jeeves, Inc. Relevancy-based database retrieval and display techniques
US20040122855A1 (en) * 2002-12-19 2004-06-24 Joann Ruvolo Method of creating and displaying relationship chains between users of a computerized network
US7177880B2 (en) * 2002-12-19 2007-02-13 International Business Machines Corporation Method of creating and displaying relationship chains between users of a computerized network
US20040148275A1 (en) * 2003-01-29 2004-07-29 Dimitris Achlioptas System and method for employing social networks for information discovery
US20050182745A1 (en) * 2003-08-01 2005-08-18 Dhillon Jasjit S. Method and apparatus for sharing information over a network
US20050159970A1 (en) * 2004-01-21 2005-07-21 Orkut Buyukkokten Methods and systems for the display and navigation of a social network
US20050171832A1 (en) 2004-01-29 2005-08-04 Yahoo! Inc. Method and system for sharing portal subscriber information in an online social network
US7269590B2 (en) * 2004-01-29 2007-09-11 Yahoo! Inc. Method and system for customizing views of information associated with a social network user
US20050177385A1 (en) 2004-01-29 2005-08-11 Yahoo! Inc. Method and system for customizing views of information associated with a social network user
US20050171955A1 (en) * 2004-01-29 2005-08-04 Yahoo! Inc. System and method of information filtering using measures of affinity of a relationship
US20050171799A1 (en) 2004-01-29 2005-08-04 Yahoo! Inc. Method and system for seeding online social network contacts
US20050197846A1 (en) 2004-03-04 2005-09-08 Peter Pezaris Method and system for generating a proximity index in a social networking environment
US20050198131A1 (en) * 2004-03-05 2005-09-08 Barry Appelman Passively populating a participant list with known contacts
US7016307B2 (en) * 2004-03-11 2006-03-21 Yahoo! Inc. Method and system for finding related nodes in a social network
US20050210409A1 (en) * 2004-03-19 2005-09-22 Kenny Jou Systems and methods for class designation in a computerized social network application
US20050256756A1 (en) 2004-05-17 2005-11-17 Lam Chuck P System and method for utilizing social networks for collaborative filtering
US7359894B1 (en) * 2004-06-30 2008-04-15 Google Inc. Methods and systems for requesting and providing information in a social network
US20060021009A1 (en) * 2004-07-22 2006-01-26 Christopher Lunt Authorization and authentication based on an individual's social network
US20060042483A1 (en) 2004-09-02 2006-03-02 Work James D Method and system for reputation evaluation of online users in a social networking scheme
US20060251339A1 (en) * 2005-05-09 2006-11-09 Gokturk Salih B System and method for enabling the use of captured images through recognition

Non-Patent Citations (13)

* Cited by examiner, † Cited by third party
Title
Amir, Arnon, et al. "Buddy Tracking-efficient proximity detection among mobile friends," Mar. 2004, IEEE, pp. 298-309. *
Backstrom, Lars et al. "Group Formation in Large Social Networks: Membership, Growth and Evolution," Aug. 20, 2006, ACM, pp. 44-52. *
Bishop, Jonathan, "Development and Evaluation of a Virtual Community," Jun. 19, 2002. *
Boyd. "Friendstar and Publicly Articulated Socail Networking", Conference on Human Factors in Computing Systems, Late Breaking Results Paper. University of California, Berkeley. Apr. 24-29, 2004. Vienna, Austria. pp. 1279-1282.
Donath, Judith S. "Visual Who: Animating the Affinities and Activities of an Electronic Community," ACM, 1995. *
Facebook.com, "Discover People You May Know," Apr. 4, 2006. *
Foner, Leonard, "Personal Privacy: The Yenta Multi-Agent Distributed Matchmaking System," Apr. 30, 1999. *
Gross, Ralph & Acquisti, Alessandro, "Information Revelation and Privacy in Online Social Networks," Nov. 7, 2005, ACM, pp. 82-91. *
Hicks. "Local Search Services Tap Social Networks", eweek.com. Apr. 21, 2005. Available at <http://www.eweek.com/article2/0,1759,1788712,00.asp> [Last Accessed: May 3, 2006] 6 pgs.
Shardarand and Maes, Social Information Filtering: Algorithms for Automating "Word of Mouth," ACM, Jan. 1, 1995. *
Song, Xiaodan et al. "Modeling and Predicting Personal Information Dissemination Behavior," ACM 2005. ISBN 1-59593-135-X. *
Wellman, Barry, "For a Social Network Analysis of Computer Networks: A Sociological Perspective on Collaborative Work and Virtual Community," Apr. 1996, ACM, pp. 1-11. *
Zhang, Jun & Ackerman, Mark S. "Searching for Expertise in Social Networks: A Simulation of Potential Strategies," Nov. 6, 2005, ACM, pp. 71-80. *

Cited By (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE44966E1 (en) 2003-11-28 2014-06-24 World Assets Consulting Ag, Llc Adaptive recommendations systems
US11715132B2 (en) 2003-11-28 2023-08-01 World Assets Consulting Ag, Llc Adaptive and recursive system and method
US8600920B2 (en) 2003-11-28 2013-12-03 World Assets Consulting Ag, Llc Affinity propagation in adaptive network-based systems
USRE44559E1 (en) 2003-11-28 2013-10-22 World Assets Consulting Ag, Llc Adaptive social computing methods
US8566263B2 (en) 2003-11-28 2013-10-22 World Assets Consulting Ag, Llc Adaptive computer-based personalities
USRE44967E1 (en) 2003-11-28 2014-06-24 World Assets Consulting Ag, Llc Adaptive social and process network systems
USRE44968E1 (en) 2003-11-28 2014-06-24 World Assets Consulting Ag, Llc Adaptive self-modifying and recombinant systems
USRE45770E1 (en) 2003-11-28 2015-10-20 World Assets Consulting Ag, Llc Adaptive recommendation explanations
US9626648B2 (en) 2006-08-31 2017-04-18 Microsoft Technology Licensing, Llc Recommending contacts in a social network
US20090319466A1 (en) * 2006-08-31 2009-12-24 Microsoft Corporation Recommending contacts in a social network
US10171599B2 (en) 2006-09-12 2019-01-01 Facebook, Inc. Customizing tracking changes to user content in an online social network
US10412179B2 (en) * 2006-09-12 2019-09-10 Facebook, Inc. Tracking changes to non-friend content in an online social network
US10275410B2 (en) 2006-09-12 2019-04-30 Facebook, Inc. Customizing tracking changes to user content in an online social network
US20120036213A1 (en) * 2006-09-12 2012-02-09 Tiu Jr William K Tracking Changes to Non-Friend Content in an Online Social Network
US9798789B2 (en) * 2006-09-12 2017-10-24 Facebook, Inc. Method and system for tracking changes to user content in an online social network
US10353915B2 (en) 2006-09-12 2019-07-16 Facebook, Inc. Customizing tracking changes to user content in an online social network
US20080065701A1 (en) * 2006-09-12 2008-03-13 Kent Lindstrom Method and system for tracking changes to user content in an online social network
US10798190B2 (en) 2006-09-12 2020-10-06 Facebook, Inc. Tracking changes to content on an external source in an online social network
US20110302263A1 (en) * 2006-10-31 2011-12-08 Yahoo! Inc. Social namespace addressing for non-unique identifiers
US9495712B2 (en) * 2006-10-31 2016-11-15 Yahoo! Inc. Social namespace addressing for non-unique identifiers
US20080126187A1 (en) * 2006-11-10 2008-05-29 Felkel D Hollis Method and System for Determining the Ability of an Organization to Successfully Interact with Government
US7945862B2 (en) * 2007-09-11 2011-05-17 Yahoo! Inc. Social network site including contact-based recommendation functionality
US20090070684A1 (en) * 2007-09-11 2009-03-12 Yahoo! Inc. Social Network Site Including Contact-Based Recommendation Functionality
US11120400B2 (en) 2007-09-11 2021-09-14 Slack Technologies, Inc. Social network site including modification control and management
US20090104895A1 (en) * 2007-10-22 2009-04-23 Cisco Technology, Inc. (Ca Corporation) Dynamic contact list
US8503989B2 (en) 2007-10-22 2013-08-06 Cisco Technology, Inc. Dynamic contact list
US9319287B2 (en) 2007-10-22 2016-04-19 Cisco Technology, Inc. Dynamic contact list
US20090157795A1 (en) * 2007-12-18 2009-06-18 Concert Technology Corporation Identifying highly valued recommendations of users in a media recommendation network
US9224150B2 (en) * 2007-12-18 2015-12-29 Napo Enterprises, Llc Identifying highly valued recommendations of users in a media recommendation network
US8407311B1 (en) * 2008-03-17 2013-03-26 Google Inc. System and method for creating relationships among users of an instant messaging service
US10116597B2 (en) 2008-03-17 2018-10-30 Google Llc System and method for creating relationships among users of an instant messaging service
US8744976B2 (en) * 2008-04-28 2014-06-03 Yahoo! Inc. Discovery of friends using social network graph properties
US20090271370A1 (en) * 2008-04-28 2009-10-29 Yahoo! Inc. Discovery of friends using social network graph properties
US20090319288A1 (en) * 2008-06-24 2009-12-24 Yahoo Inc. Suggesting contacts for social networks
US20100082693A1 (en) * 2008-09-25 2010-04-01 Ethan Hugg Organization of a contact list based on social network context
US20100125599A1 (en) * 2008-11-17 2010-05-20 International Business Machines Corporation Obtaining trusted recommendations through discovery of common contacts in contact lists
US9723102B2 (en) 2009-07-01 2017-08-01 Facebook, Inc. Gathering information about connections in a social networking service
US20110004692A1 (en) * 2009-07-01 2011-01-06 Tom Occhino Gathering Information about Connections in a Social Networking Service
US9332077B2 (en) 2009-07-01 2016-05-03 Facebook, Inc. Gathering information about connections in a social networking service
US20110145719A1 (en) * 2009-12-14 2011-06-16 International Business Machines Corporation People recommendation indicator method and apparatus in a social networking site
US9846728B1 (en) 2010-02-08 2017-12-19 Google Inc. Scoring authors of posts
US10949429B1 (en) 2010-02-08 2021-03-16 Google Llc Scoring authors of posts
US9442989B1 (en) * 2010-02-08 2016-09-13 Google Inc. Scoring authors of posts
US8990393B2 (en) 2010-04-19 2015-03-24 Henri Rizk System and method for managing relationships with independent multi-dimensional grouping, individualized privileges, and interactive feedback in a social network
US9442984B2 (en) 2010-05-19 2016-09-13 Adobe Systems Incorporated Social media contributor weight
US10540660B1 (en) 2010-05-19 2020-01-21 Adobe Inc. Keyword analysis using social media data
US9710555B2 (en) * 2010-05-28 2017-07-18 Adobe Systems Incorporated User profile stitching
US8651961B2 (en) 2010-12-03 2014-02-18 Solocron Entertainment Llc Collaborative electronic game play employing player classification and aggregation
US9227140B2 (en) 2010-12-03 2016-01-05 Solocron Entertainment Llc Collaborative electronic game play employing player classification and aggregation
US9071567B2 (en) 2011-01-31 2015-06-30 Oracle International Corporation Workspace-aware social networks in an enterprise
US9069945B2 (en) 2011-03-04 2015-06-30 Puneet Singh User validation in a social network
US9438650B2 (en) 2011-07-07 2016-09-06 F. David Serena Relationship networks having link quality metrics with inference and concomitant digital value exchange
US8725796B2 (en) 2011-07-07 2014-05-13 F. David Serena Relationship networks having link quality metrics with inference and concomitant digital value exchange
US10210268B2 (en) 2011-07-07 2019-02-19 F. David Serena Relationship networks having link quality metrics with inference and concomitant digital value exchange
US9807038B2 (en) * 2011-10-11 2017-10-31 Kakao Corporation Method and system for providing instant messaging service
US20140173003A1 (en) * 2011-10-11 2014-06-19 Kakao Corp. Method and system for providing instant messaging service
US20130132195A1 (en) * 2011-11-22 2013-05-23 Yahoo! Inc. Methods and systems for creating dynamic user segments based on social graphs
US8812608B2 (en) * 2012-06-26 2014-08-19 Wetpaint.Com, Inc. Portfolio optimization for media merchandizing
US20140297657A1 (en) * 2012-06-26 2014-10-02 Wetpaint.Com, Inc. Portfolio optimization for media merchandizing
US20130346575A1 (en) * 2012-06-26 2013-12-26 Wetpaint.Com, Inc. Portfolio optimization for media merchandizing
US8977701B2 (en) * 2012-06-26 2015-03-10 Wetpaint.Com, Inc. Portfolio optimization for media merchandizing
US20150039609A1 (en) * 2012-08-29 2015-02-05 Wetpaint.Com, Inc. Personalization based upon social value in online media
US8762472B2 (en) * 2012-08-29 2014-06-24 Wetpaint.Com, Inc. Personalization based upon social value in online media
US8984082B2 (en) * 2012-08-29 2015-03-17 Wetpaint.Com, Inc. Personalization based upon social value in online media
US10977677B2 (en) 2013-07-15 2021-04-13 Dropbox, Inc. Contact importer
US8831969B1 (en) * 2013-10-02 2014-09-09 Linkedin Corporation System and method for determining users working for the same employers in a social network
US9881097B2 (en) * 2013-10-12 2018-01-30 Chian Chiu Li Systems and methods for contacting target person
US10430486B2 (en) * 2013-10-12 2019-10-01 Chian Chiu Li Systems and methods for contacting target person
US20160092588A1 (en) * 2013-10-12 2016-03-31 Chian Chiu Li Systems And Methods for Contacting Target Person

Also Published As

Publication number Publication date
US20170177732A1 (en) 2017-06-22
US20080059576A1 (en) 2008-03-06
US9626648B2 (en) 2017-04-18
US10891343B2 (en) 2021-01-12
US20090319466A1 (en) 2009-12-24

Similar Documents

Publication Publication Date Title
US10891343B2 (en) Recommending contacts in a social network
US11392590B2 (en) Triggering alerts from searches on events
US7761399B2 (en) Recommendation networks for ranking recommendations using trust rating for user-defined topics and recommendation rating for recommendation sources
KR101201067B1 (en) Method, system, apparatus, and computer-readable storage medium for receiving and responding to knowledge interchange queries
Tang et al. Email mining: tasks, common techniques, and tools
CN105934755B (en) Enhancing search results with social tags
Golbeck et al. Linking Social Networks on the Web with FOAF: A Semantic Web Case Study.
KR101150095B1 (en) Method, system, apparatus, and computer-readable storage medium for maintaining user privacy in a knowledge interchange system
US8725711B2 (en) Systems and methods for information categorization
US10007706B2 (en) Identifying one or more relevant social networks for one or more collaboration artifacts
US9477755B2 (en) Question-related identification of relevant social communities
US20090119293A1 (en) Computer Method and System for Determining Individual Priorities of Shared Activities
WO2012109487A2 (en) Social network based contextual ranking
KR20060050486A (en) Method, system, and apparatus for creating a knowledge interchange profile
WO2007089951A1 (en) Trusted acquaintances network system
CN110941635A (en) Probabilistic generated identity database system and method
US20190147404A1 (en) Email streaming records
US20140195536A1 (en) Creating dimension/topic term subgraphs
Franzoni et al. Semantic heuristic search in collaborative networks: Measures and contexts
Makris et al. Efficient and adaptive discovery techniques of web services handling large data sets
Gentile et al. Extracting semantic user networks from informal communication exchanges
KR20060094849A (en) Creation and composition of sets of items
US8700623B2 (en) Activities based dynamic data prioritization
CN111680508B (en) Text processing method and device
Rocha et al. MyLibrary at LANL: proximity and semi-metric networks for a collaborative and recommender Web service

Legal Events

Date Code Title Description
AS Assignment

Owner name: MICROSOFT CORPORATION, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:LIU, DAFAN;CHEN, HUA;MA, WEI-YING;REEL/FRAME:018546/0614;SIGNING DATES FROM 20061009 TO 20061103

STCF Information on status: patent grant

Free format text: PATENTED CASE

CC Certificate of correction
FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034542/0001

Effective date: 20141014

FPAY Fee payment

Year of fee payment: 8

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20210929