陳農(nóng)田,李俊輝,滿永政
(中國民用航空飛行學院,四川 廣漢 618307)
文本分類是自然語言處理經(jīng)典的任務,吸引了學者們的廣泛關(guān)注.文本分類主要包括樣本的預處理、文本表示、特征工程和分類器四方面的工作[1].文本分類的核心體現(xiàn)在特征工程的選取和分類器的構(gòu)建.Bengio等[2]最先構(gòu)造出語言模型,為神經(jīng)網(wǎng)絡在NLP的發(fā)展提供了思路.在文本表示方面,Mikolov等[3]提出了兩種詞向量模型,利用形態(tài)學改進word embedding的工作.2014年Jeffrey等[4]等提出Glove方法,此方法能夠通過全局詞匯信息,來訓練詞向量,從而表示效果得到了提升.在特征提取方面,Kim[5]將卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)應用到了文本分類任務,采用多窗口方式提取關(guān)鍵信息,從而能夠更好地捕獲局部信息.Lee等[6]把循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network, RNN)與CNN相結(jié)合,證明了添加時序性可以提升分類效果.門控循環(huán)單元(Gate Recurrent Unit,GRU)[7]是RNN的一種,是考慮序列的長期時間性和反向傳播過程中存在的梯度上升或下降等問題而提出來的.雙向長短時記憶網(wǎng)絡(BiGRU)[8]為正反向兩個GRU組成,此網(wǎng)絡模型能有效獲取上下文語義信息.
近些年,深度學習在自然語言處理方面取得了一定成果,出現(xiàn)了一些新的文本分類模型.Bahdanau等[9]最早提出注意力機制,后來應用到了文本處理中,以區(qū)分文本中信息的重要性大小.隨著技術(shù)的進步與人員的投入,學者們開始使用多個模型結(jié)合,以提高分類效果.Guo等[10]通過多通道TextCNN引入加權(quán)詞嵌入來改善文本分類.余本功等[11]針對對話問句長度較短、特征稀疏等特點,提出一種層級注意力多通道卷積雙向GRU分類模型,彌補問句意圖理解不準確的不足,提高了問題分類性能.Liu等[12]使用六個情感分類數(shù)據(jù)集和一個問題分類數(shù)據(jù)集進行實驗驗證,證實了AC-BiLSTM在分類準確性方面優(yōu)于其他文本分類方法.林思琦等[13]提出了一種融入觀點句特征的漢越雙語新聞情感分類方法,利用CNN與GRU模型相結(jié)合對特征進行識別,最后通過Softmax函數(shù)情感極性進行分類,提升了分類準確性.張帥[14]提出一種GM-CNN模型,提升了文本泛化信息和記憶信息能力.李文慧等[15]針對短文本信息量少、其網(wǎng)絡易受干擾的特點,提出了一種利用注意力機制和對抗訓練改進雙向長短期記憶網(wǎng)絡的多層級短文本分類模型,有效地解決了短文本分類效果差的問題.謝金寶等[16]利用CNN、LSTM、Attention結(jié)合構(gòu)成多元特征融合的文本分類模型,用來提取不同層級的特征,提升模型辨別力.張志遠等[17]利用CNN與LSTM模型結(jié)合改進,利用LSTM替代CNN中的最大池化層,以減少局部信息丟失,從而實現(xiàn)了短文本情感分類的研究.
綜上所述,國內(nèi)在自然語言處理領(lǐng)域取得了系列成果,但在分類模型與仿真方面還有待深入.本文在借鑒國內(nèi)外學者研究基礎(chǔ)上,提出一種多通道TextCNN-BiGRU-att中文文本分類模型,通過word2vec對初始文本向量化選取窗口值組成三通道,運用CNN提取局部特征,利用雙向門控循環(huán)單元(BiGRU)提取上下文全局信息,運用注意力層與池化層獲取并優(yōu)化重要特征,采用softmax函數(shù)使誤差loss極小化,最后進行分類模型仿真實驗驗證性能效果.
基于多通道TextCNN-BiGRU-att的中文文本多分類模型如圖1所示.
圖1 TextCNN-BiGRU-att分類模型網(wǎng)絡結(jié)構(gòu)圖
在文本分析前,需要將計算機不認識的詞匯、句子等轉(zhuǎn)化成能夠識別的數(shù)值形式.目前有兩種熱門轉(zhuǎn)換技術(shù):傳統(tǒng)機器學習中的one-hot編碼方式和基于神經(jīng)網(wǎng)絡的詞嵌入技術(shù).
one-hot編碼是一種稀疏編碼結(jié)果,這種表征方法一般有兩個缺陷:第一是容易造成維數(shù)災難;第二個則在于這種表征方式不能分辨詞匯與詞匯之間的相似性.因此詞嵌入技術(shù)隨之誕生,其基本想法是將詞匯表中的每個單詞表示為一個普通向量,從而解決了one-hot編碼維度過多的問題.
word2vec模型是詞嵌入的典型技術(shù),如圖2所示,由輸入層(input)、隱藏層(hidden)、輸出層(output)構(gòu)成.模型的輸入是一個獨熱(one-hot)向量,即文本信息用{x1,x2,…,xV}表示.假設(shè)詞匯表的大小為V,每個隱藏層的維度為N,則隱藏層的輸入由V×N大小的矩陣W表示.以同樣的方式,可以通過N×V的矩陣W′使隱藏層與輸出層連接,得到詞向量.通常有兩種語言模型,一種是根據(jù)上下文來預測中間詞的CBOW(連續(xù)詞袋模型),另一種是根據(jù)中間詞來預測上下文的skip-gram模型[18].
圖2 word2vec結(jié)構(gòu)示意圖 圖3 本文CNN模型結(jié)構(gòu)
卷積神經(jīng)網(wǎng)絡的核心思想是捕捉局部特征,對于文本來說,局部特征就是由若干單詞組成的滑動窗口,其優(yōu)勢在于將不同抽象層次的語義信息進行提取與合并.由于本文設(shè)置BiGRU后連接激活函數(shù)與全連接層,故認為CNN主體有3部分構(gòu)成:輸入層、卷積層、池化層,如圖3所示.
采用word2vec詞嵌入技術(shù)對文本進行向量化作為CNN結(jié)構(gòu)的輸入,每個詞的詞向量為yi,yi∈RV×N.
卷積層通過設(shè)定好的濾波器對句子矩陣進行卷積操作,從而完成信息的抽取工作:
Si=f(G×yi:i+r-1+b)
(1)
式中:G代表卷積核,r為卷積核的大小,yi:i+r-1是i到i+r-1,b為偏置項,通過卷積層得到的特征矩陣Si,Si=[c1,c2,…,cn-r+1].為了不改變特征向量維度,與減少最大池化后某些特征的丟失,本文在池化層前先加入BiGRU模型進行全局特征的提取,經(jīng)實驗選取3,4,5窗口作為不同卷積核,得到S1,S2,S3三個序列結(jié)構(gòu)的特征矩陣,將此分別作為BiGRU的輸入,最終求得全局與局部特征向量,三者結(jié)合后得到綜合特征矩陣C.
池化層,為了獲得局部值得最優(yōu)解,采用MaxPooling技術(shù)將綜合特征矩陣C進行下采樣,如式(2)所示:
(2)
即對于池化后的向量有全連接層連接,得到池化后特征矩陣U,如(3)式:
U=[M1,M2,…,Mn]
(3)
GRU有效克服RNN存在的梯度問題與長期依賴問題,以LSTM模型為結(jié)構(gòu)基礎(chǔ),合并細胞狀態(tài)與隱藏層狀態(tài),并將遺忘門與輸入們結(jié)合為更新門(update gate),輸出門更名為重置門.GRU比LSTM少了一個門,且所需參數(shù)減少,因此訓練速度要快于LSTM.Rana[19]已在實際運用中證實RNN兩個變體實力相當,但GRU運行效率提升了18.16%.GRU單元詳細結(jié)構(gòu)圖如圖4所示.其具體的計算過程如(4)~(7)式所示:
圖4 GRU模型
zt=σ(wz·[ht-1,Ct])
(4)
rt=σ(wr·[ht-1,Ct])
(5)
(6)
(7)
BiGRU為兩個不同方向的GRU組成.GRU能有效捕獲文本序列信息,但文本數(shù)據(jù)的一般表達為從左至右,單一方向的GRU只能捕獲某一時刻前的信息.因此,本文采用雙向GRU網(wǎng)絡來改善這一問題,利用正反兩方向所捕獲的信息結(jié)合,從整體提取綜合特征,其結(jié)構(gòu)如圖1中GRU模型部分.
注意力模型是用來表示詞語于輸出的結(jié)果之間的相關(guān)性.通過對語義編碼分配不同的權(quán)重值,從而區(qū)別文本信息的不同重要程度,提升分類效果.本文采用前饋神經(jīng)注意力模型進行實驗.其相關(guān)公式如(8)~(10).
生成目標注意力權(quán)重vt,ht為隱藏單元:
vt=tanh(ht)
(8)
為了使計算機能識別不同類型的文本,將softmax函數(shù)引入,生成概率向量ut:
(9)
通過將注意力權(quán)重配置給ht,使注意力機制發(fā)揮作用,at為ht的加權(quán)平均值:
(10)
本文研究的是文本多分類問題,故選擇分類函數(shù)為softmax,將輸出概率映射到0到1之間,且所有概率的和將等于1.
(11)
式中:z是一個向量,zi和zj是其中元素,k為類別數(shù).
求得最小化損失函數(shù)是訓練的目標,故選擇與softmax對應的交叉熵損失函數(shù),如式(12)所示.
(12)
式中:n為訓練數(shù)據(jù)的總數(shù),yj表示真實標記的分布,aj則為訓練后的模型的預測標記分布.
模型優(yōu)化器選擇Adam,此優(yōu)化器結(jié)合了AdaGrad與RMSProp兩種算法的優(yōu)點,參數(shù)更新不受梯度影響.如式(13)~(17).
mt=β1mt-1+(1-β1)gt
(13)
vt=β2vt-1+(1-β2)gt2
(14)
(15)
(16)
(17)
式中:α=0.01,β1=0.9,β2=0.999,gt代表時間步長,ε=10-8.01.
采用10 000條10種不同類別的新聞公開數(shù)據(jù)集作為實驗的語料庫,其各類別數(shù)量如表1所示,且取0.15%作為測試集.由于是中文語料,對其進行分詞與停用詞預處理,并設(shè)置文本長度不超過256個詞語.利用word2vec將文本內(nèi)容向量化,將類別one-hot編碼進行實驗.
表1 新聞文本各類別數(shù)量
仿真實驗語言為python3.7,在spyder工具下使用tensorflow-keras框架,CPU處理器.
參數(shù)對分類效果起直接作用,經(jīng)調(diào)試,具體的參數(shù)設(shè)置如表2所示.
表2 參數(shù)設(shè)置
在NLP中通常用準確度(Accuracy)、精準度(Precision)、召回率(Recall)、F1值(Fθ)作為常用評判模型優(yōu)劣性標準.
設(shè)總的測試集個數(shù)為TP+TN+FP+FN,其各自代表含義如表3所示.
表3 評估指標參數(shù)相關(guān)含義
準確度越高,說明分類能力越好,其計算公式如式(18).
(18)
精準度的計算公式如下:
(19)
召回率是對查全率的評估,如式(20)所示:
(20)
F1為綜合評估指標,如式(21)所示:
(21)
多通道TextCNN-BiGRU-att模型和傳統(tǒng)機器學習方法支持向量機(SVM)、深度學習網(wǎng)絡TextCNN-att、GRU-att、BiGRU-att、TextCNN-GRU-att比較,在測試集上計算準確率、精準度、召回率、F1值進行評估,測得的結(jié)果對比如表4所示.
表4 不同模型結(jié)果對比
從表4顯示的6種模型可以看出:通過準確度、精準度、召回率、F1值四個綜合評估指標對比,本模型的準確度能達到94.5%,且所有指標都優(yōu)于其他對比模型.SVM能取得較好的分類效果,但其他6組深度學習模型明顯優(yōu)于SVM.考慮到attention機制用來表示詞語于輸出的結(jié)果之間的相關(guān)性,故對每一個深度模型都設(shè)置這一機制進行比較.第2、3組模型為單一的網(wǎng)絡模型,從結(jié)果分析可以看出,單一思路的局部特征提取和序列特征提取的兩種方法分類效果相近,但四個綜合評估指標未達優(yōu)值.設(shè)置3、4組實驗對比,雙向門控循環(huán)單元效果較優(yōu).第5、6組與之前的3種深度模型對比,聯(lián)合模型解決了單一思想的不足,有效提高了分類的準確度,且都高于90%.考慮神經(jīng)網(wǎng)絡的復雜程度可能對分類效果產(chǎn)生影響,設(shè)置5、6組實驗對比,在本實驗中,5組從四項評估指標看出分類效果略低于6組本文模型.
為了更加直觀反映本文設(shè)置的幾種深度模型的優(yōu)劣,本文選擇繪制出驗證集在10個epoch下的準確度(acc)和損失率(loss)變化圖,分別如圖5、圖6所示.
圖5 驗證集準確度變化 圖6 驗證集損失率變化
從圖5準確度變化圖可以看出:從宏觀上看,這5種深度模型的準確度都呈上升趨勢,兩種聯(lián)合模型相對趨勢較平穩(wěn),對于前3種深度模型比波動性較小.從微觀上看經(jīng)過4個epoch后5種模型的準確度都在80%以上,其中兩種聯(lián)合模型的準確度都在90%以上.兩種聯(lián)合模型比較,本文提出的模型只有在第9個epoch時低于另一聯(lián)合模型,而其余epoch下都較高.本文提出的多通道TextCNN-BiGRU-att模型在較少的epoch下就能獲得較高準確度,說明能達到較好的分類效果.
對于損失率,數(shù)值越小收斂性越好.從圖6可以看出:5種深度模型都在前3個epoch出現(xiàn)不同程度的下降,CNN模型的下降幅度最大.本文所提出的模型變化趨勢平穩(wěn),在調(diào)整權(quán)重的過程中,第8個epoch時出現(xiàn)上升后下降波動.其原因可能是某個參數(shù)的突變影響,這時模型需要重新學習一個新的數(shù)值,使梯度重新下降.但此模型從總體上看,損失率都低于其他對比模型,且穩(wěn)定在0.22%左右,即體現(xiàn)出本模型收斂速度快、準確度高等特點.
考慮若只在單一數(shù)據(jù)集上進行實驗,不能保證泛化能力,可能會出現(xiàn)因為數(shù)據(jù)量不足出現(xiàn)過擬合現(xiàn)象.因此,將以本模型為基礎(chǔ),用于航空不安全信息文本之中,進行泛化能力實驗的分析.
美國航空安全事故報告在線數(shù)據(jù)庫(ASRS)是世界目前最大的由航空前線人員(包括飛行員、管制員、機械師、乘務員和調(diào)度員)提供的自愿性機密安全信息庫,其中反映了當前航空系統(tǒng)中存在的漏洞與隱患.報告通常包括事故日期(地點)、飛行環(huán)境(計劃、階段、任務)、事故類型及結(jié)果等結(jié)構(gòu)化數(shù)據(jù)和對整個航空事件經(jīng)過進行描述的非結(jié)構(gòu)化數(shù)據(jù).選擇ASRS為主要數(shù)據(jù)來源,并收集篩選我國飛行不安全事件或事故對語料庫進行擴充,共產(chǎn)生 2 267 條數(shù)據(jù).
將文本按照上述模型步驟進行分析,其結(jié)果與劉夢娜[20]所建立的ASRS文本分類模型進行比較,其結(jié)果如表5所示.
表5 ASRS文本分類模型比較結(jié)果
本文模型與比較模型準確度相差不大,雖然其準確度只提高了0.2%,但足以證明其模型的泛化能力良好,故為后續(xù)研究提供了參考.
提出了多通道TextCNN-BiGRU-att文本分類模型,利用TextCNN抽取文本在3,4,5大小的窗口下的局部特征信息.同時將所提取的特征利用BiGRU深度學習其相互之間的聯(lián)系,從而提高模型的特征表示能力.根據(jù)仿真實驗可以看出多通道TextCNN-BiGRU-att較傳統(tǒng)模型有效提升了分類準確率,且收斂速度較快.并且將此模型應用于ASRS航空不安全信息文本之中,具有較為良好的泛化能力,因此,為該領(lǐng)域的相關(guān)研究工作提供了一定的思路.