武 淵,徐逸卿
(1.山西省人事考試中心,山西 太原 030000;2.南京林業(yè)大學(xué) 信息科學(xué)技術(shù)學(xué)院,江蘇 南京 210037)
傳統(tǒng)的互聯(lián)網(wǎng)中,人們獲取信息的方式比較有限,信息的傳遞方式主要是新聞門(mén)戶(hù)網(wǎng)站、BBS論壇社區(qū)、個(gè)人博客及維基百科等.如今,新聞行業(yè)數(shù)字化發(fā)展極大地滿(mǎn)足了人們“足不出戶(hù)而知天下事”的心愿;人們交流和溝通的渠道也大大增加,既有微博、抖音等一類(lèi)的公共信息獲取平臺(tái),還有基于私密信息分享的應(yīng)用如微信、QQ等,這類(lèi)新興的媒體每天都在產(chǎn)生海量的短文本信息[1-2].
互聯(lián)網(wǎng)短文本指那些長(zhǎng)度較短的文本形式,一般不超過(guò)300字,短文本話(huà)題涉及經(jīng)濟(jì)、政治、文化、生活等各個(gè)方面.在互聯(lián)網(wǎng)新時(shí)代,人們?cè)诓粩嗟匕l(fā)出信息,也在持續(xù)不斷地接收信息.如何對(duì)呈現(xiàn)出爆炸式增長(zhǎng)的以中文短文本形式表示的信息進(jìn)行歸類(lèi)、組織和利用是一個(gè)亟待解決的問(wèn)題.一般來(lái)說(shuō),通常意義上的短文本具有高維、稀疏性、海量、內(nèi)容不規(guī)范、不均衡等特點(diǎn).短文本的分類(lèi)任務(wù)一般包括短文本預(yù)處理、特征選擇、模型訓(xùn)練并預(yù)測(cè)三個(gè)步驟,如圖1 所示.
圖1 文本分類(lèi)流程圖Fig.1 Flow chart of text classification
自從2006年加拿大多倫多大學(xué)教授Geoffrey Hinton在《科學(xué)》上發(fā)表了關(guān)于深度神經(jīng)網(wǎng)絡(luò)的文章后[3],學(xué)術(shù)界和工業(yè)界便紛紛刮起了深度學(xué)習(xí)的鉆研熱潮.深度學(xué)習(xí)的最終目的是通過(guò)模擬人腦的分析和學(xué)習(xí)過(guò)程來(lái)對(duì)圖像、文本、語(yǔ)音等信息進(jìn)行抽象表示,本質(zhì)上屬于一種無(wú)監(jiān)督學(xué)習(xí)的方法.最近幾年人們?cè)谧匀徽Z(yǔ)言處理領(lǐng)域?qū)ι疃葘W(xué)習(xí)相關(guān)算法的研究越來(lái)越深入,有研究表明,通過(guò)利用大規(guī)模語(yǔ)料來(lái)訓(xùn)練語(yǔ)言模型可以在字符、詞、句、段落和篇章等不同結(jié)構(gòu)層次上得到不同抽象層次的表示[4-5].在短文本分類(lèi)任務(wù)上,我們同樣可以利用深度學(xué)習(xí)的方法來(lái)實(shí)現(xiàn).例如,Liu等[6]提出了具有兩個(gè)通道和三個(gè)內(nèi)核的多通道CNN模型,以提高文本分類(lèi)的準(zhǔn)確性.史偉等[7]提出了一種基于遷移學(xué)習(xí)的情感分析方法,在雙向長(zhǎng)短型記憶網(wǎng)絡(luò)模型之上引入域適應(yīng)層,以提高短文本分類(lèi)能力.范濤等[8]利用基于雙向門(mén)循環(huán)單元的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)文本中不同模態(tài)的上下文關(guān)系,利用三重笛卡爾積的方式充分融合雙模態(tài)特征,從而獲得文本情感類(lèi)別.上述研究往往對(duì)所有關(guān)鍵詞賦予相同的權(quán)重,此時(shí),一個(gè)混淆關(guān)鍵詞就能對(duì)短文本的最終分類(lèi)產(chǎn)生影響.本文采用多層異構(gòu)注意力機(jī)制發(fā)掘強(qiáng)關(guān)鍵詞,并優(yōu)化權(quán)重配置,以提高分類(lèi)精度.
本文從目前主要應(yīng)用于短文本分類(lèi)的深度學(xué)習(xí)方法中,選取實(shí)現(xiàn)了四種分類(lèi)方法:TextCNN,TextRNN,TextRCNN,F(xiàn)astText,基于新聞標(biāo)題的短文本數(shù)據(jù),進(jìn)行實(shí)驗(yàn)對(duì)比與分析總結(jié),從而方便研究者做出針對(duì)性的改進(jìn)研究,以及利于短文本的處理技術(shù)在人性化推薦、政府輿情分析決策、熱點(diǎn)事件發(fā)現(xiàn)、垃圾信息過(guò)濾等領(lǐng)域發(fā)揮重要的作用.
傳統(tǒng)的詞向量?jī)H考慮特定詞與臨近上下文的局部關(guān)系特征,忽視了非連續(xù)詞的依賴(lài)關(guān)系.上下文注意力機(jī)制考慮了文章整體的連續(xù)性和關(guān)聯(lián)性,其關(guān)鍵思想如下:
對(duì)于一個(gè)特定文本,其文本特征矩陣可描述為一系列特征組合
(1)
式中:pi∈Rd是文本序列中第i個(gè)特征對(duì)應(yīng)d維詞向量;m是給定文本特征向量個(gè)數(shù).
根據(jù)上下文關(guān)系,即特征向量之間存在的關(guān)聯(lián)性,判定出需要重點(diǎn)注意的特征.例如,對(duì)于特征pi,上下文關(guān)聯(lián)性決定了需要注意的特征pj(j≠i),上下文向量以及對(duì)應(yīng)注意力權(quán)重可根據(jù)式(2)~式(6)得出.
(2)
(3)
relate(pi,pj)=tanh(θ[pi⊕pj]),
(4)
λi,j≥0,?1≤j≤m,j≠i,
(5)
(6)
式中:λi,j是特征對(duì)(pi,pj)之間的注意力得分;relate(pi,pj)是特征對(duì)(pi,pj)的相關(guān)性量化函數(shù);θ是注意力參數(shù)矩陣;?是指串聯(lián).
(7)
(8)
深度學(xué)習(xí)具有多層神經(jīng)元,隨著網(wǎng)絡(luò)層次的加深,不同層對(duì)于分類(lèi)效果的影響不同.因此,本文將特征提取網(wǎng)絡(luò)和基于滲透假設(shè)的類(lèi)平衡分層方法結(jié)合,將所提出的基于上下文關(guān)系的異構(gòu)注意力機(jī)制置于不同層之間,從而構(gòu)建多層注意力機(jī)制.
為克服過(guò)擬合現(xiàn)象,采用Dropout(丟棄法)對(duì)特征向量進(jìn)行正則化處理.Dropout方法在深度學(xué)習(xí)前向訓(xùn)練過(guò)程中隨機(jī)跳過(guò)神經(jīng)元單元之間的一定比例的隱藏連接,確保訓(xùn)練后的模型不緊密依賴(lài)于某組神經(jīng)元單元.對(duì)于給定的一組特征向量,Dropout正則化的方式為
Yk=Wk(U·χ)+bk,
(9)
式中:Yk即為文本特征向量在第k層神經(jīng)網(wǎng)絡(luò)進(jìn)行Dropout正則化后的輸出;Wk為第k層基于注意力機(jī)制的權(quán)重向量;U即為基于注意力機(jī)制的調(diào)制特征向量;χ為概率為1的伯努利隨機(jī)向量;bk指第k層的偏差.
圖2 為T(mén)extCNN模型圖,TextCNN詳細(xì)過(guò)程包括:Embedding,Convolution,MaxPolling和FullConnection and Softmax[9].文本分類(lèi)的重點(diǎn)在于學(xué)習(xí)詞向量表示,并對(duì)學(xué)習(xí)的詞向量進(jìn)行分類(lèi),而詞向量的本質(zhì)在于提取.本模型的設(shè)計(jì)思路是:訓(xùn)練一個(gè)簡(jiǎn)單的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN),在無(wú)監(jiān)督神經(jīng)語(yǔ)言模型得到的詞向量的基礎(chǔ)上進(jìn)行一層卷積[10].具體流程是將句子映射到嵌入向量,并以矩陣的形式輸入到模型中,再適當(dāng)?shù)厥褂貌煌笮〉木矸e核對(duì)所有輸入的詞執(zhí)行卷積操作;最后使用最大池化層處理得到的特征映射,將提取到的特征進(jìn)行濃縮或匯總.
圖2 TextCNN模型圖Fig.2 The model diagram of TextCNN
作者在CNN卷積操作中采用了三種尺寸的卷積核,卷積核的大小由單詞個(gè)數(shù)與詞向量維度決定,文本分類(lèi)中卷積核長(zhǎng)度一般為詞向量維度,即水平方向沒(méi)有滑動(dòng),只是從上向下滑動(dòng).每個(gè)卷積核計(jì)算完成之后就得到了1個(gè)列向量,代表著該卷積核從句子中提取出來(lái)的特征,有多少個(gè)卷積核就能提取出多少種特征.不同尺寸的卷積核能夠從句子的不同維度特征,進(jìn)一步挖掘出詞與詞的關(guān)聯(lián)性,從而分析出基本的語(yǔ)義單元.
本模型針對(duì)可變長(zhǎng)度句子輸入的問(wèn)題,采用max-pooling方法進(jìn)行池化,此方法從列向量中提取最大值,即代表最重要的特征,因此,不管特征圖中有多少向量,取其中的最大值即可,最終池化層輸出為各個(gè)特征圖的最大值,即一維的向量.
傳統(tǒng)的方法通常是文本轉(zhuǎn)換成向量,但是忽略了文本上下文的信息,而CNN可以捕捉文本的上下文特征.因?yàn)樗鼈兡軌蛟诓桓淖冚斎胄蛄形恢玫那闆r下提取出顯著的特征,具體到文本分類(lèi)任務(wù)中就可以利用CNN來(lái)提取句子中類(lèi)似N-gram 的關(guān)鍵信息,分析得到基本的語(yǔ)義單元,從而在表現(xiàn)方面遠(yuǎn)好于經(jīng)典模型.
盡管CNN在很多任務(wù)里有不錯(cuò)的表現(xiàn),但其最大問(wèn)題是固定了卷積核的視野,因而無(wú)法建模更長(zhǎng)的序列信息,而且卷積核的超參調(diào)節(jié)也很繁瑣.CNN本質(zhì)是做文本的特征表達(dá)工作,而自然語(yǔ)言處理(Natural Language Processing,NLP)中更常用的是循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN),RNN在網(wǎng)絡(luò)結(jié)構(gòu)上相比前向深度神經(jīng)網(wǎng)絡(luò)多了一個(gè)循環(huán)的圈,其思想是假設(shè)RNN網(wǎng)絡(luò)每一步的預(yù)測(cè)結(jié)果是正確的,然后反復(fù)循環(huán)下去,每輸入一次,都得到該輸入對(duì)應(yīng)的輸出.RNN層級(jí)結(jié)構(gòu)圖如圖3 所示,RNN能夠更好地表達(dá)上下文信息.RNN作為自然語(yǔ)言處理領(lǐng)域的一個(gè)標(biāo)配網(wǎng)絡(luò),在序列標(biāo)注、命名體識(shí)別、seq2seq模型等很多場(chǎng)景都有應(yīng)用[11].
圖3 RNN層級(jí)結(jié)構(gòu)圖Fig.3 The hierarchical structure diagram of RNN
具體實(shí)現(xiàn)過(guò)程是,首先獲取詞向量表示,即left context,其次將詞向量通過(guò)雙向RNN(在實(shí)際應(yīng)用中可以是GRU或者LSTM)得到work embedding和right context,將left context,word embedding和right context三項(xiàng)進(jìn)行拼接得到新的向量,將得到的新向量輸入到全連接層網(wǎng)絡(luò)進(jìn)行整合,并使用tanh激活網(wǎng)絡(luò)進(jìn)行激活,隨后將全連接神經(jīng)網(wǎng)絡(luò)的輸出進(jìn)行池化操作,最后將池化后的結(jié)果輸入到全連接分類(lèi)器中實(shí)現(xiàn)分類(lèi)操作.
RNN模型具有短期記憶功能,天然就比較適合處理自然語(yǔ)言等序列問(wèn)題,尤其是引入門(mén)控機(jī)制后,能夠解決長(zhǎng)期依賴(lài)問(wèn)題,可以捕獲輸入樣本之間的長(zhǎng)距離聯(lián)系,因此,基于RNN的文本分類(lèi)模型能夠有效建模文本的長(zhǎng)距離依賴(lài)關(guān)系.且TextRNN的結(jié)構(gòu)非常靈活[12],可以任意改變.例如:把LSTM單元替換為GRU單元,把雙向改為單向,添加dropout或Batch Normalization以及再多堆疊一層,等等.但是,由于RNN模型后一個(gè)時(shí)間步的輸出依賴(lài)于前一個(gè)時(shí)間步的輸出,無(wú)法進(jìn)行并行處理,導(dǎo)致模型訓(xùn)練的速度很慢,這是一個(gè)致命的弱點(diǎn).且由于RNN是一個(gè)有偏倚的模型,在這個(gè)模型中,后面的單詞比前面的單詞更具優(yōu)勢(shì),因此,當(dāng)它被用于捕獲整個(gè)文檔的語(yǔ)義時(shí),可能會(huì)降低效率,因?yàn)殛P(guān)鍵組件可能出現(xiàn)在文檔中的任何地方,而不一定是出現(xiàn)在最后,所以,考慮到運(yùn)行效率并不推薦使用這種方法.
FastText是Facebook于2016年開(kāi)源的一個(gè)詞向量計(jì)算和文本分類(lèi)工具,它非常明顯的優(yōu)點(diǎn)就是快,在文本分類(lèi)任務(wù)中,F(xiàn)astText(淺層網(wǎng)絡(luò))往往能取得和深度網(wǎng)絡(luò)相媲美的精度,而且在訓(xùn)練時(shí)間上比深度網(wǎng)絡(luò)低許多個(gè)數(shù)量級(jí).在標(biāo)準(zhǔn)的多核CPU上,F(xiàn)astText能夠在10 min之內(nèi)訓(xùn)練10億詞級(jí)別語(yǔ)料庫(kù)的詞向量,并且能夠在1 min內(nèi)分類(lèi)有著30多種類(lèi)別的50多萬(wàn)個(gè)句子.
FastText結(jié)合了自然語(yǔ)言處理和機(jī)器學(xué)習(xí)中最成功的理念,包括使用詞袋以及N-gram袋表征語(yǔ)句,還有使用子詞(subword)信息,并通過(guò)隱藏表征在類(lèi)別間共享信息.該模型另外采用了一個(gè)Softmax層級(jí)(利用了類(lèi)別不均衡分布的優(yōu)勢(shì))來(lái)加速運(yùn)算過(guò)程[13].
FastText方法包含模型架構(gòu)、層次Softmax和N-gram子詞特征三個(gè)部分.
FastText模型架構(gòu)如圖4 所示,其中x1,x2,…,xN-1,xN表示一個(gè)文本中的N-gram向量,每個(gè)特征是詞向量的平均值,這和word2vec中的CBOW相似,但CBOW是用上下文去預(yù)測(cè)中心詞,而FastText是用全部的N-gram向量去預(yù)測(cè)指定類(lèi)別.
圖4 FastText模型架構(gòu)Fig.4 The model architecture of FastText
在層次Softmax部分,對(duì)于有大量類(lèi)別的數(shù)據(jù)集,F(xiàn)astText使用了一個(gè)分層分類(lèi)器替代了扁平式架構(gòu),使不同的類(lèi)別被整合進(jìn)樹(shù)形結(jié)構(gòu)中.在某些文本分類(lèi)任務(wù)中類(lèi)別很多,計(jì)算線(xiàn)性分類(lèi)器的復(fù)雜度很高,為了改善運(yùn)行時(shí)間,F(xiàn)astText模型使用了層次 Softmax技巧.層次Softmax 技巧建立在哈弗曼編碼的基礎(chǔ)上,對(duì)標(biāo)簽進(jìn)行編碼時(shí)能夠極大地縮小模型預(yù)測(cè)目標(biāo)的數(shù)量.
針對(duì)類(lèi)別不均衡這個(gè)事實(shí),即一些類(lèi)別出現(xiàn)的次數(shù)比其他的更多,F(xiàn)astText通過(guò)使用哈弗曼算法建立用于表征類(lèi)別的樹(shù)形結(jié)構(gòu).因此,頻繁出現(xiàn)類(lèi)別的樹(shù)形結(jié)構(gòu)的深度比不頻繁出現(xiàn)類(lèi)別的樹(shù)形結(jié)構(gòu)的深度要小,這也使得進(jìn)一步的計(jì)算效率更高.層次Softmax結(jié)構(gòu)如圖5 所示.
圖5 層次Softmax結(jié)構(gòu)Fig.5 Hierarchical Softmax structure
最后一個(gè)部分為N-gram子詞特征,F(xiàn)astText 可以用于文本分類(lèi)和句子分類(lèi).不管是文本分類(lèi)還是句子分類(lèi),我們常用的特征是詞袋模型.但詞袋模型不能考慮詞之間的順序,因此,F(xiàn)astText 還加入了 N-gram 特征.在FastText 中,每個(gè)詞被看作是N-gram字母串包.為了區(qū)分前后綴情況,“<”,“>”符號(hào)被加到了詞的前后端.除了詞的子串外,詞本身也被包含進(jìn)了N-gram字母串包.
FastText與基于神經(jīng)網(wǎng)絡(luò)的分類(lèi)算法相比有兩大優(yōu)點(diǎn):
1)FastText工具包中內(nèi)含的FastText模型具有十分簡(jiǎn)單的網(wǎng)絡(luò)結(jié)構(gòu),并且使用層次Softmax結(jié)構(gòu)來(lái)提升超多類(lèi)別下的模型性能,使用N-gram特征提取來(lái)彌補(bǔ)模型過(guò)于簡(jiǎn)單無(wú)法捕捉詞序特征的缺陷,進(jìn)而提升精度.因此,F(xiàn)astText在保持高精度的情況下加快了訓(xùn)練速度和測(cè)試速度[14].
2)FastText不需要預(yù)訓(xùn)練好的詞向量,其本身在訓(xùn)練過(guò)程中會(huì)產(chǎn)生詞向量,即詞向量是FastText分類(lèi)的產(chǎn)物.
為了解決偏置問(wèn)題,本文引入了卷積神經(jīng)網(wǎng)絡(luò)(CNN),將一個(gè)不帶偏見(jiàn)的模型引入到NLP任務(wù)中,它可以很好地確定文本中帶有最大池化層的識(shí)別性短語(yǔ).因此,與遞歸或循環(huán)神經(jīng)網(wǎng)絡(luò)相比,CNN可以更好地捕捉文本的語(yǔ)義.但是以前對(duì)CNN的研究?jī)A向于使用簡(jiǎn)單的卷積核,如固定窗[11-13].使用這樣的內(nèi)核時(shí),很難確定窗口大小,小窗口可能導(dǎo)致一些關(guān)鍵信息丟失,而大窗口會(huì)導(dǎo)致參數(shù)空間過(guò)大,從而導(dǎo)致難以訓(xùn)練到一個(gè)魯棒的效果.
為了解決上述模型的局限性,本文提出了一個(gè)循環(huán)卷積神經(jīng)網(wǎng)絡(luò)(Recurrent Convolutional Neural Network,RCNN),并將其應(yīng)用于文本分類(lèi)任務(wù).首先,該模型應(yīng)用一個(gè)雙向的循環(huán)結(jié)構(gòu),與傳統(tǒng)的基于窗口的神經(jīng)網(wǎng)絡(luò)相比,它可以大大減少噪聲,從而最大程度地捕捉上下文信息.此外,該模型在學(xué)習(xí)文本表示時(shí)可以保留更大范圍的詞序.其次,該模型使用了一個(gè)可以自動(dòng)判斷哪些特性在文本分類(lèi)中扮演關(guān)鍵角色的池化層,以捕獲文本中的關(guān)鍵組件.本文模型結(jié)合了RNN的結(jié)構(gòu)和最大池化層,利用了循環(huán)神經(jīng)模型和卷積神經(jīng)模型的優(yōu)點(diǎn).此外,該模型顯示了線(xiàn)性階的時(shí)間復(fù)雜度,它與文本長(zhǎng)度是線(xiàn)性相關(guān)的,大大降低了運(yùn)算時(shí)間,在運(yùn)算效率上有著較大的提升.
如圖6 所示,TextRCNN網(wǎng)絡(luò)主要由循環(huán)結(jié)構(gòu)層、最大池化層及全連接層三部分構(gòu)成.循環(huán)結(jié)構(gòu)層只由Embedding層以及雙向RNN組成,Embedding使用的是預(yù)訓(xùn)練的詞向量,使用的模型為word2vec的Skip-Gram模型,中英文的訓(xùn)練語(yǔ)料都是Wikipedia語(yǔ)料.預(yù)訓(xùn)練完成后,輸入的詞通過(guò)Embedding層后由one-hot形式轉(zhuǎn)為稠密詞向量,接著輸入到一個(gè)雙向RNN中.應(yīng)用最大池化層可以自動(dòng)篩選出最重要的特征,使向量中每一個(gè)位置的值都取所有時(shí)序上的最大值,將不同長(zhǎng)度的輸入序列都轉(zhuǎn)化成一樣的維度來(lái)得到最終的特征向量.最后接上一個(gè)用于分類(lèi)的全連接層,使用Softmax函數(shù)得到類(lèi)別的概率分布.
圖6 TextRCNN模型結(jié)構(gòu)圖Fig.6 Structure diagram of TextRCNN model
傳統(tǒng)的TextRNN的分類(lèi)器只是將各時(shí)間步的輸出簡(jiǎn)單求和,取平均值,而文本中不同位置的詞在分類(lèi)任務(wù)中的權(quán)重不同.為了解決上述問(wèn)題,并挖掘非連續(xù)詞的上下文關(guān)系,進(jìn)一步提升算法分類(lèi)精度,將多層異構(gòu)注意力機(jī)制(MLHAM)融入上述構(gòu)建的TextRCNN網(wǎng)絡(luò).多層注意力機(jī)制基于滲透假設(shè)的類(lèi)平衡分層求精方法,在卷積層和循環(huán)層的輸出特征中均加入異構(gòu)注意力機(jī)制,最后經(jīng)過(guò)全局平局池化和全連接層進(jìn)行分類(lèi).融合多層異構(gòu)注意力機(jī)制的框架如圖7 所示.
圖7 MLHAM+TextRCNN模型結(jié)構(gòu)圖Fig.7 Structure diagram of MLHAM +TextRCNN model
為了驗(yàn)證所提出融合多層異構(gòu)注意力機(jī)制和深度學(xué)習(xí)的短文本分類(lèi)方法的精確性,下面給出所使用的數(shù)據(jù)集和算法參數(shù),以及算法精確性的衡量標(biāo)準(zhǔn)(Macro-F1)的原理和計(jì)算過(guò)程,并基于數(shù)據(jù)集分別計(jì)算不同組合方法的指標(biāo)數(shù)值.通過(guò)統(tǒng)計(jì)比較來(lái)分析算法的性能,并挖掘多層異構(gòu)注意力機(jī)制與各傳統(tǒng)深度學(xué)習(xí)方法融合的優(yōu)劣性.
為體現(xiàn)研究方法的普適性,本研究選擇新聞標(biāo)題類(lèi)(THUCNews數(shù)據(jù)集)、短視頻評(píng)論類(lèi)(YouTube視頻評(píng)論數(shù)據(jù)集)、電子郵件標(biāo)題類(lèi)(個(gè)人郵箱數(shù)據(jù)集)三種不同領(lǐng)域的數(shù)據(jù)集作為研究對(duì)象.各數(shù)據(jù)集的詳細(xì)信息如表1 所示.
表1 實(shí)驗(yàn)所使用數(shù)據(jù)集的特征Tab.1 Data set characteristics used in experiment
部分長(zhǎng)文本分類(lèi)研究指出,神經(jīng)網(wǎng)絡(luò)層數(shù)決定了模型的分類(lèi)精度,當(dāng)深度較淺時(shí),網(wǎng)絡(luò)接收域較窄,無(wú)法捕捉到文本的上下文較長(zhǎng)間隔的依賴(lài),從而影響最終的分類(lèi)準(zhǔn)確率[14].為驗(yàn)證上述結(jié)論是否適用于短文本分類(lèi),本文對(duì)神經(jīng)網(wǎng)絡(luò)層數(shù)進(jìn)行靈敏度分析.圖8 給出了不同網(wǎng)絡(luò)深度下,基于MLHAM+TextRCNN方法對(duì)三種數(shù)據(jù)集分類(lèi)的精度變化趨勢(shì)圖.
圖8 三個(gè)數(shù)據(jù)集下準(zhǔn)確率與網(wǎng)絡(luò)層深度的關(guān)系Fig.8 The relationship between accuracy and network layer depth under three data sets
由圖8 可以看出,與長(zhǎng)文本不同,對(duì)短文本而言,當(dāng)深度增加時(shí),分類(lèi)精度會(huì)隨之下降.這是由于網(wǎng)絡(luò)接收域的擴(kuò)張因子的影響超過(guò)文本本身的長(zhǎng)度,不僅增加了不必要的計(jì)算,而且會(huì)使模型過(guò)擬合,導(dǎo)致分類(lèi)準(zhǔn)確率下降.因此,增加網(wǎng)絡(luò)深度更適合長(zhǎng)文本,而不適用于短文本分類(lèi).最佳的網(wǎng)絡(luò)深度主要取決于文本長(zhǎng)度,需要根據(jù)數(shù)據(jù)集特性確定.
此外,對(duì)算法運(yùn)行多次,最終選擇出最佳的算法參數(shù)設(shè)置如表2 所示.
表2 訓(xùn)練參數(shù)設(shè)計(jì)Tab.2 Design of training parameter
使用THUCNews數(shù)據(jù)集,新聞標(biāo)題類(lèi)別已處理為10個(gè)常見(jiàn)類(lèi)別,分別為金融、房產(chǎn)、股票、教育、科技、社會(huì)、政治、體育、游戲、娛樂(lè).
將處理好的數(shù)據(jù)分為訓(xùn)練集(train.txt),驗(yàn)證集(dev.txt)以及測(cè)試集(test.text),并分別只選取25 000條、2 500條、10 000條.測(cè)試四種算法的性能時(shí),使用相同數(shù)據(jù)集進(jìn)行測(cè)試.在測(cè)試數(shù)據(jù)集中,每個(gè)新聞?lì)悇e的數(shù)據(jù)數(shù)量均為1 000條.
F1-score是統(tǒng)計(jì)學(xué)中衡量二分類(lèi)模型精確度的一種常用指標(biāo),而Macro-F1方法是F1-score適用于多分類(lèi)問(wèn)題的改進(jìn)版本.本研究采用Macro-F1方法評(píng)價(jià)算法性能,該方法計(jì)算每個(gè)類(lèi)別對(duì)應(yīng)的Macro-F1值,并取平均,其計(jì)算公式為
(10)
(11)
(12)
(13)
式中:i表示類(lèi)別;D表示類(lèi)別的數(shù)量,例如數(shù)據(jù)集1的D為10,數(shù)據(jù)集2的D為2;THi(真正)表示標(biāo)簽為i類(lèi)的數(shù)據(jù)中歸為i類(lèi)數(shù)據(jù)的數(shù)量;同理,F(xiàn)Hi(真負(fù))表示標(biāo)簽為非i類(lèi)的數(shù)據(jù)中歸為非i類(lèi)數(shù)據(jù)的數(shù)量;hi為i類(lèi)別數(shù)據(jù)判斷的精確率;ri為i類(lèi)別數(shù)據(jù)的召回率;一對(duì) (hi,ri)分別對(duì)應(yīng)于類(lèi)i的精確度和召回值.為顯示每個(gè)分類(lèi)器的特征選擇方法的平均精度和召回性能,單獨(dú)呈現(xiàn)精度和召回值.
可以看出,Macro-F1方法實(shí)質(zhì)上是精確度和召回率的均衡.為便于直觀(guān)分析,本文展示了不同算法的準(zhǔn)確率和Macro-F1值.此外,為驗(yàn)證算法運(yùn)行效率,本文各算法運(yùn)行30代,以運(yùn)行時(shí)間為效率衡量標(biāo)準(zhǔn).其中,F(xiàn)astTex算法是一種工具箱,其運(yùn)行時(shí)間可直接得出.
本文使用pytorch框架來(lái)實(shí)現(xiàn)四種算法,使用訓(xùn)練集數(shù)據(jù)分別對(duì)四種算法進(jìn)行訓(xùn)練,使用測(cè)試集數(shù)據(jù)分別測(cè)試四種算法的性能;在此基礎(chǔ)之上,使用Django頁(yè)面框架做出一個(gè)簡(jiǎn)單的前端頁(yè)面,可以打印出帶標(biāo)簽的數(shù)據(jù)集分類(lèi)結(jié)果.
4.3.1 算法準(zhǔn)確率對(duì)比結(jié)果
圖9 展示了對(duì)于不同數(shù)據(jù)集采用不同分類(lèi)方法(TextCNN,TextRNN,FastText,TextRCNN,MLHAM+TextRCNN)進(jìn)行分類(lèi)的準(zhǔn)確率結(jié)果.可以看出:
1)對(duì)于涉及多分類(lèi)情況的數(shù)據(jù)集1,五種算法的精度均隨著訓(xùn)練代數(shù)的升高而升高,并趨于穩(wěn)定.初始時(shí),本文所提出的MLHAM+TextRCNN 方法訓(xùn)練精度并不高,這是由于注意力機(jī)制的添加增加了訓(xùn)練難度.隨著訓(xùn)練代數(shù)的不斷增加,本文所設(shè)計(jì)算法的準(zhǔn)確率顯著增加,最終穩(wěn)定于93.9%,顯著優(yōu)于其他算法.此外,F(xiàn)astText的訓(xùn)練精度最低,且由于其結(jié)果由工具箱直接得出,與訓(xùn)練代數(shù)無(wú)關(guān),因此設(shè)為恒定值.
(a)數(shù)據(jù)集1
2)對(duì)于涉及二分類(lèi)情況的數(shù)據(jù)集2和3,由于判別類(lèi)別較少,較為簡(jiǎn)單的緣故,與多類(lèi)情況相比,所有算法在初始時(shí)即可達(dá)到較好的劃分結(jié)果.其中,本文所提出的MLHAM+ TextRCNN方法仍具有較高的準(zhǔn)確率.由此可以看出,本文所提出算法應(yīng)用于不同數(shù)據(jù)集,具有良好的普適性.
3)對(duì)于任意數(shù)據(jù)集,添加多層異構(gòu)注意力機(jī)制(MLHAM)后的算法性能均有所提升.這表明本文所設(shè)計(jì)的MLHAM能夠顯著提高算法的分類(lèi)精度.
4.3.2 算法Macro-F1值對(duì)比結(jié)果
表3 展示了對(duì)于不同數(shù)據(jù)集采用不同分類(lèi)方法(TextCNN,TextRNN,FastText,TextRCNN,MLHAM+ TextRCNN)進(jìn)行分類(lèi)的Macro-F1值計(jì)算結(jié)果.可以看出,對(duì)于不同數(shù)據(jù)集,TextCNN,TextRNN和FastText的Macro-F1值排序不同,其中TextRNN方法更適合多類(lèi)的數(shù)據(jù)集.本文所提出的TextRCNN方法對(duì)不同數(shù)據(jù)集上的表現(xiàn)均優(yōu)于上述三種算法,且加入多層異構(gòu)注意力機(jī)制之后,該算法性能能夠進(jìn)一步提升.
表3 Macro-F1計(jì)算結(jié)果Tab.3 Macro-F1 calculation results
4.3.3 算法效率對(duì)比結(jié)果
圖10 顯示了五種算法在不同數(shù)據(jù)集下的運(yùn)算時(shí)間.由圖可以看出,對(duì)于任意數(shù)據(jù)集,運(yùn)行時(shí)間排序均為:TextRNN>TextCNN>MLHAM+TextRCNN>TextRCNN>FastText.此外,MLHAM+TextRCNN的運(yùn)行時(shí)間較TextRCNN增加較少,即添加多層異構(gòu)注意力機(jī)制能夠有效增加算法準(zhǔn)確率,代價(jià)僅為增加少量運(yùn)行時(shí)間.
圖10 各算法運(yùn)行時(shí)間對(duì)比結(jié)果Fig.10 Comparison results of running time for different algorithm
通過(guò)上述實(shí)驗(yàn)可以看出,對(duì)于三種不同來(lái)源的數(shù)據(jù)集,本文的精確度和Macro-F1值均顯著大于具有傳統(tǒng)算法,這證明本文算法顯著優(yōu)于其他算法,并且其優(yōu)勢(shì)具有一定的普適性.通過(guò)多次運(yùn)行可以看出,本文算法運(yùn)行時(shí)間顯著低于TextRNN和TextCNN算法,略高于TextRCNN和FastText算法.引入異構(gòu)注意力機(jī)制后,算法僅增加少量運(yùn)行時(shí)間,即可顯著提高準(zhǔn)確率.
上述優(yōu)勢(shì)產(chǎn)生的原因主要有以下四點(diǎn):
1)采用了雙向的循環(huán)結(jié)構(gòu),與傳統(tǒng)的基于窗口的神經(jīng)網(wǎng)絡(luò)相比,它可以大大減少噪聲,從而最大程度地捕捉上下文信息;
2)該方法在學(xué)習(xí)文本表示時(shí)可以保留更大范圍的詞序;
3)將RNN的結(jié)構(gòu)和最大池化層融入CNN中,結(jié)合了兩種神經(jīng)網(wǎng)絡(luò)框架的優(yōu)點(diǎn);
4)加入了異構(gòu)注意力機(jī)制,能夠有效提取重要的特征詞向量.
本文提出了一種基于多層異構(gòu)注意力機(jī)制和深度學(xué)習(xí)的短文本分類(lèi)方法,考慮上下文非臨近詞的關(guān)聯(lián)性,引入了全局上下文注意力機(jī)制,并基于滲透假設(shè)的類(lèi)平衡分層求精方法,在短文本分類(lèi)模型中引入多層注意力機(jī)制,使得具有較高辨識(shí)度的特征具有更高的權(quán)重.深度學(xué)習(xí)算法方面,本文提出了結(jié)合循環(huán)神經(jīng)模型和卷積神經(jīng)模型的優(yōu)點(diǎn)的新型深度學(xué)習(xí)分類(lèi)方法.將傳統(tǒng)和本文所提出的方法應(yīng)用于三個(gè)數(shù)據(jù)集中,結(jié)果表明,集合循環(huán)神經(jīng)和卷積神經(jīng)的文本分類(lèi)方法具有較高的效率和準(zhǔn)確率,性能優(yōu)于傳統(tǒng)算法.而多層異構(gòu)注意力機(jī)制能夠進(jìn)一步提升算法效率,且不會(huì)對(duì)算法運(yùn)行時(shí)間產(chǎn)生顯著影響.