杜孟洋,王紅斌,普祥和
(昆明理工大學 信息工程與自動化學院,昆明 650504;昆明理工大學 云南省人工智能重點實驗室,昆明 650504;昆明理工大學 云南省計算機技術應用重點實驗室,昆明 650504)
方面級情感分類(aspect-level sentiment classification,ASC)是情感分析的一個細粒度子任務[1-2],目的是確定給定句子或評論中每個方面實體的情感極性(消極、中性或積極).例如,餐館數據集中的一條評論“The price is reasonable although the service is poor.”,price和service是評論中的兩個方面實體即方面詞,reasonable和poor是描述這兩個方面實體的觀點詞.該評論表達了對價格方面的積極情感,但也傳達了對服務方面的消極情感.
方面級情感分類技術廣泛用于分析各平臺的在線帖子及評論,以幫助商品生產商理解消費者的需求或提高消費者對產品體驗的能力,指導制造商進行產品改進.ASC比傳統的單一句子級情感分類復雜得多,ASC的任務是識別一個句子中多個方面對應的多個情感極性.傳統方法大多數使用帶有手工特征的淺層機器學習模型構建ASC任務的情感分類器[3-4].但人工特征工程的過程耗時、勞動密集型高,分類性能有限.
近年來,隨著深度學習技術的發展,各種基于注意力機制的神經網絡模型在ASC任務中取得了顯著進展[5-8].但這些方法忽略了句子中方面詞與上下文詞之間的句法依賴性.如圖1所示,標記的邊表示句法依賴關系,每個單詞下的分數表示由注意力機制分配的權重分數,方括號中的單詞為方面詞.在該句子中有兩個具有不同情感極性的方面詞falafel和chicken.對于chicken,基于注意力機制的模型錯誤地將高注意力權重分配給單詞but和dried,導致模型預測錯誤.因此,當前的注意力模型可能會錯誤地關注語法上不相關的上下文詞,表明基于注意力機制的模型在方面級情感分類任務中具有局限性.例如,如果模型在這個句子中學習到chicken和fine之間直接的句法依賴關系,而不是與but之間有直接依賴關系,則情況可能會不同.

