Fast and Robust Neural Network Joint Models
for Statistical Machine Translation
Authors: Jacob Devlin, Rabih Zbib, Zhongqi...
自己紹介:徳永拓之
●  twitter: @tkng
●  Preferred Infrastructure勤務(この会場)
●  MIRU 2014の特別チュートリアルに出ます
●  知的情報処理事業部はじめました
Fast and Robust Neural Network Joint Models
for Statistical Machine Translation
●  概要:ニューラルネットを使って翻訳の
BLEUスコアを改善した
●  選んだ理...
統計的機械翻訳のおさらい
P(e|j) = P(j|e) P(e)
翻訳モデルと言語モデルの2つに分けて考える
・翻訳として正しそう
・言語として意味が通る
の2つを両立する文を選ぶ
本論文の言語モデル
Bengio et al. (2003)のNNLMの拡張
●  入力は14単語
●  各単語を192次元のword vectorに変換
●  512次元の隠れ層を2つ通す
o  tanhで非線形変換
●  最終層はsoftm...
図で表現すると
14単語×192次元 512次元 512次元 softmax
入力 (14単語)
0.0021
本手法のアイデアは3つ
●  NNJM
●  self-normalization
●  pre-computing
NNJM:Neural Network Joint Model
●  言語モデルに翻訳元文の情報を入れる
o  結果として、純粋な言語モデルとは言えなくなる
o  BLEUが3ptぐらい上がる
NNJMにおける確率モデルの構成
P(wi|wi-2, wi-1, wi+1, wi+2, …, sa-1, sa, sa+1)
普通の言語モデル 翻訳元の単語
aはwiに対応する単語の翻訳元文での位置
(翻訳元文での位置が取れるような翻訳モデ...
適当にそれっぽく当てはめてみると
P(猫|我輩, は, で, ある, …, am, cat, $)
普通の言語モデル 翻訳元の単語
self-normalization (1/3)
問題:softmaxで正規化項の計算が重たい
self-normalization (2/3)
問題:softmaxで正規化項の計算が重たい
解決策:Z(x)が1になるように学習し、デコー
ド時にはZ(x)の計算は省略する
self-normalization (3/3)
効果:10倍ぐらい速くなる
※目的関数にそういう項を入れるだけなので、必ず1になるわけではない
※乱暴に感じるが、BLEUは0.1ぐらいしか下がらない
pre-computing (1/3)
●  NNの1段目は、入力コンテキストの単語毎
に192回の積和が512回実行される
●  入力コンテキストは14単語なので、計算回
数は以下になる
192 × 512 × 14 = 約137万回
pre-computing (2/3)
●  単語毎に192次元のベクトル(分散表現)の
値はわかってるので、次の層への影響は事
前に計算できる
o  語彙数 × 512 x 14 で、500MB以下で保存可能
●  512 × 14 = 約7...
pre-computing (3/3)
●  0.2 × 0.3 + 1.7 × 0.8 + 3.3 × 0.4 = 2.74
●  <This, (a)> → 2.74 としてキャッシュできる
This
is
a
0.2
1.7
3.3
(a...
実験結果
OpenMT12の1位を数ポ
イント上回るBLEU値を
達成!
感想:これはDeepではない
●  隠れ層は3層だけ!
●  しかも2層にしてもスコアは0.2下がるだけ
o  アブストでの速度向上は、隠れ層を2層にした場合
●  論文にもdeepという単語は出てこない
Deep LearningのNLP応用はまだ遠い?
以下の手法、全部隠れ層は2以下でいける
●  word2vec
●  paragraph vector
●  neural network joint model
まとめ
●  ニューラルネットを使った翻訳用の言語モ
デルを作った
●  翻訳元言語の情報も使うところが新しい
●  self-normalizationなどの手法で大幅な高速化
を果たし、実用的な速度での翻訳を可能に
した
Upcoming SlideShare
Loading in …5
×

ACL2014読み会:Fast and Robust Neural Network Joint Models for Statistical Machine Translation

3,899 views

Published on

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,899
On SlideShare
0
From Embeds
0
Number of Embeds
2,361
Actions
Shares
0
Downloads
29
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

ACL2014読み会:Fast and Robust Neural Network Joint Models for Statistical Machine Translation

  1. 1. Fast and Robust Neural Network Joint Models for Statistical Machine Translation Authors: Jacob Devlin, Rabih Zbib, Zhongqiang Huang, Thomas Lamar, Richard Schwartz, and John Makhoul 読む人:徳永 2014/07/12 ACL2014読み会@PFI
  2. 2. 自己紹介:徳永拓之 ●  twitter: @tkng ●  Preferred Infrastructure勤務(この会場) ●  MIRU 2014の特別チュートリアルに出ます ●  知的情報処理事業部はじめました
  3. 3. Fast and Robust Neural Network Joint Models for Statistical Machine Translation ●  概要:ニューラルネットを使って翻訳の BLEUスコアを改善した ●  選んだ理由:ベストペーパーだったから  シンプルなアイデアの組合せで良い結果を 出しており、面白かった
  4. 4. 統計的機械翻訳のおさらい P(e|j) = P(j|e) P(e) 翻訳モデルと言語モデルの2つに分けて考える ・翻訳として正しそう ・言語として意味が通る の2つを両立する文を選ぶ
  5. 5. 本論文の言語モデル Bengio et al. (2003)のNNLMの拡張 ●  入力は14単語 ●  各単語を192次元のword vectorに変換 ●  512次元の隠れ層を2つ通す o  tanhで非線形変換 ●  最終層はsoftmax
  6. 6. 図で表現すると 14単語×192次元 512次元 512次元 softmax 入力 (14単語) 0.0021
  7. 7. 本手法のアイデアは3つ ●  NNJM ●  self-normalization ●  pre-computing
  8. 8. NNJM:Neural Network Joint Model ●  言語モデルに翻訳元文の情報を入れる o  結果として、純粋な言語モデルとは言えなくなる o  BLEUが3ptぐらい上がる
  9. 9. NNJMにおける確率モデルの構成 P(wi|wi-2, wi-1, wi+1, wi+2, …, sa-1, sa, sa+1) 普通の言語モデル 翻訳元の単語 aはwiに対応する単語の翻訳元文での位置 (翻訳元文での位置が取れるような翻訳モデ ルを使うことが前提)
  10. 10. 適当にそれっぽく当てはめてみると P(猫|我輩, は, で, ある, …, am, cat, $) 普通の言語モデル 翻訳元の単語
  11. 11. self-normalization (1/3) 問題:softmaxで正規化項の計算が重たい
  12. 12. self-normalization (2/3) 問題:softmaxで正規化項の計算が重たい 解決策:Z(x)が1になるように学習し、デコー ド時にはZ(x)の計算は省略する
  13. 13. self-normalization (3/3) 効果:10倍ぐらい速くなる ※目的関数にそういう項を入れるだけなので、必ず1になるわけではない ※乱暴に感じるが、BLEUは0.1ぐらいしか下がらない
  14. 14. pre-computing (1/3) ●  NNの1段目は、入力コンテキストの単語毎 に192回の積和が512回実行される ●  入力コンテキストは14単語なので、計算回 数は以下になる 192 × 512 × 14 = 約137万回
  15. 15. pre-computing (2/3) ●  単語毎に192次元のベクトル(分散表現)の 値はわかってるので、次の層への影響は事 前に計算できる o  語彙数 × 512 x 14 で、500MB以下で保存可能 ●  512 × 14 = 約7000回の足し算で済む ●  実際にはメモリ待ちが減るのでもっと速く なる
  16. 16. pre-computing (3/3) ●  0.2 × 0.3 + 1.7 × 0.8 + 3.3 × 0.4 = 2.74 ●  <This, (a)> → 2.74 としてキャッシュできる This is a 0.2 1.7 3.3 (a) (b) (c) (d) 0.3 0.8 0.4
  17. 17. 実験結果 OpenMT12の1位を数ポ イント上回るBLEU値を 達成!
  18. 18. 感想:これはDeepではない ●  隠れ層は3層だけ! ●  しかも2層にしてもスコアは0.2下がるだけ o  アブストでの速度向上は、隠れ層を2層にした場合 ●  論文にもdeepという単語は出てこない
  19. 19. Deep LearningのNLP応用はまだ遠い? 以下の手法、全部隠れ層は2以下でいける ●  word2vec ●  paragraph vector ●  neural network joint model
  20. 20. まとめ ●  ニューラルネットを使った翻訳用の言語モ デルを作った ●  翻訳元言語の情報も使うところが新しい ●  self-normalizationなどの手法で大幅な高速化 を果たし、実用的な速度での翻訳を可能に した

×