盧浩陳偉
(南京理工大學計算機科學與工程學院 南京 210094)
隨著國家近年來大力推動移動互聯網的發展和微博、微信、論壇等社交媒體的興起,越來越多的網民愿意在網絡上發表見聞、觀點、想法[1]。消費者在網絡上選購商品和服務時,可以方便查看他人對商品的評論并可以自行發表評論。商家可以通過挖掘這些包含用戶情感傾向的評論文本信息來獲取用戶的觀點和評價,提高產品和服務的質量。情感分析(Sentiment Analysis)作為自然語言處理(Natural Language Processing,NLP)的一個重要分支,其發展在自然語言處理領域有重大的影響[2]。移動互聯網的興起使得用戶評論數據呈現指數級別的增長,如何高效準確地挖掘評論信息中的情感傾向,成為了當今自然語言處理方向的研究熱點。
情感分析是自然語言處理領域的一個研究熱點,主要包括情感極性分析、情感方面抽取、主客觀分析等子課題,主要目的是從詞語、句子或者篇章中提取評論人的主觀情感傾向。
目前的情感分析所用的技術路線主要分成三類:基于語義規則的方法、基于特征機器學習的方法和基于深度學習的方法[3]。基于情感詞典的方法主要依據語義構建情感詞典,結合情感詞典和人工設定傾向性評價的指標與方法來判斷情感傾向性。基于機器學習方法需要利用人工的方式設計篩選出文本的特征,將文本特征向量化之后輸入到機器學習算法中進行分類,特征的選取直接影響分析結果,且泛化能力較差。Pang等[4]使用基于機器學習的算法,利用最大熵、貝葉斯、支持向量機等多種分類器進行了對電影評論的情感分析,取得了較好的效果。這兩種方法由于需要大量的人工標注和特征工程,且泛化能力較差的特點,已經逐漸被淘汰。
基于深度學習的方法較好地規避了傳統方法的弊端,隨著深度學習在自然語言處理領域的使用,利用深度學習算法進行文本情感分析成為了研究界的主流趨勢。Kim等[5]提出使用卷積神經網絡(Convolutional Neural Network,CNN)實現了句子級別的情感分類任務,在多個數據集上均取得了很好的結果。CNN具有提取深層次短語特征的特點[6],但其無法學習到句子內部和句子之間依賴關系和上下文信息。梁軍[7]等在長短期記憶神經網絡(Long Short-Term Memory,LSTM)基礎上融合了極性轉移機制對影評數據集進行了情感分析實驗。Xiao等[8]提出雙向長短期記憶神經網絡(Bidirectional Long Short-Term Memory,BiLSTM)的情感分析方法,BiLSTM可以從兩個方向上獲取上下文特征,綜合學習前后向語義信息,能夠有效提高模型的精度。Tai等[9]嘗試在LSTM模型的基礎上以樹形結構來描述文本,提高句子結構的語義表達,同時解決了循環神經網絡在時間上的梯度彌散問題。
深度學習中的注意力機制是對人類所特有的腦部信號處理機制的模仿,能夠在眾多的輸入信息中找到特定關注的區域,忽略一些次要信息。人類可以通過快速掃描圖像來獲取視覺注意力焦點,分配特定區域更多的注意力。注意力機制最早是由Bahdanau等[10]應用到自然語言處理領域,眾多學者對注意力機制在情感分析領域進行了研究與應用。Yang等[11]提出了基于層次化注意力機制的文本分類模型,通過句子和詞語兩個級別的注意力來提高分類準確率。張仰森等[12]利用注意力模型對微博文本內容和情感符號進行雙重編碼,提出了基于雙重注意力的微博情感分類方法。顧軍華等[13]使用卷積操作提取文本注意力信號,并將其加權融合到文本分布式表示矩陣中,提升了模型的準確度。趙云山等[14]在CNN網絡中引入Attention機制,使得傳統的CNN也能計算局部特征與非局部特征之間的依賴關系,有效地提取句子級別的分類特征。李勇等[15]提出了融合位置注意力的BiLSTM評論情感分析網絡,通過位置注意力與語義特征的融合,提升了情感詞的權重。谷歌公司在2017年提出了自注意力機制[16],在機器翻譯領域獲得了較大的突破。這種自注意力機制所依賴的外部參數少,更容易獲取文本內部依賴關系,在文本情感分析尤其是針短文本情感分析時,可以取得比較好的準確率表現。吳小華等[17]提出了結合Self-Attention機制和文本字向量表示方法的情感分析網絡,更完整保留了短文本中的稀疏特征,提高了分類準確率。王拂林等[18]利用自注意力和LSTM進行語義編碼結合動態記憶網絡,在方面級別情感分析中取得了較好的結果。
本文提出了基于多通道卷積自注意力聯合模型,模型結構如圖1所示。首先將預處理好的文本通過Word Embedding生成詞向量,同時將詞向量送入多通道CNN和BiLSTM層中分別進行特征提取。通過多通道CNN,使用不同寬度的卷積核,提取出不同詞粒度的局部信息表示,并引入自注意力機制(Self-Attention),將學習到的結果送入Self-Attention層中,再經過池化后將向量序列拼接獲取最終的局部語義表示結果。同時使用BiLSTM獲取到全局語義,并使用Self-Attention提高對文本內部特征的獲取,將上述兩個通道內的不同語義特征進行融合后,得到最終的語義表示。最后將所得到的文本特征表示通過全連接層后再通過分類層,輸出最終的分類結果。

