LSTM (Long Short-Term Memory)の内部を覗く
持橋大地
数理・推論研究系 学習推論グループ
daichi@ism.ac.jp
統計数理セミナー 2019-5-15 (水)※ 本研究は、柴田千尋氏(東京工科大)・内海慶氏(デンソーアイティー
ラボラトリ)との共同研究です.

LSTMとはl LSTM (Long Short-Time Memory) (Hochreiter+ 97)… 再帰的ニューラルネットの一種
l 時系列データをモデル化するために、様々な分野で頻繁に使われている
l 非線形HMMの一種
LSTM
Cell

LSTM
Cell

LSTM
Cell

LSTM
Cell

x1

x2

x3

xT

観測値

LSTMからの生成 (1)l ランダムに生成されたWikipedia (Graves+13)

LSTMからの生成例 (2)l 手書き文字の生成 (Graves+13)
これだけ本物

ランダム生成LSTMの使用
l 自然言語処理では、あらゆるタスクに使われている– LSTMなしでは、研究が成り立たないほど– 前向きLSTMと後向きLSTMを同時に動かし、隠れ状態をconcatしたBidirectional LSTMも多い
l ニューラル機械翻訳 (Google NMT, Wu+ 2016) はLSTMを8層結合したもの
l Neural Turing Machine (Graves+ 2014) などにおいては、コントローラをLSTMで動かしているニューラル機械翻訳
l Googleニューラル機械翻訳: 8層の双方向LSTM＋アテンションのエンコーダ/デコーダ

原言語 (eg. 英語)

目的言語(eg. 日本語)

LSTMの動作について
l ほとんど解明されていない！
l いくつか研究があるが (Karpathy+16)(Ayache+18)(Schmidhuber+15)、すべてブラックボックスとしてLSTMを扱い、何ができるかを調べるもの

LSTMの中身
l LSTMセルの構造~ct の更新則~ct+1 = f~

ct が受け継がれる
文脈ベクトル ~~ct + ~cup

[0, 1]D~ct~ht[ 1, 1]D数式で表すと(~ht+1 , ~ct+1 ) = LSTM (~ht , ~ct , w~ t , ⇥)~ct+1 = f~ ~ct + ~cupはアダマール積p(wt+1 |w1 · · · wt ) = s(W ~ht+1 + b)
l sはソフトマックス(多値ロジスティック)関数

s(~x) =✓eP

x1e,Pxkkex2xkeke··· , PxKxkek◆

ct と、そこへの更新 ~cup に
l 文脈ベクトル ~長期状態がエンコードされている

内部ベクトルの分布の様子
l かなり

離散的に近く分布している
l 忘却ベクトルはβ分布、ctは正規分布＋離散的なピーク

分析に用いたデータ
l Penn Treebank, Wall Street Journal コーパス

(Marcus+ 1994)
l WSJの新聞記事の構文解析済みデータ、49000文– S式 (Lisp形式) で構文が付与されている– 構文解析の研究に標準的に用いられるコーパス
l 予定：Emacs付属のLispプログラム群など

