楊春霞,李欣栩,瞿 濤,秦家鵬
1(南京信息工程大學 自動化學院,南京210044)2(江蘇省大數(shù)據(jù)分析技術重點實驗室,南京210044)3(江蘇省大氣環(huán)境與裝備技術協(xié)同創(chuàng)新中心,南京210044)
E-mail:y.cx@163.com;nuistlxx@163.com
文本情感分析通常是利用人們生成的文本對觀點或情感進行分析,在自然語言處理和數(shù)據(jù)挖掘方面具有很重要的影響[1].近年來,隨著如亞馬遜、Yelp和IMDB等網(wǎng)站評論呈爆發(fā)式增長,情感分析受到各領域?qū)W者越來越多的關注.
文檔級情感分類旨在預測文本的整體情感極性(如劃分成1-5或者1-10類)[1],其關鍵在于提取文本特征,現(xiàn)如今雖然一些學者使用神經(jīng)網(wǎng)絡在自動學習文本特征方面取得了較好效果[2-5],但是如何挖掘文本更深層的特征和語義關聯(lián)特征一直是研究的熱點問題.另一方面,現(xiàn)有的網(wǎng)絡大多數(shù)只考慮局部文本信息,忽略了用戶信息和產(chǎn)品信息等分類元數(shù)據(jù).Tang[6]等人將用戶信息和產(chǎn)品信息融入到詞嵌入層和池化層中,提高了分類效果,初步說明融合分類元數(shù)據(jù)對挖掘文本相關特征和語義關聯(lián)有所幫助.但是在建模過程中融合分類元數(shù)據(jù)工作還有待加強.
本文的主要貢獻如下:
1) 本文結合DBLSTM和self-attention網(wǎng)絡層來捕捉文本深層特征和語義關系.輸入的時序數(shù)據(jù)在DBLSTM的每一層進行訓練,最后一層輸出值通過self-attention進一步來提取重要特征和語義關系.
2) 考慮到分類元數(shù)據(jù)對分類結果的影響,本文結合分類元數(shù)據(jù)構建自定義分類器,該分類器通過上下文感知注意力為分類元數(shù)據(jù)配制特定的參數(shù),與原始參數(shù)一起對提取到的文本特征進行處理和分類.
3) 本文在三個常見的數(shù)據(jù)集上進行實驗,并與當前主流工作進行對比,實驗結果表明本文提出的模型性能優(yōu)于相關模型,本文提出的深度模型結合自注意力機制的特征提取方案能有效地提取文本特征,本文構建的分類器能進一步提高分類精度.
傳統(tǒng)的機器學習方法需要對文本進行大規(guī)模的數(shù)據(jù)預處理和特征工程,這通常耗費大量資源.深度學習模型因為能有效緩解對人工規(guī)則和特征工程的依賴而逐漸成為情感分類的主流.
Bengio等[7]首次將神經(jīng)網(wǎng)絡用于訓練語言模型,將詞在同一個向量空間上表示出來,該語言模型與one-hot相比維數(shù)大大減小,但存在參數(shù)較多、訓練時間過長的問題.Mikolov等[8]和Pennington等[9]分別提出了word2vec和Glove詞分布表示方法,均能縮短訓練時間,同時也能進一步減少詞向量維度.
RNN模型雖然能比較連貫的表示數(shù)據(jù)上下文,但是其存在梯度消失和梯度爆炸的問題,Hochreiter等[10]提出LSTM模型,該模型不僅可以彌補RNN的不足,還能提取長距離關聯(lián)的語義特征.Cho等[11]提出的GRU模型比LSTM結構更簡單,在某些問題上可以減少時間成本.然而LSTM和GRU模型只能處理單向信息流動而無法反映上下文語義關聯(lián).BLSTM/BGRU在LSTM/GRU基礎上增加反向的LSTM/GRU,拼接兩個方向上LSTM/GRU的結果從而獲得上下文語義信息.曾蒸等[13]用DBLSTM來進行情感分類,通過實驗驗證DBLSTM能更有效的捕捉深層特征和語義關聯(lián),受其啟發(fā),本文嘗試搭建基礎的DBLSTM并結合其他特征提取層來進一步提高DBLSTM的效果.
注意力機制(Attention mechanism)最先用于圖像處理領域,主要是模擬人眼性能來關注圖片或者視頻中的重要區(qū)域,Attention在NLP方面的應用被看作是一種信息加權,通過分析每一時刻輸出信息的重要程度來對輸出信息進行加權,這可以有效提高模型的學習效率,目前注意力機制常與神經(jīng)網(wǎng)絡聯(lián)合建模來提高情感分類精度,Yang等[12]將注意力機制和神經(jīng)網(wǎng)絡結合來進行文本分類并取得了較好的實驗效果.石磊等[14]將Tree-LSTM和attention-Tree-LSTM兩種情感分類模型進行對比,結果表明引入注意力機制能有效的提高模型精度.韓虎等[15]分別在句子級別和篇章級別引入用戶信息和產(chǎn)品信息等分類元數(shù)據(jù),并通過注意力機制來計算不同文本特征的重要性,實驗證明融入分類元數(shù)據(jù)的模型效果要優(yōu)于不含分類元數(shù)據(jù)的模型,然而現(xiàn)存的模型主要關注分類元數(shù)據(jù)對編碼層的影響,很少關注對分類層的影響.基于此,本文采用DBLSTM結合self-attention的結構來提取深層特征和語義關聯(lián)并利用分類元數(shù)據(jù)自定義分類器來分類.
本文遵循網(wǎng)絡結構設計通用原則,通過目前開源的深度學習框架搭建序貫模型(sequential),DB-A-CC模型整體上呈編碼——解碼結構,如圖1所示,主要包括4部分:
圖1 基于DB-A-CC的情感分類模型Fig.1 Sentiment classification model based on DB-A-CC
1)詞向量:將本文用到的Yelp2013、Yelp2014、IMDB等三個公開數(shù)據(jù)集進行文本預處理,將文本通過詞嵌入轉(zhuǎn)換成DBLSTM可以直接識別處理的詞向量矩陣.
2)編碼輸出:將詞向量通過DBLSTM進行處理,該網(wǎng)絡有多個隱層,后一層的輸入是前一層的輸出,最終獲得每個時間步長上的隱層狀態(tài)和句子的整體表示.
3)注意力層特征篩選:文本中的單詞對文本的貢獻度不同,通過self-attention機制既可以提取重要特征,也起到挖掘文本更深層信息和語義關聯(lián)的作用,最終得到文本級注意力機制矩陣.
4)自定義分類器模塊:本文結合分類元數(shù)據(jù)自定義分類器,目的是在考慮分類元數(shù)據(jù)特征的影響下將提取到的文本特征進行處理并輸出文本在各個類別下的概率.
本文的情感分類任務是結合分類元數(shù)據(jù)來對輸入句子的情感極性作判斷.Tang等[6]提出用戶情感持續(xù)性和產(chǎn)品情感持續(xù)性理論:相同的用戶在面對不同的產(chǎn)品時總傾向于給出相似的評級;質(zhì)量好的產(chǎn)品大概率會比質(zhì)量差的產(chǎn)品獲得相對高的評級.所以在建模時考量分類元信息是很有必要的.我們將文本集定義為T,將全部用戶信息定義為U,全部產(chǎn)品信息定義為P,全部評論信息定義為D.每個文本t(t∈T)中僅含一個用戶和一個產(chǎn)品,具體關系描述為:在文t(t∈T)本中用戶u(u∈U)針對產(chǎn)品p(p∈P)發(fā)表了評論d(d∈D).
本文中t(t∈T)采用{u,p,d}的結構,將u(u∈U)和p(p∈P)按照均勻分布隨機初始化為詞向量u*和p*.將評論d并按照符號分割成n個單詞,其中d={w1,w2,w3,…,wn},通過預訓練的Glove[9]將單詞轉(zhuǎn)化為詞向量,若D中單詞詞頻小于5則將該單詞設置為UNK對應的詞向量.將d(d∈D)中單詞數(shù)用零補成D中最長文本單詞數(shù)l(n≤l),最后d(d∈D)表示成l×m的詞向量矩陣d*,其中m是詞向量的維數(shù),如公式(1)所示,最后將t(t∈T)表示為{u*,p*,d*}.
(1)
LSTM只能從前向后處理文本信息,這雖然合乎人們的閱讀習慣,但一個詞不但與它之后的文本存在聯(lián)系,與其前面文本也有關聯(lián),BLSTM從文本的兩端來處理文本信息,最后合并結果得到所需的文本特征,這更符合文本的語義結構.本文采用DBLSTM模型來進一步挖掘文本更深層特征和語義關聯(lián).
LSTM每個單元如公式(2)-公式(7)所示:
ft=σ(Wf·[htt-1,wt]+bf)
(2)
it=σ(Wi·[htt-1,wt]+bi)
(3)
(4)
(5)
ot=σ(Wo·[htt-1,wt]+bo)
(6)
htt=ot*tanh(ct)
(7)
式中ft,it,ot分別對應遺忘門,輸入門以及輸出門,wt是t時刻輸入的單詞向量,ct是t時刻單元的狀態(tài),htt表示t時刻LSTM的輸出,htt-1是t-1時刻LSTM的輸出.
BLSTM每個單元如公式(8)-公式(10)所示:
(8)
(9)
(10)
DBLSTM每個單元如公式(11)-公式(13)所示:
(11)
(12)
(13)
本文通過self-attention來捕捉對最終情感分類影響最大的文本特征.如公式(14)-公式(16)所示:
(14)
(15)
(16)
該模塊是網(wǎng)絡的最后一層,主要任務是將文本向量映射到一個C類向量空間中,考量到文本向量與分類元數(shù)據(jù)的關聯(lián),在傳統(tǒng)的邏輯回歸分類器的基礎上為文中每類分類元數(shù)據(jù)(即用戶信息和產(chǎn)品信息)配置特定的權重和偏差,具體分類器模塊如公式(17)和公式(18)所示:
(17)
y=softmax(y′)
(18)
傳統(tǒng)的邏輯回歸分類器用文本權重Wd和偏差bd來對文本特征d1進行處理,考慮到分類元數(shù)據(jù)對分類結果的影響,本文在此基礎上添加分類元數(shù)據(jù)權重W*(包括用戶權重Wu和產(chǎn)品權重Wp)和分類元數(shù)據(jù)偏差b*(包括用戶偏差bu和產(chǎn)品偏差bp)來共同對d1進行處理.處理結果y′通過softmax層進行概率化得到最終分類結果y.W*和b*是由上下文感知注意力將分類元數(shù)據(jù)中與文本向量關聯(lián)度高的部分通過加權的形式計算得出,以W*為例,具體如公式(19)-公式(21)所示:
(19)
(20)
(21)
其中q是全部用戶向量u*(u*∈U)和全部產(chǎn)品向量p*(p*∈P)的連接向量(本文遵循先用戶向量后產(chǎn)品向量的連接方式),結構為q=[U;P];h是權重向量,經(jīng)隨機初始化后在訓練過程中隨評論文本的輸入進行調(diào)整,包含與評論文本相關的信息,又稱它為上下文向量.由上下文感知注意力計算h和zi的相似度得到權重ai,B={b1,b2,…,bd}是在訓練過程中可以調(diào)整的基向量.最終將W*表示成全部基向量B的加權和的形式.
模型訓練的目標就是通過不斷減小損失函數(shù)來調(diào)優(yōu)模型參數(shù),本文采用最小交叉熵損失函數(shù),損失函數(shù)如公式(22)所示,其中N是總文本數(shù),C是分類類別數(shù),pj為實際類別,yj為預測類別,λ‖Θ‖2為正則化項.
(22)
本文實驗基于Facebook的Pytorch深度學習框架,它計算圖是動態(tài)的,用戶可以實時調(diào)整計算圖,同時Pytorch中集成了多種神經(jīng)網(wǎng)絡模型,這些模型中的參數(shù)是自動求導的,可以輕松實現(xiàn)反向傳播.本文將相關實驗配置列于表1所示.
表1 實驗平臺設置Table 1 Experimental platform settings
本文選用Tang等[6]在2015年公開的三個數(shù)據(jù)集,其中Yelp2013和Yelp2014是點評網(wǎng)站數(shù)據(jù)集中2013年和2014年的餐廳數(shù)據(jù),IMDB是電影網(wǎng)的影評數(shù)據(jù)集.其中評分越高則情感越趨于積極,反之情感則趨于消極.數(shù)據(jù)集中訓練集、驗證集、測試集比例為8:1:1,其他信息列于表2.
表2 Yelp2013、Yelp2014和IMDB數(shù)據(jù)集信息Table 2 Yelp2013、Yelp2014 and IMDB dataset information
表3是實驗相關參數(shù)的說明,本文將DBLSTM每層單元數(shù)設置為256,詞向量維數(shù)設置成300,分類元數(shù)據(jù)維數(shù)設置成64,訓練過程采用Adam來更新參數(shù),為防止過擬合,在訓練過程中使用Dropout和Early stopping正則化方法.為了防止梯度爆炸,使用梯度裁剪(gradient clipping)來控制訓練進程.
表3 實驗參數(shù)設置Table 3 Experimental parameter settings
為了驗證模型的有效性,實驗中采用精確率(Accuracy)和均方誤差(RMSE)作為衡量指標.Accuracy是對模型正確分類能力的評估,準確度越高效果越好.如公式(23)所示,其中N是樣本集總文本數(shù),T是全部預測正確的文本數(shù).RMSE是對真實值和預測值之間差異的衡量指標,其值越小效果越好.如公式(24)所示,N是樣本集總文本數(shù),gdi是實際情感極性,pri是預測情感極性.
(23)
(24)
1)Majority:統(tǒng)計訓練集的情感類別,將其中概率最大的情感類別視作測試集的情感類別.
2)SSWE[16]:用特別訓練的詞向量作為輸入特征,用SVM分類器進行分類.
3)Trigram:使用unigrams和trigrams作為特征,SVM作為分類器進行訓練.
4)PV[17]:將PVDM算法應用于情感分類中.
5)UPNN[6]:利用CNN來對詞向量進行進一步的特征提取,在詞嵌入層和池化層加入用戶信息和產(chǎn)品信息作為特征來進行文本情感分類.
6)NSC+UPA[18]:利用分層LSTM提取文本特征,在每層LSTM中間加入注意力機制計算文本特征與用戶信息和產(chǎn)品信息的相關度,最后進行分類.
7)DUPMN[19]:由雙層LSTM對文本進行處理,由雙記憶網(wǎng)絡對用戶信息和產(chǎn)品信息分別進行處理,最后結合處理后得到的用戶信息和產(chǎn)品信息進行分類.
為了驗證本文模型的效果,本節(jié)首先列出本文模型與基線模型的對比結果,其次對本文模型部分替換來進行對比.
表4 不同模型的分類結果Table 4 Classification results of different models
由表4可以看出,大部分模型在Yelp2014上效果相對較好,Yelp2013次之,IMDB最差.這是因為Yelp2014和Yelp2013是五分類且Yelp2014數(shù)據(jù)量略多于Yelp2013,IMDB最小且為十分類.這符合分類規(guī)律,數(shù)據(jù)量越多則相對包含更多的文本特征,分類類別數(shù)越少越容易正確分類.在所有的對比模型中,Majority效果最差,因為這種方法基本不含文本特征,這也說明文本特征提取對情感分類有很大的影響.融合分類元數(shù)據(jù)的模型(UPNN、NSC+UPA、DUPMN)效果普遍優(yōu)于傳統(tǒng)的分類方法(Majority、PV、Trigam、SSWE),由此可以看出分類元數(shù)據(jù)對情感分類具有正面影響.本文的模型在三個數(shù)據(jù)集上都表現(xiàn)出比基線模型更好的效果,這說明本文的DB-A-CC模型中的DBLSTM結合self-attention的特征提取結構和融入分類元數(shù)據(jù)的自定義分類器結構有一定的可行性.
為了進一步說明本文的特征提取結構和自定義分類器模塊的效果,以Yelp2014數(shù)據(jù)集為例,表5將DBLSTM分別替換成目前比較先進的GRU、LSTM、BLSTM等,并列出有無self-attention層時的模型效果,表6替換分類器模塊來進行對比.
表5 不同編碼網(wǎng)絡的分類結果Table 5 Classification results of different coding networks
由表5每一列來看,(B)LSTM的性能略優(yōu)于(B)GRU,這是因為(B)LSTM比(B)GRU多一個門結構,所以能關注更多的文本特征.雙向網(wǎng)絡結構效果要優(yōu)于單向網(wǎng)絡,因為雙向網(wǎng)絡能提取兩個方向上的信息.而本文采用的DBLSTM要比單向網(wǎng)絡高約2個百分點,比雙向網(wǎng)絡高約1個百分點,這初步驗證了深度網(wǎng)絡對特征和語義關系更強大的捕捉能力.
表6 不同分類器模塊的分類結果Table 6 Classification results of different classifier modules
從每一行來看,包含self-attention層的模型要比不含self-attention層的模型準確度高約9個百分點,這說明self-attention層能令模型能獲得更好的效果.由表6可以看出,不含任何分類元信息的DB-A模型效果最差,只在權重包含分類元信息的DB-A-W模型和只在偏差包含分類元信息的DB-A-B模型效果比DB-A模型準確度高約5個百分點,本文提出的在權重項及偏差項均融入分類元信息的分類器模塊DB-A-CC比DB-A模型的準確度高約9個百分點,比DB-A-W和DB-A-B模型準確度高約4個百分點.這說明分類元數(shù)據(jù)對分析情感有一定作用,本文自定義的分類器模塊對提高分類效果有一定的幫助.
為了進一步挖掘文本更深層特征和語義關聯(lián),本文提出了DB-A-CC模型,首先將詞向量輸入到DBLSTM網(wǎng)絡中來挖掘其深層特征,然后由注意力層進一步對重要特征進行篩選,最后將文本特征通過自定義分類器來分類.本文沒有將分類元數(shù)據(jù)直接作為特征與文本向量進行拼接,而是利用上下文感知注意力機制將分類元數(shù)據(jù)融入到分類器模塊的參數(shù)中.通過相關實驗驗證,本文的模型與主流模型相比效果有所提高;本文引入的DBLSTM結合self-attention的網(wǎng)絡和分類器模塊均能夠有效提高模型精度.下一步將繼續(xù)探討分類元數(shù)據(jù)對建模的影響和情感分類模型的應用場景.