趙容梅, 熊 熙, 琚生根, 李中志, 謝 川
(1.成都信息工程大學網(wǎng)絡(luò)空間安全學院, 成都 610225; 2.四川大學計算機學院, 成都 610065)
情感分析是自然語言處理領(lǐng)域的一個熱點研究問題,可以理解為通過識別文本觀點以分析情感的傾向性,文本情感分析不同于文本分類和文本挖掘之處在于:情緒具有抽象性,僅以字面意思判斷文本所表達的情緒是片面的,這種方式只適用于帶有明顯的情感詞或者是能夠充分表達情緒的表情符號的文本.
現(xiàn)今越多越多的人愿意在微博、微信等社交平臺上通過發(fā)表純文字或者是帶有圖片的動態(tài)信息表達自己的生活狀態(tài)和情緒狀態(tài),少部分的動態(tài)信息可以直接表達自己當前情緒,而大量動態(tài)語言則較含蓄,沒有出現(xiàn)明顯的情感詞,無法直觀判斷所表達的隱式情感.如表1的三句話,分別表達了褒義、貶義和客觀(中性)的隱式情感.
表1 隱式情感句
顯式情感分析的研究成果目前已經(jīng)比較豐富,隱式情感分類的研究仍處于起步的階段.隱式情感分析在知識嵌入、文本表示學習、用戶建模和自然語言理解等方面的研究起著重要作用,可以更全面地提高文本情感分析效果,推動文本情感分析在相關(guān)領(lǐng)域的應(yīng)用.
近年利用機器學習方法進行情感分析的研究提升了實驗性能.王進等人[1]針對行人屬性分類受行人屬性不均衡影響的問題,提出了一種基于屬性敏感卷積神經(jīng)網(wǎng)絡(luò)的行人屬性分類方法.Hu等人[2]將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于語義匹配任務(wù)中,陳波等人[3]提出一種基于循環(huán)結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)文本分類方法,該方法對文本進行單次正向及反向掃描,能夠在學習單詞表示時盡可能地捕獲上下文信息.Gu等人[4]將SVM嵌入到卷積神經(jīng)網(wǎng)絡(luò)中代替?zhèn)鹘y(tǒng)的softmax分類器,該模型在中文句子分類任務(wù)中有比較好的實驗性能.
Chen等人[5]提出了一種RNN模型,在多任務(wù)學習框架下同時進行手寫體識別和文本行識別.羅帆等人[6]提出一種多層網(wǎng)絡(luò)H-RNN-CNN,模型是CNN和RNN的簡單結(jié)合,用于處理中文文本情感分類任務(wù).彭嘉毅等人提出一種基于字符特性,雙向長短時記憶網(wǎng)絡(luò)(Bi-LSTM)與條件隨機場(CRF)相結(jié)合的信息安全領(lǐng)域命名實體識別方法.目前有關(guān)文本的研究應(yīng)用比較廣泛的模型是LSTM和GRU和基于這兩個模型的改進算法.Tran等人[8]將GRU模型應(yīng)用在對話系統(tǒng)中,實驗表明該算法的實驗性能高于原有的算法.
注意力機制逐漸被廣泛應(yīng)用于各類自然語言處理任務(wù)中.杜天寶等人[9]將文本中的每個詞語映射成情感詞向量, 進而將其作為卷積神經(jīng)網(wǎng)絡(luò)的輸入, 并加入注意力機制對輸出結(jié)果進行優(yōu)化.Huang等人[10]提出了用于語音情感識別的深度卷積神經(jīng)網(wǎng)絡(luò),同時在該網(wǎng)絡(luò)中引入了注意力機制,用于學習與任務(wù)相關(guān)的話語結(jié)構(gòu).劉廣峰等人[11]針對文檔水平情感分析傳統(tǒng)模型存在先驗知識依賴以及語義理解不足問題,提出一種基于注意力機制與層次網(wǎng)絡(luò)特征表示的情感分析模型TWE-ANN.
一些研究者通過組合各類神經(jīng)網(wǎng)絡(luò)解決單一神經(jīng)網(wǎng)絡(luò)中存在的不足.Chen等人[12]提出了一種基于CNN、BiLSTM和條件隨機場CRF的組合模型,該模型采用分而治之的句子分類方法.趙勤魯?shù)热薣13]針對當前文本分類神經(jīng)網(wǎng)絡(luò)不能充分提取詞語與詞語和句子與句子之間的語義結(jié)構(gòu)特征信息的問題,提出一種基于LSTM-Attention的神經(jīng)網(wǎng)絡(luò)實現(xiàn)文本特征提取的方法.Li等人[14]提出了BiLSTM-CNN方法研究了自然語言處理在文本分類中的應(yīng)用問題,該模型在新聞文本分類方面具有很大的優(yōu)勢.
目前關(guān)于情感分析方面的研究工作主要可以分為兩大類:基于規(guī)則與詞典的情感分析方法,以及基于機器學習的情感分析方法.基于規(guī)則和詞典的情感分析方法的分類靈活性較低、可遷移性差;利用機器學習方法進行情感分析解決了情感詞典適應(yīng)性差的問題,傳統(tǒng)的機器學習方法的實驗性能還有待進一步提高;基于深度學習方法可以提取文本中更深層次的句子級特征,因而提高文本分類的準確率.
本文在深度模型的基礎(chǔ)上加入了注意力機制,在中文隱式情感分析上表現(xiàn)出了良好性能.本文提出的模型利用雙層卷積神經(jīng)網(wǎng)絡(luò)對文本級和句子級的特征進行提取,結(jié)合雙向長短期記憶網(wǎng)絡(luò)BiLSTM結(jié)構(gòu)注意其上下文信息,BiLSTM替換了傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)中的池化層,并且在其中加入注意力機制,分析中文文本中包含的隱式情感,將其分為不含情感、褒義隱式情感和貶義隱式情感三類.
長短期記憶網(wǎng)絡(luò)LSTM是RNN的一個變體,用于解決RNN網(wǎng)絡(luò)中存在的梯度爆炸和梯度消失問題.LSTM中包含遺忘門、輸入門和輸出門三種類型的門,這三種門也分別對應(yīng)LSTM的內(nèi)部實現(xiàn)的忘記階段、選擇記憶階段和輸出階段.LSTM網(wǎng)絡(luò)如圖1所示.
圖1 LSTM原理圖Fig.1 Long Short Term Memory network
遺忘門主要是選擇性的忘記上一個節(jié)點傳進來的數(shù)據(jù),忘記門控ft計算方式如下.
ft=σ(Wf·[ht-1,xt]+bf)
(1)
其中,ht-1表示上一個cell的輸出;xt表示當前cell的輸入;σ表示sigmoid函數(shù).
it=σ(Wi·[ht-1,xt]+bi)
(2)
(3)
(4)
輸出門決定模型中最終輸出的值,首先經(jīng)過sigmoid對輸入數(shù)據(jù)進行二次選擇,保留需要輸出的部分記為ot,再將最終更新的細胞狀態(tài)輸入tanh做一個非線性化處理,將兩個部分相乘則得到了最終的輸出ht.
ot=σ(Wo·[ht-1,xt]+bo)
(5)
ht=ot*tanh(Ct)
(6)
Wf,bf,Wi,bi,Wo,bo分別表示遺忘門、輸入門和輸出門對應(yīng)三個階段的權(quán)重參數(shù)和偏置參數(shù).
在NLP中,注意機制允許模型根據(jù)輸入文本和到目前為止生成的文本來學習應(yīng)該注意什么,而不是像標準RNN和LSTM那樣將整個源文本編碼成固定長度的向量注意力機制原理如圖2所示.
圖2 注意力機制原理圖
在自然語言處理中注意力機制首先用于機器翻譯任務(wù)中,在機器翻譯過程中注意力機制為每個單詞都賦予了一個權(quán)重,而這個權(quán)重則是通過計算出來的注意力,實現(xiàn)在翻譯下一個單詞時可以只關(guān)注局部對自己比較重要的信息,注意力計算公式如下.
(7)
其中,aij是一個softmax模型輸出,概率值的和為1;eij表示一個對齊模型,在機器翻譯中表示的是在翻譯第i個詞時,受encoder端第j個詞的影響程度.常見的對齊計算方式有點乘(Dot product),權(quán)值網(wǎng)絡(luò)映射(General)和concat映射三種方式.注意力機制本質(zhì)上還是一個Encoder-Decoder結(jié)構(gòu),早期應(yīng)用在機器翻譯任務(wù)的sequence-to-sequence結(jié)構(gòu)在翻譯單個單詞時需要關(guān)注整個原句,不能只關(guān)注與之對應(yīng)的單詞和上下文.Attention機制就解決了上述問題,這也是在自然語言處理任務(wù)中被廣泛應(yīng)用的一個原因.
本文使用的混合神經(jīng)網(wǎng)絡(luò)包括卷積神經(jīng)網(wǎng)絡(luò)(CNN),雙向長短期記憶網(wǎng)絡(luò)(BiLSTM)和注意力機制,模型結(jié)構(gòu)如圖3所示.模型結(jié)構(gòu)的第一層是預(yù)處理過程中的詞嵌入層,第二層是一個包括三個卷積核的卷積層,使用混合卷積核的主要目的是盡可能多的提取更有意義的抽象化特征,用BiLSTM代替卷積神經(jīng)網(wǎng)絡(luò)中的池化層,利用Droupout防止過擬合.
圖3 混合神經(jīng)注意力網(wǎng)絡(luò)(CLA)Fig.3 The mixed neural attention network(CLA)
BiLSTM的輸出序列結(jié)合注意力機制注意貢獻率較大的詞向量,第三層也就是我們的句子嵌入層,第四層和第二層結(jié)構(gòu)一樣,用于提取句子的抽象化特征.在經(jīng)過特征提取的句向量中加入注意力后作為最后一層softmax分類器的特征進行分類.詞嵌入層的詞向量大小為100維,每篇文檔最大的句子數(shù)量設(shè)置為15.利用卷積神經(jīng)網(wǎng)絡(luò)處理文本信息時卷積核的寬度與詞向量的大小一致,因此卷積核每次覆蓋的上下文的范圍就與卷積核的大小一致,因此可以通過設(shè)置卷積核的尺寸來決定將幾個連續(xù)詞的特征表示出來.傳統(tǒng)的CNN除了有卷積層之外,還通過池化層再次提取較為重要的特征簡化網(wǎng)絡(luò),本文選擇利用雙向的LSTM來代替池化層,在雙向LSTM輸出的序列基礎(chǔ)上加入注意力機制,進一步的將序列中對于分類具有較大貢獻率的單詞和句子給予更多的注意力.
本文使用的BiLSTM最終對得到的兩個方向的ht進行簡單的拼接即可,BiLSTM對句子的編碼模型如圖4所示.
圖4 BiLSTM對“我愛編碼這句話進行雙向編碼”Fig.4 BiLSTM’s bidirectional coding of “I love coding”
前向LSTM依次輸入“我”,“愛”,“編碼”得到三個向量,如圖3藍色部分表示的向量,后向的LSTM依次輸入 “編碼”,“愛”,“我”得到三個向量如圖3灰色部分表示的向量,將前向和后向LSTM得到的隱向量進行拼接就得到了BiLSTM編碼的向量.在本文的方法中,BilSTM并不是針對原始詞經(jīng)過詞嵌入后得到的向量進行編碼,而是在經(jīng)過卷積神經(jīng)網(wǎng)絡(luò)對其進行特征提取之后,對含有重要意義的抽象特征的向量進行編碼,BiLSTM編碼中含有向量的上下文信息,分類時能充分利用上下文信息,提高分類性能.
BiLSTM將卷積后的提取的特征從兩個方向進行匯總,充分保留特征中包含的上下文信息.注意力機制使得模型能夠?qū)⒏嗟淖⒁饬Ψ旁趯η楦蟹诸愑休^大貢獻的單詞和句子中,學習局部重要性.
本文中的注意力機制中采用的對齊模式是點乘模式,將BiLSTM輸出的向量hit經(jīng)過tanh變換得到隱向量表示wit,再計算每個單詞對于情感分類的注意力,最后通過簡單的加和得到一個句子中的所有注意力si,uw表示單詞的上下文向量.某一句語言所表達的情感總是與上下句密切相關(guān),本文提出的方法能充分利用上下文信息,對語句的情感分析不僅僅對單個語句進行編碼,將這個語句的上下文一起編碼成為一個簡單的文檔,將有標記的情感句置于文檔中部,前后填充上下文語句.因此在進行特征提取時句子的上下文語義和結(jié)構(gòu)信息也被包含其中,豐富了特征信息、提高了實驗性能.
wit=tanh(Wwhit+bw)
(8)
(9)
si=∑aijhit
(10)
實驗所用數(shù)據(jù)集是全國社會媒體處理大會(SMP2019)公開的由山西大學提供的數(shù)據(jù)集[15],主要是來源于產(chǎn)品論壇、微博、旅游網(wǎng)站等平臺的數(shù)據(jù).本文主要的工作是對中文的隱式情感句進行評測,數(shù)據(jù)集中包含顯示情感詞的文本已經(jīng)通過大規(guī)模情感詞典進行過濾處理.處理后的數(shù)據(jù)集中將隱式情感句進行了部分標注,分為褒義隱式情感句(1),貶義隱式情感句(2)和中性情感句(0)三類.數(shù)據(jù)以切分句子的文檔形式發(fā)布,其中包含有句子的完整上下文信息,數(shù)據(jù)集的詳細數(shù)據(jù)如表2所示.
表2數(shù)據(jù)集詳細數(shù)據(jù)
中性句表示數(shù)據(jù)集中標注的不含情感句的數(shù)量,褒義句表示數(shù)據(jù)集中標注的含褒義隱式情感句的數(shù)量,貶義句表示數(shù)據(jù)集中標注的含貶義隱式情感句的數(shù)量,總數(shù)表示含有標注的語句總數(shù).
實驗中所用的評價指標為準確率、精確度(P)、召回率(R)、準確率(Acc)、F1值[16]和漢明損失,漢明損失(Hamming_loss)[17]用來計算多標簽分類模型的精度,可以衡量預(yù)測所得標記與樣本實際標記之間的不一致程度,其各個評價指標的計算公式如下.
(11)
(12)
(13)
(14)
(15)
其中,TP表示將正類預(yù)測為正類的數(shù)量;FN表示將正類預(yù)測為負類的數(shù)量;FP表示將負類預(yù)測為正類的數(shù)量;TN表示將負類預(yù)測為負類的數(shù)量;N是樣本的總數(shù);L是標簽的個數(shù);Yi,j是第i個預(yù)測結(jié)果中第j個分量的真實值;Pi,j是第i個預(yù)測結(jié)果中第j個分量的預(yù)測值;XOR表示異或操作.
卷積神經(jīng)網(wǎng)絡(luò)的卷積層將單詞和句子的表示中有意義的抽象特征抽取出來,在卷積核大小分別為3,4,5以及三個卷積核的混合四種情況下進行對比實驗,此時實驗的epoch設(shè)置為8,實驗結(jié)果如圖5所示,圖5的(a)~(d)圖就分別代表卷積核大小為3、4、5和混合卷積核四種情況.從圖5中可以發(fā)現(xiàn),在訓練了8個epoch的情況下,結(jié)果開始收斂,訓練得到的精度比較高能達到0.9,測試的精度就在0.7上下浮動,可以明顯看出的是在epoch為3或者4的時候,訓練和測試的擬合情況達到最好,因此在后面的實驗中的所有epoch都設(shè)置為3.
通過比較圖5(a)~(d)的4組圖可以看出,圖5(a)中精度和損失變化波動比較大,沒有收斂的趨勢,這是因為當卷積核為3時,每次提取到只是相鄰三個單詞的特征,此時的句子中的語義和結(jié)構(gòu)信息沒有全部包含進去,所以實驗效果相對較差,卷積核為4和5的時候曲線明顯趨于緩和,當使用混合卷積核的時候,實驗效果達到最好.卷積核為3時能夠充分提取相鄰單詞之間的特征信息,卷積核為5時,提取特征的前后跨度增大,可以將語句中的語義及結(jié)構(gòu)特征提取出來,將混合卷積核提取的特征結(jié)合起來就可以確保卷積神經(jīng)網(wǎng)絡(luò)在卷積過程中充分提取單詞或語句中有意義的特征信息,因而提高了分類效果.
運用混合卷積核,epoch設(shè)置為3的實驗結(jié)果如表3所示.
表3混合卷積核下的實驗性能
Tab.3Experimentalperformanceunderthemixedconvolutionkernel
情感句精確度召回率F1值標記樣本數(shù)漢明損失中性0.770.970.862554-褒義0.760.810.781233-貶義0.770.750.761358-整體0.770.840.8051450.23
從表3可知,對于中性句(不含情感)的分類F1值達到了0.86,明顯優(yōu)于含情感的語句分類效果.這是由于中性情感語句的語句結(jié)構(gòu)和語言表達方式相對簡單,而含情感的語句表達方式則比較含蓄.實驗的整體準確率達到0.77,漢明損失為0.23,在隱式情感分類任務(wù)中達到了良好的分類效果.
在本文中,我們將傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)CNN中的池化層用BiLSTM代替,作用是能夠更加完整的保存提取特征中的上下文信息,并且在模型中加入了注意力機制,注意力機制使得模型能夠?qū)⒏嗟淖⒁饬Ψ旁趯η楦蟹诸愑休^大貢獻的單詞和句子中,學習局部重要性.實驗結(jié)果表明該方法可以顯著提高隱式情感句的分類效果.隱式情感分析的難點在于語義表達含蓄,隱式情感句的語義特征、上下文結(jié)構(gòu)特征的信息提取直接影響到最終的分類結(jié)果,在接下來的隱式情感分析研究中,最主要的工作就是從更細粒度的角度提取隱式情感句的特征信息.現(xiàn)在情感分析研究工作存在的數(shù)據(jù)稀缺性、類別不平衡、領(lǐng)域依賴性和語言不平衡等難點,因此基于多媒體融合、領(lǐng)域自適應(yīng)、深層語義和社交網(wǎng)絡(luò)的情緒分析將是之后研究工作的一個重點和熱點.