圖1 方面、注意力和語法之間的關系示例Fig.1 Example of relationship between aspect,attention,syntax
為利用單詞之間的句法依賴關系,Zhang等[9]在依賴關系樹上構建了一個圖卷積網絡(graph convolutional networks,GCN),但仍存在一些局限性: 1) 該模型忽略了句子中的詞性信息,因此不能很好地學習到方面詞及與該方面詞有關聯的單詞的詞性信息;2) 該模型未考慮建立方面詞與觀點詞之間的聯系,即未利用詞性信息充分學習單詞間的句法依賴關系;3) 預測一個方面實體的情感極性需要對該方面有用單詞的情感進行綜合考慮,但該模型未考慮用詞情感的結合表示方面詞的情感.例如,評論“The price is reasonable although the service is poor.”中,能表示price和service這兩個方面實體的情感分別應該是reasonable和poor這兩個單詞的情感,而不僅是方面實體向量的表示.因此,這些局限導致模型的性能欠佳.
針對上述不足,本文通過對大量的評論數據進行分析,發現一個句子中的方面實體一般都為名詞詞性,表示方面詞情感的單詞即觀點詞一般多為形容詞詞性或副詞詞性,且名詞與形容詞或副詞修飾詞之間有一定的句法依賴關系.因此,通過分析本文提出一種融入詞性自注意力機制的方面級情感分類方法.該方法首先在句子向量嵌入的同時考慮融入句子的詞性嵌入向量,使模型能更準確地學習句子中關鍵單詞的詞性信息,如方面詞和觀點詞的詞性信息;其次,為充分利用單詞之間的句法依賴關系,在句子的詞性嵌入向量上利用自注意力機制使模型學習到單詞詞性之間的句法依賴關系,然后將其融入句子嵌入向量中,使模型能學習到方面詞與該方面詞相關上下文單詞的語法信息以及它們之間的依賴關系;最后,計算出句子中每個單詞的情感分數,通過聚合單詞情感獲得特定方面實體的情感.
ASC是情感分析的一個重要分支,旨在識別句子中每個方面實體的情感極性.方面級情感分類本質上屬于自然語言處理(natural language processing,NLP)領域的分類問題.傳統方法首先會定義情感詞典[10]、語法規則等一系列特征,然后采用支持向量機(support vector machine,SVM)[3]、樸素Bayes[11]等分類器進行分類.這種方法雖然在特定領域性能良好,但通常需要耗費大量的人工成本.與傳統機器學習方法相比,深度學習方法在方面級情感分類上性能更好.卷積神經網絡(convolutional neural networks,CNN)[12-13]在捕獲句子中潛在的語義信息方面性能良好.與CNN相比,循環神經網絡(recurrent neural network,RNN)[14]可以捕獲句子間的上下文依賴關系,對給定方面與上下文單詞之間的相關性進行建模,有利于對特定方面的情感極性進行分類.因此,RNN廣泛應用于方面級情感分類任務中.
方面詞的情感極性通常由方面詞周圍的上下文單詞確定,由于RNN無法準確計算給定方面詞周圍的每個單詞對情感分類的重要性,于是引入了注意力機制有效捕捉上下文單詞相對于給定方面詞的重要性,因此,現有模型主要將RNN和注意力機制相結合以實現方面級情感分類[5-6,15-17].Ma等[5]利用長短期記憶網絡(long short-term memory,LSTM)和注意力機制交互學習方面及其上下文單詞的注意力權重,以獲得每個方面及其上下文的精確表示,從而有效區分句子中不同方面的情感極性;Qiu等[6]先利用雙向門控循環單元(BiGRU)網絡對句子進行編碼,然后通過自注意力機制對句子和表情符號的向量表示進行特征提取,以提高分類精度;Song等[18]提出注意力編碼器網絡(attentional encoder network,AEN),采用多頭注意力建模方面詞與上下文的關系.盡管基于注意力機制方法已經在ASC任務中取得了良好的性能,但由于缺乏對句法信息的利用,當句子成分較復雜或句中存在多個方面詞時,很難對目標方面詞的情感極性做出準確判斷.因此一些研究者將圖卷積網絡(GCN)應用到ASC任務中以克服這種限制.Zhang等[9]提出了在句子依賴樹上使用GCN為方面級情感分類任務挖掘句法信息,利用了單詞之間的語法信息和依賴關系;Zhou等[19]使用外部構造的知識圖譜嵌入與句法依存關系,利用兩種不同結構的GCN得到了上下文詞節點與給定方面詞之間的語義關系;Li等[20]提出了一種Dual GCN模型分析一個給定句子的語義信息和句法結構,還提出了一種正交正則化以及差分正則化獲得更好的語義表示;Zhong等[21]從多個不同的角度捕捉情感特征表示,其中一個角度利用GCN提取句子的語法特征學習特定方面的表示向量,獲得基于語法的特征表示向量;Xu等[22]提出了一種混合圖卷積網絡(HGCN)合成自成分樹(由句子的短語構成)和依賴樹的信息,探索了連接兩種語法解析樹的方法,以豐富句子的表示.
雖然方面級情感分類任務目前已經取得了較大進展,但現有的方面級情感分類方法未考慮到句子中的詞性信息,從而不能利用詞性信息充分學習單詞間的句法依賴關系,導致模型的性能不理想.因此,本文使用詞性嵌入層獲取詞性信息,通過詞性信息模型能更準確地判斷方面詞和觀點詞,并利用自注意力編碼層學習方面詞與觀點詞之間的句法依賴關系,同時利用GCN學習更深層的語法信息和遠程詞間(句子中距離相對較遠的單詞)的依賴關系,最后利用單詞情感分數層對方面詞進行情感分類.
本文模型的總體框架如圖2所示.由圖2可見,該模型主要包含單詞嵌入層、詞性嵌入層、自注意力編碼層、全連接層、雙向LSTM層、圖卷積網絡層、特定方面的特征表示層、注意力機制層、單詞情感分數層、情感預測層等模塊.

