CN105279597B - Determining relationship types between disparate entities - Google Patents

Determining relationship types between disparate entities Download PDF

Info

Publication number
CN105279597B
CN105279597B CN201510216483.3A CN201510216483A CN105279597B CN 105279597 B CN105279597 B CN 105279597B CN 201510216483 A CN201510216483 A CN 201510216483A CN 105279597 B CN105279597 B CN 105279597B
Authority
CN
China
Prior art keywords
members
relationship
groups
company
entities
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
Application number
CN201510216483.3A
Other languages
Chinese (zh)
Other versions
CN105279597A (en
Inventor
K.王
S.郭
B.颜
A.C.赖
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 Technology Licensing LLC
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 Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105279597A publication Critical patent/CN105279597A/en
Application granted granted Critical
Publication of CN105279597B publication Critical patent/CN105279597B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/288Entity relationship models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Methods and systems for identifying relationships between multiple entities are described. Members of the entity are partitioned into one or more groups based on the one or more attributes; one or more of the groups are analyzed to determine the role of the corresponding group. A pair of groups is selected, each group of the pair of groups being from a different entity. The relationship between the selected pair of groups is analyzed to generate a relationship metric, and the relationship between the selected pair of groups is characterized based on the relationship metric.

Description

Determining relationship types between disparate entities
Technical Field
The present disclosure relates generally to data processing systems. More particularly, the present disclosure relates to methods and systems for determining a type of relationship between disparate entities.
Background
Social media and networking websites maintain a wealth of information about companies, organizations, employees, members, entities, groups of members, and the like. The information may involve company description (firmware) information, such as information identifying a company headquarters, a hierarchical structure of a company or organization (such as identifying subsidiaries), and so forth. Often, some useful company descriptive information may be lost or otherwise unavailable.
Drawings
Some embodiments are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which:
FIG. 1 is a user interface diagram illustrating an example of a user interface or web page for a company represented as an entity in a social graph maintained by a social networking service, consistent with some embodiments;
FIG. 2 is a block diagram illustrating various functional components of a social networking system having a path finder module and a communication prioritization module for use with a wide variety of applications, and in particular for prioritizing communications, consistent with some embodiments of the present invention;
FIG. 3 is a block diagram illustrating an example of a portion of a chart data structure for implementing a social chart in accordance with some embodiments of the invention;
FIG. 4A illustrates a flowchart according to an example method for determining a type of relationship between disparate entities, according to an example embodiment;
FIG. 4B illustrates a flowchart according to an example method for determining the functionality of a group, according to an example embodiment;
FIG. 5 is a user interface diagram illustrating an example of a user interface or web page that enables a company representative to publish messages or status updates consistent with some embodiments of the invention;
FIG. 6 is a user interface diagram illustrating an example of a user interface or web page with a personalized data feed (or content stream) via which members of a social networking service may receive communication messages and/or status updates, according to some embodiments;
FIG. 7 is a table illustrating a non-exhaustive list of associations that may be considered as edges connecting two nodes representing entities in a social graph data structure, according to some embodiments of the invention;
FIG. 8 is a diagram illustrating an example of a generalized social graph containing nodes representing several different entities having different entity types including members, companies, and schools;
FIG. 9 is an example of a user interface for use with a messaging application implementing methods consistent with some embodiments of the invention;
FIG. 10 is a representation of an example user interface for a team sharing application consistent with some embodiments of the invention; and
fig. 11 is a block diagram of a machine in the form of a computing device within which a set of instructions may be executed for enabling the machine to perform any one or more of the methodologies discussed herein.
Detailed Description
The present disclosure describes methods, systems, and computer program products for determining a type of relationship between disparate entities. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of various aspects of different embodiments of the invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without all of these specific details and/or with modifications, permutations and combinations of the various features and elements described herein.
In general, this disclosure describes methods, systems, and computer program products for determining relationships between disparate entities based on, for example, social graphs. The disclosed techniques may be provided as a social networking service and may be used in conjunction with other social networking services and techniques, including social graphs, member profiles, data feeds, and social graph path scoring techniques.
Relationships between different entities can be discovered and identified. In one example embodiment, members of each entity, such as a company or enterprise employee, may be segmented into groups according to various attributes. For example, members may be grouped by location, job function, and/or job skill. A group may be analyzed to determine whether the group corresponds to a particular department of an entity. For example, members with customer service skills that are co-located may be identified to constitute a customer service department.
Each pair of departments or groups from different entities is then analyzed to determine whether a correlation exists between the pair of groups. The correlation between the pair of groups or sub-units may indicate a correlation between the corresponding entities. In an example embodiment, a relationship may be measured based on various metrics, and may be considered a correlation if one or more of the metrics exceeds a corresponding threshold.
Social network
Online or web-based social networking services provide their users with mechanisms to define and record their relationships with others in a digital format. This digital representation of real-world relationships is often referred to as a social graph. As these social networking services have matured, many services have extended the concept of social graphs to enable users to establish or define relationships or associations with any number of entities and/or objects in much the same way that users define relationships with others. For example, in the case of some social networking services and/or in the case of some web-based applications that utilize social charts maintained by third-party social networking services, a user may indicate relationships or associations with various real-world entities and/or objects. For example, a user may take action to expressly indicate an opinion or interest in favor of different types of content (e.g., web-based articles, blog postings, books, photographs, videos, audio recordings, music, etc.). Typically, the expression of a user's opinion or interest is captured when the user interacts with a particular graphical user interface element (such as a button), which is typically presented along with a particular entity or object and often marked in some meaningful way (e.g., "like", "+ 1", "follow up").
Member profile
In addition to hosting large amounts of social graph data, many social networking services maintain a variety of personal information about their members. For example, in the case of many social networking services, when a user registers to become a member, the member is prompted to provide various personal or biographical information that may be displayed in the member's personal web page. Such information is commonly referred to as personal profile information or simply "profile information," and when shown collectively, is commonly referred to as a member profile. For example, for some of the many social networking services in use today, personal information that is typically requested and displayed as part of a member profile includes personal age, date of birth, gender, interests, contact information, address of residence, hometown and/or state, names of personal spouse and/or family members, and so forth. For some social networking services, such as some business or professional networking services, a member's personal information may include information that is typically included in professional resumes or stories, such as information about the individual's education, the company the individual is employed in, the industry the individual is employed in, the title or function of work, the history of employment, the skills the individual possesses, the professional organization the individual is a member of, and so forth.
Social networking service
Because social networking services are a rich source of information about people, social networking services are extremely useful tools in performing certain tasks. For example, many people use social networking services to search and/or browse member profiles that exhibit various desired characteristics. For example, a work recruiter may search for people with profiles that indicate certain technical skills, as well as educational and professional experience and background. Similarly, when a person needs to recruit a person who is employed in a particular profession (e.g., general contractor, doctor, attorney, landscape designer, plumber, banker, etc.), the person may turn to a social networking service to identify the person with the requisite skills and qualifications. In another scenario, a person may desire to contact someone for the purpose of exploring or proposing the possibility of a particular business arrangement or relationship. Accordingly, the person may use the social networking service to identify the appropriate person to contact.
Social graph
Social graphs may be implemented using a specialized graph data structure in which various entities (e.g., people, companies, schools, government agencies, non-profit organizations, and other organizations) are represented as nodes connected by edges, where the edges have different types representing various associations and/or relationships between different entities. For some embodiments, the social graph data structure may be implemented using a graph database, although other techniques may be used. Accordingly, if the member graduation of the social networking service having the name Jeffrey bearer is at Princeton university, the particular association may be represented in the social graph data structure by connecting the node representing the member Jeffrey via an edge to another node representing an entity or organization Princeton university, where the particular edge type indicates a particular association type, in which case the state of Jeffrey is as a graduate of the Princeton university. Thus, for at least some embodiments, an organization may exist within a social graph of a social networking service without necessarily having any particular web-based content hosted by the social networking service.
Example user interface
FIG. 1 is a user interface diagram illustrating an example of a user interface or web page for a company represented as an entity in a social graph maintained by a social networking service, consistent with some embodiments. As illustrated in fig. 1, the example web page is for a company having the name "Avocado". In this example, a representative of Avocado has established what may be referred to as a company page 130 with a social networking service. In this example, the company page 130 of Avocado is hosted by a social network service. Accordingly, members of the social networking service who may be interested in the company may access the Avocado's company page 130 to view various information about the company. For example, Avocado's company page 130 may present a brief history of the company and an overview of the products and services offered by the company. The Avocado's company page 130 may present information regarding various worksheets for the company's available employment position, for example, along with the "job" tab in fig. 1. Along with the "follower statistics" tab, the company page 130 can present statistics about members that are following the company or subscribing on behalf of the company to receive messages or status updates. Such information may generally include the total number of company followers, the total number of new company followers in some predetermined number of days (e.g., the last seven days), the number of messages or status updates published on behalf of the company in the same predetermined number of days, and so forth. In addition to follower statistics, for some embodiments, the corporate page 130 may present page statistics, such as a total number of corporate page 130 views, a number of corporate page 130 views within some predetermined number of days (e.g., the last seven days), and/or a number of page or link selections (e.g., clicks) within the same predetermined number of days.
For some embodiments, the company page 130 may include various insights about the company as derived from member profile information and social charts of the members viewing. For example, in conjunction with the "see" tab in the example web page of FIG. 1, the viewing member may be presented with information identifying members of the social networking service that are hired at Avocado and have a new job title or information about members that have recently left Avocado to go to a new company. In an example embodiment, information within the company page 130 may be used to prioritize communications. For example, communications from employees of a company that is the recipient's customer may be given higher priority.
Social graph connections
Consistent with embodiments of the present invention, some of the many tasks people typically perform using social networking services are improved by conveying specific information to users of the services regarding associations (e.g., relationships and affiliations) as follows: a user or an entity on whose behalf the user is acting (e.g., a company, group, or other organization associated with the user) may share the association with another member of the social network service while the user is performing a particular task. In one example embodiment, member associations of a social graph may be utilized to determine a type of relationship between disparate entities, as described more fully below. For example, techniques for analyzing a social graph to identify connection paths connecting a user (or some other entity) with another member of a social network service and then presenting a visual representation of those connection paths determined to be strongest or best suited for a particular purpose may be useful in many services. While social graphs used by many conventional social networking services merely model the relationships that exist between people, embodiments of the present invention use social graphs that may include not only people but other types of entities as well. For example, a social graph may include entity types such as companies, educational institutions, groups, and so forth. Likewise, a connection path connecting two members in a social graph may be based on a wide variety of associations between various entities, including personal relationships between members, common employment relationships with a particular company, common membership in a group, and so forth. Such connection paths may be utilized to determine the type of relationship between disparate entities, as described more fully below.
The social network service may maintain a social graph implemented as a graph data structure having nodes and edges, where the nodes represent different entities and the edges represent various associations or relationships between the entities. For example, for some embodiments, entity types may include people, companies, educational institutions (e.g., schools and universities), and groups (e.g., online groups or professional organizations), among others. Accordingly, an edge connecting any two nodes (entities) may represent the type of association between the entities, and thus may depend in part on the entities involved. For example, an edge connecting two nodes representing people may represent a particular type of relationship between the two people, including a direct, bilateral connection between the two people. An edge connecting a first node representing a person and a second node representing a company may represent an employment relationship (current or previous) between the person and the company. In addition to having a particular type of edge representing the nature of a relationship between two entities, an edge score may be assigned to each edge connecting two entities to reflect the strength or relevance of a particular association.
Consistent with some embodiments, when a communication is received, the social networking service (e.g., specifically, the path finder module) may perform an algorithmic process to analyze the social graph and identify a connection path connecting a recipient of the communication with a sender of the communication, such as a user or other entity that is a member of the social networking service. The connection path or connection paths determined to be strongest or most relevant relative to the communication may then be visually presented to the user, thereby providing the user with important contextual information for completing tasks, and/or the connection path or connection paths determined to be strongest or most relevant relative to the communication may be used to determine a type of relationship between disparate entities, as described more fully below. In the specific context of digital messaging applications, the terms "communication sender" and "communication recipient" are used herein. A communication recipient is a member to which a communication is addressed, while a communication sender is a user performing the tasks of preparing and sending a communication on behalf of himself or herself, or on behalf of an entity such as a company, group, or other organization.
FIG. 2 is a block diagram illustrating various functional components of a social networking system 210, consistent with some embodiments of the present invention, the social networking system 210 having a path finder module 216 and a communication prioritization module 240 for use with a wide variety of applications, and in particular for determining a type of relationship between disparate entities. As shown in fig. 2, the social networking system 210 may be generally based on a three-tier architecture consisting of a front-end tier, an application logic tier, and a data tier. As will be appreciated by those skilled in the relevant computer and internet-related arts, each module or engine shown in fig. 2 may represent a set of executable software instructions and corresponding hardware (e.g., memory and processor) for executing the instructions. Various functional modules and engines that are not germane to conveying an understanding of the inventive subject matter have been omitted from fig. 2 in order to avoid obscuring the inventive subject matter in unnecessary detail. However, the skilled artisan will readily recognize that various additional functional modules and engines may be used with a social networking system, such as the social networking system illustrated in fig. 2, to facilitate additional functionality not specifically described herein. Further, the various functional modules and engines depicted in fig. 2 may reside on a single server computer, or may be distributed across several server computers in various arrangements. Moreover, although depicted as a three-tier architecture in FIG. 2, the inventive subject matter is in no way limited to such an architecture.
As shown in fig. 2, the front end is comprised of a user interface module (e.g., web server) 212, which user interface module 212 can receive requests from various client-computing devices and transmit appropriate responses to the requesting client devices. For example, user interface module(s) 212 may receive requests in the form of hypertext transfer protocol (HTTP) requests or other web-based Application Programming Interface (API) requests. A client device (not shown) may execute a conventional web browser application or an application that has been developed for a particular platform, including any of a wide variety of mobile devices and operating systems.
As shown in FIG. 2, the data layer may include several databases including databases for storing data for various entities of a social graph, including member profiles 218, company profiles 220, educational institution profiles 222, and information about various online or offline groups 224. In addition, the graph data structure may be implemented using a graph database 226, which graph database 226 is a particular type of database that uses a graph structure having nodes, edges, and properties to represent and store data. Of course, for various alternative embodiments, any number of other entities may be included in the social graph, and likewise, various other databases may be used to store data corresponding to the other entities.
Member registration
Consistent with some embodiments, when a person initially registers to become a member of a social networking service, the person may be prompted to provide personal information such as his or her name, age (e.g., date of birth), gender, interests, contact information, hometown, address, the name of the member's spouse and/or family member, educational background (e.g., school, specialty, etc.), current job title, job description, industry, employment history, skills, professional organization, and so forth. This information is stored, for example, in the member profile 218.
Once registered, a member may invite other members or may be invited by other members to connect via a social networking service. A "connection" may require a bilateral agreement by the members so that both members confirm the establishment of the connection. Similarly, for some embodiments, a member may choose to "follow" another member. In contrast to establishing a "connection," the concept of "following" another member may generally be a unilateral operation, and at least for some embodiments, may not require confirmation or approval of the member being followed. When one member follows another member, the member making the following may receive automatic notifications regarding various activities performed by the member being followed. In addition to following another member, the user may also choose to follow a company, topic, conversation, or some other entity that may or may not be included in the social graph. Various other types of relationships that may exist between different entities and are represented in social graph database 226 are described in connection with FIG. 7.
The application logic layer includes various application server modules 214, and the various application server modules 214 may generate various user interfaces (e.g., web pages) with data retrieved from various data sources in the data layer in conjunction with the user interface module(s) 212. For some embodiments, the individual application server module 214 may be used to implement functionality associated with various applications, services, and features of a social networking service. For example, a messaging application, such as an email application, an instant messaging application, or some mix or variation of the two, may be implemented with one or more application server modules 214. A search engine that enables a user to search and browse member profiles may be implemented with one or more application server modules 214.
Member connection
In addition to the various application server modules 214, the application logic layer may include a path finder module 216 and a communication prioritization module 240. As illustrated in fig. 2, for some embodiments, the path finder module 216 may be implemented as a service that operates in conjunction with various of the application server modules 214. For example, any number of individual application server modules 214 and/or communication prioritization module 240 may invoke the functionality of path finder module 216, including application server module 214 associated with a messaging application and/or application server module 214 associated with an application that facilitates viewing of member profiles 218. However, for various alternative embodiments, the path finder module 216 may be implemented as its own application server module 214 such that it operates as a standalone application. For some embodiments, the path finder module 216 may include or have an associated publicly available API that enables third party applications to invoke the functionality of the path finder module 216.
In general, the path finder module 216 may take as input parameters that minimally identify two different nodes corresponding to two entities (e.g., two people or one person and one company, etc.) in a social graph that may be implemented with a graph data structure (e.g., social graph database 226). Using these input parameters, the path finder module 216 may analyze the social graph database 226 to identify connection paths connecting two entities (if any) in the social graph. For some embodiments, additional input parameters may be provided to the path finder module 216 and may be used to refine the connection paths selected for potential presentation to the user. These parameters may include, for example, filtering criteria for including or excluding connection paths with a particular entity or a particular entity type or a particular edge type. Once the set of connection paths that satisfy the input parameters has been identified, the path finder module 216 may derive a path score for each connection path, for example, by aggregating the individual edge scores for the edges connecting different nodes included in the connection path. Finally, the path finder module 216 can provide information corresponding to the connection paths to the application that invoked the path finder module 216 so that a visual representation of one or more connection paths can be presented to the user.
The path finder module 216 may be invoked from a wide variety of applications. In the context of a messaging application (e.g., an email application, an instant messaging application, or some similar application), the path finder module 216 may be invoked to provide a message sender with a visual representation of a connection path between the message sender and a person to whom the message sender has mailed a message (e.g., a message recipient). Similarly, the path finder module 216 can be invoked to provide the message sender with a visual representation of a connection path connecting the entity (e.g., a company, group, or other organization) on whose behalf the message sender is acting with the message recipient. In an example embodiment, the path finder module 216 may be invoked to provide a path score corresponding to a connection path connecting the communication sender and the communication receiver for use in determining a type of relationship between disparate entities.
Social graph data structure
FIG. 3 is a block diagram illustrating an example of a portion of a chart data structure 330 for implementing a social chart in accordance with some embodiments of the invention. As illustrated in FIG. 3, the graph data structure 330 may be composed of nodes connected by edges. For example, node 332 may be connected to node 336 by way of edge 334. Each node in the graph data structure 330 may represent an entity in the social graph. For some embodiments, any number of entity types may be included in the social graph. For example, as illustrated in FIG. 3, the types of entities that may be present in one implementation of a social graph consistent with embodiments of the present invention are: people, companies, educational institutions (e.g., colleges, schools, or universities), and groups (e.g., online groups hosted by a social networking service or some other third party server system, or real-world organizations such as professional organizations). The edge 334 connecting any two nodes 332, 336 may represent a wide variety of different associations. For example, in general, the edge 334 may represent a relationship, an affiliation, an activity or event, or some other affinity shared in common between two entities. Although not exhaustive, the various association representations presented in the table of FIG. 7 may be mapped to an edge 334 of the social graph data structure 330 to indicate some of the many associations between entities in a social graph of a social networking service consistent with some embodiments of the present invention.
Example relationship identification application
Relationships between different entities may be discovered and identified based on, for example, profiles and social graphs of registered members. In an example embodiment, members of each entity (such as employees of a company or business) may be segmented into groups according to various attributes (e.g., member profile attributes and/or characteristics). For example, members may be grouped according to location, job function, and/or job skill as indicated in one or more member profiles. A group of members may be analyzed to determine whether the group corresponds to a particular department of an entity. For example, it may be determined that members with customer service skills that are co-located constitute a customer service department. In other examples, a cluster of members with sales skills, analysis skills, or engineering skills may be found and their corresponding groups may be classified as sales, analysis, and engineering departments, respectively.
Each pair of departments or each pair of groups from different entities may then be analyzed to determine whether a correlation exists between the pair of departments or groups. The correlation between the pair of doors or groups may in turn indicate the correlation between the corresponding entities.
In an example embodiment, relationships may be measured based on various metrics, and may be considered a correlation relationship if one or more of the metrics exceeds a corresponding threshold. In one example embodiment, only bilateral relationships, i.e., relationships in a relationship that are confirmed by two people, are considered. In one example embodiment, relationships among relationships that are only confirmed by one person and/or relationships that have not been confirmed by any person in a relationship are considered.
In one example embodiment, the connection density ratio may be determined by dividing the number of unique connections between members of a first department (such as a department of a first company) and members of a second department (such as a department of a second company) by the maximum number of potential unique connections between members of the two departments. The maximum number of potential unique connections between members of the two departments may be determined by multiplying the total number of employees in the first department by the total number of employees in the second department. In one example embodiment, if the ratio exceeds a predetermined threshold, the first and second departments are considered to have a correlation relationship. In one example embodiment, the first and second departments are considered to have a correlation if the ratio increases at a rate above a defined threshold. The relatedness between departments may in turn indicate the relatedness between the entities to which the departments belong. For example, a correlation between a sales department of a first company and an engineering department of a second company may indicate that the second company is a customer of the first company. Business partnerships may be inferred, for example, by entities sharing industry types, products (similar or complementary), and so forth.
In one example embodiment, a competitor relationship between two entities may be determined based on the second level connection. For example, two entities (such as companies) that produce similar products in the same industry and both have a high connection density ratio (a connection density ratio that exceeds a defined threshold) with the same set of customers may be labeled as competitors. In one example embodiment, a financial relationship between two entities may be determined based on the first or second level connections.
In one example embodiment, the type or nature of the relationship between members may be analyzed and used to determine whether a correlation exists between departments or groups. For example, in determining relationships between companies, relationships between members that are marked or determined to be a working relationship may be given more weight than a friendship relationship. In another example, in determining relationships between citizens' organizations, relationships between members marked or determined as friendship relationships may be given equal weight to relationships marked or determined as business relationships.
In one example embodiment, certain membership may be included, excluded, or given different weights when calculating the relationship metric criteria. For example, if a member moves from one entity to another (such as changing employment from a first company to a second company), the member's relationship may be handled differently. In this example, business relationships with other members in the first company may be excluded from processing, may be given different weights, may be changed to a different type of relationship (e.g., "pre-business" relationship), and so on, as the relationship may be merely a result of the member's employment at the first company and may not indicate a general relationship between companies. In this case, the friendships with other members in the first company may not be treated differently after the employment change. In other examples, membership may be included, excluded, or given different weights when calculating the relationship metric criteria based on the length of time of the relationship, the transition of the relationship, and so forth.
FIG. 4A illustrates a flow diagram of an example method 400 for determining a type of relationship between disparate entities, according to an example embodiment. In an example embodiment, an entity is selected (operation 404). Members of the selected entity, such as employees of a company or enterprise, are segmented into groups according to one or more attributes (operation 408). For example, members may be grouped according to location, job function, and/or job skill. The attributes may be obtained, for example, from a member profile of the social networking service.
A group of segmented members may be selected (operation 412) and common attributes of the selected group may be identified and/or analyzed to determine an identity of the group (operation 416), as described more fully below in connection with fig. 4B. For example, a group may be analyzed to determine if there are dominant characteristics of the members of the group, such as customer service skills. Members of a customer service technology co-located may be identified to form a customer service department. In other examples, a cluster of members with sales skills, analysis skills, or engineering skills may be found and their corresponding groups may be classified as sales, analysis, and engineering departments, respectively.
A test may be performed to determine if all groups of the selected entity have been analyzed (operation 420). If all groups of the selected entity have not been analyzed, the method 400 may proceed to operation 412. If all groups of selected entities have been analyzed, a test may be performed to determine if all entities have been selected (operation 424). If all entities have not been selected, the method 400 may continue with operation 404; otherwise, a group from the first entity and a group from another entity may be selected (operation 428). Relationships between the selected groups may be analyzed and relationship metrics may be generated (operation 432). The analysis may determine whether a correlation exists between the selected groups and thus between the different entities.
Relationships may be measured based on various metrics, and may be considered a correlation if one or more of the metrics exceeds a corresponding threshold. For example, the connection density ratio may be determined by dividing the number of unique connections between each member of a first department (such as a department of a first company) and each member of a second department (such as a department of a second company) by the maximum number of potential unique connections between the members of the two departments. The maximum number of potential unique connections between members of the two departments may be determined by multiplying the total number of employees in the first department by the total number of employees in the second department. If the ratio exceeds a defined threshold, such as 30%, the first and second departments may be considered to have a correlation. The correlations between departments may in turn indicate the correlations between the entities to which the departments belong.
A test may be performed to determine if the relationship is a relational relationship. For example, a test may be performed to determine whether the relationship metric exceeds a threshold (operation 436). If the relationship metric does not exceed the threshold, the method 400 may continue with operation 428; otherwise, the correlation relationships may be analyzed to determine the type or nature of the relationship between the selected groups and/or between the corresponding entities, and the relationship may be labeled accordingly (operation 440). For example, a correlation between a sales department of a first company and an engineering department of a second company may indicate that the second company is a customer of the first company. The method 400 may then end.
In an example embodiment, operation 432 may be performed using a binary classifier that determines whether, for example, two business units have a relationship. In an example embodiment, operation 440 may be implemented with a multi-class classifier that determines the type of relationship between entities (such as customers, competitors, business partners, industry partners, and so forth). The classifier may be based on, for example, a nearest neighbor algorithm and may provide a confidence score for each determination. The classifier may be rule-based or may be based on a statistical machine learning model that is trained based on known relationships. The inputs to the classifier are various types of features and the outputs are one or more types of relationships. In one example embodiment, the features include social-centric features (such as first and second level connection densities, etc.), business-centric features (such as business industries, product types, etc.), member-centric features (such as member titles, member positions, etc.), behavior-centric features (such as published articles about other businesses, team introductions to another group, etc.), and content-centric features (such as announcements disclosing types of relationships between two business entities).
Fig. 4B illustrates a flowchart of an example method 450 for determining a function of a group, according to an example embodiment. In an example embodiment, a member profile is selected (operation 454), and the work function and/or work skill of the member is obtained from the member profile (operation 458). A test is then performed to determine if a group corresponding to the obtained job function and/or job skill exists (operation 462). If there are groups corresponding to the obtained job function and/or job skill, the method 450 proceeds to operation 470; otherwise, a group corresponding to the obtained job function and/or job skill is created (operation 466).
During operation 470, the selected members are assigned to the group corresponding to the obtained job function and/or job skill. A test is then performed to determine whether all of the listed job functions and/or job skills for the selected member have been processed (operation 474). If all of the listed job functions and/or job skills for the selected member have not been processed, the method 450 proceeds to operation 458; otherwise, a test is performed to determine if all member profiles 218 have been processed (operation 478). If all member profiles 218 have not been processed, the method 450 proceeds to operation 454; otherwise, a group is selected for processing (operation 482).
During group processing, a test is performed to determine if the total number of members in the group exceeds a predetermined threshold (operation 486). The predetermined threshold may be, for example, equal to twenty members. If the total number of members in the group does not exceed the predetermined threshold, the method 450 proceeds to operation 482. If the total number of members in the group exceeds a predetermined threshold, the group is identified by the work function and/or work skill initially associated with the group (operation 490). A test is performed to determine if all groups have been processed (operation 494). If all groups have not been processed, the method 450 proceeds to operation 482; otherwise, the method 450 ends.
Data feed and content stream
Data feeds or content streams are known to those skilled in the art by a variety of different names, including "streams," status update streams, "" network update streams, "and/or" news feeds. Similarly, a skilled person may refer to this type of message by many different names, including "state update", "tweet", or simply and generically as a message. In an example embodiment, high priority communications may be identified in a data feed and/or a content feed. For example, as described more fully below, messages specifying actions by recipients may be identified in a data feed. In another example embodiment, when an organization's authority publishes a status update on behalf of the organization, the status update may appear in a content stream that is presented on the web page of the particular organization on whose behalf the status update is being published. Additionally, status updates may appear in a personalized content stream of those members of the social networking service who have taken some action to subscribe to receive messages that represent an organization's publication.
Returning to FIG. 1, the various items of content are shown in separate content modules. In the portion of the example user interface having reference numeral 132, the company page 130 can present a user interface for data feeds or content streams (e.g., a company update stream), via which messages or status updates published on behalf of the company can be presented. For some embodiments, the content presented in the company update stream may be a combination of content that has been automatically generated by some application or service of the social networking service and content that has been published by a company administrator or representative that has been granted the right to publish content on behalf of the company. For some embodiments, a message or status update that may be posted on behalf of a company may be visible to all members of the social network service via the company page 130, regardless of whether the member is following a particular company and regardless of whether the member has particular member profile attributes that are selected by the content author as targeting criteria when the message or status update is initially posted. For some alternative embodiments, the status updates in the company update stream may be visible only to those members of the social network service who are following the company and/or have member profile attributes selected by the publisher of the status update as targeting criteria. If a member has subscribed to receive messages (e.g., if the member is following a company) and the member has a member profile attribute that the publisher that was updated with the status has selected as a targeting criteria when publishing the message, the message or status update published on behalf of the company may only appear in the member's personal data feed or content stream. In an example embodiment, the published messages or state updates may be prioritized in accordance with prioritization techniques described more fully below. For example, if the recipient is a follower of a company and has indicated an interest in employment opportunities, a high priority may be given to messages that include work opportunities. For some embodiments, the author may select as targeting criteria: whether a message or status update should be communicated 548 to an employee, a non-employee, or both an employee and a non-employee of the company on whose behalf the message or status update is being issued, as depicted in user interface 542 in fig. 5. For example, if an author of a message published on behalf of Avocado wishes the message to be received only by employees of the company, the author may select "employee" thereby limiting audience 546 to only employees of the company. In some examples, the industry 544 may also be selected when selecting a target audience.
An example user interface: data feed
Fig. 6 is a user interface diagram illustrating an example of a user interface 650 or web page with a personalized data feed (or content stream) via which a member of a social networking service may receive communication messages and/or status updates 654, according to some embodiments. In the example user interface 650 of fig. 6, the content module 652 may represent a personalized data feed or content stream for a member of the social network service having the name John Smith. In this example, the content stream not only presents content specifically selected for John Smith, but the content stream itself may be presented within a user interface or web page personalized for John Smith. For some embodiments, the personalized data feed or content stream has various configuration settings associated therewith that may enable a user to specifically filter or select the type of content that the member desires to view in the personalized content stream. For some embodiments, high priority communications may be identified in a personalized data feed or content stream. For example, as indicated above, if the recipient has indicated an interest in the employment opportunity, a high priority may be given to the message 660 including the work opportunity.
A social graph: path score
Consistent with some embodiments of the invention, for each connection path connecting a communication sender to a communication receiver, a path score may be derived to reflect the overall connection strength (or relevance) of the path connecting the sender and receiver. For example, for some embodiments, the path score may be derived by simply summing (e.g., adding or otherwise combining using an algorithm or formula) the individual edge scores corresponding to the edges 334 of the connecting nodes 332, 336 that ultimately connect the sender and receiver. As described in more detail below, various algorithms may be used to derive individual edge scores for particular edges 334 and/or edge types connecting any two nodes 332, 336 in a social graph. For example, for some embodiments, various weighting factors may be applied to affect (e.g., increase or decrease) the edge score for a particular edge type (e.g., the type of association that exists between two nodes 332, 336 in a social graph) based on the particular task for which the connection path is identified and presented. For some embodiments, once the various connection paths connecting a communication sender or some user-specified entity to a communication recipient have been identified and ranked or ranked according to path scores, the user may be presented with a visual representation of the connection path with the highest path score. For some embodiments, a visual representation of several independent connection paths may be presented. For some embodiments, the path scores may be used to prioritize communications received by the receiver, as described more fully below.
Message delivery
In the context of messaging applications, and in particular web-based messaging applications, consistent with some embodiments of the invention, when a message sender has posted a message to another member of a social networking service (e.g., a message recipient), the message sender may be presented with a visual representation of one or more optimal connection paths connecting the message sender to the message recipient as determined by analyzing a social graph maintained by the social networking service. For some embodiments, the algorithm used to derive the path scores for the various connection paths connecting the message sender to the message recipient may be selected based on an inferred communication type or an explicitly selected communication type. For some embodiments, the social networking service may use machine learning techniques and/or various algorithms to infer the type of communication (e.g., the purpose or reason for the message sender to communicate with the message recipient), and then, based on this information, may select a particular algorithm for deriving the path score. For some embodiments, the message sender may explicitly select or otherwise specify a communication type such that the selected communication type will affect the algorithm used to derive the path score for the connection path connecting the message sender and the message recipient. By adjusting the algorithm used to derive the path score for a particular task (e.g., sending a message) and/or a particular context of the task (e.g., the communication type of the task sending a message), the most relevant connection path(s) may be presented to the user based on the task and the context in which the task was performed.
For some embodiments, a visual representation of the best connection path(s) (e.g., the connection path(s) with the highest path scores) may be automatically embedded or otherwise included in the message content being prepared by the message sender. In one example embodiment, the path scores corresponding to the one or more connection paths having the highest path scores are embedded or otherwise included in the message content. Thus, when a message recipient receives a message, the message recipient may determine one or more optimal connection paths connecting the message sender with the message recipient and/or may view a visual representation of the one or more optimal connection paths connecting the message sender with the message recipient. Alternatively, the one or more connection paths may be determined and/or presented in a manner that allows the message sender to simply reference the relevant information when the message sender composes a message. For example, for some embodiments, the visual representation of the connection path may be presented as a separate element of a graphical user interface that is displayed when the message sender composes the message. Similarly, the visual representation of the one or more connection paths may be presented to the message recipient, not as part of the received electronic message, but instead as part of a separate user interface element presented while the message recipient is accessing and viewing the electronic message. In either case, by identifying and then presenting information indicating how the message sender and message recipient are related or related (e.g., via a social graph connection), the message recipient is more likely to be receptive to receiving, reading, and replying to messages, and the messages are more easily prioritized. This is particularly advantageous in an environment where people are often overburdened with information and are receiving hundreds of messages per day. For some embodiments, the communication may be prioritized with a path score embedded or otherwise included in the message content, as described more fully below.
Referring to FIG. 7, a table 738 illustrates a non-exhaustive list of associations that may be considered to be edges 334 connecting two nodes 332, 336 representing entities in a social graph data structure. Various edge types or associations may apply to all entity type combinations, while other edge types or associations may only apply to some subset of entity type combinations. For example, an edge type representing a "follow" relationship may connect two nodes 332, 336, where each node 332, 336 represents a person, and an edge 334 connecting the two nodes 332, 336 may indicate that one person is following the other person. Similarly, an edge 334 representing a "follow-up" relationship may connect a first node 332 representing a person with a second node 336 representing a company to indicate that the person is following the company. Accordingly, the edge type for the "follow" relationship may apply to the entity type "person" as well as "company". Some other associations may only be meaningful when applied to edges 334 that connect certain types of entities.
Some of the various associations or edge types shown in FIG. 7 may indicate that a particular relationship exists between the two entities represented by nodes 332, 336 in the graph data structure. For example, two members of a social network service may be directly connected, one member may follow the other, one member may be in the address book or contact list of the other, two members may manage groups together or may be common inventors of a patent, and so on. In each of these examples, an association or edge type may be assigned to an edge 334 connecting two nodes 332, 336 representing two entities (e.g., people, companies, educational institutions, groups, etc.).
Some of the various association or edge types shown in fig. 7 may indicate an activity that is shared in common between two entities or an activity that involves two entities. For example, the first member may have transmitted a message to the second member. The first member may have pushed sharply (re-tweet) or forwarded a certain content item (e.g. a piece of tweet) originally generated by the second member. The first member may share content items with the second member or review content items posted by the second member, and so on.
A third category of associations may generally involve what may be considered an adjunct. For example, a first member may be affiliated with a second member based on membership in the same group. Similarly, two members may be employed or already employed at the same company at different times or at the same time. Two members may be contacted based on having joined the same school or university, etc.
Another general category of association or edge types involves what is referred to herein as affinity. For example, two members may be associated based on affinity or similarity of profile attributes (such as the same general geographic location, commonly shared skills, employment in the same industry, common degree or specialty, etc.). The various associations or edge types that may be assigned to an edge 334 connecting two nodes 332, 336 in the graph data structure 330 presented in fig. 7 are just a few of many examples. In various alternative embodiments of the invention, different associations (not shown in fig. 7) may also be used, particularly in the case of embodiments of the invention having additional entity types in addition to the specific examples presented herein (e.g., people, companies, educational institutions, groups).
FIG. 8 is a diagram illustrating an example of a generalized social graph 840 containing nodes representing several different entities having different entity types including members, companies, and schools. The member nodes include John Doe 842 and Jane Smith 844. The company nodes include ACME products company 846, Widget company 848, and XYZ company 850. There is one school node, state university, with reference number 852. Graph 840 may contain edges connecting nodes representing entities of the same or different types. For example, there is an edge 854 connecting John Doe 842 with Jane Smith 844, reflecting the fact that: john Doe 842 and Jane Smith 844 are directly connected to each other. This edge 854 may be assigned an edge score or weight that indicates the strength of the connection between John Doe 842 and Jane Smith 844. For example, for some embodiments, the weights may be calculated using a measure of overlap between member connections in John's network and member connections in Jane's network. That is, for two members M1 and M2, W (M1, M2) ═ Conn (M1, M2)/SQRT [ Conn (M1) × Conn (M2) ], where W (M1, M2) represents the weight of the edge connecting M1 and M2, Conn (M1, M2) may represent the number of direct member connections that M1 and M2 have in common, Conn (M1) may represent the total number of direct member connections in the network of M1, and Conn (M2) may represent the total number of direct member connections in the network of M2. Alternatively, the weight for the edge 854 may be determined based on a statistical estimate of the likelihood that John and Jane know each other, or by other algorithms or techniques, or a combination thereof.
Referring again to FIG. 8, there is an edge 856 connecting Jane Smith 844 to the ACME product company 846 that represents Jane as a corporate executive chairman and creator affiliated with the ACME product company 846. The score or weight assigned to the edge 856 may indicate the strength of the affiliation. For example, for some embodiments, the weights may be calculated based on the overlap between Jane's network and ACME product company 846's network, where the node representing ACME product company 846 in social graph 840 is connected to each member that is a current or previous employee of the company. That is, for member M1 and company C1, W (M1, C1) ═ Conn (M1, C1)/SQRT [ (Conn (M1) × Conn (C1)), where W (M1, C1) may represent the weight of the edge 334 connecting M1 and C1, Conn (M1, C1) may represent the number of members M1 connected to people that are current or past also C1, Conn (M1) represents the total number of connections in the network of M1, and Conn (C1) may represent the total number of members that are current or past employees of C1. Similarly, there is an edge 858 connecting Jane Smith 844 to State university 852 that represents Jane as a alumni of State university 852 attached to the university. The weight of the edge 858 may indicate the strength of the appendage. For example, the weight of the edge 334 connecting member M1 and school S1 may be calculated in terms of W (M1, S1) ═ Conn (M1, S1)/Conn (M1), where Conn (M1, S1) may represent the number of members M1 connected to students or alumni who are also S1, and Conn (M1) may represent the total number of member connections in the network of M1.
There is an edge 860 connecting the ACME product company 846 and the Widget company 848 representing an association between the two companies. An association between two companies may exist for various reasons (e.g., if they share a common originator, if some members of the social network service have been employed by both companies, if one company is a subsidiary of the other or if both companies are business partners). In this particular example, ACME product company 846 and Widget company 848 are connected because a large number of employees of front Widget company 848 are currently employed by ACME product company 846. The weight of the edge 860 may represent the strength of the association. For example, the weight of the edge 334 connecting two companies C1 and C2 may be calculated in terms of W (C1, C2) ═ Conn (C1, C2)/SQRT [ Conn (C1) × Conn (C2) ], where Conn (C1, C2) may represent the number of members already working at two companies C1 and C2, and Conn (C1) and Conn (C2) may represent the number of members already working at C1 and C2, respectively. Similarly, there is an edge 862 connecting ACME product company 846 with state university 852 that represents an association between the company and the school. The association may exist for various reasons (e.g., if a graduate at school or a student at school is employed at the company). Likewise, the weight assigned to edge 862 may indicate the strength of association. For example, the weight of the edge 334 connecting company C1 with school S1 may be calculated in terms of W (C1, S1) ═ Conn (C1, S1)/SQRT [ (Conn (C1) × Conn (S1) ], where Conn (C1, S1) may represent the number of members employed at company C1 that join or have joined school S1, Conn (C1) represents the number of members employed at C1, and Conn (S1) may represent the total number of members that join or have joined S1.
Directed social graph
For some embodiments, social chart 840 may be a directed chart. For example, in a social network where a member can follow other members and receive updates from other members, each edge 334 connecting nodes representing two members can be a directed link from the followed member to the following member. The followed member can send messages to the following member, but the following member cannot send messages to the followed member. Alternatively, the social network may contain two-way connections between members, but depending on the direction, the edge 334 connecting the two nodes 332, 336 may have different weights. For example, a company's Chief Executive Officer (CEO) may be connected to an engineer, where the CEO has a greater impact on the engineer than the engineer has on the CEO. For other embodiments, the social graph 840 may be a undirected graph, where all connections between entities are bidirectional and each edge 334 in the graph has equal weight in both directions. Accordingly, for some embodiments, the weight assigned to a particular edge 334 may generally affect the measure of connection strength between the two nodes 332, 336, and in particular the measure of connection strength for a particular connection path.
Member connection algorithm
Accordingly, for some embodiments of the invention, after identifying a set of connection paths connecting the communication sender and the communication receiver, a path finder module (e.g., path finder module 216 of fig. 2) may generate a path score for each of the identified connection paths. For some embodiments, the path score for each individual connection path may depend on the individual edge scores assigned to the edges 334 of the nodes 332, 336 in the connection path. For some embodiments of the invention, different algorithms may be automatically used to derive path scores for different applications or tasks. The particular algorithm used to derive the path score may be automatically and dynamically selected, for example, based on a determination of what the user is attempting to achieve. Alternatively, for some embodiments, the user may make an explicit selection (e.g., by specifying a message type or category, or the purpose of contacting a person), which would then affect the algorithm used to derive the path score. Thus, depending on the particular application that has invoked path finder module 216 or the particular task or process that is being performed or is being performed, edge scores or weights for different edge types may be derived differently, for example, to increase or decrease the impact of edge scores of certain types of edges 334 on path scores.
Message delivery
The path finder module 216 may be used with an email application, an Instant Messaging (IM) application, a text or SMS (short message service) text messaging application, or even some telephony or voice communication systems, including any of a variety of voice over IP (VoIP) based services. Similarly, the path finder module 216 can be implemented for use with applications that use any of a variety of network or computing models, including web-based applications, client-server applications, or even peer-to-peer applications. For some embodiments, the messaging application may be a service that is integrated with the social networking service and, thus, hosted by the same entity that operates the social networking service and the path-finder service. Alternatively, the path finder service may be accessible (e.g., via an API) to third-party applications hosted by entities other than the entity operating the social network service.
FIG. 9 is an example of a user interface for use with a messaging application implementing methods consistent with some embodiments of the invention. In the example user interface of fig. 9, a window pane (pane)942 may include a text entry box for specifying the identity of the person to whom the message 920 is to be delivered (e.g., a name ("John Wallace" as shown at reference 944), an email address, a phone number, etc.). In addition, various other user interface elements for entering or providing information may be presented, such as the sender's name "Ashley" as indicated by reference numeral 945. In particular, drop-down box 946 may enable a message sender to specify a category of message to be delivered to a message recipient. Reference numeral 912 may indicate the subject of the message. In an example embodiment, the sender may mark the communication as urgent or specify an action (reference numeral 916). For some embodiments, the message category selected by the message sender may affect the algorithm used to derive the path scores for different connection paths connecting the message sender to the message recipient. In specifying the identity of the message recipient and optionally the message category, the messaging application may present information about the message recipient, such as shown in window pane 948. Additionally, the path finder module 216 can identify the strongest connection paths between the message sender and the message recipient and present a visual representation of these strongest connection paths. For example, the window pane 950 may include a visual representation of these strongest connection paths (i.e., the connection paths with the highest path scores) connecting the message sender Ashley Hall 952 and the message recipient John Wallace 954 via two interconnected Jane Doe and Kevin Smith. In the window pane 950, reference numeral 960 indicates viewing of more paths, e.g. a visual representation of "see more paths of JOHN", reference numeral 962 indicates searching for advanced paths, and reference numeral 964 indicates viewing of more identical associations. As described more fully below, the path scores may be used to prioritize communications.
Example team sharing application
In one example embodiment, a team sharing application may enable a team to establish an environment in which information is shared and communications are provided between team members. Team sharing environments may be adapted around team members and relationships. In one example embodiment, only team members may access the team sharing environment. In an example embodiment, the invited guests may also access the team sharing environment and/or access to the environment may be unrestricted.
FIG. 10 is a representation of an example user interface for a team sharing application consistent with some embodiments of the invention. In one example embodiment, the team content feed 1020 is generated to provide status updates, notifications, and/or alerts to team members. The comment input field 1008 may enable a user to enter comments into the content feed 1020 or send comments to a particular user or group of users. For example, comments 1010 may be entered into the team content feed 1020 via the comment entry field 1008.
Team interface 1030 may display one or more teams accessible by the user for team sharing. For example, a research team may include members interested in research topics related to an organization or business. The favorites discussion interface 1034 may provide access to one or more active discussions that may be of interest to the user, as indicated at reference numeral 1038. The favorites discussion interface 1034 can display the latest comment(s) that have been added to each of the discussions. The one or more discussions may correspond to one of the teams identified in the team interface 1030.
The colleague interface 1042 may display thumbnail pictures representing one or more colleagues of the user. The thumbnail picture may be selected to retrieve a profile of the associated colleague and/or to create a message 920 for the selected colleague.
In one example embodiment, team members may be inferred from member profiles, connections, and activities, and the importance of information items shared with team members may be determined based on experience, skills, relationships, and actions of one or more of the team members.
In an example embodiment, team members may post work item status, such as status of a collaborative presentation, on the team content feed 1020. In another example, the activity may automatically generate a notice to the team content feed 1020. For example, uploading a computer program to a database may automatically generate a notice to the team content feed 1020 to indicate that the computer program is available for testing. The post may appear on the team content feeds 1020 of all team members, or may appear on the team content feeds 1020 of a subset of the team members. For example, a notice that a computer program is available for testing may appear only on team content feeds 1020 of team members that are also members of the software testing department. In one example embodiment, a team member may issue a question or request to another team member or members via the team content feed 1020.
Various operations of the example methods described herein may be performed, at least in part, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules or objects that operate to perform one or more operations or functions. In some example embodiments, the modules and objects referred to herein may comprise processor-implemented modules and/or objects.
Similarly, the methods described herein may be at least partially processor-implemented. For example, at least some of the operations of the method may be performed by one or more processors or processor-implemented modules. The performance of certain operations may be distributed among the one or more processors, which may reside not only within a single machine or computer, but may be deployed across many machines or computers. In some example embodiments, one or more processors may be located at a single site (e.g., within a home environment, an office environment, or at a server farm), while in other embodiments, the processors may be distributed across many sites.
The one or more processors may also operate to support performance of related operations in a "cloud computing" environment or within the context of a "software as a service (SaaS)". For example, at least some of the operations may be performed by a set of computers (as an example of machines including processors), which may be accessed via a network (e.g., the internet) and via one or more appropriate interfaces (e.g., APIs).
Fig. 11 is a block diagram of a machine in the form of a computing system 1100 within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed. In alternative embodiments, the machine operates as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the machine may operate in the capacity of a server or a client machine in client-server network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. In one example embodiment, the machine will be a server computer. However, in alternative embodiments, the machine may be a Personal Computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a mobile telephone, a web appliance, a network router, switch or bridge, or any machine capable of executing instructions (sequential or otherwise) that specify actions to be taken by that machine. Additionally, while only a single machine is illustrated, the term "machine" shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
The example computer system 1100 includes a processor 1102 (e.g., a Central Processing Unit (CPU), a Graphics Processing Unit (GPU), or both), a main memory 1101, and a static memory 1106, which communicate with each other via a bus 1108. The computer system 1100 may further include a video display unit 1110, an alphanumeric input device 1117 (e.g., a keyboard), and a User Interface (UI) navigation device 1111 (e.g., a mouse). In one embodiment, the video display unit 1110, input device 1117, and user interface navigation device 1111 are touch screen displays. The computer system 1100 may additionally include a storage device (e.g., drive unit) 1116, a signal generation device 1118 (e.g., a speaker), a network interface device 1120, and one or more sensors 1121, such as a global positioning system sensor, compass, accelerometer, or other sensor.
The drive unit 1116 includes a machine-readable medium 1122 on which is stored one or more sets of data structures and instructions 1123 (e.g., software) embodying or utilized by any one or more of the methodologies or functions described herein. The instructions 1123 may also reside, completely or at least partially, within the main memory 1101 and/or within the processor 1102 during execution thereof by the computer system 1100, the main memory 1101 and the processor 1102 also constituting machine-readable media 1122.
While the machine-readable medium 1122 is illustrated in an example embodiment as a single medium, the term "machine-readable medium" may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more instructions 1123. The term "machine-readable medium" shall also be taken to include any tangible medium, such as: the tangible medium can store, encode, or carry instructions 1123 for execution by the machine and cause the machine to perform any one or more of the methodologies disclosed herein, or can store, encode, or carry data structures utilized by such instructions 1123 or associated with such instructions 1123. The term "machine-readable medium" shall accordingly be taken to include, but not be limited to, solid-state memories and optical and magnetic media. Particular examples of the machine-readable medium 1122 include: non-volatile memory including, for example, semiconductor memory devices such as erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
The instructions 1123 may also be transmitted or received over a communication network 1126 using a transmission medium via the network interface device 1120 using any one of a number of well-known transfer protocols (e.g., HTTP). Examples of communication networks include a Local Area Network (LAN), a Wide Area Network (WAN), the internet, a mobile telephone network, a Plain Old Telephone (POTS) network, and a wireless data network (e.g.,
Figure GDA0002629154850000211
and
Figure GDA0002629154850000212
a network). The term "transmission medium" shall be taken to include any intangible medium that is capable of storing, encoding, or carrying instructions 1123 for execution by the machine and that includes digital or analog communications signals or other intangible medium to facilitate communication of such software.
Although embodiments have been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the invention. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. The accompanying drawings that form a part hereof show by way of illustration, and not of limitation, specific embodiments in which the subject matter may be practiced. The embodiments illustrated are described in sufficient detail to enable those skilled in the art to practice the teachings disclosed herein. Other embodiments may be utilized and derived therefrom, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. The present specific embodiments are, therefore, to be considered in all respects as not limiting, and the scope of various embodiments is defined only by the appended claims, along with the full range of equivalents to which such claims are entitled.

Claims (10)

1. A computer-implemented method for identifying relationships between a plurality of entities, comprising:
segmenting members of an entity in a social graph of a social network service into one or more groups based on one or more attributes;
analyzing the work functions of the members of the one or more groups to determine a work function for each of the corresponding groups;
selecting a pair of groups, each group of the pair of groups being from a different entity of the plurality of entities;
analyzing a relationship between the selected pair of groups to generate a relationship metric based on a relationship type between members of the corresponding group; and
characterizing the relationship between the selected pair of groups as a correlation based on the relationship metric being greater than a predetermined threshold and based on a job function of each of two or more corresponding groups, wherein the correlation of the selected pair of groups is weighted based on the type of relationship between members of the corresponding group.
2. The method of claim 1, wherein the attributes are a location of the member, a job function of the member, and a work skill of the member.
3. The method of claim 1, wherein the relationship metric is a connection density ratio.
4. The method of claim 1, wherein the characterization of the relationship is based on a type of relationship between members of the corresponding group.
5. The method of claim 1, wherein members of the group are well connected based on the connection density ratio being above a threshold.
6. A system for identifying relationships between a plurality of entities, the system comprising:
a processor;
a memory to store instructions that, when executed by the processor, cause the processor to:
segmenting members of an entity in a social graph of a social network service into one or more groups based on one or more attributes;
analyzing the work functions of the members of the one or more groups to determine a work function for each of the corresponding groups;
selecting a pair of groups, each group of the pair of groups being from a different entity of the plurality of entities;
analyzing a relationship between the selected pair of groups to generate a relationship metric based on a relationship type between members of the corresponding group; and
characterizing the relationship between the selected pair of groups as a correlation based on the relationship metric being greater than a predetermined threshold and based on a job function of each of two or more corresponding groups, wherein the correlation of the selected pair of groups is weighted based on the type of relationship between members of the corresponding group.
7. The system of claim 6, wherein the attributes are a location of the member, a job function of the member, and a work skill of the member.
8. The system of claim 6, wherein the relationship metric is a connection density ratio.
9. The system of claim 6, wherein the characterization of the relationship is based on a type of relationship between members of the corresponding group.
10. The system of claim 6, wherein members of the group are well connected based on the connection density ratio being above a threshold.
CN201510216483.3A 2014-06-30 2015-04-30 Determining relationship types between disparate entities Expired - Fee Related CN105279597B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201462018797P 2014-06-30 2014-06-30
US62/018797 2014-06-30

Publications (2)

Publication Number Publication Date
CN105279597A CN105279597A (en) 2016-01-27
CN105279597B true CN105279597B (en) 2020-11-24

Family

ID=55019820

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510216483.3A Expired - Fee Related CN105279597B (en) 2014-06-30 2015-04-30 Determining relationship types between disparate entities

Country Status (2)

Country Link
CN (1) CN105279597B (en)
WO (1) WO2016003512A1 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10523736B2 (en) 2014-06-30 2019-12-31 Microsoft Technology Licensing, Llc Determining an entity's hierarchical relationship via a social graph
US10044775B2 (en) 2014-08-29 2018-08-07 Microsoft Technology Licensing, Llc Calculating an entity'S location size via social graph
US10074143B2 (en) 2014-08-29 2018-09-11 Microsoft Technology Licensing, Llc Surfacing an entity's physical locations via social graph
CN106131296B (en) * 2016-06-07 2019-06-11 腾讯科技(深圳)有限公司 Information displaying method and device
KR101866649B1 (en) * 2016-08-08 2018-06-11 건국대학교 산학협력단 Method for searching for a missing child and apparatus for the same
JP6129393B1 (en) * 2016-09-09 2017-05-17 株式会社あしたのチーム Competency target setting support device, support method, and support program
JP6900727B2 (en) * 2017-03-28 2021-07-07 横河電機株式会社 Engineering support system, engineering support method, client equipment, and client program

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101436191A (en) * 2007-11-13 2009-05-20 日电(中国)有限公司 Method and system for calculating competitiveness measurement between calculation objects
WO2013030830A1 (en) * 2011-08-31 2013-03-07 Daniel Levy Automatic ranking of entities based on interactions therebetween
CN103428164A (en) * 2012-05-15 2013-12-04 腾讯科技(深圳)有限公司 User social network relationship division method and system
CN103827895A (en) * 2011-02-22 2014-05-28 汤姆森路透社全球资源公司 Entity fingerprints

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110093420A1 (en) * 2009-10-16 2011-04-21 Erik Rothenberg Computer-processing system scoring subjects relative to political, economic, social, technological, legal and environmental (pestle) factors, utilizing input data and a collaboration process, transforming a measurement valuation system regarding the value of subjects against an agenda
US11397996B2 (en) * 2011-06-24 2022-07-26 Monster Worldwide, Inc. Social match platform apparatuses, methods and systems
US10380629B2 (en) * 2012-05-25 2019-08-13 Microsoft Technology Licensing, Llc Leveraging a social graph to deliver relevant recommendations
US9461876B2 (en) * 2012-08-29 2016-10-04 Loci System and method for fuzzy concept mapping, voting ontology crowd sourcing, and technology prediction
US9654592B2 (en) * 2012-11-08 2017-05-16 Linkedin Corporation Skills endorsements

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101436191A (en) * 2007-11-13 2009-05-20 日电(中国)有限公司 Method and system for calculating competitiveness measurement between calculation objects
CN103827895A (en) * 2011-02-22 2014-05-28 汤姆森路透社全球资源公司 Entity fingerprints
WO2013030830A1 (en) * 2011-08-31 2013-03-07 Daniel Levy Automatic ranking of entities based on interactions therebetween
CN103428164A (en) * 2012-05-15 2013-12-04 腾讯科技(深圳)有限公司 User social network relationship division method and system

Also Published As

Publication number Publication date
WO2016003512A1 (en) 2016-01-07
CN105279597A (en) 2016-01-27

Similar Documents

Publication Publication Date Title
US10523736B2 (en) Determining an entity's hierarchical relationship via a social graph
US20150379445A1 (en) Determining a relationship type between disparate entities
EP2673718B1 (en) Leveraging a social graph for use with electronic messaging
CN105279597B (en) Determining relationship types between disparate entities
US10380629B2 (en) Leveraging a social graph to deliver relevant recommendations
US10592535B2 (en) Data flow based feature vector clustering
US9628430B2 (en) Notifications based on social network service activity and profile triggers
US10216749B2 (en) Performing actions associated with positive feedback events
US9009249B2 (en) Systems and methods for delivering content to a mobile device based on geo-location
US20130254213A1 (en) Techniques for identifying and presenting connection paths
US20150379535A1 (en) Determining a function of an entity
US9756006B2 (en) Contact prioritization and assignment using a social network
US9661039B2 (en) Recommending resources to members of a social network
US20140244612A1 (en) Techniques for quantifying the intent and interests of members of a social networking service
US20150006242A1 (en) Techniques for quantifying the intent and interests of members of a social networking service
US20140143166A1 (en) Identifying members of a social network as candidate referral sources
US20140067964A1 (en) Targeted status updates
US20140214960A1 (en) Methods and systems for targeting query messages in a social graph
US20140244561A1 (en) Providing recommendations to members of a social network
US20140244775A1 (en) Prioritization of network communications
US20140245184A1 (en) Presenting actionable recommendations to members of a social network
US20170004453A1 (en) Job type recommendation engine
US20140149219A1 (en) Systems and methods for delivering content to a mobile device based on geo-location
US20170220935A1 (en) Member feature sets, group feature sets and trained coefficients for recommending relevant groups
Laliker et al. Remapping the topography of couples’ daily interactions: Electronic messages

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20180518

Address after: Washington State

Applicant after: MICROSOFT TECHNOLOGY LICENSING, LLC

Address before: California, USA

Applicant before: LINKEDIN Corp.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20201124

CF01 Termination of patent right due to non-payment of annual fee