14
Visualizing and Understanding Neural Models in NLP Jiwei Li, Xinlei Chen, Eduard Hovy, and Dan Jurafsky NAACL 2016, pages 681-691. 論文 コード TechTalks.tv 読み手: 岡崎 直観 東北大学 @ chokkanorg8回最先端NLP勉強会 但し書きがある場合を除き,スライド中の図・表はLi+ (2016) の引用

Visualizing and understanding neural models in NLP

Embed Size (px)

Citation preview

Page 1: Visualizing and understanding neural models in NLP

Visualizing and Understanding Neural Models in NLP

Jiwei Li, Xinlei Chen, Eduard Hovy, and Dan JurafskyNAACL 2016, pages 681-691.論文 コード TechTalks.tv

読み手: 岡崎直観 (東北大学) (@chokkanorg)

第8回最先端NLP勉強会

※但し書きがある場合を除き,スライド中の図・表はLi+ (2016) の引用

Page 2: Visualizing and understanding neural models in NLP

本研究の貢献: DNNモデルの解釈

• 人間が設計した素性からなるモデルは解釈可能• 例: 線形識別モデルにおける素性の重み

• 今や幅広いタスクでDNNが最高性能を達成• 単語ベクトルや隠れ層などでモデルの解釈が困難に

• DNNは意味合成をどのように実現しているのか?• 強調(intensification)や否定(negation)の取り扱い

• 文中の離れた場所の単語の意味の合成

• 文中の不要な要素(ストップワード)の除去

• 単語の顕著度(saliency)を可視化する手法を検討• 分散: 文中の単語ベクトルの平均からの乖離度

• 偏微分: 解いているタスクへの単語ベクトルの貢献度

Li+ (2016) Visualizing and Understanding Neural Models in NLP 2

Page 3: Visualizing and understanding neural models in NLP

本研究で用いたタスク (1/2):Stanford Sentiment Treebank (Socher+ 13)

• 句構造に5段階の評価ラベルが付与されたデータ

• 句構造を単語列に展開し,単語列から評価ラベルを予測する問題に変換した

• 単語列からラベルを予測する方が一般的なため

• 実験設定• 最適化: ミニバッチAdaGrad• 次元数: 60 (入力層と隠れ層)

Li+ (2016) Visualizing and Understanding Neural Models in NLP 3

(Socher+ 2013)

モデル 5クラス 2クラス

RNN 0.429 0.850LSTM 0.469 0.870双方向LSTM 0.488 0.878

Page 4: Visualizing and understanding neural models in NLP

本研究で用いたタスク (2/2):Seq2seqによる文生成

• 入力文をベクトルにエンコードして,同じ文をデコード(生成)するタスク(オートエンコーダ)

• エンコード/デコードにはLSTMを採用

• WMT’14コーパスの英語400万文(平均22.5単語)を学習データとして利用

Li+ (2016) Visualizing and Understanding Neural Models in NLP 4

very good movie

very good movie

<EOS> very good movie

<EOS>

𝑥𝑥𝑡𝑡

ℎ𝑡𝑡

𝑦𝑦𝑡𝑡 = softmax 𝑊𝑊(𝑦𝑦𝑦)ℎ𝑡𝑡

Page 5: Visualizing and understanding neural models in NLP

句ベクトルの可視化(次元削減なし)

• 強調(左): 特定の次元が強くなる傾向が見られる

• 否定(右): 特定の次元の反転が見られるが(枠線),強調の場合と比べると傾向は不明瞭

• (読み手注)ベクトルを積極的に変換しているように見える

Li+ (2016) Visualizing and Understanding Neural Models in NLP 5

Page 6: Visualizing and understanding neural models in NLP

句ベクトルの可視化(t-SNE)

Li+ (2016) Visualizing and Understanding Neural Models in NLP 6

悪そうなクラスタ

not badが混ざっている (not good ≒ bad; not bad ≠ good)

Page 7: Visualizing and understanding neural models in NLP

文ベクトルの可視化(t-SNE)

Li+ (2016) Visualizing and Understanding Neural Models in NLP 7

主節がlikeで逆接を入れるとかなり遠ざかる主節がhateで逆接を入れた場合は,あまり遠ざからない

Page 8: Visualizing and understanding neural models in NLP

単語ベクトルの分散による顕著度