圖1 網絡結構圖
在詞向量標識層之前,由于中文文本的特殊性,需要進行數據清洗,分詞和去除停用詞等操作。同時為了方便統一處理,需要對文本語料的長度進行截取和補齊處理。進行預處理完的文本內容本不具有豐富的高維向量表示,需要將文本內容轉換成詞向量以獲取模型網絡的輸入向量。因此文本情感分析首先需要將長度為n的文本序列表示成d維單詞向量序列。目前,通常訓練詞向量采用的方法是使用Word2vec詞向量訓練工具,該技術主要包含兩種模型,Skip-gram模型和連續詞袋模型(CBOW)[19],前者的主要思想是利用目標詞預測其周圍的詞,后者則是利用周圍的詞語預測目標詞。在本文實驗中,使用Word2vec進行詞向量訓練,本文將使用Skip-gram模型進行訓練并將生成的詞向量矩陣作為網絡模型的輸入信息。
循環神經網絡是一種序列神經網絡,可以獲取文本內容的上下文特征,廣泛應用于自然語言處理任務中。Hochreiter[20]提出的LSTM網絡解決了傳統的RNN存在的梯度消失和梯度爆炸的問題而且更容易學習到長期依賴關系,其具體單元結構如圖2所示。LSTM每個單元主要由輸入門i、輸出門o和遺忘門f記錄并更新信息,通過門控的方式提高了長距離重要語義信息的捕獲,式(1)~式(6)則為LSTM的更新方式。

圖2 LSTM單元結構圖

其中,σ表示激活函數;tanh是雙曲正切函數;Wi,Wo,Wf、bi,bf,bo分別為輸入門、輸出門和遺忘門對應的權重矩陣和偏執矩陣;xt是當前的輸入向量。

卷積神經網絡已經在圖像識別等領域取得了巨大成功[21],同時也被應用于了自然語言處理領域中。卷積神經網絡主要使用卷積層學習局部特征并通過池化層進行特征映射。在本文任務中卷積的過程就是一個一維濾波器掃過詞向量矩陣,通過在不同的位置檢測并提取特征,以此實現全局特征的提取。
將詞向量嵌入層的輸出作為卷積層的輸入,句子的長度為n,向量維度為d,則句子的第i個詞向量可以表示為xi∈Rd,則文本可以表示為由n個d維向量組成的詞向量矩陣x∈Rn×d,如式(9)所示。

其中,⊕代表拼接運算符,卷積層使用不同的卷積核提取局部上下文信息,用卷積核w∈Rh×d進行卷積操作,其中濾波器的窗口大小為d,寬度為h,其過程可以表示為

