US20230086724A1 - Mining training data for training dependency model - Google Patents
Mining training data for training dependency model Download PDFInfo
- Publication number
- US20230086724A1 US20230086724A1 US17/412,753 US202117412753A US2023086724A1 US 20230086724 A1 US20230086724 A1 US 20230086724A1 US 202117412753 A US202117412753 A US 202117412753A US 2023086724 A1 US2023086724 A1 US 2023086724A1
- Authority
- US
- United States
- Prior art keywords
- skill
- target
- pairs
- online
- target skill
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/105—Human resources
- G06Q10/1053—Employment or hiring
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G06N5/003—
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/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
Definitions
- the present application relates generally to training artificial intelligence models for use in determining dependency relations.
- a user account will include or be associated with a user profile—a digital representation of a person's identity.
- a user profile may include a wide variety of information about the user, which may vary significantly depending upon the particular type and nature of the online service.
- a user's profile may include information such as: first and last name, e-mail address, age, location of residence, a summary of the user's educational background, job history, and/or experiences, as well as individual skills possessed by the user.
- a user profile may include a combination of structured and unstructured data. For example, whereas a user's age may be stored in a specific data field as structured data, other profile information may be inferred from a free form text field such as a summary of a user's experiences.
- some portions of a user profile such as an e-mail address, may be mandatory—that is, the online service may require the user to provide such information in order to register and establish an account—other portions of a user profile may be optional.
- the quality of the experience a user has with a particular online service may vary significantly based on the extent to which the user has provided information to complete his or her user profile. Generally, the more complete a user profile is, the more satisfied the user is likely to be with various features and functions of the online service. By way of example, consider the extent to which a user has listed in his or her profile for a professional social networking service the skills possessed by the user. In the context of an online service, a variety of content-related and recommendation services utilize various aspects of a user's profile information—particularly skills—for targeting users to receive various content and for generating recommendations.
- a content selection and ranking algorithm associated with a news feed may select and/or rank content items for presentation in the user's personalized content feed based on the extent to which the subject matter of a content item matches the perceived interests of the user.
- the user's perceived interests may be based at least in part on the skills that he or she has listed in his or her profile.
- a job-related search engine and/or recommendation service may select and/or rank job postings for presentation to a user based in part on skills listed in a profile of the user.
- a recommendation service for online courses may generate course recommendations for a user based at least in part on the skills that the user lists in his or her profile. Accordingly, the value of these services to the user can be significantly greater when the user has completed his or her profile by adding his or her skills. Specifically, with a completed profile and accurate list of skills, the user is more likely to receive relevant information that is of interest to the user.
- a cartography is a map that represents the transition paths between entities according to dependency relations. Building a cartography for skills to be used by an online service is extremely computationally expensive, given that there are more than 40,000 skills, resulting in over one billion skill pairs to process. These technical problems prevent online services from accurately and efficiently accounting for dependency relations between skills.
- FIG. 1 is a block diagram illustrating functional components of an online service, in accordance with an example embodiment.
- FIG. 2 illustrates a transition path of skills, in accordance with an example embodiment.
- FIG. 3 illustrates a graphical user interface (GUI) in which a sequential playlist of online courses available to users for viewing via an online service is displayed, in accordance with an example embodiment.
- GUI graphical user interface
- FIG. 4 illustrates a GUI in which a user may add one or more specialties to a profile of the user, in accordance with an example embodiment.
- FIG. 5 illustrates a GUI in which an online job posting is displayed, in accordance with an example embodiment.
- FIG. 6 illustrates a directed graph, in accordance with an example embodiment.
- FIG. 7 illustrates a GUI in which selectable user interface elements for online courses are displayed, in accordance with an example embodiment.
- FIG. 8 illustrates a GUI in which user interface elements that identify profiles of users are displayed, in accordance with an example embodiment.
- FIG. 9 is a flowchart illustrating a method of training artificial intelligence models for use in determining dependency relations, in accordance with an example embodiment.
- FIG. 10 is a flowchart illustrating another method of training artificial intelligence models for use in determining dependency relations, in accordance with an example embodiment.
- FIG. 11 is a block diagram illustrating a software architecture, in accordance with an example embodiment.
- FIG. 12 illustrates a diagrammatic representation of a machine in the form of a computer system within which a set of instructions may be executed for causing the machine to perform any one or more of the methodologies discussed herein, in accordance with an example embodiment.
- Example methods and systems of training artificial intelligence models for use in determining dependency relations are disclosed.
- numerous specific details are set forth in order to provide a thorough understanding of example embodiments. It will be evident, however, to one skilled in the art that the present embodiments may be practiced without these specific details.
- a specially-configured computer system is configured to use a two-stage approach to tackle the large-scale skill dependency task by using a light feature-based model to identify dependency relations between skill pairs in a first stage and using a more sophisticated model to determine relation directions in a second stage.
- the two-stage approach of the present disclosure outperforms other alternative state-of-the-art methods in terms of both accuracy and speed, enabling the computer system of an online service to accurately and efficiently process over one billion skill pairs.
- the computer system generates training data comprising a plurality of reference skill pairs, with each reference skill pair comprising a corresponding first reference skill and a corresponding second reference skill.
- the plurality of reference skill pairs are included in the training data based on a co-occurrence of the corresponding first and second reference skills for each reference skill pair in the plurality of reference skill pairs.
- the co-occurrence comprises the corresponding first and second reference skills co-occurring for a same entity, such as being included in the same sequential playlist of online courses, being included in the same history of online courses watched by a user, being added to the same user profile, or being included in the same online job posting.
- the computer system trains a dependency model with a first machine learning algorithm using the training data, where the dependency model comprises a logistic regression model or a data gradient boosted decision tree (GBDT) model, and also trains a Bidirectional Encoder Representations from Transformers (BERT) model with a second machine learning algorithm using the training data.
- the dependency model comprises a logistic regression model or a data gradient boosted decision tree (GBDT) model
- GBDT data gradient boosted decision tree
- BERT Bidirectional Encoder Representations from Transformers
- the computer system identifies a corresponding dependency relation for each target skill pair in a plurality of target skill pairs using the dependency model, with each target skill pair in the plurality of target skill pairs comprising a corresponding first target skill and a corresponding second target skill, and the corresponding dependency relation being between the corresponding first and second target skills of the corresponding target skill pair.
- the computer system determines a corresponding relation direction using the BERT model. Then, the computer system uses the corresponding identified dependency relation and determined relation direction for at least a portion of the plurality of target skill pairs in an application of an online service.
- the term “reference” is used herein to indicate data and entities being used or involved in the training of models.
- target is used herein to indicate data and entities being used or involved in the use of the trained models.
- the methods or embodiments disclosed herein may be implemented as a computer system having one or more components implemented in hardware or software.
- the methods or embodiments disclosed herein may be embodied as instructions stored on a machine-readable medium that, when executed by one or more hardware processors, cause the one or more hardware processors to perform the instructions.
- FIG. 1 is a block diagram illustrating functional components of an online service 100 , in accordance with an example embodiment.
- a front end may comprise one or more user interface components (e.g., a web server) 102 , which receives requests from various client computing devices and communicates appropriate responses to the requesting client devices.
- the user interface component(s) 102 may receive requests in the form of Hypertext Transfer Protocol (HTTP) requests or other web-based API requests.
- HTTP Hypertext Transfer Protocol
- a user interaction detection component 104 sometimes referred to as a click tracking service, may be provided to detect various interactions that end-users have with different applications and services, such as those included in the application logic layer of the online service 100 .
- FIG. 1 is a block diagram illustrating functional components of an online service 100 , in accordance with an example embodiment.
- a front end may comprise one or more user interface components (e.g., a web server) 102 , which receives requests from various client computing devices and communicates appropriate responses to the requesting client devices.
- the user interaction detection component 104 upon detecting a particular interaction, logs the interaction, including the type of interaction and any metadata relating to the interaction, in an end-user activity and behavior database 120 . Accordingly, data from this database 120 can be further processed to generate data appropriate for training one or more machine-learned models, and in particular, for training models to rank a set of skills for an end-user.
- An application logic layer may include one or more application server components 106 , which, in conjunction with the user interface component(s) 102 , generate various user interfaces (e.g., web pages) with data retrieved from various data sources in a data layer. Consistent with some embodiments, individual application server components 106 implement the functionality associated with various applications and/or services provided by the online service 100 . For instance, as illustrated in FIG. 1 , the application logic layer includes a variety of applications and services to include a search engine 108 , one or more recommendation applications 110 (e.g., a job recommendation application, an online course recommendation application), and a profile update service 112 .
- the various applications and services illustrated as part of the application logic layer are provided as examples and are not meant to be an exhaustive listing of all applications and services that may be integrated with and provided as part of the online service 100 .
- the online service 100 may also include a job hosting service via which end-users submit job postings that can be searched by end-users, and/or recommended to other end-users by the recommendation application(s) 110 .
- the user interaction detection component 104 detects and tracks the end-user interactions, logging relevant information for subsequent use.
- the data layer may include several databases, such as a profile database 116 for storing profile data, including both end-user profile data and profile data for various organizations (e.g., companies, schools, etc.).
- a profile database 116 for storing profile data, including both end-user profile data and profile data for various organizations (e.g., companies, schools, etc.).
- the person when a person initially registers to become an end-user of the online service, the person will be prompted by the profile update service 112 to provide some personal information, such as his or her name, age (e.g., birthdate), gender, interests, contact information, home town, address, spouse's and/or family members' names, educational background (e.g., schools, majors, matriculation and/or graduation dates, etc.), employment history, skills, professional organizations, and so on.
- age e.g., birthdate
- interests e.g., contact information
- home town e.g., address
- educational background
- This information is stored, for example, in the profile database 116 .
- the representative may be prompted to provide certain information about the organization. This information may be stored, for example, in the profile database 116 , or another database (not shown).
- an end-user may invite other end-users, or be invited by other end-users, to connect via the online service 100 .
- a “connection” may constitute a bilateral agreement by the end-users, such that both end-users acknowledge the establishment of the connection.
- an end-user may elect to “follow” another end-user.
- the concept of “following” another end-user typically is a unilateral operation and, at least with some embodiments, does not require acknowledgement or approval by the end-user that is being followed.
- the end-user may receive status updates relating to the other end-user, or other content items published or shared by the other end-user user who is being followed.
- the end-user when an end-user follows an organization, the end-user becomes eligible to receive status updates relating to the organization as well as content items published by, or on behalf of, the organization. For instance, content items published on behalf of an organization that an end-user is following will appear in the end-user's personalized feed, sometimes referred to as a content feed or news feed.
- the various associations and relationships that the end-users establish with other end-users, or with other entities (e.g., companies, schools, organization) and objects (e.g., metadata hashtags (“#topic”) used to tag content items), are stored and maintained within a social graph in a social graph database 118 .
- the end-users' interactions and behaviors e.g., content viewed, links or buttons selected, messages responded to, job postings viewed, etc.
- the user interaction detection component 104 As end-users interact with the various content items that are presented via the applications and services of the online service 100 , the end-users' interactions and behaviors (e.g., content viewed, links or buttons selected, messages responded to, job postings viewed, etc.) are tracked by the user interaction detection component 104 , and information concerning the end-users' activities and behaviors may be logged or stored, for example, as indicated in FIG. 1 by the end-user activity and behavior database 120 .
- data stored in the various databases of the data layer may be accessed by one or more software agents or applications executing as part of a distributed data processing service 124 , which may process the data to generate derived data.
- the distributed data processing service 124 may be implemented using Apache Hadoop® or some other software framework for the processing of extremely large data sets. Accordingly, an end-user's profile data and any other data from the data layer may be processed (e.g., in the background or offline) by the distributed data processing service 124 to generate various derived profile data.
- this profile information can be used to infer or derive an end-user profile attribute indicating the end-user's overall seniority level or seniority level within a particular organization.
- This derived data may be stored as part of the end-user's profile or may be written to another database.
- one or more software agents or applications executing as part of the distributed data processing service 124 may ingest and process data from the data layer for the purpose of generating training data for use in training various machine-learned models, and for use in generating features for use as input to the trained models. For instance, profile data, social graph data, and end-user activity and behavior data, as stored in the databases of the data layer, may be ingested by the distributed data processing service 124 and processed to generate data properly formatted for use as training data for training one of the aforementioned machine-learned models for ranking skills. Similarly, the data may be processed for the purpose of generating features for use as input to the machine-learned models when ranking skills for a particular end-user.
- the derived data and features are generated, they are stored in a database 122 , where such data can easily be accessed via calls to a distributed database service 124 .
- the application logic layer of the online service 100 also comprises an artificial intelligence component 114 that is configured to train and use a first artificial intelligence model to determine whether there is a dependency relation between a pair of skills (also referred to herein as a “skill pair”).
- the artificial intelligence component 114 may also be configured to train and use a second artificial intelligence model to determine a relation direction for the skill pair for which a dependency relation was identified by the first artificial intelligence model.
- the artificial intelligence component 114 is configured to build a cartography of skills.
- the cartography of skills is a map of skills that comprises transition paths between skills according to dependency relations identified by the artificial intelligence component 114 .
- the transitivity rule does not necessarily hold: skill A can depend on B, and skill B can depend on C, but it does necessarily mean that skill A depends on skill C.
- the skill dependency relation implies one skill helps a person learn (or otherwise leads to) another skill at a later time, such that the temporal ordering matters. For example, people usually acquire the skill “machine learning” before the skill “neural networks,” but usually not the other way around.
- FIG. 2 illustrates a transition path of skills 200 , in accordance with an example embodiment. In FIG.
- the transition path of skills 200 includes a transition from the skill “cashiering” to the skill “sales,” a transition from the skill “sales” to the skill “sales assessments,” a transition from the skill “sales assessments” to the skill “customer experience,” a transition from the skill “customer experience” to the skill “internal customers,” a transition from the skill “internal customers” to the skill “client rapport,” a transition from the skill “client rapport” to the skill “constructive feedback,” a transition from the skill “constructive feedback” to the skill “note taking,” and a transition from the skill “note taking” to the skill “data entry.”
- the artificial intelligence component 114 constructs the cartography of skills by generating a directed graph with edges representing dependency relations. For example, given a pool of S skills: s 1 , s 2 , . . . , s S , the artificial intelligence component 114 may be configured to output a directed graph G with edges between skill s i and skill s j if and only if s i ⁇ s j , where ⁇ means the skill s i depends upon the skill s j .
- Skill pairs can be labelled as a positive example or as a negative example.
- a positive example of a skill pair is a skill pair in which there is a dependency relation between the two skills of the skill pair, whereas a negative example of a skill pair is a skill pair in which there is not a dependency relation between the two skills of the skill pair.
- the vast majority (more than 99.99%) of those skill pairs would be negative examples.
- the artificial intelligence component 114 implements a novel data mining pipeline to select the most promising positive skill pairs from different distinct sources.
- the artificial intelligence component 114 is configured to generate training data comprising a plurality of reference skill pairs, with each reference skill pair comprising a corresponding first reference skill and a corresponding second reference skill.
- the plurality of reference skill pairs may be included in the training data based on a co-occurrence of the corresponding first and second reference skills for each reference skill pair in the plurality of reference skill pairs.
- the co-occurrence comprises the corresponding first and second reference skills co-occurring for a same entity, such that the plurality of reference skill pairs are included in the training data based on a determination that the corresponding first reference skill occurred for an entity and a determination that the corresponding second reference skill occurred for the same entity as the corresponding first reference skill.
- the plurality of reference skill pairs being included in the training data is further based on a corresponding indication of a temporal order of the corresponding first and second reference skills for the same entity for each reference skill pair in the plurality of reference skill pairs.
- the plurality of reference skill pairs may be included in the training data based on an indication of a chronological sequence including the occurrence of the corresponding first reference skill for an entity and the occurrence of the corresponding second reference skill for the same entity.
- FIG. 3 illustrates a graphical user interface (GUI) 300 in which a sequential playlist of online courses available to users for viewing via the online service 100 is displayed, in accordance with an example embodiment.
- the GUI 300 may display corresponding selectable user interface elements 310 for each online course in the sequential playlist of online courses.
- each selectable user interface element 310 is configured to, in response to its selection by a user, trigger a playing of a multimedia file of the corresponding online course on a computing device of the user or initiate an online process for playing the multimedia file of the corresponding online course on the computing device of the user.
- Each online course in the sequential playlist of online courses has one or more corresponding reference skills associated with it. These associations may be stored in a database of the online service 100 .
- the artificial intelligence component 114 is configured to mine skill pairs from each sequential playlist of online courses.
- the logic behind mining reference skill pairs from sequential playlists is that reference skills covered by the later online courses should be more likely to depend upon the reference skills covered by the earlier online courses in the same sequential playlist. Therefore, by converting online course sequences into course pairs, the artificial intelligence component 114 can map them into reference skill pairs and then count the co-occurrences of each reference skill pair.
- the artificial intelligence component 114 uses the following Algorithm 1 to generate the reference skill pairs of the training data:
- Offset of skill pair counts is X ⁇ 0 and threshold of count ratio is ⁇ .
- skill pairs S ⁇ (s i , s i ′ ) ⁇ that likely satisfies s i ⁇ s i ′ .
- the offset X is introduced to remove noise.
- Both X and 0 are hyper-parameters that can be tuned.
- Another example of a temporal order is found in a history of online courses that have been watched by a user of the online service 100 .
- the history of online courses that have been watched by the user is behavior data that is generated when the user watches an online course via the online service 100 .
- Most users tend to start learning from something easy to something hard, so the temporal order in which user watched online courses may be used by the artificial intelligence component 114 as a signal that reflects skill dependency relationships.
- the artificial intelligence component may use Algorithm 1 to mine reference skill pairs from the history of online courses watched by users, except that the reference skill pairs may be aggregated over users instead of over learning paths, resulting in large counts of co-occurrence.
- the same entity comprises a history of online courses that have been watched by a user of the online service 199 .
- the history of online courses may be stored in association with the user, where the first reference skill is associated with a first online course in the history of online courses and the second reference skill is associated with a second online course in the history of online courses.
- the history of online courses that have been watched by the user may be stored in and accessed from the database 120 .
- Another example of a temporal order is found in a history of a user adding skills to a profile of the user. Users of the online service 100 can add skills they have to their profile, and often times skills are added in temporal ordering at different sessions. When most people added skill s i ′ later than s i on their profiles, it is more likely that skill is dependent upon skill Based on this assumption, the artificial intelligence component 114 may convert skill sequences into reference skill pairs for each user before repeating the same procedure for all skill pairs (s i , s i ′) in Algorithm 1 to extract the most likely reference skill pairs for skill dependency.
- the same entity comprises a history of a user adding skills to a profile of the user.
- the profile may be stored in a database of the online service 100 , such as in the database 116 .
- FIG. 4 illustrates a GUI 400 in which a user may add one or more skills to a profile of the user, in accordance with an example embodiment.
- the profile update service 112 displays the GUI 400 , including a corresponding selectable user interface element 410 for each one of a plurality of skills.
- the selectable user interface element 410 is configured to trigger storing of the corresponding skill as part of a profile of the user in response to a selection of the corresponding selectable user interface element 410 .
- selection of the selectable user interface element 410 of one of the skills may result in the skill being stored in the database 116 in association with the profile of the user.
- the online service 100 may record instance of the user adding the skill as part of the history of the user adding skills to the profile of the user.
- the recorded instance may include the skill that was added and a corresponding timestamp for the addition.
- the history of the user adding skills to the profile of the user may be stored in and accessed from the database 116 or from the database 120 .
- the same entity comprises an online job posting that includes the first reference skill and the second reference skill.
- FIG. 5 illustrates a GUI 500 in which an online job posting is displayed, in accordance with an example embodiment.
- the job posting comprises headline information 510 and detailed information 512 .
- the headline information 510 comprises basic information about the job posting, such as the job title or position (e.g., “SENIOR SOFTWARE DESIGNER”), the name of the company or organization seeking applicants for the job title or position (e.g., “LINKEDIN”), and the location of the job (e.g., “SAN FRANCISCO BAY AREA”).
- the detailed information 512 comprises more detailed information about the job, including, but not limited to, a job description, a seniority level of the job, one or more industries to which the job corresponds, an employment type for the job, and requirements for the job.
- the GUI 500 also comprises a selectable user interface element 520 configured to enable a user who is viewing the job posting to submit a job application for the job posting.
- the selectable user interface element 520 comprises a selectable button or link (e.g., the selectable “APPLY” button in FIG. 5 ) that is configured to, when selected, trigger the online service 100 to display another GUI in which the user can submit an application for the job posting.
- Other configurations of online job postings are also within the scope of the present disclosure.
- One or more skills may be included in the online job posting, such as part of the title, the job description, the industry, and the requirements for the job.
- the artificial intelligence component 114 may detect the co-occurrence of the first reference skill and the second reference skill in the same online job posting.
- the artificial intelligence component 114 is configured to train a dependency model with a first machine learning algorithm using the training data.
- the dependency model may comprise a logistic regression model or a data gradient boosted decision tree (GBDT) model. However, other types of machine learning models may be used as the dependency model.
- the dependency model is trained to determine, given a target skill pair as an input, whether there is a dependency relation between the first target skill and the second target skill of the target skill pair.
- the artificial intelligence component 114 is configured to train a Bidirectional Encoder Representations from Transformers (BERT) model with a second machine learning algorithm using the training data.
- BERT Bidirectional Encoder Representations from Transformers
- Other types of machine learning models may be used in place of the BERT model.
- BERT is a transformer-based machine learning technique for natural language processing.
- the BERT model is trained to determine the relation direction (e.g., which skill depends upon which skill) for a skill pair.
- the artificial intelligence component 114 is configured to identify a corresponding dependency relation for each target skill pair in a plurality of target skill pairs using the dependency model.
- Each target skill pair in the plurality of target skill pairs may comprise a corresponding first target skill and a corresponding second target skill, where the corresponding dependency relation is between the corresponding first and second target skills of the corresponding target skill pair.
- the artificial intelligence component 114 may input the plurality of target skill pairs into the dependency model, and the dependency model may output, for each target skill pair, a classification of the target skill pair as either having a dependency relation or not having a dependency relation.
- the dependency model may compute a probability value representing the probability that there is a dependency relation between the corresponding first target skill and the corresponding second target skill of the target skill pair, and then classify the target skill pair as having a dependency relation if the probability value satisfies a threshold value (e.g., if the probability value is equal to or greater than 0.5).
- a threshold value e.g., if the probability value is equal to or greater than 0.5
- the artificial intelligence component 114 is configured to, for each target skill pair in the plurality of target skill pairs, determine a corresponding relation direction using the BERT model.
- the artificial intelligence component 114 may input the plurality of target skill pairs into the BERT model, and the BERT model may output, for each target skill pair, a classification of the direction of the dependency relation between the corresponding first target skill and the corresponding second target skill of the target skill pair.
- the BERT model may generate an output that either classifies the first target skill as depending on the second target skill or classifies the second target skill as depending on the first target skill.
- one or more of the application components 106 are configured to use the corresponding identified dependency relation and determined relation direction for at least a portion of the plurality of target skill pairs in an application of the online service 100 .
- the online service 100 may use the corresponding identified dependency relation and determined relation direction for at least a portion of the plurality of target skill pairs in one or more of the application components 106 .
- the online service 100 uses the corresponding identified dependency relation and determined relation direction for at least a portion of the plurality of target skill pairs in the profile update service 112 .
- the profile update service 112 may determine that a profile of a target user of the online service 100 includes the corresponding first target skill of each target skill pair in the at least a portion of the plurality of target skill pairs.
- the profile update service 112 may then select the corresponding second target skill of each target skill pair in the at least a portion of the plurality of target skill pairs based on the corresponding identified dependency relation and determined relation direction for the at least a portion of the plurality of target skill pairs, and display, on a computing device of the target user, a corresponding selectable user interface element for each selected second target skill in the at least a portion of the plurality of target skill pairs, such as previously discussed with respect to FIG. 4 .
- the corresponding selectable user interface element may be configured to trigger storing of the corresponding second target skill as part of the profile of the target user in response to a selection of the corresponding selectable user interface element.
- the online service 100 uses the corresponding identified dependency relation and determined relation direction for at least a portion of the plurality of target skill pairs in presenting recommendations of online job postings to a target user.
- the recommendation application 110 may determine that a profile of a target user of the online service 100 includes the corresponding first target skill of each target skill pair in the at least a portion of the plurality of target skill pairs, and also determine that an online job posting includes the corresponding second target skill of each target skill pair in the at least a portion of the plurality of target skill pairs.
- the recommendation application 110 may select the online job posting based on the determination that the profile of the target user includes the corresponding first target skill of each target skill pair in the at least a portion of the plurality of target skill pairs, the determination that the online job posting includes the corresponding second target skill of each target skill pair in the at least a portion of the plurality of target skill pairs, and the corresponding identified dependency relation and determined relation direction for the at least a portion of the plurality of target skill pairs. Then, the recommendation application 110 may display, on a computing device of the target user, a corresponding selectable user interface element for the online job posting based on the selecting the online job posting.
- the corresponding selectable user interface element may be configured to, in response to its selection, trigger a display of details of the online job posting on the computing device of the target user or initiate an online application process for the online job posting on the computing device of the target user.
- the artificial intelligence component 114 is configured to generate a directed graph using the corresponding identified dependency relation and determined relation direction for the plurality of target skill pairs.
- FIG. 6 illustrates a directed graph 600 , in accordance with an example embodiment.
- the directed graph 600 comprises a plurality of vertices representing skills (e.g., skill-1, skill-2, . . . , skill-12 in FIG. 6 ).
- the directed graph 600 also includes directed edges representing the relation direction between skills. For example, in FIG. 6 , the directed edge going from skill-1 to skill-3 represents skill-3 depending on skill-1, but not skill-1 depending on skill-3.
- the online service 100 uses the following Algorithm 2 to generate the directed graph:
- the input is all of the identified skill pairs Sin a directed dependency relationship, where each skill pair comes with a confidence score from the dependency model, denoting how likely it is that a dependency relationship can be inferred between them.
- the artificial intelligence component 114 adds all skills from S to obtain a list of nodes V.
- the artificial intelligence component 114 constructs a directed edge E i from s i to s i ′ and adds all directed edges from skill pairs S to obtain a list of edges E, thereby obtaining a directed graph G(V, E), which may contain cycles.
- the artificial intelligence component 114 may perform pruning to remove the cycles.
- the artificial intelligence component 114 For each node in V, the artificial intelligence component 114 starts traversing the directed graph with depth first search (DFS) and stores all edges that can form a cycle in a map I, where the key is the edge, and the value is a list of cycles this edge is part of.
- the artificial intelligence component 114 sorts the edges in I by the confidence score from the dependency model in ascending order. Then, the artificial intelligence component 114 starts removing the edge with the lowest score in I and update the cycles in I every time an edge is removed, until no cycle is left, resulting in a directed acyclic graph.
- the artificial intelligence component 114 may generate the directed graph using other algorithms as well.
- the online service 100 uses the corresponding identified dependency relation and determined relation direction for at least a portion of the plurality of target skill pairs in presenting recommendations of online courses to a target user.
- the recommendation application 110 may determine that a profile of a target user of the online service includes the corresponding first target skill of each target skill pair in the at least a portion of the plurality of target skill pairs, and also determines that an online course includes the corresponding second target skill of each target skill pair in the at least a portion of the plurality of target skill pairs.
- the recommendation application 110 may select the online course based on the determining that the profile of the target user includes the corresponding first target skill of each target skill pair in the at least a portion of the plurality of target skill pairs, the determining that the online course includes the corresponding second target skill of each target skill pair in the at least a portion of the plurality of target skill pairs, and the corresponding identified dependency relation and determined relation direction for the at least a portion of the plurality of target skill pairs.
- the recommendation application 110 may then display, on a computing device of the target user, a corresponding selectable user interface element for the online course based on the selecting the online course.
- the corresponding selectable user interface element may be configured to, in response to its selection, trigger a playing of a multimedia file of the online course on the computing device or initiate an online process for playing the multimedia file of the online course on the computing device.
- FIG. 7 illustrates a GUI 700 in which selectable user interface elements for online courses are displayed, in accordance with an example embodiment.
- the GUI 700 may display indications 710 of online courses, such as the names and other details of the online courses.
- each indication 710 comprises a corresponding selectable user interface element configured to, in response to its selection, trigger an online process for playing the online course on the computing device of the target user.
- the GUI 700 may also include a search field 720 configured to receive a search query from a user.
- the search engine 108 may generate search results for the search query.
- the user may enter one or more skills or subjects for which the user would like to view an online course and submit the entered skill(s) or subject(s) as a search query.
- the search engine 108 may then perform a search of available online courses using the submitted search query and return matching online courses as search results in the GUI 700 .
- the online service 100 uses the corresponding identified dependency relation and determined relation direction for at least a portion of the plurality of target skill pairs in presenting search results to a searching user, such as by displaying potential job candidates to a recruiter.
- the search engine 108 may receive a search query submitted by a second target user, such as a recruiter.
- the search query may include the second target skill of a target skill pair.
- a profile of a first target user does not include the second target skill
- the profile of the first target user includes a first target skill, which forms the target skill pair along with the second target skill.
- the search engine 108 may select the profile of the first target user as a search result for the search query based on a determination that the profile of the first target user includes the first target skill, a determination that there is a dependency relation between the first target skill and the second target skill, and a determination that a relation direction of the target skill pair comprises the first target skill being dependent on the second target skill.
- the search engine 108 still selects the profile of the first target user because the inclusion of the first target skill in the profile of the first target user is predictive of the first target user actually having the second target skill because the first target skill depends on the second target skill according to the dependency relation and the relation direction of the target skill pair.
- the search engine 108 may treat the profile of the first target user as including the second target skill based on the dependency relation and the relation direction of the target skill pair. The search engine 108 may then display, on a computing device of the second target user, a user interface element that identifies the profile of the first target user based on selecting the profile of the first target user, such as shown in FIG. 8 .
- the search engine 108 does not treat the profile of the first target user as including the second target skill even though a dependency relation between the first target skill and the second target skill has been identified, since the relation direction of the target skill pair may indicate an order in which the first target skill and the second target skill occur, such as an order in which the first target skill and the second target skill are learned or acquired.
- FIG. 8 illustrates a GUI 800 in which user interface elements that identify profiles of users are displayed, in accordance with an example embodiment.
- the search engine 108 is configured to select profiles of users that are potential job candidates based at least in part on a search query submitted by a user who is searching (referred to as a “searching user”) for potential job candidates, and to cause the selected profiles of the users to be displayed on a search results page of the GUI 800 to the searching user.
- the searching user e.g., a recruiter
- the searching user may submit the term(s) by either entering text into a search field 820 or by using a custom search filters panel 830 via which the searching user may select and enter the terms based on the corresponding category of the terms (e.g., job titles, locations, skills, companies, schools).
- the search engine 108 may cause user interface elements 810 that identify the selected profiles to be displayed on the search results page.
- the search engine 108 may still select the profile of the target user based on a first target skill being included in the profile of the target user and the first target skill being dependent on the second target skill according to the dependency relation and the relation direction of the first target skill and the second target skill.
- FIG. 9 is a flowchart illustrating a method 900 of training artificial intelligence models for use in determining dependency relations, in accordance with an example embodiment.
- the method 900 can be performed by processing logic that can comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions run on a processing device), or a combination thereof.
- the method 900 is performed by the online service 100 of FIG. 1 , or any combination of one or more of its components (e.g., the artificial intelligence component 114 , the application component 106 ), as described above.
- the online service 100 generates, or otherwise obtains, training data comprising a plurality of reference skill pairs, with each reference skill pair comprising a corresponding first reference skill and a corresponding second reference skill.
- the plurality of reference skill pairs are included in the training data based on a co-occurrence of the corresponding first and second reference skills for each reference skill pair in the plurality of reference skill pairs.
- the co-occurrence may comprise the corresponding first and second reference skills co-occurring for a same entity, such that the plurality of reference skill pairs are included in the training data based on a determination that the corresponding first reference skill occurred for an entity and a determination that the corresponding second reference skill occurred for the same entity as the corresponding first reference skill.
- the plurality of reference skill pairs being included in the training data is further based on a corresponding indication of a temporal order of the corresponding first and second reference skills for the same entity for each reference skill pair in the plurality of reference skill pairs.
- the plurality of reference skill pairs may be included in the training data based on an indication of a chronological sequence including the occurrence of the corresponding first reference skill for an entity and the occurrence of the corresponding second reference skill for the same entity.
- Examples of the indication of the chronological sequence include, but are not limited to, a sequential playlist of online courses available to users for viewing, a history of online courses that have been watched by a user, and a history of a user adding skills to a profile of the user.
- the same entity comprises a sequential playlist of online courses available to users for viewing via the online service.
- the same entity may comprise the sequential playlist discussed above with respect to FIG. 3 .
- the first reference skill may be associated with a first online course in the sequence of online courses
- the second reference skill may be associated with a second online course in the sequence of online courses.
- the sequential playlist of online courses may be stored in and accessed from a database of the online service 100 .
- the same entity comprises a history of online courses that have been watched by a user of the online service.
- the history of online courses may be stored in association with the user, where the first reference skill is associated with a first online course in the history of online courses and the second reference skill is associated with a second online course in the history of online courses.
- the history of online courses that have been watched by the user may be stored in and accessed from the database 120 .
- the same entity comprises a history of a user adding skills to a profile of the user.
- the profile may be stored in a database of the online service 100 , such as in the database 116 .
- the online service 100 may record instance of the user adding the skill as part of the history of the user adding skills to the profile of the user.
- the recorded instance may include the skill that was added and a corresponding timestamp for the addition.
- the history of the user adding skills to the profile of the user may be stored in and accessed from the database 116 or from the database 120 .
- the same entity comprises an online job posting that includes the first reference skill and the second reference skill.
- the same entity may comprise the online job posting displayed in the GUI 500 of FIG. 5 .
- Other configurations of online job postings are also within the scope of the present disclosure.
- the online service 100 trains a dependency model with a first machine learning algorithm using the training data.
- the dependency model comprises a logistic regression model or a data gradient boosted decision tree (GBDT) model.
- GBDT data gradient boosted decision tree
- other types of machine learning models may be used as the dependency model.
- the training data includes the plurality of reference skill pairs, which are used in the training of the dependency model as positive examples of skill pairs having a dependency relation.
- the dependency model may be trained to classify a given target skill pair as either having a dependency relation or not having a dependency relation.
- the online service 100 trains a Bidirectional Encoder Representations from Transformers (BERT) model with a second machine learning algorithm using the training data.
- BERT Bidirectional Encoder Representations from Transformers
- the training data includes the plurality of reference skill pairs, which are used in the training of the BERT model as positive examples of relation directions for dependency relations.
- the second machine learning algorithm may use the order in which the first reference skill and the second reference skill of each reference skill pair are provided to determine the direction of the relation direction.
- a reference skill pair (s i , s j ) may be used as a positive example of a relation direction, while the same references skills provided in a different order (s j , s i ) may be omitted from use as a positive example of a relation direction, as the dependency between the first reference skill s i and the second reference skill s j may only be in one direction, such as s i being dependent on s j , but s j not being dependent on s i .
- the online service 100 identifies a corresponding dependency relation for each target skill pair in a plurality of target skill pairs using the dependency model.
- each target skill pair in the plurality of target skill pairs comprises a corresponding first target skill and a corresponding second target skill, where the corresponding dependency relation is between the corresponding first and second target skills of the corresponding target skill pair.
- the online service 100 may input the plurality of target skill pairs into the dependency model, and the dependency model may output, for each target skill pair, a classification of the target skill pair as either having a dependency relation or not having a dependency relation.
- the dependency model may compute a probability value representing the probability that there is a dependency relation between the corresponding first target skill and the corresponding second target skill of the target skill pair, and then classify the target skill pair as having a dependency relation if the probability value satisfies a threshold value (e.g., if the probability value is equal to or greater than 0.5).
- a threshold value e.g., if the probability value is equal to or greater than 0.5
- the online service 100 determines a corresponding relation direction using the BERT model.
- the online service 100 may input the plurality of target skill pairs into the BERT model, and the BERT model may output, for each target skill pair, a classification of the direction of the dependency relation between the corresponding first target skill and the corresponding second target skill of the target skill pair.
- the BERT model may generate an output that either classifies the first target skill as depending on the second target skill or classifies the second target skill as depending on the first target skill.
- the online service 100 improves and maximizes accuracy and speed. While the BERT model is very accurate in identifying dependency relations, testing by the inventors of the present disclosure has indicated that the dependency model of the present disclosure is significantly faster than the BERT model in identifying dependency relations. Given the billions of potential target skill pairs to be processed, the use of the dependency model greatly improves the scalability of identifying dependency relations.
- the online service 100 uses the speed and scalability of the dependency model to identify target skill pairs that have dependency relations. The identified target skill pairs may then be fed into the BERT model to determine the relation directions, thereby using the accuracy of the BERT model to process a reduced workload provided by the dependency model.
- the online service 100 uses the corresponding identified dependency relation and determined relation direction for at least a portion of the plurality of target skill pairs in an application of the online service 100 .
- the online service 100 may use the corresponding identified dependency relation and the determined relation direction for at least a portion of the plurality of target skill pairs in one or more of the application components 106 .
- the online service 100 uses the corresponding identified dependency relation and determined relation direction for at least a portion of the plurality of target skill pairs in the profile update service 112 .
- the profile update service 112 may determine that a profile of a target user of the online service 100 includes the corresponding first target skill of each target skill pair in the at least a portion of the plurality of target skill pairs.
- the profile update service 112 may then select the corresponding second target skill of each target skill pair in the at least a portion of the plurality of target skill pairs based on the corresponding identified dependency relation and determined relation direction for the at least a portion of the plurality of target skill pairs, and displaying, on a computing device of the target user, a corresponding selectable user interface element for each selected second target skill in the at least a portion of the plurality of target skill pairs, such as previously discussed with respect to FIG. 4 .
- the corresponding selectable user interface element may be configured to trigger storing of the corresponding second target skill as part of the profile of the target user in response to a selection of the corresponding selectable user interface element.
- the online service 100 uses the corresponding identified dependency relation and determined relation direction for at least a portion of the plurality of target skill pairs in presenting recommendations of online job postings to a target user.
- an online job posting may include the second target skill of a target skill pair.
- the profile of the first target user includes a first target skill, which forms the target skill pair along with the second target skill.
- the recommendation application 110 may select the online job posting to be recommended to the first target user based on a determination that the profile of the first target user includes the first target skill, a determination that there is a dependency relation between the first target skill and the second target skill, and a determination that a relation direction of the target skill pair comprises the first target skill being dependent on the second target skill.
- the recommendation application 110 still selects the online job posting because the inclusion of the first target skill in the profile of the first target user is predictive of the first target user actually having the second target skill because the first target skill depends on the second target skill according to the dependency relation and the relation direction of the target skill pair.
- the recommendation application may treat the profile of the first target user as including the second target skill based on the dependency relation and the relation direction of the target skill pair. Then, the recommendation application 110 may display, on a computing device of the first target user, a corresponding selectable user interface element for the online job posting based on the selecting of the online job posting.
- the corresponding selectable user interface element may be configured to, in response to its selection, trigger a display of details of the online job posting on the computing device of the target user or initiate an online application process for the online job posting on the computing device of the target user.
- the recommendation engine 110 does not treat the profile of the first target user as including the second target skill even though a dependency relation between the first target skill and the second target skill has been identified, since the relation direction of the target skill pair may indicate an order in which the first target skill and the second target skill occur, such as an order in which the first target skill and the second target skill are learned or acquired.
- the online service 100 uses the corresponding identified dependency relation and determined relation direction for at least a portion of the plurality of target skill pairs in presenting recommendations of online courses to a target user.
- an online course may include the second target skill of a target skill pair.
- the profile of the first target user includes a first target skill, which forms the target skill pair along with the second target skill.
- the recommendation application 110 may select the online course to be recommended to the first target user based on a determination that the profile of the first target user includes the first target skill, a determination that there is a dependency relation between the first target skill and the second target skill, and a determination that a relation direction of the target skill pair comprises the second target skill being dependent on the first target skill.
- the recommendation application 110 still selects the online course because the inclusion of the first target skill in the profile of the first target user is predictive of the first target next acquiring the second target skill next because the second target skill depends on the first target skill according to the dependency relation and the relation direction of the target skill pair.
- the recommendation application 110 may then display, on a computing device of the target user, a corresponding selectable user interface element for the online course based on the selecting the online course, such as shown in FIG. 7 .
- the corresponding selectable user interface element may be configured to, in response to its selection, trigger a playing of a multimedia file of the online course on the computing device or initiate an online process for playing the multimedia file of the online course on the computing device.
- the online service 100 uses the corresponding identified dependency relation and determined relation direction for at least a portion of the plurality of target skill pairs in presenting search results to a searching user, such displaying potential job candidates to a recruiter, as previously discussed.
- the search engine 108 may then display, on a computing device of the second target user, a user interface element that identifies the profile of the first target user based on the selecting the profile of the first target user, such as shown in FIG. 8 .
- FIG. 10 is a flowchart illustrating another method 1000 of training artificial intelligence models for use in determining dependency relations, in accordance with an example embodiment.
- the method 1000 can be performed by processing logic that can comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions run on a processing device), or a combination thereof.
- the method 1000 is performed by the online service 100 of FIG. 1 , or any combination of one or more of its components (e.g., the artificial intelligence component 114 , the application component 106 ), as described above.
- the method 1000 may include an operation 1010 being performed after operation 950 and prior to operation 960 of the method 900 of FIG. 9 .
- the online service 100 generates a directed graph using the corresponding identified dependency relation and determined relation direction for the plurality of target skill pairs.
- the online service 100 may generate the directed graph 600 discussed above with respect to FIG. 6 .
- the method 1000 may proceed to operation 960 , where the online service 100 may use the at least a portion of the plurality of target skills in the application of the online service 100 by using the directed graph in the application of the online service 100 .
- the online service 100 uses Algorithm 2, discussed above, to generate the directed graph.
- the online service 100 may generate the directed graph using other algorithms as well.
- Components may constitute either software components (e.g., code embodied (1) on a non-transitory machine-readable medium or (2) in a transmission signal) or hardware-implemented components.
- a hardware-implemented component is tangible unit capable of performing certain operations and may be configured or arranged in a certain manner.
- one or more computer systems e.g., a standalone, client or server computer system
- one or more processors may be configured by software (e.g., an application or application portion) as a hardware-implemented component that operates to perform certain operations as described herein.
- a hardware-implemented component may be implemented mechanically or electronically.
- a hardware-implemented component may comprise dedicated circuitry or logic that is permanently configured (e.g., as a special-purpose processor, such as a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC)) to perform certain operations.
- a hardware-implemented component may also comprise programmable logic or circuitry (e.g., as encompassed within a programmable processor) that is temporarily configured by software to perform certain operations. It will be appreciated that the decision to implement a hardware-implemented component 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.
- the term “hardware-implemented component” should be understood to encompass a tangible entity, be that an entity that is physically constructed, permanently configured (e.g., hardwired) or temporarily or transitorily configured (e.g., programmed) to operate in a certain manner and/or to perform certain operations described herein.
- hardware-implemented components are temporarily configured (e.g., programmed)
- each of the hardware-implemented components need not be configured or instantiated at any one instance in time.
- the hardware-implemented components comprise a processor configured using software
- the processor may be configured as respective different hardware-implemented components at different times.
- Software may accordingly configure a processor, for example, to constitute a particular hardware-implemented component at one instance of time and to constitute a different hardware-implemented component at a different instance of time.
- Hardware-implemented components can provide information to, and receive information from, other hardware-implemented components. Accordingly, the described hardware-implemented components may be regarded as being communicatively coupled. Where multiple of such hardware-implemented components exist contemporaneously, communications may be achieved through signal transmission (e.g., over appropriate circuits and buses) that connect the hardware-implemented components. In embodiments in which multiple hardware-implemented components are configured or instantiated at different times, communications between such hardware-implemented components may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware-implemented components have access. For example, one hardware-implemented component may perform an operation, and store the output of that operation in a memory device to which it is communicatively coupled.
- a further hardware-implemented component may then, at a later time, access the memory device to retrieve and process the stored output.
- Hardware-implemented components may also initiate communications with input or output devices, and can operate on 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 components that operate to perform one or more operations or functions.
- the components referred to herein may, in some example embodiments, comprise processor-implemented components.
- the methods described herein may be at least partially processor-implemented. For example, at least some of the operations of a method may be performed by one or more processors or processor-implemented components. The performance of certain of the 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 processor or processors may be located in a single location (e.g., within a home environment, an office environment or as a server farm), while in other embodiments the processors may be distributed across a number of locations.
- 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), these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., Application Program Interfaces (APIs)).
- SaaS software as a service
- Example embodiments may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them.
- Example embodiments may be implemented using a computer program product, e.g., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable medium for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers.
- a computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a component, subroutine, or other unit suitable for use in a computing environment.
- a computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
- operations may be performed by one or more programmable processors executing a computer program to perform functions by operating on input data and generating output.
- Method operations can also be performed by, and apparatus of example embodiments may be implemented as, special purpose logic circuitry, e.g., a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC).
- FPGA field programmable gate array
- ASIC application-specific integrated circuit
- the computing system can include clients and servers.
- a client and server are generally remote from each other and typically interact through a communication network.
- the relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
- both hardware and software architectures merit consideration.
- the choice of whether to implement certain functionality in permanently configured hardware e.g., an ASIC
- temporarily configured hardware e.g., a combination of software and a programmable processor
- a combination of permanently and temporarily configured hardware may be a design choice.
- hardware e.g., machine
- software architectures that may be deployed, in various example embodiments.
- FIG. 11 is a block diagram 1100 illustrating a software architecture 1102 , which can be installed on any one or more of the devices described above.
- FIG. 11 is merely a non-limiting example of a software architecture, and it will be appreciated that many other architectures can be implemented to facilitate the functionality described herein.
- the software architecture 1102 is implemented by hardware such as a machine 1200 of FIG. 12 that includes processors 1110 , memory 1130 , and input/output (I/O) components 1150 .
- the software architecture 1102 can be conceptualized as a stack of layers where each layer may provide a particular functionality.
- the software architecture 1102 includes layers such as an operating system 1104 , libraries 1106 , frameworks 1108 , and applications 1110 .
- the applications 1110 invoke API calls 1112 through the software stack and receive messages 1114 in response to the API calls 1112 , consistent with some embodiments.
- the operating system 1104 manages hardware resources and provides common services.
- the operating system 1104 includes, for example, a kernel 1120 , services 1122 , and drivers 1124 .
- the kernel 1120 acts as an abstraction layer between the hardware and the other software layers, consistent with some embodiments.
- the kernel 1120 provides memory management, processor management (e.g., scheduling), component management, networking, and security settings, among other functionality.
- the services 1122 can provide other common services for the other software layers.
- the drivers 1124 are responsible for controlling or interfacing with the underlying hardware, according to some embodiments.
- the drivers 1124 can include display drivers, camera drivers, BLUETOOTH® or BLUETOOTH® Low Energy drivers, flash memory drivers, serial communication drivers (e.g., Universal Serial Bus (USB) drivers), Wi-Fi® drivers, audio drivers, power management drivers, and so forth.
- USB Universal Serial Bus
- the libraries 1106 provide a low-level common infrastructure utilized by the applications 1110 .
- the libraries 1106 can include system libraries 1130 (e.g., C standard library) that can provide functions such as memory allocation functions, string manipulation functions, mathematic functions, and the like.
- the libraries 1106 can include API libraries 1132 such as media libraries (e.g., libraries to support presentation and manipulation of various media formats such as Moving Picture Experts Group-4 (MPEG4), Advanced Video Coding (H.264 or AVC), Moving Picture Experts Group Layer-3 (MP3), Advanced Audio Coding (AAC), Adaptive Multi-Rate (AMR) audio codec, Joint Photographic Experts Group (JPEG or JPG), or Portable Network Graphics (PNG)), graphics libraries (e.g., an OpenGL framework used to render in two dimensions (2D) and three dimensions (3D) in a graphic context on a display), database libraries (e.g., SQLite to provide various relational database functions), web libraries (e.g., WebKit to provide web browsing functionality), and the like.
- the libraries 1106 can also include a wide variety of other libraries 1134 to provide many other APIs to the applications 1110 .
- the frameworks 1108 provide a high-level common infrastructure that can be utilized by the applications 1110 , according to some embodiments.
- the frameworks 1108 provide various GUI functions, high-level resource management, high-level location services, and so forth.
- the frameworks 1108 can provide a broad spectrum of other APIs that can be utilized by the applications 1110 , some of which may be specific to a particular operating system 1104 or platform.
- the applications 1110 include a home application 1150 , a contacts application 1152 , a browser application 1154 , a book reader application 1156 , a location application 1158 , a media application 1160 , a messaging application 1162 , a game application 1164 , and a broad assortment of other applications, such as a third-party application 1166 .
- the applications 1110 are programs that execute functions defined in the programs.
- Various programming languages can be employed to create one or more of the applications 1110 , structured in a variety of manners, such as object-oriented programming languages (e.g., Objective-C, Java, or C++) or procedural programming languages (e.g., C or assembly language).
- the third-party application 1166 may be mobile software running on a mobile operating system such as IOSTM, ANDROIDTM, WINDOWS® Phone, or another mobile operating system.
- the third-party application 1166 can invoke the API calls 1112 provided by the operating system 1104 to facilitate functionality described herein.
- FIG. 12 illustrates a diagrammatic representation of a machine 1200 in the form of a computer system within which a set of instructions may be executed for causing the machine 1200 to perform any one or more of the methodologies discussed herein, according to an example embodiment.
- FIG. 12 shows a diagrammatic representation of the machine 1200 in the example form of a computer system, within which instructions 1216 (e.g., software, a program, an application 1210 , an applet, an app, or other executable code) for causing the machine 1200 to perform any one or more of the methodologies discussed herein may be executed.
- the instructions 1216 may cause the machine 1200 to execute the method 900 of FIG. 9 or the method 10 of FIG. 10 .
- the instructions 1216 may implement FIGS. 1 - 8 , and so forth.
- the instructions 1216 transform the general, non-programmed machine 1200 into a particular machine 1200 programmed to carry out the described and illustrated functions in the manner described.
- the machine 1200 operates as a standalone device or may be coupled (e.g., networked) to other machines.
- the machine 1200 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 1200 may comprise, but not be limited to, a server computer, a client computer, a PC, a tablet computer, a laptop computer, a netbook, a set-top box (STB), a portable digital assistant (PDA), an entertainment media system, a cellular telephone, a smartphone, 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 1216 , sequentially or otherwise, that specify actions to be taken by the machine 1200 .
- the term “machine” shall also be taken to include a collection of machines 1200 that individually or jointly execute the instructions 1216 to perform any one or more of the methodologies discussed herein.
- the machine 1200 may include processors 1210 , memory 1230 , and I/O components 1250 , which may be configured to communicate with each other such as via a bus 1202 .
- the processors 1210 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 1210 may include, for example, a processor 1212 and a processor 1214 that may execute the instructions 1216 .
- processor is intended to include multi-core processors 1210 that may comprise two or more independent processors 1212 (sometimes referred to as “cores”) that may execute instructions 1216 contemporaneously.
- FIG. 12 shows multiple processors 1210
- the machine 1200 may include a single processor 1212 with a single core, a single processor 1212 with multiple cores (e.g., a multi-core processor), multiple processors 1210 with a single core, multiple processors 1210 with multiple cores, or any combination thereof.
- the memory 1230 may include a main memory 1232 , a static memory 1234 , and a storage unit 1236 , all accessible to the processors 1210 such as via the bus 1202 .
- the main memory 1232 , the static memory 1234 , and the storage unit 1236 store the instructions 1216 embodying any one or more of the methodologies or functions described herein.
- the instructions 1216 may also reside, completely or partially, within the main memory 1232 , within the static memory 1234 , within the storage unit 1236 , within at least one of the processors 1210 (e.g., within the processor's cache memory), or any suitable combination thereof, during execution thereof by the machine 1200 .
- the I/O components 1250 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 1250 that are included in a particular machine 1200 will depend on the type of machine 1200 . 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 1250 may include many other components that are not shown in FIG. 12 .
- the I/O components 1250 are grouped according to functionality merely for simplifying the following discussion, and the grouping is in no way limiting.
- the I/O components 1250 may include output components 1252 and input components 1254 .
- the output components 1252 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 1254 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 another pointing instrument), 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 another pointing instrument
- tactile input components e.g., a physical button,
- the I/O components 1250 may include biometric components 1256 , motion components 1258 , environmental components 1260 , or position components 1262 , among a wide array of other components.
- the biometric components 1256 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 1258 may include acceleration sensor components (e.g., accelerometer), gravitation sensor components, rotation sensor components (e.g., gyroscope), and so forth.
- the environmental components 1260 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 1262 may include location sensor components (e.g., a Global Positioning 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 Positioning 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 1250 may include communication components 1264 operable to couple the machine 1200 to a network 1280 or devices 1270 via a coupling 1282 and a coupling 1272 , respectively.
- the communication components 1264 may include a network interface component or another suitable device to interface with the network 1280 .
- the communication components 1264 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 1270 may be another machine or any of a wide variety of peripheral devices (e.g., a peripheral device coupled via a USB).
- the communication components 1264 may detect identifiers or include components operable to detect identifiers.
- the communication components 1264 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
- acoustic detection components
- IP Internet Protocol
- Wi-Fi® Wireless Fidelity
- NFC beacon a variety of information may be derived via the communication components 1264 , 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
- the various memories i.e., 1230 , 1232 , 1234 , and/or memory of the processor(s) 1210
- the storage unit 1236 may store one or more sets of instructions 1216 and data structures (e.g., software) embodying or utilized by any one or more of the methodologies or functions described herein. These instructions (e.g., the instructions 1216 ), when executed by the processor(s) 1210 , cause various operations to implement the disclosed embodiments.
- machine-storage medium As used herein, the terms “machine-storage medium,” “device-storage medium,” and “computer-storage medium” mean the same thing and may be used interchangeably.
- the terms refer to a single or multiple storage devices and/or media (e.g., a centralized or distributed database, and/or associated caches and servers) that store executable instructions 1216 and/or data.
- the terms shall accordingly be taken to include, but not be limited to, solid-state memories, and optical and magnetic media, including memory internal or external to the processors 1210 .
- machine-storage media computer-storage media, and/or device-storage media
- non-volatile memory including, by way of example, semiconductor memory devices, e.g., erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), field-programmable gate array (FPGA), and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
- semiconductor memory devices e.g., erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), field-programmable gate array (FPGA), and flash memory devices
- magnetic disks such as internal hard disks and removable disks
- magneto-optical disks and CD-ROM and DVD-ROM disks.
- CD-ROM and DVD-ROM disks CD-ROM and DVD-ROM disks.
- one or more portions of the network 1280 may be an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (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 plain old telephone service (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
- LAN local area network
- WLAN wireless LAN
- WAN wireless WAN
- MAN metropolitan area network
- PSTN public switched telephone network
- POTS plain old telephone service
- the network 1280 or a portion of the network 1280 may include a wireless or cellular network
- the coupling 1282 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.
- CDMA Code Division Multiple Access
- GSM Global System for Mobile communications
- the coupling 1282 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.
- RTT Single Carrier Radio Transmission Technology
- GPRS General Packet Radio Service
- EDGE Enhanced Data rates for GSM Evolution
- 3GPP Third Generation Partnership Project
- 4G fourth generation wireless (4G) networks
- Universal Mobile Telecommunications System (UMTS) Universal Mobile Telecommunications System
- HSPA High-Speed Packet Access
- WiMAX Worldwide Interoperability for Micro
- the instructions 1216 may be transmitted or received over the network 1280 using a transmission medium via a network interface device (e.g., a network interface component included in the communication components 1264 ) and utilizing any one of a number of well-known transfer protocols (e.g., HTTP). Similarly, the instructions 1216 may be transmitted or received using a transmission medium via the coupling 1272 (e.g., a peer-to-peer coupling) to the devices 1270 .
- the terms “transmission medium” and “signal medium” mean the same thing and may be used interchangeably in this disclosure.
- transmission medium and “signal medium” shall be taken to include any intangible medium that is capable of storing, encoding, or carrying the instructions 1216 for execution by the machine 1200 , and include digital or analog communications signals or other intangible media to facilitate communication of such software.
- transmission medium and “signal medium” shall be taken to include any form of modulated data signal, carrier wave, and so forth.
- modulated data signal means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
- machine-readable medium means the same thing and may be used interchangeably in this disclosure.
- the terms are defined to include both machine-storage media and transmission media.
- the terms include both storage devices/media and carrier waves/modulated data signals.
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Entrepreneurship & Innovation (AREA)
- Strategic Management (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Economics (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Marketing (AREA)
- Educational Administration (AREA)
- General Business, Economics & Management (AREA)
- Tourism & Hospitality (AREA)
- Computational Linguistics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Development Economics (AREA)
- Game Theory and Decision Science (AREA)
- Medical Informatics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
- The present application relates generally to training artificial intelligence models for use in determining dependency relations.
- Online service providers, such as social networking services, e-commerce and marketplace services, photo sharing services, job hosting services, educational and learning services, and many others, typically require that each end-user register with the individual service to establish a user account. In most instances, a user account will include or be associated with a user profile—a digital representation of a person's identity. As such, a user profile may include a wide variety of information about the user, which may vary significantly depending upon the particular type and nature of the online service. By way of example, in the context of a social networking service, a user's profile may include information such as: first and last name, e-mail address, age, location of residence, a summary of the user's educational background, job history, and/or experiences, as well as individual skills possessed by the user. A user profile may include a combination of structured and unstructured data. For example, whereas a user's age may be stored in a specific data field as structured data, other profile information may be inferred from a free form text field such as a summary of a user's experiences. Furthermore, while some portions of a user profile, such as an e-mail address, may be mandatory—that is, the online service may require the user to provide such information in order to register and establish an account—other portions of a user profile may be optional.
- In many instances, the quality of the experience a user has with a particular online service may vary significantly based on the extent to which the user has provided information to complete his or her user profile. Generally, the more complete a user profile is, the more satisfied the user is likely to be with various features and functions of the online service. By way of example, consider the extent to which a user has listed in his or her profile for a professional social networking service the skills possessed by the user. In the context of an online service, a variety of content-related and recommendation services utilize various aspects of a user's profile information—particularly skills—for targeting users to receive various content and for generating recommendations. For example, a content selection and ranking algorithm associated with a news feed, which may be referred to as a content feed, or simply a feed, may select and/or rank content items for presentation in the user's personalized content feed based on the extent to which the subject matter of a content item matches the perceived interests of the user. Here, the user's perceived interests may be based at least in part on the skills that he or she has listed in his or her profile. Similarly, a job-related search engine and/or recommendation service may select and/or rank job postings for presentation to a user based in part on skills listed in a profile of the user. Finally, a recommendation service for online courses may generate course recommendations for a user based at least in part on the skills that the user lists in his or her profile. Accordingly, the value of these services to the user can be significantly greater when the user has completed his or her profile by adding his or her skills. Specifically, with a completed profile and accurate list of skills, the user is more likely to receive relevant information that is of interest to the user.
- However, when certain profile information is made optional, there are a variety of reasons that a user may be hesitant to add such information to his or her end-user profile. First, a user may not appreciate the increased value that he or she will realize from the various online services when his or her profile is complete. Second, a user may not understand how to add certain information to his or her profile, or a user may simply not want to take the time to add the information to his or her user profile. Finally, it may be difficult for a user to understand specifically what information—for example, which skills—the end—user should add to his or her user profile. Accordingly, many online services prompt users to add information to their user profile. For example, in the context of a social networking service—particularly a professional social networking service—a profile completion service may prompt users to add skills to their respective user profiles.
- Current solutions for using skills data to provide services fail to accurately and efficiently address dependency relations between skills. These current solutions are mainly focused on skill extraction, skill salience, and skill-based personalized recommendation tasks, while ignoring dependency relations between different skills. This neglect is due to a lack of training data and difficulties in creating training data. Skills can be very technical and sometimes only make sense to domain experts, so raw texts alone are not very informative, and useful features for use in training data are hard to obtain. Skills span thousands of industries and are very heterogeneous. A pair of skills, such as a first skill and a second skill, is also referred to herein as a “skill pair.” Over 99.99% of skill pairs are negative examples of a dependency relation, so creating a more balanced labelled dataset is challenging and requires sophisticated large-scale data mining techniques. Current solutions are also unable to scale adequately. For example, a cartography is a map that represents the transition paths between entities according to dependency relations. Building a cartography for skills to be used by an online service is extremely computationally expensive, given that there are more than 40,000 skills, resulting in over one billion skill pairs to process. These technical problems prevent online services from accurately and efficiently accounting for dependency relations between skills.
- Some embodiments of the present disclosure are illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like reference numbers indicate similar elements.
-
FIG. 1 is a block diagram illustrating functional components of an online service, in accordance with an example embodiment. -
FIG. 2 illustrates a transition path of skills, in accordance with an example embodiment. -
FIG. 3 illustrates a graphical user interface (GUI) in which a sequential playlist of online courses available to users for viewing via an online service is displayed, in accordance with an example embodiment. -
FIG. 4 illustrates a GUI in which a user may add one or more specialties to a profile of the user, in accordance with an example embodiment. -
FIG. 5 illustrates a GUI in which an online job posting is displayed, in accordance with an example embodiment. -
FIG. 6 illustrates a directed graph, in accordance with an example embodiment. -
FIG. 7 illustrates a GUI in which selectable user interface elements for online courses are displayed, in accordance with an example embodiment. -
FIG. 8 illustrates a GUI in which user interface elements that identify profiles of users are displayed, in accordance with an example embodiment. -
FIG. 9 is a flowchart illustrating a method of training artificial intelligence models for use in determining dependency relations, in accordance with an example embodiment. -
FIG. 10 is a flowchart illustrating another method of training artificial intelligence models for use in determining dependency relations, in accordance with an example embodiment. -
FIG. 11 is a block diagram illustrating a software architecture, in accordance with an example embodiment. -
FIG. 12 illustrates a diagrammatic representation of a machine in the form of a computer system within which a set of instructions may be executed for causing the machine to perform any one or more of the methodologies discussed herein, in accordance with an example embodiment. - Example methods and systems of training artificial intelligence models for use in determining dependency relations are disclosed. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of example embodiments. It will be evident, however, to one skilled in the art that the present embodiments may be practiced without these specific details.
- The above-discussed technical problems of accuracy and efficiency are addressed by one or more example embodiments disclosed herein, in which a specially-configured computer system is configured to use a two-stage approach to tackle the large-scale skill dependency task by using a light feature-based model to identify dependency relations between skill pairs in a first stage and using a more sophisticated model to determine relation directions in a second stage. The two-stage approach of the present disclosure outperforms other alternative state-of-the-art methods in terms of both accuracy and speed, enabling the computer system of an online service to accurately and efficiently process over one billion skill pairs.
- In some example embodiments, the computer system generates training data comprising a plurality of reference skill pairs, with each reference skill pair comprising a corresponding first reference skill and a corresponding second reference skill. The plurality of reference skill pairs are included in the training data based on a co-occurrence of the corresponding first and second reference skills for each reference skill pair in the plurality of reference skill pairs. The co-occurrence comprises the corresponding first and second reference skills co-occurring for a same entity, such as being included in the same sequential playlist of online courses, being included in the same history of online courses watched by a user, being added to the same user profile, or being included in the same online job posting. In some example embodiments, the computer system trains a dependency model with a first machine learning algorithm using the training data, where the dependency model comprises a logistic regression model or a data gradient boosted decision tree (GBDT) model, and also trains a Bidirectional Encoder Representations from Transformers (BERT) model with a second machine learning algorithm using the training data.
- Next, the computer system identifies a corresponding dependency relation for each target skill pair in a plurality of target skill pairs using the dependency model, with each target skill pair in the plurality of target skill pairs comprising a corresponding first target skill and a corresponding second target skill, and the corresponding dependency relation being between the corresponding first and second target skills of the corresponding target skill pair. For each target skill pair in the plurality of target skill pairs, the computer system determines a corresponding relation direction using the BERT model. Then, the computer system uses the corresponding identified dependency relation and determined relation direction for at least a portion of the plurality of target skill pairs in an application of an online service. The term “reference” is used herein to indicate data and entities being used or involved in the training of models. The term “target” is used herein to indicate data and entities being used or involved in the use of the trained models.
- The methods or embodiments disclosed herein may be implemented as a computer system having one or more components implemented in hardware or software. For example, the methods or embodiments disclosed herein may be embodied as instructions stored on a machine-readable medium that, when executed by one or more hardware processors, cause the one or more hardware processors to perform the instructions.
-
FIG. 1 is a block diagram illustrating functional components of anonline service 100, in accordance with an example embodiment. As shown inFIG. 1 , a front end may comprise one or more user interface components (e.g., a web server) 102, which receives requests from various client computing devices and communicates appropriate responses to the requesting client devices. For example, the user interface component(s) 102 may receive requests in the form of Hypertext Transfer Protocol (HTTP) requests or other web-based API requests. In addition, a userinteraction detection component 104, sometimes referred to as a click tracking service, may be provided to detect various interactions that end-users have with different applications and services, such as those included in the application logic layer of theonline service 100. As shown inFIG. 1 , upon detecting a particular interaction, the userinteraction detection component 104 logs the interaction, including the type of interaction and any metadata relating to the interaction, in an end-user activity andbehavior database 120. Accordingly, data from thisdatabase 120 can be further processed to generate data appropriate for training one or more machine-learned models, and in particular, for training models to rank a set of skills for an end-user. - An application logic layer may include one or more
application server components 106, which, in conjunction with the user interface component(s) 102, generate various user interfaces (e.g., web pages) with data retrieved from various data sources in a data layer. Consistent with some embodiments, individualapplication server components 106 implement the functionality associated with various applications and/or services provided by theonline service 100. For instance, as illustrated inFIG. 1 , the application logic layer includes a variety of applications and services to include asearch engine 108, one or more recommendation applications 110 (e.g., a job recommendation application, an online course recommendation application), and aprofile update service 112. The various applications and services illustrated as part of the application logic layer are provided as examples and are not meant to be an exhaustive listing of all applications and services that may be integrated with and provided as part of theonline service 100. For example, although not shown inFIG. 1 , theonline service 100 may also include a job hosting service via which end-users submit job postings that can be searched by end-users, and/or recommended to other end-users by the recommendation application(s) 110. As end-user's interact with the various user interfaces and content items presented by these applications and services, the userinteraction detection component 104 detects and tracks the end-user interactions, logging relevant information for subsequent use. - As shown in
FIG. 1 , the data layer may include several databases, such as aprofile database 116 for storing profile data, including both end-user profile data and profile data for various organizations (e.g., companies, schools, etc.). Consistent with some embodiments, when a person initially registers to become an end-user of the online service, the person will be prompted by theprofile update service 112 to provide some personal information, such as his or her name, age (e.g., birthdate), gender, interests, contact information, home town, address, spouse's and/or family members' names, educational background (e.g., schools, majors, matriculation and/or graduation dates, etc.), employment history, skills, professional organizations, and so on. This information is stored, for example, in theprofile database 116. Similarly, when a representative of an organization initially registers the organization with theonline service 100, the representative may be prompted to provide certain information about the organization. This information may be stored, for example, in theprofile database 116, or another database (not shown). - Once registered, an end-user may invite other end-users, or be invited by other end-users, to connect via the
online service 100. A “connection” may constitute a bilateral agreement by the end-users, such that both end-users acknowledge the establishment of the connection. Similarly, with some embodiments, an end-user may elect to “follow” another end-user. In contrast to establishing a connection, the concept of “following” another end-user typically is a unilateral operation and, at least with some embodiments, does not require acknowledgement or approval by the end-user that is being followed. When one end-user follows another, the end-user may receive status updates relating to the other end-user, or other content items published or shared by the other end-user user who is being followed. Similarly, when an end-user follows an organization, the end-user becomes eligible to receive status updates relating to the organization as well as content items published by, or on behalf of, the organization. For instance, content items published on behalf of an organization that an end-user is following will appear in the end-user's personalized feed, sometimes referred to as a content feed or news feed. In any case, the various associations and relationships that the end-users establish with other end-users, or with other entities (e.g., companies, schools, organization) and objects (e.g., metadata hashtags (“#topic”) used to tag content items), are stored and maintained within a social graph in asocial graph database 118. - As end-users interact with the various content items that are presented via the applications and services of the
online service 100, the end-users' interactions and behaviors (e.g., content viewed, links or buttons selected, messages responded to, job postings viewed, etc.) are tracked by the userinteraction detection component 104, and information concerning the end-users' activities and behaviors may be logged or stored, for example, as indicated inFIG. 1 by the end-user activity andbehavior database 120. - Consistent with some embodiments, data stored in the various databases of the data layer may be accessed by one or more software agents or applications executing as part of a distributed
data processing service 124, which may process the data to generate derived data. The distributeddata processing service 124 may be implemented using Apache Hadoop® or some other software framework for the processing of extremely large data sets. Accordingly, an end-user's profile data and any other data from the data layer may be processed (e.g., in the background or offline) by the distributeddata processing service 124 to generate various derived profile data. As an example, if an end-user has provided information about various job titles that the end-user has held with the same organization or different organizations, and for how long, this profile information can be used to infer or derive an end-user profile attribute indicating the end-user's overall seniority level or seniority level within a particular organization. This derived data may be stored as part of the end-user's profile or may be written to another database. - In addition to generating derived attributes for end-users' profiles, one or more software agents or applications executing as part of the distributed
data processing service 124 may ingest and process data from the data layer for the purpose of generating training data for use in training various machine-learned models, and for use in generating features for use as input to the trained models. For instance, profile data, social graph data, and end-user activity and behavior data, as stored in the databases of the data layer, may be ingested by the distributeddata processing service 124 and processed to generate data properly formatted for use as training data for training one of the aforementioned machine-learned models for ranking skills. Similarly, the data may be processed for the purpose of generating features for use as input to the machine-learned models when ranking skills for a particular end-user. Once the derived data and features are generated, they are stored in adatabase 122, where such data can easily be accessed via calls to a distributeddatabase service 124. - In some example embodiments, the application logic layer of the
online service 100 also comprises anartificial intelligence component 114 that is configured to train and use a first artificial intelligence model to determine whether there is a dependency relation between a pair of skills (also referred to herein as a “skill pair”). Theartificial intelligence component 114 may also be configured to train and use a second artificial intelligence model to determine a relation direction for the skill pair for which a dependency relation was identified by the first artificial intelligence model. - In some example embodiments, the
artificial intelligence component 114 is configured to build a cartography of skills. The cartography of skills is a map of skills that comprises transition paths between skills according to dependency relations identified by theartificial intelligence component 114. Just like travelling on a real map, the transitivity rule does not necessarily hold: skill A can depend on B, and skill B can depend on C, but it does necessarily mean that skill A depends on skill C. The skill dependency relation implies one skill helps a person learn (or otherwise leads to) another skill at a later time, such that the temporal ordering matters. For example, people usually acquire the skill “machine learning” before the skill “neural networks,” but usually not the other way around.FIG. 2 illustrates a transition path ofskills 200, in accordance with an example embodiment. InFIG. 2 , the transition path ofskills 200 includes a transition from the skill “cashiering” to the skill “sales,” a transition from the skill “sales” to the skill “sales assessments,” a transition from the skill “sales assessments” to the skill “customer experience,” a transition from the skill “customer experience” to the skill “internal customers,” a transition from the skill “internal customers” to the skill “client rapport,” a transition from the skill “client rapport” to the skill “constructive feedback,” a transition from the skill “constructive feedback” to the skill “note taking,” and a transition from the skill “note taking” to the skill “data entry.” - Being able to infer skill dependence relationship for any skill pair enables the
artificial intelligence component 114 to construct a high quality skill cartography, which may be used in applications of theonline service 100. In some example embodiments, theartificial intelligence component 114 constructs the cartography of skills by generating a directed graph with edges representing dependency relations. For example, given a pool of S skills: s1, s2, . . . , sS, theartificial intelligence component 114 may be configured to output a directed graph G with edges between skill si and skill sj if and only if si→sj, where → means the skill si depends upon the skill sj. - One technical problem faced when approaching the task of skill cartography is the lack of readily accessible high-quality labelled training data. There are billions of potential skill pairs for over 40,000 skills and it is extremely difficult to know the appropriate label. Skill pairs can be labelled as a positive example or as a negative example. A positive example of a skill pair is a skill pair in which there is a dependency relation between the two skills of the skill pair, whereas a negative example of a skill pair is a skill pair in which there is not a dependency relation between the two skills of the skill pair. The vast majority (more than 99.99%) of those skill pairs would be negative examples. Using naive ways to select positive skill pairs, such as random sampling, simply do not work. Therefore, the
artificial intelligence component 114 implements a novel data mining pipeline to select the most promising positive skill pairs from different distinct sources. - In some example embodiments, the
artificial intelligence component 114 is configured to generate training data comprising a plurality of reference skill pairs, with each reference skill pair comprising a corresponding first reference skill and a corresponding second reference skill. The plurality of reference skill pairs may be included in the training data based on a co-occurrence of the corresponding first and second reference skills for each reference skill pair in the plurality of reference skill pairs. In one example, the co-occurrence comprises the corresponding first and second reference skills co-occurring for a same entity, such that the plurality of reference skill pairs are included in the training data based on a determination that the corresponding first reference skill occurred for an entity and a determination that the corresponding second reference skill occurred for the same entity as the corresponding first reference skill. - In some example embodiments, the plurality of reference skill pairs being included in the training data is further based on a corresponding indication of a temporal order of the corresponding first and second reference skills for the same entity for each reference skill pair in the plurality of reference skill pairs. For example, the plurality of reference skill pairs may be included in the training data based on an indication of a chronological sequence including the occurrence of the corresponding first reference skill for an entity and the occurrence of the corresponding second reference skill for the same entity.
- One example of a temporal order is found in learning paths. Learning Paths are sequential playlists of online courses that are designed to train users on a specific topic. The users can get a certificate after they finish viewing all of the online courses in the sequential playlist. In some example embodiments, the same entity for which the first reference skill and the second reference skill co-occur comprises a sequential playlist of online courses available to users for viewing via the
online service 100.FIG. 3 illustrates a graphical user interface (GUI) 300 in which a sequential playlist of online courses available to users for viewing via theonline service 100 is displayed, in accordance with an example embodiment. TheGUI 300 may display corresponding selectableuser interface elements 310 for each online course in the sequential playlist of online courses. In some example embodiments, each selectableuser interface element 310 is configured to, in response to its selection by a user, trigger a playing of a multimedia file of the corresponding online course on a computing device of the user or initiate an online process for playing the multimedia file of the corresponding online course on the computing device of the user. Each online course in the sequential playlist of online courses has one or more corresponding reference skills associated with it. These associations may be stored in a database of theonline service 100. - In some example embodiments, the
artificial intelligence component 114 is configured to mine skill pairs from each sequential playlist of online courses. The logic behind mining reference skill pairs from sequential playlists is that reference skills covered by the later online courses should be more likely to depend upon the reference skills covered by the earlier online courses in the same sequential playlist. Therefore, by converting online course sequences into course pairs, theartificial intelligence component 114 can map them into reference skill pairs and then count the co-occurrences of each reference skill pair. Those skill pairs (si; si′) that are truly dependent upon one another should have a highly skewed binomial distribution: (si, si′) occurs much more often than (si′, si), so theartificial intelligence component 114 does not consider those reference skill pairs (si; si′) if (si; si′) occurs approximately as frequently as (si′,si). - In some example embodiments, the
artificial intelligence component 114 uses the followingAlgorithm 1 to generate the reference skill pairs of the training data: -
Require: course sequences Ci = [Cj1,Cj2, . . . , Cjn], where 1 ≤ i ≤ L, course skill mappings M = {Cjk: [s1, . . . , sm]∀j,k}, where s repre- sents a skill. Offset of skill pair counts is X ≥ 0 and threshold of count ratio is θ. Ensure: skill pairs S = {(si, si ′ )} that likely satisfies si → si′ .• Convert course sequences Ci into course pairs (Cjk, Cjl) where k < l and ∀j. • Map course pairs (Cjk, Cjl) into skill pairs (si, si ′ ) according toone-to-many course skill mappings M. • for each of the skill pairs (si, si ′ ) :- Count the co-occurrence of skill pairs (si, si ′ ) and (si′ , si)respectively as c1 and c2. - * if r > θ: add (si, si ′ ) to S;* else continue; • Return S - The offset X is introduced to remove noise. The larger the offset is, the more noise it removes because those reference skill pairs that occur less frequently would have a count ratio r close to 1 and would then be filtered out by the threshold θ>1. Both X and 0 are hyper-parameters that can be tuned.
- Another example of a temporal order is found in a history of online courses that have been watched by a user of the
online service 100. The history of online courses that have been watched by the user is behavior data that is generated when the user watches an online course via theonline service 100. Most users tend to start learning from something easy to something hard, so the temporal order in which user watched online courses may be used by theartificial intelligence component 114 as a signal that reflects skill dependency relationships. The artificial intelligence component may useAlgorithm 1 to mine reference skill pairs from the history of online courses watched by users, except that the reference skill pairs may be aggregated over users instead of over learning paths, resulting in large counts of co-occurrence. - In some example embodiments, the same entity comprises a history of online courses that have been watched by a user of the online service 199. The history of online courses may be stored in association with the user, where the first reference skill is associated with a first online course in the history of online courses and the second reference skill is associated with a second online course in the history of online courses. The history of online courses that have been watched by the user may be stored in and accessed from the
database 120. - Another example of a temporal order is found in a history of a user adding skills to a profile of the user. Users of the
online service 100 can add skills they have to their profile, and often times skills are added in temporal ordering at different sessions. When most people added skill si′ later than si on their profiles, it is more likely that skill is dependent upon skill Based on this assumption, theartificial intelligence component 114 may convert skill sequences into reference skill pairs for each user before repeating the same procedure for all skill pairs (si, si′) inAlgorithm 1 to extract the most likely reference skill pairs for skill dependency. - In some example embodiments, the same entity comprises a history of a user adding skills to a profile of the user. The profile may be stored in a database of the
online service 100, such as in thedatabase 116.FIG. 4 illustrates aGUI 400 in which a user may add one or more skills to a profile of the user, in accordance with an example embodiment. In the example shown inFIG. 4 , theprofile update service 112 displays theGUI 400, including a corresponding selectableuser interface element 410 for each one of a plurality of skills. In some example embodiments, the selectableuser interface element 410 is configured to trigger storing of the corresponding skill as part of a profile of the user in response to a selection of the corresponding selectableuser interface element 410. For example, selection of the selectableuser interface element 410 of one of the skills may result in the skill being stored in thedatabase 116 in association with the profile of the user. Each time a user adds a skill to the profile of the user, such as via theGUI 400 inFIG. 4 , theonline service 100 may record instance of the user adding the skill as part of the history of the user adding skills to the profile of the user. The recorded instance may include the skill that was added and a corresponding timestamp for the addition. The history of the user adding skills to the profile of the user may be stored in and accessed from thedatabase 116 or from thedatabase 120. - In some example embodiments, the same entity comprises an online job posting that includes the first reference skill and the second reference skill.
FIG. 5 illustrates aGUI 500 in which an online job posting is displayed, in accordance with an example embodiment. InFIG. 5 , the job posting comprisesheadline information 510 anddetailed information 512. Theheadline information 510 comprises basic information about the job posting, such as the job title or position (e.g., “SENIOR SOFTWARE DESIGNER”), the name of the company or organization seeking applicants for the job title or position (e.g., “LINKEDIN”), and the location of the job (e.g., “SAN FRANCISCO BAY AREA”). Thedetailed information 512 comprises more detailed information about the job, including, but not limited to, a job description, a seniority level of the job, one or more industries to which the job corresponds, an employment type for the job, and requirements for the job. InFIG. 5 , theGUI 500 also comprises a selectableuser interface element 520 configured to enable a user who is viewing the job posting to submit a job application for the job posting. In some example embodiments, the selectableuser interface element 520 comprises a selectable button or link (e.g., the selectable “APPLY” button inFIG. 5 ) that is configured to, when selected, trigger theonline service 100 to display another GUI in which the user can submit an application for the job posting. Other configurations of online job postings are also within the scope of the present disclosure. One or more skills may be included in the online job posting, such as part of the title, the job description, the industry, and the requirements for the job. In some example embodiments, theartificial intelligence component 114 may detect the co-occurrence of the first reference skill and the second reference skill in the same online job posting. - In some example embodiments, the
artificial intelligence component 114 is configured to train a dependency model with a first machine learning algorithm using the training data. The dependency model may comprise a logistic regression model or a data gradient boosted decision tree (GBDT) model. However, other types of machine learning models may be used as the dependency model. The dependency model is trained to determine, given a target skill pair as an input, whether there is a dependency relation between the first target skill and the second target skill of the target skill pair. - In some example embodiments, the
artificial intelligence component 114 is configured to train a Bidirectional Encoder Representations from Transformers (BERT) model with a second machine learning algorithm using the training data. However, other types of machine learning models may be used in place of the BERT model. BERT is a transformer-based machine learning technique for natural language processing. The BERT model is trained to determine the relation direction (e.g., which skill depends upon which skill) for a skill pair. - In some example embodiments, the
artificial intelligence component 114 is configured to identify a corresponding dependency relation for each target skill pair in a plurality of target skill pairs using the dependency model. Each target skill pair in the plurality of target skill pairs may comprise a corresponding first target skill and a corresponding second target skill, where the corresponding dependency relation is between the corresponding first and second target skills of the corresponding target skill pair. Theartificial intelligence component 114 may input the plurality of target skill pairs into the dependency model, and the dependency model may output, for each target skill pair, a classification of the target skill pair as either having a dependency relation or not having a dependency relation. For example, the dependency model may compute a probability value representing the probability that there is a dependency relation between the corresponding first target skill and the corresponding second target skill of the target skill pair, and then classify the target skill pair as having a dependency relation if the probability value satisfies a threshold value (e.g., if the probability value is equal to or greater than 0.5). - In some example embodiments, the
artificial intelligence component 114 is configured to, for each target skill pair in the plurality of target skill pairs, determine a corresponding relation direction using the BERT model. Theartificial intelligence component 114 may input the plurality of target skill pairs into the BERT model, and the BERT model may output, for each target skill pair, a classification of the direction of the dependency relation between the corresponding first target skill and the corresponding second target skill of the target skill pair. For example, the BERT model may generate an output that either classifies the first target skill as depending on the second target skill or classifies the second target skill as depending on the first target skill. - In some example embodiments, one or more of the
application components 106 are configured to use the corresponding identified dependency relation and determined relation direction for at least a portion of the plurality of target skill pairs in an application of theonline service 100. For example, theonline service 100 may use the corresponding identified dependency relation and determined relation direction for at least a portion of the plurality of target skill pairs in one or more of theapplication components 106. - In some example embodiments, the
online service 100 uses the corresponding identified dependency relation and determined relation direction for at least a portion of the plurality of target skill pairs in theprofile update service 112. For example, theprofile update service 112 may determine that a profile of a target user of theonline service 100 includes the corresponding first target skill of each target skill pair in the at least a portion of the plurality of target skill pairs. Theprofile update service 112 may then select the corresponding second target skill of each target skill pair in the at least a portion of the plurality of target skill pairs based on the corresponding identified dependency relation and determined relation direction for the at least a portion of the plurality of target skill pairs, and display, on a computing device of the target user, a corresponding selectable user interface element for each selected second target skill in the at least a portion of the plurality of target skill pairs, such as previously discussed with respect toFIG. 4 . The corresponding selectable user interface element may be configured to trigger storing of the corresponding second target skill as part of the profile of the target user in response to a selection of the corresponding selectable user interface element. - In some example embodiments, the
online service 100 uses the corresponding identified dependency relation and determined relation direction for at least a portion of the plurality of target skill pairs in presenting recommendations of online job postings to a target user. For example, therecommendation application 110 may determine that a profile of a target user of theonline service 100 includes the corresponding first target skill of each target skill pair in the at least a portion of the plurality of target skill pairs, and also determine that an online job posting includes the corresponding second target skill of each target skill pair in the at least a portion of the plurality of target skill pairs. Next, therecommendation application 110 may select the online job posting based on the determination that the profile of the target user includes the corresponding first target skill of each target skill pair in the at least a portion of the plurality of target skill pairs, the determination that the online job posting includes the corresponding second target skill of each target skill pair in the at least a portion of the plurality of target skill pairs, and the corresponding identified dependency relation and determined relation direction for the at least a portion of the plurality of target skill pairs. Then, therecommendation application 110 may display, on a computing device of the target user, a corresponding selectable user interface element for the online job posting based on the selecting the online job posting. The corresponding selectable user interface element may be configured to, in response to its selection, trigger a display of details of the online job posting on the computing device of the target user or initiate an online application process for the online job posting on the computing device of the target user. - In some example embodiments, the
artificial intelligence component 114 is configured to generate a directed graph using the corresponding identified dependency relation and determined relation direction for the plurality of target skill pairs.FIG. 6 illustrates a directedgraph 600, in accordance with an example embodiment. The directedgraph 600 comprises a plurality of vertices representing skills (e.g., skill-1, skill-2, . . . , skill-12 inFIG. 6 ). The directedgraph 600 also includes directed edges representing the relation direction between skills. For example, inFIG. 6 , the directed edge going from skill-1 to skill-3 represents skill-3 depending on skill-1, but not skill-1 depending on skill-3. In some example embodiments, theonline service 100 uses the followingAlgorithm 2 to generate the directed graph: -
Require: skill pairs S = {(si, si′)} that satisfies si → si′, confidence score xii′ for each edge si → si′ from stage 1 modelEnsure: a directed acyclic graph G = (V, E), where Vertexes are si from S and Edges connect from si to si′ • for skill pair (si, si′) ∈ S = {(si, si′)}: - add the edge si → si′ to E, node si, si′ to V. • for si ∈ V : - start from si and detect cycles C in G = (V, E) using DFS - store edge to cycle information for all edges ei that forms a cycle: I = {ei : {Ck : ei ∈ Ck}}, where Ck are all cycles containing ei edge • sort edges in I according to their confidence scores from smallest to largest • for si → si′ ∈ I : - if I [si → si′] ≠ 0 : throw away edge si → si′ and update I by deleting cycles that contains si • Return G - In
Algorithm 2, the input is all of the identified skill pairs Sin a directed dependency relationship, where each skill pair comes with a confidence score from the dependency model, denoting how likely it is that a dependency relationship can be inferred between them. First, theartificial intelligence component 114 adds all skills from S to obtain a list of nodes V. Then, theartificial intelligence component 114 constructs a directed edge Ei from si to si′ and adds all directed edges from skill pairs S to obtain a list of edges E, thereby obtaining a directed graph G(V, E), which may contain cycles. Theartificial intelligence component 114 may perform pruning to remove the cycles. For each node in V, theartificial intelligence component 114 starts traversing the directed graph with depth first search (DFS) and stores all edges that can form a cycle in a map I, where the key is the edge, and the value is a list of cycles this edge is part of. Theartificial intelligence component 114 sorts the edges in I by the confidence score from the dependency model in ascending order. Then, theartificial intelligence component 114 starts removing the edge with the lowest score in I and update the cycles in I every time an edge is removed, until no cycle is left, resulting in a directed acyclic graph. Theartificial intelligence component 114 may generate the directed graph using other algorithms as well. - In some example embodiments, the
online service 100 uses the corresponding identified dependency relation and determined relation direction for at least a portion of the plurality of target skill pairs in presenting recommendations of online courses to a target user. For example, therecommendation application 110 may determine that a profile of a target user of the online service includes the corresponding first target skill of each target skill pair in the at least a portion of the plurality of target skill pairs, and also determines that an online course includes the corresponding second target skill of each target skill pair in the at least a portion of the plurality of target skill pairs. Next, therecommendation application 110 may select the online course based on the determining that the profile of the target user includes the corresponding first target skill of each target skill pair in the at least a portion of the plurality of target skill pairs, the determining that the online course includes the corresponding second target skill of each target skill pair in the at least a portion of the plurality of target skill pairs, and the corresponding identified dependency relation and determined relation direction for the at least a portion of the plurality of target skill pairs. Therecommendation application 110 may then display, on a computing device of the target user, a corresponding selectable user interface element for the online course based on the selecting the online course. The corresponding selectable user interface element may be configured to, in response to its selection, trigger a playing of a multimedia file of the online course on the computing device or initiate an online process for playing the multimedia file of the online course on the computing device. -
FIG. 7 illustrates aGUI 700 in which selectable user interface elements for online courses are displayed, in accordance with an example embodiment. TheGUI 700 may displayindications 710 of online courses, such as the names and other details of the online courses. In some example embodiments, eachindication 710 comprises a corresponding selectable user interface element configured to, in response to its selection, trigger an online process for playing the online course on the computing device of the target user. TheGUI 700 may also include asearch field 720 configured to receive a search query from a user. In response to the search query, thesearch engine 108 may generate search results for the search query. For example, the user may enter one or more skills or subjects for which the user would like to view an online course and submit the entered skill(s) or subject(s) as a search query. Thesearch engine 108 may then perform a search of available online courses using the submitted search query and return matching online courses as search results in theGUI 700. - In some example embodiments, the
online service 100 uses the corresponding identified dependency relation and determined relation direction for at least a portion of the plurality of target skill pairs in presenting search results to a searching user, such as by displaying potential job candidates to a recruiter. For example, thesearch engine 108 may receive a search query submitted by a second target user, such as a recruiter. The search query may include the second target skill of a target skill pair. In the example, although a profile of a first target user does not include the second target skill, the profile of the first target user includes a first target skill, which forms the target skill pair along with the second target skill. Thesearch engine 108 may select the profile of the first target user as a search result for the search query based on a determination that the profile of the first target user includes the first target skill, a determination that there is a dependency relation between the first target skill and the second target skill, and a determination that a relation direction of the target skill pair comprises the first target skill being dependent on the second target skill. In this example, despite the profile of the first target user not including the second target skill of the search query, thesearch engine 108 still selects the profile of the first target user because the inclusion of the first target skill in the profile of the first target user is predictive of the first target user actually having the second target skill because the first target skill depends on the second target skill according to the dependency relation and the relation direction of the target skill pair. In other words, although the profile of the first target user does not include the second target skill, thesearch engine 108 may treat the profile of the first target user as including the second target skill based on the dependency relation and the relation direction of the target skill pair. Thesearch engine 108 may then display, on a computing device of the second target user, a user interface element that identifies the profile of the first target user based on selecting the profile of the first target user, such as shown inFIG. 8 . In the example above, if the relation direction of the target skill pair comprises the second target skill being dependent on the first target skill instead of the first target skill being dependent on the second target skill, thesearch engine 108 does not treat the profile of the first target user as including the second target skill even though a dependency relation between the first target skill and the second target skill has been identified, since the relation direction of the target skill pair may indicate an order in which the first target skill and the second target skill occur, such as an order in which the first target skill and the second target skill are learned or acquired. -
FIG. 8 illustrates aGUI 800 in which user interface elements that identify profiles of users are displayed, in accordance with an example embodiment. In some example embodiments, thesearch engine 108 is configured to select profiles of users that are potential job candidates based at least in part on a search query submitted by a user who is searching (referred to as a “searching user”) for potential job candidates, and to cause the selected profiles of the users to be displayed on a search results page of theGUI 800 to the searching user. In theGUI 800, the searching user (e.g., a recruiter) may submit one or more terms of a search query using one or more user interface elements. For example, the searching user may submit the term(s) by either entering text into asearch field 820 or by using a customsearch filters panel 830 via which the searching user may select and enter the terms based on the corresponding category of the terms (e.g., job titles, locations, skills, companies, schools). In response to the search query submitted by the searching user, thesearch engine 108 may causeuser interface elements 810 that identify the selected profiles to be displayed on the search results page. As previously discussed above, despite a profile of a target user not including a second target skill of a search query, thesearch engine 108 may still select the profile of the target user based on a first target skill being included in the profile of the target user and the first target skill being dependent on the second target skill according to the dependency relation and the relation direction of the first target skill and the second target skill. -
FIG. 9 is a flowchart illustrating amethod 900 of training artificial intelligence models for use in determining dependency relations, in accordance with an example embodiment. Themethod 900 can be performed by processing logic that can comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions run on a processing device), or a combination thereof. In one implementation, themethod 900 is performed by theonline service 100 ofFIG. 1 , or any combination of one or more of its components (e.g., theartificial intelligence component 114, the application component 106), as described above. - At
operation 910, theonline service 100 generates, or otherwise obtains, training data comprising a plurality of reference skill pairs, with each reference skill pair comprising a corresponding first reference skill and a corresponding second reference skill. In some example embodiments, the plurality of reference skill pairs are included in the training data based on a co-occurrence of the corresponding first and second reference skills for each reference skill pair in the plurality of reference skill pairs. The co-occurrence may comprise the corresponding first and second reference skills co-occurring for a same entity, such that the plurality of reference skill pairs are included in the training data based on a determination that the corresponding first reference skill occurred for an entity and a determination that the corresponding second reference skill occurred for the same entity as the corresponding first reference skill. - In some example embodiments, the plurality of reference skill pairs being included in the training data is further based on a corresponding indication of a temporal order of the corresponding first and second reference skills for the same entity for each reference skill pair in the plurality of reference skill pairs. For example, the plurality of reference skill pairs may be included in the training data based on an indication of a chronological sequence including the occurrence of the corresponding first reference skill for an entity and the occurrence of the corresponding second reference skill for the same entity. Examples of the indication of the chronological sequence include, but are not limited to, a sequential playlist of online courses available to users for viewing, a history of online courses that have been watched by a user, and a history of a user adding skills to a profile of the user. These examples will be discussed in further detail below.
- In some example embodiments, the same entity comprises a sequential playlist of online courses available to users for viewing via the online service. For example, the same entity may comprise the sequential playlist discussed above with respect to
FIG. 3 . The first reference skill may be associated with a first online course in the sequence of online courses, and the second reference skill may be associated with a second online course in the sequence of online courses. The sequential playlist of online courses may be stored in and accessed from a database of theonline service 100. - In some example embodiments, the same entity comprises a history of online courses that have been watched by a user of the online service. The history of online courses may be stored in association with the user, where the first reference skill is associated with a first online course in the history of online courses and the second reference skill is associated with a second online course in the history of online courses. The history of online courses that have been watched by the user may be stored in and accessed from the
database 120. - In some example embodiments, the same entity comprises a history of a user adding skills to a profile of the user. The profile may be stored in a database of the
online service 100, such as in thedatabase 116. In one example, each time a user adds a skill to the profile of the user, such as via theGUI 400 inFIG. 4 , theonline service 100 may record instance of the user adding the skill as part of the history of the user adding skills to the profile of the user. The recorded instance may include the skill that was added and a corresponding timestamp for the addition. The history of the user adding skills to the profile of the user may be stored in and accessed from thedatabase 116 or from thedatabase 120. - In some example embodiments, the same entity comprises an online job posting that includes the first reference skill and the second reference skill. For example, the same entity may comprise the online job posting displayed in the
GUI 500 ofFIG. 5 . Other configurations of online job postings are also within the scope of the present disclosure. - At
operation 920, theonline service 100 trains a dependency model with a first machine learning algorithm using the training data. In some example embodiments, the dependency model comprises a logistic regression model or a data gradient boosted decision tree (GBDT) model. However, other types of machine learning models may be used as the dependency model. The training data includes the plurality of reference skill pairs, which are used in the training of the dependency model as positive examples of skill pairs having a dependency relation. As a result of the training, the dependency model may be trained to classify a given target skill pair as either having a dependency relation or not having a dependency relation. - At
operation 930, theonline service 100 trains a Bidirectional Encoder Representations from Transformers (BERT) model with a second machine learning algorithm using the training data. However, other types of machine learning models may be used in place of the BERT model. The training data includes the plurality of reference skill pairs, which are used in the training of the BERT model as positive examples of relation directions for dependency relations. The second machine learning algorithm may use the order in which the first reference skill and the second reference skill of each reference skill pair are provided to determine the direction of the relation direction. For example, for a first reference skill si and a second reference skill sj, a reference skill pair (si, sj) may be used as a positive example of a relation direction, while the same references skills provided in a different order (sj, si) may be omitted from use as a positive example of a relation direction, as the dependency between the first reference skill si and the second reference skill sj may only be in one direction, such as si being dependent on sj, but sj not being dependent on si. - At
operation 940, theonline service 100 identifies a corresponding dependency relation for each target skill pair in a plurality of target skill pairs using the dependency model. In some example embodiments, each target skill pair in the plurality of target skill pairs comprises a corresponding first target skill and a corresponding second target skill, where the corresponding dependency relation is between the corresponding first and second target skills of the corresponding target skill pair. Theonline service 100 may input the plurality of target skill pairs into the dependency model, and the dependency model may output, for each target skill pair, a classification of the target skill pair as either having a dependency relation or not having a dependency relation. For example, the dependency model may compute a probability value representing the probability that there is a dependency relation between the corresponding first target skill and the corresponding second target skill of the target skill pair, and then classify the target skill pair as having a dependency relation if the probability value satisfies a threshold value (e.g., if the probability value is equal to or greater than 0.5). - At
operation 950, theonline service 100, for each target skill pair in the plurality of target skill pairs, determines a corresponding relation direction using the BERT model. Theonline service 100 may input the plurality of target skill pairs into the BERT model, and the BERT model may output, for each target skill pair, a classification of the direction of the dependency relation between the corresponding first target skill and the corresponding second target skill of the target skill pair. For example, the BERT model may generate an output that either classifies the first target skill as depending on the second target skill or classifies the second target skill as depending on the first target skill. - By using a two-stage approach in which the dependency model is used in a first stage to identify dependency relations and the BERT model is used in a second stage to determine a relation direction of the identified dependency relations, the
online service 100 improves and maximizes accuracy and speed. While the BERT model is very accurate in identifying dependency relations, testing by the inventors of the present disclosure has indicated that the dependency model of the present disclosure is significantly faster than the BERT model in identifying dependency relations. Given the billions of potential target skill pairs to be processed, the use of the dependency model greatly improves the scalability of identifying dependency relations. Theonline service 100 uses the speed and scalability of the dependency model to identify target skill pairs that have dependency relations. The identified target skill pairs may then be fed into the BERT model to determine the relation directions, thereby using the accuracy of the BERT model to process a reduced workload provided by the dependency model. - At
operation 960, theonline service 100 uses the corresponding identified dependency relation and determined relation direction for at least a portion of the plurality of target skill pairs in an application of theonline service 100. For example, theonline service 100 may use the corresponding identified dependency relation and the determined relation direction for at least a portion of the plurality of target skill pairs in one or more of theapplication components 106. - In some example embodiments, the
online service 100 uses the corresponding identified dependency relation and determined relation direction for at least a portion of the plurality of target skill pairs in theprofile update service 112. For example, theprofile update service 112 may determine that a profile of a target user of theonline service 100 includes the corresponding first target skill of each target skill pair in the at least a portion of the plurality of target skill pairs. Theprofile update service 112 may then select the corresponding second target skill of each target skill pair in the at least a portion of the plurality of target skill pairs based on the corresponding identified dependency relation and determined relation direction for the at least a portion of the plurality of target skill pairs, and displaying, on a computing device of the target user, a corresponding selectable user interface element for each selected second target skill in the at least a portion of the plurality of target skill pairs, such as previously discussed with respect toFIG. 4 . The corresponding selectable user interface element may be configured to trigger storing of the corresponding second target skill as part of the profile of the target user in response to a selection of the corresponding selectable user interface element. - In some example embodiments, the
online service 100 uses the corresponding identified dependency relation and determined relation direction for at least a portion of the plurality of target skill pairs in presenting recommendations of online job postings to a target user. For example, an online job posting may include the second target skill of a target skill pair. In the example, although a profile of a first target user does not include the second target skill, the profile of the first target user includes a first target skill, which forms the target skill pair along with the second target skill. Therecommendation application 110 may select the online job posting to be recommended to the first target user based on a determination that the profile of the first target user includes the first target skill, a determination that there is a dependency relation between the first target skill and the second target skill, and a determination that a relation direction of the target skill pair comprises the first target skill being dependent on the second target skill. In this example, despite the profile of the first target user not including the second target skill of the online job posting, therecommendation application 110 still selects the online job posting because the inclusion of the first target skill in the profile of the first target user is predictive of the first target user actually having the second target skill because the first target skill depends on the second target skill according to the dependency relation and the relation direction of the target skill pair. In other words, although the profile of the first target user does not include the second target skill, the recommendation application may treat the profile of the first target user as including the second target skill based on the dependency relation and the relation direction of the target skill pair. Then, therecommendation application 110 may display, on a computing device of the first target user, a corresponding selectable user interface element for the online job posting based on the selecting of the online job posting. The corresponding selectable user interface element may be configured to, in response to its selection, trigger a display of details of the online job posting on the computing device of the target user or initiate an online application process for the online job posting on the computing device of the target user. In the example above, if the relation direction of the target skill pair comprises the second target skill being dependent on the first target skill instead of the first target skill being dependent on the second target skill, therecommendation engine 110 does not treat the profile of the first target user as including the second target skill even though a dependency relation between the first target skill and the second target skill has been identified, since the relation direction of the target skill pair may indicate an order in which the first target skill and the second target skill occur, such as an order in which the first target skill and the second target skill are learned or acquired. - In some example embodiments, the
online service 100 uses the corresponding identified dependency relation and determined relation direction for at least a portion of the plurality of target skill pairs in presenting recommendations of online courses to a target user. For example, an online course may include the second target skill of a target skill pair. In the example, although a profile of a first target user does not include the second target skill, the profile of the first target user includes a first target skill, which forms the target skill pair along with the second target skill. Therecommendation application 110 may select the online course to be recommended to the first target user based on a determination that the profile of the first target user includes the first target skill, a determination that there is a dependency relation between the first target skill and the second target skill, and a determination that a relation direction of the target skill pair comprises the second target skill being dependent on the first target skill. In this example, despite the profile of the first target user not including the second target skill of the online course, therecommendation application 110 still selects the online course because the inclusion of the first target skill in the profile of the first target user is predictive of the first target next acquiring the second target skill next because the second target skill depends on the first target skill according to the dependency relation and the relation direction of the target skill pair. Therecommendation application 110 may then display, on a computing device of the target user, a corresponding selectable user interface element for the online course based on the selecting the online course, such as shown inFIG. 7 . The corresponding selectable user interface element may be configured to, in response to its selection, trigger a playing of a multimedia file of the online course on the computing device or initiate an online process for playing the multimedia file of the online course on the computing device. - In some example embodiments, the
online service 100 uses the corresponding identified dependency relation and determined relation direction for at least a portion of the plurality of target skill pairs in presenting search results to a searching user, such displaying potential job candidates to a recruiter, as previously discussed. Thesearch engine 108 may then display, on a computing device of the second target user, a user interface element that identifies the profile of the first target user based on the selecting the profile of the first target user, such as shown inFIG. 8 . - It is contemplated that any of the other features described within the present disclosure can be incorporated into the
method 900. -
FIG. 10 is a flowchart illustrating anothermethod 1000 of training artificial intelligence models for use in determining dependency relations, in accordance with an example embodiment. Themethod 1000 can be performed by processing logic that can comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions run on a processing device), or a combination thereof. In one implementation, themethod 1000 is performed by theonline service 100 ofFIG. 1 , or any combination of one or more of its components (e.g., theartificial intelligence component 114, the application component 106), as described above. Themethod 1000 may include anoperation 1010 being performed afteroperation 950 and prior tooperation 960 of themethod 900 ofFIG. 9 . - At
operation 1010, theonline service 100 generates a directed graph using the corresponding identified dependency relation and determined relation direction for the plurality of target skill pairs. For example, theonline service 100 may generate the directedgraph 600 discussed above with respect toFIG. 6 . Then, themethod 1000 may proceed tooperation 960, where theonline service 100 may use the at least a portion of the plurality of target skills in the application of theonline service 100 by using the directed graph in the application of theonline service 100. In some example embodiments, theonline service 100 usesAlgorithm 2, discussed above, to generate the directed graph. However, theonline service 100 may generate the directed graph using other algorithms as well. - It is contemplated that any of the other features described within the present disclosure can be incorporated into the
method 1000. - Certain embodiments are described herein as including logic or a number of components or mechanisms. Components may constitute either software components (e.g., code embodied (1) on a non-transitory machine-readable medium or (2) in a transmission signal) or hardware-implemented components. A hardware-implemented component is tangible unit capable of performing certain operations and may be configured or arranged in a certain manner. In example embodiments, one or more computer systems (e.g., a standalone, client or server computer system) or one or more processors may be configured by software (e.g., an application or application portion) as a hardware-implemented component that operates to perform certain operations as described herein.
- In various embodiments, a hardware-implemented component may be implemented mechanically or electronically. For example, a hardware-implemented component may comprise dedicated circuitry or logic that is permanently configured (e.g., as a special-purpose processor, such as a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC)) to perform certain operations. A hardware-implemented component may also comprise programmable logic or circuitry (e.g., as encompassed within a programmable processor) that is temporarily configured by software to perform certain operations. It will be appreciated that the decision to implement a hardware-implemented component 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 term “hardware-implemented component” should be understood to encompass a tangible entity, be that an entity that is physically constructed, permanently configured (e.g., hardwired) or temporarily or transitorily configured (e.g., programmed) to operate in a certain manner and/or to perform certain operations described herein. Considering embodiments in which hardware-implemented components are temporarily configured (e.g., programmed), each of the hardware-implemented components need not be configured or instantiated at any one instance in time. For example, where the hardware-implemented components comprise a processor configured using software, the processor may be configured as respective different hardware-implemented components at different times. Software may accordingly configure a processor, for example, to constitute a particular hardware-implemented component at one instance of time and to constitute a different hardware-implemented component at a different instance of time.
- Hardware-implemented components can provide information to, and receive information from, other hardware-implemented components. Accordingly, the described hardware-implemented components may be regarded as being communicatively coupled. Where multiple of such hardware-implemented components exist contemporaneously, communications may be achieved through signal transmission (e.g., over appropriate circuits and buses) that connect the hardware-implemented components. In embodiments in which multiple hardware-implemented components are configured or instantiated at different times, communications between such hardware-implemented components may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware-implemented components have access. For example, one hardware-implemented component may perform an operation, and store the output of that operation in a memory device to which it is communicatively coupled. A further hardware-implemented component may then, at a later time, access the memory device to retrieve and process the stored output. Hardware-implemented components 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 components that operate to perform one or more operations or functions. The components referred to herein may, in some example embodiments, comprise processor-implemented components.
- Similarly, the methods described herein may be at least partially processor-implemented. For example, at least some of the operations of a method may be performed by one or more processors or processor-implemented components. The performance of certain of the 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 processor or processors may be located in a single location (e.g., within a home environment, an office environment or as a server farm), while in other embodiments the processors may be distributed across a number of locations.
- 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), these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., Application Program Interfaces (APIs)).
- Example embodiments may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Example embodiments may be implemented using a computer program product, e.g., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable medium for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers.
- A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a component, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
- In example embodiments, operations may be performed by one or more programmable processors executing a computer program to perform functions by operating on input data and generating output. Method operations can also be performed by, and apparatus of example embodiments may be implemented as, special purpose logic circuitry, e.g., a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC).
- The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In embodiments deploying a programmable computing system, it will be appreciated that both hardware and software architectures merit consideration. Specifically, it will be appreciated that the choice of whether to implement certain functionality in permanently configured hardware (e.g., an ASIC), in temporarily configured hardware (e.g., a combination of software and a programmable processor), or a combination of permanently and temporarily configured hardware may be a design choice. Below are set out hardware (e.g., machine) and software architectures that may be deployed, in various example embodiments.
-
FIG. 11 is a block diagram 1100 illustrating asoftware architecture 1102, which can be installed on any one or more of the devices described above.FIG. 11 is merely a non-limiting example of a software architecture, and it will be appreciated that many other architectures can be implemented to facilitate the functionality described herein. In various embodiments, thesoftware architecture 1102 is implemented by hardware such as amachine 1200 ofFIG. 12 that includesprocessors 1110,memory 1130, and input/output (I/O)components 1150. In this example architecture, thesoftware architecture 1102 can be conceptualized as a stack of layers where each layer may provide a particular functionality. For example, thesoftware architecture 1102 includes layers such as anoperating system 1104,libraries 1106,frameworks 1108, andapplications 1110. Operationally, theapplications 1110 invokeAPI calls 1112 through the software stack and receivemessages 1114 in response to the API calls 1112, consistent with some embodiments. - In various implementations, the
operating system 1104 manages hardware resources and provides common services. Theoperating system 1104 includes, for example, akernel 1120,services 1122, anddrivers 1124. Thekernel 1120 acts as an abstraction layer between the hardware and the other software layers, consistent with some embodiments. For example, thekernel 1120 provides memory management, processor management (e.g., scheduling), component management, networking, and security settings, among other functionality. Theservices 1122 can provide other common services for the other software layers. Thedrivers 1124 are responsible for controlling or interfacing with the underlying hardware, according to some embodiments. For instance, thedrivers 1124 can include display drivers, camera drivers, BLUETOOTH® or BLUETOOTH® Low Energy drivers, flash memory drivers, serial communication drivers (e.g., Universal Serial Bus (USB) drivers), Wi-Fi® drivers, audio drivers, power management drivers, and so forth. - In some embodiments, the
libraries 1106 provide a low-level common infrastructure utilized by theapplications 1110. Thelibraries 1106 can include system libraries 1130 (e.g., C standard library) that can provide functions such as memory allocation functions, string manipulation functions, mathematic functions, and the like. In addition, thelibraries 1106 can includeAPI libraries 1132 such as media libraries (e.g., libraries to support presentation and manipulation of various media formats such as Moving Picture Experts Group-4 (MPEG4), Advanced Video Coding (H.264 or AVC), Moving Picture Experts Group Layer-3 (MP3), Advanced Audio Coding (AAC), Adaptive Multi-Rate (AMR) audio codec, Joint Photographic Experts Group (JPEG or JPG), or Portable Network Graphics (PNG)), graphics libraries (e.g., an OpenGL framework used to render in two dimensions (2D) and three dimensions (3D) in a graphic context on a display), database libraries (e.g., SQLite to provide various relational database functions), web libraries (e.g., WebKit to provide web browsing functionality), and the like. Thelibraries 1106 can also include a wide variety ofother libraries 1134 to provide many other APIs to theapplications 1110. - The
frameworks 1108 provide a high-level common infrastructure that can be utilized by theapplications 1110, according to some embodiments. For example, theframeworks 1108 provide various GUI functions, high-level resource management, high-level location services, and so forth. Theframeworks 1108 can provide a broad spectrum of other APIs that can be utilized by theapplications 1110, some of which may be specific to aparticular operating system 1104 or platform. - In an example embodiment, the
applications 1110 include ahome application 1150, acontacts application 1152, abrowser application 1154, abook reader application 1156, alocation application 1158, amedia application 1160, amessaging application 1162, agame application 1164, and a broad assortment of other applications, such as a third-party application 1166. According to some embodiments, theapplications 1110 are programs that execute functions defined in the programs. Various programming languages can be employed to create one or more of theapplications 1110, structured in a variety of manners, such as object-oriented programming languages (e.g., Objective-C, Java, or C++) or procedural programming languages (e.g., C or assembly language). In a specific example, the third-party application 1166 (e.g., an application developed using the ANDROID™ or IOS™ software development kit (SDK) by an entity other than the vendor of the particular platform) may be mobile software running on a mobile operating system such as IOS™, ANDROID™, WINDOWS® Phone, or another mobile operating system. In this example, the third-party application 1166 can invoke the API calls 1112 provided by theoperating system 1104 to facilitate functionality described herein. -
FIG. 12 illustrates a diagrammatic representation of amachine 1200 in the form of a computer system within which a set of instructions may be executed for causing themachine 1200 to perform any one or more of the methodologies discussed herein, according to an example embodiment. Specifically,FIG. 12 shows a diagrammatic representation of themachine 1200 in the example form of a computer system, within which instructions 1216 (e.g., software, a program, anapplication 1210, an applet, an app, or other executable code) for causing themachine 1200 to perform any one or more of the methodologies discussed herein may be executed. For example, theinstructions 1216 may cause themachine 1200 to execute themethod 900 ofFIG. 9 or themethod 10 ofFIG. 10 . Additionally, or alternatively, theinstructions 1216 may implementFIGS. 1-8 , and so forth. Theinstructions 1216 transform the general,non-programmed machine 1200 into aparticular machine 1200 programmed to carry out the described and illustrated functions in the manner described. In alternative embodiments, themachine 1200 operates as a standalone device or may be coupled (e.g., networked) to other machines. In a networked deployment, themachine 1200 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 1200 may comprise, but not be limited to, a server computer, a client computer, a PC, a tablet computer, a laptop computer, a netbook, a set-top box (STB), a portable digital assistant (PDA), an entertainment media system, a cellular telephone, a smartphone, 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 1216, sequentially or otherwise, that specify actions to be taken by themachine 1200. Further, while only asingle machine 1200 is illustrated, the term “machine” shall also be taken to include a collection ofmachines 1200 that individually or jointly execute theinstructions 1216 to perform any one or more of the methodologies discussed herein. - The
machine 1200 may includeprocessors 1210,memory 1230, and I/O components 1250, which may be configured to communicate with each other such as via abus 1202. In an example embodiment, the processors 1210 (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 1212 and aprocessor 1214 that may execute theinstructions 1216. The term “processor” is intended to includemulti-core processors 1210 that may comprise two or more independent processors 1212 (sometimes referred to as “cores”) that may executeinstructions 1216 contemporaneously. AlthoughFIG. 12 showsmultiple processors 1210, themachine 1200 may include asingle processor 1212 with a single core, asingle processor 1212 with multiple cores (e.g., a multi-core processor),multiple processors 1210 with a single core,multiple processors 1210 with multiple cores, or any combination thereof. - The
memory 1230 may include amain memory 1232, astatic memory 1234, and astorage unit 1236, all accessible to theprocessors 1210 such as via thebus 1202. Themain memory 1232, thestatic memory 1234, and thestorage unit 1236 store theinstructions 1216 embodying any one or more of the methodologies or functions described herein. Theinstructions 1216 may also reside, completely or partially, within themain memory 1232, within thestatic memory 1234, within thestorage unit 1236, within at least one of the processors 1210 (e.g., within the processor's cache memory), or any suitable combination thereof, during execution thereof by themachine 1200. - The I/
O components 1250 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 1250 that are included in aparticular machine 1200 will depend on the type ofmachine 1200. 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 1250 may include many other components that are not shown inFIG. 12 . The I/O components 1250 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 1250 may includeoutput components 1252 andinput components 1254. Theoutput components 1252 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 1254 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 another pointing instrument), 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 1250 may includebiometric components 1256,motion components 1258,environmental components 1260, orposition components 1262, among a wide array of other components. For example, thebiometric components 1256 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 1258 may include acceleration sensor components (e.g., accelerometer), gravitation sensor components, rotation sensor components (e.g., gyroscope), and so forth. Theenvironmental components 1260 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 1262 may include location sensor components (e.g., a Global Positioning 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 1250 may includecommunication components 1264 operable to couple themachine 1200 to anetwork 1280 ordevices 1270 via acoupling 1282 and acoupling 1272, respectively. For example, thecommunication components 1264 may include a network interface component or another suitable device to interface with thenetwork 1280. In further examples, thecommunication components 1264 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 1270 may be another machine or any of a wide variety of peripheral devices (e.g., a peripheral device coupled via a USB). - Moreover, the
communication components 1264 may detect identifiers or include components operable to detect identifiers. For example, thecommunication components 1264 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 1264, 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. - The various memories (i.e., 1230, 1232, 1234, and/or memory of the processor(s) 1210) and/or the
storage unit 1236 may store one or more sets ofinstructions 1216 and data structures (e.g., software) embodying or utilized by any one or more of the methodologies or functions described herein. These instructions (e.g., the instructions 1216), when executed by the processor(s) 1210, cause various operations to implement the disclosed embodiments. - As used herein, the terms “machine-storage medium,” “device-storage medium,” and “computer-storage medium” mean the same thing and may be used interchangeably. The terms refer to a single or multiple storage devices and/or media (e.g., a centralized or distributed database, and/or associated caches and servers) that store
executable instructions 1216 and/or data. The terms shall accordingly be taken to include, but not be limited to, solid-state memories, and optical and magnetic media, including memory internal or external to theprocessors 1210. Specific examples of machine-storage media, computer-storage media, and/or device-storage media include non-volatile memory including, by way of example, semiconductor memory devices, e.g., erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), field-programmable gate array (FPGA), and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The terms “machine-storage media,” “computer-storage media,” and “device-storage media” specifically exclude carrier waves, modulated data signals, and other such media, at least some of which are covered under the term “signal medium” discussed below. - In various example embodiments, one or more portions of the
network 1280 may be an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (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 plain old telephone service (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 1280 or a portion of thenetwork 1280 may include a wireless or cellular network, and thecoupling 1282 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 1282 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 1216 may be transmitted or received over thenetwork 1280 using a transmission medium via a network interface device (e.g., a network interface component included in the communication components 1264) and utilizing any one of a number of well-known transfer protocols (e.g., HTTP). Similarly, theinstructions 1216 may be transmitted or received using a transmission medium via the coupling 1272 (e.g., a peer-to-peer coupling) to thedevices 1270. The terms “transmission medium” and “signal medium” mean the same thing and may be used interchangeably in this disclosure. The terms “transmission medium” and “signal medium” shall be taken to include any intangible medium that is capable of storing, encoding, or carrying theinstructions 1216 for execution by themachine 1200, and include digital or analog communications signals or other intangible media to facilitate communication of such software. Hence, the terms “transmission medium” and “signal medium” shall be taken to include any form of modulated data signal, carrier wave, and so forth. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. - The terms “machine-readable medium,” “computer-readable medium,” and “device-readable medium” mean the same thing and may be used interchangeably in this disclosure. The terms are defined to include both machine-storage media and transmission media. Thus, the terms include both storage devices/media and carrier waves/modulated data signals.
- Although an embodiment has been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the present disclosure. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. The accompanying drawings that form a part hereof, show by way of illustration, and not of limitation, specific embodiments in which the subject matter may be practiced. The embodiments illustrated are described in sufficient detail to enable those skilled in the art to practice the teachings disclosed herein. Other embodiments may be utilized and derived therefrom, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. This 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. Although specific embodiments have been illustrated and described herein, it should be appreciated that any arrangement calculated to achieve the same purpose may be substituted for the specific embodiments shown. This disclosure is intended to cover any and all adaptations or variations of various embodiments. Combinations of the above embodiments, and other embodiments not specifically described herein, will be apparent to those of skill in the art upon reviewing the above description.
Claims (20)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US17/412,753 US11816636B2 (en) | 2021-08-26 | 2021-08-26 | Mining training data for training dependency model |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US17/412,753 US11816636B2 (en) | 2021-08-26 | 2021-08-26 | Mining training data for training dependency model |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20230086724A1 true US20230086724A1 (en) | 2023-03-23 |
| US11816636B2 US11816636B2 (en) | 2023-11-14 |
Family
ID=85573085
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US17/412,753 Active 2041-10-05 US11816636B2 (en) | 2021-08-26 | 2021-08-26 | Mining training data for training dependency model |
Country Status (1)
| Country | Link |
|---|---|
| US (1) | US11816636B2 (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116719514A (en) * | 2023-08-08 | 2023-09-08 | 安徽思高智能科技有限公司 | A BERT-based RPA code automatic generation method and device |
| US12254508B1 (en) | 2013-05-06 | 2025-03-18 | Overstock.Com, Inc. | System and method of mapping product attributes between different schemas |
Citations (28)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140278633A1 (en) * | 2013-03-12 | 2014-09-18 | Kevin M. Daly | Skill-based candidate matching |
| US20170032324A1 (en) * | 2015-07-30 | 2017-02-02 | Linkedln Corporation | Optimal course selection |
| US20170213179A1 (en) * | 2016-01-26 | 2017-07-27 | Linkedin Corporation | Bridging skills gap |
| US20170221164A1 (en) * | 2016-01-29 | 2017-08-03 | Linkedln Corporation | Determining course need based on member data |
| US20180261118A1 (en) * | 2017-03-10 | 2018-09-13 | BrightMind Labs Inc. | Systems And Methods For Autonomous Creation Of Personalized, Self-Updating Curricula |
| US20180349501A1 (en) * | 2017-06-05 | 2018-12-06 | Linkedln Corporation | Embedding user categories using graphs for enhancing searches based on similarities |
| US20190163798A1 (en) * | 2017-11-30 | 2019-05-30 | Microsoft Technology Licensing, Llc | Parser for dynamically updating data for storage |
| US20190188742A1 (en) * | 2017-12-20 | 2019-06-20 | International Business Machines Corporation | Forecasting demand across groups of skills |
| US20190197487A1 (en) * | 2017-12-22 | 2019-06-27 | Microsoft Technology Licensing, Llc | Automated message generation for hiring searches |
| US20190220547A1 (en) * | 2018-01-17 | 2019-07-18 | Coursera, Inc. | Content discovery using a skills graph |
| US20190340945A1 (en) * | 2018-05-03 | 2019-11-07 | Microsoft Technology Licensing, Llc | Automatic generation and personalization of learning paths |
| US10535018B1 (en) * | 2016-10-31 | 2020-01-14 | Microsoft Technology Licensing, Llc | Machine learning technique for recommendation of skills in a social networking service based on confidential data |
| US20200242714A1 (en) * | 2019-01-28 | 2020-07-30 | Salesforce.Com, Inc. | Contextual and profile targeted content analysis and recommendation in an on-demand computing services environment |
| US20210056651A1 (en) * | 2019-08-23 | 2021-02-25 | Accenture Global Solutions Limited | Artificial Intelligence Driven Worker Training And Skills Management System |
| US20210142789A1 (en) * | 2019-11-08 | 2021-05-13 | Vail Systems, Inc. | System and method for disambiguation and error resolution in call transcripts |
| US20210303783A1 (en) * | 2020-03-31 | 2021-09-30 | Capital One Services, Llc | Multi-layer graph-based categorization |
| US20210365780A1 (en) * | 2020-05-22 | 2021-11-25 | Fujitsu Limited | Method of generating model and information processing device |
| US11210636B1 (en) * | 2017-08-14 | 2021-12-28 | Enfuego Technologies, LLC | Systems and methods for generating proposals |
| US20210406735A1 (en) * | 2020-06-25 | 2021-12-30 | Pryon Incorporated | Systems and methods for question-and-answer searching using a cache |
| US20220020464A1 (en) * | 2020-07-16 | 2022-01-20 | Aleksander Zivkovic | System and method for predictive determination of factors that afflict mental state of a user |
| US20220027573A1 (en) * | 2020-07-25 | 2022-01-27 | Zensar Technologies Limited | Interactive dialogue system and a method for facilitating human machine conversation |
| US20220051080A1 (en) * | 2020-08-14 | 2022-02-17 | Eightfold AI Inc. | System, method, and computer program for transformer neural networks |
| US20220094649A1 (en) * | 2020-09-23 | 2022-03-24 | Capital One Services, Llc | Systems and methods for generating dynamic conversational responses using trained machine learning models |
| US20220100958A1 (en) * | 2020-09-30 | 2022-03-31 | Astrazeneca Ab | Automated Detection of Safety Signals for Pharmacovigilance |
| US11321671B2 (en) * | 2019-08-27 | 2022-05-03 | Dhi Group Inc. | Job skill taxonomy |
| US20220284374A1 (en) * | 2021-03-03 | 2022-09-08 | Accenture Global Solutions Limited | Skills gap management platform |
| US20220309516A1 (en) * | 2021-03-23 | 2022-09-29 | Accenture Global Solutions Limited | Automated account maintenance and fraud mitigation tool |
| US20220327488A1 (en) * | 2020-12-10 | 2022-10-13 | Jpmorgan Chase Bank, N.A. | Method and system for resume data extraction |
-
2021
- 2021-08-26 US US17/412,753 patent/US11816636B2/en active Active
Patent Citations (28)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140278633A1 (en) * | 2013-03-12 | 2014-09-18 | Kevin M. Daly | Skill-based candidate matching |
| US20170032324A1 (en) * | 2015-07-30 | 2017-02-02 | Linkedln Corporation | Optimal course selection |
| US20170213179A1 (en) * | 2016-01-26 | 2017-07-27 | Linkedin Corporation | Bridging skills gap |
| US20170221164A1 (en) * | 2016-01-29 | 2017-08-03 | Linkedln Corporation | Determining course need based on member data |
| US10535018B1 (en) * | 2016-10-31 | 2020-01-14 | Microsoft Technology Licensing, Llc | Machine learning technique for recommendation of skills in a social networking service based on confidential data |
| US20180261118A1 (en) * | 2017-03-10 | 2018-09-13 | BrightMind Labs Inc. | Systems And Methods For Autonomous Creation Of Personalized, Self-Updating Curricula |
| US20180349501A1 (en) * | 2017-06-05 | 2018-12-06 | Linkedln Corporation | Embedding user categories using graphs for enhancing searches based on similarities |
| US11210636B1 (en) * | 2017-08-14 | 2021-12-28 | Enfuego Technologies, LLC | Systems and methods for generating proposals |
| US20190163798A1 (en) * | 2017-11-30 | 2019-05-30 | Microsoft Technology Licensing, Llc | Parser for dynamically updating data for storage |
| US20190188742A1 (en) * | 2017-12-20 | 2019-06-20 | International Business Machines Corporation | Forecasting demand across groups of skills |
| US20190197487A1 (en) * | 2017-12-22 | 2019-06-27 | Microsoft Technology Licensing, Llc | Automated message generation for hiring searches |
| US20190220547A1 (en) * | 2018-01-17 | 2019-07-18 | Coursera, Inc. | Content discovery using a skills graph |
| US20190340945A1 (en) * | 2018-05-03 | 2019-11-07 | Microsoft Technology Licensing, Llc | Automatic generation and personalization of learning paths |
| US20200242714A1 (en) * | 2019-01-28 | 2020-07-30 | Salesforce.Com, Inc. | Contextual and profile targeted content analysis and recommendation in an on-demand computing services environment |
| US20210056651A1 (en) * | 2019-08-23 | 2021-02-25 | Accenture Global Solutions Limited | Artificial Intelligence Driven Worker Training And Skills Management System |
| US11321671B2 (en) * | 2019-08-27 | 2022-05-03 | Dhi Group Inc. | Job skill taxonomy |
| US20210142789A1 (en) * | 2019-11-08 | 2021-05-13 | Vail Systems, Inc. | System and method for disambiguation and error resolution in call transcripts |
| US20210303783A1 (en) * | 2020-03-31 | 2021-09-30 | Capital One Services, Llc | Multi-layer graph-based categorization |
| US20210365780A1 (en) * | 2020-05-22 | 2021-11-25 | Fujitsu Limited | Method of generating model and information processing device |
| US20210406735A1 (en) * | 2020-06-25 | 2021-12-30 | Pryon Incorporated | Systems and methods for question-and-answer searching using a cache |
| US20220020464A1 (en) * | 2020-07-16 | 2022-01-20 | Aleksander Zivkovic | System and method for predictive determination of factors that afflict mental state of a user |
| US20220027573A1 (en) * | 2020-07-25 | 2022-01-27 | Zensar Technologies Limited | Interactive dialogue system and a method for facilitating human machine conversation |
| US20220051080A1 (en) * | 2020-08-14 | 2022-02-17 | Eightfold AI Inc. | System, method, and computer program for transformer neural networks |
| US20220094649A1 (en) * | 2020-09-23 | 2022-03-24 | Capital One Services, Llc | Systems and methods for generating dynamic conversational responses using trained machine learning models |
| US20220100958A1 (en) * | 2020-09-30 | 2022-03-31 | Astrazeneca Ab | Automated Detection of Safety Signals for Pharmacovigilance |
| US20220327488A1 (en) * | 2020-12-10 | 2022-10-13 | Jpmorgan Chase Bank, N.A. | Method and system for resume data extraction |
| US20220284374A1 (en) * | 2021-03-03 | 2022-09-08 | Accenture Global Solutions Limited | Skills gap management platform |
| US20220309516A1 (en) * | 2021-03-23 | 2022-09-29 | Accenture Global Solutions Limited | Automated account maintenance and fraud mitigation tool |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12254508B1 (en) | 2013-05-06 | 2025-03-18 | Overstock.Com, Inc. | System and method of mapping product attributes between different schemas |
| CN116719514A (en) * | 2023-08-08 | 2023-09-08 | 安徽思高智能科技有限公司 | A BERT-based RPA code automatic generation method and device |
Also Published As
| Publication number | Publication date |
|---|---|
| US11816636B2 (en) | 2023-11-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10628506B2 (en) | Using log data to train for automated sourcing | |
| US10628432B2 (en) | Personalized deep models for smart suggestions ranking | |
| US10606847B2 (en) | Generation of training data for ideal candidate search ranking model | |
| US10984385B2 (en) | Query building for search by ideal candidates | |
| US11436522B2 (en) | Joint representation learning of standardized entities and queries | |
| US10990899B2 (en) | Deep and wide machine learned model for job recommendation | |
| US11074521B2 (en) | Career path recommendation engine | |
| US10373075B2 (en) | Smart suggestions for query refinements | |
| US10042894B2 (en) | Temporal-based professional similarity | |
| US11048705B2 (en) | Query intent clustering for automated sourcing | |
| US20170344556A1 (en) | Dynamic alteration of weights of ideal candidate search ranking model | |
| US11250340B2 (en) | Feature contributors and influencers in machine learned predictive models | |
| US20180232434A1 (en) | Proactive and retrospective joint weight attribution in a streaming environment | |
| US20170300862A1 (en) | Machine learning algorithm for classifying companies into industries | |
| US20170344554A1 (en) | Ideal candidate search ranking | |
| US10956515B2 (en) | Smart suggestions personalization with GLMix | |
| US20230306351A1 (en) | Securely computing skill level using data anonymization | |
| US10572835B2 (en) | Machine-learning algorithm for talent peer determinations | |
| US20190286746A1 (en) | Search Engine Quality Evaluation Via Replaying Search Queries | |
| US11816636B2 (en) | Mining training data for training dependency model | |
| US11797619B2 (en) | Click intention machine learned models | |
| US20200104421A1 (en) | Job search ranking and filtering using word embedding | |
| US20240330739A1 (en) | Machine learning framework for taxonomy graph construction | |
| US20230334308A1 (en) | Deep reinforcement learning for skill recommendation | |
| US20230077840A1 (en) | Machine learning model for specialty knowledge base |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:WU, LIWEI;MA, WENJIA;YANG, JAEWON;AND OTHERS;SIGNING DATES FROM 20210824 TO 20210825;REEL/FRAME:057299/0201 |
|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT RECEIVED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |