張世同
(北京云至科技有限公司南京分公司,數據服務產品研發部,南京211801)
鐵路安監部門檢查安全生產事故隱患,將運輸、設備、工程中可能導致安全事故的隱患及風險因素以文本形式記錄下來,并根據發牌制度,確定隱患分類,對應問題庫,以確定責任部門和責任人。目前,鐵路部門已經形成問題庫,積累了大量的文本數據和分類數據[1]。為了更好地實現自動分類,解決目前分類完全靠人為經驗的缺陷,采用人工智能文本分類,準確地對應到問題庫中,可以確定責任人,以增強管理力度和規范化作業意識。鐵路安監文本示例如表1所示。

表1 鐵路安監檢查文本分類示例

續表
現有的文本分類有基于詞匯特征的TF-IDF和Word2Vec方法,基于深度學習的TextCNN和BiLSTM方法。TF-IDF通過詞頻統計,將文本轉化為一個詞頻向量來提取文本特征。如果一個單詞在該文本中詞頻非常高而在其他文本中詞頻較低,則認為該次對該文本有較大意義,因此可以對該單詞的權重進行正向調整。隨著詞匯數量的增加,TF-IDF會出現維度爆炸的問題[2]。TF-IDF依賴于文本預處理時進行中文分詞,目前的分詞效果都不理想,特別是出現多義詞的時候。鐵路安監文本庫中,文本描述有大量的術語,使得分詞效果更加不理想,如“某車次副司機升降弓時未手比確認升降弓過程”。同時,TF-IDF僅僅考慮詞本身,而為忽略了詞的上下文語境信息[2]。
Word2Vec基于淺層神經網絡進行文本特征提取,將詞語表示成稠密向量,文本表示成向量矩陣,使用Skip-Grams和CBOW(Continues Bag Of Words)來建立詞嵌入向量,降低了計算成本的同時提高了表示精度。借助Word2Vec的窗口化提取特征方法,可以獲取詞匯近距離前后文信息,但無法考慮到上下文信息[3]。LU等使用基于字符的Word2Vec(CLW2V)方法,使用CLW2V+CNN的模型,將鐵路安監文本分類的Precision、F1分別提高到85%、83%[4]。
BiLSTM(雙向長短期記憶網絡對語言模型)實現了基于上下文的詞嵌入表示,并顯著提高了模型上下文的表示能力。Yang等人在Bi-LSTM-CRF融合模型的基礎上引入了Attention機制并將該模型應用在生物文本實體識別上并獲得了90.77%的F1值[6]。
2018年谷歌公司提出了BERT預訓練模型,該模型文本向量化是基于字符的,結合BiLSTM能更好地表示上下文信息。DU等人采用BERT-BiLSTM-Attention-Softmax模型,對中醫病例文本提取和自動分類研究,獲取了89.52%的F1值[5]。LIU等人采用BERT-BiLSTMMultihead-Attention模型,進行二分類的中文文本情感分析,獲得了93.06%的F1值[9]。
基于上述分析,針對鐵路安監文本具有專業術語多、文本表述簡單的特點,本文采用BERT作為字向量的提取方法,提出了BERT-BiLSTM-Softmax模型用于鐵路安監文本分類研究。
在BERT預訓練模型的基礎上,對文本進行詞嵌入向量表示,BERT模型最后一層的輸出作為BiLSTM的輸入,并使用已標注鐵路安檢文本進行訓練,對BERT層進行參數微調。在BiLSTM中把雙向加權向量全連接,輸出一個新的向量給Softmax函數進行分類。BERT-BiLSTM-Softmax網絡模型結構如圖1所示。

圖1 BERT-BiLSTM-Softmax網絡模型結構
Softmax函數用于多分類問題,對待分類文本計算每個可能分類的概率。Softmax函數形如公式(1):

其中p(i)表示第i個類別的概率,zi為第i個節點的輸出值,C為輸出節點的個數,即所有類別個數。通過Softmax函數就可以將多分類的輸出值轉換為范圍在[0,1]和為1的概率分布。使用交叉熵損失函數作為Softmax的Loss函數,如公式(2):

Transformer方法通過計算目標詞與源文本每個詞之間的相似度作為權重系數,對其進行加權求和表示詞向量,實現關注和提取上下文重點信息。Transformer使用了Attention機制的同時,提出Self-Attention結構,并結合Multi-Head Attention能夠同時獲取上下文信息。Transformer大量應用在預訓練模型中,如GPT(Generative Pre-trained Transformer),如圖2所示。

圖2 GPT模型結構
BERT采用多個雙向Transformer編碼器層堆疊組成全連接神經網絡結構,相比于GPT模型,BERT采用雙向方法,能夠同時捕獲上下文語境信息。BERT采用多層Transformer作為核心架構進行特征提取的半監督學習模型,先進行無監督訓練,經過多層神經網絡訓練,形成文本詞向量表示。以最后一層的詞向量作為后續任務的輸入并結合Fine-tuning微調方法可以使用少量標注文本進行訓練和參數調整達到較好的準確率。如圖3所示。

