[EMNLP2016読み会] Memory-enhanced Decoder for Neural Machine Translation

17
Memory-enhanced Decoder for Neural Machine Translation Mingxuan Wang, Zhengdong Lu, Hang Li and Qun Liu 2/22 EMNLP 読読読 読読 : B4 読読読読

Transcript of [EMNLP2016読み会] Memory-enhanced Decoder for Neural Machine Translation

Page 1: [EMNLP2016読み会] Memory-enhanced Decoder for Neural Machine Translation

Memory-enhanced Decoder for Neural Machine Translation

Mingxuan Wang, Zhengdong Lu, Hang Li and Qun Liu

2/22 EMNLP 読み会紹介 : B4 山岸駿秀

Page 2: [EMNLP2016読み会] Memory-enhanced Decoder for Neural Machine Translation

Introduction• Attention-based NMT (RNNsearch) の成功 [Bahdanau+ 2015, ICLR]

• 入力文全体を保存し、部分的に用いて出力することは有用である• Neural Turing Machine (NTM) [Graves+ 2014, arXiv にのみ投稿 ]

• ベクトルを格納する数個のメモリと、重みベクトルによるヘッドを持つ• 入力時にメモリの状態を読み込み、出力• 出力と同時にメモリを書き換える• どのメモリをどれだけ読む / 書くのかをヘッドの重みを用いて決定• ヘッドの重みを学習する

• これらを組み合わせ、外部メモリを持つ RNNsearch を提案• MEMDEC と呼ぶ• 生成の後半で使うような情報を保存できる可能性がある

2

Page 3: [EMNLP2016読み会] Memory-enhanced Decoder for Neural Machine Translation

※ デコーダ側のみ3

Page 4: [EMNLP2016読み会] Memory-enhanced Decoder for Neural Machine Translation

NMT with improved attention• 入力 x (x の文長は Tx) がある• Encoder の単語 j の隠れ層 hj は、メモリ Ms として格納• (1) を導出したい• (2): Decoder の時刻 t での隠れ層• g() には GRU を使用

• (3): Attention ベクトル• Wa 、 Ua は重み行列

4

Page 5: [EMNLP2016読み会] Memory-enhanced Decoder for Neural Machine Translation

NMT with improved attention• Groundhog (Bahdanau らによる RNNsearch の実装 ) では、 αt,j の計算に前の出力 yt-1 が用いられていない• 前の出力を用いることは有用なのではないだろうか

• 今回は、以下の計算式で計算した

• H() = tanh() (GRU の方が性能がよいが、簡略化のため tanh を使用 )• e は yt-1 の embedding

5

Page 6: [EMNLP2016読み会] Memory-enhanced Decoder for Neural Machine Translation

6

Page 7: [EMNLP2016読み会] Memory-enhanced Decoder for Neural Machine Translation

Updating• MB は今回新たに追加する外部メモリ

• W はそれぞれ重み行列

• メモリも更新7

Page 8: [EMNLP2016読み会] Memory-enhanced Decoder for Neural Machine Translation

Prediction• Bahdanau らの提案した手法によって単語を予測する

• “ωy is the parameters associated with the word y.”

8

Page 9: [EMNLP2016読み会] Memory-enhanced Decoder for Neural Machine Translation

Reading Memory-state• MB は n ( メモリセルの数 ) * m ( セルの次元数 ) の行列

• wRt は n 次元、 rt は m 次元のベクトル

• wRt は以下のようにして更新•                   、• wR

g は m 次元のベクトル

• v は m 次元のベクトル、 W 、 U は m*m 次元の行列 9

Page 10: [EMNLP2016読み会] Memory-enhanced Decoder for Neural Machine Translation

Writing to Memory-states• ERASE と ADD の操作をすることで MB を更新• 初めに ERASE 処理• wW

t 、 μERSt は m 次元のベクトル、 WERS は m*m の行列

• 次に ADD 処理

• μADDt は m 次元のベクトル、 WADD は m*m の行列

• wR と wW に同じ重みを用いると性能が良かった10

Page 11: [EMNLP2016読み会] Memory-enhanced Decoder for Neural Machine Translation

Setting• 中英翻訳• 学習データ : LDC corpus• 1.25M 文対 ( 中国語の単語数 : 27.9M 、英語の単語数 : 34.5M)• 50 単語以上の文は NMT では不使用 (Moses では使用 )• NMT では、語彙数を 30,000 語に制限

• テストデータ : NIST2002 〜 2006 (MT02 〜 06 と記述 )• embedding: 512 、 hidden size: 512• メモリセルの数 n = 8 、メモリセルの次元 m = 1024• Adadelta (ε = 10-6 、 ρ = 0.95) で最適化、 batch size = 80• 確率 0.5 で Dropout

11

Page 12: [EMNLP2016読み会] Memory-enhanced Decoder for Neural Machine Translation

Pre-training• パラメータ数がとても多いので、 pre-training を行う1. 外部メモリなしの RNNsearch を学習させる2. 1 を元に、 Encoder と MEMDEC のパラメータを学習させる• 以下の、メモリ状態に関係あるパラメータは学習させない

3. 全てのパラメータを用いて fine-tuning を行う

12

Page 13: [EMNLP2016読み会] Memory-enhanced Decoder for Neural Machine Translation

Comparison system• Moses (state-of-the-art SMT)• Groundhog (Baseline)• Bahdanau らの Attention-based NMT (RNNsearch) の実装

• RNNsearch* (strong Baseline)• 一つ前の出力を Attention ベクトル Ct の計算に用いるシステムを追加• dropout も追加

• coverage (state-of-the-art NMT, Tu+, ACL2016)• 入力の表現のカバレッジを用いる

• MEMDEC ( 提案手法 )

13

Page 14: [EMNLP2016読み会] Memory-enhanced Decoder for Neural Machine Translation

Result 1

• 前の出力を用いて Attention を計算するだけでも BLEU が上がる• Moses と比較して最大で 5.28 、 Groundhog と比較して最大で 4.78 の改善

14

Page 15: [EMNLP2016読み会] Memory-enhanced Decoder for Neural Machine Translation

Result 2

• Pre-training するだけで +1.11 • しなくとも、 RNNSearch* に比べて +1.04

• メモリセルの数に robust である15

Page 16: [EMNLP2016読み会] Memory-enhanced Decoder for Neural Machine Translation

Result 3

16

Page 17: [EMNLP2016読み会] Memory-enhanced Decoder for Neural Machine Translation

Conclusion• RNN Decoder を外部メモリを用いて拡張した• メモリの数は大きく影響しない

• 結果、中英翻訳のスコアを大きく改善できた• アテンションの計算に前の出力を用いることも有用である

17