施元鵬,單劍峰
(南京郵電大學電子與光學工程學院與微電子學院,江蘇 南京 210046)
隨著移動互聯網時代的蓬勃發展,傳統的線下招聘方式正在慢慢淡出人們的視線,取而代之的是信息量巨大的互聯網招聘。互聯網招聘模式有著覆蓋率廣、處理效率較高、成本低的優勢,因此受到許多招聘企業雇主的青睞。依據艾瑞咨詢2020年發布的中國網絡招聘市場發展研究報告可知,2019年網絡招聘的企業雇主數量已經達到了486.6萬家[1],招聘用戶的規模更是達到2億。因此,求職者需要瀏覽大量的招聘信息才能做出優質的選擇。實現一個簡歷和崗位信息之間的相互匹配,能夠更好的幫助求職者篩選出合適崗位信息。
目前,在招聘領域比較常見的推薦算法為:基于內容的推薦算法、基于協同過濾的推薦算法和混合模型的推薦算法等[2]。文獻[3]是一種基于內容的推薦算法,該算法通過閔可夫斯基距離進行研究,實現人員與崗位之間的匹配。文獻[4]為基于內容的個性化推薦,作者通過一種新的無監督貝葉斯多視圖模型來實現人員技能和工作需求之間的匹配。文獻[5]提出了一種個性化偏好的協同過濾推薦算法,根據畢業生的成績與畢業生的個人偏好相結合,來進行職位推薦。文獻[6]利用了招聘職位與簡歷之間的基礎信息進行相似度計算然后推薦。以上文獻的研究主要通過求職者的技能、成績、學歷、專業等數據來實現推薦,對于求職者的工作經驗、項目經驗等文本信息缺少提取,而這些信息往往又是企業招聘時所看重的,因此在實際應用中并不太適用。文獻[7]提出了一種可解釋的混合型就業推薦算法,利用TF-IDF的方法進行文本的信息提取,建立職位關系來實現就業推薦。由于TF-IDF的方法主要是通過詞頻的方式進行特征提取,缺少語義信息,因此導致簡歷和崗位之間相似度計算的準確率并不高。隨著人工智能自然語言處理(NLP)領域的發展,研究者Tomas Mikolov在2013年提出了word2vec的方法很好的解決了詞與詞之間的語義特性[8]。文獻[9]就是基于word2vec的方法處理簡歷與崗位的長文本信息,并對IT行業的簡歷進行個性化推薦。
本文是基于機器學習模型doc2vec來進行研究。將數據文本劃分為:結構化和非結構化文本。在結構化文本中,提出了偏好權重因子α來平衡求職者和企業之間由于不同因素帶來的相似度計算偏差。在非結構文本中,利用機器學習doc2vec算法來解決簡歷與崗位信息之間的長文本信息匹配,并利用參數χ對其相似度結果進行優化,解決doc2vec缺乏考慮文本長度的問題。相比于word2vec,doc2vec的方法能更好的處理句子及段落之間的語義相似性。
余弦相似度可以反應兩個數據之間的相似性。在文本數據領域中,可以通過文本之間對應的詞向量特征值集合來計算相似度[10-11]。若計算值越高,則表示兩個文本越相似,余弦相似度的計算式(1)如下

