呂飛亞,張英俊,潘理虎,2
1(太原科技大學 計算機科學與技術學院,太原 030024)
2(中國科學院 地理科學與資源研究所,北京 100101)
在大量招聘信息中獲取到不同行業、不同崗位對應聘者的能力需求是現代工作中必不可少的,其重要性不言而喻.隨著全球信息化的高速發展,各大網站、公眾號發布的招聘信息數據量越來越大,在這些招聘信息中快速按行業和崗位進行準確分類,才能更有針對性的為大學生就業提供指導.
中文的招聘信息具有非結構化特點[1],計算機無法對其直接進行處理,需對文本數據進行向量化表示和特征提取.繼圖像處理之后深度學習在自然語言處理領域也取得了很好的效果,深度學習可以更深層次的表達文本信息,無需先驗知識,在訓練過程中容納海量數據還集特征提取和性能評價于一體,有極大優越性.其中循環神經網絡(Recursive Neural Network,RNN)被廣泛運用于基于時間序列的分類任務.
一般情況下文本分類分為基于統計學的傳統文本分類、基于機器學習的文本分類方法以及基于深度學習的文本分類方法.基于統計學的傳統文本分類方法中,首先是對特征詞的預設置,通過分析文中特征詞出現的頻率來確定文本的類別歸屬,這種方法需要耗費大量的人力資源,此外由于自然語言的靈活性較高,其準確性也難以保證;基于機器學習的文本分類方法[2],常采用樸素貝葉斯(NB)、最大熵(ME)、支持向量積(SVM)等,都是基于關鍵詞設置和詞頻統計,忽略了詞語之間的關聯和文本前后語義信息.
近年來,深度學習算法被應用到了自然語言處理領域,利用神經網絡訓練詞向量來表示文本,有效的避免了數據稀疏性問題,同時還可以獲取語義信息.采用深度學習模型如遞歸神經網絡[3]、卷積神經網絡[4](Convolutional Neural Network,CNN)和循環神經網絡(RNN)等進行文本分類,獲得比傳統機器學習更好的效果.2010年Mikolov等人對遞歸神經網絡進行改進并在語言模型表征能力上取得巨大進步[5],然而遞歸神經網絡的輸入是樹/圖結構,這種結構需要花費很多人工去標注;顧靜航等人[6]提出基于卷積神經網絡的實體關系提取,證明卷積神經網絡擅長于捕捉局部序列關系,但不能很好的解決長距離依賴問題.針對需要前后文語境的分類任務,循環神經網絡RNN 具有先天優勢,如Liu 等人[7]使用RNN 模型進行多標簽的文本分類.為解決RNN 在文本分類過程中出現的梯度消失和梯度爆炸問題,Hochreiter 和Schmidhuber 等人[8]對RNN 模型改進并提出長短期記憶模型(Long Short Term Memory,LSTM),其廣泛應用于文本分類[9]和信息抽取[10]等任務,取得了更好的效果.
本文主要針對IT 行業的招聘信息按崗位進行分類,招聘信息進行分類時對上下文有較強的依賴性,并且某些關鍵詞對分類又有較大的影響.因此,本文訓練基于循環神經網絡改進的雙向長短期記憶網絡(Bidirectional Long Short Term Memory,BiLSTM)進行文本分類模型,構建招聘詞典并用One-hot 向量表示,引入注意力機制,加強崗位關鍵詞的比重.在各個招聘網站獲取的IT 行業的招聘數據進行實驗,最終招聘信息分類效果在準確率、召回率等其他指標得到明顯的優化.
基于注意力機制的BiLSTM 模型主要由以下5 部分組成,結構如圖1 所示.

圖1 基于注意力機制的BiLSTM 模型結構圖
(1)將文本做分詞、去停用詞,并且設置自定義分詞詞典,加入招聘信息不同類別中的特征詞匯,如“后端開發”,“界面設計”,等具有強烈描述不同招聘類別的詞匯;
(2)One-hot 向量表示,把分類文本轉換成向量;
(3)訓練BiLSTM 模型獲取招聘信息文本特征;
(4)引入注意力機制突出招聘類別重點詞的權重;
(5)最后輸入分類器進行分類,得到分類結果.
招聘信息將按崗位需求分為軟件開發、測試、運維、UI 和其他崗位5 大類,將其修改為統一的格式.進行簡單的預處理,去掉多余的符號和無法識別的字符.將數據分為訓練集、測試集、驗證集3 部分.本文采用One-hot 表示文本,簡化步驟并縮短訓練時間.
由于IT 行業招聘信息內容在一個范圍內,不會像新聞類數據產生巨大的詞典,于是采用One-hot 方法進行文本表示,訓練數據生成IT 招聘能力要求的詞匯表,保留字符級信息.具體步驟為:
(1)選擇招聘信息中出現頻率最高的5000 分類關鍵詞生成詞匯表,來獲取字符級信息;
(2)每個文本含有詞匯表中的字的部分,對應詞匯表生成ID 表;
(3)截取序列長度為100,將ID 表中的ID 生成One-hot 向量.將文本矩陣與標簽矩陣對應,生成輸入矩陣.圖2 為一個句子按照詞匯表生成One-hot 矩陣的過程.

