learning phrase representations using rnn encoder-decoder for statistical machine translation
DESCRIPTION
EMNLP2014読み会の資料です. おまけはNeural Machine Translationについて.TRANSCRIPT
Learning Phrase Representations using RNN Encoder-‐‑‒Decoder
for Statistical Machine Translation
2014/11/22 EMNLP2014読み会@PFI
菊池 悠太
Neural Network系技術を統計的機械翻訳(SMT)に活かす研究は流行っている,ACL2014も多かった(best paperもそうだった) 多くはphrase-based SMTの枠組みのどこかに活かす形
今回は 翻訳の枠組みがNeural Networkだけで完結する
Neural Machine Translation ....の(Bengio先生達にとっての)序章的論文
!本稿ではまだphrase-based SMTの素性として使った時の報告 時間があれば触れる用におまけを用意したが絶対時間足りない
はじめに
Agenda - はじめに - RNN Encoder-Decoder !
!
!
- 実験・結果 !
- おまけたち (Neural Machine Translation系の話題)
- RNN - LSTM(のシンプル版) - Maxout
出てくる技術
- phrase-based SMT - Feed Forward Neural Network Language Model (FFNNLM)
出てくる技術
Agenda - はじめに - RNN Encoder-Decoder !
!
!
- 実験・結果 !
- おまけたち (Neural Machine Translation系の話題)
- RNN - LSTM(のシンプル版) - Maxout
出てくる技術
- phrase-based SMT - Feed Forward Neural Network Language Model (FFNNLM)
出てくる技術
RNN Encoder-Decoder
2種類のRNN
RNN Encoder-Decoder
1. Encoder現言語列の単語をひとつずつ受け取り,隠れ状態ベクトルcを作るRNN
RNN Encoder-Decoder
2. Decodercから目的言語列を生成するRNN
よく見るシンプルなRNNの図
今回の図
ちなみに
つまり - ◯は連続値ベクトル - xはone-hotベクトル
よく見るシンプルなRNNの図
今回の図
ちなみに
RNN Encoder-DecoderのEncoder
Encoder (LSTM-likeな活性化関数)
Encoder (LSTM-likeな活性化関数)
?
X1 X2
target!!
reset gate: どのくらい前回の隠れ層が影響するか
X1 X2
r
実際は…
resetを考慮した 仮のhidden unit
X1 X2
r
update gate
z
X1 X2
r
今回の入力単語をどのくらい使うか?をupdate gate が決定
z
X1 X2
r
z
X1 X2
実際には隠れ層(1000次元)の各ユニットが独立した↑になってる - reset gateが1になりやすいユニットは短い時間依存を担当 - update gateが1になりやすいユニットは長い時間依存を担当
r
RNN Encoder-DecoderのDecoder
RNN Encoder-DecoderのDecoder
RNN Encoder-DecoderのDecoder
[点線部分]以外大体Encoderと一緒
隠れ層の活性化関数はさっきのLSTM亜種
RNN Encoder-DecoderのDecoder
出力層の活性化関数はMaxout
Training
訓練後は1. 目的言語列の生成 2. (原言語列-目的言語列)対 の翻訳確率 に使える
Training
訓練後は1. 目的言語列の生成 2. (原言語列-目的言語列)対 の翻訳確率 に使える
今回は1.は定性評価のみ
実験提案手法をphrased-base SMTの素性として使う
(Moses with default settings)
phrase-base SMTにおけるデコーダとしての対数線形モデル
の素性関数fn(f,e)に追加する
RNN: - 提案手法による入力文のフレーズ対の翻訳確率(フレーズ対の数分足す) - フレーズ対の数 (フレーズ対の数だけ翻訳確率の総和が発生するため,これで公平さを取る狙い) CSLM[Schwenk2007] (基本的には[Bengio2003]のFFNNLMのこと): - 目的言語列の生成確率 Word Penalty - 出てきたUnknown wordの数
BLUE
RNN, CSLMどっちも貢献してる
Table 2 現言語phraseに対するtop-scoredな目的言語
phraseの実例(baselineと比較)
割愛 まぁ良い感じ
提案手法はphrase table上の出現頻度に寄らないとか RNNencoderは短めのphraseを好むとか
提案手法baseline翻訳モデル
さすがにアレかなと思ったので急遽貼りました
Table 2の上半分
提案手法baseline翻訳モデル
Table 2の下半分
さすがにアレかなと思ったので急遽貼りました
Table 3: 提案手法が生成したphraseたち
phrase tableにないものも生成できている →将来的に従来のphrase tableの代替に?
Figure 4: お約束,単語ベクトルの次元削減による可視化
青い部分を拡大
もっと大きな図は付録として最後についてます
Figure 5: cの次元圧縮による可視化
良い感じにphrase空間ができてる(論文をご参照下さい…)
Figure 5: cの次元圧縮による可視化
さすがにいっこ拡大してみる
Conclusion
RNN Encoder-Decoderというものを提案 encoder: 任意長の原言語列 → 中間表現 decoder: 中間表現 → 任意長の目的言語列
Large Potential phrase tableの一部ないし全部を置き換える
RNNベースだしSpeech recognitionにも使えそう
おまけ
Neural Machine Translation
おまけ1, Bengio先生勢のNMT本編的論文
今日のやつ(RNNenc)この論文の提案手法(grConv)
文長・未知語数別のBLUEスコア
純粋にNNだけで翻訳生成(デコード時に幅10でビームサーチ)
次のおまけのやつ
文の長さ,未知語の数で かなり変わる
次のおまけのやつ
っていう論文がすでにarXivに….
おまけ2
話題になったこれとの関係
このへんを
こう!
わりと似てる!
NMT的に生成したもののBLUEスコア
NMT的に生成したもののBLUEスコア
“おまけ1”で出てきた結果の表
見比べるべき条件はこのふたつ
NMT的に生成したもののBLUEスコア
“おまけ1”で出てきた結果の表
ハイパーパラメータが違ったり
モデルも一緒ではないので
この数値だけだと優劣分からない
おまけ3
バイリンガルで学習するとモノリンガルな 単語類似度評価セットも向上
!
“bilingual word embeddings”は以前からあったが 実際に有名な評価セットで優位性を報告したのは初?
単語の分散表現の学習について今日の有名なの
今日の有名なの
バイリンガルで学習するとモノリンガルな 単語類似度評価セットも向上
!
“bilingual word embeddings”は以前からあったが 実際に有名な評価セットで優位性を報告したのは初?
単語の分散表現の学習について新しい単語類似度評価セット
バイリンガルで学習するとモノリンガルな 単語類似度評価セットも向上
!
“bilingual word embeddings”は以前からあったが 実際に有名な評価セットで優位性を報告したのは初?
単語の分散表現の学習について今日の有名なの
これもNMT しかもBLUEはRNNencより良いっぽい
!!!
!
全体まとめ
Neural Machine Translationやばそう !
純粋にNNだけでちゃんと生成ができそうな報告が溜まってきた?
!
先行者はBengio先生組やGoogle組