(1)
其中wv1i、wv2i分別表示文本D1、D2的特征向量分量。
Doc2vec(Paragraph Vector、Sentence Embeddings)是一種無監督式的神經網絡算法,由Mikolov和Le基于word2vec模型的思想上提出[12]。Word2vec在預測詞向量時,預測出來的詞通常是具有詞義的。例如,詞向量‘工作’會相對于‘桌子’離‘上班’距離更近,即詞向量‘工作’與‘上班’更相似。因此,這種方法克服了傳統詞袋模型缺乏語義的問題。
Doc2vec訓練段落向量的方法和word2vec訓練詞向量的方法大體相同。不同之處在于,doc2vec在輸入層會多添加一個可以被看作是段落主旨的段落向量(Paragraph vector),并且它會作為輸入的一部分來進行訓練。該模型有兩種不同的訓練方式,一種是PV-DM(Distributed Memory Model of paragraph vectors),即預測一個單詞是通過上下文的單詞來實現,另一種是PV-DBOW(Distributed Bag of Words of paragraph vector),即通過一個單詞來預測上下文的單詞。本文主要通過PV-DM的方法來實現文本相似度計算,下面是關于PV-DM原理的講述。
如圖1所示,在doc2vec中,每個單詞被映射到唯一的向量上,表示為矩陣W中的某一列。段落也同樣被映射到一個唯一的向量上,由矩陣D的某一列來表示。每次從一句話中提取若干個詞,將其中的一個詞作為預測詞,其它詞作為輸入詞。然后將輸入詞的詞向量和本段話的段落向量作為輸入層的輸入,通過向量的加權計算得到預測詞的詞向量。經過這樣多次滑動采樣,詞向量的表達會越來越準確。

圖1 PV-DM原理
通過多次對同一段落不同句子的訓練,段落向量也會趨向穩定,即段落表達的主旨也會越來越明確。需要注意的是,訓練出來的段落向量僅在本段落中有效,而詞向量是在所有的文本中都有效的。所以在預測新的段落時,模型中的詞向量以及映射層到輸出層的softmax 權重參數是不變的,只需將段落向量進行隨機初始化再放入模型中,并在不斷迭代的過程中更新paragraph vector參數就能計算出一個穩定的段落向量。
總結以上整個doc2vec模型的過程,主要為兩部分:
1)訓練模型,在數據集上進行訓練并得到詞向量、softmax權重參數。
2)預測段落向量,首先根據新段落中的詞得到相應的詞向量,通過其詞向量、softmax權重參數以及隨機初始化的段落向量,在模型中不斷迭代更新段落向量,最終得到新段落的向量。
在電子簡歷中通常會包含許多的文本信息,例如個人基本信息、學歷、期望薪資、工作經歷等不同類型的文本數據,需要分別對其做不同的特征處理。文本數據的處理及匹配條件見表1。

表1 簡歷文本數據的分類及處理
簡歷和崗位信息中的數據主要分為結構化文本數據、非結構化文本數據。在結構化文本數據中,定類數據通過判斷是否相等或包含來判斷,對于定序數據,首先進行特征處理,再來判斷其是否滿足條件,對于定距/定比數據直接通過其大小來判斷。簡歷文本相似度匹配推薦算法模型見圖2。

圖2 簡歷文本相似度匹配推薦算法模型
根據上面所述的數據類型,主要考慮的因素為7類:城市、職位、薪資、工作性質、學歷、工作年限、專業之間的匹配,即符合匹配條件的為1,反之為0。匹配條件如(2)式

(2)
其中,i∈{1,2,3,4,5,6,7},分別對應城市、職位、薪資、工作性質、學歷、工作年限、專業。
將城市、職位、薪資、工作性質劃入為用戶偏好型因素,將專業、工作年限、學歷劃入為企業偏好型因素。用λi來表示各類因素之間的權重,用戶偏好型和企業偏好型的相似度計算公式分別為式(3)和式(4)

(3)

(4)
由于權重λi的不同,導致計算出來的相似度過于偏向用戶或者企業問題。通過偏好權重因子α來平衡之間的關系。改進后的結構化文本相似度計算公式為
Simstructured(R,J)=αSimuser+(1-α)Simcompany
(5)
非結構化文本主要指簡歷中的項目經歷、工作經驗等長文本數據與崗位信息中的崗位要求/職責的長文本數據。通過jieba和哈工大的停用詞表對其進行分詞和去停詞,再利用2.2章節中介紹的doc2vec訓練得到段落向量,最后計算兩者的相似性,相似度計算公式如式(6)所示