圖2 模型總體框架Fig.2 Overall framework of model
給定一個由n個單詞組成的句子,句子表示為W={w1,w2,…,wτ+1,…,wτ+m,…,wn-1,wn},句子中包含一個從(τ+1)標記開始的由m個單詞組成的方面實體,wi表示句子中第i個單詞.每個單詞通過嵌入矩陣E∈|v|×d嵌入到一個低維實值向量空間[23],其中|v|表示詞匯表的大小,d表示單詞嵌入的維度,則得到的句子嵌入向量用T∈n×d表示為

(1)

使用Stanford NLP詞性標注工具[24]得到輸入句子的詞性標注序列,例如,評論“The price is reasonable although the service is poor.”詞性轉換后句子中每個單詞對應的詞性表示為“[(‘The’,‘DT’),(‘price’,‘NN’),(‘is’,‘VBZ’),(‘reasonable’,‘JJ’),(‘although’,‘IN’),(‘the’,‘DT’),(‘service’,‘NN’),(‘is’,‘VBZ’),(‘poor’,‘JJ’),(‘.’,‘.’)] ”.隨機初始化一個詞性嵌入矩陣Epos∈|s|×d,其中|s|表示隨機初始化的詞匯表大小,d表示詞性嵌入的維度,本文設置其與上文單詞的嵌入維度相同(300維),由此得到輸入句子的詞性嵌入向量表示P∈n×d為

(2)

詞性嵌入后使用一個自注意力機制層獲取詞性之間的句法依賴關系,如名詞與形容詞之間的詞性依賴關系.自注意力機制表示為
Att(Q,K,V)=ω(QKT)V,
(3)
其中: Att(Q,K,V)為得到的自注意力值,Q∈nq×dq,K∈nk×dk,V∈nv×dv分別為查詢向量矩陣、鍵向量矩陣和值向量矩陣,這3個矩陣中每行分別表示一個對應的向量,Q,K,V是通過把輸入序列P分別乘以3個矩陣Wq,Wk,Wv得到,dq,dk,dv分別為Q,K,V中向量的維度,nq,nk,nv分別為Q,K,V中向量的個數;激活函數ω(·)通常表示為對QKT施加激活函數ω(·)后得到各單詞與其上下文單詞之間的相似度分布值;ω(QKT)與V∈nv×dv相乘后得到Att(Q,K,V),即值向量的加權和,權值即各單詞與其上下文單詞之間的相似度分布值.
本文將經過自注意力機制后的詞性嵌入向量記為詞性自注意力嵌入向量S∈n×d,用公式表示為

(4)

為實現更準確的方面級情感分類,需要讓模型學習單詞之間的句法依賴關系,同時更好地建立方面詞與觀點詞之間的聯系.因此,本文將句子向量與經過自注意力機制后的詞性向量相融合.即將上文得到的句子嵌入向量T與詞性自注意力嵌入向量S做一個拼接操作,將拼接后的向量輸入一個全連接層得到向量表示C∈n×d,用公式表示為
C=(T⊕S)W+b,
(5)
其中⊕表示拼接操作,W表示全連接層,b表示偏置矩陣.
將得到的向量C輸入BiLSTM層捕獲每個單詞的上下文信息,得到對應的隱藏層狀態向量Hc為

(6)