其中,b為偏置項,f是激活函數,為了加快訓練速度,本文選擇Relu函數作為激活函數,xi:i+h-1∈Rh×d表示由h個詞構成的濾波器窗口,經過卷積操作之后得到的特征序列C,C=[c1,c2,…cn-h+1]。為了更加充分利用不同尺寸的卷積核卷積操作所獲取的不同粒度的序列特征,本文采用了多通道卷積層,使用三種不同尺寸的卷積核,獲取多種粒度的特征序列C1、C2和C3。對于文本矩陣而言,行與行之間具有語序特征,可以通過不同維度的卷積操作獲取更加豐富的語義特征[22]。因此,使用多通道CNN進行不同詞粒度的卷積操作進行文本特征提取,能夠提高卷積神經網絡的提取文本特征的能力,能獲取更加豐富的語義和語序特征,同時由于CNN并行化計算的特點,相比于LSTM網絡可以提高訓練速度。
注意力機制是一種對人腦的注意力分配機制的模仿。注意力機制本質是特征選擇機制對輸入序列進行動態編碼,從眾多信息中獲取對當前任務最重要的信息,高效感知語義特征信息。自注意力(Self-Attention)是注意力機制中的一種,又被稱為內部注意力,其特點在于無需外部額外信息直接計算依賴關系,能夠更好地學習句子的內部結構。將Bi-LSTM層的輸出向量H輸入到自注意力層,學習到序列內部的依賴關系和不同詞向量的權重。自注意力的計算過程使得句子中任意兩個單詞之間可以無視距離直接聯系起來,遠距離依賴特征更加容易被學習到,式(11)是其計算過程。

其中,H∈Rd是Bi-LSTM層的輸出向量是調節因子,避免內積過大,sof t max函數的作用是對權重進行歸一化處理。
本文使用雙自注意力機制,將多通道CNN層經過卷積操作后得到的向量序列和Bi-LSTM層的輸出向量H都輸入至Self-Attention層中進行建建模,提高內部語義信息的獲取。多通道粒度的特征序列C1、C2和C3經過Self-Attention層之后所得到的特征序列所得到的的特征序列需要經過池化層對提取出的特征進行采樣,本文選用最大池化(Max pooling),該池化方法是將過濾器抽取到的多個特征值中的最大值保留下來,獲取到局部區域內的最突出特征。講池化后的三個特征序列拼接所作為句子的語義部分表示,如式(12)~式(13)所示:

Bi-LSTM層的輸出向量H都輸入至Self-Attention層后所得到的向量為H'。在融合層中使用concatenate函數講兩個通道的不同語義特征拼接起來,得到最終的語義向量表示A={H',N}。
本文模型中,將最終融合得出的句子特征向量作為全連接層的輸入,并通過sof tmax函數進行歸一化,可以得到最終的分類結果,如式(14)所示:

其中wc是可訓練權重矩陣,bc是偏置。本文損失函數使用交叉熵損失,本文的損失函數如式(15)所示:

其中,y(i)表示第i個文本的情感預測值,λ是L2正則化系數的懲罰項目,θ是模型設置的參數。本文使用的優化器為Adam[23]來降低損失值。
本文選用譚松波[24]整理的酒店評論語料(Chn-SentiCorp_htl)訓練和驗證模型的有效性。該數據集的語料規模為10000條,整理成四個子集,本文選用其中的6000條平衡語料子集(ChnSenti-Corp_htl_ba_6000),正向和負向的酒店評論各3000條,文本內容是用戶對酒店的評價,該數據集文本平均長度38.18,最大長度337。本文采用10折交叉驗證的方法進行實驗,具體的實驗環境如表1所示。

表1 實驗環境配置
深度學習模型的訓練實驗中,參數設置對結果會有較大影響,經過實驗對比,本文使用了以下的參數設置。詞向量的維度為200維,BiLSTM層的隱藏層有128個神經元,卷積核的寬度分別為3、4和5,卷積核個數均為250。dropout率是0.2,Adam優化器的學習率為0.001,數據批處量batch_size是64,實驗迭代10個epoch。
本文采用通用評價標準,使用準確率(Precision)、召回率(Recall)、F值(F-Measure)這三個標準對情感分析實驗結果進行評價,其中F值本文選用常見的F1值,具體計算公式如式(16)~式(19)所示。

