陳閏雪,彭 龑,徐 蓮
(四川輕化工大學 計算機學院,四川 自貢 643000)
情感分析又稱意見挖掘,是對文本進行處理、分析、抽取來挖掘文本的情感傾向。屬性情感分析屬于細粒度的情感分類任務,主要目的是識別上下文中某個屬性的情感極性,如積極、消極的情感。句子“the food is usually good but it certainly isn’t a relaxing place to go”中“food”屬性是積極的情感,而對于“place”是消極的情感,通過提取用戶對特定方面的反饋,反饋的信息有助于企業發現產品的具體缺陷,促使企業對產品的改進。傳統的情感分類算法難以從同一文本中不同方面提取不同的特征。由示例句子可知,距離目標近的詞對目標的影響較大,與目標相關聯的意見表達以塊的結構形式出現。當句子中包含多個目標時,準確的建模和提取這類結構信息是非常關鍵的。
屬性情感分類[1]需要同時考慮句子的上下文和目標屬性的信息。傳統的機器學習方法是將情感分析作為一個文本分類任務,設計有效的特征提取方法訓練分類。Manek等[2]提出基于基尼系數的支持向量機特征選擇的情感分析方法,到達較好的效果。Vo等[3]設計具體的情感詞嵌入和情感詞匯來提取特征,最后進行預測分析。這些方法依賴特征工程的有效性,易達到性能的瓶頸。
近幾年,基于神經網絡的方法可直接將原始特征編碼為連續和低維向量,而不需要復雜的特征工程。Tang等[4]提出TD-LSTM模型,采用LSTM對方面的左上下文和右上下文進行建模,最后將左右的輸出拼接起來作為最后的預測輸出。該方法沒有考慮目標實體的屬性,當句子中存在多個目標實體時,難以對其進行精確的分類。
Chen等[5]加入注意力機制來加強各目標屬性對分類的影響,關于注意力機制普遍采用求向量的均值來學習上下文的注意力權重。Ma等[6]在注意力機制的基礎上進一步提出了雙向注意力機制,該機制額外學習注意力權重和上下文詞之間的關系。這類方法沒考慮到目標屬性,會導致一些目標屬性和上下文關聯的信息丟失。
針對以上問題,本文提出一種基于神經網絡的多注意屬性情感分析模型。采用雙向長短時記憶網絡來提取上下文和目標屬性的關聯,加入了一種位置編碼機制來捕捉與目標相鄰詞的重要信息,結合位置編碼和內容注意力來更好提取上下文和目標屬性的情感分類。
本文提出的模型結合了位置編碼和內容注意力更加充分地學習不同屬性的情感特征信息。整體架構如圖1所示,模型主要由輸入層、上下文層、多注意層和輸出層4部分組成。
給出一個由n個詞組成的句子S={s1,s2,…,sn}和屬性方面列表A={a1,a2,…,ak}以及每個方面對應的句子子序列ai={si1,si2,…,sim},m∈[1,n],多屬性情感分析是對句子中多個特定屬性進行情感極性分析。
2.2.1 輸入層
輸入層將數據集中的單詞映射到低維、連續和實值的詞向量空間,所有的詞向量被堆疊到一個嵌入矩陣Lw∈Rd*|V|,其中d為詞向量的維數,|V|為詞匯量。使用預先訓練好的單詞向量“Glove”[7]來獲得每個單詞的固定嵌入。
2.2.2 上下文層
通過輸入層將單詞向量化,并將其作為上下文層的輸入。在上下文層使用雙向長短時記憶網絡[8](bidirectional long short-term memory,BiLSTM)來提取上下文和目標的關聯,標準的RNN會遇到梯度消失或爆炸的問題,其中梯度可能在長序列上呈指數增長或衰減。所以用BiLSTM單元作為轉換函數,可以更好模擬序列中的長距離語義相關性。與標準的RNN相比,BiLSTM單元包含3個額外的神經門:輸入門、遺忘門和輸出門。這些門可以自適應記住輸入向量,忘記以前的歷史,生成輸出向量。BiLSTM的更新過程如下
(1)
(2)
(3)
(4)
(5)
(6)
2.2.3 多注意層
注意機制[9]是捕捉上下文和目標詞之間相互作用的一種常用方法,普遍采用粗粒度注意機制來學習上下文和目標方面的注意權重,簡單的求均值會帶來一些信息的損失,特別是對于多個目標方面的句子。對此本文提出了一種細粒度的注意機制,通過BiLSTM網絡學習上下文和特征權重,結合位置權重來相互作用。實現步驟如下:
(1)上下文和目標方面特征提取
對于輸入序列S={s1,s2,…,sn}通過BiLSTM提取目標的上下文H∈2d*N和目標屬性Q∈2d*M,如下所示
(7)
(8)
(2)上下文H更新
通過加入位置編碼機制對上下文H進行更新,將式(7)聯合式(17)求出更新后的權重,捕捉位置信息和上下文之間的關聯
H=[H1*w1,H2*w2,…,HN*wN]
(9)
(3)求取上下文和目標方面的交互矩陣
將BiLSTM提取的上下文和目標方面的信息進行矩陣的乘積,提取上下文目標方面的關聯
I=H·QT
(10)
(4)對交互矩陣的行和列分別添加注意力分別得到α和β,然后在對它們求平均使其更加關注中心部分。計算公式如下所示
(11)
(12)
(13)
(14)
2.2.4 輸出層
將得到的注意力矩陣做內積為m,然后將其輸入到一個確定情感極性的softmax層作為最終的輸出,計算如下所示
(15)
p=softmax(Wp*m+Bp)
(16)
其中,p∈C是目標情感分類的概率分布,Wp,Bp分別是權重矩陣和偏置矩陣。其中設置C=3,代表積極、中性和消極。
2.3.1 位置編碼機制
本文加入了位置編碼機制來模擬觀察,如上下文單詞的權重wt和目標屬性方面的距離為l,lmax表示句子的實際長度。計算公式如下
(17)
先將目標屬性方面的單詞的權重設置為0,然后根據位置編碼機制[10]對上下文進行初始化,這樣得到上下文輸出H=[H1*w1,H2*w2,…,HN*wN]。
2.3.2 強注意力機制
注意力機制主要是通過讓模型自動的學習上下文和當前屬性的關系,能夠挖掘出重要的特征屬性,為了更好學習上下文和目標屬性的信息,本文提出一種強注意力機制。強注意力機制在注意力機制的基礎上再添加注意力,如式(11)~式(14)所示,分別再對行和列添加注意力機制,可以更加關注重要的部分。
本文情感分析模型采用交叉熵損失函數,使用L2正則化避免過擬合問題。通過最小化損失函數來優化模型對文本進行屬性級情感分析任務,如下所示
(18)
其中,λ是L2正則化參數,θ是線性層和LSTM絡的權重矩陣,使用dropout以避免過度擬合。使用小批量隨機梯度下降算法來最小化模型中權重矩陣。
本文提出的模型在SemEval 2014數據集和twitter數據集進行實驗,通過引入預訓練的Glove詞向量進行詞嵌入,其中字典大小和訓練的維度分別是1.9 MB和[25~300]維度。使用顯卡型號為Tesla T4,驅動版本SIM為410.79,CUDA版本為10.0,顯存為15 G,Linux系統服務器,深度神經網絡框架為Pytorch 1.1.0。
laptop、restaurant和twitter數據集分為積極、中性和消極3類標記,按情緒極性分類的分布情況見表1。
表1 實驗數據集
參數配置:從均勻分布U(-e,e),e=0.0001隨機初始化權重矩陣,并將所有的偏置項設置為0,L2正則化系數設置為0.0001,dropout設置為0.2,將每個英文詞匯訓練成25~300維的向量。
將本文的算法和以下4種模型在SemEval 2014和twitter數據集進行實驗,主要用準確率來度量性能。
(1)LSTM模型主要用LSTM網絡對句子進行建模,將最后一個隱藏狀態作為句子的最終分類。單一的LSTM模型對于一些特別的情感分類可以達到一定的效果,但是沒有考慮到上下文和目標信息的關聯。
(2)TD-LSTM[3]模型使用兩個LSTM網絡進行建模,分別提取句子的方面和上下文。然后將兩個LSTM網絡的隱藏狀態連接起來預測情感極性。
(3)AT-LSTM[11]模型主要是通過注意力機制來獲取上下文信息,在LSTM模型中加入注意力機制進行語義建模對情感進行分類。
(4)ATAE-LSTM[11]模型是AT-LSTM模型的擴展,主要是在計算注意力權重的時候引入了特定目標信息。
本文提出一種多注意神經網絡模型,通過聯合注意力機制和位置編碼機制來挖掘上下文和目標屬性的關聯,使模型能對多個目標進行情感分類。
將本文提出的模型與4個基本模型(LSTM、TD-LSTM、AT-LSTM和ATAE-LSTM)進行實驗對比,將模型分別在SemEval 2014和twitter數據集上進行訓練和交叉驗證。在本文的實驗中,將文本映射成25~300維度詞向量,將SemEval 2014數據集(laptop和restaurant)和twitter數據集的實驗結果分別畫成柱狀圖如圖2~圖4所示,實驗結果分別記錄見表2~表4。
表2 laptop數據集上不同文本維度的準確率
表3 restaurant數據集上不同文本維度的準確率
表4 twitter數據集上不同文本維度的準確率
由圖2~圖4可知,本文提出的模型在SemEval 2014和twitter數據集上都取得了較好的效果。通過增加文本維度可以看出不同的算法呈線性增長,標準的LSTM算法在情感分類中只是對一個句子進行分類,隨著文本維度的增加LSTM的分類準確率沒有明顯的提升。相比LSTM算法,AT-LSTM和ATAE-LSTM算法都加入注意力機制,得到更好的分類精度。對于TD-LSTM算法提取上下文和目標之間的關聯,可以挖掘出更多目標的信息,從而得到更好的分類精度。
圖2 在laptop數據集上不同文本維度的準確率
圖3 在restaurant數據集上不同文本維度上的準確率
圖4 在twitter數據集上不同文本維度上的準確率
本文的模型通過加入位置編碼機制和強注意力機制,使模型能夠更好捕捉上下文和目標屬性方面的關聯,并且還可以突出不同位置的單詞對屬性的影響程度。相對采用單向LSTM模型的ATAE-LSTM,本文采用的是雙向長短時記憶模型,這樣可以更好提取上下文特征。在SemEval 2014數據集(laptop和restaurant)和twitter數據集不同領域的數據集上進行實驗,分類準確率分別到達72.45%、80.17%和73.39%。
如圖5所示模型在25維度~300維度上,隨著維度的增加基本呈線性增長。加入了注意力機制的AT-LSTM,ATAE-LSTM算法比LSTM算法在不同維度上分類的準確率都要高,加入注意力機制提高了對目標信息的挖掘。相比AT-LSTM,ATAE-LSTM算法,ATAE-LSTM算法加入特定目標的信息,得到更多的上下文和目標的關聯,增加了分類的準確率,但是對于多目標分類時準確率較差。LSTM、AT-LSTM和ATAE-LSTM算法都使用單向LSTM,TD-LSTM使用雙向LSTM能夠更好提取上下文和目標之間的關聯,使情感分類的準確率更高。本文的算法使用雙向LSTM,添加注意力機制來挖掘上下文和目標之間的關聯,添加位置編碼機制,挖掘出相鄰詞匯的重要性。將注意力機制和位置編碼機制結合進行建模,解決了對句子中多個目標屬性作出比較好的情感分類。
圖5 在laptop、restaurant和twitter數據集上準確率對比
如圖6展示了本文算法在數據集laptop、restaurant和twitter上訓練過程中損失函數的變化情況,從圖中可以看出模型迭代20 000次以后基本收斂,說明算法的可行性。
圖6 本文算法在laptop、restaurant和twitter數據集上訓練的損失函數
為了更好理解本文提出多屬性情感分類的模型。通過對一句話進行權重可視化,其中顏色越深代表權重越大,如圖7所示為測試集中的一條句子,其中有兩個方面“reso-lution”和“fonts”,每一個方面整個句子中其它詞的權重都是不一樣的。
圖7 可視化注意力權重
在處理序列的問題上,循環神經網絡有更好的效果,本文提出的模型加入了雙向長短時記憶來挖掘上下文和目標之間的關聯,比單向的長短時記憶有更好的效果,通過將強注意力機制和位置編碼機制相結合進行建模,可以更好挖掘上下文、目標屬性和目標相鄰詞間的聯系,相比一般的模型有更好的分類準確率。
本文在注意力模型中加入了位置信息、上下文和文本內容的關聯。使用深度模型(如BiLSTM)隱式地捕捉上下文和內容之間的關聯,再結合位置信息捕捉相鄰詞間的依賴關系,構建出能夠對多個目標對象進行情感分析的模型。實驗結果表明本文提出的模型在SemEval 2014數據集和twitter數據集效果較好。
本文的貢獻:
(1)在模型中加入了位置編碼機制,挖掘出與目標詞相鄰詞匯的重要信息。
(2)聯合強注意力機制和位置編碼機制進行建模,提出一種基于神經網絡的多注意屬性情感分析模型對多個目標屬性進行情感分析。
(3)在SemEval 2014(laptop和restaurant)和Twitter數據集進行實驗得到了較好的分類效果。