GCN實際上與卷積神經網絡(CNN)的作用相同,即一個特征提取器,但它的對象是圖數據.對于具有k個節點的給定圖,通過枚舉該圖得到了一個鄰接矩陣A∈k×k.為方便,本文將節點i的第l層的輸出表示為其中表示節點i的初始狀態.Aij為節點i與節點j在鄰接矩陣中的表示.對于是節點i的最終狀態.在節點表示上操作的圖卷積記為

(7)
其中Wl為線性變換權值,bl為偏置項,σ為ReLU非線性函數.
由于圖卷積過程只對近鄰節點的信息進行編碼,因此圖中的一個節點只能受L層GCN中L步內相鄰節點的影響.這樣句子依賴樹上的圖卷積為句子中的一個方面詞提供了語法約束,基于句法距離識別描述性單詞即觀點詞.此外,GCN能處理一個方面詞的極性被非連續單詞描述的情況,因為依賴樹上的GCN可以將描述該方面詞的非連續單詞收集到更小的范圍,并通過圖卷積正確地聚合其特征.例如,圖1所示的句子中,方面詞falafel被兩個非連續的觀點詞cooked和dried描述,這兩個單詞在句子中與方面詞的距離分別為3和5,但基于句法距離這兩個單詞與方面詞的距離分別為1和2,這3個單詞的距離被拉近,在GCN的鄰接矩陣中它們會被收集到更小的范圍內聚合其特征.因此,本文使用GCN學習句法信息與遠程詞的依賴關系.
注意力機制和CNN對方面詞及其上下文詞有語義對齊的固有能力,因此被廣泛應用于方面級情感分類任務中.但這些模型缺乏一種機制解釋相關的句法約束和長期的詞依賴性,因此可能會錯誤地識別出語法無關的上下文詞,并將其作為判斷方面詞情感的關鍵信息.為解決該問題,本文在句子的依賴關系樹上使用一個GCN,使模型能更好地學習句子語法信息與單詞間的依賴關系.本文在構造了給定句子的依賴樹后,首先根據句子中的單詞得到一個鄰接矩陣A∈n×n,然后按照文獻[25]中的自循環思想,對每個單詞都手動設置為相鄰,即A的對角值均為1.將BiLSTM的輸出向量Hc作為圖卷積網絡的輸入,即H0=Hc,最后用具有歸一化因數的圖卷積網絡更新每個節點的表示,用公式表示為

(8)

(9)

(10)


(11)


(12)

(13)
其中qi∈是第i個單詞的位置權重.經過L層GCN的最終向量表示為

(14)

在該層中,本文屏蔽了非方面詞的隱藏狀態向量,并保持方面詞的狀態不變,用公式表示為

(15)
本文使用注意力機制的目的是從BiLSTM輸出的隱藏層狀態向量中檢索與方面詞語義相關的重要特征,并據此為每個上下文詞設置一個基于檢索的注意力權重.注意力權重的計算公式為

(16)

(17)

本文用點積計算句子中每個單詞與方面詞之間的語義相關性.式(17)最終得到的是每個單詞相對于方面詞的注意力權重分數.


(18)
其中W1∈2d×2d,W2∈3×2d,b1∈2d,b2∈3均為可學習的參數.
本文使用注意力機制層得到的注意力權重分數聚合單詞的情感分數,最終獲得方面實體的情感極性.注意力權重分數得到與方面詞相關聯的觀點詞的概率分布,本文用描述方面詞的觀點詞的情感聚合表示該方面實體的情感.方面實體對應的情感極性P計算公式為

(19)
其中pi為第i個單詞的情感預測,αi為第i個單詞與方面詞之間的語義相關性.
該模型采用交叉熵損失和L2正則化的標準梯度下降算法進行訓練,用公式表示為

(20)

本文在以下5個公共數據集上進行實驗: TWITTER評論數據集[28],數據集LAP14,REST14,REST15,REST16分別從Semeval2014任務4[29]、SemEval2015任務12[30]和Semeval2016任務5[31]中檢索得到,其中包括兩種類型的數據,即對筆記本電腦和餐館的評論.這些數據集中包含了消極、中性和積極3種不同的情感極性,各數據集信息列于表1.