• 文𝑆𝑆中の単語𝑖𝑖のベクトル𝒙𝒙𝑖𝑖の𝑗𝑗次元目𝑥𝑥𝑖𝑖,𝑗𝑗の顕著度

Var𝑆𝑆 𝑖𝑖, 𝑗𝑗 = 𝑥𝑥𝑖𝑖,𝑗𝑗 −1𝑆𝑆�𝑖𝑖′∈𝑆𝑆

𝑥𝑥𝑖𝑖′,𝑗𝑗

2

• 単語ベクトルも学習対象とする場合のみ利用可

• ベクトル合成過程などを可視化できない

Li+ (2016) Visualizing and Understanding Neural Models in NLP 8

文𝑆𝑆中の全単語ベクトルの𝑗𝑗次元目の平均値

Page 9: Visualizing and understanding neural models in NLP

分散の可視化例:評判を反映しそうな単語の顕著度が上昇

Li+ (2016) Visualizing and Understanding Neural Models in NLP 9

Page 10: Visualizing and understanding neural models in NLP

偏微分による顕著度(画像認識の場合)

ILSVRC 2013のテストセットに対して,どのピクセルがクラス分類に貢献したかを可視化

(物体の位置をアノテートしていないのに大体の位置が分かる!)

K Simonyan, A Veldaldi, A Zisserman. Deep Inside Convolutional Networks: Visualising Image Classification Models and Saliency Maps. ICLR 2014.

Li+ (2016) Visualizing and Understanding Neural Models in NLP 10

Page 11: Visualizing and understanding neural models in NLP

偏微分による顕著度

• 文𝑆𝑆中の単語𝑖𝑖のベクトル𝒙𝒙𝑖𝑖の𝑗𝑗次元目𝑥𝑥𝑖𝑖,𝑗𝑗の顕著度

Grad𝑆𝑆 𝑖𝑖, 𝑗𝑗 =𝜕𝜕𝑙𝑙(𝒙𝒙1 …𝒙𝒙 𝑆𝑆 , �𝑦𝑦)

𝜕𝜕𝑥𝑥𝑖𝑖,𝑗𝑗

• 解釈: 確率推定値(スコア)の一次近似𝑙𝑙 𝒙𝒙1 …𝒙𝒙 𝑆𝑆 , �𝑦𝑦 ≈ 𝑙𝑙 𝑥𝑥𝑖𝑖,𝑗𝑗 + 𝑙𝑙′ 𝑥𝑥𝑖𝑖,𝑗𝑗 𝛿𝛿𝑥𝑥 = 𝑙𝑙′ 𝑥𝑥𝑖𝑖,𝑗𝑗 𝛿𝛿𝑥𝑥 + 𝑏𝑏

• 単語ベクトルの値を微小に(𝛿𝛿𝑥𝑥だけ)変化させるとき,ラベル �𝑦𝑦の確率推定値(スコア)に大きな影響を与えるものを見つける

Li+ (2016) Visualizing and Understanding Neural Models in NLP 11

ラベル �𝑦𝑦を予測した際の確率推定値またはスコア

一次までのテイラー展開 𝑥𝑥𝑖𝑖,𝑗𝑗を𝛿𝛿𝑥𝑥だけ動か

した時の影響度定数項

誤差逆伝搬法で計算可

Page 12: Visualizing and understanding neural models in NLP

偏微分の可視化例(評判分析)

精度の高いモデル(双方向LSTM)の方がhateによりフォーカスしている

Li+ (2016) Visualizing and Understanding Neural Models in NLP 12

Page 13: Visualizing and understanding neural models in NLP

偏微分の可視化例(文生成)(I like the movie through the plot is boring)

Li+ (2016) Visualizing and Understanding Neural Models in NLP 13

内容語の生成: 入力文の単語ベクトルを使う機能語の生成: 直前の語(言語モデル)を使う

Page 14: Visualizing and understanding neural models in NLP

まとめ

• 単語の顕著度(saliency)を可視化する手法を検討• 分散: 文中の単語ベクトルの平均からの乖離度

• 偏微分: 解いているタスクへの単語ベクトルの貢献度

• 言語処理のニューラルモデルの可視化の第一歩• どの可視化方法が良いかは分からない

• ニューラルネットワークの比較検討はこれから

• 読み手の感想• 文生成モデルの解析は興味深かった

• アテンションを可視化することとの関連性は?

Li+ (2016) Visualizing and Understanding Neural Models in NLP 14