Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

183 views

Published on

首都大学東京・小町研内のEMNLP2016読み会で使用する資料です

Published in: Data & Analytics
  • Be the first to comment

  • Be the first to like this

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

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

×