朱 瑜, 魏嘉銀, 盧友軍, 王 琳, 江 漫
(貴州民族大學(xué) 數(shù)據(jù)科學(xué)與信息工程學(xué)院, 貴陽(yáng) 550025)
為了找到滿足崗位需求的人才,傳統(tǒng)方法是由招聘人員手動(dòng)審查求職者的簡(jiǎn)歷,以決定是否提供面試機(jī)會(huì)。 然而,面對(duì)海量的簡(jiǎn)歷,招聘人員不得不花費(fèi)大量的時(shí)間和精力篩選簡(jiǎn)歷,優(yōu)中選優(yōu)以便能夠找到合適的求職者。 傳統(tǒng)的簡(jiǎn)歷審查方式存在招聘速度慢、成本高等問(wèn)題。 因此,如何從簡(jiǎn)歷中挖掘出求職者自身的價(jià)值并將其與已有的職位相匹配成為一個(gè)亟待解決的問(wèn)題,這個(gè)問(wèn)題則稱為人崗匹配問(wèn)題。
職位推薦作為人才招聘中的一項(xiàng)重要任務(wù),已經(jīng)有許多學(xué)者對(duì)其進(jìn)行研究。 早期研究者根據(jù)用戶的學(xué)歷以及用戶在每個(gè)職位上的點(diǎn)擊、瀏覽時(shí)間等交互信息,采用協(xié)同過(guò)濾等推薦算法向用戶推薦職位[1]。 早期方法忽視了工作和簡(jiǎn)歷文檔的文本語(yǔ)義信息,因此,為了充分利用簡(jiǎn)歷和職位要求中豐富的文本語(yǔ)義信息,大多數(shù)研究將人崗匹配任務(wù)視為文本匹配任務(wù),就是將工作描述和簡(jiǎn)歷內(nèi)容表示為維數(shù)相同的隱藏向量,然后計(jì)算2 個(gè)向量的匹配得分,并據(jù)此預(yù)測(cè)簡(jiǎn)歷與職位的匹配程度[2]。
CNN 作為近年來(lái)最流行的深度學(xué)習(xí)算法之一,已被廣泛應(yīng)用于人崗匹配領(lǐng)域。 Nasser 等學(xué)者[3]將簡(jiǎn)歷分為不同的類別,并提出了一個(gè)CNN 模型,將簡(jiǎn)歷與工作配對(duì)。 Zhu 等學(xué)者[4]提出了一個(gè)PJFNN模型,將簡(jiǎn)歷和職位描述中嵌入的每個(gè)詞分別用2個(gè)CNN 模型進(jìn)行建模,并利用簡(jiǎn)歷和職位之間的余弦相似度計(jì)算匹配分?jǐn)?shù)。 Khatua 等學(xué)者[5]使用Twitter 中的雙卷積網(wǎng)絡(luò)來(lái)匹配招聘人員和求職者。雖然CNN 模型提取局部特征效果較好,但是容易忽略單詞之間的順序和關(guān)系,導(dǎo)致語(yǔ)義特征提取不夠準(zhǔn)確[6]。 LSTM 可以更有效地處理文本信息,更高效地挖掘文本潛在的語(yǔ)義信息,緩解梯度爆炸問(wèn)題。于是,Zhou 等學(xué)者[7]將LSTM 應(yīng)用于文本分類領(lǐng)域,提高了文本分類的準(zhǔn)確度。 Qin 等學(xué)者[8]將分層RNN 模型應(yīng)用于工作文檔,提出了一種基于分層能力感知注意力機(jī)制的循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)來(lái)學(xué)習(xí)文本的語(yǔ)義表示。 Jiang 等學(xué)者[9]通過(guò)LSTM 模型學(xué)習(xí)求職者和招聘人員的隱含意圖,結(jié)合語(yǔ)義生成求職者和招聘人員的有效表示。 為了充分發(fā)揮CNN與RNN 提取特征時(shí)的優(yōu)勢(shì),許多研究者將CNN 與LSTM 結(jié)合使用,以便提高模型提取特征的能力。如:李超凡等學(xué)者[10]提出了一種基于注意力機(jī)制結(jié)合CNN-BiLSTM 的文本分類模型,解決了中文電子病歷文本高度稀疏且分類效果不佳的問(wèn)題。 吉興全等學(xué)者[11]使用CNN 與LSTM 對(duì)短期電價(jià)進(jìn)行預(yù)測(cè),提高了電價(jià)預(yù)測(cè)的精度及預(yù)測(cè)效率。 任建吉等學(xué)者[12]針對(duì)電網(wǎng)數(shù)據(jù)具有非線性和時(shí)序性的特點(diǎn),將CNN 與BiLSTM 結(jié)合提取數(shù)據(jù)本身的時(shí)空特征,提高了模型的預(yù)測(cè)精度。 以上模型雖然提升了模型提取特征的效果,但大多采用遞進(jìn)式網(wǎng)絡(luò)結(jié)構(gòu),導(dǎo)致提取到的信息向后傳遞時(shí)容易發(fā)生梯度消失或梯度爆炸的問(wèn)題,同時(shí)遞進(jìn)式網(wǎng)絡(luò)結(jié)構(gòu)提取文本特征時(shí)只用到單一網(wǎng)絡(luò)的優(yōu)勢(shì),無(wú)法融合CNN 和RNN 提取文本信息的優(yōu)勢(shì),因此最終效果有待提升。
為了提高人崗匹配的效果,本文提出一種端到端的人崗匹配模型BATPJF,該模型采用并列式網(wǎng)絡(luò)結(jié)構(gòu),充分發(fā)揮了CNN 提取局部特征的優(yōu)勢(shì)與BiLSTM 記憶功能的優(yōu)勢(shì),有效改善了模型的整體結(jié)構(gòu),提升了人崗匹配的效果。
令jobi={jobi,1,jobi,2,…,jobi,p} 為一條崗位招聘信息,其中jobi,j(j∈[1,p]) 為具體的崗位需求或職責(zé),令表示崗位jobi,j的信息中包含的s個(gè)詞。 又令ri={ri,1,ri,2,…,ri,q} 表示一份簡(jiǎn)歷,其中ri,j(j∈[1,q]) 表示該簡(jiǎn)歷包含的具體工作經(jīng)歷,再令表示工作經(jīng)歷ri,j的信息中包含的u個(gè)詞。 給 定 一 組 數(shù) 據(jù)S =〈J,R,Y〉, 其 中,J =為 招 聘 信 息,R =為簡(jiǎn)歷信息,Y為招聘結(jié)果標(biāo)簽。 本文的目標(biāo)是訓(xùn)練一個(gè)匹配函數(shù)M,并根據(jù)M來(lái)快速精準(zhǔn)地預(yù)測(cè)一份簡(jiǎn)歷ri與jobj之間的匹配結(jié)果。 由于人崗匹配問(wèn)題很難直接得到一個(gè)絕對(duì)的匹配分?jǐn)?shù),且很可能會(huì)導(dǎo)致過(guò)擬合和模型偏差[13],因此采用Top-K 的方法優(yōu)化排名。
本文提出的模型BATPJF 主要由TextCNN 網(wǎng)絡(luò)、BiLSTM-Attention 網(wǎng)絡(luò)、融合層和匹配預(yù)測(cè)層構(gòu)成。 模型的總體框架如圖1 所示。
圖1 BATPJF 模型圖Fig. 1 Structure diagram of BATPJF
考慮到職位描述和簡(jiǎn)歷中包含大量描述職位要求或求職者經(jīng)歷的詞語(yǔ),而TextCNN 在捕捉文本數(shù)據(jù)的層次關(guān)系和局部語(yǔ)義方面效果較好,因此本文運(yùn)用TextCNN 模型用于提取數(shù)據(jù)中的關(guān)鍵性詞語(yǔ)。卷積層與池化層的交替結(jié)構(gòu)對(duì)于數(shù)據(jù)特征的提取是有效的,因此在TextCNN 中,使用卷積層和最大池化層以交錯(cuò)堆疊的方式自動(dòng)提取職位描述和簡(jiǎn)歷文本數(shù)據(jù)的局部特征,并將所得特征向量輸出。
TextCNN 模型通過(guò)卷積核提取輸入文本的局部特征,但是濾波器的大小限制了模型學(xué)習(xí)文本數(shù)據(jù)前后的依賴關(guān)系。 所以本文使用BiLSTM-Attenion模型用于提取文本上下文依賴關(guān)系并分別對(duì)不同的詞和句子分配相應(yīng)的權(quán)重。 具體如下:首先使用BiLSTM 分別獲取簡(jiǎn)歷和職位描述的詞級(jí)別的文本表征,然后將文本表征作為注意力機(jī)制層的輸入來(lái)預(yù)估每個(gè)單詞的重要性,接著根據(jù)每個(gè)能力要求的隱藏狀態(tài)和所有能力要求的上下文向量之間的相似性計(jì)算出每個(gè)能力要求的重要性并輸出。
最后,將TextCNN 模型捕捉到的局部特征,以及經(jīng)過(guò)并行的BiLSTM-Attenion 模型提取到的上下文特征進(jìn)行特征拼接后,輸入到全連接層,并經(jīng)由Softmax層輸出結(jié)果。
TextCNN 主要由輸入層、卷積層、歸一化層和池化層構(gòu)成。 本文以崗位描述部分為例進(jìn)行說(shuō)明。TextCNN 層模型如圖2 所示。
圖2 TextCNN 層Fig. 2 TextCNN layer
對(duì)于jobi,j中的第l條需求中的第t個(gè)詞的d0維詞向量于是第l項(xiàng)需求對(duì)應(yīng)的矩陣可表示為。 首先,使用卷積層提取第l項(xiàng)需求的文本特征,然后對(duì)卷積層的輸出應(yīng)用批歸一化處理以降低訓(xùn)練成本,接著運(yùn)用Prelu激活函數(shù)對(duì)輸出值做非線性變換操作,最后使用池化層壓縮提取到的特征以減少模型的計(jì)算量,同時(shí)增加模型識(shí)別特征的抗干擾能力。在此基礎(chǔ)上,將所有需求項(xiàng)的向量通過(guò)最大池化層投 影 到 一 個(gè) 向 量 上:vjobi=[max(vjobi,1),max(vjobi,2),…,max(vjobi,p)],以表示職位描述。
簡(jiǎn)歷部分的模型與崗位部分的相似。 唯一不同的是最后一層使用均值池化將求職者經(jīng)驗(yàn)表示集成到簡(jiǎn)歷表示中。 對(duì)此可用如下公式進(jìn)行描述:
1.4.1 BiLSTM
LSTM 模 型 是Hochreiter 等 學(xué) 者[14]為 了 解 決RNN 模型因處理信息過(guò)多導(dǎo)致的梯度消失或梯度爆炸問(wèn)題提出的模型。 BiLSTM 作為L(zhǎng)STM 的一種變體,由一個(gè)正向LSTM 和一個(gè)反向LSTM 模型拼接而成。 其結(jié)構(gòu)如圖3 所示。首先獲得招聘信息中jobi,j的詞向量表示:其中,表示第l條需求中第t個(gè)詞的d0維詞嵌入,We是參數(shù)矩陣,表示jobi中第l條需求的第t個(gè)詞向量。 對(duì)jobi,l中的每個(gè)詞,計(jì)算對(duì)應(yīng)的語(yǔ)義表征可表示為:。 同理,可得R對(duì)應(yīng)的語(yǔ)義表征:
圖3 BiLSTM 結(jié)構(gòu)圖Fig. 3 Structure diagram of BiLSTM
1.4.2 注意力層
在自然語(yǔ)言處理領(lǐng)域,注意力機(jī)制被用來(lái)為不同重要性的詞或句子分配權(quán)重,權(quán)重越大的詞越重要。將經(jīng)過(guò)BiLSTM 處理后的語(yǔ)義表征作為全連接層的輸入,計(jì)算字符級(jí)別文本向量間的關(guān)聯(lián)度,然后使用Softmax函數(shù)計(jì)算注意力分?jǐn)?shù)α,即:
其中,vα、Wα和bα分別表示訓(xùn)練過(guò)程中的可學(xué)習(xí)參數(shù);vα表示jobi,l的上下文向量。 接著通過(guò)式(5)計(jì)算詞級(jí)別的崗位需求表征:
再將詞級(jí)別的崗位需求表征{sjobi,1,sjobi,2,…,sjobi,p} 作為BiLSTM 層的輸入,并可推得:
運(yùn)算得到隱層狀態(tài)向量{cjobi,1,cjobi,2,…,cjobi,p},此后根據(jù)每個(gè)能力要求的隱藏狀態(tài)和所有能力要求的上下文向量間的相似性計(jì)算出每個(gè)能力要求的重要性βt,即:
其中,Wβ、bβ和vβ是可學(xué)習(xí)參數(shù),最后句子級(jí)別的崗位需求表征可用式(9)計(jì)算:
同理可得簡(jiǎn)歷的需求表征為:
將TextCNN 層輸出的職位需求向量vjobi與通過(guò)BiLSTM-Attention 表示的職位向量gjobi進(jìn)行融合,即job =concat[gjobi;vjobi],同理可以得到簡(jiǎn)歷的特征為geek =concat[gri;vri]。 為了預(yù)測(cè)彼此之間的匹配程度,將其輸入全連接網(wǎng)絡(luò)預(yù)測(cè)人崗匹配程度,即:
其中,Wd、bd、Wy、by是可學(xué)習(xí)參數(shù)。
為驗(yàn)證BATPJF 模型的有效性,實(shí)驗(yàn)使用智聯(lián)招聘人崗匹配數(shù)據(jù)集。 為保護(hù)用戶隱私,所有簡(jiǎn)歷都做了脫敏處理。 原始數(shù)據(jù)集包含4500 份簡(jiǎn)歷、269534 份招聘信息和700938 條申請(qǐng)記錄,在剔除職位描述為空、沒(méi)有成功申請(qǐng)的數(shù)據(jù)之后,最終數(shù)據(jù)集見(jiàn)表1。 將數(shù)據(jù)集按8 ∶1 ∶1 的比例劃分為訓(xùn)練集、測(cè)試集和驗(yàn)證集。 本文為每個(gè)正樣本均勻地抽取一個(gè)負(fù)樣本組成訓(xùn)練集。
表1 數(shù)據(jù)集的基本統(tǒng)計(jì)信息Tab. 1 Basic statistics of data set
由表1 的交互(申請(qǐng)、成功、失?。┯涗浛芍晒β蕛H約為4%,這從側(cè)面反映了人才招聘工作的困難,而這正是本文工作的意義與價(jià)值所在。
本文以申請(qǐng)成功的工作-簡(jiǎn)歷對(duì)作為正樣本,以未申請(qǐng)成功的工作-簡(jiǎn)歷對(duì)作為負(fù)樣本對(duì)模型進(jìn)行訓(xùn)練。 以下是實(shí)驗(yàn)中的一些基礎(chǔ)設(shè)置:batch_size設(shè)置為128,epoch設(shè)置為300。 測(cè)試集的大小設(shè)置為128,驗(yàn)證集的大小設(shè)置為1024,若驗(yàn)證集上的評(píng)估結(jié)果連續(xù)10 個(gè)epoch沒(méi)有增加,訓(xùn)練將提前停止。 為了盡可能地避免過(guò)擬合現(xiàn)象的發(fā)生,將drop_out設(shè)置為0.5,并在TextCNN、BiLSTM 中分別選擇Prelu、LeakyRelu作為激活函數(shù),以提高模型的非線性表達(dá)能力并加速模型收斂速度。 為了更好地學(xué)習(xí)模型參數(shù),選擇Adam 作為優(yōu)化器進(jìn)行訓(xùn)練。模型的具體參數(shù)見(jiàn)表2。
表2 參數(shù)設(shè)置表Tab. 2 Parameters setting
為驗(yàn)證本文提出的BATPJF 模型性能,將其與BPR[15]、 BPJFNN[16]、 APJFNN[16]、 LightGCN[16]、PJFFF[17]模型進(jìn)行比較,評(píng)價(jià)指標(biāo)主要采用命中率(Hit Rate @ k,HR) 和 歸 一 化 折 損 累 計(jì) 增 益(NDCG@k) 來(lái)綜合判斷模型的性能。 實(shí)驗(yàn)結(jié)果見(jiàn)表3。 表3 中,帶“?”符號(hào)的表示對(duì)比模型中的最佳結(jié)果。
表3 不同模型在數(shù)據(jù)集的結(jié)果Tab. 3 Results of different models in the dataset
由表3 可知,本文提出的模型相比參照模型中最好的模型APJFNN 在指標(biāo)HR@5 和NDCG@5 上分別提高了1.98%和2.39%。 由此可見(jiàn),BATPJF 模型能充分發(fā)揮TextCNN 提取局部特征的優(yōu)點(diǎn)與BiLSTM 具有記憶功能的優(yōu)點(diǎn),且注意力機(jī)制的加入,可以計(jì)算工作要求對(duì)不同工作經(jīng)驗(yàn)的重要性以及工作經(jīng)驗(yàn)對(duì)不同工作要求的貢獻(xiàn),因此性能優(yōu)于其他對(duì)比模型。
本文針對(duì)人崗匹配問(wèn)題提出了一種基于深度學(xué)習(xí)的端到端人崗匹配模型,模型首先通過(guò)詞嵌入將文本表示成低維詞向量矩陣,接著利用TextCNN 和BiLSTM 分別提取職位描述和個(gè)人經(jīng)歷文本中的局部關(guān)鍵信息和上下文信息,最后將得到的結(jié)果進(jìn)行融合,提高了人崗匹配的效果。 通過(guò)與其他模型進(jìn)行對(duì)比,證明了本文模型BATPJF 的有效性。 由于人崗匹配包括結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)的匹配,而本文僅考慮了非結(jié)構(gòu)化文本數(shù)據(jù)的匹配,所以下一階段的工作是將結(jié)構(gòu)化的信息也考慮進(jìn)模型中,以便進(jìn)行更好的人崗匹配。