張 碩, 卜 巍, 鄔向前
(1 哈爾濱工業大學 計算機科學與技術學院, 哈爾濱150001; 2 哈爾濱工業大學 媒體技術與藝術學院, 哈爾濱150001)
隨著互聯網的快速發展,可以輕松地得到海量帶有觀點的數據。 各種購物平臺、點餐平臺以及社交平臺的興起,人們可以在購物平臺上對所購買的商品進行評價,對消費過的餐廳進行點評,盡情地在社交平臺上表達自己的觀點,對事件的情感態度。對這些飽含大眾情感的內容進行研究,發挖掘這些文本背后隱藏的大眾的情感態度,將幫助購物平臺和點餐平臺等更好地了解購買者的喜好,同時也是對商家的監督。 對社交媒體上大眾對于某些事件的情感分析,可以幫助了解大眾,引導正確的社會輿論。 因此,近年來情感分析在自然語言處理領域的研究非常廣泛。 研究表明:40%的情感分類錯誤是由于在情感分類中沒有考慮目標造成的[1]。 近年來,研究者們開始將研究方向從單純的文本情感分析轉向方面級別的文本情感分析。
本文針對方面級別的情感分析,考慮上下文單詞與方面序列之間的距離,提出了局部文本序列的定義,并提出了一種基于局部注意力的的網絡框架。
研究者們研究了各種基于神經網絡的方法來解決方面級別的情感分類問題。 一些研究者設計了有效的神經網絡,從目標及其上下文中自動生成有用的低維表示,在方面級別情感分類任務中取得了很好的效果,典型的方法是基于LSTM 的神經網絡。Dong 等人通過開發兩個LSTM 網絡來模擬方面目標的左右上下文來解決這個問題,該方法利用這兩個LSTMs 的最后隱藏狀態來預測情緒。 為了更好地抓住句子中的重要部分,Wang 等人使用一個方面詞嵌入,來生成一個注意力向量,集中在句子的不同部分。 Vo 和Zhang 將整個上下文分為目標、左上下文和右上下文三個部分,使用情感詞典和神經池函數生成目標相關特征。 Tang 等人將上下文分為帶目標的左半部分和帶目標的右半部分,分別使用兩個LSTM 模型對這兩個部分建模,利用這兩部分合成的目標特定表示進行情感分類。
局部文本序列:對于給定一個句子s =[w1,w2,…,wi,…,wj,…,wn],和方面序列t =[wi,wi+1,…,wi+m-1],其中方面序列可能包含一個或多個詞。 如圖1 所示, 設局部文本序列為整個文本中,距方面詞中心距離為k的序列片段。 當方面詞為一個單詞時,局部文本序列l =[wi-k,wi-k+1,…,wi,…,wi+k-1,…,wi+k],其中wi為方面詞。 當方面詞為多個單詞時,局部文本序列l =[wi-k,…,wi,…,wj,…,wj+k],其中wi為方面詞的第一個詞,wj為方面詞的最后一個詞。

圖1 局部文本序列示意圖Fig. 1 The chart of local context
網絡整體結構如圖2 所示(與圖的名字不一致),包括詞嵌入層,特征提取層,注意力層以及分類層。
詞嵌入層。 (1)Glove 詞嵌入。 設L∈Rdw×|V|為預先訓練的Glove(Pennington 等人,2014)嵌入矩陣,其中dw為詞向量的維數,為詞匯的數量。將上下文和方面的每個詞wi∈映射到對應的嵌入向量ei∈Rdw×1, 它是嵌入矩陣L中的一列。(2)BERT 詞嵌入。 使用預先訓練的BERT 生成序列的詞向量。 為了便于BERT 模型的訓練和微調,將給定的上下文和目標分別轉換為“[CLS]+上下文文本+SEP”和“[CLS]+方面序列+SEP”,從而作為文本序列的詞嵌入進行模型訓練。
通過詞嵌入模塊,將全局文本序列映射為S ={vs1,vs2,…,vsn},將方面序列映射為T ={vt1,vt2,…,vtm},將局部文本序列映射為L ={vl1,vl2,…,vlk}。其中vti∈Rdw,vsi∈Rdw,vli∈Rdw,dw為詞嵌入維度。