表1 各數據集信息
在本文實驗中,使用300維預訓練的GloVe向量[32]初始化單詞嵌入.模型的權值均采用均勻分布進行初始化,隱藏狀態向量的維數為300,使用Adam作為優化器,學習率為0.001,L2正則化的系數為105,批處理大小為32,GCN層數設為2.
在模型的性能測試方面,為更好的與基線模型比較,所有實驗結果均采用與基線模型相同的計算方法,采用隨機初始化方法得到3次實驗結果并求平均,使用準確率(ACC)和宏觀平均F1分數作為評價指標,計算公式為

(21)
其中: precision和recall分別表示精確率和召回率;TP表示實際為正、模型預測為正的樣本數量;FP表示實際為負、模型預測為正的樣本數量;FN表示實際為正、模型預測為負的樣本數量;TN表示實際為負、模型預測為負的樣本數量.這些指標常用于方面級情感分類任務[19,33]中,準確率越高或F1分數越高,說明預測性能越好.
為全面評價本文模型的性能,選擇以下基線模型進行性能對比:
1) LSTM[14],使用LSTM的最后一個隱藏狀態向量預測情緒極性;
2) TD-LSTM[14],將方面詞嵌入與上下文詞嵌入相連接,獲得最終的詞嵌入表示,然后用LSTM分別對方面詞的兩側進行建模,得到隱藏層表示;
3) MemNet[27],將上下文視為外部記憶,并受益于多跳架構;
4) IAN[5],交互式地模擬了各方面及其上下文之間的關系;
5) AOA[34],從機器翻譯領域借鑒了過度關注的思想;
6) TNet-LF[35],提出了上下文保護轉換(CPT)保存和加強上下文的信息部分;
7) ASGCN[9],通過圖卷積神經網絡使用外部語法信息,同時獲取與方面詞相關的語法上下文信息.
本文在5個數據集上進行實驗,實驗結果列于表2.由表2可見,本文模型(POS+SA+WSS)在數據集TWITTER,LAP14,REST14,REST15,REST16上的準確率和F1分數始終優于所有的基線模型,其中在數據集REST16上的準確率與基線模型最好的效果也持平,表明了本文模型的有效性.本文模型可以有效學習到方面詞與該方面詞有關聯的上下文單詞的語法信息及其依賴關系,進而捕獲到對情感分類具有重要意義的觀點詞的信息,從而提高方面情感分類器的性能.

表2 不同模型的比較結果
與基線模型相比,在數據集TWITTER,LAP14,REST14,REST15,REST16上,本文模型的F1分數與基線模型最好的效果相比分別提高了0.66%,2.38%,3.37%,4.83%,2.53%,表明除數據集TWITTER,本文模型在其他4個數據集上的F1值均有明顯提升,說明這4個數據集上的句子語法結構比數據集TWITTER上的句子更復雜.其中在數據集REST15上F1分數的提高最多,可達4.83%,說明數據集REST15上的句子語法結構比其他4個數據集上的句子更復雜.同樣,在準確率指標上,本文模型在數據集TWITTER,LAP14,REST14,REST15上均有明顯提升,分別比基線模型最好的效果提升了0.57%,1.48%,2%,0.94%,且在數據集REST16上的準確率也與基線模型達到了持平的效果.
為驗證本文提出的詞性嵌入層(part-of-speech embedding layer,POS)、自注意力編碼層(self-attention encoding layer,SA)、單詞情感分數層(word sentiment score layers,WSS)的有效性,進行消融實驗.以句子嵌入層、雙向LSTM層、圖卷積網絡層、特定方面的特征表示層、注意力機制層為基準(Base),Base加上詞性嵌入層記為POS,POS加上自注意力編碼層記為POS+SA,POS+SA加上單詞情感分數層記為 POS+SA+WSS.實驗結果列于表3.

