陸敬筠,龔 玉
(南京工業(yè)大學(xué) 經(jīng)濟與管理學(xué)院,江蘇 南京 211816)
近些年,對文本情感分析[1,2]中,以深度學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)為主要方法,同時以注意力機制(Attention mechanism)對上述的模型進行優(yōu)化[3]。雖然,文本情感分析取得相較于機器學(xué)習(xí)算法的準確率得到很好的信息,但是現(xiàn)有LSTM、GRU模型只關(guān)注局部特征,未結(jié)合未來的信息,在文本中體現(xiàn)為未結(jié)合上下文進行分析,同時還存在對文本訓(xùn)練時間過長的問題[4]。卷積神經(jīng)網(wǎng)絡(luò)中將詞或者字符編碼矩陣轉(zhuǎn)化為向量過程中包含位置信息較少,同時現(xiàn)有注意力方式缺少詞在句子整體的語義信息。
本文針對上述問題提出了一種基于自注意力-擴展卷積神經(jīng)網(wǎng)絡(luò)模型,來豐富句子中詞或者字符的位置信息,編碼矩陣轉(zhuǎn)化為向量過程中變得更加準確,同時引入自注意力機制增加詞在句子中的語義信息,同時減少訓(xùn)練時間,為了學(xué)習(xí)到未來的信息在本文模型中引入雙向GRU網(wǎng)絡(luò)。
文本情感分析屬于自然處理一個分支,其主要目標是識別文本的情感傾向。隨著深度學(xué)習(xí)在自然語言處理中取得不錯發(fā)展,將文本情感分析推到一個新的發(fā)展高度[5]。劉秋慧等擯棄情感詞典方式,僅以少量人工標注,采用遞歸神經(jīng)網(wǎng)絡(luò)中將句子包含詞語標簽聯(lián)系起來,從而對文本情感分類[6]。Giatsoglou等利用現(xiàn)有分詞Word2Vec將上下文和詞典情感分析結(jié)合,以詞嵌入方式來將情感詞與上下文相結(jié)合[7]。王業(yè)沛等以模糊匹配方式從裁判文書抽取實體,將結(jié)果通過LSTM模型進行情感傾向性判別[8]。Ruder等提出雙層雙向的LSTM網(wǎng)絡(luò)進行文本情感分析,以不同方向LSTM學(xué)習(xí)句子內(nèi)部和句子之間的特征來進行學(xué)習(xí),從而對文本包含的屬性進行判別[9]。張玉環(huán)等利用LSTM和變形GRU相結(jié)合構(gòu)建文本情感分析的模型,在實驗階段創(chuàng)新性采用偽梯度下降來調(diào)整模型參數(shù),實驗結(jié)果表明在較短時間內(nèi)得到較高正確率[10]。
最近,Attention在深度學(xué)習(xí)領(lǐng)域流行起來,其最早是由谷歌公司應(yīng)用在圖像分類中,其將RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))和Attention相結(jié)合來構(gòu)建模型。Attention機制在自然語言領(lǐng)域也取得長足的發(fā)展[11]。Yin等嘗試CNN和Attention機制相結(jié)合,分別進行3種實驗:CNN的輸入之前加入Attention;在CNN對特征提取之后,和池化層之前加入Attention機制;上述兩種方式相結(jié)合的Attention機制[12]。曾義夫等根據(jù)循環(huán)網(wǎng)絡(luò)學(xué)習(xí)序列能力得到語句編碼,利用Attention機制從中提取帶有情感表達語句編碼,構(gòu)建出兩個外部記憶分別用來獲取語句編碼和詞語級別信息,設(shè)計出一個解碼器,從中選擇情感語義信息[13]。程艷等利用卷積層學(xué)習(xí)詞向量之間的關(guān)聯(lián),再將得到的結(jié)果輸入到RNN中層次化Attention來判斷其情感傾向[14]。
CNN卷積神經(jīng)網(wǎng)絡(luò)在文本中應(yīng)用也越來越廣泛。一般CNN將詞或者字符轉(zhuǎn)化為向量形式,需要經(jīng)過不同卷積核的卷積、池化、激勵函數(shù)等不同的操作來得到向量輸出[4]。一般CNN可以獲取句子中不同詞和字符之間的關(guān)系,以多個不同卷積核來達到該目標,該方法除了卷積時間和操作量,還存在內(nèi)存“爆炸”的可能性。本文采用擴展CNN以兩層等長擴展卷積來表示,除了提高運行速度和降低計算參數(shù)外,還可以增加該詞在該位置上的詞義上的信息。圖1表示3*3擴展卷積核結(jié)構(gòu)圖:第一層卷積核感受野為3個詞或者字符的信息,第二層卷積核感受野為6個詞或者字符的信息,邊緣以padding進行補足,保證矩陣長度和詞向量長度一致性。圖2表示擴展CNN卷積編碼結(jié)構(gòu)圖,在本文中通過擴展CNN對詞和字符進行編碼,編碼前提是需要分詞后句子矩陣分詞后詞向量的維度保持一致。當(dāng)前表示文本中第j句子,其中詞的位置在i上,則該詞可以表示為xij∈Rd,其中,d表示在d維空間中。句子中每個分詞結(jié)果都可以學(xué)習(xí)到Pij位置編碼。每個詞bij的編碼公式如式(1)所示
bij=xij+Pij
(1)
卷積核Cn∈Rs*d(n=1,2,3,…,d)對詞產(chǎn)生的編碼矩陣操作。其中,s代表卷積核大小,n代表的是卷積核數(shù)量,卷積核數(shù)量為分詞數(shù)量的2倍。
圖1 3*3擴展卷積核
圖2 擴展卷積結(jié)構(gòu)
bij詞編碼在兩層擴展卷積和激勵函數(shù)后得到編碼向量表示形式為
(2)
對其中元素計算公式如式(3)所示
(3)
式(3)中表示對詞位置編碼矩陣元素進行點乘后求和。f函數(shù)表示非線性函數(shù)。文本中第j個句子經(jīng)過擴展卷積的序列表示形式zjw。其中,w∈[1,W],W表示句子中分詞總數(shù)。
LSTM在自然語言處理中廣泛應(yīng)用中,存在著梯度回傳速度過慢,訓(xùn)練困難,結(jié)構(gòu)過于復(fù)雜等缺點。Cho提出GRU網(wǎng)絡(luò)將LSTM網(wǎng)絡(luò)中輸入門、輸出門和遺忘門轉(zhuǎn)變成更新門、重置門,從而減少網(wǎng)絡(luò)中的參數(shù),收斂速度加快,網(wǎng)絡(luò)結(jié)構(gòu)也變更加簡單。GRU網(wǎng)絡(luò)的更新門作用是控制前一個時刻輸出隱藏層的狀態(tài)對當(dāng)前時刻輸出神經(jīng)元的狀態(tài)影響狀況。更新門的值越大,前一時刻對當(dāng)前時刻神經(jīng)元輸出值影響程度越大。重置門的作用是控制著前一時刻中神經(jīng)元包含信息的忽略程度。GRU網(wǎng)絡(luò)的結(jié)構(gòu)模型如圖3所示。
圖3 GRU網(wǎng)絡(luò)結(jié)構(gòu)
GRU網(wǎng)絡(luò)中是由重置門r和更新門z組成,控制著網(wǎng)絡(luò)中神經(jīng)元的讀寫操作計算公式如式(4)-式(7)所示
(4)
(5)
(6)
(7)
GRU網(wǎng)絡(luò)模型是從上文開始向下文讀取,導(dǎo)致下文產(chǎn)生詞比上文詞權(quán)重比更大。下文詞的信息無法傳遞,GRU網(wǎng)絡(luò)神經(jīng)元應(yīng)該是由前向傳輸值和后向傳輸值共同計算的結(jié)果。雙向GRU網(wǎng)絡(luò)結(jié)構(gòu)模型如圖4所示。
圖4 雙向GRU網(wǎng)絡(luò)
2014年(Bahdanau)Attention機制應(yīng)用在機器翻譯中,后來廣泛使用在知識圖譜、語音識別等方向。Attention機制可以作為網(wǎng)絡(luò)單獨使用,可以混合到其它模型層混合。混合其它模型使用,將文本以編碼矩陣形式輸入到其它網(wǎng)絡(luò)中經(jīng)過訓(xùn)練后,對得到的數(shù)據(jù)通過Attention機制給予不同詞和字符編碼矩陣權(quán)重。Attention機制將不同位置上詞或者字符聯(lián)系起來,同時突出重點詞,從而改變系統(tǒng)性能。Attention機制產(chǎn)生是模擬人的觀察事件的能力,其對關(guān)鍵信息在進行分配時候,增加其關(guān)鍵信息的權(quán)重。Attention 機制基本結(jié)構(gòu)模型一般分為兩種模塊,分別是編碼器和解碼器。輸出值yi計算公式如式(8)所示
yi=F(Ci,y1,y2…,yi-1)
(8)
其中,Ci是對輸出語義編碼,該語義編碼器受輸入分布的影響,語義編碼器如式(9)所示
(9)
其中,E(xi)表示輸入神經(jīng)元中的數(shù)據(jù)編碼,n表示輸入詞或者字符的數(shù)目。E(xi)表示輸入i對輸出yi的注意力分配率,計算公式如式(10)和式(11)所示
(10)
eij=Vtanh(Whi+Usj-1+b)
(11)
其中,eij表示在輸入的第i個詞或者字符對j個輸出的影響。hi表示輸入的第i個詞或者字符的編碼,sj-1表示上一個神經(jīng)元輸出的編碼矩陣,W、U和V表示是在訓(xùn)練過程中學(xué)習(xí)到的參數(shù)。b表示是函數(shù)的偏置。本文采用是的自注意力機制加入情感分析網(wǎng)絡(luò)。自我注意力機制通過引入權(quán)重向量A控制對詞或字符的影響。比如,在句子“我喜歡這家餐館飯菜”中,“我”和“喜歡”組合對這句話有情感幫助,需要給予前者更多的注意力,后者給予更小的注意力。自注意力結(jié)構(gòu)模型實現(xiàn)如圖5所示。
圖5 自注意力模型
j∈[1,l]本文在提出擴展卷積的基礎(chǔ)上引入雙向GRU和自注意力機制的文本情感分析網(wǎng)絡(luò)模型。該模型先采用擴展卷積網(wǎng)絡(luò)操作對詞或者字符初始化的模塊,模型結(jié)構(gòu)如圖6所示。在圖6中將句子中通過擴展卷積網(wǎng)絡(luò)轉(zhuǎn)化為序列向量的形式。文本a中包含l個句子,將第j個句子轉(zhuǎn)化成n個單詞或者字符,即轉(zhuǎn)化形式為:Wj={wj1,wj2,…,wjn},其中j∈[1,l]。擴展卷積網(wǎng)絡(luò)對詞或者字符編碼矩陣轉(zhuǎn)化為統(tǒng)一向量維度。雙向GRU網(wǎng)絡(luò)是由前向和反向GRU兩部分組成。通過GRU網(wǎng)絡(luò)可以充分學(xué)習(xí)上下文之間的關(guān)系,可以充分學(xué)習(xí)上下文關(guān)系進行編碼,計算公式如式(12)所示
hjn=BiGRU(vjn)
(12)
圖6 基于自注意力的擴展卷積網(wǎng)絡(luò)
完成上下文關(guān)系學(xué)習(xí)后,加入自注意力制來給每個詞或者字符分配權(quán)重,進一步提取語句中關(guān)鍵的詞或者字符,尤其是長句學(xué)習(xí)(兩個子句的連接),所以需要將注意力放到不同部分進行多次注意,生成注意權(quán)重矩陣A形式如式(13)所示
A=softmax(Ws1tanh(Ws2HT))
(13)
其中,HT表示輸入的向量,Ws1和Ws2表示學(xué)習(xí)到的參數(shù),softmax函數(shù)是對結(jié)果歸一化。式(13)將嵌入向量轉(zhuǎn)變成嵌入矩陣M。隱藏狀態(tài)層狀態(tài)HT和權(quán)重矩重相乘得到句子嵌入矩陣式(14)
M=AH
(14)
最后經(jīng)過softmax層進行情感分析計算結(jié)果如式(15)所示
p=softmax(Ws3+b)
(15)
其中,Ws3表示是參數(shù)矩陣,b表示的是偏置矩陣。最小化損失函數(shù)如式(16)所示
(16)
其中,d表示句子j對應(yīng)的情感標簽。
驗證自注意力-擴展卷積模型的有效性,選擇公開IMDB和SSTB數(shù)據(jù)集進行驗證。訓(xùn)練集和測試集按照8∶2的標準劃分,劃分詳細情況見表1。
表1 數(shù)據(jù)集詳細情況
對自注意力-擴展卷積網(wǎng)絡(luò)模型訓(xùn)練中設(shè)置卷積核大小為3*3,詞向量維度和卷積層輸出通道數(shù)量相同,對實驗中超參數(shù)設(shè)置見表2。
表2 模型參數(shù)情況
本文對自注意力-擴展卷積網(wǎng)絡(luò)模型的評價指標:準確率(Precision)、召回率(Recall)和迭代時間。表3表示二分類的混淆矩陣(confusion matrix),TP(true positive)表示文本情感分類為正類,模型實際預(yù)測的文本情感為正類的數(shù)量。FN(false negative)表示文本情感分類為負類,模型實際預(yù)測的文本情感為負類的數(shù)量。FP(false posositve)表示文本情感分類為負類,模型實際預(yù)測的文本情感為正類的數(shù)量。TN(true negative)表示文本情感分類為正類,模型實際預(yù)測的文本情感為負類的數(shù)量[15]。
表3 二分法混淆矩陣說明
文本的準確率計算式(17)
(17)
文本的召回率計算式(18)
(18)
迭代時間計算以10次迭代過程中每次的時間進行加權(quán)后取平均數(shù)。
自注意力-擴展卷積模型與現(xiàn)有模型對比情況如下:
(1)BiLSTM-CNN模型。李洋等通過CNN卷積神經(jīng)網(wǎng)絡(luò)和BiLSTM模型相結(jié)合,分為3層:詞嵌入層,卷積層提取局部特征,最大池化操作[16]。
(2)BiGRU-Attention模型。王偉等提出BiGRU-Attention模型劃分為輸入層、隱含層和輸出層。其中,輸入層是將文本向量化,隱藏層是由BiGRU、Attention、Dense這3部分組成。BiLSTM-Attention模型是將BiGRU-Attention模型中隱藏層BiGRU變?yōu)锽iLSTM[17]。
(3)ASC模型。Rozental等采用雙向的Bi-LSTM對文本特征處理和對數(shù)據(jù)降維,加入最大池化層對文本中影響情感信息進行突出,從4個維度對得到的信息處理,最后加入softmax層分類的網(wǎng)絡(luò)模型[18]。
(4)DB-LSTM-RNN模型。劉建興等采用分布式方法來對詞嵌入的方法表示,用DB-LSTM對文本序列學(xué)習(xí),在池化層學(xué)習(xí)到深層次表示后,輸入到分類器中分類[19]。
本次實驗10次迭代過程,在測試集上的準確率為模型的準確率,測試集上的召回率為模型的召回率,測試集上的迭代時間為模型的迭代時間,本文自注意力-擴展卷積網(wǎng)絡(luò)模型(Self-Attention-KCNN)。
(1)本文將自注意力-擴展卷積網(wǎng)絡(luò)模型與BiLSTM-CNN模型、BiGRU-Attention模型、BiLSTM-Attention模型、ASC模型、DB-LSTM-RNN模型在訓(xùn)練集上訓(xùn)練后,然后在測試集上測試,得到準確率、召回率與迭代次數(shù)之間關(guān)系,如圖7和8所示。
圖7 迭代次數(shù)與準確率
圖8 迭代次數(shù)與召回率
從圖7和圖8中可以看出模型之間從下往上看準確率和召回率的值不斷提高,其中,本文自注意力-擴展卷積神經(jīng)網(wǎng)絡(luò)準確率和召回率的值最高。本文Self-Attention-KCNN模型準確率高于BiGRU-Attention模型,突出自注意力相比注意力的優(yōu)越性,詞或者字符可以獲取全局語義信息,KCNN模型相比較CNN可以擴展感受野,增加詞或者字符的位置信息,從而獲得深度的文本特征,提高準確率和召回率。Self-Attention-KCNN模型迭代次數(shù)越多,其召回率和準確率越高。從總體上看,Self-Attention-KCNN模型在準確率和召回率較高,但是值變化幅度較大。從ASC模型上來看不是迭代次數(shù)越高,訓(xùn)練數(shù)據(jù)效果越好。從本模型上看,Self-Attention-KCNN模型多次迭代是可以提高準確率和召回率。
(2)迭代時間是指在完成一次迭代時間,從圖9中給出在相同時間下進行迭代所花費的時間趨勢。
圖9 代價時間和迭代次數(shù)
從圖9中可以看出,各個不同模型在不同迭代時間總體上平滑,一般經(jīng)過多次迭代后,再次訓(xùn)練之后,代價時間趨于穩(wěn)定;BiGRU-Attention模型完成一次迭代時間最短,模型收斂速度最快,與隱藏層采用BiGRU和Attention有關(guān)。BiGRU-Attention和BiLSTM-Attention模型區(qū)別在于BiGRU和BiLSTM不同引起,二者迭代時間不同,表明BiGRU模型收斂速度更快、需要計算的參數(shù)更少。DB-LSTM-RNN模型最高是因為RNN收斂速度慢,參數(shù)較多,收斂速度較慢。本文Self-Attention-KCNN模型慢于BiGRU-Attention模型在于增加擴展卷積網(wǎng)絡(luò)增加訓(xùn)練時間。
本文將Self-Attention-KCNN模型與BiLSTM-CNN、BiGRU-Attention、BiLSTM-Attention、ASC、DB-LSTM-RNN模型對比,將不同迭代次數(shù)相加取平均值結(jié)果見表4。
表4 不同模型對比結(jié)果
從表4中可以看出,本文所提出基于Self-Attention-KCNN模型在準確率、召回率和迭代時間值遠遠優(yōu)于其余5種模型。
本文提出了一種基于自注意力-擴展卷積神經(jīng)網(wǎng)絡(luò)模型,比目前廣泛使用的卷積神經(jīng)網(wǎng)絡(luò)和注意力模型的混合模型,可以提高準確率和召回率,同時降低迭代時間。從網(wǎng)絡(luò)結(jié)構(gòu)說明,一方面擴展卷積網(wǎng)絡(luò)比卷積神經(jīng)網(wǎng)絡(luò),通過設(shè)置并行卷積核將輸入詞和字符的編碼矩陣轉(zhuǎn)化為向量增加更多位置編碼,得到效果更佳。另外一方面說明Attention模型和Self-Attention模型效果更佳,可以取得更好詞和字符的語義編碼。本文模型在IMDB和SSTB數(shù)據(jù)集上性能評價的準確率、召回率和迭代時間優(yōu)于其它模型。本文情感分析只是進行二分類,現(xiàn)實生活中的情感存在多樣化,采用本文的自注意力-擴展卷積神經(jīng)網(wǎng)絡(luò)進一步研究文本多分類的情況。