邵 輝
(廣東科學技術職業學院計算機工程技術學院,珠海 519090)
情感分析(sentiment analysis)是指人們對各種服務、產品,包括其屬性的情感、評價和觀點等的分析研究,又被稱為觀點挖掘[1]。傳統的文本情感分析[2?4]重在對句子、文檔級別進行分析,得出文本中主要觀點所表達的情感傾向,通常分為積極、中立以及消極這三種。但互聯網普及之前,情感分析的相關研究成果很少,一是因為收集情感文本語料存在困難,很難獲取所需要的文本語料。二是文本處理、分析方法達不到應用要求。進入新世紀后,互聯網迎來爆發式增長,基于此,各種海量的文本信息在互聯網上不斷出現,特別是社交領域和電商平臺,促使情感分析研究快速發展。
在社交領域和電商平臺等,篇幅短小的短文本是互聯網用戶經常使用的。短文本文字有限,但往往包含明確的觀點,特別是在社交軟件中,更是經常出現帶有用戶直接偏好的短文本,這些都非常有利于情感分析領域的研究。當前,情感分析研究已經發展到涉及社會的方方面面,互聯網上每天都有無數的短文本產生,對短文本的情感分析工作可以讓政府掌握輿情,及時掌握社會大眾的訴求,以便于保證社會的穩定和諧;可以讓企業和單位了解用戶對服務和產品的意見,以便于做出更好的服務和產品。由此可見,短文本情感分析工作是十分有意義的。本文以短文本為研究對象,從目標級的情感分類角度提出了一種基于膠囊模型的方法。
目標級的情感分類(aspect?based sentiment classification,ABSC)與情感分析(SA)不同[5],其重在發現文本中實體方面有關的情感。例如對于評論文本,就不同于以往對整句做出情感分析,而是根據句中不同的實體分別做出不同的情感分析,如此一個短文本評論就可能有多個情感極性。比如,“今天一位朋友請我們吃飯,飯菜的味道還可以,但是人太多了,我們等了很久才吃上,而且價格也不便宜。”從這個例子可以看出來,此評價帶有三個實體方面的情感傾向:一是餐廳的味道還可以,這是積極的情感傾向;二是等待的時間太久,這是負面的情感傾向;三是價格太貴,這也是消極的情感傾向。如果是情感分析(SA)任務,那就不會有這么多情感極性分析,可能就這個文檔或整句給出一個情感極性,那就會忽略其它包含在文檔或整句中的情感,只有目標級的情感分類才能做到更細粒度的要求。
目前ABSC 相關研究中,卷積神經網絡[6]、循環神經網絡[7]和循環自編碼模型[8]等神經網絡模型已經取得了很好的效果,但是目前存在數據集標注成本高昂、有時需要附加的語言知識輔助等問題。膠囊網絡出現后,對解決上述問題起到了很好的作用。膠囊網絡由一組神經元構成,是基于動態路由的結構[9]。膠囊利用動態路由算法完成參數互相傳遞,每個類別的語義由高層膠囊的輸出向量來表示;每個實體的實例化參數由激活向量來表示;每個情感極性的預測概率則由向量長度來表示。文本分類中應用膠囊網絡是Zhao 等[10]第一次實現,發現膠囊網絡不僅能保持靈活的表達能力,同時提高了編碼的有效性;Chen 等[11]提出了一種遷移膠囊網絡模型,用于將文檔級別的知識遷移到面向目標的情感分類。
在前面工作的基礎上,本文設計的膠囊模型第一利用BERT預訓練模型充分挖掘文本蘊含的情感語義信息,使模型具有更加豐富的情感語義表達;第二利用多頭注意力機制讓各類特征進行交互,抽象更深層次的上下文內部語義關聯;第三采用膠囊網絡生成最終的文本表征,從而實現了更好的短文本細粒度情感分類。
給定上下文嵌入[12],其由n個詞構成上下文序列s={w1,w2,…,wn}。再給定目標嵌入,其由k個目標構成目標序列,t={a1,a2,…,an},很顯然,a是s的一個子序列。由此本文的目標可以表示為pol=fpol(s,ai),其中fpol是非線性變換函數。本文設計的膠囊模型如圖1所示,分為詞嵌入層、特征提取層、注意力編碼層和膠囊層,共四層。

圖1 膠囊模型各層
在詞嵌入層使用BERT預訓練模型,將包含n個詞的上下文序列轉換成s={v1,v2,…,vn},其中vi表示上下文序列第i個詞的d維向量,句子的輸入詞向量矩陣則是S;同理,目標實例則轉換為T={vα,vα+1,…,vα+m-1},其包含m個詞,形成目標詞嵌入序列。其中vi表示目標實例第i個詞的d維向量。
在特征提取層,對于上下文序列形成的詞向量矩陣,其中的每個詞的依賴關系利用LSTM 進行建模,充分在BERT 預訓練模型的基礎上對隱含語義進行挖掘,得到隱藏狀態序列Lh={l1,l2,…,lk},形成上下文序列的高階特征;對于目標詞序列,其中屬性實例的各詞依賴關系也利用LSTM 進行建模,同理充分對隱含語義進行挖掘,得到隱藏狀態序列Th={t1,t2,…,tm},最后也形成目標詞序列的高階特征。
在注意力編碼層,上下文序列、目標詞序列均采用多頭注意力完成注意力編碼。多頭注意力機制可以簡單有效地對上下文依賴關系進行抽象,并捕獲句法和語義特征。本層繼續對上層輸入表示做進一步挖掘,并生成兩類輸出特征。
最后在膠囊層,對兩個多頭注意力的輸出Ok和Om進行封裝加工,最后轉換為矢量膠囊集合。膠囊網絡確定彼此關系是依據動態路由協議,利用反復迭代的方式直到收斂成功。在注意力編碼層,因其輸出只能表達局部特性,無法對句子級別進行全局語義表示,因此本層在水平方向對注意力編碼層的輸入采用全局最大池化進行壓縮,使得輸出特征在各子空間內聚合。同時利用squash 函數將膠囊向量的模長壓縮到1以內,用來表示該特征存在的概率。最后最終情感分類輸出層由多類膠囊構成,完成每個情感極性分類。
本文評測標準數據集采用semeval2014 的餐廳評論數據集,對于不同的目標實體,分成三類情感極性:積極,中性和消極。此數據集中有極少量數據標記為沖突,將其予以刪除。數據集的情況如表1所示。

表1 餐廳評論數據集 單位:個
本模型采用預訓練BERT,其維度設置為768。為保證性能,學習率設為2e-5,動態路由迭代次數設置為7,多頭注意力頭數設置為8。模型最后利用分類精度和F1值來評價模型性能,并同兩個基線模型RAM、TransCap 進行比較,結果如表2 所示。從表2 可知,膠囊模型的分類精度和F1值均高于RAM和TransCap。

表2 對比結果
從實驗結果看,本文采用的膠囊模型,其網絡深度的有效增加提升了模型性能;采用預訓練模型BERT也提高了分類精度,并且對參數微調能可繼續提高模型性能;采用膠囊模型則不僅有效提高了分類精度,而且F1值也得到了不小的提升,這說明本文模型對短文本的細粒度情感分類是有效的。