圖2 網絡框架圖Fig. 2 The framework chart of our algorithm
特征提取層。 多頭自注意是一種同時執行多次自注意力的操作。 為了對文本進行特征提取,利用多頭自注意力機制分別對全本文本序列、方面詞序列以及局部文本序列進行建模。 注意函數將Key 序列K ={k1,k2,…,kn} 和Query 序列Q ={q1,q2,…,qm} 映射到輸出序列,其中對全局文本自注意力計算方式如公式(1),局部文本的自注意力計算方式如公式(2),方面序列的自注意力計算方式如公式(3)。

多頭自注意力就是平行地進行多詞注意力計算,將結果拼接到一起作為最終的結果,其中三個序列的計算方式是一樣的,這里只以全局文本為例子,具體計算如公式(4)和公式(5):

除了多頭注意力之外,每一次注意力計算后都包含一個全連接的逐點前饋網絡(Point-wise Feed Forward,PFF)。 共包括兩個線性轉換,以及一個relu激活。 公式如(6)和(7)。

其中:W1∈Rdw×dw,W2∈Rdw×dw是兩個可學習權重,b2∈Rdw,b2∈Rdw是兩個偏置參數。relu為激活函數。
注意力層。 在這一層中,將利用特征提取層得到的結果,以方面序列的輸出作為新的注意力中的Query,全局文本序列的輸出作為新的注意力計算中的Key 以及Value,計算方面序列對全局文本的注意力分數,如公式(8)。 同樣地,以方面序列作為Query,以上一層中局部文本序列的輸出作為Key 和Value,采用多頭注意力的方式計算方面序列對局部文本的注意力分數,并更新局部文本表示,如公式(9)。 之后將更新后的全局文本表示rs以及局部文本表示rl分別作為輸入,通入到PFF 函數中,如公式(10)和公式(11),從而得到最終的全局文本表示以及局部文本序列的表示。

分類層。 將注意力層輸出的全局文本表示和局部文本表示連接到一起,如公式(11),由于分類結果分為積極、消極和中性三個類別,所以將連接后的向量輸入一個三個神經元的全連接層,如公式(12),然后送入SoftMax 函數得到和為1 的三個概率值,如公式(13),概率最大的即為最終的情感類別。

其中:Wl∈R3×2dw和bl∈R3×1分別表示權重矩陣和偏差。
實驗的數據集來自Semeval2014 語義評測任務的任務4 的第四個子任務:方面級別情感分類。 該任務給定一個句子以及句子中包含的一個或多個方面類別,輸出每個方面類別對應的情感分類。 分類分為積極,消極和中性。 數據集一共包括餐廳評論數據集以及筆記本電腦數據集。 本文用到的數據集還包括ACL 14 Twitter 數據集。
“All the money went into the interior decoration ,none of it went to the chefs”,對于這個句子,當方面序列為“interior decoration”時,情感分類為積極;當方面序列為“chefs”時,情感分類為消極。 這些數據集被大多數提出的模型所采用,是方面級別情感分析任務中最流行的數據集,表1 展示了3 個數據集中訓練集和測試集的細節。

表1 數據集統計表Tab. 1 The statistics of dataset
為了能夠評估不同的情感分析算法的行能,對算法的泛化性能進行評估,本文采用該領域常用的評價指標: 準確率(Accuracy) 和綜合指標(F1),其中準確率計算方式如公式(14),F1 計算方式如公式(15):