其中,TP指積極類預測為積極類數,FP指消極類預測為積極類數,FN指積極類預測為消極類數,TN指消極類預測為消極類數。
本文實驗設置多組對比實驗,在對比實驗組中包含了單一網絡層和聯合網絡的對比,可以通過對比實驗,分析本文提出的基于卷積自注意力聯合模型的性能表現。
1)LSTM:使用LSTM網絡進行分類實驗,網絡輸入是Word2vec訓練出的詞向量。
2)BiLSTM:使用單一的BiLSTM網絡進行實驗,網絡輸入是Word2vec訓練出的詞向量。
3)SAN-Bi LSTM:結合BiLSTM和Self-attention機制的情感分析網絡,具體可以參考文獻[17],網絡輸入是Word2vec訓練出的詞向量。
4)CNN:單一CNN層進行分類實驗,網絡輸入是Word2vec訓練出的詞向量,具體可以參看文獻[5]。
5)MCNN:多通道CNN層進行分類實驗,選擇三通道CNN進行詞語局部特征獲取,選擇的卷積核數量與寬度與本文模型相同,網絡輸入是Word2vec訓練出的詞向量。
6)CSAN-BLSAN:本文模型,使用卷積長短時自注意力融合模型,網絡輸入是Word2vec訓練出的詞向量。
本文在酒店評論數據集上進行了多組對比實驗,在實驗過程中記錄了本文模型與5組對比模型的實驗數據,實驗結果如表2所示。

表2 實驗結果
1)通過LSTM和Bi LSTM算法的對比實驗可知,Bi LSTM由于使用了正向、后向的雙向傳播機制,通過雙向學習語義特征以避免遺失未來語義,實驗結果上性能更優。
2)根據BiLSTM和SAN-BiLSTM這兩個算法的對比實驗結果可知,相比不引入Self-Attention的BiLSTM算法的實驗組,后者在模型的準確率,召回率和F1值上分別提高了5.42%、4.56%、2.77%。引入Self-Attention機制能使模型更加容易獲取句子的局部信息,Self-Attention機制可以使句子中任意兩個單詞無視遠距離依賴直接關聯起來,減少了普通注意力機制的外部參數依賴,加強了情感詞的權重分布,提高了語義特征的獲取能力,進而提高了模型的準確率。
3)通過對比MCNN和CNN兩種算法的實驗結果可知,由于本文數據集的平均文本長度在進行文本預處理并分詞后,平均文本長度相對不高,CNN可以獲得相對比較好的模型綜合性能,使用多通道CNN的模型,可以獲取多粒度的文本特征信息,相比于單通道CNN在三個評價指標上均有一定的提升。在本實驗中,使用CNN網絡進行實驗可以獲得相比于LSTM相對更好的分類結果。
4)本文模型綜合使用了雙Self-Attention機制對多通道CNN和BiLSTM的語義表達進行處理并融合,獲得相對全面的語義表示,在準確率,召回率和F1值的指標上均取得了最佳的性能,說明本文模型可以在評論情感分析實驗中可以取得較好的分類結果。
本文實驗訓練迭代次數設置為10次,為了更加直觀地反應6組對比模型的性能表現,圖3和圖4分別是模型的在驗證集預測的準確率和損失值變化曲線。從圖中可以得知,6組模型均可以在相對短的時間內達到較高的準確率,其中本文模型在第四次迭代時達到驗證集準確率最高為91.67%,整體驗證集準確率也在所有模型中最優。驗證集損失率圖顯示出,本文模型在第二次迭代時,取得了最小val_loss,LSTM和CNN模型相對波動最大,本文模型損失值變化情況總體在其它幾組模型下方,在驗證集損失率變化上也是取得相對最佳的性能表現。這6組實驗數據都出現了過擬合的情況,但本文模型波動相對較小,最小val_loss也是本文模型取得,綜合圖3和圖4的分析結果,本文模型可以更加全面地提取文本信息,收斂速度快,可以得到的最高的驗證集準確率和最小驗證集損失值,并且模型的穩定性也較好。

圖3 驗證集準確率變化

圖4 驗證集損失值變化
本文提出了一種CSAN-BLSAN模型的中文文本情感分析方法,引入自注意力機制進行雙重語義特征的建模學習,通過多通道CNN和BiLSTM獲取多粒度的局部語義特征和全局語義特征,提高對文本特征信息的獲取,并通過自注意力機制進行重點情感詞權重的動態調整,并且通過對比實驗組,驗證了本文模型的準確率的提升。由于網絡結構的相對復雜,也帶來了模型迭代時間的一定損耗。今后研究的重點是如何利用情感詞語的相對位置關系,進一步挖掘語句中的情感傾向,依靠重點情感詞語及其上下文更加準確地提取文本的情感語義,在提高模型準確率的同時,進一步縮短模型的平均迭代時間。