- 問題描述
在人崗匹配中,JD文件由多句工作描述和崗位要求組成,CV文件主要由求職者的工作經歷組成。傳統人崗匹配中透過對求職者簡歷的工作經歷文字和JD崗位資訊進行文字挖掘,兩者的技能和能力是否契合作為判斷JD和CV是否匹配的重要依據。早期的人崗匹配版本基於term重要性,bm25以及職能標籤等資訊做簡單的匹配模型,但是這些方法很難挖掘特徵與特徵之間的關係以及潛在的資訊互動特徵,難以表達完整的崗位(JD)和簡歷(CV)的語義資訊。鑑於此,本文提出了基於LSTM+double Attention網路的語義匹配模型[1]。
- 模型介紹
句子相似度計算是自然語言處理中重要而又基礎的研究工作。例如:在對話系統中,用於查詢最可能的答案;在文件檢索中,用於查詢最為相似的文件;在雙句關係判斷任務中,用於判斷兩個句子之間關係的類別等。目前常見的句子相似度計算方法大體上可以分為三類:
(1)基於表層資訊的相似度計算,其主要是透過句子中詞性相似度、詞序相似度和句長相似度等資訊來綜合計算兩個句子的相似度[2]。
(2)基於句子結構的相似度計算。這種方法主要考查量句子在結構上的相似性,如基於本體機構、詞類串結構、詞性及詞性依存關係等進行相似度計算[3]。
(3)基於詞向量的語義表徵來計算相似度。其透過垂直領域的文字資料訓練得到word embedding, 藉助詞向量得到句子表徵,然後計算cosine距離[4]。
JD和CV的語義相似度計算,其本質是雙文件關係判斷任務或是長文字相似度匹配問題,和句子相似度計算不同之處在於文件是由多個句子組成。句子表徵是文件表徵的基礎,本文的句子表徵學習透過LSTM網路[5-6]學習到每個詞或字語義表示,同時透過attention 機制[7-8]學習到每個詞語義的權重。長短期記憶(Long short-term memory, LSTM)是一種特殊的RNN,主要是為了解決長序列訓練過程中的梯度消失和梯度爆炸問題。簡單來說,就是相比普通的RNN,LSTM透過對文字序列的不斷迭代有選擇繼承歷史資訊以獲得當前更好的語義表徵,所以其能夠在更長的序列中有更好的表現。attention 機制的作用是給不同的詞或字分配不同的注意力,比如“高階java開發工程師”,顯然“java”這個詞更重要,需要分配更多的注意力,相反,如果對其進行簡單的語義疊加,那麼重要詞的資訊就會被抑制,從而會丟掉很多關鍵的語義特徵,造成資訊損失。
得到句子的語義表徵後,同樣可以利用attention機制得到文件的語義表徵,透過對JD和CV 的資料分析發現,其實JD和CV是否相關,其重要特徵多集中在title和內容的幾個句子當中,並不會分佈在所有的句子當中,也就是說捕獲那些含有重要語義特徵的句子是關鍵,這也是為何要在句子層面引入attention機制的原因。
目的:
判斷JD和CV 的語義相關程度,分為0:不相關,1:內容相關,2:內容和領域都相關。
技術方案:LSTM+double Attention 孿生網路模型,如圖一所示。
1 捕獲關鍵句子和關鍵詞, double+attention 機制。
2 利用LSTM模型提取句子的語義特徵。
圖一↑
實現流程:
1 構建訓練資料(JD, CV)對,構造合理負樣本(JD, CV)對。
2 對JD和CV進行分句,以句子為單位進行分詞,去除停用詞,JD和CV的title進行char cut操作,id化。
3 載入pre_trained embedding,透過embedding layer 得到 word embedding。
4 透過LSTM+attention 得到 sentence vector。
5 得到JD和CV的sentence vector後,繼續加一層attention layer,得到document vector。
6 全連線+softmax, 得到分類結果。
- 結果分析
模型經過訓練後,在測試集上分類準確率為89.36%,f1 score為83.96%,如果不考慮領域是否相關,即語義相關和不相關,二分類準確率為96.39%,f1 score為96.25%。稍加改造在實際應用也有不錯效果。圖二是一個“自動駕駛深度學習演算法工程師”的崗位資訊及推薦系統推薦的結果展示,可以發現推薦結果排名靠前的CV其內容和領域都是和JD語義很相關的,這也驗證了模型的效果。
圖二↑
圖三是JD和CV的sentence attention的視覺化熱力圖,左側是JD sentence attention熱力圖,右側是CV sentence attention熱力圖,顏色越深表明句子的權重越高。可以看出JD和CV的title的句子權重比較高,其實在一般的JD和CV中title都是權重比較高的部分,但是像:“技術經理”,“研發小微主”,“專員”,“工程師”等JD case,其title 句子權重比較小,重要的句子要在描述內容中尋找。從圖三中可以看出,JD, CV內容中和“演算法”,“自動駕駛”相關的句子權重都比較高,說明sentence level 的attention機制是符合預期的。
圖三↑
圖四↑
圖四是JD, CV 句子層面的char level或word level的attention視覺化熱力圖 ,其中只展示了部分重要句子中詞的權重分佈,顏色越深,表示字或詞的權重越高。透過簡單的計算term weight = sentence_attention*char_attention 即可得到top words,展示如下:
JD top words: [(深度學習, 20.822678), (自動駕駛, 12.59064), (三維點雲, 6.618764), (環境感知, 5.927), (cloud, 3.1689138), (演算法, 3.0718648), (模組, 2.660974), (計算機視覺, 2.4465554), (立體視覺, 2.443054), (網路結構設計, 2.0044193), (物體檢測, 1.897428)]
CV top words:[(演算法, 17.713745), (深度學習, 10.472152), (研究, 9.460823), (慣導, 3.709963), (導航演算法, 2.04389), (嵌入式, 1.4608734), (無人駕駛, 1.1148125), (總體設計, 0.6105186), (gps, 0.5366095)]
char level attention 機制的作用就是找出句子中的關鍵語義特徵,透過熱力圖可以發現,在重要的句子中相關的關鍵詞權重確實比較高。
- 總結
句子相似度計算在自然語言處理領域中是一項基礎性研究工作,並衍生出文件相似度計算任務。本文對前人的研究進行了總結和歸類,並提出了LSTM+double attention孿生網路模型,透過對結果的分析,表明了本方法在人崗匹配中對候選人的簡歷和企業招聘崗位進行精準匹配的有效性,有助於提升人崗匹配推薦系統的效果。
參考文獻:
[1] Huang P S, He X, Gao J, et al. Learning deep structured semantic models for web search using clickthrough data[C]//Proceedings of the 22nd ACM international conference on Information & Knowledge Management. ACM, 2013: 2333-2338.
[2] Zhang Lin, Hu Jie. Sentence similarity computing for FAQ question answering system[J]. Journal of Zhengzhou University: Natural Science Edition, 2010, 42(1): 57-61.
[3] Lan Yanling, Chen Jianchao. Chinese sentence structures similarity computation based on POS and POS dependency[J]. Computer Engineering, 2011, 37(10): 47-49.
[4] Chen Lisha. The research and implementation on WordNetbased sentence similarity of automatic question answering system[D]. Guangzhou: South China University of Technology, 2014.
[5] Sundermeyer M, Schlüter R, Ney H. LSTM neural networks for language modeling[C]//Thirteenth annual conference of the international speech communication association. 2012.
[6] Karpathy A, Joulin A, Fei-Fei L F. Deep fragment embeddings for bidirectional image sentence mapping[C]//Advances in neural information processing systems. 2014: 1889-1897.
[7] Cho K, Van Merriënboer B, Bahdanau D, et al. On the properties of neural machine translation: Encoder-decoder approaches[J]. arXiv preprint arXiv:1409.1259, 2014.
[8] Yin W, Schütze H, Xiang B, et al. Abcnn: Attention-based convolutional neural network for modeling sentence pairs[J]. Transactions of the Association for Computational Linguistics, 2016, 4: 259-272.