黃金杰,藺江全,何勇軍,何瑾潔,王雅君
1.哈爾濱理工大學(xué) 自動(dòng)化學(xué)院,哈爾濱 150080
2.哈爾濱理工大學(xué) 計(jì)算機(jī)學(xué)院,哈爾濱 150080
近年來,隨著互聯(lián)網(wǎng)的發(fā)展及電子社交媒體的深入應(yīng)用,短文本已成為最常用的信息傳遞方式之一。與傳統(tǒng)的長文本相比,短文本有如下特征[1-2]:(1)文本長度較短;(2)文本的稀疏性強(qiáng);(3)文本的實(shí)時(shí)性強(qiáng);(4)文本的格式不標(biāo)準(zhǔn);(5)噪聲分布不均衡。由此短文本的分類問題成為自然語言處理領(lǐng)域的一個(gè)難點(diǎn)問題。傳統(tǒng)的機(jī)器學(xué)習(xí)分類算法(如支持向量機(jī)算法、樸素貝葉斯算法等)在解決短文本分類問題時(shí),仍存在明顯不足[3]。
目前,隨著深度學(xué)習(xí)的快速發(fā)展,在文本分類任務(wù)中,深度神經(jīng)網(wǎng)絡(luò)算法的分類效果一般優(yōu)于傳統(tǒng)的機(jī)器學(xué)習(xí)算法。其中卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)就能很好地解決文本分類問題[4-5]。CNN不僅能獲取鄰近詞匯之間的語義關(guān)系,而且能更加精準(zhǔn)地提取文本的局部特征[6]。Kim[7]提出了一種卷積神經(jīng)網(wǎng)絡(luò)的文本分類模型,該模型在多個(gè)公共數(shù)據(jù)集上均取得了較高的分類準(zhǔn)確率。Kalchbrenner 等人[8]提出一種動(dòng)態(tài)卷積神經(jīng)網(wǎng)絡(luò)(Dynamic Convolution Neural Network,DCNN)模型,該模型能更好地處理不同長度的文本。
自然語言文本中單詞與單詞之間存在語義關(guān)系,而循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)模型在隱含層中巧妙地加入自連和互連機(jī)制,能夠更好地讀取上文信息并進(jìn)行記憶[9-10],因此,RNN模型能更廣泛地獲得文本的上下文信息,在自然語言處理領(lǐng)域(如文本分類和機(jī)器翻譯)獲得廣泛的應(yīng)用。但RNN模型存在梯度爆炸或梯度消失的問題,為了解決此問題,Hochreiter等人[11]對RNN 模型進(jìn)行了改進(jìn),提出了長短時(shí)記憶網(wǎng)絡(luò)模型(Long Short-Term Memory model,LSTM)。由于文本中詞匯語義的理解不僅需要依賴上文信息還需要依賴下文信息,Schuster 等人[12]提出了雙向循環(huán)神經(jīng)網(wǎng)絡(luò)模型。結(jié)合LSTM 和雙向循環(huán)神經(jīng)網(wǎng)絡(luò)模型優(yōu)點(diǎn)的雙向長短時(shí)記憶神經(jīng)網(wǎng)絡(luò)模型(Bi-directional LSTM,Bi-LSTM),進(jìn)一步提高文本分類的準(zhǔn)確率。
CNN能更好地提取文本的局部特征而忽略文本的上下文信息;Bi-LSTM 能更好地理解文本的上下文信息,但不能很好地提取文本的局部特征。因此單一的CNN 或Bi-LSTM 在解決短文本分類問題時(shí),仍存在不足。Lai 等人[13]提出 Bi-LSTM 和 CNN 相結(jié)合的文本分類算法(RCNN),該算法的分類準(zhǔn)確率較單一的CNN和Bi-LSTM 模型相比具有顯著提升。Zhou 等人[14]提出LSTM和CNN相結(jié)合的文本分類算法(CLSTM),該模型在多個(gè)公共數(shù)據(jù)集上均取得了較高的分類準(zhǔn)確率。但以上兩種模型不能有重點(diǎn)地篩選相關(guān)特征進(jìn)行文本分類。
近幾年來,注意力機(jī)制被廣泛應(yīng)用在深度學(xué)習(xí)任務(wù)中,是深度學(xué)習(xí)技術(shù)中最值得關(guān)注與深入學(xué)習(xí)的核心技術(shù)之一[15]。注意力機(jī)制的本質(zhì)與人類的選擇性視覺注意力機(jī)制類似,目的也是從眾多信息中選擇出跟當(dāng)前任務(wù)最相關(guān)的信息[16]。Yin等人[17]提出了三種在CNN中擴(kuò)展注意力機(jī)制的方法,提供了在CNN 中使用注意力機(jī)制的思路。Yang 等人[18]提出一種用于文本分類的多層注意力機(jī)制網(wǎng)絡(luò),通過對詞級別和句級別的特征分別使用注意力機(jī)制,來提取對文檔比較重要的詞或句子,從而提高文本的分類效果。Zhou 等人[19]提出了含有注意力機(jī)制的Bi-LSTM 模型,該模型能有重點(diǎn)地提取文本特性提高文本分類的準(zhǔn)確率。
單一的神經(jīng)網(wǎng)絡(luò)模型在解決短文本分類問題上仍存在明顯不足。針對這一問題,本文從改進(jìn)分類模型方面,展開了廣泛研究,提出了一種基于局部語義特征與上下文關(guān)系融合的中文短文本分類算法,稱為Bi-LSTM_CNN_AT。該模型利用CNN提取文本的局部特征,利用Bi-LSTM提取文本的上下文語義特征,并結(jié)合注意力機(jī)制,使Bi-LSTM_CNN_AT 模型能從眾多的特征中提取出和當(dāng)前任務(wù)最相關(guān)的特征,更好地進(jìn)行文本分類。
Bi-LSTM_CNN_AT 模型的整體框架如圖1 所示。該模型由CNN和Bi-LSTM兩大部分組成,其中CNN模型的多卷積核機(jī)制可以更好地提取文本數(shù)據(jù)的n-gram特征,使得CNN 模型能學(xué)習(xí)到更豐富的局部特征;Bi-LSTM模型能提取和記憶文本的上下文信息,同時(shí)結(jié)合注意力機(jī)制模型可以將Bi-LSTM模型的輸出集中在對當(dāng)前任務(wù)更重要的信息上。
圖1 Bi-LSTM_CNN_AT模型的整體框架
如圖1 所示,圖中A 通道為結(jié)合注意力機(jī)制的Bi-LSTM 模型,其輸入為詞向量,Bi-LSTM 模型隱藏層神經(jīng)元為160個(gè),注意力機(jī)制尺寸為128;圖中B通道為多卷積核CNN 模型,其輸入為字向量,CNN 卷積核尺寸分別為1、2、3、4 和5,其卷積核數(shù)目均為32。將左右兩通道輸出拼接成向量v1,最后通過全連接神經(jīng)網(wǎng)絡(luò)和softmax層進(jìn)行文本分類。
LSTM的細(xì)胞(cell)單元結(jié)構(gòu)如圖2所示。
圖2 Cell單元結(jié)構(gòu)
如圖2 所示,Cell 中設(shè)置了輸入門(it)、遺忘門(ft)和輸出門(ot)三種門結(jié)構(gòu),用于記錄和更新記憶單元中的信息。其中各個(gè)門t時(shí)刻狀態(tài)更新公式如下:
其中,σ代表sigmod函數(shù),Wf、bf為遺忘門的權(quán)重和偏置值,Wi、bi為輸入門的權(quán)重和偏置值,Wo、bo為輸出門的權(quán)重和偏置值。式(1)為遺忘門表達(dá)式;式(2)為輸入門表達(dá)式;式(3)為輸出門表達(dá)式;式(4)表示對記憶單元的更新;式(5)為當(dāng)前的輸出結(jié)果。
在LSTM 模型中,狀態(tài)的傳輸是從前往后單向的。然而,在有些問題中,當(dāng)前時(shí)刻的輸出不僅與之前的狀態(tài)有關(guān),也與之后的狀態(tài)有關(guān),因此需要使用Bi-LSTM模型。Bi-LSTM模型的主體結(jié)構(gòu)就是由兩個(gè)單向LSTM組成。在每一個(gè)時(shí)刻t,輸入會(huì)同時(shí)提供給兩個(gè)方向相反的LSTM,而輸出則是由這兩個(gè)單向LSTM共同決定。
在使用Bi-LSTM 進(jìn)行文本分類時(shí),每個(gè)時(shí)刻的輸出與該時(shí)刻的輸入以及上下文的語境有關(guān),如果直接將每個(gè)時(shí)刻的輸出向量相加再平均,就等于認(rèn)為每個(gè)輸入對于文本分類的貢獻(xiàn)是一樣的,但實(shí)際情況往往并非如此。比如“科比籃球打得很好”,該文本應(yīng)該判別為體育類,其中“科比”“籃球”是對分類比較關(guān)鍵的詞,應(yīng)享有更大的權(quán)重。所以在合并Bi-LSTM 輸出向量時(shí),希望將注意力集中在對當(dāng)前任務(wù)更重要的向量上,因此引入注意力機(jī)制。結(jié)合注意力機(jī)制的Bi-LSTM模型結(jié)構(gòu)如圖3所示。
圖3 結(jié)合注意力機(jī)制的Bi-LSTM模型結(jié)構(gòu)
如圖3所示,含有注意力機(jī)制的Bi-LSTM模型是將正向和反向的LSTM 輸出進(jìn)行拼接,然后經(jīng)注意力機(jī)制,最后得到該模型的輸出。注意力機(jī)制公式如下:
公式(6)中ww與bw分別為注意力機(jī)制的權(quán)重和偏置量,其中ww為 128×320 維矩陣,bw為128 維列向量,yt為320維列向量,公式(7)中uw為隨機(jī)初始化的128維注意力機(jī)制列向量,然后經(jīng)過softmax操作獲得一個(gè)歸一化的注意力機(jī)制權(quán)重αt,公式(8)將計(jì)算出來的αt作為各個(gè)時(shí)刻的輸出權(quán)重,對Bi-LSTM 輸出進(jìn)行加權(quán)求和。
CNN文本分類模型結(jié)構(gòu)示意圖如圖4所示。
圖4 文本卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
圖4 中,文本卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)共四層,從底往上依次為:
(1)輸入層(Input Layer)。首先查詢文本D中每個(gè)單詞Wi對應(yīng)的詞向量Xi∈Rd,然后將詞向量結(jié)合成輸入矩陣[ ]X1,X2,…,Xn。
(2)卷積層(Convolutional Layer)。該層含有多個(gè)不同長度的卷積核,卷積核寬度為詞向量長度。該層通過滑動(dòng)能容納h個(gè)單詞的卷積核進(jìn)行卷積計(jì)算,從而得到文本的局部特征值:
其中,Xi:(i+h-1)表示從文本對應(yīng)的詞向量第i個(gè)位置開始往后的h個(gè)詞向量組成的矩陣,wc表示卷積核,bc表示偏置項(xiàng),f表示非線性激活函數(shù),ci表示該卷積核在位置i的卷積特征值。將該卷積核wc從輸入矩陣的頂端滑到低端,從而得到特征圖:
(3)池化層(Pooling Layer)。該層的主要作用是將卷積層得到的特征圖進(jìn)行特征采樣。常用的池化策略是最大值池化:
之后,將池化層計(jì)算得到的所有最大特征值進(jìn)行拼接,從而得到文本的高層特征向量v表示。
(4)分類器層(Classifier Layer)。該層以高層特征向量作為輸入,經(jīng)全連接神經(jīng)網(wǎng)絡(luò)和softmax 分類器進(jìn)行分類,最后輸出當(dāng)前樣本在兩個(gè)類別上的概率:
其中,y表示分類標(biāo)簽,ws為權(quán)重,bs為偏置。
文本卷積神經(jīng)網(wǎng)絡(luò)在每一次前向傳播完成后,利用反向傳播算法優(yōu)化模型參數(shù),經(jīng)多次迭代取最優(yōu)模型作為最終文本卷積神經(jīng)分類模型。
實(shí)驗(yàn)數(shù)據(jù)采用的是2017 自然語言處理與中文計(jì)算評測(NLP&CC2017)公開評測數(shù)據(jù),該數(shù)據(jù)包含18 個(gè)類別的新聞標(biāo)題文本,一條文本的長度平均約為22 個(gè)字、13 個(gè)詞。訓(xùn)練集、測試集和驗(yàn)證集數(shù)量如表1所示。
表1 實(shí)驗(yàn)數(shù)據(jù)分布
采用Google 開源模型Word2vec 訓(xùn)練語料,得到的維度分別為50、200和300的字向量和詞向量,生成該向量所對應(yīng)的語料為:百度百科800 萬條文本數(shù)據(jù);搜狐新聞400萬條數(shù)據(jù);200 GB小說數(shù)據(jù)。
實(shí)驗(yàn)評判標(biāo)準(zhǔn)采用目前廣泛使用的準(zhǔn)確率(Accuracy)、精度(Precision)、召回率(Recall)和F1值 (F1-measure)4種評價(jià)指標(biāo),4種指標(biāo)計(jì)算公式如下:
其中,TP表示實(shí)際為正,預(yù)測為正的樣本數(shù);FN表示實(shí)際為正,預(yù)測為負(fù)的樣本數(shù);TN表示實(shí)際為負(fù),預(yù)測為負(fù)的樣本數(shù);FP表示實(shí)際為負(fù),預(yù)測為正的樣本數(shù)。
為了分析所提算法各組成部分的性能及其有效機(jī)制,將雙通道按照如下四種方式構(gòu)造:
(1)Bi-LSTM_CNN_AT 神經(jīng)網(wǎng)絡(luò),A 通道為含有注意力機(jī)制的Bi-LSTM,B通道為CNN。
(2)雙通道神經(jīng)網(wǎng)絡(luò),A 通道為Bi-LSTM,B 通道為CNN(Bi-LSTM_CNN)。
(3)含有注意力機(jī)制的雙通道神經(jīng)網(wǎng)絡(luò),A通道為含有注意力機(jī)制的LSTM,B通道為CNN(LSTM_CNN_AT)。
(4)雙通道CNN網(wǎng)絡(luò)(CNN_CNN)。
實(shí)驗(yàn)中每個(gè)通道分別輸入300維的詞向量或300維的字向量,以觀察A、B通道對上下文關(guān)系和局部語義特征提取的傾向性。實(shí)驗(yàn)結(jié)果如表2 所示,其中300w 表示為該通道使用300 維的詞向量,300sw 表示為該通道使用300 維的字向量。Bi-LSTM_CNN_AT 模型訓(xùn)練過程準(zhǔn)確率對比圖如圖5所示。
圖5 Bi-LSTM_CNN_AT模型訓(xùn)練過程準(zhǔn)確率對比
表2 探究算法的實(shí)驗(yàn)結(jié)果
如表2 所示,Bi-LSTM_CNN_AT 模型分類結(jié)果較Bi-LSTM_CNN 模型均有顯著提升,表明注意力機(jī)制從眾多的特征中提取出和當(dāng)前任務(wù)最相關(guān)特征的特點(diǎn)對文本分類是有效的。Bi-LSTM_CNN_AT 模型中1 組A通道使用300維的詞向量和B通道使用300維的字向量(Bi-LSTM_CNN_AT1)的分類F1值較同模型其他組最高,Bi-LSTM_CNN模型中1組A通道使用300維的詞向量和B 通道使用300 維的字向量(Bi-LSTM_CNN1)的分類F1值較同模型其他組也最高。因此Bi-LSTM 通道使用詞向量和CNN 通道使用字向量,這種組合最合理。這是因?yàn)樵谥形恼Z境中,往往以詞組的形式來表達(dá)一個(gè)完成的語義,因此詞語與詞語之間的上下文聯(lián)系比單字與單字之間的上下文聯(lián)系大,所以使用Bi-LSTM模型捕捉詞語和詞語之間的上下文關(guān)系;詞語是由單字組成的,單字能更好地凸顯出文本的局部特征,因此在CNN 模型提取局部語義特征時(shí),使用了字向量。Bi-LSTM_CNN_AT1組的分類準(zhǔn)確率高于LSTM_CNN_AT模型和CNN_CNN 模型,表明Bi-LSTM 模型提取文本上下文關(guān)系有利于解決文本分類任務(wù)。Bi-LSTM_CNN_AT1 組的分類準(zhǔn)確率高于CNN 模型和Bi-LSTM_AT 模型,表明Bi-LSTM_CNN_AT1模型能提取文本的上下文特征和局部語義特征,比單一的提取上下文特征模型或提取局部語義特征模型能更好地進(jìn)行文本分類。
如圖5 所示,Bi-LSTM_CNN_AT 模型訓(xùn)練過程中,1 組、2 組和 4 組收斂速度高于 3 組,其中 1 組在 8 800 輪準(zhǔn)確率為81.31%,高于其他組,該組模型具有較快地收斂速度。綜上實(shí)驗(yàn)表明,所提的Bi-LSTM_CNN_AT 算法在構(gòu)造上是合理和有效的。
從最近發(fā)表的相關(guān)文獻(xiàn)中選取六種有代表性的文本分類算法與Bi-LSTM_CNN_AT 算法進(jìn)行對比實(shí)驗(yàn)。對比算法如下:Kim[7]提出文本卷積神經(jīng)網(wǎng)絡(luò)的文本分類模型(CNN);Hochreiter 等人[11]提出LSTM 分類模型(LSTM),Bi-LSTM 的文本分類算法(Bi-LSTM),Lai 等人[13]提出RNN和CNN相結(jié)合的文本分類算法(RCNN),Zhou 等人[14]提出 LSTM 和 CNN 相結(jié)合的文本分類算法(CLSTM),Zhou 等人[19]提出含有注意力機(jī)制的Bi-LSTM文本分類算法(Bi-LSTM_AT)。實(shí)驗(yàn)中所有算法的實(shí)驗(yàn)參數(shù)均根據(jù)參考文獻(xiàn)選擇最佳配置,分別選用50、200 和300 維的詞向量和字向量進(jìn)行算法驗(yàn)證。使用詞向量的實(shí)驗(yàn)結(jié)果如表3所示,使用字向量的實(shí)驗(yàn)結(jié)果如表4 所示。詞向量模型F1值對比圖如圖6 所示。字向量模型F1值對比圖如圖7所示。
由表3和表4可以看出,相比這六種文本分類算法,Bi-LSTM_CNN_AT1 在上述數(shù)據(jù)集上表現(xiàn)良好的性能。從準(zhǔn)確率對比結(jié)果可以看出,Bi-LSTM_CNN_AT1的分類準(zhǔn)確率為81.31%,相比這六種文本分類算法,Bi-LSTM_CNN_AT1模型仍具有明顯的優(yōu)勢。從精度對比結(jié)果可看出,Bi-LSTM_CNN_AT1 取得最高的分類精度,證明Bi-LSTM_CNN_AT1算法在準(zhǔn)確識(shí)別正向文本的準(zhǔn)確率方面優(yōu)于其他算法。從召回率對比結(jié)果可看出,Bi-LSTM_CNN_AT1 取得最高的分類召回率,在召回率指標(biāo)上再次證明本文算法的有效性。F1值是綜合精度和召回率的一個(gè)有效評價(jià)標(biāo)準(zhǔn),因此算法在這個(gè)指標(biāo)上的優(yōu)劣可以全面反映算法的性能。從F1值對比結(jié)果可以看出,Bi-LSTM_CNN_AT1的F1值均最高,進(jìn)一步證明本文算法具備一定的優(yōu)越性。
表3 使用詞向量的實(shí)驗(yàn)結(jié)果 %
表4 使用字向量的實(shí)驗(yàn)結(jié)果 %
圖6 詞向量模型F1 值對比圖
圖7 字向量模型F1 值對比圖
如圖6,圖7所示,六種經(jīng)典分類算法中隨著字向量和詞向量維數(shù)的增加,分類準(zhǔn)確率依次上升,表明高維度的字向量和詞向量含有更廣泛的文本特征,有利于文本分類。
盧玲等人[3]提出結(jié)合語義擴(kuò)展和卷積神經(jīng)網(wǎng)絡(luò)的中文短文本分類算法,該方法最佳的分類準(zhǔn)確率為79.42%。本文提出的Bi-LSTM_CNN_AT模型最佳的分類準(zhǔn)確率為81.31%,較之提高了1.89個(gè)百分點(diǎn)。
通過對以上實(shí)驗(yàn)的結(jié)果及分析可以看出,本文提出的Bi-LSTM_CNN_AT 神經(jīng)網(wǎng)絡(luò)在NLP&CC2017 新聞標(biāo)題分類任務(wù)的數(shù)據(jù)集中獲得最好的成績,說明本文提出的Bi-LSTM_CNN_AT神經(jīng)網(wǎng)絡(luò)算法在中文短文本分類任務(wù)中是有效的。
針對中文短文本長度短、特征稀疏、分類正確率難以提升的問題,本文提出了一種基于局部語義特征與上下文關(guān)系融合的中文短文本分類算法,稱為Bi-LSTM_CNN_AT。該算法不僅能融合文本局部語義特征和上下文語義關(guān)系,還能提取文本的字向量和詞向量特征,并結(jié)合注意力機(jī)制,使該算法能從眾多的特征中提取出和當(dāng)前任務(wù)最相關(guān)的特征,更好地進(jìn)行文本分類。該模型在NLP&CC2017的新聞標(biāo)題分類任務(wù)中的準(zhǔn)確率較其他文本分類算法有顯著提升。
由于NLP&CC2017 新聞標(biāo)題分類任務(wù)的數(shù)據(jù)集仍然是小規(guī)模數(shù)據(jù)集,其數(shù)量和語義特征相對有限,因此在以后面的工作中將在更加復(fù)雜多樣的數(shù)據(jù)集上驗(yàn)證本文所提的神經(jīng)網(wǎng)絡(luò)模型的有效性。