圖2 訓練集One-hot 表示示意圖
循環神經網絡RNN 擅長于捕捉長依賴序列關系,神經元的某些輸出可作為輸入再次傳輸到神經元中,能夠有效的利用之前的信息.但是在訓練過程中激活函數導數的不斷累乘,會導致“梯度消失”和“梯度爆炸”問題.長短期記憶網絡LSTM 巧妙的引入“門”機制,很好的解決了這一問題.每一個“門”結構中都包含一個Sigmoid 網絡神經層和一個pointwise 乘法操作,來控制信息是否可以通過,從而去除或者增強信息到細胞狀態.LSTM 是由一系列重復時序模塊組成,每個模塊包含三個“門”和一個記憶單元(memory cell),分別是遺忘門(forget gate)、輸入門(input gate)、輸出門(output gate).具體結構如圖3 所示.

圖3 LSTM 單元結構圖
遺忘門決定細胞將丟棄什么信息,讀取ht-1和xt,輸出一個0 到1 之間的數值給每一個在細胞狀態Ct-1中.

輸入門確定什么樣的新信息被存放在細胞狀態中,這里包含兩個部分.首先,一個Sigmoid 神經網絡層決定什么值將要更新,稱“輸入門層”.然后,一個tanh 層創建一個新的候選值向量Ct,Ct會被加入到狀態中.

單元信息更新時將舊狀態與ft相乘,丟棄掉無關信息.加上it?形成新的候選值.

輸出門通過運行一個Sigmoid 層來確定細胞狀態的哪個部分將輸出,接著把細胞狀態通過tanh 函數進行處理,得到一個在-1 到1 之間的值,并將它和Sigmoid門的輸出相乘,最終僅輸出確定輸出的那部分.

其中,tanh()代表激活函數,σ 代表Sigmoid 神經網絡層,xt為t 時刻輸入的單元狀態;ft、it、Ot分別表示遺忘門、輸入門、輸出門的結算結果;Wf、Wi、Wo、Wc分別代表遺忘門、輸入門、輸出門和跟新后的權重;bf、bi、bo、bc為對應的偏置量.
在文本分類過程中,為充分利用文本的上下文語境信息,將使用雙向長短期記憶網絡BiLSTM,即將時序相反的兩個LSTM 模型相結合.

Ht為BiLSTM 模型輸出的文本特征向量.
在招聘文本分類任務中,將BiLSTM 層每個時刻的輸出向量求和取平均值,得到每個特征詞匯的權重,無法突出對不同崗位分類起到重要作用詞匯的重要性,文本特征向量具有高維稀疏等特點,特征向量直接求和取平均值對文本分類的準確率有一定程度的影響.
近年來注意力機制被應用于智能問答和文本檢索等任務中[11],都取得了良好的效果.其應用了生物學的仿生學思想,模擬人類大腦中的分配機制,即對待處理的信息中比較關鍵的信息分配更多的注意力.本文采用注意力機制對招聘信息進行處理,學習其句子表示,計算過程如式(10)和式(11)所示:

其中,ut、Ww、bw為注意力機制層參數,at為第t 個輸入的特征詞對區分文本類別貢獻程度的權重.從而得到新的輸出特征值v 為:

本文自建數據集,為了保證數據的多樣性,在各個招聘網站上采集IT 行業招聘的數據信息,經數據預處理獲取招聘信息語料庫.該數據集共有招聘數據60 000 條,根據崗位需求分為軟件開發、測試、運維、UI 和其他崗位5 大類,每一類12 000 條文本,取其中10 000 條作為訓練集,另外1000 條作為測試集和1000 條驗證集.本文選取序列長度為100.
初始學習率為0.001,批處理文件數為256,正向和反向的LSTM 隱藏單元數均為512 層,訓練輪數為1000.模型的激活函數使用ReLU,采用Softmax 函數作為分類器,優化函數使用AdamOptimizer.針對模型訓練過程中可能出現的過擬合現象,利用dropout 和L2 正則化方法對網絡參數進行約束.
為了驗證基于注意力機制的BiLSTM 模型在招聘信息分類的有效性,本文設置兩個對比實驗分析比較不同算法下特定類別招聘信息分類效果和不同算法、不同數據量對招聘信息準確率的影響.
本文實驗結果分析采用正確率(precision)、召回率(recall)和F 值(F_score)3 個標準作為模型性能的評價指標.準確率即分類模型正確預測得樣本數在總樣本中所占的比例;召回率又稱為查全率,體現系統分類結果的完備性;實驗結果希望準確率和召回率都是越高越好,但是兩者有一定矛盾性,所以F 值對準確率和召回率進行加權調和平均,較為全面地評價一個分類器.具體計算方法如下:

其中,out_cor 表示輸出的判斷正確的文本個數;out_all 表示輸出的所有文本個數;this_all 表示測試集中的所有該文本的個數.
2.3.1 在不同模型下特定類別分類效果的比較
本實驗部分采用招聘信息語料庫,比較本文提出的基于注意力機制下的雙向長短期記憶網絡(Attention-BiLSTM)與注意力機制下的長短期記憶網絡(Attention-LSTM)、長短期記憶網絡(LSTM)、CNN 和FastText模型的準確率、召回率和F 值,驗證基于注意力機制的BiLSTM 模型的穩定性和有效性.
由于Attention-BiLSTM 利用雙向的LSTM 通過對詞向量的計算得到更高級別的句子向量,使得模型對文本信息的理解更準確、更完整.其中運維崗位和測試崗位的在不同算法下的對比實驗如表1 和表2 所示.實驗結果表明本文提出的模型在3 個實驗指標上均要高于其他模型1%~2%.
2.3.2 不同數據量對模型準確率的影響
該實驗分別在本文提出的基于注意力機制下的BiLSTM 模型與Attention-LSTM、LSTM 三組模型進行對比實驗,并且設置對比實驗的超參數和文本模型參數相同.

表1 運維崗位對比實驗結果

表2 測試崗位對比實驗結果
使用招聘信息語料庫訓練數據50 000 條,分別取數據集的10%、20% 至100% 共10 組不同百分比的數據量進行訓練.數據量為10%(5000 條)、50%(25 000)和全部(50 000)時各分類模型準確率變化如圖4、圖5、圖6 所示.

圖4 數據量為5000 訓練結果

圖5 數據量為25 000 訓練結果

圖6 數據量為50 000 訓練結果
由圖4 可以看出,招聘信息數據量較少時,本文提出的模型整體準確率明顯高于另外兩組,Epoch 到6 時準確率可以達到84%以上.并趨于穩定,模型(Attention-LSTM)變化幅度較大,Epoch 到10 時準確率達到60%,由于模型(LSTM)雖然實現了文本序列化,但是單向的LSTM 缺乏上文語義信息,當訓練數據量較少時,文本向量特征高維稀疏,模型學習能力差,導致模型(LSTM)分類效果較差.
從圖5、圖6 看出,招聘信息數據量增多時,模型(Attention-LSTM)融入注意力機制,有效提升了模型學習的能力并且學習到不同距離的上下文語義依賴關系,導致模型(Attention-BiLSTM)可以最快達到穩定并且有93.36%準確率,模型(Attention-LSTM)達到穩定性的速度和準確率略次于模型(Attention-BiLSTM),模型(LSTM)在數據量達到50 000 時,隨著Epoch 改變分類性能才有明顯提升.
本文采用基于注意力機制的Bi-LSTM 多層文本分類模型,并構建了招聘詞典,使用One-hot 方法進行向量表示,有效的解決了招聘信息分類中準確率低、無法突出分類關鍵詞等問題.通過與現有幾種文本分類算法比較,本文的模型在準確率、召回率和F 值上均有明顯提高.實驗證明,將基于注意力機制的Bi-LSTM 文本分類模型應用于招聘信息分類具有可行性和有效性.
針對Ont-hot 對于招聘類的專業名詞的深層語義辨析上存在一定的缺陷,本文下一步將繼續查閱相關領域文獻,改進One-hot 語義方面的表示[12],提高文本分類準確率.