[EMNLP2016読み会] Memory-enhanced Decoder for Neural Machine Translation
-
Upload
hayahide-yamagishi -
Category
Data & Analytics
-
view
86 -
download
2
Transcript of [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 山岸駿秀
Introduction• Attention-based NMT (RNNsearch) の成功 [Bahdanau+ 2015, ICLR]
• 入力文全体を保存し、部分的に用いて出力することは有用である• Neural Turing Machine (NTM) [Graves+ 2014, arXiv にのみ投稿 ]
• ベクトルを格納する数個のメモリと、重みベクトルによるヘッドを持つ• 入力時にメモリの状態を読み込み、出力• 出力と同時にメモリを書き換える• どのメモリをどれだけ読む / 書くのかをヘッドの重みを用いて決定• ヘッドの重みを学習する
• これらを組み合わせ、外部メモリを持つ RNNsearch を提案• MEMDEC と呼ぶ• 生成の後半で使うような情報を保存できる可能性がある
2
※ デコーダ側のみ3
NMT with improved attention• 入力 x (x の文長は Tx) がある• Encoder の単語 j の隠れ層 hj は、メモリ Ms として格納• (1) を導出したい• (2): Decoder の時刻 t での隠れ層• g() には GRU を使用
• (3): Attention ベクトル• Wa 、 Ua は重み行列
4
NMT with improved attention• Groundhog (Bahdanau らによる RNNsearch の実装 ) では、 αt,j の計算に前の出力 yt-1 が用いられていない• 前の出力を用いることは有用なのではないだろうか
• 今回は、以下の計算式で計算した
• H() = tanh() (GRU の方が性能がよいが、簡略化のため tanh を使用 )• e は yt-1 の embedding
5
6
Updating• MB は今回新たに追加する外部メモリ
• W はそれぞれ重み行列
• メモリも更新7
Prediction• Bahdanau らの提案した手法によって単語を予測する
• “ωy is the parameters associated with the word y.”
8
Reading Memory-state• MB は n ( メモリセルの数 ) * m ( セルの次元数 ) の行列
• wRt は n 次元、 rt は m 次元のベクトル
• wRt は以下のようにして更新• 、• wR
g は m 次元のベクトル
• v は m 次元のベクトル、 W 、 U は m*m 次元の行列 9
Writing to Memory-states• ERASE と ADD の操作をすることで MB を更新• 初めに ERASE 処理• wW
t 、 μERSt は m 次元のベクトル、 WERS は m*m の行列
• 次に ADD 処理
• μADDt は m 次元のベクトル、 WADD は m*m の行列
• wR と wW に同じ重みを用いると性能が良かった10
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
Pre-training• パラメータ数がとても多いので、 pre-training を行う1. 外部メモリなしの RNNsearch を学習させる2. 1 を元に、 Encoder と MEMDEC のパラメータを学習させる• 以下の、メモリ状態に関係あるパラメータは学習させない
3. 全てのパラメータを用いて fine-tuning を行う
12
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
Result 1
• 前の出力を用いて Attention を計算するだけでも BLEU が上がる• Moses と比較して最大で 5.28 、 Groundhog と比較して最大で 4.78 の改善
14
Result 2
• Pre-training するだけで +1.11 • しなくとも、 RNNSearch* に比べて +1.04
• メモリセルの数に robust である15
Result 3
16
Conclusion• RNN Decoder を外部メモリを用いて拡張した• メモリの数は大きく影響しない
• 結果、中英翻訳のスコアを大きく改善できた• アテンションの計算に前の出力を用いることも有用である
17