呂飛亞,張英俊,潘理虎,2
1(太原科技大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,太原 030024)
2(中國科學(xué)院 地理科學(xué)與資源研究所,北京 100101)
在大量招聘信息中獲取到不同行業(yè)、不同崗位對應(yīng)聘者的能力需求是現(xiàn)代工作中必不可少的,其重要性不言而喻.隨著全球信息化的高速發(fā)展,各大網(wǎng)站、公眾號發(fā)布的招聘信息數(shù)據(jù)量越來越大,在這些招聘信息中快速按行業(yè)和崗位進(jìn)行準(zhǔn)確分類,才能更有針對性的為大學(xué)生就業(yè)提供指導(dǎo).
中文的招聘信息具有非結(jié)構(gòu)化特點[1],計算機(jī)無法對其直接進(jìn)行處理,需對文本數(shù)據(jù)進(jìn)行向量化表示和特征提取.繼圖像處理之后深度學(xué)習(xí)在自然語言處理領(lǐng)域也取得了很好的效果,深度學(xué)習(xí)可以更深層次的表達(dá)文本信息,無需先驗知識,在訓(xùn)練過程中容納海量數(shù)據(jù)還集特征提取和性能評價于一體,有極大優(yōu)越性.其中循環(huán)神經(jīng)網(wǎng)絡(luò)(Recursive Neural Network,RNN)被廣泛運用于基于時間序列的分類任務(wù).
一般情況下文本分類分為基于統(tǒng)計學(xué)的傳統(tǒng)文本分類、基于機(jī)器學(xué)習(xí)的文本分類方法以及基于深度學(xué)習(xí)的文本分類方法.基于統(tǒng)計學(xué)的傳統(tǒng)文本分類方法中,首先是對特征詞的預(yù)設(shè)置,通過分析文中特征詞出現(xiàn)的頻率來確定文本的類別歸屬,這種方法需要耗費大量的人力資源,此外由于自然語言的靈活性較高,其準(zhǔn)確性也難以保證;基于機(jī)器學(xué)習(xí)的文本分類方法[2],常采用樸素貝葉斯(NB)、最大熵(ME)、支持向量積(SVM)等,都是基于關(guān)鍵詞設(shè)置和詞頻統(tǒng)計,忽略了詞語之間的關(guān)聯(lián)和文本前后語義信息.
近年來,深度學(xué)習(xí)算法被應(yīng)用到了自然語言處理領(lǐng)域,利用神經(jīng)網(wǎng)絡(luò)訓(xùn)練詞向量來表示文本,有效的避免了數(shù)據(jù)稀疏性問題,同時還可以獲取語義信息.采用深度學(xué)習(xí)模型如遞歸神經(jīng)網(wǎng)絡(luò)[3]、卷積神經(jīng)網(wǎng)絡(luò)[4](Convolutional Neural Network,CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)等進(jìn)行文本分類,獲得比傳統(tǒng)機(jī)器學(xué)習(xí)更好的效果.2010年Mikolov等人對遞歸神經(jīng)網(wǎng)絡(luò)進(jìn)行改進(jìn)并在語言模型表征能力上取得巨大進(jìn)步[5],然而遞歸神經(jīng)網(wǎng)絡(luò)的輸入是樹/圖結(jié)構(gòu),這種結(jié)構(gòu)需要花費很多人工去標(biāo)注;顧靜航等人[6]提出基于卷積神經(jīng)網(wǎng)絡(luò)的實體關(guān)系提取,證明卷積神經(jīng)網(wǎng)絡(luò)擅長于捕捉局部序列關(guān)系,但不能很好的解決長距離依賴問題.針對需要前后文語境的分類任務(wù),循環(huán)神經(jīng)網(wǎng)絡(luò)RNN 具有先天優(yōu)勢,如Liu 等人[7]使用RNN 模型進(jìn)行多標(biāo)簽的文本分類.為解決RNN 在文本分類過程中出現(xiàn)的梯度消失和梯度爆炸問題,Hochreiter 和Schmidhuber 等人[8]對RNN 模型改進(jìn)并提出長短期記憶模型(Long Short Term Memory,LSTM),其廣泛應(yīng)用于文本分類[9]和信息抽取[10]等任務(wù),取得了更好的效果.
本文主要針對IT 行業(yè)的招聘信息按崗位進(jìn)行分類,招聘信息進(jìn)行分類時對上下文有較強(qiáng)的依賴性,并且某些關(guān)鍵詞對分類又有較大的影響.因此,本文訓(xùn)練基于循環(huán)神經(jīng)網(wǎng)絡(luò)改進(jìn)的雙向長短期記憶網(wǎng)絡(luò)(Bidirectional Long Short Term Memory,BiLSTM)進(jìn)行文本分類模型,構(gòu)建招聘詞典并用One-hot 向量表示,引入注意力機(jī)制,加強(qiáng)崗位關(guān)鍵詞的比重.在各個招聘網(wǎng)站獲取的IT 行業(yè)的招聘數(shù)據(jù)進(jìn)行實驗,最終招聘信息分類效果在準(zhǔn)確率、召回率等其他指標(biāo)得到明顯的優(yōu)化.
基于注意力機(jī)制的BiLSTM 模型主要由以下5 部分組成,結(jié)構(gòu)如圖1 所示.
圖1 基于注意力機(jī)制的BiLSTM 模型結(jié)構(gòu)圖
(1)將文本做分詞、去停用詞,并且設(shè)置自定義分詞詞典,加入招聘信息不同類別中的特征詞匯,如“后端開發(fā)”,“界面設(shè)計”,等具有強(qiáng)烈描述不同招聘類別的詞匯;
(2)One-hot 向量表示,把分類文本轉(zhuǎn)換成向量;
(3)訓(xùn)練BiLSTM 模型獲取招聘信息文本特征;
(4)引入注意力機(jī)制突出招聘類別重點詞的權(quán)重;
(5)最后輸入分類器進(jìn)行分類,得到分類結(jié)果.
招聘信息將按崗位需求分為軟件開發(fā)、測試、運維、UI 和其他崗位5 大類,將其修改為統(tǒng)一的格式.進(jìn)行簡單的預(yù)處理,去掉多余的符號和無法識別的字符.將數(shù)據(jù)分為訓(xùn)練集、測試集、驗證集3 部分.本文采用One-hot 表示文本,簡化步驟并縮短訓(xùn)練時間.
由于IT 行業(yè)招聘信息內(nèi)容在一個范圍內(nèi),不會像新聞類數(shù)據(jù)產(chǎn)生巨大的詞典,于是采用One-hot 方法進(jìn)行文本表示,訓(xùn)練數(shù)據(jù)生成IT 招聘能力要求的詞匯表,保留字符級信息.具體步驟為:
(1)選擇招聘信息中出現(xiàn)頻率最高的5000 分類關(guān)鍵詞生成詞匯表,來獲取字符級信息;
(2)每個文本含有詞匯表中的字的部分,對應(yīng)詞匯表生成ID 表;
(3)截取序列長度為100,將ID 表中的ID 生成One-hot 向量.將文本矩陣與標(biāo)簽矩陣對應(yīng),生成輸入矩陣.圖2 為一個句子按照詞匯表生成One-hot 矩陣的過程.
圖2 訓(xùn)練集One-hot 表示示意圖
循環(huán)神經(jīng)網(wǎng)絡(luò)RNN 擅長于捕捉長依賴序列關(guān)系,神經(jīng)元的某些輸出可作為輸入再次傳輸?shù)缴窠?jīng)元中,能夠有效的利用之前的信息.但是在訓(xùn)練過程中激活函數(shù)導(dǎo)數(shù)的不斷累乘,會導(dǎo)致“梯度消失”和“梯度爆炸”問題.長短期記憶網(wǎng)絡(luò)LSTM 巧妙的引入“門”機(jī)制,很好的解決了這一問題.每一個“門”結(jié)構(gòu)中都包含一個Sigmoid 網(wǎng)絡(luò)神經(jīng)層和一個pointwise 乘法操作,來控制信息是否可以通過,從而去除或者增強(qiáng)信息到細(xì)胞狀態(tài).LSTM 是由一系列重復(fù)時序模塊組成,每個模塊包含三個“門”和一個記憶單元(memory cell),分別是遺忘門(forget gate)、輸入門(input gate)、輸出門(output gate).具體結(jié)構(gòu)如圖3 所示.
圖3 LSTM 單元結(jié)構(gòu)圖
遺忘門決定細(xì)胞將丟棄什么信息,讀取ht-1和xt,輸出一個0 到1 之間的數(shù)值給每一個在細(xì)胞狀態(tài)Ct-1中.
輸入門確定什么樣的新信息被存放在細(xì)胞狀態(tài)中,這里包含兩個部分.首先,一個Sigmoid 神經(jīng)網(wǎng)絡(luò)層決定什么值將要更新,稱“輸入門層”.然后,一個tanh 層創(chuàng)建一個新的候選值向量Ct,Ct會被加入到狀態(tài)中.
單元信息更新時將舊狀態(tài)與ft相乘,丟棄掉無關(guān)信息.加上it?形成新的候選值.
輸出門通過運行一個Sigmoid 層來確定細(xì)胞狀態(tài)的哪個部分將輸出,接著把細(xì)胞狀態(tài)通過tanh 函數(shù)進(jìn)行處理,得到一個在-1 到1 之間的值,并將它和Sigmoid門的輸出相乘,最終僅輸出確定輸出的那部分.
其中,tanh()代表激活函數(shù),σ 代表Sigmoid 神經(jīng)網(wǎng)絡(luò)層,xt為t 時刻輸入的單元狀態(tài);ft、it、Ot分別表示遺忘門、輸入門、輸出門的結(jié)算結(jié)果;Wf、Wi、Wo、Wc分別代表遺忘門、輸入門、輸出門和跟新后的權(quán)重;bf、bi、bo、bc為對應(yīng)的偏置量.
在文本分類過程中,為充分利用文本的上下文語境信息,將使用雙向長短期記憶網(wǎng)絡(luò)BiLSTM,即將時序相反的兩個LSTM 模型相結(jié)合.
Ht為BiLSTM 模型輸出的文本特征向量.
在招聘文本分類任務(wù)中,將BiLSTM 層每個時刻的輸出向量求和取平均值,得到每個特征詞匯的權(quán)重,無法突出對不同崗位分類起到重要作用詞匯的重要性,文本特征向量具有高維稀疏等特點,特征向量直接求和取平均值對文本分類的準(zhǔn)確率有一定程度的影響.
近年來注意力機(jī)制被應(yīng)用于智能問答和文本檢索等任務(wù)中[11],都取得了良好的效果.其應(yīng)用了生物學(xué)的仿生學(xué)思想,模擬人類大腦中的分配機(jī)制,即對待處理的信息中比較關(guān)鍵的信息分配更多的注意力.本文采用注意力機(jī)制對招聘信息進(jìn)行處理,學(xué)習(xí)其句子表示,計算過程如式(10)和式(11)所示:
其中,ut、Ww、bw為注意力機(jī)制層參數(shù),at為第t 個輸入的特征詞對區(qū)分文本類別貢獻(xiàn)程度的權(quán)重.從而得到新的輸出特征值v 為:
本文自建數(shù)據(jù)集,為了保證數(shù)據(jù)的多樣性,在各個招聘網(wǎng)站上采集IT 行業(yè)招聘的數(shù)據(jù)信息,經(jīng)數(shù)據(jù)預(yù)處理獲取招聘信息語料庫.該數(shù)據(jù)集共有招聘數(shù)據(jù)60 000 條,根據(jù)崗位需求分為軟件開發(fā)、測試、運維、UI 和其他崗位5 大類,每一類12 000 條文本,取其中10 000 條作為訓(xùn)練集,另外1000 條作為測試集和1000 條驗證集.本文選取序列長度為100.
初始學(xué)習(xí)率為0.001,批處理文件數(shù)為256,正向和反向的LSTM 隱藏單元數(shù)均為512 層,訓(xùn)練輪數(shù)為1000.模型的激活函數(shù)使用ReLU,采用Softmax 函數(shù)作為分類器,優(yōu)化函數(shù)使用AdamOptimizer.針對模型訓(xùn)練過程中可能出現(xiàn)的過擬合現(xiàn)象,利用dropout 和L2 正則化方法對網(wǎng)絡(luò)參數(shù)進(jìn)行約束.
為了驗證基于注意力機(jī)制的BiLSTM 模型在招聘信息分類的有效性,本文設(shè)置兩個對比實驗分析比較不同算法下特定類別招聘信息分類效果和不同算法、不同數(shù)據(jù)量對招聘信息準(zhǔn)確率的影響.
本文實驗結(jié)果分析采用正確率(precision)、召回率(recall)和F 值(F_score)3 個標(biāo)準(zhǔn)作為模型性能的評價指標(biāo).準(zhǔn)確率即分類模型正確預(yù)測得樣本數(shù)在總樣本中所占的比例;召回率又稱為查全率,體現(xiàn)系統(tǒng)分類結(jié)果的完備性;實驗結(jié)果希望準(zhǔn)確率和召回率都是越高越好,但是兩者有一定矛盾性,所以F 值對準(zhǔn)確率和召回率進(jìn)行加權(quán)調(diào)和平均,較為全面地評價一個分類器.具體計算方法如下:
其中,out_cor 表示輸出的判斷正確的文本個數(shù);out_all 表示輸出的所有文本個數(shù);this_all 表示測試集中的所有該文本的個數(shù).
2.3.1 在不同模型下特定類別分類效果的比較
本實驗部分采用招聘信息語料庫,比較本文提出的基于注意力機(jī)制下的雙向長短期記憶網(wǎng)絡(luò)(Attention-BiLSTM)與注意力機(jī)制下的長短期記憶網(wǎng)絡(luò)(Attention-LSTM)、長短期記憶網(wǎng)絡(luò)(LSTM)、CNN 和FastText模型的準(zhǔn)確率、召回率和F 值,驗證基于注意力機(jī)制的BiLSTM 模型的穩(wěn)定性和有效性.
由于Attention-BiLSTM 利用雙向的LSTM 通過對詞向量的計算得到更高級別的句子向量,使得模型對文本信息的理解更準(zhǔn)確、更完整.其中運維崗位和測試崗位的在不同算法下的對比實驗如表1 和表2 所示.實驗結(jié)果表明本文提出的模型在3 個實驗指標(biāo)上均要高于其他模型1%~2%.
2.3.2 不同數(shù)據(jù)量對模型準(zhǔn)確率的影響
該實驗分別在本文提出的基于注意力機(jī)制下的BiLSTM 模型與Attention-LSTM、LSTM 三組模型進(jìn)行對比實驗,并且設(shè)置對比實驗的超參數(shù)和文本模型參數(shù)相同.
表1 運維崗位對比實驗結(jié)果
表2 測試崗位對比實驗結(jié)果
使用招聘信息語料庫訓(xùn)練數(shù)據(jù)50 000 條,分別取數(shù)據(jù)集的10%、20% 至100% 共10 組不同百分比的數(shù)據(jù)量進(jìn)行訓(xùn)練.數(shù)據(jù)量為10%(5000 條)、50%(25 000)和全部(50 000)時各分類模型準(zhǔn)確率變化如圖4、圖5、圖6 所示.
圖4 數(shù)據(jù)量為5000 訓(xùn)練結(jié)果
圖5 數(shù)據(jù)量為25 000 訓(xùn)練結(jié)果
圖6 數(shù)據(jù)量為50 000 訓(xùn)練結(jié)果
由圖4 可以看出,招聘信息數(shù)據(jù)量較少時,本文提出的模型整體準(zhǔn)確率明顯高于另外兩組,Epoch 到6 時準(zhǔn)確率可以達(dá)到84%以上.并趨于穩(wěn)定,模型(Attention-LSTM)變化幅度較大,Epoch 到10 時準(zhǔn)確率達(dá)到60%,由于模型(LSTM)雖然實現(xiàn)了文本序列化,但是單向的LSTM 缺乏上文語義信息,當(dāng)訓(xùn)練數(shù)據(jù)量較少時,文本向量特征高維稀疏,模型學(xué)習(xí)能力差,導(dǎo)致模型(LSTM)分類效果較差.
從圖5、圖6 看出,招聘信息數(shù)據(jù)量增多時,模型(Attention-LSTM)融入注意力機(jī)制,有效提升了模型學(xué)習(xí)的能力并且學(xué)習(xí)到不同距離的上下文語義依賴關(guān)系,導(dǎo)致模型(Attention-BiLSTM)可以最快達(dá)到穩(wěn)定并且有93.36%準(zhǔn)確率,模型(Attention-LSTM)達(dá)到穩(wěn)定性的速度和準(zhǔn)確率略次于模型(Attention-BiLSTM),模型(LSTM)在數(shù)據(jù)量達(dá)到50 000 時,隨著Epoch 改變分類性能才有明顯提升.
本文采用基于注意力機(jī)制的Bi-LSTM 多層文本分類模型,并構(gòu)建了招聘詞典,使用One-hot 方法進(jìn)行向量表示,有效的解決了招聘信息分類中準(zhǔn)確率低、無法突出分類關(guān)鍵詞等問題.通過與現(xiàn)有幾種文本分類算法比較,本文的模型在準(zhǔn)確率、召回率和F 值上均有明顯提高.實驗證明,將基于注意力機(jī)制的Bi-LSTM 文本分類模型應(yīng)用于招聘信息分類具有可行性和有效性.
針對Ont-hot 對于招聘類的專業(yè)名詞的深層語義辨析上存在一定的缺陷,本文下一步將繼續(xù)查閱相關(guān)領(lǐng)域文獻(xiàn),改進(jìn)One-hot 語義方面的表示[12],提高文本分類準(zhǔn)確率.