論文閱讀 - 《Neural Sentiment Classification with User and Product Attention》

作者:xg123321123

出處:http://blog.csdn.net/xg123321123/article/details/53121473

聲明:版權所有,轉載請聯繫作者並註明出處

1 問題定義

基於Document level的情感分析用於根據document確定用戶對產品的整體情感傾向。

2 背景綜述

1、傳統方法

將情感分析作爲一個文本分類問題,將標註好的情感傾向(比如positive,negative)或者情感分數作爲類別label,用機器學習的方法訓練文本分類器。
由於分類器的性能極大依賴於文本特徵(例如bag of word),所以傳統方法的重心在於如何設計出更好的特徵提取器。

2、深度學習方法

利用設計好的神經網絡來學習低維文本特徵。然而,這些方法忽略了用戶和產品的特徵。

3、以往方法的缺點:

  • 只注重局部文本信息,忽略全局的用戶偏好以及產品特點;
  • 鑑於模型複雜度,就算考慮用戶偏好和產品特點,也只是單詞層面的。

3 靈感來源

有論文嘗試過將用戶、產品的信息和神經網絡結合起來。
在輸入層將word embedding和preference matrix作爲輸入,利用CNN提取文本特徵,然後將user/product vector和文本特徵結合後輸入到softmax。

然而模型的問題在於:

  • 數據量(用戶評論)較少的情況下,訓練preference matrix比較困難(效果不理想);
  • 只利用了word evel的用戶和產品信息,忽略了document level信息的使用。

4 方法概述

  • 以word爲單位輸入LSTM,提取每個sentence的特徵,再以sentence爲單位輸入LSTM,提取document的特徵;
  • 根據attention機制在不同的語義層面加入產品和用戶的信息。
  • 最後將得到的特徵進行分類。

這裏寫圖片描述

層級LSTM

  • word->sentence
    • 將每個word映射到低維語義空間,得到相應的詞嵌入wij ;
    • 每次輸入一個詞嵌入,LSTM的cell state cij 和hidden statehij 都得以更新,這樣輸入一個句子就得到一系列的hidden state[hi1,hi2,...,hili] ;
    • 將這一系列的hidden state輸入average pooling layer,得到句子表示si

其中hij 推算如下:

hij=oijtanh(cij)
cij=fijcij1+iijc^ij
c^ij=tanh(W[hij1,wij]+b)
[iij,fij,oij]T=[σ,σ,σ]T(W[hij1,wij]+b)

這裏i,f,o 代表激活門, 代表點乘,σ 代表sigmoid函數。

  • sentence->document
    • 將上一步得到的sentence向量表示[s1,s2,...,sn] 送進LSTM;
    • 經過如上的變換過程,一篇document得到一系列的hidden state[hi1,hi2,...,hili] ;
    • 將這一系列的hidden state輸入average pooling layer,得到文檔表示d

attention機制

不同的word對於表達這個sentence含義的貢獻應該是不一樣的,同理,不同的sentence對於表達這個document含義的貢獻也應該不一樣。
但上述建模過程中,由LSTM的隱層狀態到更高一級的語義表示過程中,average pooling操作相當於每個word(sentence)對sentence(document)的語義表示貢獻是一致的。

attention機制通過賦予sentence和document中不同部分在語義表達中不同的貢獻度來提取出特定user/product的關鍵詞;同時考慮了用戶和產品特點對最終情感傾向的影響。

  • word-level User Product Attention

    • 上面每個句子經過LSTM後得到了一系列的hidden state[hi1,hi2,...,hili]
    • 在利用這一系列hidden state得到sentence representation時,並不是利用average pooling操作,而是根據下式得到:
      si=j=1liαijhij
    • 上式中αij 代表一句話中每個詞的權重,表示爲:
      αij=exp(e(hij,u,p))lik=1exp(e(hik,u,p))
    • 上式中u和p分別是用戶(user)和產品(product)所映射到的連續實數空間中的向量,e則是衡量每個單詞在這句話中重要性的score function,表示如下:
      e(hij,u,p)=vTtanh(WHhij+WUu+WPp+b)

      其中WH,WU,WP 是權重矩陣;v 是權重向量。
  • sentence-level User Product Attention

    • sentence-level的attention機制和word-level的類似,表示如下:
      d=i=1nβihi
    • β 來表示句子在整個document中的權重,而不再用average pooling操作來獲得整個document的表示。

情感分類

經過上述流程得到的document representation是文本的高維特徵,可以將其作爲情感分類的特徵。

  • 先用非線性映射將特徵d 映射到C類的目標空間:
    d^=tanh(Wcd+bc)
  • 再用softmax函數進行分類:
    pc=exp(d^c)Ck=1exp(d^k)

    其中C 是類別數,pc 是屬於類別c 的概率;
  • 訓練時,採用交叉熵作爲損失函數:
    L=dDc=1Cpgc(d)log(pc(d))

    其中pgc 是ground truth,D 是訓練數據.

5 模型分析

  • UPA機制對於模型性能都有提高,其中user信息對模型性能提高更多;
  • 在word level和document level加入attention機制,都能提高性能,其中word level的提高要更顯著,可能原因是因爲document主題多變,attention機制不容易抓住重點;
  • 排除了長度對於模型的影響,模型在各種長度的document上都有提升。

6 未來展望

  • 注意利用user和product的profile信息;
  • 嘗試將模型用在aspect level sentiment上。

注:給定一個句子和句子中出現的某個aspect,aspect-level sentiment的目標是分析出這個句子在給定aspect上的情感傾向。

例如:great food but the service was dreadful!
在aspect “food”上,情感傾向爲正,在aspect “service”上情感傾向爲負。

Aspect level的情感分析相對於document level來說粒度更細。


本篇博客主要參考自
《< Neural Sentiment Classification with User and Product Attention>學習筆記》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章