表3 消融實驗結果
下面從單詞情感分數層的有效性、自注意力編碼層的有效性和詞性嵌入層的有效性3個方面進行消融實驗結果分析.
1) 單詞情感分數層的有效性.去除單詞情感分數層(POS+SA),由表3可見,與本文的最終模型相比,在數據集TWITTER,REST14,REST15,REST16上的F1值分別下降了0.52%,0.98%,1.9%,1.28%;在數據集LAP14上的準確率和F1分數變化均較小,表明模型在數據集TWITTER,REST14,REST15,REST16上能更準地學習到單詞的情感分數,也說明該數據集上的方面詞對應的觀點詞即情感詞大多數由一個單詞組成.
2) 自注意力編碼層的有效性.去除自注意力編碼(POS+WSS),由表3可見,去除后的模型在所有數據集上仍比基線模型高,但與本文的最終模型相比卻均有下降,說明本文的自注意力編碼層有用.與本文的最終模型相比,在數據集TWITTER,LAP14,REST14,REST15,REST16上的準確率分別降低了0.86%,0.65%,0.69%,1.8%,0.97%,F1分數分別降低了1.12%,0.85%,1.73%,5.04%,2.45%,可見在數據集REST15上的下降較多,原因是數據集REST15中詞性嵌入的語法信息較重要,詞性嵌入層之上使用一個自注意力編碼層能更容易學習到方面詞與觀點詞之間的聯系.
3) 詞性嵌入層的有效性.當去除自注意力編碼層和單詞情感分數層(POS)時,相當于只看詞性嵌入層的影響,由表3可見,雖比本文的最終模型有所下降,但此時的模型已經比基線模型在準確率和F1分數兩個指標上都有提升,準確率最高提升1.55%,F1分數最高提升2.03%,只有在數據集TWITTER上的準確率和F1分數沒有明顯提升.由于數據集TWITTER上評論雜亂且包含的隱式方面實體較多,因此詞性標注并未表現出明顯效果.
上述消融實驗的結果表明了本文模型的有效性.
從數據集REST15中隨機選擇一個句子“The food is great and the environment is even better.”,對該句子進行單詞情感分數的可視化,結果如圖3所示.

圖3 單詞情感分數可視化Fig.3 Visualization of word sentiment scores
圖3表示模型學到的每個單詞對應情感分數的分布情況.這句話中兩個方面詞food和environment對應的情感極性均為積極.由分析可得food的觀點詞為great,其表示的情感是積極的;同理,environment對應的觀點詞為even better,其情感極性很明顯也是積極的.由可視化結果得出模型學習到的情感分數中方面詞food及其對應的觀點詞great均是積極的占比最大,方面詞environment及其對應的觀點詞even better的情感分數也是積極的占比最大,除方面詞及與之對應的觀點詞外,模型學習到的其他單詞的情感分數均為中性占比最大,可見模型能準確學習到這句話中每個單詞的情感分數,也能準確學習到與方面詞有關聯的觀點詞的信息,并能準確判斷出其情感極性,驗證了單詞情感分數層的有效性.
綜上所述,針對現有基于注意力機制模型在方面級情感分類問題上忽略了單詞的詞性信息,不能充分利用句子的語法依賴信息,并且現有方法大多數都是用生成詞表示向量預測情感極性,忽略了對方面有用的情感詞綜合考慮的問題,本文提出了一種融入詞性自注意力機制的方面級情感分類方法.該方法首先通過學習句子中單詞的詞性以及單詞之間的句法依賴關系捕獲方面詞與觀點詞之間的句法依賴關系;然后利用GCN更深層地學習句法信息與遠程詞的依賴關系,從而提升模型的整體性能;最后通過聚合句子中與方面實體有關聯單詞的情感預測句子中特定方面的情感極性.實驗結果表明,本文方法在方面級情感分類任務上優于對比方法.