圖3 BERT模型結構
圖中w是文本詞嵌入向量,BERT采用詞嵌入向量由三部分組成:Token、Segment、Position。第一個Token是CLS標志,可以用于之后的分類任務,為區別兩個句子,用一個特殊標志SEP隔開它們。針對不同的句子,把學習到的segment embeddings加到token的embedding上面。最終的詞嵌入向量E由三種向量求和而成E,E作為多層雙向Transformer的輸入。
在經典的RNN算法中,存在長期依賴問題(Long-Term Dependencies),LSTM采用長短期記憶網絡的方法解決了這一問題。但是在文本中,詞的信息不僅與上文有關,還與下文有關。所以,采用BiLSTM取代LSTM,可以全面地獲得詞語的上下文信息。BiLSTM由左右雙向的LSTM疊加而成的,其模型結構如圖4所示。

圖4 BiLSTM模型結構
其中T為輸入的詞嵌入向量,經過分別經過左右向LSTM計算輸出為hL向量和hR向量。最終的x向量是由hL、hR通過線性函數計算獲得。

其中w、v分別為左向輸出的權重向量和右向輸出的權重向量,c為偏移向量。xi組成最終的輸出向量x=(x1,x2,…,xn)。
本文使用某鐵路集團公司機務、車務安檢文本分類數據分別120043條和68780條,兩數據集簡稱為DS01、DS02。均使用20%作為測試數據,80%作為訓練數據。對DS01、DS02安檢文本的二級分類進行訓練和預測,DS01、DS02兩數據集二級分類分別為16、8個。首先對安檢數據格式化為類別和問題內容兩個屬性,再把問題內容文本中的標點符號剔除。數據集如表2所示。

表2 數據集概況
編程語言使用Python 3.7,使用Keras深度學習框架,它封裝了BERT和TensorFlow。服務器環境使用NVIDIA推出GPU計算框架CUDA(Compute Unified Device Architecture),顯存設置為4038MB。
BERT網絡結構網絡層數為12,隱藏層維度為768,Multihead-attention個數為12,總參數大小為110M。文本詞向量長度設置為150,batch-size設置為9,epochs設置為20。BiLSTM的層數為1,隱藏層神經元個數為128,設置dropout為0.1。采用Adam優化器,學習率為1e-5。迭代過程中設置Early-Stopping機制,監控accuracy最小變化為0.02,容忍度為3。
本文分別在DS01、DS02上進行三組實驗,分別得到TextCNN、BiLSTM-attention、BERT-BiLSTM三種模型的實驗數據,比較loss、accuracy、precision、recall、F1-score幾種指標。Accuracy代表測試的準確率,Precision代表精確度,Recall代表查全率,F1-score是Precision和Recall的調和平均值。公式如下,其中,TP表示把正樣本成功預測為正;TN表示把負樣本成功預測為負;FP表示把負樣本錯誤地預測為正;FN表示把正樣本錯誤的預測為負。

DS01、DS02的數據集實驗結果如表3、4所示。

表3 DS01數據集實驗結果

表4 DS02數據集實驗結果
本文采用20個Epochs進行迭代,觀察Precision、Recall、F1-score的變化情況,如圖5、6所示。

圖5 DS01數據集的預測指標變化趨勢

圖6 DS02數據集的預測指標變化趨勢
由圖5-6可知,使用BERT預訓練模型提取文本特征,結合BiLSTM雙向長短記憶模型用于鐵路安監文本分類,較傳統的TextCNN分類模型和單純的BiLSTMattention模型在Precision、F1-score等指標上有顯著提升。采用BERT的多層雙向Transformer機制和Finetuning微調機制在標注訓練文本較少時,能有效提升模型訓練效率,提升預測精確率和準確率。根據圖5、6所示,使用預訓練模型的BERT-BiLSTM,能在訓練開始就能獲得較高的F1-score,說明BERT預訓練模型的能顯著提高訓練效率,使用較短的GPU訓練時間,就能獲取很好的效果。
本文通過BERT-BiLSTM-Softmax模型顯著提高了鐵路安監文本分類的精確率和F1值,幫助鐵路安檢系統實現智能輔助發牌功能,優化了鐵路安監發牌流程,提高了安監系統的實施效果。隨著高鐵事業的跨越式發展,目前的安監問題庫不能準確覆蓋所有的檢查問題情況,因此在安監系統實施中存在大量主觀臆斷為一個任意類型的情況。因此,下一步可以對安監文本進行離異點分析,找出離異點數據,通過專家系統進行標注,擴充問題庫,進而不斷訓練更新分類訓練模型,保持鐵路安監發牌系統持續發展。