US20180089609A1 - Skill validation system - Google Patents
Skill validation system Download PDFInfo
- Publication number
- US20180089609A1 US20180089609A1 US15/711,749 US201715711749A US2018089609A1 US 20180089609 A1 US20180089609 A1 US 20180089609A1 US 201715711749 A US201715711749 A US 201715711749A US 2018089609 A1 US2018089609 A1 US 2018089609A1
- Authority
- US
- United States
- Prior art keywords
- endorser
- recipient
- value
- skill
- endorsement
- 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0613—Third-party assisted
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06311—Scheduling, planning or task assignment for a person or group
- G06Q10/063112—Skill-based matching of a person or a group to a task
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0639—Performance analysis of employees; Performance analysis of enterprise or organisation operations
- G06Q10/06395—Quality analysis or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0639—Performance analysis of employees; Performance analysis of enterprise or organisation operations
- G06Q10/06398—Performance of employee with respect to a job function
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/105—Human resources
- G06Q10/1053—Employment or hiring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/01—Social networking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/306—User profiles
Definitions
- the subject matter disclosed herein generally relates to data processing associated with a skill validation system having an endorsement database.
- the endorsement database can validate an endorsement using social graph data and profile data of a member.
- the present disclosure relates to techniques for calculating a quality score to validate the endorsement.
- a social network system can maintain information on members, companies, organizations, employees, and employers.
- the social network system may maintain profile pages of members, which can include education information, employment information, and location information about a specific member. Additionally, the social network system can store information about a member's relationships (e.g., connections) with other members of the social network system. Furthermore, the social network system can store endorsements and recommendations of a member. For example, a first member of the social network can endorse a second member in a skill using an endorsement. The endorsement can be presented on the profile page of the second member.
- FIG. 1 is a network diagram illustrating a network environment suitable for a social network system, according to some example embodiments.
- FIG. 2 is a block diagram illustrating various components of a social network system, according to some example embodiments.
- FIG. 3 is a flowchart illustrating a method for validating an endorsement of a skill using a quality score for the endorsement, according to some embodiments.
- FIG. 4 is a flowchart illustrating a method for calculating a quality score for an endorsement, according to some example embodiments.
- FIG. 5 is a user interface diagram illustrating an example of a validation of an endorsement using the techniques described in FIGS. 3-4 , according to some example embodiments.
- FIG. 6 is a block diagram illustrating components of a machine, according to some example embodiments, able to read instructions from a machine-readable medium and perform any one or more of the methodologies discussed herein.
- Example methods and systems are directed to techniques for a skill validation system having an endorsement database. More specifically, the present disclosure relates to methods, systems, and computer program products for calculating a quality score for an endorsement stored in the endorsement database. Techniques for calculating the quality score for the endorsement are described herein.
- a first member of a social network system can endorse (e.g., recommend) a specific skill of a second member of the social network system by sending an endorsement for the specific skill.
- the first member can be the “endorser” that sends the endorsement for the specific skill to the second member.
- the second member can be referred to as the “recipient” of the endorsement.
- the endorsement can be presented on a profile page of the recipient. The endorsement can signify that the endorser recommends the recipient as an expert or as being proficient in the corresponding skill. For example, an endorsement in accounting demonstrates that the endorser recognizes the recipient's skill in accounting.
- not all endorsements received by the recipient can be a representative of the recipient's ability in the specific skill. For example, an endorsement received from a first endorser that has the specific skill and knows the recipient can be more meaningful than an endorsement received from a second endorser that does not possess the skill and does not know the recipient.
- the social network system can determine the quality of the endorsement by calculating a quality score for the endorsement.
- the quality score can be correlated to the likelihood that the endorser knows the skill.
- the quality score can further depend on the connection strength between the endorser and the recipient. Continuing with the example above, when the endorser is skilled in accounting and also works with the recipient at the same accounting firm, then the quality score for the endorsement can be higher than a quality score of an endorsement from another endorser who does not possess the skill or know the recipient.
- the social network system can present a validation for the endorsement when the quality score is higher than a predetermined threshold (e.g., 80 out of 100).
- a predetermined threshold e.g. 80 out of 100.
- a score that is at or above the predetermined threshold is generally considered a high quality score.
- an endorsement with a high quality score can be classified as a high-quality endorsement.
- the high-quality endorsements can be highlighted in the profile page of the recipient.
- the validation of the endorsement is presented by having the specific skill listed as a featured skill on the profile page of the recipient when the quality score is above the predetermined threshold.
- the quality score is below the predetermined threshold, the specific skill is not listed as the featured skill on the profile page of the recipient.
- a member of the social network system may want to search for a member having a specific skill.
- the search results for the member can be ranked based upon on the number of endorsements received for the skill.
- ranking simply based on the number of endorsements received can have many limitations.
- a member profile page can include, without verification, an endorsement associated with a specific skill.
- techniques are described herein for finding a member with a validated skill using the quality score of the endorsement. By finding the validated expert, a user can obtain accurate information about members of the social network, which can result in the user saving time and resources.
- an indexing process can rank members using the quality score associated with the endorsements. For example, a higher ranking in the search results can be given to a member with endorsements that have been classified as high-quality endorsements. An endorsement is qualified as high-quality endorsement when the quality score is above a predetermined threshold (e.g., 80 out of 100).
- the member profile page can include featured skills that only include high-quality endorsements.
- the profile page of a member includes a section that lists the featured skills of the member.
- the featured skills can include endorsements from endorsers that have either worked with the member or know the member.
- the high-quality endorsement listed on the featured skills section can include educational information or employment information about the endorser.
- the social network system includes an endorsement database that uses machine learning models to determine a quality score for each endorsement.
- the endorsement database can include a database architecture tailored for endorsements. As a result, the endorsement database allows for a faster data retrieval rate, for the endorsements to be sent faster by an endorser, and for faster data processing related to the endorsements. For example, when a first member views a profile page of a second member, suggested endorsements of the second member can be presented faster for the first member to endorse.
- the endorsement database can include a quality endorsement metric that can deliver more insights about the endorsement received by analyzing the connections and skills of the endorser and the recipient.
- techniques described herein allow for presentation of a validated endorsement on a profile page of a member in the social network system, with the validated endorsement being associated with a specific skill. The validation can depend on the quality score associated with each endorsement. Techniques described herein allow for faster processing speed for processing the endorsement data and faster indexing of the endorsements because of the database architecture. Additionally, techniques described herein allow for a faster retrieval of the endorsement data.
- FIG. 1 is a network diagram illustrating a network environment 100 suitable for a social network system, according to some example embodiments.
- the network environment 100 includes a server machine 110 , a member database 115 , a skill reputation database 118 , an endorsement database 120 , a first device 130 for a first user 132 , and a second device 150 for a second user 152 , all communicatively coupled to each other, such as via a network 190 .
- the server machine 110 , the member database 115 , the skill reputation database 118 , and the endorsement database 120 may form all or part of a network-based system 105 (e.g., a cloud-based server system configured to provide one or more services to the devices 130 and 150 ).
- a network-based system 105 e.g., a cloud-based server system configured to provide one or more services to the devices 130 and 150 .
- the server machine 110 , the first device 130 , and the second device 150 may each be implemented in a computer system, in whole or in part, as described below with respect to FIG. 6 .
- the server machine 110 , member database 115 , skill reputation database 118 , and endorsement database 120 may be implemented on a same machine, or one or more different machines.
- the member database 115 can store, but is not limited to storing, member data, company data, education data, social graph data, and member activity data for the social network system service.
- the member database 115 can include a plurality of databases (e.g., a first database to store profile data, a second database to store social data, a third database to store member activity data).
- the server machine 110 may access the information in the member database 115 using the network 190 , which can be the Internet.
- the components of the network-based system 105 may access each other either locally (e.g., a local bus), or through a local network, such as a local area network (LAN).
- LAN local area network
- the skill reputation database 118 can store a plurality of reputation scores for the members. Each reputation score in the plurality of reputation scores can be associated with a member having a skill.
- the reputation score for a skill of a member can be calculated using member data (e.g., job title, company name, education information, years of experience) of the member. For example, the reputation score for the accounting skill of a member who is an accountant with 15 years of experience can be 95 out of 100, which can identify that the member is proficient and an expert in accounting.
- the server machine 110 can access the information in the skill reputation database 118 using the network 190 .
- the endorsement database 120 can store a plurality of endorsements. Endorsement 125 is an example of an endorsement in the plurality of endorsements that is stored in the endorsement database 120 .
- the endorsement 125 includes an endorser 126 , a recipient 127 , and a skill 128 .
- the endorser 126 endorses the recipient 127 in a specific skill 128 .
- Both the endorser 126 and the recipient 127 can be members of the social network system.
- the server machine 110 can access the information in the endorsement database 120 using the network 190 .
- the users 132 and 152 are shown in FIG. 1 .
- One or both of the users 132 and 152 may be a human user (e.g., member of the social network system), a machine user (e.g., a computer configured by a software program to interact with the device 130 or 150 ), or any suitable combination thereof (e.g., a human assisted by a machine or a machine supervised by a human).
- the user 132 is not part of the network environment 100 , but is associated with the device 130 and may be a user of the device 130 .
- the device 130 may be a desktop computer, a vehicle computer, a tablet computer, a navigational device, a portable media device, a smartphone, or a wearable device (e.g., a smart watch or smart glasses) belonging to the user 132 .
- the user 152 is not part of the network environment 100 , but is associated with the device 150 .
- the device 150 may be a desktop computer, a vehicle computer, a tablet computer, a navigational device, a portable media device, a smartphone, or a wearable device (e.g., a smart watch or smart glasses) belonging to the user 152 .
- the user 132 can be the endorser 126 that endorses the user 152 , who is the recipient 127 of the endorsement 125 .
- the user 132 can be the member searching for a member proficient in a specific skill, and the user 152 can be validated in the specific skill.
- the server machine 110 can transmit a message to the user 152 on behalf of the user 132 using the network 190 .
- the network 190 may be any network that enables communication between or among machines, databases, and devices (e.g., the server machine 110 and the device 130 ). Accordingly, the network 190 may be a wired network, a wireless network (e.g., a mobile or cellular network), or any suitable combination thereof. The network 190 may include one or more portions that constitute a private network, a public network (e.g., the Internet), or any suitable combination thereof.
- the network 190 may include one or more portions that incorporate a local area network (LAN), a wide area network (WAN), the Internet, a mobile telephone network (e.g., a cellular network), a wired telephone network (e.g., a plain old telephone system (POTS) network), a wireless data network (e.g., a Wi-Fi network or WiMAX network), or any suitable combination thereof. Any one or more portions of the network 190 may communicate information via a transmission medium.
- LAN local area network
- WAN wide area network
- the Internet a mobile telephone network
- POTS plain old telephone system
- POTS plain old telephone system
- Wi-Fi network Wireless Fidelity
- transmission medium refers to any intangible (e.g., transitory) medium that is capable of communicating (e.g., transmitting) instructions for execution by a machine (e.g., by one or more processors of such a machine), and includes digital or analog communication signals or other intangible media to facilitate communication of such software.
- any of the machines, databases, or devices described herein may be implemented in a general-purpose computer modified (e.g., configured or programmed) by software (e.g., one or more software modules) to be a special-purpose computer to perform one or more of the functions described herein for that machine, database, or device.
- a “database” is a data storage resource and may store data structured as a text file, a table, a spreadsheet, a relational database (e.g., an object-relational database), a triple store, a hierarchical data store, or any suitable combination thereof.
- any two or more of the machines, databases, or devices described herein may be combined into a single machine, database, or device, and the functions described herein for any single machine, database, or device may be subdivided among multiple machines, databases, or devices.
- FIG. 2 is a block diagram illustrating components of social network system 210 , according to some example embodiments.
- the social network system 210 is an example of a network-based system 105 of FIG. 1 .
- the social network system 210 can include a user interface 202 , a quality score calculator 204 , an endorser value calculator 206 , a recipient value calculator 207 , and an overlap value calculator 208 .
- One or more of the components 202 - 208 may be configured to communicate with each other (e.g., via a bus, shared memory, or a switch).
- the user interface 202 can provide information or cause an interface to be rendered on a client device of the member.
- the user interface 202 can present, on a profile page of the recipient, a validation for a specific skill when the quality score of the endorsement is above a predetermined threshold.
- the social network system 210 can communicate with the member database 115 of FIG. 1 , the skill reputation database 118 , and the endorsement database 120 of FIG. 1 .
- the member database 115 can store member data 220 .
- the skill reputation database 118 can score reputation data 225 of each member in a specific skill. As shown in the example of FIG. 2 , the reputation data 225 may be stored in a skill reputation database).
- the endorsement database 120 can store endorsement data 230 .
- the member data 220 can include profile data 212 , which includes information from a profile page of a member. Moreover, the member data 220 can include social graph data 214 and member activity data. As later described in FIG. 3 , the endorser value calculator 206 can determine an endorser value for the endorser 126 using the member data 220 of the endorser 126 . Additionally, the recipient value calculator 207 can determine a recipient value for the recipient using the member data 220 of the recipient. Moreover, the overlap value calculator 208 can determine an overlap value using the member data of both the endorser and the recipient. Furthermore, the quality score calculator 204 can determine a quality score for the endorsement using the endorser value, the recipient value, and the overlap value. In some instances, some of the processing of the data for determining the endorser value, the recipient value, and overlap value can be performed by an offline data processor 240 on a periodic basis (e.g., nightly) in order to return faster calculation results.
- an offline data processor 240 on a periodic basis (e.g., nightly)
- the profile data 212 can be used to determine the endorser value and the recipient value in a specific skill.
- the endorser value of the endorser in a specific skill depends on the endorser having profile data (e.g., job title, degree, industry) that is related to the specific skill.
- the recipient value of the recipient in a specific skill depends on the recipient having profile data (e.g., job title, degree, industry) that is related to the specific skill.
- Profile data related to the specific skill includes having the specific skill listed on the profile page, a recommendation of the specific skill, a degree associated with the specific skill, a job title associated with the specific skill, and other educational and/or employment data associated with the specific skill.
- the social network system 210 maintains an association between various skills, and skills associated with the specific skill are determined to be the same or related.
- profile data 212 can be used to determine the endorser value and the recipient value in a specific skill.
- the profile data 212 that is commonly requested and displayed as part of a member's profile includes the member's age, birthdate, gender, interests, contact information, home location (e.g., city and state), educational background (e.g., schools, majors, matriculation, graduation dates, etc.), employment history, office location, skills, professional organizations, and other such personal and/or employment information.
- the profile data 212 may include the various skills that each member has indicated he or she possesses. Additionally, the profile data 212 may include skills of a member that have been endorsed by another member. Furthermore, the profile data 212 may include recommendations of a member from another member (e.g., co-worker).
- the profile data 212 can include information commonly included in a professional resume or curriculum vitae, such as information about a person's education, the company at which a person is employed, the location of the employer, an industry in which a person is employed, a job title or function, an employment history, skills possessed by a person, professional organizations of which a person is a member, and so on.
- social network system services provide their users with a mechanism for defining their relationships with other people.
- This digital representation of real-world relationships is frequently referred to as a social graph, which may be stored in the social graph data 214 .
- the social graph data 214 can be associated with an entity's presence within the social network system service.
- a social graph is implemented with a specialized graph data structure in which various entities (e.g., people, companies, schools, government institutions, non-profits, and other organizations) are represented as nodes connected by edges, where the edges have different types representing the various associations and/or relationships among the different entities.
- the social graph data 214 of a member can include first-degree connections, second-degree connections, and so on.
- a first member is a first-degree connection a second member when the first and second members are connected in the social network system 210 .
- a first member is a second-degree connection to a second member when the first and second members are not connected to each other, but both are connected to a third member.
- an nth-degree connection is a connection where a first node and a second node are separated by N ⁇ 1 nodes.
- the endorser value calculator 206 can determine an endorser value for the endorser 126 using profile data 212 and social graph data 214 of the endorser 126 .
- the endorser value calculator 206 can access the profile data 212 to obtain a number of endorsements given or received by the endorser 126 , a number of skills listed on the profile page of the endorser 126 , a consumer marketing segment, a seniority, and/or years in career, etc.
- the endorser value calculator 206 can access the social graph data 214 to determine a number of connections and a number of endorsements per connection. For example, the endorser value may be determined using Equation 1.
- Endorser Value C 0 (Number of Endorsement Given by Endorser)+ C 1 (Number of Endorsement Received)+ C 2 (Number of Skills)+ C 3 (Years in career)+ C 4 (Number of Connections)+ C 5 (Number of Endorsements Per Connection), (Equation 1)
- C 0 . . . C 5 are coefficients with a range from 0 to 1.
- the recipient value calculator 207 can determine a recipient value for the recipient 127 using profile data 212 and social graph data 214 of the recipient 127 .
- the recipient value calculator 207 can access the profile data 212 to obtain a number of endorsements given or received by the recipient 127 , a number of skills listed on the profile page of the recipient 127 , a consumer marketing segment, a seniority, years in career, etc.
- the endorser value calculator 206 can access the social graph data 214 to determine a number of connections. For example, the recipient value is determined using Equation 2.
- C 0 . . . C 5 are coefficients with a range from 0 to 1.
- the overlap value calculator 208 can determine an overlap value between the endorser 126 and the recipient 127 using the social graph data 214 (e.g., first-degree connections) of the endorser 126 and the recipient 127 .
- the overlap value calculator 208 can access the social graph data 214 to determine a connection density between the endorser 126 and the recipient 127 , as later described in FIG. 3 .
- the overlap value for the endorser 126 and the recipient 127 can be determined based on the connection density value. For example, the overlap value is determined using Equation 3.
- the value for each of the common employer, common industry, common job title, common school, common degree, and common location can be a binary number, where 1 indicates that the first and second member have a profile attribute (e.g., employer, industry, job title, school, degree) in common.
- C 0 . . . C 5 are coefficients with a range from 0 to 1.
- the social network system 210 may provide a broad range of other applications and services that allow members the opportunity to share and receive information, often customized to the interests of the members.
- members may be able to self-organize into groups, or interest groups, organized around subject matter or a topic of interest.
- the social network system 210 may host various job listings providing details of job openings with various organizations.
- the member data 220 may include member activity data.
- the member activity data include members' interactions with the various applications, services, and content made available via the social network system 210 , and the members' behavior (e.g., content viewed, links selected, etc.) may be used to determine the member's proficiency in a specific skill.
- the endorser 126 viewing content associated with accounting may increase the endorser value for the accounting endorsement.
- the reputation data 225 includes reputation scores of members in a specific skill.
- a member can have a first reputation score for a first skill and a second reputation score for a second skill.
- the first reputation score and the second reputation score are examples of a reputation score 228 .
- the reputation score 228 can be obtained from the skill reputation database 118 in FIG. 1 .
- the skill reputation database 118 can be maintained by the server machine 110 .
- the reputation score for a first skill is determined using Equation 4:
- C 0 . . . C 3 are coefficients with a range from 0 to 1.
- the endorsement data 230 includes the various skills for which each member has been endorsed. For example, as described in FIG. 1 , using an endorsement 125 , the endorser 126 can endorse the recipient 127 in a specific skill 128 . Additionally, the endorsement data 230 can include the various skills that each member has indicated he or she possesses. In some instances, the expert determination process can rank subject matter experts in a specific skill using a quality score 235 associated with the endorsement 125 . As later described in FIG. 3 , the quality score calculator 204 can calculate the quality score 235 for the endorsement 125 using the endorser value, the recipient value, and the overlap value.
- the social network system 210 can be configured to process data offline or periodically using an offline data processor 240 .
- some or all of the calculations performed by the quality score calculator 204 , endorser value calculator 206 , recipient value calculator 207 , and overlap value calculator 208 can be performed by the offline data processor 240 .
- the offline data processor 240 can include one or more large-scale processing servers, such as ApacheTM Hadoop® servers that access the member data 220 , reputation data 225 , and endorsement data 230 periodically (e.g., on a nightly basis) in order to calculate the quality score, the endorser value, the recipient value, and the connection density.
- Processing the member data 220 may be computationally intensive. Therefore, some of the calculating and selecting can be done offline, such as one or more parameters associated with the quality score. For example, the member data 220 may be processed offline by the endorser value calculator 206 to determine the endorser value of the endorser 126 . Additionally, the member data 220 may be processed offline by the recipient value calculator 207 to determine the recipient value of the recipient 127 for a specific skill. By having the one or more parameters calculated offline, less real-time processing time may be needed by the quality score calculator 204 , endorser value calculator 206 , recipient value calculator 207 , and overlap value calculator 208 in order to calculate the quality score for each endorsement.
- these parameters can be inputted in the quality score calculator 204 , endorser value calculator 206 , recipient value calculator 207 , and overlap value calculator 208 in real-time in order to almost instantaneously present the validation of the endorsement 125 on the profile page of the recipient 127 .
- the quality score calculator 204 in conjunction with the endorser value calculator 206 , the recipient value calculator 207 , and the overlap value calculator 208 , can calculate a quality score 235 for an endorsement 125 . Additionally, the user interface 202 can present a validation of a skill using the quality score 235 .
- FIG. 3 is a flowchart illustrating operations of the social network system 210 in performing a method 300 for calculating a quality score of an endorsement, according to some example embodiments. Operations in the method 300 may be performed by the social network system 210 , using the quality score calculator 204 , the endorser value calculator 206 , the recipient value calculator 207 , and the overlap value calculator 208 described above with respect to FIG. 2 .
- the social network system 210 can include the member database 115 storing profile data 212 of members in the social network. Additionally, the member database 115 can include social graph data 214 .
- the profile data 212 includes employment information (e.g., job title, industry, years of experience) of the members and educational information (e.g., degree, major, school name, graduation year) of the members.
- the social network system 210 can access the skill reputation database 118 storing a plurality of reputation scores for the members. Each reputation score 228 in the plurality of reputation scores can be associated with a member having a skill. The reputation score 228 can be determined by the social network system 210 using the offline data processor 240 using the member data 220 of the member.
- the social network system 210 can receive, from a user device (e.g., user device 130 ) of an endorser (e.g., user 132 ), an endorsement of a recipient (e.g., user 152 ) in a specific skill.
- the endorser and the recipient can be members of the social network system 210 .
- the received endorsement can be stored in the endorsement database 120 as the endorsement 125 with user 132 being labeled as the endorser 126 , user 152 labeled as the recipient 127 , and the specific skill being labeled as the skill 128 .
- the user interface 202 can simply access the endorsement 125 from the endorsement database 120 at operation 310 .
- a receiver in the server machine 110 can receive the endorsement.
- the user 132 can endorse the user 152 in accounting by sending the endorsement 125 .
- the endorsement 125 can be sent to the network-based system 105 by the user device 130 using network 190 .
- the endorser value calculator 206 can determine an endorser value for the endorser 126 .
- Equation 1 describes an algorithm for determining the endorser value, according to some embodiments.
- operation 320 includes using a reputation score to determine the endorser value for the endorser 126 .
- the endorser value calculator 206 can access the reputation data 225 of the endorser 126 from the skill reputation database 118 . Additionally, the reputation score 228 associated with the specific skill can be obtained from the accessed reputation data 225 .
- Equation 4 describes an algorithm for determining the reputation score, according to some embodiments. As previously mentioned, the reputation score 228 is an indication of the skill level associated with the endorser 126 in the specific skill.
- the reputation score 228 of the endorser is calculated as part of operation 320 using equation 4 and this reputation score 228 is used by the endorser value calculator 206 to determine the endorser value for the endorser 126 based on the endorser's reputation score 228 .
- a processor in the server machine 110 can perform the determination in real-time. In some instances, part of the determination at operation 320 can be performed offline using the offline data processor 240 .
- the endorser value calculator 206 can access the reputation score 228 of the endorser 126 in the specific skill (e.g., accounting) in order to determine the endorser value.
- the endorser value can be directly correlated to the reputation score 228 .
- the endorser value can be equal to the reputation score 228 .
- the reputation score 228 of the endorser 126 in the specific skill (e.g., accounting) is a first number (e.g., 80)
- the endorser value can also be the first number.
- the endorser value increases by a predetermined amount or ratio on a direct correlation basis with the reputation score 228 .
- the reputation score 228 associated with the endorser 126 having the specific skill can depend on the endorser 126 having the specific skill listed on a profile page of the endorser 126 . For example, the reputation score 228 increases when the specific skill is listed on the profile page of the endorser 126 . Additionally, the reputation score 228 increases even more when the specific skill listed on the profile page of the endorser 126 has a validation. Moreover, the reputation score 228 associated with the endorser 126 having the specific skill can be associated with the endorser 126 having a job title that is related to the specific skill. Furthermore, the reputation score 228 associated with the endorser 126 having the specific skill can be associated with the endorser 126 having an educational degree that is related to the specific skill.
- the endorser value calculator 206 can access profile data 212 of the endorser 126 .
- the profile data 212 can include years of experience, and the endorser value is in association with the years of experience of the endorser 126 .
- the endorser value can be directly proportional to the number of years of experience.
- the endorser value can increase by a predetermined ratio on a direct correlation basis with the number of years of experience.
- the overlap value calculator 208 can determine an overlap value between the endorser 126 and the recipient 127 using the member data 220 .
- Equation 3 describes an algorithm for determining the overlap value.
- the member data 220 can be stored in member database 115 .
- the member data 220 includes profile data 212 and social graph data 214 .
- the profile data 212 includes employment information and the educational information of the endorser 126 and the recipient 127 .
- the profile data 212 accessed at operation 330 can include an endorsement of a member skill, a recommendation of the member, and the member's years of experience, location, job title, position in current company, projects completed with the company, current projects, published papers, patents, school, education information, portfolio, certifications, awards, and so on.
- the social graph data 214 includes the first-degree connections, the second-degree connections, and so on of the endorser 126 and the recipient 127 .
- a processor in the server machine 110 can perform the determination in real-time. In some instances, part of the determination at operation 330 can be performed offline using the offline data processor 240 .
- the overlap value is determined using the similarity between the employment information and the educational information of the endorser 126 and the recipient 127 . For example, the overlap value increases when the endorser 126 and the recipient 127 studied at the same school or worked at the same company. Alternatively, the overlap value decreases when the endorser 126 and the recipient 127 studied at different schools or worked at different companies. Additionally, the overlap value can depend on similarities of other profile data 212 (e.g., location, job title, industry, certifications) of the endorser 126 and the recipient 127 .
- the overlap value can be based on a connection density value (e.g., connection strength) between the endorser 126 and the recipient 127 .
- the overlap value further depends on a first geographic region associated with the endorser 126 and a second geographic region associated with the recipient 127 .
- the overlap value increases when the first region is the same as the second region, inferring that the endorser 126 and the recipient 127 live in the same region.
- the overlap value decreases when the first region is not the same as the second region.
- the quality score calculator 204 calculates a quality score for the received endorsement based on the endorser value and the overlap value.
- the endorser value is determined at operation 320 and the overlap value is determined at operation 330 .
- the quality score 235 can be calculated by adding the endorser value and the overlap value.
- the quality score 235 can be calculated by averaging the endorser value and the overlap value.
- the calculated quality score can be stored in the endorsement data 230 as the quality score 235 that is associated with the endorsement 125 .
- the quality score can range from 0-100. A higher score can be associated with a member that is more proficient in the skill than another member having a lower score.
- a processor in the server machine 110 can perform the calculation in real-time.
- the user interface 202 presents a validation for the specific skill when the quality score transgresses a predetermined threshold.
- the validation can be presented on the profile page of the recipient 127 .
- the predetermined threshold e.g., 50
- the predetermined threshold can be preset by an administer of the social network system 210 .
- the predetermined threshold can be adjusted in direct correlation with the number of validated skills associated with a member. For example, the predetermined threshold is decreased when the profile page of the member does not have any skills having a validation.
- the validation can be posted on the profile page of the recipient alongside the endorsements received by the recipient.
- the validation can be viewable by other first-degree connections of the member or by the public.
- the validation is presented by having the specific skill listed as a featured skill on the profile page of the recipient when the quality score is above the predetermined threshold.
- the specific skill is not listed as the featured skill on the profile page of the recipient when the quality score is below the predetermined threshold.
- the featured skill further includes employment information (e.g., name of employer, job title) of the endorser.
- the featured skill further includes educational information (e.g., degree, major, name of school) of the endorser. An example of a featured skill is illustrated in FIG. 5 .
- the social network system 210 can include an endorsement database 120 storing endorsement data 230 .
- the endorsement data 230 includes a plurality of endorsements, with each endorsement 125 in the plurality of endorsements being associated with a sender, a receiver, and a skill.
- the sender is the member sending the endorsement associated with a specific skill
- the receiver is the member receiving the endorsement.
- each endorsement in the plurality of endorsements stored in the endorsement database 120 can include a classification.
- the method 300 can further include the quality score calculator 204 classifying the received endorsement at operation 310 as a high-quality endorsement when the quality score is above the predetermined threshold.
- the quality score calculator 204 can classify the received endorsement as a low-quality endorsement when the quality score is below the predetermined threshold. Subsequently, the classification is presented on a profile page of the recipient by the user interface 202 .
- the recipient value calculator 207 can access, from the endorsement database 120 , a subset of endorsements from the plurality of endorsements.
- the subset of endorsements have the recipient 127 as either the receiver or the sender.
- the subset of endorsements can only include validated endorsements (e.g., endorsements with a quality score above the predetermined threshold).
- the recipient value calculator 207 can determine, using the subset of endorsements, a recipient value based on a number of endorsements received by the recipient and a number of endorsements sent by the recipient. Equation 2 describes an algorithm for determining the recipient value, according to some embodiments.
- the recipient value can be the number of endorsements given (i.e., the recipient 127 is the sender) and received (i.e., the recipient 127 is the receiver). In another example, the recipient value may be only the number of endorsements received or the number of endorsements given. Subsequently, the quality score calculator 204 can update the quality score 235 based on the recipient value.
- the endorser value calculator 206 can access, from the endorsement database 120 , a subset of endorsements from the plurality of endorsements.
- the subset of endorsements can include endorsements that have the endorser as either the receiver or the sender.
- the endorser value calculator 206 can update, using the subset of endorsements, the endorser value based on a number of endorsements received by the endorser and a number of endorsements sent by the endorser.
- the endorser value calculated at operation 320 can be updated based on the number of endorsements given or received by the endorser. For example, the endorser value may increase when the endorser has received more than a predetermined (e.g., 20 ) number of endorsements.
- the quality score calculator 204 can update the quality score 235 based on the updated endorser value.
- the endorser value calculator 206 can access, from the endorsement database, a subset of endorsements from the plurality of endorsements.
- the subset of endorsements are endorsements that have the recipient 127 as the receiver.
- the endorser value calculator 206 can determine, using the subset of endorsements, an endorsement value based on a number of endorsements received by the recipient for the specific skill.
- the endorser value calculated at operation 320 can be updated based on the number of endorsements received by the endorser for the specific skill. For example, the endorser value may increase when the endorser has received more than a predetermined (e.g., 5 ) number of endorsements for a specific skill (e.g., accounting).
- the quality score calculator 204 can update the quality score based on the endorsement value.
- FIG. 4 is a flowchart illustrating operations of the social network system 210 in performing a method 400 for calculating a quality score, according to some example embodiments. Operations in the method 400 may be performed by the network-based system 105 , using the quality score calculator 204 , the endorser value calculator 206 , the recipient value calculator 207 , and the overlap value calculator 208 described above with respect to FIG. 2 .
- the endorser value calculator 206 determines an endorser value.
- Operation 320 in FIG. 3 describes an example of determining the endorser value.
- the endorser value can be determined based on the number of endorsements received by the endorser (e.g., endorser 126 ), the number of endorsements given by the endorser, the number of skills listed on the profile of the endorser, a consumer marketing segment associated with the endorser, seniority of the endorser, first-degree connections of the endorser, years in career, number of endorsements per connection, and other member data 220 of the endorser.
- the recipient value calculator 207 determines a recipient value.
- the recipient value can be determined using techniques similar to the determination of the endorser value as described at operation 320 in FIG. 3 . Additionally, the recipient value can be determined based on the number of endorsements received by the recipient, the number of endorsements given by the recipient, the number of skills listed on the profile of the recipient, a consumer marketing segment associated with the recipient, seniority of the recipient, first-degree connections of the recipient, years in career, and other member data 220 of the recipient.
- the overlap value calculator 208 can determine an overlap value between the endorser 126 and the recipient 127 .
- Operation 330 in FIG. 3 describes an example of determining the overlap value.
- the overlap value can be determined based on employment information, education information, location information, and a connection density value.
- the employment information includes company name, industry, job title, job function, and occupation.
- the education information includes school, degree, and field.
- the location information includes country, locale, and region.
- the endorser value calculator 206 can obtain a reputation score for the endorser.
- the reputation score 228 can be accessed from the reputation data 225 stored in the skill reputation database 118 .
- the endorser value can be further based on the reputation score 228 .
- Operation 320 in FIG. 3 describes an example of obtaining the reputation score.
- the quality score calculator 204 calculates the quality score 235 associated with the endorsement 125 based on the endorser value, the recipient value, the overlap value, and the reputation value.
- the quality score 235 can be calculated using Equation 5:
- C 0 . . . C 3 are coefficients with a range from 0 to 1.
- the coefficients in Equation 1-5 can be determined using a logistic regression model.
- the logistic regression model can find the coefficients C 0 -C 3 that maximizes the likelihood that the classification of the endorsement being a high-quality endorsement under the logistic regression model.
- the coefficients in Equation 1-5 can be determined using other models such as a linear regression model, a decision tree model, a support vector machine model, and a Na ⁇ ve Bayesian model, or other machine learning algorithms.
- the quality score can be updated based on the number of endorsements for the specific skill that the recipient has previously received. Furthermore, the quality score can be updated based on the number of high-quality endorsements for the specific skill that the recipient has previously received.
- the quality score calculator 204 can verify an expert in a skill from a plurality of members based on the calculated quality score for the skill.
- the calculated quality score for the skill of the expert can be higher than a second predetermined threshold (e.g., 95 ), with the second predetermined threshold being higher than the predetermined threshold used at operation 350 .
- the predetermined thresholds can be set by an administrator of the social network system 210 or determined dynamically based on user input and past quality scores for the skill.
- FIG. 5 is a user interface diagram illustrating an example of a validation of a skill (e.g., a featured skill) using the techniques described in FIGS. 3-4 , according to some embodiments.
- a skill e.g., a featured skill
- a user interface 500 in FIG. 5 presents a featured skill section 510 on a profile page of a member.
- the featured skill section 510 includes a first featured skill 520 and a second featured skill 560 .
- an endorsement for a skill can be presented with a validation when the quality score of the endorsement is above a predetermined threshold.
- the validation of the endorsement can include the skill being listed as a featured skill (e.g., first featured skill 520 ) on the profile page of the member.
- the first featured skill 520 can include member data 220 (e.g., employment information, educational information, social graph data) of the endorser (e.g., the endorser 126 ).
- member data 220 e.g., employment information, educational information, social graph data
- the first featured skill 520 includes employment information 530 of the endorsers.
- the employment information can include the employer name, which can be presented by validating the skill as being endorsed by coworkers of the recipient (e.g., the recipient 127 ).
- the first featured skill 520 includes social graph data 540 of the viewer of the profile, such as including common connections of the viewer that have endorsed the member.
- the first featured skill 520 can also include the total number 550 of endorsements received for the skill.
- the second featured skill 560 highlights leaders 570 (e.g., influencers, senior leaders, executives) that have endorsed the recipient. Furthermore, the second featured skill 560 can highlight relevant viewer information 580 , such as when the viewer endorsed the recipient in the skill.
- leaders 570 e.g., influencers, senior leaders, executives
- relevant viewer information 580 such as when the viewer endorsed the recipient in the skill.
- one or more of the methodologies described herein facilitate an endorsement validation of a skill for a member using the member data 220 .
- the data processing associated with the validation of the endorsement is in real time by using the offline data processor 240 for some calculations.
- the social network system 210 can use the offline data processor 240 in such a way as to allow efficient retrieval and processing of the information in order to present the validation in real time.
- computing resources used by one or more machines, databases, or devices may similarly be reduced (e.g., by pre-determining the endorser value and the recipient value). Examples of such computing resources include processor cycles, network traffic, memory usage, data storage capacity, power consumption, and cooling capacity.
- the validation process allows job seekers, recruiters, and market analysts to quickly find accurate information (e.g., subject matter experts) in the social network system 210 .
- the user interface 202 provides structure to search results, which enables fast navigation and discovery.
- FIG. 6 is a block diagram illustrating components of a machine 600 , according to some example embodiments, able to read instructions from a machine-readable medium (e.g., a machine-readable storage medium) and perform any one or more of the methodologies discussed herein.
- FIG. 6 shows a diagrammatic representation of the machine 600 in the example form of a computer system, within which instructions 616 (e.g., software, a program, an application, an applet, an app, or other executable code) for causing the machine 600 to perform any one or more of the methodologies discussed herein may be executed.
- the instructions 616 may cause the machine to execute the flow diagrams of FIGS. 3 and 4 .
- the instructions 616 may implement the processes performed by the quality score calculator 204 , endorser value calculator 206 , recipient value calculator 207 , overlap value calculator 208 of FIG. 2 , and so forth.
- the instructions 616 transform the general, non-programmed machine into a particular machine programmed to carry out the described and illustrated functions in the manner described.
- the machine 600 operates as a standalone device or may be coupled (e.g., networked) to other machines. In a networked deployment, the machine 600 may operate in the capacity of a server machine or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment.
- the machine 600 may comprise, but not be limited to, a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (STB), a personal digital assistant (PDA), an entertainment media system, a cellular telephone, a smart phone, a mobile device, a wearable device (e.g., a smart watch), a smart home device (e.g., a smart appliance), other smart devices, a web appliance, a network router, a network switch, a network bridge, or any machine capable of executing the instructions 616 , sequentially or otherwise, that specify actions to be taken by the machine 600 .
- the term “machine” shall also be taken to include a collection of machines 600 that individually or jointly execute the instructions 616 to perform any one or more of the methodologies discussed herein.
- the machine 600 may include processors 610 , memory/storage 630 , and I/O components 650 , which may be configured to communicate with each other such as via a bus 602 .
- the processors 610 e.g., a Central Processing Unit (CPU), a Reduced Instruction Set Computing (RISC) processor, a Complex Instruction Set Computing (CISC) processor, a Graphics Processing Unit (GPU), a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Radio-Frequency Integrated Circuit (RFIC), another processor, or any suitable combination thereof
- the processors 610 may include, for example, a processor 612 and a processor 614 that may execute the instructions 616 .
- processor is intended to include multi-core processor that may comprise two or more independent processors (sometimes referred to as “cores”) that may execute instructions 616 contemporaneously.
- FIG. 6 shows multiple processors, the machine 600 may include a single processor with a single core, a single processor with multiple cores (e.g., a multi-core processor), multiple processors with a single core, multiple processors with multiples cores, or any combination thereof.
- the operations described in method 300 and method 400 can be performed by one or more of the processors 610 .
- the memory/storage 630 may include a memory 632 , such as a main memory, or other memory storage, and a storage unit 636 , both accessible to the processors 610 such as via the bus 602 .
- the storage unit 636 and memory 632 store the instructions 616 embodying any one or more of the methodologies or functions described herein.
- the instructions 616 may also reside, completely or partially, within the memory 632 , within the storage unit 636 , within at least one of the processors 610 (e.g., within the processor's cache memory), or any suitable combination thereof, during execution thereof by the machine 600 .
- the memory 632 , the storage unit 636 , and the memory of processors 610 are examples of machine-readable media.
- the memory/storage 630 can store the member data 220 , the reputation data 225 , or the endorsement data 230 .
- machine-readable medium means a device able to store instructions and data temporarily or permanently and may include, but is not limited to, random-access memory (RAM), read-only memory (ROM), buffer memory, flash memory, optical media, magnetic media, cache memory, other types of storage (e.g., Erasable Programmable Read-Only Memory (EEPROM)), and/or any suitable combination thereof.
- RAM random-access memory
- ROM read-only memory
- buffer memory flash memory
- optical media magnetic media
- cache memory other types of storage
- EEPROM Erasable Programmable Read-Only Memory
- machine-readable medium should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) able to store the instructions 616 .
- machine-readable medium shall also be taken to include any medium, or combination of multiple media, that is capable of storing instructions (e.g., instructions 616 ) for execution by a machine (e.g., machine 600 ), such that the instructions, when executed by one or more processors of the machine 600 (e.g., processors 610 ), cause the machine 600 to perform any one or more of the methodologies described herein.
- a “machine-readable medium” refers to a single storage apparatus or device, as well as “cloud-based” storage systems or storage networks that include multiple storage apparatus or devices.
- the term “machine-readable medium” excludes signals per se.
- the I/O components 650 may include a wide variety of components to receive input, provide output, produce output, transmit information, exchange information, capture measurements, and so on.
- the specific I/O components 650 that are included in a particular machine will depend on the type of machine. For example, portable machines such as mobile phones will likely include a touch input device or other such input mechanisms, while a headless server machine will likely not include such a touch input device. It will be appreciated that the I/O components 650 may include many other components that are not shown in FIG. 6 .
- the I/O components 650 are grouped according to functionality merely for simplifying the following discussion and the grouping is in no way limiting. In various example embodiments, the I/O components 650 may include output components 652 and input components 654 .
- the output components 652 may include visual components (e.g., a display such as a plasma display panel (PDP), a light emitting diode (LED) display, a liquid crystal display (LCD), a projector, or a cathode ray tube (CRT)), acoustic components (e.g., speakers), haptic components (e.g., a vibratory motor, resistance mechanisms), other signal generators, and so forth.
- a display such as a plasma display panel (PDP), a light emitting diode (LED) display, a liquid crystal display (LCD), a projector, or a cathode ray tube (CRT)
- acoustic components e.g., speakers
- haptic components e.g., a vibratory motor, resistance mechanisms
- the input components 654 may include alphanumeric input components (e.g., a keyboard, a touch screen configured to receive alphanumeric input, a photo-optical keyboard, or other alphanumeric input components), point based input components (e.g., a mouse, a touchpad, a trackball, a joystick, a motion sensor, or other pointing instruments), tactile input components (e.g., a physical button, a touch screen that provides location and/or force of touches or touch gestures, or other tactile input components), audio input components (e.g., a microphone), and the like.
- alphanumeric input components e.g., a keyboard, a touch screen configured to receive alphanumeric input, a photo-optical keyboard, or other alphanumeric input components
- point based input components e.g., a mouse, a touchpad, a trackball, a joystick, a motion sensor, or other pointing instruments
- tactile input components e.g., a physical button,
- the I/O components 650 may include biometric components 656 , motion components 658 , environmental components 660 , or position components 662 , among a wide array of other components.
- the biometric components 656 may include components to detect expressions (e.g., hand expressions, facial expressions, vocal expressions, body gestures, or eye tracking), measure biosignals (e.g., blood pressure, heart rate, body temperature, perspiration, or brain waves), identify a person (e.g., voice identification, retinal identification, facial identification, fingerprint identification, or electroencephalogram based identification), and the like.
- the motion components 658 may include acceleration sensor components (e.g., accelerometer), gravitation sensor components, rotation sensor components (e.g., gyroscope), and so forth.
- the environmental components 660 may include, for example, illumination sensor components (e.g., photometer), temperature sensor components (e.g., one or more thermometers that detect ambient temperature), humidity sensor components, pressure sensor components (e.g., barometer), acoustic sensor components (e.g., one or more microphones that detect background noise), proximity sensor components (e.g., infrared sensors that detect nearby objects), gas sensors (e.g., gas detection sensors to detect concentrations of hazardous gases for safety or to measure pollutants in the atmosphere), or other components that may provide indications, measurements, or signals corresponding to a surrounding physical environment.
- illumination sensor components e.g., photometer
- temperature sensor components e.g., one or more thermometers that detect ambient temperature
- humidity sensor components e.g., pressure sensor components (e.g., barometer)
- the position components 662 may include location sensor components (e.g., a Global Position System (GPS) receiver component), altitude sensor components (e.g., altimeters or barometers that detect air pressure from which altitude may be derived), orientation sensor components (e.g., magnetometers), and the like.
- location sensor components e.g., a Global Position System (GPS) receiver component
- altitude sensor components e.g., altimeters or barometers that detect air pressure from which altitude may be derived
- orientation sensor components e.g., magnetometers
- the I/O components 650 may include communication components 664 operable to couple the machine 600 to a network 680 or devices 670 via a coupling 682 and a coupling 672 , respectively.
- the communication components 664 may include a network interface component or other suitable device to interface with the network 680 .
- the communication components 664 may include wired communication components, wireless communication components, cellular communication components, Near Field Communication (NFC) components, Bluetooth® components (e.g., Bluetooth® Low Energy), Wi-Fi® components, and other communication components to provide communication via other modalities.
- the devices 670 may be another machine or any of a wide variety of peripheral devices (e.g., a peripheral device coupled via a Universal Serial Bus (USB)).
- USB Universal Serial Bus
- the communication components 664 may detect identifiers or include components operable to detect identifiers.
- the communication components 664 may include Radio Frequency Identification (RFID) tag reader components, NFC smart tag detection components, optical reader components (e.g., an optical sensor to detect one-dimensional bar codes such as Universal Product Code (UPC) bar code, multi-dimensional bar codes such as Quick Response (QR) code, Aztec code, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code, UCC RSS-2D bar code, and other optical codes), or acoustic detection components (e.g., microphones to identify tagged audio signals).
- RFID Radio Frequency Identification
- NFC smart tag detection components e.g., an optical sensor to detect one-dimensional bar codes such as Universal Product Code (UPC) bar code, multi-dimensional bar codes such as Quick Response (QR) code, Aztec code, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code, UCC RSS-2D bar code, and other optical codes
- RFID Radio Fre
- IP Internet Protocol
- Wi-Fi® Wireless Fidelity
- NFC beacon a variety of information may be derived via the communication components 664 , such as location via Internet Protocol (IP) geolocation, location via Wi-Fi® signal triangulation, location via detecting an NFC beacon signal that may indicate a particular location, and so forth.
- IP Internet Protocol
- one or more portions of the network 680 may be an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a LAN, a wireless LAN (WLAN), a WAN, a wireless WAN (WWAN), a metropolitan area network (MAN), the Internet, a portion of the Internet, a portion of the Public Switched Telephone Network (PSTN), a POTS network, a cellular telephone network, a wireless network, a Wi-Fi® network, another type of network, or a combination of two or more such networks.
- VPN virtual private network
- WLAN wireless LAN
- WAN wireless WAN
- MAN metropolitan area network
- PSTN Public Switched Telephone Network
- POTS Public Switched Telephone Network
- the network 680 or a portion of the network 680 may include a wireless or cellular network and the coupling 682 may be a Code Division Multiple Access (CDMA) connection, a Global System for Mobile communications (GSM) connection, or another type of cellular or wireless coupling.
- the coupling 682 may implement any of a variety of types of data transfer technology, such as Single Carrier Radio Transmission Technology (1 ⁇ RTT), Evolution-Data Optimized (EVDO) technology, General Packet Radio Service (GPRS) technology, Enhanced Data rates for GSM Evolution (EDGE) technology, third Generation Partnership Project (3GPP) including 3G, fourth generation wireless (4G) networks.
- RTT Single Carrier Radio Transmission Technology
- EVDO Evolution-Data Optimized
- GPRS General Packet Radio Service
- EDGE Enhanced Data rates for GSM Evolution
- 3GPP Third Generation Partnership Project
- 4G fourth generation wireless
- UMTS Universal Mobile Telecommunications System
- HSPA High Speed Packet Access
- WiMAX Worldwide Interoperability for Microwave Access
- LTE Long Term Evolution
- the instructions 616 may be transmitted or received over the network 680 using a transmission medium via a network interface device (e.g., a network interface component included in the communication components 664 ) and utilizing any one of a number of well-known transfer protocols (e.g., hypertext transfer protocol (HTTP)). Similarly, the instructions 616 may be transmitted or received using a transmission medium via the coupling 672 (e.g., a peer-to-peer coupling) to the devices 670 .
- the term “transmission medium” shall be taken to include any intangible medium that is capable of storing, encoding, or carrying the instructions 616 for execution by the machine 600 , and includes digital or analog communications signals or other intangible media to facilitate communication of such software.
- inventive subject matter has been described with reference to specific example embodiments, various modifications and changes may be made to these embodiments without departing from the broader scope of embodiments of the present disclosure.
- inventive subject matter may be referred to herein, individually or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single disclosure or inventive concept if more than one is, in fact, disclosed.
- the term “or” may be construed in either an inclusive or exclusive sense. Moreover, plural instances may be provided for resources, operations, or structures described herein as a single instance. Additionally, boundaries between various resources, operations, modules, engines, and data stores are somewhat arbitrary, and particular operations are illustrated in a context of specific illustrative configurations. Other allocations of functionality are envisioned and may fall within a scope of various embodiments of the present disclosure. In general, structures and functionality presented as separate resources in the example configurations may be implemented as a combined structure or resource. Similarly, structures and functionality presented as a single resource may be implemented as separate resources. These and other variations, modifications, additions, and improvements fall within a scope of embodiments of the present disclosure as represented by the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
- Modules may constitute software modules (e.g., code stored or otherwise embodied on a machine-readable medium or in a transmission medium), hardware modules, or any suitable combination thereof.
- a “hardware module” is a tangible (e.g., non-transitory) unit capable of performing certain operations and may be configured or arranged in a certain physical manner.
- one or more computer systems e.g., a standalone computer system, a client computer system, or a server computer system
- one or more hardware modules of a computer system e.g., a processor or a group of processors
- software e.g., an application or application portion
- a hardware module may be implemented mechanically, electronically, or any suitable combination thereof.
- a hardware module may include dedicated circuitry or logic that is permanently configured to perform certain operations.
- a hardware module may be a special-purpose processor, such as a field programmable gate array (FPGA) or an ASIC.
- a hardware module may also include programmable logic or circuitry that is temporarily configured by software to perform certain operations.
- a hardware module may include software encompassed within a general-purpose processor or other programmable processor. It will be appreciated that the decision to implement a hardware module mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.
- hardware module should be understood to encompass a tangible entity, and such a tangible entity may be physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner or to perform certain operations described herein.
- “hardware-implemented module” refers to a hardware module. Considering embodiments in which hardware modules are temporarily configured (e.g., programmed), each of the hardware modules need not be configured or instantiated at any one instance in time. For example, where a hardware module comprises a general-purpose processor configured by software to become a special-purpose processor, the general-purpose processor may be configured as respectively different special-purpose processors (e.g., comprising different hardware modules) at different times. Software (e.g., a software module) may accordingly configure one or more processors, for example, to constitute a particular hardware module at one instance of time and to constitute a different hardware module at a different instance of time.
- Hardware modules can provide information to, and receive information from, other hardware modules. Accordingly, the described hardware modules may be regarded as being communicatively coupled. Where multiple hardware modules exist contemporaneously, communications may be achieved through signal transmission (e.g., over appropriate circuits and buses) between or among two or more of the hardware modules. In embodiments in which multiple hardware modules are configured or instantiated at different times, communications between such hardware modules may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware modules have access. For example, one hardware module may perform an operation and store the output of that operation in a memory device to which it is communicatively coupled. A further hardware module may then, at a later time, access the memory device to retrieve and process the stored output. Hardware modules may also initiate communications with input or output devices, and can operate on a resource (e.g., a collection of information).
- a resource e.g., a collection of information
- processors may be 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 that operate to perform one or more operations or functions described herein.
- processor-implemented module refers to a hardware module implemented using one or more processors.
- processor-implemented module refers to a hardware module in which the hardware includes one or more processors.
- processors may also operate to support performance of the relevant operations in a “cloud computing” environment or as a “software as a service” (SaaS).
- At least some of the operations may be performed by a group of computers (as examples of machines including processors), with these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., an application programming interface (API)).
- a network e.g., the Internet
- API application programming interface
- the performance of certain operations may be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines.
- the one or more processors or processor-implemented modules may be located in a single geographic location (e.g., within a home environment, an office environment, or a server farm). In other example embodiments, the one or more processors or processor-implemented modules may be distributed across a number of geographic locations.
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Theoretical Computer Science (AREA)
- Economics (AREA)
- Physics & Mathematics (AREA)
- Entrepreneurship & Innovation (AREA)
- General Physics & Mathematics (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- Educational Administration (AREA)
- Tourism & Hospitality (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Databases & Information Systems (AREA)
- Game Theory and Decision Science (AREA)
- Data Mining & Analysis (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- General Engineering & Computer Science (AREA)
- Primary Health Care (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computational Linguistics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
- This application claims priority under 35 U.S.C. 119(e) to U.S. Provisional Patent Application Ser. No. 62/401,826, filed Sep. 29, 2016, which is incorporated herein by reference in its entirety. Additionally, this application claims priority under 35 U.S.C. 119(e) to U.S. Provisional Patent Application Ser. Nos. 62/402,753 and 62/402,955, filed Sep. 30, 2016, and U.S. patent application Ser. No. 15/373,810 filed Dec. 9, 2016, which are incorporated herein by reference in their entirety.
- The subject matter disclosed herein generally relates to data processing associated with a skill validation system having an endorsement database. The endorsement database can validate an endorsement using social graph data and profile data of a member. Specifically, the present disclosure relates to techniques for calculating a quality score to validate the endorsement.
- A social network system can maintain information on members, companies, organizations, employees, and employers. The social network system may maintain profile pages of members, which can include education information, employment information, and location information about a specific member. Additionally, the social network system can store information about a member's relationships (e.g., connections) with other members of the social network system. Furthermore, the social network system can store endorsements and recommendations of a member. For example, a first member of the social network can endorse a second member in a skill using an endorsement. The endorsement can be presented on the profile page of the second member.
- Some embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings.
-
FIG. 1 is a network diagram illustrating a network environment suitable for a social network system, according to some example embodiments. -
FIG. 2 is a block diagram illustrating various components of a social network system, according to some example embodiments. -
FIG. 3 is a flowchart illustrating a method for validating an endorsement of a skill using a quality score for the endorsement, according to some embodiments. -
FIG. 4 is a flowchart illustrating a method for calculating a quality score for an endorsement, according to some example embodiments. -
FIG. 5 is a user interface diagram illustrating an example of a validation of an endorsement using the techniques described inFIGS. 3-4 , according to some example embodiments. -
FIG. 6 is a block diagram illustrating components of a machine, according to some example embodiments, able to read instructions from a machine-readable medium and perform any one or more of the methodologies discussed herein. - Example methods and systems are directed to techniques for a skill validation system having an endorsement database. More specifically, the present disclosure relates to methods, systems, and computer program products for calculating a quality score for an endorsement stored in the endorsement database. Techniques for calculating the quality score for the endorsement are described herein.
- Examples merely demonstrate possible variations. Unless explicitly stated otherwise, components and functions are optional and may be combined or subdivided, and operations may vary in sequence or be combined or subdivided. In the following description, for purposes of explanation, numerous specific details are set forth to provide a thorough understanding of example embodiments. It will be evident to one skilled in the art, however, that the present subject matter may be practiced without these specific details.
- In current implementations, a first member of a social network system can endorse (e.g., recommend) a specific skill of a second member of the social network system by sending an endorsement for the specific skill. The first member can be the “endorser” that sends the endorsement for the specific skill to the second member. The second member can be referred to as the “recipient” of the endorsement. Additionally, the endorsement can be presented on a profile page of the recipient. The endorsement can signify that the endorser recommends the recipient as an expert or as being proficient in the corresponding skill. For example, an endorsement in accounting demonstrates that the endorser recognizes the recipient's skill in accounting.
- However, in current implementations, not all endorsements received by the recipient can be a representative of the recipient's ability in the specific skill. For example, an endorsement received from a first endorser that has the specific skill and knows the recipient can be more meaningful than an endorsement received from a second endorser that does not possess the skill and does not know the recipient.
- According to some embodiments, the social network system can determine the quality of the endorsement by calculating a quality score for the endorsement. For example, the quality score can be correlated to the likelihood that the endorser knows the skill. Furthermore, the quality score can further depend on the connection strength between the endorser and the recipient. Continuing with the example above, when the endorser is skilled in accounting and also works with the recipient at the same accounting firm, then the quality score for the endorsement can be higher than a quality score of an endorsement from another endorser who does not possess the skill or know the recipient.
- The social network system can present a validation for the endorsement when the quality score is higher than a predetermined threshold (e.g., 80 out of 100). A score that is at or above the predetermined threshold is generally considered a high quality score. Furthermore, an endorsement with a high quality score can be classified as a high-quality endorsement. In some instances, the high-quality endorsements can be highlighted in the profile page of the recipient. For example, the validation of the endorsement is presented by having the specific skill listed as a featured skill on the profile page of the recipient when the quality score is above the predetermined threshold. Alternatively, when the quality score is below the predetermined threshold, the specific skill is not listed as the featured skill on the profile page of the recipient.
- In some instances, a member of the social network system may want to search for a member having a specific skill. In current implementations, the search results for the member can be ranked based upon on the number of endorsements received for the skill. However, ranking simply based on the number of endorsements received can have many limitations. For example, a member profile page can include, without verification, an endorsement associated with a specific skill. In contrast, techniques are described herein for finding a member with a validated skill using the quality score of the endorsement. By finding the validated expert, a user can obtain accurate information about members of the social network, which can result in the user saving time and resources.
- According to some embodiments, an indexing process can rank members using the quality score associated with the endorsements. For example, a higher ranking in the search results can be given to a member with endorsements that have been classified as high-quality endorsements. An endorsement is qualified as high-quality endorsement when the quality score is above a predetermined threshold (e.g., 80 out of 100). Additionally, the member profile page can include featured skills that only include high-quality endorsements. In some instances, the profile page of a member includes a section that lists the featured skills of the member. For example, the featured skills can include endorsements from endorsers that have either worked with the member or know the member. The high-quality endorsement listed on the featured skills section can include educational information or employment information about the endorser.
- According to some embodiments, the social network system includes an endorsement database that uses machine learning models to determine a quality score for each endorsement. The endorsement database can include a database architecture tailored for endorsements. As a result, the endorsement database allows for a faster data retrieval rate, for the endorsements to be sent faster by an endorser, and for faster data processing related to the endorsements. For example, when a first member views a profile page of a second member, suggested endorsements of the second member can be presented faster for the first member to endorse. Furthermore, the endorsement database can include a quality endorsement metric that can deliver more insights about the endorsement received by analyzing the connections and skills of the endorser and the recipient.
- Additionally, techniques described herein allow for presentation of a validated endorsement on a profile page of a member in the social network system, with the validated endorsement being associated with a specific skill. The validation can depend on the quality score associated with each endorsement. Techniques described herein allow for faster processing speed for processing the endorsement data and faster indexing of the endorsements because of the database architecture. Additionally, techniques described herein allow for a faster retrieval of the endorsement data.
-
FIG. 1 is a network diagram illustrating anetwork environment 100 suitable for a social network system, according to some example embodiments. Thenetwork environment 100 includes aserver machine 110, amember database 115, askill reputation database 118, anendorsement database 120, afirst device 130 for afirst user 132, and asecond device 150 for asecond user 152, all communicatively coupled to each other, such as via anetwork 190. Theserver machine 110, themember database 115, theskill reputation database 118, and theendorsement database 120 may form all or part of a network-based system 105 (e.g., a cloud-based server system configured to provide one or more services to thedevices 130 and 150). Theserver machine 110, thefirst device 130, and thesecond device 150 may each be implemented in a computer system, in whole or in part, as described below with respect toFIG. 6 . In some examples, theserver machine 110,member database 115,skill reputation database 118, andendorsement database 120 may be implemented on a same machine, or one or more different machines. - The
member database 115 can store, but is not limited to storing, member data, company data, education data, social graph data, and member activity data for the social network system service. In some instances, themember database 115 can include a plurality of databases (e.g., a first database to store profile data, a second database to store social data, a third database to store member activity data). In certain embodiments, theserver machine 110 may access the information in themember database 115 using thenetwork 190, which can be the Internet. In additional or alternative embodiments, the components of the network-basedsystem 105 may access each other either locally (e.g., a local bus), or through a local network, such as a local area network (LAN). - The
skill reputation database 118 can store a plurality of reputation scores for the members. Each reputation score in the plurality of reputation scores can be associated with a member having a skill. The reputation score for a skill of a member can be calculated using member data (e.g., job title, company name, education information, years of experience) of the member. For example, the reputation score for the accounting skill of a member who is an accountant with 15 years of experience can be 95 out of 100, which can identify that the member is proficient and an expert in accounting. Theserver machine 110 can access the information in theskill reputation database 118 using thenetwork 190. - The
endorsement database 120 can store a plurality of endorsements.Endorsement 125 is an example of an endorsement in the plurality of endorsements that is stored in theendorsement database 120. Theendorsement 125 includes anendorser 126, arecipient 127, and askill 128. For example, theendorser 126 endorses therecipient 127 in aspecific skill 128. Both theendorser 126 and therecipient 127 can be members of the social network system. Theserver machine 110 can access the information in theendorsement database 120 using thenetwork 190. - Also shown in
FIG. 1 are theusers users device 130 or 150), or any suitable combination thereof (e.g., a human assisted by a machine or a machine supervised by a human). Theuser 132 is not part of thenetwork environment 100, but is associated with thedevice 130 and may be a user of thedevice 130. For example, thedevice 130 may be a desktop computer, a vehicle computer, a tablet computer, a navigational device, a portable media device, a smartphone, or a wearable device (e.g., a smart watch or smart glasses) belonging to theuser 132. Likewise, theuser 152 is not part of thenetwork environment 100, but is associated with thedevice 150. As an example, thedevice 150 may be a desktop computer, a vehicle computer, a tablet computer, a navigational device, a portable media device, a smartphone, or a wearable device (e.g., a smart watch or smart glasses) belonging to theuser 152. - In some instances, the
user 132 can be theendorser 126 that endorses theuser 152, who is therecipient 127 of theendorsement 125. In another example, theuser 132 can be the member searching for a member proficient in a specific skill, and theuser 152 can be validated in the specific skill. For example, theserver machine 110 can transmit a message to theuser 152 on behalf of theuser 132 using thenetwork 190. - The
network 190 may be any network that enables communication between or among machines, databases, and devices (e.g., theserver machine 110 and the device 130). Accordingly, thenetwork 190 may be a wired network, a wireless network (e.g., a mobile or cellular network), or any suitable combination thereof. Thenetwork 190 may include one or more portions that constitute a private network, a public network (e.g., the Internet), or any suitable combination thereof. Accordingly, thenetwork 190 may include one or more portions that incorporate a local area network (LAN), a wide area network (WAN), the Internet, a mobile telephone network (e.g., a cellular network), a wired telephone network (e.g., a plain old telephone system (POTS) network), a wireless data network (e.g., a Wi-Fi network or WiMAX network), or any suitable combination thereof. Any one or more portions of thenetwork 190 may communicate information via a transmission medium. As used herein, “transmission medium” refers to any intangible (e.g., transitory) medium that is capable of communicating (e.g., transmitting) instructions for execution by a machine (e.g., by one or more processors of such a machine), and includes digital or analog communication signals or other intangible media to facilitate communication of such software. - Any of the machines, databases, or devices described herein may be implemented in a general-purpose computer modified (e.g., configured or programmed) by software (e.g., one or more software modules) to be a special-purpose computer to perform one or more of the functions described herein for that machine, database, or device. For example, a computer system able to implement any one or more of the methodologies described herein is discussed below with respect to
FIG. 6 . As used herein, a “database” is a data storage resource and may store data structured as a text file, a table, a spreadsheet, a relational database (e.g., an object-relational database), a triple store, a hierarchical data store, or any suitable combination thereof. Moreover, any two or more of the machines, databases, or devices described herein may be combined into a single machine, database, or device, and the functions described herein for any single machine, database, or device may be subdivided among multiple machines, databases, or devices. -
FIG. 2 is a block diagram illustrating components ofsocial network system 210, according to some example embodiments. Thesocial network system 210 is an example of a network-basedsystem 105 ofFIG. 1 . Thesocial network system 210 can include auser interface 202, aquality score calculator 204, anendorser value calculator 206, arecipient value calculator 207, and anoverlap value calculator 208. One or more of the components 202-208 may be configured to communicate with each other (e.g., via a bus, shared memory, or a switch). Theuser interface 202 can provide information or cause an interface to be rendered on a client device of the member. For example, theuser interface 202 can present, on a profile page of the recipient, a validation for a specific skill when the quality score of the endorsement is above a predetermined threshold. - Additionally, the
social network system 210 can communicate with themember database 115 ofFIG. 1 , theskill reputation database 118, and theendorsement database 120 ofFIG. 1 . Themember database 115 can storemember data 220. Theskill reputation database 118 can scorereputation data 225 of each member in a specific skill. As shown in the example ofFIG. 2 , thereputation data 225 may be stored in a skill reputation database). Theendorsement database 120 can storeendorsement data 230. - The
member data 220 can includeprofile data 212, which includes information from a profile page of a member. Moreover, themember data 220 can includesocial graph data 214 and member activity data. As later described inFIG. 3 , theendorser value calculator 206 can determine an endorser value for theendorser 126 using themember data 220 of theendorser 126. Additionally, therecipient value calculator 207 can determine a recipient value for the recipient using themember data 220 of the recipient. Moreover, theoverlap value calculator 208 can determine an overlap value using the member data of both the endorser and the recipient. Furthermore, thequality score calculator 204 can determine a quality score for the endorsement using the endorser value, the recipient value, and the overlap value. In some instances, some of the processing of the data for determining the endorser value, the recipient value, and overlap value can be performed by anoffline data processor 240 on a periodic basis (e.g., nightly) in order to return faster calculation results. - The
profile data 212 can be used to determine the endorser value and the recipient value in a specific skill. For example, the endorser value of the endorser in a specific skill depends on the endorser having profile data (e.g., job title, degree, industry) that is related to the specific skill. Similarly, the recipient value of the recipient in a specific skill depends on the recipient having profile data (e.g., job title, degree, industry) that is related to the specific skill. Profile data related to the specific skill includes having the specific skill listed on the profile page, a recommendation of the specific skill, a degree associated with the specific skill, a job title associated with the specific skill, and other educational and/or employment data associated with the specific skill. Additionally, thesocial network system 210 maintains an association between various skills, and skills associated with the specific skill are determined to be the same or related. - For instance, with many social network system services, when a user registers to become a member, the member is prompted to provide a variety of personal and employment information that may be displayed in a member's profile page. As used herein, personal and/or employment information is referred to as
profile data 212. Theprofile data 212 can be used to determine the endorser value and the recipient value in a specific skill. Theprofile data 212 that is commonly requested and displayed as part of a member's profile includes the member's age, birthdate, gender, interests, contact information, home location (e.g., city and state), educational background (e.g., schools, majors, matriculation, graduation dates, etc.), employment history, office location, skills, professional organizations, and other such personal and/or employment information. In some embodiments, theprofile data 212 may include the various skills that each member has indicated he or she possesses. Additionally, theprofile data 212 may include skills of a member that have been endorsed by another member. Furthermore, theprofile data 212 may include recommendations of a member from another member (e.g., co-worker). - With certain social network system services, such as professional network services, the
profile data 212 can include information commonly included in a professional resume or curriculum vitae, such as information about a person's education, the company at which a person is employed, the location of the employer, an industry in which a person is employed, a job title or function, an employment history, skills possessed by a person, professional organizations of which a person is a member, and so on. - Additionally, social network system services provide their users with a mechanism for defining their relationships with other people. This digital representation of real-world relationships is frequently referred to as a social graph, which may be stored in the
social graph data 214. - The
social graph data 214 can be associated with an entity's presence within the social network system service. For example, consistent with some embodiments, a social graph is implemented with a specialized graph data structure in which various entities (e.g., people, companies, schools, government institutions, non-profits, and other organizations) are represented as nodes connected by edges, where the edges have different types representing the various associations and/or relationships among the different entities. Thesocial graph data 214 of a member can include first-degree connections, second-degree connections, and so on. In one embodiment, a first member is a first-degree connection a second member when the first and second members are connected in thesocial network system 210. Similarly, a first member is a second-degree connection to a second member when the first and second members are not connected to each other, but both are connected to a third member. As can be inferred from the foregoing, an nth-degree connection is a connection where a first node and a second node are separated by N−1 nodes. - In some instances, the
endorser value calculator 206 can determine an endorser value for theendorser 126 usingprofile data 212 andsocial graph data 214 of theendorser 126. For example, theendorser value calculator 206 can access theprofile data 212 to obtain a number of endorsements given or received by theendorser 126, a number of skills listed on the profile page of theendorser 126, a consumer marketing segment, a seniority, and/or years in career, etc. Additionally, theendorser value calculator 206 can access thesocial graph data 214 to determine a number of connections and a number of endorsements per connection. For example, the endorser value may be determined usingEquation 1. -
Endorser Value=C 0(Number of Endorsement Given by Endorser)+C 1(Number of Endorsement Received)+C 2(Number of Skills)+C 3(Years in Career)+C 4(Number of Connections)+C 5(Number of Endorsements Per Connection), (Equation 1) - where C0 . . . C5 are coefficients with a range from 0 to 1.
- In some instances, the
recipient value calculator 207 can determine a recipient value for therecipient 127 usingprofile data 212 andsocial graph data 214 of therecipient 127. For example, therecipient value calculator 207 can access theprofile data 212 to obtain a number of endorsements given or received by therecipient 127, a number of skills listed on the profile page of therecipient 127, a consumer marketing segment, a seniority, years in career, etc. Additionally, theendorser value calculator 206 can access thesocial graph data 214 to determine a number of connections. For example, the recipient value is determined usingEquation 2. -
Recipient Value=C 0(Number of Endorsement Given by Recipient)+C 1(Number of Endorsement Received)+C 2(Number of Skills)+C 3(Years in Career)+C 4(Number of Connections), (Equation 2) - where C0 . . . C5 are coefficients with a range from 0 to 1.
- In some instances, the
overlap value calculator 208 can determine an overlap value between theendorser 126 and therecipient 127 using the social graph data 214 (e.g., first-degree connections) of theendorser 126 and therecipient 127. For example, theoverlap value calculator 208 can access thesocial graph data 214 to determine a connection density between theendorser 126 and therecipient 127, as later described inFIG. 3 . The overlap value for theendorser 126 and therecipient 127 can be determined based on the connection density value. For example, the overlap value is determined usingEquation 3. The value for each of the common employer, common industry, common job title, common school, common degree, and common location can be a binary number, where 1 indicates that the first and second member have a profile attribute (e.g., employer, industry, job title, school, degree) in common. -
Overlap Value=C 0(Common Employer)+C 1(Common Industry)+C 2(Common Job Title)+C 3(Common School)+C 4(Common Degree)+C 5(Common Location), (Equation 3) - where C0 . . . C5 are coefficients with a range from 0 to 1.
- The
social network system 210 may provide a broad range of other applications and services that allow members the opportunity to share and receive information, often customized to the interests of the members. In some embodiments, members may be able to self-organize into groups, or interest groups, organized around subject matter or a topic of interest. In some embodiments, thesocial network system 210 may host various job listings providing details of job openings with various organizations. - In some instances, the
member data 220 may include member activity data. The member activity data include members' interactions with the various applications, services, and content made available via thesocial network system 210, and the members' behavior (e.g., content viewed, links selected, etc.) may be used to determine the member's proficiency in a specific skill. For example, theendorser 126 viewing content associated with accounting may increase the endorser value for the accounting endorsement. - The
reputation data 225 includes reputation scores of members in a specific skill. For example, a member can have a first reputation score for a first skill and a second reputation score for a second skill. The first reputation score and the second reputation score are examples of areputation score 228. Thereputation score 228 can be obtained from theskill reputation database 118 inFIG. 1 . As previously mentioned, theskill reputation database 118 can be maintained by theserver machine 110. For example, the reputation score for a first skill is determined using Equation 4: -
Reputation Score=C 0(Member has skill on profile)+C 1(Member has been endorsed for skill)+C 2(Member has been recommended for skill)+C 3(Member has related skill on profile), (Equation 4) - where C0 . . . C3 are coefficients with a range from 0 to 1.
- The
endorsement data 230 includes the various skills for which each member has been endorsed. For example, as described inFIG. 1 , using anendorsement 125, theendorser 126 can endorse therecipient 127 in aspecific skill 128. Additionally, theendorsement data 230 can include the various skills that each member has indicated he or she possesses. In some instances, the expert determination process can rank subject matter experts in a specific skill using aquality score 235 associated with theendorsement 125. As later described inFIG. 3 , thequality score calculator 204 can calculate thequality score 235 for theendorsement 125 using the endorser value, the recipient value, and the overlap value. - Furthermore, the
social network system 210 can be configured to process data offline or periodically using anoffline data processor 240. In some instances, some or all of the calculations performed by thequality score calculator 204,endorser value calculator 206,recipient value calculator 207, and overlapvalue calculator 208 can be performed by theoffline data processor 240. For example, theoffline data processor 240 can include one or more large-scale processing servers, such as Apache™ Hadoop® servers that access themember data 220,reputation data 225, andendorsement data 230 periodically (e.g., on a nightly basis) in order to calculate the quality score, the endorser value, the recipient value, and the connection density. - Processing the
member data 220, such as calculating the quality score for an endorsement, may be computationally intensive. Therefore, some of the calculating and selecting can be done offline, such as one or more parameters associated with the quality score. For example, themember data 220 may be processed offline by theendorser value calculator 206 to determine the endorser value of theendorser 126. Additionally, themember data 220 may be processed offline by therecipient value calculator 207 to determine the recipient value of therecipient 127 for a specific skill. By having the one or more parameters calculated offline, less real-time processing time may be needed by thequality score calculator 204,endorser value calculator 206,recipient value calculator 207, and overlapvalue calculator 208 in order to calculate the quality score for each endorsement. As a result, these parameters can be inputted in thequality score calculator 204,endorser value calculator 206,recipient value calculator 207, and overlapvalue calculator 208 in real-time in order to almost instantaneously present the validation of theendorsement 125 on the profile page of therecipient 127. - As will be further described with respect to
FIGS. 3-4 , thequality score calculator 204, in conjunction with theendorser value calculator 206, therecipient value calculator 207, and theoverlap value calculator 208, can calculate aquality score 235 for anendorsement 125. Additionally, theuser interface 202 can present a validation of a skill using thequality score 235. -
FIG. 3 is a flowchart illustrating operations of thesocial network system 210 in performing amethod 300 for calculating a quality score of an endorsement, according to some example embodiments. Operations in themethod 300 may be performed by thesocial network system 210, using thequality score calculator 204, theendorser value calculator 206, therecipient value calculator 207, and theoverlap value calculator 208 described above with respect toFIG. 2 . - As previously mentioned, the
social network system 210 can include themember database 115 storingprofile data 212 of members in the social network. Additionally, themember database 115 can includesocial graph data 214. Theprofile data 212 includes employment information (e.g., job title, industry, years of experience) of the members and educational information (e.g., degree, major, school name, graduation year) of the members. - Additionally, the
social network system 210 can access theskill reputation database 118 storing a plurality of reputation scores for the members. Eachreputation score 228 in the plurality of reputation scores can be associated with a member having a skill. Thereputation score 228 can be determined by thesocial network system 210 using theoffline data processor 240 using themember data 220 of the member. - At
operation 310, thesocial network system 210 can receive, from a user device (e.g., user device 130) of an endorser (e.g., user 132), an endorsement of a recipient (e.g., user 152) in a specific skill. The endorser and the recipient can be members of thesocial network system 210. Additionally, the received endorsement can be stored in theendorsement database 120 as theendorsement 125 withuser 132 being labeled as theendorser 126,user 152 labeled as therecipient 127, and the specific skill being labeled as theskill 128. In some instances, theuser interface 202 can simply access theendorsement 125 from theendorsement database 120 atoperation 310. A receiver in theserver machine 110 can receive the endorsement. - For example, the
user 132 can endorse theuser 152 in accounting by sending theendorsement 125. Theendorsement 125 can be sent to the network-basedsystem 105 by theuser device 130 usingnetwork 190. - At
operation 320, theendorser value calculator 206 can determine an endorser value for theendorser 126.Equation 1 describes an algorithm for determining the endorser value, according to some embodiments. In certain embodiments,operation 320 includes using a reputation score to determine the endorser value for theendorser 126. Theendorser value calculator 206 can access thereputation data 225 of theendorser 126 from theskill reputation database 118. Additionally, thereputation score 228 associated with the specific skill can be obtained from the accessedreputation data 225. Equation 4 describes an algorithm for determining the reputation score, according to some embodiments. As previously mentioned, thereputation score 228 is an indication of the skill level associated with theendorser 126 in the specific skill. In some embodiments, thereputation score 228 of the endorser is calculated as part ofoperation 320 using equation 4 and thisreputation score 228 is used by theendorser value calculator 206 to determine the endorser value for theendorser 126 based on the endorser'sreputation score 228. A processor in theserver machine 110 can perform the determination in real-time. In some instances, part of the determination atoperation 320 can be performed offline using theoffline data processor 240. - In some instances, the
endorser value calculator 206 can access thereputation score 228 of theendorser 126 in the specific skill (e.g., accounting) in order to determine the endorser value. The endorser value can be directly correlated to thereputation score 228. In one example, the endorser value can be equal to thereputation score 228. For example, if thereputation score 228 of theendorser 126 in the specific skill (e.g., accounting) is a first number (e.g., 80), then the endorser value can also be the first number. In another example, the endorser value increases by a predetermined amount or ratio on a direct correlation basis with thereputation score 228. - In some instances, the
reputation score 228 associated with theendorser 126 having the specific skill can depend on theendorser 126 having the specific skill listed on a profile page of theendorser 126. For example, thereputation score 228 increases when the specific skill is listed on the profile page of theendorser 126. Additionally, thereputation score 228 increases even more when the specific skill listed on the profile page of theendorser 126 has a validation. Moreover, thereputation score 228 associated with theendorser 126 having the specific skill can be associated with theendorser 126 having a job title that is related to the specific skill. Furthermore, thereputation score 228 associated with theendorser 126 having the specific skill can be associated with theendorser 126 having an educational degree that is related to the specific skill. - In some instances, the
endorser value calculator 206 can accessprofile data 212 of theendorser 126. Theprofile data 212 can include years of experience, and the endorser value is in association with the years of experience of theendorser 126. For example, the endorser value can be directly proportional to the number of years of experience. The endorser value can increase by a predetermined ratio on a direct correlation basis with the number of years of experience. - At
operation 330, theoverlap value calculator 208 can determine an overlap value between theendorser 126 and therecipient 127 using themember data 220. For example,Equation 3 describes an algorithm for determining the overlap value. Themember data 220 can be stored inmember database 115. Themember data 220 includesprofile data 212 andsocial graph data 214. Theprofile data 212 includes employment information and the educational information of theendorser 126 and therecipient 127. Additionally, theprofile data 212 accessed atoperation 330 can include an endorsement of a member skill, a recommendation of the member, and the member's years of experience, location, job title, position in current company, projects completed with the company, current projects, published papers, patents, school, education information, portfolio, certifications, awards, and so on. Thesocial graph data 214 includes the first-degree connections, the second-degree connections, and so on of theendorser 126 and therecipient 127. A processor in theserver machine 110 can perform the determination in real-time. In some instances, part of the determination atoperation 330 can be performed offline using theoffline data processor 240. - In some instances, the overlap value is determined using the similarity between the employment information and the educational information of the
endorser 126 and therecipient 127. For example, the overlap value increases when theendorser 126 and therecipient 127 studied at the same school or worked at the same company. Alternatively, the overlap value decreases when theendorser 126 and therecipient 127 studied at different schools or worked at different companies. Additionally, the overlap value can depend on similarities of other profile data 212 (e.g., location, job title, industry, certifications) of theendorser 126 and therecipient 127. - Furthermore, the overlap value can be based on a connection density value (e.g., connection strength) between the
endorser 126 and therecipient 127. Theoverlap value calculator 208 calculates a connection density value between therecipient 127 and theendorser 126 and updates the overlap value using the connection density value. For example, when theendorser 126 has n=10 first-degree connections, there are 45 (45=Σk=1 nk−1=9+8+7+6+5+4+3+2+1) unique first-degree and second-degree connections. Additionally, theendorser 126 and therecipient 127 have 20 similar connections (e.g., same members) that are either a first-degree or a second-degree connection. Therefore, based on the 20 similar connections in the 45 unique first-degree and second-degree connections, the connection density value is 44%. In one example, the overlap value can equal the connection density value. - In some instances, the overlap value further depends on a first geographic region associated with the
endorser 126 and a second geographic region associated with therecipient 127. For example, the overlap value increases when the first region is the same as the second region, inferring that theendorser 126 and therecipient 127 live in the same region. Alternatively, the overlap value decreases when the first region is not the same as the second region. - At
operation 340, thequality score calculator 204 calculates a quality score for the received endorsement based on the endorser value and the overlap value. The endorser value is determined atoperation 320 and the overlap value is determined atoperation 330. In some instances, thequality score 235 can be calculated by adding the endorser value and the overlap value. Alternatively, thequality score 235 can be calculated by averaging the endorser value and the overlap value. Additionally, the calculated quality score can be stored in theendorsement data 230 as thequality score 235 that is associated with theendorsement 125. For example, the quality score can range from 0-100. A higher score can be associated with a member that is more proficient in the skill than another member having a lower score. A processor in theserver machine 110 can perform the calculation in real-time. - At
operation 350, theuser interface 202 presents a validation for the specific skill when the quality score transgresses a predetermined threshold. The validation can be presented on the profile page of therecipient 127. In some instances, the predetermined threshold (e.g., 50) can be preset by an administer of thesocial network system 210. Additionally, the predetermined threshold can be adjusted in direct correlation with the number of validated skills associated with a member. For example, the predetermined threshold is decreased when the profile page of the member does not have any skills having a validation. - The validation can be posted on the profile page of the recipient alongside the endorsements received by the recipient. The validation can be viewable by other first-degree connections of the member or by the public.
- In some instances, the validation is presented by having the specific skill listed as a featured skill on the profile page of the recipient when the quality score is above the predetermined threshold. Alternatively, the specific skill is not listed as the featured skill on the profile page of the recipient when the quality score is below the predetermined threshold. Additionally, the featured skill further includes employment information (e.g., name of employer, job title) of the endorser. Furthermore, the featured skill further includes educational information (e.g., degree, major, name of school) of the endorser. An example of a featured skill is illustrated in
FIG. 5 . - In some instances, the
social network system 210 can include anendorsement database 120 storingendorsement data 230. Theendorsement data 230 includes a plurality of endorsements, with eachendorsement 125 in the plurality of endorsements being associated with a sender, a receiver, and a skill. The sender is the member sending the endorsement associated with a specific skill, and the receiver is the member receiving the endorsement. Additionally, each endorsement in the plurality of endorsements stored in theendorsement database 120 can include a classification. - The
method 300 can further include thequality score calculator 204 classifying the received endorsement atoperation 310 as a high-quality endorsement when the quality score is above the predetermined threshold. Alternatively, thequality score calculator 204 can classify the received endorsement as a low-quality endorsement when the quality score is below the predetermined threshold. Subsequently, the classification is presented on a profile page of the recipient by theuser interface 202. - In some instances, the
recipient value calculator 207 can access, from theendorsement database 120, a subset of endorsements from the plurality of endorsements. The subset of endorsements have therecipient 127 as either the receiver or the sender. In another example, the subset of endorsements can only include validated endorsements (e.g., endorsements with a quality score above the predetermined threshold). Additionally, therecipient value calculator 207 can determine, using the subset of endorsements, a recipient value based on a number of endorsements received by the recipient and a number of endorsements sent by the recipient.Equation 2 describes an algorithm for determining the recipient value, according to some embodiments. For example, the recipient value can be the number of endorsements given (i.e., therecipient 127 is the sender) and received (i.e., therecipient 127 is the receiver). In another example, the recipient value may be only the number of endorsements received or the number of endorsements given. Subsequently, thequality score calculator 204 can update thequality score 235 based on the recipient value. - Similar to the calculation of the recipient value above, the
endorser value calculator 206 can access, from theendorsement database 120, a subset of endorsements from the plurality of endorsements. The subset of endorsements can include endorsements that have the endorser as either the receiver or the sender. Additionally, theendorser value calculator 206 can update, using the subset of endorsements, the endorser value based on a number of endorsements received by the endorser and a number of endorsements sent by the endorser. The endorser value calculated atoperation 320 can be updated based on the number of endorsements given or received by the endorser. For example, the endorser value may increase when the endorser has received more than a predetermined (e.g., 20) number of endorsements. Subsequently, thequality score calculator 204 can update thequality score 235 based on the updated endorser value. - In another example, the
endorser value calculator 206 can access, from the endorsement database, a subset of endorsements from the plurality of endorsements. The subset of endorsements are endorsements that have therecipient 127 as the receiver. Additionally, theendorser value calculator 206 can determine, using the subset of endorsements, an endorsement value based on a number of endorsements received by the recipient for the specific skill. The endorser value calculated atoperation 320 can be updated based on the number of endorsements received by the endorser for the specific skill. For example, the endorser value may increase when the endorser has received more than a predetermined (e.g., 5) number of endorsements for a specific skill (e.g., accounting). Subsequently, thequality score calculator 204 can update the quality score based on the endorsement value. -
FIG. 4 is a flowchart illustrating operations of thesocial network system 210 in performing amethod 400 for calculating a quality score, according to some example embodiments. Operations in themethod 400 may be performed by the network-basedsystem 105, using thequality score calculator 204, theendorser value calculator 206, therecipient value calculator 207, and theoverlap value calculator 208 described above with respect toFIG. 2 . - At
operation 410, theendorser value calculator 206 determines an endorser value.Operation 320 inFIG. 3 describes an example of determining the endorser value. For example, the endorser value can be determined based on the number of endorsements received by the endorser (e.g., endorser 126), the number of endorsements given by the endorser, the number of skills listed on the profile of the endorser, a consumer marketing segment associated with the endorser, seniority of the endorser, first-degree connections of the endorser, years in career, number of endorsements per connection, andother member data 220 of the endorser. - At
operation 420, therecipient value calculator 207 determines a recipient value. The recipient value can be determined using techniques similar to the determination of the endorser value as described atoperation 320 inFIG. 3 . Additionally, the recipient value can be determined based on the number of endorsements received by the recipient, the number of endorsements given by the recipient, the number of skills listed on the profile of the recipient, a consumer marketing segment associated with the recipient, seniority of the recipient, first-degree connections of the recipient, years in career, andother member data 220 of the recipient. - At
operation 430, theoverlap value calculator 208 can determine an overlap value between theendorser 126 and therecipient 127.Operation 330 inFIG. 3 describes an example of determining the overlap value. Additionally, the overlap value can be determined based on employment information, education information, location information, and a connection density value. The employment information includes company name, industry, job title, job function, and occupation. The education information includes school, degree, and field. The location information includes country, locale, and region. - At
operation 440, theendorser value calculator 206 can obtain a reputation score for the endorser. Thereputation score 228 can be accessed from thereputation data 225 stored in theskill reputation database 118. In some instances, the endorser value can be further based on thereputation score 228.Operation 320 inFIG. 3 describes an example of obtaining the reputation score. - At
operation 450, thequality score calculator 204 calculates thequality score 235 associated with theendorsement 125 based on the endorser value, the recipient value, the overlap value, and the reputation value. For example, thequality score 235 can be calculated using Equation 5: -
Quality Score=C 0(Endorser Value)+C 1(Recipient Value)+C 2(Overlap Value)+C 3(Reputation Value), (Equation 5) - where C0 . . . C3 are coefficients with a range from 0 to 1.
- In some instances, the coefficients in Equation 1-5 can be determined using a logistic regression model. For example, the logistic regression model can find the coefficients C0-C3 that maximizes the likelihood that the classification of the endorsement being a high-quality endorsement under the logistic regression model. As known in the art, there several efficient optimization algorithms for doing this task. In some other instances, the coefficients in Equation 1-5 can be determined using other models such as a linear regression model, a decision tree model, a support vector machine model, and a Naïve Bayesian model, or other machine learning algorithms.
- Additionally, in some instances, the quality score can be updated based on the number of endorsements for the specific skill that the recipient has previously received. Furthermore, the quality score can be updated based on the number of high-quality endorsements for the specific skill that the recipient has previously received.
- The
quality score calculator 204 can verify an expert in a skill from a plurality of members based on the calculated quality score for the skill. The calculated quality score for the skill of the expert can be higher than a second predetermined threshold (e.g., 95), with the second predetermined threshold being higher than the predetermined threshold used atoperation 350. The predetermined thresholds can be set by an administrator of thesocial network system 210 or determined dynamically based on user input and past quality scores for the skill. -
FIG. 5 is a user interface diagram illustrating an example of a validation of a skill (e.g., a featured skill) using the techniques described inFIGS. 3-4 , according to some embodiments. - A
user interface 500 inFIG. 5 presents a featuredskill section 510 on a profile page of a member. The featuredskill section 510 includes a first featured skill 520 and a second featuredskill 560. As previously mentioned, an endorsement for a skill can be presented with a validation when the quality score of the endorsement is above a predetermined threshold. The validation of the endorsement can include the skill being listed as a featured skill (e.g., first featured skill 520) on the profile page of the member. - Additionally, the first featured skill 520 can include member data 220 (e.g., employment information, educational information, social graph data) of the endorser (e.g., the endorser 126). For example, the first featured skill 520 includes
employment information 530 of the endorsers. The employment information can include the employer name, which can be presented by validating the skill as being endorsed by coworkers of the recipient (e.g., the recipient 127). Moreover, the first featured skill 520 includessocial graph data 540 of the viewer of the profile, such as including common connections of the viewer that have endorsed the member. The first featured skill 520 can also include thetotal number 550 of endorsements received for the skill. - In another example, the second featured
skill 560 highlights leaders 570 (e.g., influencers, senior leaders, executives) that have endorsed the recipient. Furthermore, the second featuredskill 560 can highlightrelevant viewer information 580, such as when the viewer endorsed the recipient in the skill. - According to various example embodiments, one or more of the methodologies described herein facilitate an endorsement validation of a skill for a member using the
member data 220. Additionally, using the database structure illustrated inFIG. 2 , the data processing associated with the validation of the endorsement is in real time by using theoffline data processor 240 for some calculations. For example, thesocial network system 210 can use theoffline data processor 240 in such a way as to allow efficient retrieval and processing of the information in order to present the validation in real time. - When these effects are considered in aggregate, one or more of the methodologies described herein may obviate a need for certain human efforts or resources that otherwise would be involved in calculating the quality score and validating the endorsement. Furthermore, computing resources used by one or more machines, databases, or devices (e.g., within the network environment 100) may similarly be reduced (e.g., by pre-determining the endorser value and the recipient value). Examples of such computing resources include processor cycles, network traffic, memory usage, data storage capacity, power consumption, and cooling capacity.
- The validation process allows job seekers, recruiters, and market analysts to quickly find accurate information (e.g., subject matter experts) in the
social network system 210. Theuser interface 202 provides structure to search results, which enables fast navigation and discovery. - In order for a user to have a great search experience, correctness and performance are key. Conventional approaches either sacrifice correctness or do not perform fast enough. The methodologies described herein facilitate accurate skill determination by removing false positives using a validation process using data available in the
social network system 210. Additionally, by using theoffline data processor 240 to perform some of the calculations when dealing with very large data sets, such as themember data 220, the results can be presented faster than they would be using current conventional approaches. -
FIG. 6 is a block diagram illustrating components of amachine 600, according to some example embodiments, able to read instructions from a machine-readable medium (e.g., a machine-readable storage medium) and perform any one or more of the methodologies discussed herein. Specifically,FIG. 6 shows a diagrammatic representation of themachine 600 in the example form of a computer system, within which instructions 616 (e.g., software, a program, an application, an applet, an app, or other executable code) for causing themachine 600 to perform any one or more of the methodologies discussed herein may be executed. For example, theinstructions 616 may cause the machine to execute the flow diagrams ofFIGS. 3 and 4 . Additionally, or alternatively, theinstructions 616 may implement the processes performed by thequality score calculator 204,endorser value calculator 206,recipient value calculator 207,overlap value calculator 208 ofFIG. 2 , and so forth. Theinstructions 616 transform the general, non-programmed machine into a particular machine programmed to carry out the described and illustrated functions in the manner described. In alternative embodiments, themachine 600 operates as a standalone device or may be coupled (e.g., networked) to other machines. In a networked deployment, themachine 600 may operate in the capacity of a server machine or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. Themachine 600 may comprise, but not be limited to, a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (STB), a personal digital assistant (PDA), an entertainment media system, a cellular telephone, a smart phone, a mobile device, a wearable device (e.g., a smart watch), a smart home device (e.g., a smart appliance), other smart devices, a web appliance, a network router, a network switch, a network bridge, or any machine capable of executing theinstructions 616, sequentially or otherwise, that specify actions to be taken by themachine 600. Further, while only asingle machine 600 is illustrated, the term “machine” shall also be taken to include a collection ofmachines 600 that individually or jointly execute theinstructions 616 to perform any one or more of the methodologies discussed herein. - The
machine 600 may includeprocessors 610, memory/storage 630, and I/O components 650, which may be configured to communicate with each other such as via abus 602. In an example embodiment, the processors 610 (e.g., a Central Processing Unit (CPU), a Reduced Instruction Set Computing (RISC) processor, a Complex Instruction Set Computing (CISC) processor, a Graphics Processing Unit (GPU), a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Radio-Frequency Integrated Circuit (RFIC), another processor, or any suitable combination thereof) may include, for example, aprocessor 612 and aprocessor 614 that may execute theinstructions 616. The term “processor” is intended to include multi-core processor that may comprise two or more independent processors (sometimes referred to as “cores”) that may executeinstructions 616 contemporaneously. AlthoughFIG. 6 shows multiple processors, themachine 600 may include a single processor with a single core, a single processor with multiple cores (e.g., a multi-core processor), multiple processors with a single core, multiple processors with multiples cores, or any combination thereof. For example, the operations described inmethod 300 andmethod 400 can be performed by one or more of theprocessors 610. - The memory/
storage 630 may include amemory 632, such as a main memory, or other memory storage, and astorage unit 636, both accessible to theprocessors 610 such as via thebus 602. Thestorage unit 636 andmemory 632 store theinstructions 616 embodying any one or more of the methodologies or functions described herein. Theinstructions 616 may also reside, completely or partially, within thememory 632, within thestorage unit 636, within at least one of the processors 610 (e.g., within the processor's cache memory), or any suitable combination thereof, during execution thereof by themachine 600. Accordingly, thememory 632, thestorage unit 636, and the memory ofprocessors 610 are examples of machine-readable media. The memory/storage 630 can store themember data 220, thereputation data 225, or theendorsement data 230. - As used herein, “machine-readable medium” means a device able to store instructions and data temporarily or permanently and may include, but is not limited to, random-access memory (RAM), read-only memory (ROM), buffer memory, flash memory, optical media, magnetic media, cache memory, other types of storage (e.g., Erasable Programmable Read-Only Memory (EEPROM)), and/or any suitable combination thereof. The term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) able to store the
instructions 616. The term “machine-readable medium” shall also be taken to include any medium, or combination of multiple media, that is capable of storing instructions (e.g., instructions 616) for execution by a machine (e.g., machine 600), such that the instructions, when executed by one or more processors of the machine 600 (e.g., processors 610), cause themachine 600 to perform any one or more of the methodologies described herein. Accordingly, a “machine-readable medium” refers to a single storage apparatus or device, as well as “cloud-based” storage systems or storage networks that include multiple storage apparatus or devices. The term “machine-readable medium” excludes signals per se. - The I/
O components 650 may include a wide variety of components to receive input, provide output, produce output, transmit information, exchange information, capture measurements, and so on. The specific I/O components 650 that are included in a particular machine will depend on the type of machine. For example, portable machines such as mobile phones will likely include a touch input device or other such input mechanisms, while a headless server machine will likely not include such a touch input device. It will be appreciated that the I/O components 650 may include many other components that are not shown inFIG. 6 . The I/O components 650 are grouped according to functionality merely for simplifying the following discussion and the grouping is in no way limiting. In various example embodiments, the I/O components 650 may includeoutput components 652 andinput components 654. Theoutput components 652 may include visual components (e.g., a display such as a plasma display panel (PDP), a light emitting diode (LED) display, a liquid crystal display (LCD), a projector, or a cathode ray tube (CRT)), acoustic components (e.g., speakers), haptic components (e.g., a vibratory motor, resistance mechanisms), other signal generators, and so forth. Theinput components 654 may include alphanumeric input components (e.g., a keyboard, a touch screen configured to receive alphanumeric input, a photo-optical keyboard, or other alphanumeric input components), point based input components (e.g., a mouse, a touchpad, a trackball, a joystick, a motion sensor, or other pointing instruments), tactile input components (e.g., a physical button, a touch screen that provides location and/or force of touches or touch gestures, or other tactile input components), audio input components (e.g., a microphone), and the like. - In further example embodiments, the I/
O components 650 may includebiometric components 656,motion components 658,environmental components 660, orposition components 662, among a wide array of other components. For example, thebiometric components 656 may include components to detect expressions (e.g., hand expressions, facial expressions, vocal expressions, body gestures, or eye tracking), measure biosignals (e.g., blood pressure, heart rate, body temperature, perspiration, or brain waves), identify a person (e.g., voice identification, retinal identification, facial identification, fingerprint identification, or electroencephalogram based identification), and the like. Themotion components 658 may include acceleration sensor components (e.g., accelerometer), gravitation sensor components, rotation sensor components (e.g., gyroscope), and so forth. Theenvironmental components 660 may include, for example, illumination sensor components (e.g., photometer), temperature sensor components (e.g., one or more thermometers that detect ambient temperature), humidity sensor components, pressure sensor components (e.g., barometer), acoustic sensor components (e.g., one or more microphones that detect background noise), proximity sensor components (e.g., infrared sensors that detect nearby objects), gas sensors (e.g., gas detection sensors to detect concentrations of hazardous gases for safety or to measure pollutants in the atmosphere), or other components that may provide indications, measurements, or signals corresponding to a surrounding physical environment. Theposition components 662 may include location sensor components (e.g., a Global Position System (GPS) receiver component), altitude sensor components (e.g., altimeters or barometers that detect air pressure from which altitude may be derived), orientation sensor components (e.g., magnetometers), and the like. - Communication may be implemented using a wide variety of technologies. The I/
O components 650 may includecommunication components 664 operable to couple themachine 600 to anetwork 680 ordevices 670 via acoupling 682 and acoupling 672, respectively. For example, thecommunication components 664 may include a network interface component or other suitable device to interface with thenetwork 680. In further examples, thecommunication components 664 may include wired communication components, wireless communication components, cellular communication components, Near Field Communication (NFC) components, Bluetooth® components (e.g., Bluetooth® Low Energy), Wi-Fi® components, and other communication components to provide communication via other modalities. Thedevices 670 may be another machine or any of a wide variety of peripheral devices (e.g., a peripheral device coupled via a Universal Serial Bus (USB)). - Moreover, the
communication components 664 may detect identifiers or include components operable to detect identifiers. For example, thecommunication components 664 may include Radio Frequency Identification (RFID) tag reader components, NFC smart tag detection components, optical reader components (e.g., an optical sensor to detect one-dimensional bar codes such as Universal Product Code (UPC) bar code, multi-dimensional bar codes such as Quick Response (QR) code, Aztec code, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code, UCC RSS-2D bar code, and other optical codes), or acoustic detection components (e.g., microphones to identify tagged audio signals). In addition, a variety of information may be derived via thecommunication components 664, such as location via Internet Protocol (IP) geolocation, location via Wi-Fi® signal triangulation, location via detecting an NFC beacon signal that may indicate a particular location, and so forth. - In various example embodiments, one or more portions of the
network 680 may be an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a LAN, a wireless LAN (WLAN), a WAN, a wireless WAN (WWAN), a metropolitan area network (MAN), the Internet, a portion of the Internet, a portion of the Public Switched Telephone Network (PSTN), a POTS network, a cellular telephone network, a wireless network, a Wi-Fi® network, another type of network, or a combination of two or more such networks. For example, thenetwork 680 or a portion of thenetwork 680 may include a wireless or cellular network and thecoupling 682 may be a Code Division Multiple Access (CDMA) connection, a Global System for Mobile communications (GSM) connection, or another type of cellular or wireless coupling. In this example, thecoupling 682 may implement any of a variety of types of data transfer technology, such as Single Carrier Radio Transmission Technology (1×RTT), Evolution-Data Optimized (EVDO) technology, General Packet Radio Service (GPRS) technology, Enhanced Data rates for GSM Evolution (EDGE) technology, third Generation Partnership Project (3GPP) including 3G, fourth generation wireless (4G) networks. Universal Mobile Telecommunications System (UMTS), High Speed Packet Access (HSPA), Worldwide Interoperability for Microwave Access (WiMAX), Long Term Evolution (LTE) standard, others defined by various standard-setting organizations, other long-range protocols, or other data transfer technology. - The
instructions 616 may be transmitted or received over thenetwork 680 using a transmission medium via a network interface device (e.g., a network interface component included in the communication components 664) and utilizing any one of a number of well-known transfer protocols (e.g., hypertext transfer protocol (HTTP)). Similarly, theinstructions 616 may be transmitted or received using a transmission medium via the coupling 672 (e.g., a peer-to-peer coupling) to thedevices 670. The term “transmission medium” shall be taken to include any intangible medium that is capable of storing, encoding, or carrying theinstructions 616 for execution by themachine 600, and includes digital or analog communications signals or other intangible media to facilitate communication of such software. - Throughout this specification, plural instances may implement components, operations, or structures described as a single instance. Although individual operations of one or more methods are illustrated and described as separate operations, one or more of the individual operations may be performed concurrently, and nothing requires that the operations be performed in the order illustrated. Structures and functionality presented as separate components in example configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements fall within the scope of the subject matter herein.
- Although an overview of the inventive subject matter has been described with reference to specific example embodiments, various modifications and changes may be made to these embodiments without departing from the broader scope of embodiments of the present disclosure. Such embodiments of the inventive subject matter may be referred to herein, individually or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single disclosure or inventive concept if more than one is, in fact, disclosed.
- The embodiments illustrated herein are described in sufficient detail to enable those skilled in the art to practice the teachings disclosed. Other embodiments may be used and derived therefrom, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. The Detailed Description, therefore, is not to be taken in a limiting sense, 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.
- As used herein, the term “or” may be construed in either an inclusive or exclusive sense. Moreover, plural instances may be provided for resources, operations, or structures described herein as a single instance. Additionally, boundaries between various resources, operations, modules, engines, and data stores are somewhat arbitrary, and particular operations are illustrated in a context of specific illustrative configurations. Other allocations of functionality are envisioned and may fall within a scope of various embodiments of the present disclosure. In general, structures and functionality presented as separate resources in the example configurations may be implemented as a combined structure or resource. Similarly, structures and functionality presented as a single resource may be implemented as separate resources. These and other variations, modifications, additions, and improvements fall within a scope of embodiments of the present disclosure as represented by the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
- Certain embodiments are described herein as including logic or a number of components, modules, or mechanisms. Modules may constitute software modules (e.g., code stored or otherwise embodied on a machine-readable medium or in a transmission medium), hardware modules, or any suitable combination thereof. A “hardware module” is a tangible (e.g., non-transitory) unit capable of performing certain operations and may be configured or arranged in a certain physical manner. In various example embodiments, one or more computer systems (e.g., a standalone computer system, a client computer system, or a server computer system) or one or more hardware modules of a computer system (e.g., a processor or a group of processors) may be configured by software (e.g., an application or application portion) as a hardware module that operates to perform certain operations as described herein.
- In some embodiments, a hardware module may be implemented mechanically, electronically, or any suitable combination thereof. For example, a hardware module may include dedicated circuitry or logic that is permanently configured to perform certain operations. For example, a hardware module may be a special-purpose processor, such as a field programmable gate array (FPGA) or an ASIC. A hardware module may also include programmable logic or circuitry that is temporarily configured by software to perform certain operations. For example, a hardware module may include software encompassed within a general-purpose processor or other programmable processor. It will be appreciated that the decision to implement a hardware module mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.
- Accordingly, the phrase “hardware module” should be understood to encompass a tangible entity, and such a tangible entity may be physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner or to perform certain operations described herein. As used herein, “hardware-implemented module” refers to a hardware module. Considering embodiments in which hardware modules are temporarily configured (e.g., programmed), each of the hardware modules need not be configured or instantiated at any one instance in time. For example, where a hardware module comprises a general-purpose processor configured by software to become a special-purpose processor, the general-purpose processor may be configured as respectively different special-purpose processors (e.g., comprising different hardware modules) at different times. Software (e.g., a software module) may accordingly configure one or more processors, for example, to constitute a particular hardware module at one instance of time and to constitute a different hardware module at a different instance of time.
- Hardware modules can provide information to, and receive information from, other hardware modules. Accordingly, the described hardware modules may be regarded as being communicatively coupled. Where multiple hardware modules exist contemporaneously, communications may be achieved through signal transmission (e.g., over appropriate circuits and buses) between or among two or more of the hardware modules. In embodiments in which multiple hardware modules are configured or instantiated at different times, communications between such hardware modules may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware modules have access. For example, one hardware module may perform an operation and store the output of that operation in a memory device to which it is communicatively coupled. A further hardware module may then, at a later time, access the memory device to retrieve and process the stored output. Hardware modules may also initiate communications with input or output devices, and can operate on a resource (e.g., a collection of information).
- The various operations of example methods described herein may be performed, at least partially, 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 that operate to perform one or more operations or functions described herein. As used herein, “processor-implemented module” refers to a hardware module implemented using one or more processors.
- Similarly, the methods described herein may be at least partially processor-implemented, a processor being an example of hardware. For example, at least some of the operations of a method may be performed by one or more processors or processor-implemented modules. As used herein, “processor-implemented module” refers to a hardware module in which the hardware includes one or more processors. Moreover, the one or more processors may also operate to support performance of the relevant operations in a “cloud computing” environment or as a “software as a service” (SaaS). For example, at least some of the operations may be performed by a group of computers (as examples of machines including processors), with these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., an application programming interface (API)).
- The performance of certain operations may be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines. In some example embodiments, the one or more processors or processor-implemented modules may be located in a single geographic location (e.g., within a home environment, an office environment, or a server farm). In other example embodiments, the one or more processors or processor-implemented modules may be distributed across a number of geographic locations.
- Some portions of the subject matter discussed herein may be presented in terms of algorithms or symbolic representations of operations on data stored as bits or binary digital signals within a machine memory (e.g., a computer memory). Such algorithms or symbolic representations are examples of techniques used by those of ordinary skill in the data processing arts to convey the substance of their work to others skilled in the art. As used herein, an “algorithm” is a self-consistent sequence of operations or similar processing leading to a desired result. In this context, algorithms and operations involve physical manipulation of physical quantities. Typically, but not necessarily, such quantities may take the form of electrical, magnetic, or optical signals capable of being stored, accessed, transferred, combined, compared, or otherwise manipulated by a machine. It is convenient at times, principally for reasons of common usage, to refer to such signals using words such as “data,” “content,” “bits,” “values,” “elements,” “symbols,” “characters,” “terms,” “numbers,” “numerals,” or the like. These words, however, are merely convenient labels and are to be associated with appropriate physical quantities.
- Unless specifically stated otherwise, discussions herein using words such as “processing,” “computing,” “calculating,” “determining,” “presenting,” “displaying,” or the like may refer to actions or processes of a machine (e.g., a computer) that manipulates or transforms data represented as physical (e.g., electronic, magnetic, or optical) quantities within one or more memories (e.g., volatile memory, non-volatile memory, or any suitable combination thereof), registers, or other machine components that receive, store, transmit, or display information. Furthermore, unless specifically stated otherwise, the terms “a” or “an” are herein used, as is common in patent documents, to include one or more than one instance. Finally, as used herein, the conjunction “or” refers to a non-exclusive “or,” unless specifically stated otherwise.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/711,749 US20180089609A1 (en) | 2016-09-29 | 2017-09-21 | Skill validation system |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662401826P | 2016-09-29 | 2016-09-29 | |
US201662402955P | 2016-09-30 | 2016-09-30 | |
US201662402753P | 2016-09-30 | 2016-09-30 | |
US15/711,749 US20180089609A1 (en) | 2016-09-29 | 2017-09-21 | Skill validation system |
Publications (1)
Publication Number | Publication Date |
---|---|
US20180089609A1 true US20180089609A1 (en) | 2018-03-29 |
Family
ID=61686413
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/373,810 Abandoned US20180089734A1 (en) | 2016-09-29 | 2016-12-09 | Techniques for targeting endorsement requests |
US15/711,884 Active 2038-02-16 US11113738B2 (en) | 2016-09-29 | 2017-09-21 | Presenting endorsements using analytics and insights |
US15/711,749 Abandoned US20180089609A1 (en) | 2016-09-29 | 2017-09-21 | Skill validation system |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/373,810 Abandoned US20180089734A1 (en) | 2016-09-29 | 2016-12-09 | Techniques for targeting endorsement requests |
US15/711,884 Active 2038-02-16 US11113738B2 (en) | 2016-09-29 | 2017-09-21 | Presenting endorsements using analytics and insights |
Country Status (1)
Country | Link |
---|---|
US (3) | US20180089734A1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112070461A (en) * | 2020-08-19 | 2020-12-11 | 河北冀联人力资源服务集团有限公司 | Skill Guarantee Method |
US11048768B1 (en) * | 2019-05-03 | 2021-06-29 | William Kolbert | Social networking system with trading of electronic business cards |
US20210216942A1 (en) * | 2020-01-10 | 2021-07-15 | International Business Machines Corporation | Assessing an individual's competencies through social network analysis |
US20230359972A1 (en) * | 2022-05-03 | 2023-11-09 | Steady Platform Llc | Skills certification |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10515331B1 (en) * | 2016-05-27 | 2019-12-24 | Vega Factor Inc. | System and method for evaluating individuals and modeling compensation levels |
US11210637B2 (en) * | 2018-04-24 | 2021-12-28 | STEM-Away, Inc. | System and method for generating skill-centric online resumes with verifiable skills |
US11132414B2 (en) * | 2018-07-10 | 2021-09-28 | Metabyte, Inc. | Relationship and credibility based experience rating and skill discovery system |
US11182742B2 (en) | 2019-04-05 | 2021-11-23 | Nike, Inc. | Radio frequency identification scanning using the internet of things |
US11436542B2 (en) * | 2019-06-28 | 2022-09-06 | Microsoft Technology Licensing, Llc | Candidate selection using personalized relevance modeling system |
US11610161B2 (en) * | 2019-07-24 | 2023-03-21 | Microsoft Technology Licensing, Llc | Skill validation |
US20240402878A1 (en) * | 2023-06-05 | 2024-12-05 | Espar Consulting | Systems, methods, and graphical user interfaces for managing and sharing information associated with a digital log of extracurricular activities |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120197733A1 (en) * | 2011-01-27 | 2012-08-02 | Linkedln Corporation | Skill customization system |
US20130254305A1 (en) * | 2012-03-26 | 2013-09-26 | Linkedln Corporation | Techniques for identifying and presenting connection paths |
US20140129464A1 (en) * | 2012-07-20 | 2014-05-08 | Eyal Grayevsky | Method and System for Skill-Based Endorsement and Credential Validation Platform |
US20140129631A1 (en) * | 2012-11-08 | 2014-05-08 | Vinodh Jayaram | Skills endorsements |
US20140244335A1 (en) * | 2013-02-28 | 2014-08-28 | Linkedin Corporation | Techniques for deriving a social proximity score for use in allocating resources |
US8977687B2 (en) * | 2012-11-12 | 2015-03-10 | Linkedin Corporation | Techniques for enhancing a member profile with a document reading history |
US20160055597A1 (en) * | 2013-05-17 | 2016-02-25 | Kevin Berson | Reputation scoring system for project based professionals |
US9661039B2 (en) * | 2013-03-28 | 2017-05-23 | Linkedin Corporation | Recommending resources to members of a social network |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8010460B2 (en) * | 2004-09-02 | 2011-08-30 | Linkedin Corporation | Method and system for reputation evaluation of online users in a social networking scheme |
US8713000B1 (en) * | 2005-01-12 | 2014-04-29 | Linkedin Corporation | Method and system for leveraging the power of one's social-network in an online marketplace |
US9053329B2 (en) * | 2012-05-24 | 2015-06-09 | Lockbox Llc | Systems and methods for validated secure data access |
US9407719B2 (en) * | 2013-01-30 | 2016-08-02 | Linkedin Corporation | Batch connect |
US9178933B1 (en) * | 2013-05-31 | 2015-11-03 | Google Inc. | Content recommendation based on context |
US20150248739A1 (en) * | 2014-02-28 | 2015-09-03 | Linkedin Corporation | Recommendation system of educational opportunities to members in a social network |
US20160012395A1 (en) * | 2014-07-08 | 2016-01-14 | Morphlynx, Inc. | Human Capital Rating, Ranking and Assessment System and Method |
US20180012188A1 (en) * | 2015-01-29 | 2018-01-11 | Kramer Consulting Limited | System, method, and device for managing workforce relationships |
US20170032325A1 (en) * | 2015-07-31 | 2017-02-02 | Linkedln Corporation | Entity aware snippets |
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 |
US10360224B2 (en) * | 2016-03-28 | 2019-07-23 | International Business Machines Corporation | Image and data capture and machine learning for automatic generation of search queries |
-
2016
- 2016-12-09 US US15/373,810 patent/US20180089734A1/en not_active Abandoned
-
2017
- 2017-09-21 US US15/711,884 patent/US11113738B2/en active Active
- 2017-09-21 US US15/711,749 patent/US20180089609A1/en not_active Abandoned
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120197733A1 (en) * | 2011-01-27 | 2012-08-02 | Linkedln Corporation | Skill customization system |
US20130254305A1 (en) * | 2012-03-26 | 2013-09-26 | Linkedln Corporation | Techniques for identifying and presenting connection paths |
US20140129464A1 (en) * | 2012-07-20 | 2014-05-08 | Eyal Grayevsky | Method and System for Skill-Based Endorsement and Credential Validation Platform |
US20140129631A1 (en) * | 2012-11-08 | 2014-05-08 | Vinodh Jayaram | Skills endorsements |
US8977687B2 (en) * | 2012-11-12 | 2015-03-10 | Linkedin Corporation | Techniques for enhancing a member profile with a document reading history |
US20140244335A1 (en) * | 2013-02-28 | 2014-08-28 | Linkedin Corporation | Techniques for deriving a social proximity score for use in allocating resources |
US9661039B2 (en) * | 2013-03-28 | 2017-05-23 | Linkedin Corporation | Recommending resources to members of a social network |
US20160055597A1 (en) * | 2013-05-17 | 2016-02-25 | Kevin Berson | Reputation scoring system for project based professionals |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11048768B1 (en) * | 2019-05-03 | 2021-06-29 | William Kolbert | Social networking system with trading of electronic business cards |
US20210216942A1 (en) * | 2020-01-10 | 2021-07-15 | International Business Machines Corporation | Assessing an individual's competencies through social network analysis |
CN112070461A (en) * | 2020-08-19 | 2020-12-11 | 河北冀联人力资源服务集团有限公司 | Skill Guarantee Method |
US20230359972A1 (en) * | 2022-05-03 | 2023-11-09 | Steady Platform Llc | Skills certification |
Also Published As
Publication number | Publication date |
---|---|
US11113738B2 (en) | 2021-09-07 |
US20180089607A1 (en) | 2018-03-29 |
US20180089734A1 (en) | 2018-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10380552B2 (en) | Applicant skills inference for a job | |
US20180089609A1 (en) | Skill validation system | |
US10990899B2 (en) | Deep and wide machine learned model for job recommendation | |
US10984365B2 (en) | Industry classification | |
US11436522B2 (en) | Joint representation learning of standardized entities and queries | |
US10565562B2 (en) | Hashing query and job posting features for improved machine learning model performance | |
US10346928B2 (en) | Ranking members based on influence score | |
US10726025B2 (en) | Standardized entity representation learning for smart suggestions | |
US20170154313A1 (en) | Personalized job posting presentation based on member data | |
US10133993B2 (en) | Expert database generation and verification using member data | |
US10855784B2 (en) | Entity based search retrieval and ranking | |
US20190019157A1 (en) | Generalizing mixed effect models for personalizing job search | |
US20170300862A1 (en) | Machine learning algorithm for classifying companies into industries | |
US10586157B2 (en) | Skill-based title prediction model | |
US10990754B2 (en) | Writing personalized electronic messages using template-based and machine-learning approaches | |
US20180060387A1 (en) | Entity based query filtering | |
US20170154311A1 (en) | Recommending position qualifications | |
US20190258739A1 (en) | Smart suggestions personalization with glmix | |
US20170344902A1 (en) | Parent Company Industry Classifier | |
US10459901B2 (en) | Embedded deep representation of social network taxonomy | |
US20180052850A1 (en) | Personalized message delivery system | |
US10459988B2 (en) | Calculating supply and demand for a field of study | |
US10037359B2 (en) | Search results using social routing of content | |
US10423630B2 (en) | Presenting a profile card relevant to a member of a social network | |
US20170323397A1 (en) | Publisher for generating a profile timeline |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: LINKEDIN CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CHEN, ALBERT C.;YEH, YO-TZU;BAI, JOEY;AND OTHERS;SIGNING DATES FROM 20170918 TO 20170920;REEL/FRAME:043657/0427 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LINKEDIN CORPORATION;REEL/FRAME:044746/0001 Effective date: 20171018 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |