magicpieh28 / Paper-Summary

1 stars 0 forks source link

A Lexicon-Based Supervised Attention Model for Neural Sentiment Analysis(2018) #6

Open magicpieh28 opened 5 years ago

magicpieh28 commented 5 years ago

about this paper

Author: Yicheng Zou, Tao Gui, Qi Zhang, Xuanjing Huang Link: http://aclweb.org/anthology/C18-1074

Lexicon情報を用いたbi-LSTM - Attentionのモデルを提案。 Lexiconにより、よりsentiment情報(単語)の抽出が容易になる。 単語にattentionかけて、あとで文章にもう一度attentionかけることでノイズも減少し、attentionの重みをより細かく与えることができるようになる。

What are problems they want to solve?

problems

従来のAttentionモデルは、sentimentの情報を掴んでくれるsentiment lexiconの利点を十分活用できず、そもそもattentionメカニズムにsentiment情報を適用させようとしない。 また、ドメイン特定sentiment単語だけに重みを多く与えてしまうと、他のドメインには該当モデルは適用できなくなる。(Yang et al., 2016; Chen et al., 2016; Mudinas et al., 2012) attentionメカニズムに人間の「テキストを読む時間」を適用したモデルも、ノイズの増加・sentiment単語より難しい単語を読むのに時間がかかるなどの問題が生じた。(Long et al., 2017; Goodman, 1998)

how to solve

テキスト中の単語にsentimentの程度が強調できるようattentionメカニズムを使う。 このためにはsentiment lexiconを利用する。sentiment lexiconは、RNNモデルの中のattentionの重み付けの基準となる。 教師あり学習であり、sentiment単語は高い重みが与えられ、ドメイン特定単語の影響を減らし、sentiment情報を含んでいる表現を生成する。

model architecture

image

D = 文書集合 L = sentiment lexicon 文書d_mはk個の文章 [ S_1, S_2, ... , S_i, ... , S_k ] を持つ Si = [ w{i1} w{i2} ... w{it} ] t \in [1, T], T = Siの長さ w{it} --[Embedding]--> x_{it}

image

各w{it}ごとにsentiment degreeとしてSD^L(w{it})を計算する。sentiment degreeは、lexicon Lによって異なってくる。 sentiment degreeは、正の実数である。 score^L(w_{it})は、lexicon Lにより正規化されたsentiment scoreであり、絶対値をとるので[0, 1]に従う。 全てのlexicon datasetのスコアは、[-1, 1]に正規化し、もしinputシークエンスに含まれてる単語がlexiconに含まれてなければ、0をとる。

単語attention層からsentiment degreeに統制された文書表現s_iが得られ、文章attention層から文書表現dが得られる。 文書表現dをもって分類を行う。

image

S_iのsentiment degreeは、簡単な平均を求めることで得られる。

image

W_i, U_i, V_i, bi, W{c'}, b_{c'}, W_o, U_o, V_o, b_oはLSTMの引数である。 forward LSTMとbackward LSTMにそれぞれ異なる引数を使う。 隠れベクトルは文章embeddingであるs_iの構成要素であり、attentionの重み計算に使われる。 単語の時と同じく、bi-LSTMに文章embedding[ s_1, s_2, ... , s_k ]を通させ、隠れベクトル双を得る。

image

:単語レベルgold attentionベクトルのt番目の次元 文章レベルのgold attentionベクトルにも同じく適用 λ_w = 正のハイパーパラメータであり、sentiment degreeの分散を調整する。

image

λ_s = 文章レベルハイパーパラメータ

image

: 重み変数(memory networks(Sukhbaatar et al., 2015)で用いられたquery vectorと同じ形) 重みは、訓練プロセス時に学習される。 W{wf}, W{wb} = 単語レベル重み行列 b_w = バイアスベクトル

image

attentionベクトルa_iを生成するため、softmax関数を用いる。 学習されたベクトルa_iは、S_i中の単語に異なる重みを持つようになったので、重み付された隠れベクトルの和を求める。これが、文章ベクトルs_i(1 <= i <= k)となる。

このプロセスを文章ベクトルを入れた文章レベルbi-LSTMが終わったらもう一度繰り返す。 最後に得られた文書ベクトルdにsoftmaxかけて確率を求める。

image

損失関数はcross entropy(Liu et al., 2016)を用いる。 c = sentiment polarity (c, c \in [1, C]) g_c = sentiment分類のground truthであり、one-hotベクトルで表現される。 p_c = 各クラスの予測確率 a_i^, a^ = 単語・文章レベルのためのgold attentionベクトル a_i, a = 学習されたattentionベクトル(分布)↓ image μ_w, μ_s = attention損失関数のための係数であり、分類結果とattentionが一致しない時のバランスを取ってくれる。また、これにより、過学習も防げる。

experiment

dataset

IMDB Yelp 2013, Yelp 2014 訓練setとテストset、検証setは8:1:1に分け、Tang et al. (2015)と同じ全処理を行った。

lexicon dataset

SentimentWordNet3.0(SWN) : 異なる形態素のためにsentiment degreeとしてpositiveとnegativeの最大和をとった。 MPQA : positiveとnegativeにはsentiment degreeとして1を与え、他には0を与えた。 Stanford Sentiment Treebank(SST) : [0, 1]を[-1, 1]に正規化した。 Hownet Knowledge Database(HKD) : MPQAと同じ全処理を行った。

setting

lexicon datasetを全て合わせ、2−3部分に分けた。 polarityの無視のため中立のlexiconは別のパートとして分けた。 word embeddingの次元数 = 200 単語レベルbi-LSTMの隠れ層の次元数 = 100 全ての重み行列は単位行列に初期化し、[-0.1, 0.1]に従う。 λ_w、λ_s = 3.0 μ_w = 0.001 μ_s = 0.05 optimizer = Adam learning rate = 0.001 batch size = 32

result

評価のために以下のAccurac(Acc.)とRoot Mean Squared Error (RMSE)を用いた。

image

N = 全体サンプル数 T = 予測された出力値数(with gold label) \hat{y_i}, y_i = 予測された結果、gold label

image

image

conclusion

成功しました。

code

なし