背景介紹
人力資源行業其實是做關於人的決策的資料密集型行業,其中的傳統資料就包括簡歷、JD、面試評價、績效等。隨著時代和技術的發展,對資料的處理已經從簡單人工處理進入到了人工智慧技術的應用,而知識圖譜則能把這些資料連線起來,挖掘其中更多價值,幫助企業管理層及HR們更明智的做出關於人的決策。
什麼是知識圖譜?
在網際網路時代,搜尋引擎是人們線上獲取資訊和知識的重要工具。當使用者輸入一個查詢詞,搜尋引擎會反饋它認為與這個關鍵詞最相關的網頁。
直到2012年5月,搜尋引擎巨頭谷歌在它的搜尋頁面中首次引入“知識圖譜”:使用者除了得到搜尋網頁連結外,還將看到與查詢詞有關的更加智慧化的答案。
從雜亂的網頁到結構化的實體知識,搜尋引擎利用知識圖譜能夠為使用者提供更具條理的資訊,甚至順著知識圖譜可以探索更深入、廣泛和完整的知識體系,讓使用者發現他們意想不到的知識。谷歌高階副總裁艾米特·辛格博士一語道破知識圖譜的重要意義所在:“構成這個世界的是實體(things),而非字串(not strings)”。
知識圖譜旨在描述真實世界中存在的各種實體或概念。其中,每個實體或概念用一個全域性唯一確定的ID來標識,稱為它們的標識(identifier)。類似於我們對於一個網頁會有一個URL,對於資料庫中的一條記錄會有一個主鍵id等思想是一樣的,強調去刻畫thing,這裡的thing是和傳統web上的網頁對比較的。每個屬性—值對(attribute-valuepair,又稱AVP)用來刻畫實體的內在特性,而關係(relation)用來連線兩個實體,刻畫它們之間的關聯。知識圖譜亦可被看作是一張巨大的圖,圖中的節點表示實體或概念,而圖中的邊則由屬性或關係構成。上述圖模型可用W3C提出的資源描述框架RDF或屬性圖(property graph)來表示。
e成技能實體知識圖譜示例
圖例說明:
實體:方形框為概念/類,圓形框為例項(具備唯一的本體,不與其他例項存在上下位關係)
關係:常用關係為subclassof(概念之間的上下位關係),instanceof(概念與例項的上下位關係),use(使用),part_of(包含)
人力資源行業應用場景
人才盤點
人崗匹配:對已有的jd/簡歷資料做了充分的深加工,使之構成知識圖譜,簡歷和JD的匹配不是基於關鍵詞而是對簡歷和需求的深度瞭解,甚至是相似崗位大資料的基礎構成知識網路,達成精細化匹配。
人才畫像:透過圖譜推理補全,可以對員工進行全方位的技能以及素質描畫,基於完備的人才畫像,可以更好的對其晉升及培養提供指導意見。
Chat Bot
基於知識圖譜的智慧問答機器人,可以在多輪對話中,跟蹤並推理使用者潛在意圖和缺失知識點,在面試及人才盤點場景中可以更智慧理解使用者真實需求。
知識圖譜的構建
知識圖譜的構建過程,主要分為兩個部分:首先從各種資料來源中抽取構建圖譜所需的候選實體(概念)以及屬性關係,第二步需要將這些獨立零散的知識體系整合整合。並最終儲存在特定的資料結構中。
圖譜儲存
常見知識圖譜資料儲存方式:
1.三元組表(S,P,O):類似RDF儲存結構,以元組為單元進行儲存,語義較為明確,但存在大量自連線的操作,開銷巨大
2.屬性表:屬性相似的主語聚為一張表,類似關係型資料結構,每一條資料代表一個實體,每一列代表一個屬性。
目前圖結構儲存有兩種通用的儲存方案:RDF儲存 和 圖資料庫(Graph Database)。 圖資料庫的結構定義相比RDF資料庫更為通用,實現了圖結構中的節點,邊以及屬性來進行圖資料的儲存,典型的開源圖資料庫就是Neo4j/Dgraph/tinkerpop/OrientDB等, 這種做法的優點是資料庫本身提供完善的圖查詢語言、支援各種圖挖掘演算法。
本文介紹三元組+圖資料庫的儲存方式,使用Dgraph圖資料庫。Dgraph 是一個可擴充套件的,分散式的,低延遲的圖資料庫,目標是提供 Google 生產水平的規模和吞吐量,在超過 TB 的結構資料裡,為使用者提供足夠低延遲的實時查詢。Dgraph有獨立開發的網頁端查詢和操作介面,同時支援 GraphQL 作為查詢語言。
實體提取
實體定義:
能夠獨立存在的,作為一切屬性的基礎和萬物本原的東西,也就是說實體是屬性賴以存在的基礎,必須是自在的,也就是獨立的、不依附於其他東西而存在的。
資料來源:e成科技已經有8萬註冊企業使用者,積累了上億份簡歷資料,以此作為資料來源可以廣泛覆蓋多行業人才知識體系
實體型別:證照/公司/部門/職能/行業/專業/學校/技能等八大實體
模型提取:使用了當前業界通用的CRF序列標註模型結合領域專屬詞表
關係抽取
常見語義關係主要包括:同義關係、上下位關係、部分整體關係和因果關係等。其中上下位關係是一種非常重要的語義關係而且在知識圖譜的構建過程中佔有很大的比重。上下位關係的抓取就成為構建知識圖譜的核心之一。
上下位關係的抓取分為有監督的和無監督的,以下我們將各自進行介紹:
有監督模型
基於遠端監督(Distant Supervision)和卷積神經網路(CNN)相結合的方法對上下位關係進行提取以及後續可以改進的地方。PCNNs(Piecewise Convolutional Neural Networls)模型是由Zeng et al. 在2015年提出的,該模型主要解決了以下兩個問題:第一,對於遠端監督的wrong label問題,模型採用了多個示例進行學習訓練,抽取置信度高的樣本訓練模型;第二,解決了傳統特徵抽取特徵錯誤或者無效的問題,PCNN利用卷積神經網路進行自動特徵學習。
主要計算步驟如下:
步驟一:切詞,對文字進行切詞,並標記實體的位置。
步驟二:向量化(Vector Representation),利用word2vec對切分的詞進行word embedding(d維)表示,position embedding (d維)採用隨機初始化。這樣就將一段文字表示成了d×S,其中S是文字的token數。
步驟三:卷積(Convolution)構造卷積核對步驟二的矩陣進卷積操作
步驟四:池化(pooling),這裡採用的是max-pooling,但是這裡與一般的池化層有一定的區別,這裡池化的位置是實體的分割位置。
步驟五:Softmax分類輸出。
無監督模型
有監督模型對於訓練樣本的標註以及語料都有比較高的要求。在實際應用中,無監督模型可以在沒有標註資料的情況下獲得部分資料的實體上下位關係,同時也可以支援有監督的方法。
1.基於pattern的方法,例如熟悉CNN、LSTM等神經網路。在例句中CNN和LSTM就是神經網路(上位詞)的下位詞
2.根據假設Distributional Inclusion Hypothesis(DIH)即下位詞的上下文包含與上位詞的上下文和實體詞的上下文來發現上下位關係
外部知識體系
知識圖譜的構建與知識體系積累已經取得了很多研究成果,使用相對成熟的外部知識源補充手工構建的知識圖譜也是一種常用手段。
在這次人力資源圖譜構建過程中,主要使用了wikidata以及mba智庫兩個外部資料來源。
Wikidata是一個大型資料庫,由維基媒體德國分會首先提出,其目標是開發“世界知識的一個協作編輯的資料庫”。該資料庫提取了包括中文版在內的不同語言版本的維基百科和Freebase中具有共同認知的條目,並設想透過這樣的共享資料庫,提高維基百科內容的質量和一致性 。更重要的是 Wikidata非常重視資料的來源,並對其進行標註。該專案在2014年已完成,目前總條目數已經達到14755076個,且在持續增長中。
MBA智庫百科是一部內容開放的百科全書,也是人人可以參與編寫的百科全書。其目標是專注於經濟管理領域知識的建立與分享。該資料庫中的詞條按照領域進行了分類,並構成了一個樹形的多級領域結構。對於人力資源行業,常見的Wikidata等資料庫中對該領域的覆蓋率不夠;而MBA智庫百科中的經管類資料則對提升資料的覆蓋率起到了一定的作用。
實體對齊/連結
對於多個外部資料來源引入後,會出現大量的相似實體,故需要引入實體對齊/連結技術。
實體對齊/連結(ObjectAlignment):旨在發現具有不同標識實體但卻代表真實世界中同一物件的那些實體,並將這些實體歸併為一個具有全域性唯一標識的實體物件新增到知識圖譜中。目前常用的方式是對實體進行聚類分析,聚類的關鍵在於定義合適的相似度計算。
本文介紹兩種相似度計算:具有相同描述的實體可能代表同一實體(字元相似);具有相同鄰居的實體可能指向同一個物件(結構相似)。
後續工作
知識圖譜的構建是一個浩大的工程,本文僅列舉部分常用模組,實體消歧/知識推理/關係補全等其他相關工作將另文介紹。
參考文獻
Baoxu Shi, Tim Weninger,Open-World Knowledge Graph Completion,AAAI,2018
Zhuang Yan, Li Guoliang, Feng Jianhua,A Survey on Entity Alignment of Knowledge Base,2016