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

表1 鐵路安監(jiān)檢查文本分類示例

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

圖1 BERT-BiLSTM-Softmax網(wǎng)絡(luò)模型結(jié)構(gòu)
Softmax函數(shù)用于多分類問題,對待分類文本計(jì)算每個(gè)可能分類的概率。Softmax函數(shù)形如公式(1):

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

Transformer方法通過計(jì)算目標(biāo)詞與源文本每個(gè)詞之間的相似度作為權(quán)重系數(shù),對其進(jìn)行加權(quán)求和表示詞向量,實(shí)現(xiàn)關(guān)注和提取上下文重點(diǎn)信息。Transformer使用了Attention機(jī)制的同時(shí),提出Self-Attention結(jié)構(gòu),并結(jié)合Multi-Head Attention能夠同時(shí)獲取上下文信息。Transformer大量應(yīng)用在預(yù)訓(xùn)練模型中,如GPT(Generative Pre-trained Transformer),如圖2所示。

圖2 GPT模型結(jié)構(gòu)
BERT采用多個(gè)雙向Transformer編碼器層堆疊組成全連接神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),相比于GPT模型,BERT采用雙向方法,能夠同時(shí)捕獲上下文語境信息。BERT采用多層Transformer作為核心架構(gòu)進(jìn)行特征提取的半監(jiān)督學(xué)習(xí)模型,先進(jìn)行無監(jiān)督訓(xùn)練,經(jīng)過多層神經(jīng)網(wǎng)絡(luò)訓(xùn)練,形成文本詞向量表示。以最后一層的詞向量作為后續(xù)任務(wù)的輸入并結(jié)合Fine-tuning微調(diào)方法可以使用少量標(biāo)注文本進(jìn)行訓(xùn)練和參數(shù)調(diào)整達(dá)到較好的準(zhǔn)確率。如圖3所示。

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

圖4 BiLSTM模型結(jié)構(gòu)
其中T為輸入的詞嵌入向量,經(jīng)過分別經(jīng)過左右向LSTM計(jì)算輸出為hL向量和hR向量。最終的x向量是由hL、hR通過線性函數(shù)計(jì)算獲得。

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

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

DS01、DS02的數(shù)據(jù)集實(shí)驗(yàn)結(jié)果如表3、4所示。

表3 DS01數(shù)據(jù)集實(shí)驗(yàn)結(jié)果

表4 DS02數(shù)據(jù)集實(shí)驗(yàn)結(jié)果
本文采用20個(gè)Epochs進(jìn)行迭代,觀察Precision、Recall、F1-score的變化情況,如圖5、6所示。

圖5 DS01數(shù)據(jù)集的預(yù)測指標(biāo)變化趨勢

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