学習のタイプl 次の5つのタイプにデータを前処理して学習した(1) 括弧のみ残す
例: ST ( ( ( ) ) ( ( ) ( ( ) ) ) ) ED
(2) タグ付き括弧
例: ST (S (NP (DT DT) (N N) NP) S) ED(3) タグなし括弧＋単語
例: ST ( ( John ) ( will ( visit ( there ) ) ) ) ) ED
(4) タグ付き括弧＋単語
例: ST (S (NN John NN) (VP will (V visit V) (N there N)..
(5) 生文例: ST John will visit there ED

学習設定l LSTM言語モデル、次の単語の予測確率を最大化
l 隠れ層 (hおよびc) の次元– 単語を含まない (1)(2) は100次元および200次元– 単語を含む (3)(4)(5) は1000次元– 語彙の総数は10000語程度
l Adam, Dropoutあり (確率0.2および0.5)

学習のタイプl 例えば、原データが(S (NP Pierre Vinken)(VP will (VP join
(NP (DT the (NN board)))))) のとき、
(1)à ST ( ( ) ( ( ( ( ( ) ) ) ) ) ) ) ED
(2)à ST (S (NP NP) (VP (VP (NP (DT (NN NN) DT)
NP) VP) VP) S) ED(3)à ST ( ( Pierre Vinken ) ( will ( join ( ( the ( board) ) ) ) ) ) ED(4)à ST (S (NP Pierre Vinken NP)(VP will (VP join (NP (DT the (NN board NN)DT) NP) VP) VP) S) ED

学習タイプ(1)l データの例: ST ( ( ( ) ) ( ( ) ( ( ) ) ) ) ED

学習結果の混同行列• EDをほぼ100%の確率で予測できる
à LSTMは括弧の深さを正確に数えている• “(“, “)” もかなり正確に予測à もともと、”(“の次が“)”か”(“かは曖昧性がある (それでも高精度)どの次元が構文の深さと相関しているのか?
l 括弧のネストの深さと、ctの各次元との相関係数

非常に相関の高い次元が存在最も相関の高かった次元の値と構文の深さの関係

l ht(青)よりも、ct(赤)がきわめて高精度に相関する

文解析時のctの値
l 文解析時の、相関が最大だった次元のctの値の軌跡

1つの色が1つの文
l 注意：ctは連続値

l ほとんどカウンターのように離散的にふるまっている！

学習タイプ (2)l データの例:

ST (S (NP NP) (VP (VP (NP (DT (NN NN) DT)
NP) VP) VP) S) ED
l 次の“単語”を予測する混同行列
l 注意: 学習には上の文字列は使っていないので、“(NP” と “NP)” が対応しているかは計算機には分からない– 実際には、IDにして“0 1 2 5 4 4 1 3 6 7 9 8 10 11”のような整数の系列をLSTMで学習

予測結果
l EDは100%

正解à括弧を数えているl “(XP”と“XP)”の対応を学習
l “(XP”より、“XP)”の予測が正確à 環境のネストを覚えている学習タイプ (3)l 単語と ( )だけàやはり高精度に予測学習タイプ (4)l データの例:

ST (S (NP Pierre Vinken NP)(VP will (VP join (NP (DT the (NN board NN)DT) NP) VP) VP) S) ED

学習タイプ (4) : 混同行列
l 単語の情報と句の情報が加わることで、予測がより正確になった
l EDはやはり100%
à 括弧の対応をすべて学習している

構文の深さと次元
l VP (動詞句) の深さと、1000次元のctの各次元との相関のプロット

最大値0.92

構文の深さと次元 (2)l 相関最大の次元の値と、VPの深さとの関係

構文構造と次元l ある次元の値だけで、VPの内外を判別できるか?

à かなりできる (ヒストグラム重複率0.12)

構文構造とct の関係
l LSTMのモデルとしては、単一の次元で構文構造を予測するように学習しているわけではないà ct からの回帰 (構文の深さ)à ct からの識別モデル (VP, NPなどの内外判定)

ctà構文の深さの回帰

l ●：線形回帰、●：Lasso回帰、×：単一の次元

VPの内外判定
l ctからのロジスティック回帰によるVPの内外の判定
l L1正則化により、関係する次元だけを残してスパースに学習タイプ (5)l 生文から学習、構文情報なし
l データの例:

ST Pierre Vinken will join the board ED
ST Kemper Financial Services Inc. , charging that
program trading is ruining the stock market , cut oﬀ
four big Wall Street firms from doing any of its
stock - trading business ED

VPの深さの回帰
l 正解構文のVPの深さを予測
l 教師なしなので、関係は線形ではないが単調な関係
l cが相関を最もよく捉えている

品詞情報の学習
l どの情報が有用か? (VBとNNの判定)

cを使った
場合

cupを使った場合
l 文脈ベクトルcより、そこへの更新cupがよい情報

品詞情報の学習 (2)l 各品詞の単語に対応するcupベクトル(1000次元)

をPCAで50次元に落としてみる– 負の値を可視化するため、同じデータに-をつけたもの
を後半にコピペして、expに乗せる (すべて正にする)

VB(動詞,原型)

VBZ(動詞,三単現)

NN
(名詞)

NNS
(名詞,複数形)

l 品詞は区別できるが、若干わかりにくい

CD
(数詞)

品詞情報の学習 (3)l 全データ(同じ単語が複数回登場)を一度PCAした

後で、単語をすべて1回ずつに揃えてPCA(unique-PCA or re-PCA)

VB(動詞,原型)

VBZ(動詞,三単現)

NN
(名詞)

NNS
(名詞,複数形)

CD(数詞)

l 動詞の数の区別や、名詞の複数形も区別できた

品詞情報の学習 (4)l 単語の文法的な働きは一意とは限らない
l “that” は、“this”, “if”, “which” とそれぞれ似た働きをする場合がある (他の例: given など)

品詞情報の学習 (5)l これらはすべて“that”
だが、色で表した品詞に従って分布している

まとめ
l LSTMは非常に頻繁に使われるモデルにもかかわらず、内部の動作が調べられていなかった
l 構文構造を与えたコーパスを使って、構文構造と内部ベクトルの関係を統計的に分析– 句構造のネストの深さは、特定の次元と高い相関– 内部ベクトルの少数の要素からの線形回帰で、構文の深さが非常に正確に予測できる– 上は、教師なし学習の場合でもほぼ同様に成り立つ– 文脈ベクトルの更新cupが、単語の品詞とかなり対応している今後の課題l L1正則化したLSTMを使って、LSTMを離散的に近く動作させ、文法と対応が取れるか調べる
l 自然言語以外の、ネストがあるデータで同様に動くか調べる (Emacs付属のLisp、scheme slib等)