蔣宗禮,張 靜
(北京工業(yè)大學 信息學部,北京 100124)
情感分類是NLP領域的研究熱點之一,目的是根據(jù)文本的含義和情感表達,將文本分為兩種或多種類型.情感分類在評論網站中有很廣泛的應用,例如IMDB、豆瓣電影、大眾點評等.本篇工作的研究任務是文檔級別的情感分類,它是情感分析和觀點挖掘的基礎任務,它根據(jù)文本中單一的目標或產品來決定該文本的情感極性.傳統(tǒng)的情感分類方法[1-3]是手動地從文本中抽取、設計和選擇一些高質量的特征,然后訓練各種分類器.近幾年來,深度學習方法在NLP領域取得了重大突破,越來越多的研究者關注如何利用深度學習技術提高情感分類的效果.近來的大多數(shù)工作利用了神經網絡去學習低維空間上的文本表征,因為評論文本有很明顯的序列特征,所以處理序列信息的遞歸神經網絡(Recurrent Neural Network,RNN)[4]能夠很好的學習到評論中的情感信息,尤其是它的變體長短時記憶網絡(Long Short-Term Memory,LSTM)[5],通過引入記憶單元和門控機制,緩解了傳統(tǒng)循環(huán)神經網絡出現(xiàn)的梯度爆炸或者是梯度消失的問題,在情感分類領域中取得了較好的效果.隨著Attention 機制[6-9]在圖像分類、機器翻譯等領域的成功應用,越來越多的研究者開始將其引入到情感分類任務中,重點關注對情感分類有明顯影響的單詞或詞語.但是單一的注意力機制難以提取到更豐富的情景語義信息,它很難對一些句法信息、指代信息等進行建模,并不能很好地判別句子的情感極性.
為了解決提取的情感信息單一的問題,本文提出了一種融合用戶信息和產品信息的分層多頭注意力的情感分類模型(Hierarchical User and Product Multihead Attention model,HUPMA),在詞語層和句子層中分別用多頭注意力提取出詞語和句子的情感信息,并且在每個注意力中融入用戶信息和產品信息.本文工作的主要貢獻如下:
(1)提出了一種新的情感分類模型框架,在詞語層和句子層分別使用多頭注意力來學習更長的序列信息,捕捉到更豐富的上下文語境信息.
(2)在多頭注意力中引入用戶和產品信息,在多個子空間上得到更全局的用戶偏好和產品特點對情感評分的影響.
本文分別在公開數(shù)據(jù)集IMDB、Yelp2013、Yelp2014上驗證了模型效果,實驗結果表明,在相同運行環(huán)境下,我們的模型相比于基于單頭注意力的分層網絡模型,在準確率上有所提升.
本文第1節(jié)介紹基于文檔級別的情感分類的相關工作.第2節(jié)介紹模型的基本原理.第3節(jié)是本文的對比實驗以及對實驗結果的詳細描述和分析.最后是對本文工作的總結和未來展望.
文檔級別的情感分類作為情感分析的基礎任務之一,一直是情感分析領域的研究熱點.最早使用的方法是基于情感詞典的方法.基于情感詞典的方法,一般依靠情感詞典的構建和規(guī)則的建立,文獻[10]通過情感詞典及詞性求出文本中情感詞的得分,并將其按特定規(guī)則組合計算,來判斷文本的情感傾向性.李壽山等[11]利用英文種子詞典,借助機器翻譯系統(tǒng),構建了中文情感詞典.情感詞典構建的好壞決定了分類的效果,并且情感詞典的構建依賴于人工統(tǒng)計,耗費大量的人力物力的同時存在著誤差.
另一種情感分類的方式是基于機器學習和深度學習的方法,利用深度學習技術可以自動提取文本的深層特征,使文本情感分類研究得到了進一步的發(fā)展.主流的深度學習網絡包括卷積神經網絡(Convolutional Neural Networks,CNN)[12]和RNN,其中卷積神經網絡通過卷積操作實現(xiàn)對文本的局部信息的捕捉,通過池化操作實現(xiàn)對局部重要信息的提取.Kim 等人[13]將經典的CNN結構應用在情感分類任務上.Xiang Zhang等[14]從字符角度來訓練卷積神經網絡,使網絡不需要提前知道關于語法和語義的信息.但是CNN 只能提取到文本的局部信息,丟失了詞語的順序信息,而詞語的順序信息在文本處理上是不能忽略的.相比于CNN,RNN的內在結構使得它在文本序列建模方面更有優(yōu)勢,能夠很好地捕捉上下文信息.尤其是RNN的變體LSTM 引入了門控機制,緩解了RNN 中梯度消失和梯度爆炸的問題.Tang 等[15]為了對句子之間的關系進行建模,引入自底向上的基于向量的篇章表示方法,首先用LSTM 實現(xiàn)單句表示,再用RNN編碼句子間的內在關系和語義聯(lián)系,采用層次化RNN模型來對篇章級文本進行建模.該模型相比標準的循環(huán)神經網絡模型實現(xiàn)很大的效果提升.Siwei Lai 等[16]提出了RCNN模型,先使用雙向循環(huán)神經網絡得到上下文表示,再經過卷積、池化操作后輸出分類結果.注意力機制(Attention Mechanism)使得模型能夠在訓練過程中高度關注特定的詞語,更好地捕捉句子中的重要成分,提取出更多的隱藏特征.Wang 等[17]采用方面嵌入的方式來生成注意力向量,關注句子的不同部分.Yang 等人[18]提出了分層注意力網絡(Hierarchical Attention Network,HAN)模擬文本的構成方式,對單詞和句子進行分層編碼,并根據(jù)其注意力權重融合成文本表示,不僅捕捉了句子中比較重要的詞語,還給篇章中比較重要的句子賦予更高的權重.實驗表明,結合注意力機制的神經網絡模型在情感分類任務中取得了比傳統(tǒng)方法更好的效果.在網絡評論中,有些詞語是表達用戶情感的,有些詞語則是對產品本身的評價.為了將這些用戶和產品信息引入情感分類任務中,研究學者們在這方面做了很多工作,并且都獲得了一定的提升.唐都鈺等人[19]在CNN網絡的基礎上添加了用戶和產品的偏置矩陣和表示矩陣來表示這些信息.考慮到用戶偏好矩陣訓練比較困難,陳慧敏等[9]在層次網絡中融入用戶和產品的相關信息,考慮了全局的用戶偏好以及產品特點,進一步提高了模型性能.但是上述模型提取到的情感信息相對都比較單一,受Transformer模型[20]的啟發(fā),本文提出一種融合用戶信息和產品信息的分層多頭注意力的情感分類模型HUPMA.首先該模型利用分層多頭注意力,分別在詞語層和句子層中采用不同的隱層向量權重參數(shù),形成指代信息更豐富的注意力權重分布;其次,在多頭注意力中融入用戶信息和產品信息,同時采用不同的用戶向量權重和產品向量權重參數(shù),形成多個子空間下不同的用戶偏好和產品特點對情感評分的影響,從而能夠對指代信息豐富的上下文進行建模,同時挖掘出用戶信息和產品信息在多個維度上的深層特征.
融合用戶信息和產品信息的基于分層多頭注意力的情感分類模型HUPMA 如圖1所示.
模型主要包含了4個部分:詞匯層編碼、詞匯層的多頭注意力機制、句子層編碼、句子層的多頭注意力機制,其中在詞匯層的多頭注意力機制和句子層的多頭注意力機制中融入了用戶和產品信息.首先,在模型的詞語層,利用雙向LSTM計算單詞的向量表示,然后用多頭注意力結合用戶、產品信息來學習單詞的注意力權重分布,進而生成句子的向量表示;在模型的句子層,同樣利用雙向LSTM計算句子的向量表示,用多頭注意力結合用戶、產品信息來學習句子的注意力權重分布,得到文本的向量表示.最后經過一個Softmax層,完成評論文本的情感分類.
本模型采用“詞-句子-文章”的自下而上的層次化結構來表示一篇文本,獲取更豐富的上下文情感特征,既符合人類的閱讀習慣,也緩解了過長的序列導致的長句依賴的問題.LSTM是一種帶門控機制的循環(huán)神經網絡,通常被用于處理序列文本數(shù)據(jù),可以避免傳統(tǒng)的循環(huán)神經網絡的梯度消失或梯度爆炸的問題,另外,LSTM通過引入記憶單元和輸入門、輸出門、遺忘門3種門控機制來捕捉句子的依賴關系和上下文語境信息.
(1)詞語層LSTM網絡
定義文檔中的某個句子si=[xi1,xi2,xi3,···,xin],xij表示第i個句子的第j個詞語,首先將句子中的詞語xij編碼為向量表示wij,通過雙向LSTM編碼wij的上下文,得到隱層表示hi=[hi1,hi2,hi3,···,hin],其中hij∈Rd,d為LSTM 單元輸出向量的維度.每一時刻的LSTM單元的輸入由上一時刻隱藏層的輸出和本時刻輸入的詞向量組成.具體計算方法如下:
(2)句子層LSTM網絡
因為同一評論中不同句子之間有一定的情感聯(lián)系,挖掘這種相互聯(lián)系有助于整個評論文本的情感極性分析,因此本文除了詞語層的LSTM網絡外,還使用一個句子層的雙向LSTM網絡來進一步挖掘句子之間的依賴關系.通過詞語層之后就得到了句子向量si,然后句子層的LSTM網絡將句子向量si編碼為句子層的隱層向量hi.
(1)多頭注意力機制
注意力機制的主要目的是從眾多信息中選擇出對當前任務目標更關鍵的信息.傳統(tǒng)的單頭注意力機制難以提取到更豐富的情景語義信息,進而對評論文本的情感分類的效果也產生了影響,為了從多個子空間上學習更加豐富的情感信息,本文采用了多頭注意力代替?zhèn)鹘y(tǒng)的單頭注意力,如圖2.
圖2 多頭注意力機制
首先將LSTM層產生的隱層向量表示拆分為多個頭,線性變換后然后送入加性注意力層,重復計算head_num次,其中head_num為多頭的個數(shù),最后拼接所有的attention值作為下一模塊的輸入.考慮到不同的用戶、不同的產品會對情感分析造成一定的影響,因此在多頭注意力機制中引入了用戶和產品信息,其中每個head的注意力計算如圖3.
(2)詞語層的多頭注意力機制
不同的詞語對句子的情感表達的重要度不同,為了深度挖掘每個詞語在多個子空間上的情感信息表達,在詞語層引入多頭注意力機制,同時不同的用戶、不同的產品在評論中的情感用詞也有差異,因此,將用戶、產品信息融入到多頭注意力的計算中,計算方式如下:
hij是詞語層的LSTM產生的隱層向量,αij是在考慮用戶信息和產品信息后,句子中第j個詞的權重,度量的是這個詞語在整個句子si的重要程度.αij由式(8)和式(9)計算而來:
其中,eij是向量αij未歸一化時的權重表示,vTw、Wwh、Wwu、Wwp和bw分別表示計算eij時的前饋神經網絡中對應的點積權重、隱層向量權重、用戶向量權重、產品向量權重和偏置,初始賦隨機向量,作為模型訓練的參數(shù).
圖3 加性注意力機制
(3)句子層的多頭注意力機制
和詞語層的多頭注意力機制類似,一條評論文本中的不同句子對最后的情感表達也有著不同的重要度,因此在句子層引入多頭注意力機制,計算方式如下:
hi是經過句子層的LSTM產生的隱層向量,βi是在考慮用戶信息和產品信息后的注意力權重,度量的是某個句子在整個評論文本d中的重要程度.βi由式(11)和式(12)計算而來:
其中,fi是向量βi未歸一化時的權重表示,vTs、Wsh、Wsu、Wsp和bs分別表示計算fi時的前饋神經網絡中對應的點積權重、隱層向量權重、用戶向量權重、產品向量權重和偏置,初始賦隨機向量,作為模型訓練的參數(shù).
本文的任務是對給定的評論文本,判斷其情感極性,是一個情感分類的任務,因此采用交叉熵損失函數(shù)作為代價函數(shù),通過最小化損失函數(shù)來訓練模型,找到最優(yōu)參數(shù).同時,為了避免過擬合,加入了L2正則化作為懲罰項,損失函數(shù)公式如下:
其中,yki表示第i篇評論文本的真實的情感類別,表示模型對第i篇評論文本預測的情感類別,k為情感類別的某一類,以數(shù)字表示.λ表示L2 正則化的懲罰系數(shù),λ越大,懲罰力度越大.θ表示模型中的全部訓練參數(shù).
在模型的詞語層的多頭注意力和句子層的多頭注意力中,對每個頭的注意力都在維度上做壓縮.首先將底層LSTM產生的隱層向量進行維度上的拆分,拆分之后的維度為dhead=dlstm/head_num,其中dlstm為底層LSTM輸出向量的維度,head_num是多頭的個數(shù).然后在維度為dhead的向量上做注意力函數(shù)運算,所以在多頭注意力中雖然需要計算多次,但是相較與之前的單一注意力,整體的計算成本并沒有增加.同時,多個頭之間的注意力計算是相互獨立的,因此可并行運算,進一步提高模型的性能.
為了驗證本文模型的有效性,分別在3個情感分類任務的數(shù)據(jù)集上進行實驗,IMDB、Yelp2013、Yelp2014 這3個數(shù)據(jù)集是Tang 等[19]構建的公開數(shù)據(jù)集.IMDB是用戶對電影評分數(shù)據(jù)集,Yelp2013和Yelp2014是用戶對商家的評分數(shù)據(jù)集.在數(shù)據(jù)預處理階段,本研究采用Stanford CoreNLP[21]實現(xiàn)評論文本中詞語的切分和句子的切分,同時提取數(shù)據(jù)集中的用戶信息和產品信息,預處理后的數(shù)據(jù)集統(tǒng)計如表1.其中IMDB劃分10個類別,Yelp2013和Yelp2014劃分5個類別,級別越高代表評價越好.
將每個數(shù)據(jù)集中80%作為訓練集,10%作為驗證集,剩余10%作為測試集,用Accuracy和RMSE作為模型分類效果的評價指標.采用文獻[9]中用SkipGram模型[22]訓練好的詞向量作為初始化的詞向量,維度為200,此外,用戶和產品信息的維度也設定為200維,并隨機初始化,隨著模型一起訓練.LSTM層的神經元維度設為200維,用Adam[23]算法來優(yōu)化超參數(shù),該算法通過計算梯度的一階矩估計和二階矩估計,能夠為不同的參數(shù)設計獨立的自適應性學習率.然后在驗證集上選擇表現(xiàn)最好的超參數(shù)作為模型參數(shù),最后用測試集測試模型在情感分類任務上的效果.
表1 IMDB,Yelp2013和Yelp2014數(shù)據(jù)集統(tǒng)計數(shù)據(jù)
本文模型將與以下基準模型進行實驗對比.
(1)Majority 將訓練集中出現(xiàn)次數(shù)最多的情感分類標簽作為測試集的預測標簽.
(2)Trigram 以評論文本的一元語法、二元語法和三元語法為特征,以支持向量機(SVM)[24]為分類器,訓練模型.
(3)TextFeature[25]將提取的詞語和字符的N 元語法、情感詞典等作為特征,訓練SVM分類器.
(4)UPF[26]從訓練集中抽取use-leniency特征和相關產品特征,作為Trigram方法和TestFeature方法的特征.
(5)AvgWordvec 用Word2Vec方法獲得訓練集和驗證集的詞語向量表示,然后以詞向量的平均向量為評論向量,然后用這個向量為特征訓練SVM分類器.
(6)NSC+UPA在層次化的文本分類模型中引入了用戶信息和產品信息來提高文檔級別情感分類的效果.
表2列出了HUPMA模型及基準模型的情感分類結果,我們將這些結果分為兩組,第一組是僅僅考慮文本信息的模型,第二組是同時考慮文本信息以及用戶和產品信息的模型.為了驗證分層多頭注意力和用戶產品信息對本文模型的性能影響,將用戶信息和產品信息去掉,得到HUPMA(不含UP)的實驗結果.HUPMA(含UP)一行是融合用戶信息和產品信息的分層多頭注意力的模型分類結果.
(1)分層多頭注意力的有效性
第1組的實驗采用的是不考慮用戶和產品信息的分類方法,包括統(tǒng)計模型、傳統(tǒng)的機器學習模型和神經網絡模型,對比實驗結果可看到,Majority 效果很差,因為它沒有考慮任何文本信息、用戶信息和產品信息,僅僅用一種統(tǒng)計思想尋找頻率最高的情感分類標簽.同樣是基于機器學習的SVM分類器訓練模型,用基于N元語法和情感詞典的TextFeature 比基于平均詞向量的AvgWordvec在IMDB、Yelp2013和Yelp2014三個數(shù)據(jù)集上的情感分類準確率分別高出了9.8、3和4.2個百分點,說明采用了N元語法模型的詞向量能夠利用上下文信息豐富語義特征,比平均詞向量效果更好.NSC模型和NSC+LA模型相比TextFeature在IMDB數(shù)據(jù)集上的情感分類準確率分別提高了4.1和8.5個百分點,在Yelp13數(shù)據(jù)集上的情感分類準確率分別提高了7.1、7.5個百分點,說明神經網絡模型比傳統(tǒng)的機器學習模型在情感分類任務上的表現(xiàn)更好,尤其是加入了注意力機制后,模型效果得到了進一步提升.不考慮用戶信息和產品信息的情況下,本文提出的HUPMA模型(不含UP)在3個數(shù)據(jù)集上的準確率比基準模型均提高了一到兩個百分點,這也驗證了引入分層多頭注意力思想在提取文本上下文信息的有效性.
(2)融合用戶信息和產品信息的有效性
第2組的實驗采用的是考慮用戶和產品信息的分類方法,結果表明,加入了用戶信息和產品信息的模型相比于僅僅考慮評論文本信息的模型分類準確率更高,Trigram模型加入用戶和產品信息后,在IMDB和Yelp2013數(shù)據(jù)集上的分類準確率分別得到了0.5、0.1個百分點的提升,NSC+UPA模型相比NSC+LA模型在3個數(shù)據(jù)集上的分類準確率分別得到了4.6、1.9、3.7個百分點的提升,通過對比可以發(fā)現(xiàn),在神經網絡結構中,用戶和產品信息的引入對模型的提升效果更加明顯.與不考慮用戶和產品信息的HUPMA模型相比,HUPMA(含UP)模型在IMDB數(shù)據(jù)集上的準確率提高了4.3個百分點,而在Yelp2013和Yelp2014兩個數(shù)據(jù)集上的準確率僅提高了2.2個百分點,原因是IMDB數(shù)據(jù)集上的用戶數(shù)據(jù)和產品數(shù)據(jù)相對比較豐富.這一結果驗證了融入用戶偏好和產品特征之后的模型在情感分類上的有效性.
(3)融合用戶和產品信息的多頭注意力模型的有效性
同樣是引入了用戶和產品信息的分層的網絡結構,本文模型HUPMA 比NSC+UPA模型在3個數(shù)據(jù)集上的情感分類準確率分別提升了1.2、2、0.9個百分點.這一結果驗證了融入用戶偏好和產品特征之后的分層多頭注意力模型在情感分類上的有效性.
表2 IMDB、Yelp2013和Yelp2014數(shù)據(jù)集上的情感分類結果
為了驗證本文模型HUPMA的運行時間,在同等運行環(huán)境下,在Yelp2013數(shù)據(jù)集上分別運行單頭注意力模型和多頭注意力模型,得到不同的模型單次迭代的運行時間,如表3.從表中可以看出,多頭注意力模型的單次迭代運行時間和單頭注意力模型的單次迭代運行時間相差不大.
表3 不同模型完成單次迭代的訓練時間(單位:s)
本文提出了一種融合用戶信息和產品信息的分層多頭注意力的情感分類模型,首先,模型采用“詞-句子-文章”的層次化結構來表示一條評論文本,為了從多個視角選擇有用的信息,在詞語層和句子層都引入多頭注意力的思想.然后在每層注意力中融入了用戶信息和產品信息,使模型在多個子空間上得到更全局的用戶偏好和產品特點對情感評分的影響.實驗結果表明,在同等條件下,本文模型在IMDB和Yelp數(shù)據(jù)集上的準確率均優(yōu)于基準模型.在今后的工作中,我們試圖將多頭注意力引入基于Aspect的情感分類任務中,從更豐富的特征空間中識別評論文本中多個實體的情感極性.