施元鵬,單劍峰
(南京郵電大學電子與光學工程學院與微電子學院,江蘇 南京 210046)
隨著移動互聯(lián)網(wǎng)時代的蓬勃發(fā)展,傳統(tǒng)的線下招聘方式正在慢慢淡出人們的視線,取而代之的是信息量巨大的互聯(lián)網(wǎng)招聘?;ヂ?lián)網(wǎng)招聘模式有著覆蓋率廣、處理效率較高、成本低的優(yōu)勢,因此受到許多招聘企業(yè)雇主的青睞。依據(jù)艾瑞咨詢2020年發(fā)布的中國網(wǎng)絡(luò)招聘市場發(fā)展研究報告可知,2019年網(wǎng)絡(luò)招聘的企業(yè)雇主數(shù)量已經(jīng)達到了486.6萬家[1],招聘用戶的規(guī)模更是達到2億。因此,求職者需要瀏覽大量的招聘信息才能做出優(yōu)質(zhì)的選擇。實現(xiàn)一個簡歷和崗位信息之間的相互匹配,能夠更好的幫助求職者篩選出合適崗位信息。
目前,在招聘領(lǐng)域比較常見的推薦算法為:基于內(nèi)容的推薦算法、基于協(xié)同過濾的推薦算法和混合模型的推薦算法等[2]。文獻[3]是一種基于內(nèi)容的推薦算法,該算法通過閔可夫斯基距離進行研究,實現(xiàn)人員與崗位之間的匹配。文獻[4]為基于內(nèi)容的個性化推薦,作者通過一種新的無監(jiān)督貝葉斯多視圖模型來實現(xiàn)人員技能和工作需求之間的匹配。文獻[5]提出了一種個性化偏好的協(xié)同過濾推薦算法,根據(jù)畢業(yè)生的成績與畢業(yè)生的個人偏好相結(jié)合,來進行職位推薦。文獻[6]利用了招聘職位與簡歷之間的基礎(chǔ)信息進行相似度計算然后推薦。以上文獻的研究主要通過求職者的技能、成績、學歷、專業(yè)等數(shù)據(jù)來實現(xiàn)推薦,對于求職者的工作經(jīng)驗、項目經(jīng)驗等文本信息缺少提取,而這些信息往往又是企業(yè)招聘時所看重的,因此在實際應(yīng)用中并不太適用。文獻[7]提出了一種可解釋的混合型就業(yè)推薦算法,利用TF-IDF的方法進行文本的信息提取,建立職位關(guān)系來實現(xiàn)就業(yè)推薦。由于TF-IDF的方法主要是通過詞頻的方式進行特征提取,缺少語義信息,因此導(dǎo)致簡歷和崗位之間相似度計算的準確率并不高。隨著人工智能自然語言處理(NLP)領(lǐng)域的發(fā)展,研究者Tomas Mikolov在2013年提出了word2vec的方法很好的解決了詞與詞之間的語義特性[8]。文獻[9]就是基于word2vec的方法處理簡歷與崗位的長文本信息,并對IT行業(yè)的簡歷進行個性化推薦。
本文是基于機器學習模型doc2vec來進行研究。將數(shù)據(jù)文本劃分為:結(jié)構(gòu)化和非結(jié)構(gòu)化文本。在結(jié)構(gòu)化文本中,提出了偏好權(quán)重因子α來平衡求職者和企業(yè)之間由于不同因素帶來的相似度計算偏差。在非結(jié)構(gòu)文本中,利用機器學習doc2vec算法來解決簡歷與崗位信息之間的長文本信息匹配,并利用參數(shù)χ對其相似度結(jié)果進行優(yōu)化,解決doc2vec缺乏考慮文本長度的問題。相比于word2vec,doc2vec的方法能更好的處理句子及段落之間的語義相似性。
余弦相似度可以反應(yīng)兩個數(shù)據(jù)之間的相似性。在文本數(shù)據(jù)領(lǐng)域中,可以通過文本之間對應(yīng)的詞向量特征值集合來計算相似度[10-11]。若計算值越高,則表示兩個文本越相似,余弦相似度的計算式(1)如下
(1)
其中wv1i、wv2i分別表示文本D1、D2的特征向量分量。
Doc2vec(Paragraph Vector、Sentence Embeddings)是一種無監(jiān)督式的神經(jīng)網(wǎng)絡(luò)算法,由Mikolov和Le基于word2vec模型的思想上提出[12]。Word2vec在預(yù)測詞向量時,預(yù)測出來的詞通常是具有詞義的。例如,詞向量‘工作’會相對于‘桌子’離‘上班’距離更近,即詞向量‘工作’與‘上班’更相似。因此,這種方法克服了傳統(tǒng)詞袋模型缺乏語義的問題。
Doc2vec訓練段落向量的方法和word2vec訓練詞向量的方法大體相同。不同之處在于,doc2vec在輸入層會多添加一個可以被看作是段落主旨的段落向量(Paragraph vector),并且它會作為輸入的一部分來進行訓練。該模型有兩種不同的訓練方式,一種是PV-DM(Distributed Memory Model of paragraph vectors),即預(yù)測一個單詞是通過上下文的單詞來實現(xiàn),另一種是PV-DBOW(Distributed Bag of Words of paragraph vector),即通過一個單詞來預(yù)測上下文的單詞。本文主要通過PV-DM的方法來實現(xiàn)文本相似度計算,下面是關(guān)于PV-DM原理的講述。
如圖1所示,在doc2vec中,每個單詞被映射到唯一的向量上,表示為矩陣W中的某一列。段落也同樣被映射到一個唯一的向量上,由矩陣D的某一列來表示。每次從一句話中提取若干個詞,將其中的一個詞作為預(yù)測詞,其它詞作為輸入詞。然后將輸入詞的詞向量和本段話的段落向量作為輸入層的輸入,通過向量的加權(quán)計算得到預(yù)測詞的詞向量。經(jīng)過這樣多次滑動采樣,詞向量的表達會越來越準確。
圖1 PV-DM原理
通過多次對同一段落不同句子的訓練,段落向量也會趨向穩(wěn)定,即段落表達的主旨也會越來越明確。需要注意的是,訓練出來的段落向量僅在本段落中有效,而詞向量是在所有的文本中都有效的。所以在預(yù)測新的段落時,模型中的詞向量以及映射層到輸出層的softmax 權(quán)重參數(shù)是不變的,只需將段落向量進行隨機初始化再放入模型中,并在不斷迭代的過程中更新paragraph vector參數(shù)就能計算出一個穩(wěn)定的段落向量。
總結(jié)以上整個doc2vec模型的過程,主要為兩部分:
1)訓練模型,在數(shù)據(jù)集上進行訓練并得到詞向量、softmax權(quán)重參數(shù)。
2)預(yù)測段落向量,首先根據(jù)新段落中的詞得到相應(yīng)的詞向量,通過其詞向量、softmax權(quán)重參數(shù)以及隨機初始化的段落向量,在模型中不斷迭代更新段落向量,最終得到新段落的向量。
在電子簡歷中通常會包含許多的文本信息,例如個人基本信息、學歷、期望薪資、工作經(jīng)歷等不同類型的文本數(shù)據(jù),需要分別對其做不同的特征處理。文本數(shù)據(jù)的處理及匹配條件見表1。
表1 簡歷文本數(shù)據(jù)的分類及處理
簡歷和崗位信息中的數(shù)據(jù)主要分為結(jié)構(gòu)化文本數(shù)據(jù)、非結(jié)構(gòu)化文本數(shù)據(jù)。在結(jié)構(gòu)化文本數(shù)據(jù)中,定類數(shù)據(jù)通過判斷是否相等或包含來判斷,對于定序數(shù)據(jù),首先進行特征處理,再來判斷其是否滿足條件,對于定距/定比數(shù)據(jù)直接通過其大小來判斷。簡歷文本相似度匹配推薦算法模型見圖2。
圖2 簡歷文本相似度匹配推薦算法模型
根據(jù)上面所述的數(shù)據(jù)類型,主要考慮的因素為7類:城市、職位、薪資、工作性質(zhì)、學歷、工作年限、專業(yè)之間的匹配,即符合匹配條件的為1,反之為0。匹配條件如(2)式
(2)
其中,i∈{1,2,3,4,5,6,7},分別對應(yīng)城市、職位、薪資、工作性質(zhì)、學歷、工作年限、專業(yè)。
將城市、職位、薪資、工作性質(zhì)劃入為用戶偏好型因素,將專業(yè)、工作年限、學歷劃入為企業(yè)偏好型因素。用λi來表示各類因素之間的權(quán)重,用戶偏好型和企業(yè)偏好型的相似度計算公式分別為式(3)和式(4)
(3)
(4)
由于權(quán)重λi的不同,導(dǎo)致計算出來的相似度過于偏向用戶或者企業(yè)問題。通過偏好權(quán)重因子α來平衡之間的關(guān)系。改進后的結(jié)構(gòu)化文本相似度計算公式為
Simstructured(R,J)=αSimuser+(1-α)Simcompany
(5)
非結(jié)構(gòu)化文本主要指簡歷中的項目經(jīng)歷、工作經(jīng)驗等長文本數(shù)據(jù)與崗位信息中的崗位要求/職責的長文本數(shù)據(jù)。通過jieba和哈工大的停用詞表對其進行分詞和去停詞,再利用2.2章節(jié)中介紹的doc2vec訓練得到段落向量,最后計算兩者的相似性,相似度計算公式如式(6)所示
(6)
其中,pv1、pv2分別表示不同的段落向量,pv1i、pv2i表示向量pv1、pv2的分量。
由于段落向量長度是相同的,它取決于訓練doc2vec模型中的vector_size參數(shù),因此,在利用doc2vec計算相似性的情況下,缺少考慮段落長度的差異性對相似度計算的影響。文獻[13]在計算句子相似度時同樣考慮了句長的特性,并取得較好的結(jié)果。本文利用參數(shù)χ進行修正:
(7)
abs()為絕對值函數(shù),用于計算段落1(p1)和段落2(p2)之間詞個數(shù)的差異。當段落長度差異越大,χ就越小,段落長度十分接近時,χ接近于1。改進后,兩個段落的相似度計算公式如下
(8)
綜合以上結(jié)構(gòu)化與非結(jié)構(gòu)化數(shù)據(jù)的相似度方法,得出整個模型的相似度表達式
Sim(R,J)=Simstructured(R,J)+Simunstructured(R,J)
(9)
本文的實驗數(shù)據(jù)來源于智聯(lián)招聘聯(lián)合某大廠舉辦的數(shù)據(jù)挖掘比賽中的脫敏數(shù)據(jù)集。一共篩選出1825個用戶與42690個崗位產(chǎn)生的60059條行為數(shù)據(jù),并且每條行為數(shù)據(jù)都有用人單位對其簡歷的滿意/不滿意的反饋信息,將其看做簡歷與崗位符合匹配的標簽。按照7:3的比列將其分為訓練數(shù)據(jù)集和測試數(shù)據(jù)集,并進行5折交叉驗證。
在實驗的評測方面,根據(jù)TOP-n推薦的匹配結(jié)果,分別計算準確率、召回率、F1值。它們的計算公式分別如下
(10)
(11)
(12)
其中,TP表示TOP-n推薦中符合匹配的數(shù)目,F(xiàn)P表示TOP-n推薦不符合匹配的數(shù)目,F(xiàn)N表示沒有被TOP-n推薦的符合匹配的數(shù)目。
Step1:對數(shù)據(jù)集的文本進行分類,并對各類數(shù)據(jù)進行特征處理,對非結(jié)構(gòu)化文本進行分詞、去停詞。
Step2:劃分數(shù)據(jù)集,對所有長文本中的詞進行詞向量訓練。
Step3:選取合適的權(quán)重系數(shù)λi,并通過(5)式計算結(jié)構(gòu)化文本的相似度。
Step4:利用doc2vec模型預(yù)測文本之間的段落向量,并通過(8)式計算之間相似度。
Step5:通過式(9)計算整體相似度,并根據(jù)其大小進行TOP排序推薦。
Step6:分別計算TOP-n的準確率、召回率、F1值及覆蓋率。
Step7:改變訓練集與測試集,重復(fù)5次step3-step6的過程。
Step8:統(tǒng)計5次實驗的平均準確率、召回率及F1值。
本次實驗的λi系數(shù)權(quán)重分別為[0.12,0.16,0.19,0.07,0.17,0.15,0.14],權(quán)重因子α與結(jié)構(gòu)化文本相似度計算的平均準確率的關(guān)系如圖3。
圖3 α與平均準確率的關(guān)系
從圖3可知,權(quán)重因子α=0.46時最佳。
為了驗證doc2vec的有效性,本文與TF-IDF和word2vec的方法進行對比。抽取top-3、top-6、top-9來對比最終實驗結(jié)果。
從表2可以看出無論是TOP-3、TOP-6、TOP-9進行推薦,doc2vec的各項指標都明顯優(yōu)于TF-IDF和word2vec的方法。
本文進行還通過參數(shù)修正后的doc2vec與word2vec(WMD)方法和原doc2vec之間的對比。其中,word2vec(WMD)是利用單詞移動距離的方式來計算文本之間的相似度[14]。實驗對比見表3。
從表3中可以看出,改進后的算法各項指標都優(yōu)于word2vec(WMD)和doc2vec的方法。相比于dov2vec,各項指標也有一定的提升,并隨著Top增加,提升更明顯。特別是當Top增加到9時,F(xiàn)1值明顯提高了2%左右。
表2 不同相似度算法的實驗結(jié)果
表3 改進后doc2vec算法的實驗結(jié)果對比
本文通過文本相似度計算的方法來實現(xiàn)簡歷與崗位之間的匹配,通過TOP-n的推薦來驗證匹配的可行性,并與其它文本相似度計算方法進行比較。通過實驗證明經(jīng)過參數(shù)χ修正后的相似度計算方法比其它方法有更高的準確率、召回率和F1值。并且本文還通過α權(quán)重因子平衡求職者與企業(yè)之間的偏好關(guān)系,使得相似度的計算更優(yōu)。同樣,本文的方法有一定的局限性,詞向量的訓練是需要大量的樣本,由于數(shù)據(jù)集中的樣本數(shù)量有限,存在一些低頻詞的詞向量精度不足的問題,對最后的匹配結(jié)果及指標也有一定影響。