(6)
其中,pv1、pv2分別表示不同的段落向量,pv1i、pv2i表示向量pv1、pv2的分量。
由于段落向量長度是相同的,它取決于訓練doc2vec模型中的vector_size參數,因此,在利用doc2vec計算相似性的情況下,缺少考慮段落長度的差異性對相似度計算的影響。文獻[13]在計算句子相似度時同樣考慮了句長的特性,并取得較好的結果。本文利用參數χ進行修正:

(7)
abs()為絕對值函數,用于計算段落1(p1)和段落2(p2)之間詞個數的差異。當段落長度差異越大,χ就越小,段落長度十分接近時,χ接近于1。改進后,兩個段落的相似度計算公式如下

(8)
綜合以上結構化與非結構化數據的相似度方法,得出整個模型的相似度表達式
Sim(R,J)=Simstructured(R,J)+Simunstructured(R,J)
(9)
本文的實驗數據來源于智聯招聘聯合某大廠舉辦的數據挖掘比賽中的脫敏數據集。一共篩選出1825個用戶與42690個崗位產生的60059條行為數據,并且每條行為數據都有用人單位對其簡歷的滿意/不滿意的反饋信息,將其看做簡歷與崗位符合匹配的標簽。按照7:3的比列將其分為訓練數據集和測試數據集,并進行5折交叉驗證。
在實驗的評測方面,根據TOP-n推薦的匹配結果,分別計算準確率、召回率、F1值。它們的計算公式分別如下

(10)

(11)

(12)
其中,TP表示TOP-n推薦中符合匹配的數目,FP表示TOP-n推薦不符合匹配的數目,FN表示沒有被TOP-n推薦的符合匹配的數目。
Step1:對數據集的文本進行分類,并對各類數據進行特征處理,對非結構化文本進行分詞、去停詞。
Step2:劃分數據集,對所有長文本中的詞進行詞向量訓練。
Step3:選取合適的權重系數λi,并通過(5)式計算結構化文本的相似度。
Step4:利用doc2vec模型預測文本之間的段落向量,并通過(8)式計算之間相似度。
Step5:通過式(9)計算整體相似度,并根據其大小進行TOP排序推薦。
Step6:分別計算TOP-n的準確率、召回率、F1值及覆蓋率。
Step7:改變訓練集與測試集,重復5次step3-step6的過程。
Step8:統計5次實驗的平均準確率、召回率及F1值。
本次實驗的λi系數權重分別為[0.12,0.16,0.19,0.07,0.17,0.15,0.14],權重因子α與結構化文本相似度計算的平均準確率的關系如圖3。

圖3 α與平均準確率的關系
從圖3可知,權重因子α=0.46時最佳。
為了驗證doc2vec的有效性,本文與TF-IDF和word2vec的方法進行對比。抽取top-3、top-6、top-9來對比最終實驗結果。
從表2可以看出無論是TOP-3、TOP-6、TOP-9進行推薦,doc2vec的各項指標都明顯優于TF-IDF和word2vec的方法。
本文進行還通過參數修正后的doc2vec與word2vec(WMD)方法和原doc2vec之間的對比。其中,word2vec(WMD)是利用單詞移動距離的方式來計算文本之間的相似度[14]。實驗對比見表3。
從表3中可以看出,改進后的算法各項指標都優于word2vec(WMD)和doc2vec的方法。相比于dov2vec,各項指標也有一定的提升,并隨著Top增加,提升更明顯。特別是當Top增加到9時,F1值明顯提高了2%左右。

表2 不同相似度算法的實驗結果

表3 改進后doc2vec算法的實驗結果對比
本文通過文本相似度計算的方法來實現簡歷與崗位之間的匹配,通過TOP-n的推薦來驗證匹配的可行性,并與其它文本相似度計算方法進行比較。通過實驗證明經過參數χ修正后的相似度計算方法比其它方法有更高的準確率、召回率和F1值。并且本文還通過α權重因子平衡求職者與企業之間的偏好關系,使得相似度的計算更優。同樣,本文的方法有一定的局限性,詞向量的訓練是需要大量的樣本,由于數據集中的樣本數量有限,存在一些低頻詞的詞向量精度不足的問題,對最后的匹配結果及指標也有一定影響。