其中:TP表示被模型預測為正的正樣本;FP表示被模型預測為正的負樣本;FN表示被模型預測為負的正樣本;TN表示被模型預測為負的負樣本。N表示總的樣本數量。
詞嵌入中Glove 的嵌入方法的詞嵌入維數設置為300。 BERT 詞嵌入方法,隱藏層維度設置為768。LSTM 網絡隱藏狀態的維度同樣設置為300,并在訓練期間固定。 為了確保在訓練過程可以學到有用的信息,參數梯度不為0,模型的權重是用Glorot 隨機初始化的[2]。 L2 正則化項的系數λ 為10-3,dropout設置為0.1,Batchsize 設置為32,Adam you 優化器用于更新所有參數。
本文在損失函數中使用了標簽平滑正則化(Label smoothing Regularization, LSR)的。 它懲罰了低熵輸出分布[3]。 LSR 可以通過防止網絡在訓練期間為每個訓練示例分配全0 或全1 概率來減少過度擬合,用平滑的值替換分類器的0 和1 目標,如用0.1 或者0.9 替代0 和1。 利用公式(17)中的q′(k |x) 代替原本的標簽分布q(k |x)。 令u(k) 服從簡單的均勻分布,如公式(16)。

其中,c為情感分類的類別數3,得到了新的標簽分布,如公式(17)。

最終的損失函數依舊采用交叉熵損失函數,但是將真實標簽換成平滑后的標簽,如公式(18)。

其中,q′為平滑后的標簽,p為預測標簽,q為真實標簽。 λ 為l2 正則化項系數,θ為參數。
首先針對局部文本序列的長度進行了實驗,分別取k =1,2,3,4,5。 對應的局部文本序列長度位:3,5,7,9,11。 如表2 所示,可以發現當k =2 或3時,結果最好,也就是局部文本序列的長度為5 或者7 時,模型的效果最佳。 當序列長度過長時,局部文本序列的長度趨近于全局文本序列長度,本文的模型失去了意義;當序列長度過短時,局部文本序列幾乎等于方面序列。 因此,在后續的實驗中, 都采用k =2 來訓練。

表2 局部文本序列長度K 不同取值的對比Tab. 2 Comparison of K in local context length
為了證明本文提出的基于局部注意力的方面級別情感分析網絡(Local Attention Network, LAN)的優越性,將其與以下模型進行了比較,結果如表3 所示。

表3 模型對比結果Tab. 3 Model comparison results
LSTM。 使用一個LSTM 網絡對句子進行建模,最后一個隱藏狀態作為句子的表示形式進行最終分類;TD-LSTM:使用兩個LSTM 網絡來模擬,圍繞方面術語的前后上下文,這兩個LSTM 網絡的最后隱藏狀態被連接起來,以預測情感極性。 ATAELSTM:通過將方面嵌入到每個詞向量中來進一步擴展T-LSTM;IAN:使用兩個LSTM 網絡分別對句子和方面項進行建模,利用句子中隱藏的狀態為方面生成一個注意向量,反之亦然。 基于這兩個注意向量,輸出用于分類的句子表示和方面表示;MGAN:提出了一種細粒度的注意機制,捕獲方面和上下文之間的詞級交互;PBAN:關注方面術語的位置信息,并通過雙向注意相互模擬方面術語和句子之間的關系;TNet:提出了一個特定目標的轉換組件,用于生成基于特定目標的詞向量,并利用上下文信息保留機制維持原有信息;TransCap:提出了一種將文檔級知識轉移到方面級情感分類的轉移膠囊網絡模型;IACapsNet:提出利用膠囊網絡構造基于向量的特征表示,并通過EM 尋路算法對特征進行聚類。 此外,在膠囊尋路過程中,引入了交互注意機制,以建立方面和上下文之間的語義關系。 結果顯示本文的模型在推特數據集上略低于IACapsNet 和TNet,餐廳數據集以及筆記本電腦數據集上準確率和F1 都取得了最好的結果。
本文提出了一種基于局部注意力的網絡框架,由于距離越近,上下文對方面序列情感傾向影響可能越大,考慮到上下文與方面序列之間的位置關系,提出了局部序列的定義,局部文本序列的構建取決于方面序列。 同時本文提出了用標簽平滑正則化修正損失函數,并在詞嵌入分別為Glove 和BERT 的基礎上進行了實驗。 最終結果顯示,本文的模型在前兩個數據集上都超越了先前的模型。