李輝,黃鈺杰
(1.河南理工大學(xué) 物理與電子信息學(xué)院,河南 焦作 454000;2.河南理工大學(xué) 電氣工程與自動化學(xué)院,河南 焦作 454000)
近年來,隨著互聯(lián)網(wǎng)產(chǎn)業(yè)快速發(fā)展,出現(xiàn)了眾多新興媒體,它們通過互聯(lián)網(wǎng)可以獲得用戶評論、品牌、情感、政治和觀點(diǎn)等大量數(shù)據(jù)。情感分析是一種特殊的文本挖掘工作,是從給定的文本中提取人們的態(tài)度或情感。目前,文本情感分析[1]是自然語言處理(natural language processing,NLP)領(lǐng)域中的研究熱點(diǎn),它是針對非結(jié)構(gòu)化信息,挖掘其蘊(yùn)涵的深層次情感或傾向。
目前,有很多使用基于機(jī)器學(xué)習(xí)的情感分析技術(shù)進(jìn)行文本分析,取得了不錯的效果[2-3],但是這些方法不能有效地表達(dá)復(fù)雜的函數(shù)計算,并且需要人工選擇數(shù)據(jù)特征,泛化能力較弱,而深度學(xué)習(xí)能夠從原始數(shù)據(jù)中自動學(xué)習(xí)重要的數(shù)據(jù)特征,并處理各種復(fù)雜任務(wù),在建模、解釋、表達(dá)能力以及優(yōu)化等方面優(yōu)勢明顯。將深度學(xué)習(xí)應(yīng)用于文本情感分析領(lǐng)域,極大地推進(jìn)了文本情感分析的研究與發(fā)展[4]。G.E.Hinton等[5]提出了深度學(xué)習(xí)的概念,即利用深度學(xué)習(xí)網(wǎng)絡(luò)構(gòu)建一個高質(zhì)量的語言模型處理自然語言問題。在現(xiàn)有的深度學(xué)習(xí)模型中最熱門的網(wǎng)絡(luò)模型是循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)模型[6]和卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)模型[7]。CNN是目前應(yīng)用最為廣泛的一種深度學(xué)習(xí)結(jié)構(gòu),具有局部感受野、權(quán)值共享和下采樣3個特點(diǎn),使其在捕捉文本局部特征信息上具有很大的優(yōu)勢。它處理的是序列化特征信息,RNN是通過一種鏈?zhǔn)缴窠?jīng)網(wǎng)絡(luò)對歷史信息進(jìn)行儲存和傳播,減少網(wǎng)絡(luò)的訓(xùn)練參數(shù),提升訓(xùn)練速度。N.Kalchbrenner等[8]提出一種DCNN網(wǎng)絡(luò)模型,使用一種動態(tài)池化的方法,能夠處理可變長度的輸入;王煜涵等[9]提出單一的CNN結(jié)構(gòu)模型,進(jìn)行文本情感分析,取得了不錯的效果;S.Kai等[10]則使用長短期記憶網(wǎng)絡(luò)(long and short term memory,LSTM)解決情感分析問題,并使分類效果明顯提升;I.Augenstein等[11]提出的雙向LSTM網(wǎng)絡(luò)模型,該模型能同時捕捉詞語的前后時序關(guān)系,獲得詞語間的前后關(guān)系;K.Cho等[12]提出門限循環(huán)單元(gated recurrent unit,GRU),GRU是LSTM的改進(jìn),將遺忘門和輸入門合并成一個更新門,使其結(jié)構(gòu)更加簡單,從而減小模型的訓(xùn)練時間;曹宇等[13]提出雙向門限循環(huán)神經(jīng)網(wǎng)(bi-directional gated recurrent unit,BiGRU)進(jìn)行中文文本情感分析,取得了不錯的效果。
考慮到僅使用單一的神經(jīng)網(wǎng)絡(luò)使更深層次的特征提取不充分,于是S.Lai[14]提出了RCNN模型,首先利用雙向循環(huán)神經(jīng)網(wǎng)絡(luò)對序列化的特征進(jìn)行提取,再經(jīng)過卷積、池化等操作進(jìn)行文本情感分類;A.Hassan等[15]在CNN網(wǎng)絡(luò)后引入RNN,構(gòu)建了混合模型,證明采用多個神經(jīng)網(wǎng)絡(luò)模型結(jié)合的方式能更好地完成文本情感分析。由于在文本中,每個詞或者句子對整個文本的情感分類有著不同的影響,使用注意力機(jī)制能夠捕捉文本中最具代表性的特征,優(yōu)化模型結(jié)構(gòu);王麗亞等[16]提出RCNN并引入注意力機(jī)制,有效地提高了文本情感分類的效果。目前,基于注意力的方法已經(jīng)成功應(yīng)用于各種任務(wù)中,在機(jī)器翻譯領(lǐng)域?yàn)榱烁鼫?zhǔn)確地提取文本特征,A.Vaswani等[17]提出多頭自注意力(multi-head self-attention,MA)方法構(gòu)建了Transformer模型;LEI Z等[18]采用MA對CNN處理過的特征矩陣進(jìn)一步學(xué)習(xí)情感特定句子表示;關(guān)鵬飛等[19]運(yùn)用雙向LSTM捕捉詞語間的語義依賴關(guān)系,再利用自注意力進(jìn)一步學(xué)習(xí)重點(diǎn)詞的特征信息。
本文模型結(jié)構(gòu)在文獻(xiàn)[14]的基礎(chǔ)上進(jìn)行改進(jìn),由于這種傳統(tǒng)的RNN-CNN模型沒有充分考慮序列內(nèi)部的關(guān)鍵信息對情感分類的影響,于是本文模型結(jié)構(gòu)在此基礎(chǔ)上結(jié)合文獻(xiàn)[17]加入MA機(jī)制,構(gòu)建基于DLMA-BiGRU-CNN模型的文本情感模型,區(qū)別于傳統(tǒng)的RNN-CNN引入注意力的方法。此外,針對文獻(xiàn)[17]單一的MA層進(jìn)行改進(jìn),采用雙層的MA表示句子,學(xué)習(xí)序列內(nèi)部的詞依賴關(guān)系,使文本分類的準(zhǔn)確率得到提升??紤]到神經(jīng)網(wǎng)絡(luò)存在特征抽取不充分或無法學(xué)習(xí)到更深層的語義信息的問題,對文獻(xiàn)[14]的模型進(jìn)行改進(jìn),使用并行輸入的方式,充分提取文本信息,從而使文本分類的效果更好。
由于標(biāo)準(zhǔn)RNN無法學(xué)習(xí)到句子的長期依賴關(guān)系,容易出現(xiàn)梯度爆炸或梯度消失問題,且單向的GRU[20]只能獲取上文的依賴信息,無法充分考慮到下文的特征信息,造成在文本建模中存在明顯缺陷,于是本文使用并行的BiGRU對文本進(jìn)行特征提取。如圖1所示,BiGRU是由一個正向GRU和一個反向GRU構(gòu)成,GRU模型是LSTM的一個變體,相對LSTM而言,GRU具有結(jié)構(gòu)簡單、計算效率更高、處理速度更快等優(yōu)點(diǎn)。與具有3個門的LSTM不同,GRU結(jié)構(gòu)只有2個門,即重置門和更新門。
圖1 GRU結(jié)構(gòu)Fig.1 GRU structure diagram
GRU[21]模型通過門控機(jī)制學(xué)習(xí)文本的序列特征,控制信息的傳遞與輸出,不僅可以保持信息不受時間影響,而且可以刪除與預(yù)測無關(guān)的信息。重置門將新的輸入與以前的存儲相結(jié)合,而更新門則決定了要保留多少以前的存儲。所以GRU的具體工作原理公式為
rt=σ(wr·[ht-1,xt]),
(1)
zt=σ(wz·[ht-1,xt]),
(2)
(3)
(4)
式中:xt為輸入數(shù)據(jù);ht為最終的輸出;zt為更新門;rt為重置門;σ為激活函數(shù)sigmoid,函數(shù)在[0,1]內(nèi)取值;tanh為雙曲正切函數(shù);wr,wz和w分別為隱藏層、重置門和更新門的權(quán)重矩陣;下標(biāo)t為當(dāng)前時刻;下標(biāo)t-1為前一時刻;ht-1為前一時刻的細(xì)胞隱藏狀態(tài)。
融合前置GRU和后置GRU的輸出,其融合計算公式為
(5)
CNN是基于多層網(wǎng)絡(luò)結(jié)構(gòu)訓(xùn)練的監(jiān)督學(xué)習(xí)算法,是一種前饋人工神經(jīng)網(wǎng)絡(luò)[22]。CNN采用一系列卷積層、池化層和全連接層構(gòu)造模型。
卷積層:卷積層的結(jié)構(gòu)是由不同單獨(dú)層組成的,其核心操作就是利用卷積核對輸入特征進(jìn)行運(yùn)算。卷積過程的實(shí)質(zhì)是濾波器在輸入數(shù)據(jù)特征上滑動計算的過程,用來對文本詞語間的信息進(jìn)行捕捉。首先將詞向量矩陣輸入到DCNN網(wǎng)絡(luò)中,其詞向量矩陣公式為
xi=x1⊕x2⊕x3⊕…⊕xl,
(6)
式中:xi為一個句子里第i個單詞對應(yīng)的詞向量;下標(biāo)l為句子的長度;⊕為連接運(yùn)算符。
特征表達(dá)式為
ci=f(w·xi+h-1+b),
(7)
式中:w為高度h、寬度d、窗口h×d的卷積核;b為偏置向量;f為激活函數(shù)Relu。
經(jīng)過卷積操作后,得到特征圖c,
c=[c1,c2,c3,…,cl]。
(8)
池化層:在經(jīng)過卷積層之后,得到了很多特征維度較高的特征圖。在卷積操作后進(jìn)行最大池化操作,降低特征維度,保持特征在空間與結(jié)構(gòu)上不變,減小特征圖c的大小,并簡化卷積層輸出的信息。其池化表達(dá)式為
(9)
全連接層:將提取到的局部特征信息融合為全局特征,最后使用softmax分類函數(shù)計算概率大小,得到文本的情感傾向。
本文提出一種基于DLMA-BiGRU-CNN模型的文本情感分析方法,模型構(gòu)建如圖2所示。模型包括文本輸入層、DLMA層、并行BiGRU層、并行CNN層和文本分類層。首先,在輸入層利用word2vec模型捕捉單詞的語義特征并訓(xùn)練詞向量;其次,在DLMA層借助DLMA學(xué)習(xí)文本內(nèi)部的詞依賴關(guān)系;再次,在并行BiGRU層使用并行的BiGRU模型獲取文本的序列特征;最后,并行CNN層借助并行CNN模型提取深層次特征信息,在分類層完成文本情感分析。
圖2 基于DLMA-BiGRU-CNN的文本情感分析模型Fig.2 Text sentiment analysis model based on DLMA-BiGRU-CNN
首先使用結(jié)巴(Jieba)分詞對詞語進(jìn)行精準(zhǔn)的分詞處理,其次利用Word2vec模型訓(xùn)練詞向量。Word2vec是由Google在2013年提出的深度學(xué)習(xí)模型。Word2vec模型包括CBOW和Skip-gram兩種創(chuàng)建詞向量的模型,CBOW模型基于周圍的上下文詞語計算某個詞出現(xiàn)的概率,Skip-gram模型根據(jù)目標(biāo)詞計算前后出現(xiàn)幾個詞的概率。本文選用Skip-gram模型對本文詞向量進(jìn)行訓(xùn)練,并將單詞轉(zhuǎn)換為高維向量,作為模型的輸入數(shù)據(jù)。將訓(xùn)練文本中句子的最大長度設(shè)置為l,作為模型的輸入大小,將每個句子表示成大小為I×dk的文本詞向量矩陣E,其表達(dá)式為
E=[e1,e2,e3,e4,…,el]T
,
(10)
式中:ei為句子中第i(12.3 DLMA特征提取層
多頭注意力機(jī)制的目的是為了從多方面捕獲序列的關(guān)鍵信息,目前MA已經(jīng)在各個領(lǐng)域都有很多應(yīng)用。本文將雙層的MA模型作為一個單獨(dú)的層,有別于傳統(tǒng)的CNN結(jié)合注意力的方法,將雙層的MA模型置于詞向量層后,采用雙層MA學(xué)習(xí)序列內(nèi)部的詞依賴關(guān)系。工作原理如下。
(1)第一層MA層。將文本的詞向量矩陣E輸送到第一層MA層進(jìn)行句子表示學(xué)習(xí),從而捕獲句子的長距離依賴性和學(xué)習(xí)不同位置的不同語義空間的序列信息。首先通過h個不同的線性變換,將詞向量矩陣E分別轉(zhuǎn)換為相同維度的Q和V,表達(dá)式為
Q=EWiQ,
(11)
K=EWiE,
(12)
V=EWiV,
(13)
式中:Q為查詢向量序列;K為鍵向量序列;V為值向量序列;WiQ、WiE和WiV為第i個線性表示的參數(shù)矩陣。
同時進(jìn)行h次自注意力計算,單頭自注意力進(jìn)行逐個向量計算,將qt∈Q(1≤t≤l)和各個ks∈K(1≤s≤l)進(jìn)行內(nèi)積運(yùn)算,并利用softmax獲得qt∈Q(1≤t≤l)和各個vs∈V(1≤s≤l)的相似度,進(jìn)行加權(quán)求和計算,得到一個dv維度的向量,表達(dá)式為
(14)
其中,Z為歸一化因子。
通過計算單頭自注意力,得到一個輸出,即
(15)
式中,ais為第i次單頭自注意力計算得到的vs的權(quán)重系數(shù)。
拼接h次單頭自注意力計算結(jié)果,并進(jìn)行線性變換,得到多頭自注意力結(jié)果。形成第一層MA句子表示,即
MA1=concat(head1,head2,…,headi)wo,
(16)
式中,wo為輸入空間到輸出空間的映射參數(shù)。
(2)第二層MA層。將第一層得到的MA1和詞向量矩陣E進(jìn)行拼接后得到N1,
N1=concat(MA1,E)。
(17)
將N1輸入到第二層MA層,提取出文本更高層次的特征信息,得到DLMA的輸出結(jié)果:
MA2=MultiHead(N1,N1,N1)。
(18)
在需要輸入上下文的情況下,BiGRU在獲取特征信息方面比LSTM更加有效,用BiGRU模型文本信息不僅使用2種隱藏狀態(tài)從后向前傳遞,而且還使用2種隱藏狀態(tài)從前向后傳遞。由于單一的BiGRU模型隨著網(wǎng)絡(luò)層數(shù)增加性能將受到影響,不能夠充分地提取文本特征,因此,為了解決單通道模型提取信息不充分和受無關(guān)信息干擾較大的問題,本文使用并行的BiGRU模型獲得全局的深層信息,提高網(wǎng)絡(luò)的收斂性。
將經(jīng)過DLMA的輸出結(jié)果MA2輸入到并行的BiGRU模型中,進(jìn)行式(1)~(5)序列化的特征提取,得到并行的BiGRU輸出h1t和h2t,之后h1t和h2t作為CNN層的輸入進(jìn)行深層次的特征提取。
由于BiGRU主要處理的是時間序列問題,考慮到不同的上下文組成也有可能造成不同的語義表達(dá),為了更大程度地提取不同粒度的層次化文本特征,本文在并行BiGRU層后接入并行CNN層,處理深層次的特征向量。并行CNN特征提取部分由2個的卷積神經(jīng)網(wǎng)絡(luò)(CNN)組成,且每個CNN由卷積層、池化層以及全連接層3部分組成。
在卷積層,對h1t和h2t使用多個卷積核進(jìn)行卷積處理,每個CNN的卷積層是由3個3×3,4×4,5×5的濾波器構(gòu)成,且濾波器每次的滑動步長為1,這樣經(jīng)過一系列的卷積操作后就可得到維度較高的特征圖c1和c2。在池化層進(jìn)行最大池化操作,得到c′1和c′2。在全連接層將c′1和c′2進(jìn)行融合,得到va,i。
在經(jīng)過上述特征提取后,在分類層使用softmax函數(shù)計算文本情感分類的概率大小,即
p=softmax(w2va,i+b2),
(19)
式中,w2和b2分別為權(quán)重矩陣和偏置矩陣。
為了確保實(shí)驗(yàn)的準(zhǔn)確性,使用Python 3.5和Keras深度學(xué)習(xí)開源框架進(jìn)行實(shí)驗(yàn)。本文使用的2個數(shù)據(jù)集分別如下。
SST-2:斯坦福情感數(shù)據(jù)庫二元分類版本,只有2種標(biāo)簽,非常積極和積極的評論被標(biāo)記為正面,消極和非常消極的評論被標(biāo)記為負(fù)面。
自然語言處理及中文計算會議(natural language processing and Chinese computing,NLPCC)2014數(shù)據(jù)集:該語料共包含中文和英文2種語言,本文使用其中的中文數(shù)據(jù)。
如表1所示,在文本情感分類時將文本分成
表1 實(shí)驗(yàn)數(shù)據(jù)設(shè)置
2類,即積極和消極。每個數(shù)據(jù)集都按8∶2分成訓(xùn)練集和測試集。
在實(shí)驗(yàn)過程中要調(diào)試參數(shù),因?yàn)閰?shù)的不同就會導(dǎo)致結(jié)果出現(xiàn)差異,為保證網(wǎng)絡(luò)輸入詞向量矩陣的大小統(tǒng)一,將文本的訓(xùn)練樣本數(shù)定為500,序列長度定為250,長度不足的進(jìn)行補(bǔ)零操作,長度超出的截斷。詞向量維度設(shè)置為128。對于并行BiGRU神經(jīng)網(wǎng)絡(luò),每個隱層神經(jīng)元個數(shù)設(shè)置為128;對于并行CNN神經(jīng)網(wǎng)絡(luò),使用不同尺寸的卷積核,設(shè)定為(3,4,5),每個尺寸的卷積核個數(shù)設(shè)置為128。為了防止過擬合,設(shè)定Dropout率為0.5,批處理大小(batch_size)為64,迭代次數(shù)(epoch)為20。
為了驗(yàn)證模型的可靠性,設(shè)置了多個模型進(jìn)行對比。在本文實(shí)驗(yàn)中將準(zhǔn)確率(Accuracy)以及F-Score作為模型分類的評價標(biāo)準(zhǔn)。其計算式為
(21)
Precision=∑ci∈cTrue(ci)/∑ci∈cDoc(ci), (22)
Recall=∑ci∈cTrue(ci)/∑ci∈cResponse(ci),(23)
為了驗(yàn)證本文模型的有效性,設(shè)置了多個對比模型,將模型參數(shù)進(jìn)行微調(diào),如表2所示。經(jīng)過實(shí)驗(yàn),得出各個模型情感分析結(jié)果,模型如下。
(1)BiGRU:由文獻(xiàn)[14]提出的單一雙向GRU網(wǎng)絡(luò)模型。
(2)CNN:由文獻(xiàn)[10]提出的單一卷積神經(jīng)網(wǎng)絡(luò)模型。
(3)BiRNN-DCNN:由文獻(xiàn)[15]提出的結(jié)合雙向LSTM與CNN的模型。
(4)DLMA-BiGRU:該模型是由一個雙層多頭自注意力模型和一個雙向門限循環(huán)神經(jīng)網(wǎng)絡(luò)組成,對文本進(jìn)行情感分析。
(5)DLMA-CNN:該模型是由一個雙層多頭自注意力模型和一個卷積神經(jīng)網(wǎng)絡(luò)組成,對文本進(jìn)行情感分析。
(6)ATT-BiGRU-CNN模型:由文獻(xiàn)[17]提出基于BiGRU-CNN-ATT模型的文本情感分析模型。
(7)DLMA-BiGRU-CNN:本文提出的基于雙層多頭自注意力機(jī)制和并行BiGRU-CNN的文本情感分析模型。
表2 5個模型情感分析結(jié)果
通過對比2個數(shù)據(jù)集可知,本文所提模型在準(zhǔn)確率和F-Score上較其他網(wǎng)絡(luò)模型有顯著提升,模型準(zhǔn)確率分別為92.71%和91.08%。
將單一模型CNN或BiGRU模型與BiRNN-DCNN模型對比,發(fā)現(xiàn)將多個模型的優(yōu)勢結(jié)合,混合模型使用了BiRNN學(xué)習(xí)文本序列信息,并結(jié)合CNN獲取局部信息特征,更加充分地提取了文本特征,豐富了特征向量,比單一模型的分類效果有明顯提高。
將單一模型CNN或者BiGRU模型與DLMA-BiGRU模型或者DLMA-CNN模型進(jìn)行對比,發(fā)現(xiàn)使用雙層多頭自注意力模型比單一模型具有更好的文本情感分類效果。
BiRNN-DCNN混合模型相對于ATT-BiGRU-CNN模型可以看出,其在正確率上有顯著提升。這是因?yàn)樵诨旌夏P椭幸胱⒁饬δP?,使用注意力層能夠提取文本的重要特征,忽略掉不重要的特征,使分類結(jié)果受無關(guān)詞語的影響盡可能小,從而提升了正確率和分類性能。
將ATT-BiGRU-CNN混合模型和本文ATT-BiGRU-DCNN模型對比,可以看出,引入雙層多頭自注意力機(jī)制后,模型性能得到顯著提升。因?yàn)殡p層多頭自注意力機(jī)制區(qū)別于傳統(tǒng)的注意力模型,不僅對淺層的詞向量有更好的關(guān)注,而且更好地獲取深層次的句子向量,提升重要部分對文本情感分類的影響力,減小無關(guān)信息的干擾,從而在準(zhǔn)確率上能夠有顯著提高。
為了更加直觀地顯示不同模型準(zhǔn)確率和F-Score的變化趨勢,將各個模型在NIPCC數(shù)據(jù)集上ACC變化和F-Score變化情況繪制成如圖3~4所示的折線圖,將各個模型在SST-2數(shù)據(jù)集上ACC變化和F-Score變化情況繪制成如圖5~6所示的折線圖。
圖3 各個模型在NIPCC數(shù)據(jù)集上的ACC折線
圖4 各個模型在NIPCC數(shù)據(jù)集上的F-Score折線
圖5 各個模型在SST-2數(shù)據(jù)集上的ACC折線
由圖3~6可以看出,本文提出的基于DLMA-BiGRU-CNN的文本情感分析模型在準(zhǔn)確率和F-Score上都有明顯提高,證明了本文模型的有效性和優(yōu)越性。
圖6 各個模型在SST-2數(shù)據(jù)集上的F-Score折線
本文提出一種基于多頭自注意力和并行混合模型的文本情感分析方法,通過實(shí)驗(yàn)對比,該模型在準(zhǔn)確率和F-Score上都有明顯提高,證明了本文模型的優(yōu)越性。由于神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜性,下一步工作將繼續(xù)深入研究模型,并考慮對文本進(jìn)行多分類或者進(jìn)行更細(xì)粒度的分析,以更加貼合文本的原始情感。
河南理工大學(xué)學(xué)報(自然科學(xué)版)2021年1期