Applying the Knowledge Graph Concept to Improve Job Recommendations
With the rapid development of business, many companies start to deal with larger scale of data that contains more complicated relationships. And knowledge graph or graph technology is referenced more and more when people want to improve this situation. Therefore, in this blog, we want to introduce the basic concept of knowledge graph with some application examples.
The concept “knowledge graph” has been used in literature very early. In 2021, Google announced a more modern introduction for the knowledge graph and its application with Google Search. [1] Today, the concept starts to have more applications on many business cases.
But what is a knowledge graph?
A knowledge graph is a database that uses a graph-structured data model to integrate data which includes not only data but also the relationships between the data (see Figure 1).
Figure 1: Knowledge graph structure
As an example, let’s consider the sentence: Data Scientist is a position at the company SAP. And as we said earlier, if we want to represent the data graphically, we use nodes and relationships. So, if you look at this simple graph in Figure 2, it is a graph database showing some facts from the sentence above. For example, between the node ‘Job’ and the node ‘Company’, there’s a relationship called ‘from’. That represents the fact we mentioned earlier and explains how a graph database connects everything together in one graph.
Figure 2: Knowledge graph structure with example
At SAP, we apply the concept of knowledge graphs to deliver business value. For example, the
SAP Innovation Center Network on the West Coast is working on a project to improve the job search results in SAP SuccessFactors. The team is building a knowledge graph related to job ads, candidate profiles, information about required qualifications such as skills and education, as well as details about the candidates such as degrees, years of experience, and more. By using a knowledge graph, we can support job matching so that candidates have a better experience when applying to SAP.
Why We Need Knowledge Graphs
Some of you might be curious why knowledge graphs would be helpful in a recommender system. The power of knowledge graphs becomes clear once we start thinking about connections. When we want to use a model which contains many inter-relations between properties, knowledge graphs allow us to model the relationship with a very clear structure. For example, Figure 3 shows four kinds of nodes: job, skills, company and education. The relationships between these nodes provide us with abundant information from the graph.
With such a graph structure, we have multiple new ways to improve job recommendations. For example, if a candidate applies for the Data Scientist position at SAP, he or she may also be interested in the Data Engineer job, as these two positions are offered by the same company, have similar educational requirements, and share some qualification requirements. Even though modeling this with stored data in a table structure is possible, it’s more difficult. Modeling such a structure in a graph structure database is easier to accomplish.
Figure 3: Connections in Knowledge Graph
Components of Knowledge Graphs
Now let’s talk about the components of the knowledge graph we created. We would like to extract some key information from the job posting data as well as the resume data and put them into the knowledge graph. This way they can be used as properties of the job or candidates when we make recommendations.
- Extracting the facts from unstructured documents
There can be different information in a job posting, for example, education requirements, work experience requirements and skills requirements. We use natural language processing (NLP) techniques to extract the information and input it into our graph database. For more complex cases, other deep-learning models can be used, for example, question-answering.
When a candidate is getting a job recommendation and they would also get suggested skills related to the job. We found out that there could be some redundant information within these suggested skills. To provide a better match between job and candidate, our knowledge graph can also find out more relationships between skills and help to remove this kind of redundant information.
For example, a candidate is exploring software engineer jobs, and get one job suggesting that the skills of java and object-oriented programming are related. For the candidate, this may be redundant information. Because we consider object-oriented programming as the hypernym of Java, as the word ‘object-oriented programming’ has a broader meaning under which more specific words like Java falls. And in this case, we might want to remove one of them in the recommendation here.
We want to capture the relationship between ‘Java’ and ‘object-oriented programming’ and add it to our graph database, just like what Figure 4 is showing. And this can help us to recognize the relationships and remove the redundant information, which would provide a better job matching experience for our candidates.
Figure 4: Hypernym Relationship
Methods to Capture the Relationship
One of the methods we use to capture the relationship between the skills are Hearst Patterns. These are hierarchical relations based on semantic information which we use to extract hypernym relations [2].
Let me give you an example:
Figure 5 shows the following half-sentence: Programming languages such as Python. Based on the keyword ‘such as’, we can see that ‘programming languages’ is the hypernym of the word ‘Python’. This is how we extract hypernym relationships from our job posting data.
Figure 5: Hearst Pattern example
Another method we use to extract relationships between skills is
WordNet [3]. It’s a database which links semantic relations between words in more than 200 languages, including synonyms, hyponyms, and hypernyms. You can consider WordNet as a combination and extension of a dictionary. When you check a word with it, it can provide you with the hypernym of that word.
Knowledge Graph Example Query
Now that you have an idea of what a knowledge graph is and what it can be used for, here are some examples queried from the graph. The graph is based on the job recommender system we mentioned previously. And Figure 6 and 7 are some examples about skills required by software engineers and data scientists.
Hopefully you like this blog, and if you find the blog interesting, please feel free to share your thoughts or questions in a comment. And if you wish to know more about similar content, you can find other similar posts by clicking on the tags assigned to this post. Thank you for your reading.
Figure 6: Skills required by software engineers
Figure 7: Skills required by data scientists
REFERENCES
[1] Amit Singhal. 2012. Introducing the Knowledge Graph: things, not strings.
Google Blog.
[2] Indurkhya, N., Damerau, F. (2010). Handbook of Natural Language Processing. Chapman & Hall/CRC. p. 594.
[3] “WordNets in the World”. Global WordNet Association. Retrieved 19 January 2020.