SlideShare una empresa de Scribd logo
1 de 16
Google's Neural Machine
Translation System: Bridging the
Gap between Human and
Machine Translation
中澤 敏明
2016年 黒橋・河原研 夏の勉強会
http://arxiv.org/abs/1609.08144
NMTの問題点
1. トレーニングも翻訳も(PBSMTに比べて)遅い
2. 低頻度語の翻訳が弱い
– 既存手法はattentionに頼っているが、attentionは
信頼性が低い
• Addressing the Rare Word Problem in Neural Machine
Translation
• On Using Very Large Target Vocabulary for Neural Machine
Translation
– 翻字(transliteration)するべきな時もある
3. 必ずしも入力文の全てを翻訳してくれない
4. いろいろ手法が提案されてるけど、scaleする?
Google’s Neural Machine Translation:
GNMT
• ベースはattentionモデル
• 8層LSTM RNN with residual connection
• 計算の並列化のために、attentionはdecoderの1
層目からencoderの最終層に対して行う
• 重みの量子化(quantization)による高速inference
• Tensor Processing Unit (TPU)
• 低頻度語をsub-word units (wordpieces)で扱う
• beam search decodingでlength normalizationと
coverage penaltyを使う
quality of the system gets closer to that of average
human translators
8層LSTM RNN
• encoderもdecoderも深い方がいい
– subtle irregularitiesを捉えることができる
• しかし単純に積むだけだと、トレーニングが遅
いしうまくトレーニングできない
– 勾配爆発/消失問題が起きるため
– 4層ぐらいが良い、6層は厳しい、8層は無理
• 画像認識で使われたresidual connectionを使
う
– 次の層の入力に、一つ前の層の入力を足す
並列化
• データ並列化: Downpour SGD
– Large Scale Distributed Deep Networks (NIPS2012)
– パラメータを共有している複数(実験では12)のモデル
を同時にトレーニングし、非同期にパラメータを更新
• モデル並列化: GPUをたくさん使う
– 各LSTMを別々のGPUに配置
– 最初の層以外はuni-directionalなので、前の層を待
たなくて良い
– softmax層も語彙ごとに別々のGPUに配置
低頻度語
• 既存研究
– 入力の低頻度語を(attention等で)出力にコピー
– 単語より小さい単位(sub-word unit)を使う
• Google音声認識で使われたwordpiece model
(WPM)を使う
– 日本語/韓国語のsegmentation問題のためらしい
Wordpiece Model: WPM
• “_”は単語の始まりを表す
– これを手掛かりに元の文を復元可能
• トレーニングコーパスとwordpiece数(8kから
32kが良いらしい)が与えられた時、言語モデ
ルの尤度が最小になるようwordpieceを選択
• 使う文字種の数も制限(西洋語で500ぐらい、
アジア言語はもっと多い)
• コピー機能を確保するため、両言語で共通の
wordpieceも用意し、分割が同じになるように
Jet makers feud over seat width with …
_J et _makers _fe ud _over _seat _width _with …
word:
wordpiece:
トレーニング方法
• 普通の最尤法の欠点=訓練とテストの乖離
– BLEUなどのタスクの目標に対して最適化してない
– BLEU値と出力の確率に相関がない
– デコーディング中のエラーに対してロバストでな
い
• 最尤法で訓練してから強化学習
– 実際には最尤方と強化学習の目的関数の重み
付き線形結合に対して最適化
BLEUの代わりに
GLEU: 正解と出力の
1-4 gramのprecision
かrecallの小さい方
量子化による高速化
• 細かいところはよくわからないのでパス!
• ポイントっぽいところ
– 訓練時にLSTMのメモリセルと隠れ層の値を[-δ, δ]に
(δはアニーリング)クリッピングし、後で16bitの整数値
で表現
• どうやって変換しているのか・・・?
– softmaxへの入力を[-γ, γ]に(γは25で固定)クリッピン
グ
• なぜこれが高速化につながるのか・・・?
– LSTM内の重みを丸めて8bit整数で表現
• 浮動小数点数演算を固定小数点数演算に置き
換えることで高速化
beam search decoding
• 通常のbeam search decodingは最も確率の高
い出力を探す
– 出力の長さは候補ごとに異なり、長いものほど確
率が低くなるため、短い出力が選ばれやすい
• length normalization
– 出力候補のlog-probabilityを以下の値で割る
lp(Y) =
(5+ |Y |)a
(5+1)a
coverage penalty
• 入力文の全てをカバーするようにするため
– pi,jは出力のj番目の、入力のi番目へのattention
確率
– attentionされなかった入力単語についてはΣpi,jが
1より小さくなり、ペナルティーがかかる
• 最終的に出力候補のスコアは以下の式
– 実験から、強化学習を行ったモデルでは効果は
非常に小さくなる
cp(X;Y) = b * log(min( pi, j,1.0))
j=1
|Y|
å
i=1
|X|
å
s(Y, X)= log(P(Y | X))/lp(Y)+cp(X;Y)
枝刈り (pruning)
• Beam幅は8-12程度が良いが、4とか2でもそ
こまで悪化しない
• 単語を出力する際、最も良い単語よりも一定
以上低いスコアの単語は考慮しない
• 最もスコアの高い出力候補のスコアより、一
定以上低いスコアの出力候補は枝刈り
• 出力の長さは入力の2倍まで
実験
• データ
– WMT En->Fr (36M), En->De (5M)
– Google En<->Fr, En<->Es, En<->Zh (WMTの100倍
から1000倍のデータサイズらしい)
• 評価
– BLEU, Google内部の7段階人手評価
• トレーニング
– gradient clipping = 5, Adam (60k steps, lr=0.0002)
-> SGD (lr=0.5), 128 mini-batch, lr annealing,
dropout
実験
• 1システムのトレーニング時間
– 最尤訓練: En->Fr (36M)で、96枚のNVIDIA K80
GPU(24GBメモリ)を使って6日間
• K80一枚約80万円ぐらいなので、これだけで8000万円
• 8アンサンブルしてるので全部で6億4000万?
– 強化学習: 400k steps行うのに3日間
• word-base modelのvocabulary size
– source: 212k, target: 80k
– それ以外の語は <first_char>UNK<last_char>に
結果
• WPM-32Kが最もよい
• 8アンサンブルでWMTデータセットでSOTA
• 強化学習の効果はBLEUではあったが、人手
評価ではなかった
• Googleのデータでは人手評価で人間の翻訳
と変わらないぐらいの精度が出たが、評価の
信頼性には疑問が残る
結論
• GPUを湯水のように使って、量子化してTPUも
使って、ネットワークを工夫すれば、精度を保
持したまま速度的にPBSMTをNMTに置き換え
るのも可能?
• 真似できるもんなら真似してみろ

Más contenido relacionado

La actualidad más candente

ConvNetの歴史とResNet亜種、ベストプラクティス
ConvNetの歴史とResNet亜種、ベストプラクティスConvNetの歴史とResNet亜種、ベストプラクティス
ConvNetの歴史とResNet亜種、ベストプラクティスYusuke Uchida
 
畳み込みLstm
畳み込みLstm畳み込みLstm
畳み込みLstmtak9029
 
Disentanglement Survey:Can You Explain How Much Are Generative models Disenta...
Disentanglement Survey:Can You Explain How Much Are Generative models Disenta...Disentanglement Survey:Can You Explain How Much Are Generative models Disenta...
Disentanglement Survey:Can You Explain How Much Are Generative models Disenta...Hideki Tsunashima
 
強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習Eiji Uchibe
 
[DL輪読会]近年のエネルギーベースモデルの進展
[DL輪読会]近年のエネルギーベースモデルの進展[DL輪読会]近年のエネルギーベースモデルの進展
[DL輪読会]近年のエネルギーベースモデルの進展Deep Learning JP
 
[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習Deep Learning JP
 
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...Preferred Networks
 
[DL輪読会]Deep Learning 第15章 表現学習
[DL輪読会]Deep Learning 第15章 表現学習[DL輪読会]Deep Learning 第15章 表現学習
[DL輪読会]Deep Learning 第15章 表現学習Deep Learning JP
 
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoderSho Tatsuno
 
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~SSII
 
Deep Learningによる画像認識革命 ー歴史・最新理論から実践応用までー
Deep Learningによる画像認識革命 ー歴史・最新理論から実践応用までーDeep Learningによる画像認識革命 ー歴史・最新理論から実践応用までー
Deep Learningによる画像認識革命 ー歴史・最新理論から実践応用までーnlab_utokyo
 
【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised LearningまとめDeep Learning JP
 
深層生成モデルと世界モデル
深層生成モデルと世界モデル深層生成モデルと世界モデル
深層生成モデルと世界モデルMasahiro Suzuki
 
深層生成モデルと世界モデル, 深層生成モデルライブラリPixyzについて
深層生成モデルと世界モデル,深層生成モデルライブラリPixyzについて深層生成モデルと世界モデル,深層生成モデルライブラリPixyzについて
深層生成モデルと世界モデル, 深層生成モデルライブラリPixyzについてMasahiro Suzuki
 
モデル高速化百選
モデル高速化百選モデル高速化百選
モデル高速化百選Yusuke Uchida
 
Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法についてTransformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法についてSho Takase
 

La actualidad más candente (20)

ConvNetの歴史とResNet亜種、ベストプラクティス
ConvNetの歴史とResNet亜種、ベストプラクティスConvNetの歴史とResNet亜種、ベストプラクティス
ConvNetの歴史とResNet亜種、ベストプラクティス
 
畳み込みLstm
畳み込みLstm畳み込みLstm
畳み込みLstm
 
Disentanglement Survey:Can You Explain How Much Are Generative models Disenta...
Disentanglement Survey:Can You Explain How Much Are Generative models Disenta...Disentanglement Survey:Can You Explain How Much Are Generative models Disenta...
Disentanglement Survey:Can You Explain How Much Are Generative models Disenta...
 
強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習
 
[DL輪読会]近年のエネルギーベースモデルの進展
[DL輪読会]近年のエネルギーベースモデルの進展[DL輪読会]近年のエネルギーベースモデルの進展
[DL輪読会]近年のエネルギーベースモデルの進展
 
実装レベルで学ぶVQVAE
実装レベルで学ぶVQVAE実装レベルで学ぶVQVAE
実装レベルで学ぶVQVAE
 
[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習
 
A3C解説
A3C解説A3C解説
A3C解説
 
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...
 
[DL輪読会]Deep Learning 第15章 表現学習
[DL輪読会]Deep Learning 第15章 表現学習[DL輪読会]Deep Learning 第15章 表現学習
[DL輪読会]Deep Learning 第15章 表現学習
 
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder
 
Point net
Point netPoint net
Point net
 
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
 
一般向けのDeep Learning
一般向けのDeep Learning一般向けのDeep Learning
一般向けのDeep Learning
 
Deep Learningによる画像認識革命 ー歴史・最新理論から実践応用までー
Deep Learningによる画像認識革命 ー歴史・最新理論から実践応用までーDeep Learningによる画像認識革命 ー歴史・最新理論から実践応用までー
Deep Learningによる画像認識革命 ー歴史・最新理論から実践応用までー
 
【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ
 
深層生成モデルと世界モデル
深層生成モデルと世界モデル深層生成モデルと世界モデル
深層生成モデルと世界モデル
 
深層生成モデルと世界モデル, 深層生成モデルライブラリPixyzについて
深層生成モデルと世界モデル,深層生成モデルライブラリPixyzについて深層生成モデルと世界モデル,深層生成モデルライブラリPixyzについて
深層生成モデルと世界モデル, 深層生成モデルライブラリPixyzについて
 
モデル高速化百選
モデル高速化百選モデル高速化百選
モデル高速化百選
 
Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法についてTransformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法について
 

Destacado

第3回アジア翻訳ワークショップの人手評価結果の分析
第3回アジア翻訳ワークショップの人手評価結果の分析第3回アジア翻訳ワークショップの人手評価結果の分析
第3回アジア翻訳ワークショップの人手評価結果の分析Toshiaki Nakazawa
 
Attention-based NMT description
Attention-based NMT descriptionAttention-based NMT description
Attention-based NMT descriptionToshiaki Nakazawa
 
最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情Yuta Kikuchi
 
ニューラル機械翻訳の動向@IBIS2017
ニューラル機械翻訳の動向@IBIS2017ニューラル機械翻訳の動向@IBIS2017
ニューラル機械翻訳の動向@IBIS2017Toshiaki Nakazawa
 
Insertion Position Selection Model for Flexible Non-Terminals in Dependency T...
Insertion Position Selection Model for Flexible Non-Terminals in Dependency T...Insertion Position Selection Model for Flexible Non-Terminals in Dependency T...
Insertion Position Selection Model for Flexible Non-Terminals in Dependency T...Toshiaki Nakazawa
 
Promoting Science and Technology Exchange using Machine Translation
Promoting Science and Technology Exchange using Machine TranslationPromoting Science and Technology Exchange using Machine Translation
Promoting Science and Technology Exchange using Machine TranslationToshiaki Nakazawa
 
3-step Parallel Corpus Cleaning using Monolingual Crowd Workers
3-step Parallel Corpus Cleaning using Monolingual Crowd Workers3-step Parallel Corpus Cleaning using Monolingual Crowd Workers
3-step Parallel Corpus Cleaning using Monolingual Crowd WorkersToshiaki Nakazawa
 
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみたRubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみたYusuke Kon
 
捗るリコメンドシステムの裏事情(ハッカドール)
捗るリコメンドシステムの裏事情(ハッカドール)捗るリコメンドシステムの裏事情(ハッカドール)
捗るリコメンドシステムの裏事情(ハッカドール)mosa siru
 
自然言語処理のためのDeep Learning
自然言語処理のためのDeep Learning自然言語処理のためのDeep Learning
自然言語処理のためのDeep LearningYuta Kikuchi
 
Pythonによる機械学習の最前線
Pythonによる機械学習の最前線Pythonによる機械学習の最前線
Pythonによる機械学習の最前線Kimikazu Kato
 
scikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアルscikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアル敦志 金谷
 
機械学習によるデータ分析まわりのお話
機械学習によるデータ分析まわりのお話機械学習によるデータ分析まわりのお話
機械学習によるデータ分析まわりのお話Ryota Kamoshida
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual TalksYuya Unno
 

Destacado (17)

第3回アジア翻訳ワークショップの人手評価結果の分析
第3回アジア翻訳ワークショップの人手評価結果の分析第3回アジア翻訳ワークショップの人手評価結果の分析
第3回アジア翻訳ワークショップの人手評価結果の分析
 
Attention-based NMT description
Attention-based NMT descriptionAttention-based NMT description
Attention-based NMT description
 
最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情
 
ニューラル機械翻訳の動向@IBIS2017
ニューラル機械翻訳の動向@IBIS2017ニューラル機械翻訳の動向@IBIS2017
ニューラル機械翻訳の動向@IBIS2017
 
Insertion Position Selection Model for Flexible Non-Terminals in Dependency T...
Insertion Position Selection Model for Flexible Non-Terminals in Dependency T...Insertion Position Selection Model for Flexible Non-Terminals in Dependency T...
Insertion Position Selection Model for Flexible Non-Terminals in Dependency T...
 
Promoting Science and Technology Exchange using Machine Translation
Promoting Science and Technology Exchange using Machine TranslationPromoting Science and Technology Exchange using Machine Translation
Promoting Science and Technology Exchange using Machine Translation
 
3-step Parallel Corpus Cleaning using Monolingual Crowd Workers
3-step Parallel Corpus Cleaning using Monolingual Crowd Workers3-step Parallel Corpus Cleaning using Monolingual Crowd Workers
3-step Parallel Corpus Cleaning using Monolingual Crowd Workers
 
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみたRubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
 
捗るリコメンドシステムの裏事情(ハッカドール)
捗るリコメンドシステムの裏事情(ハッカドール)捗るリコメンドシステムの裏事情(ハッカドール)
捗るリコメンドシステムの裏事情(ハッカドール)
 
NLP2017 NMT Tutorial
NLP2017 NMT TutorialNLP2017 NMT Tutorial
NLP2017 NMT Tutorial
 
Deep learning を用いた画像から説明文の自動生成に関する研究の紹介
Deep learning を用いた画像から説明文の自動生成に関する研究の紹介Deep learning を用いた画像から説明文の自動生成に関する研究の紹介
Deep learning を用いた画像から説明文の自動生成に関する研究の紹介
 
自然言語処理のためのDeep Learning
自然言語処理のためのDeep Learning自然言語処理のためのDeep Learning
自然言語処理のためのDeep Learning
 
深層学習による自然言語処理の研究動向
深層学習による自然言語処理の研究動向深層学習による自然言語処理の研究動向
深層学習による自然言語処理の研究動向
 
Pythonによる機械学習の最前線
Pythonによる機械学習の最前線Pythonによる機械学習の最前線
Pythonによる機械学習の最前線
 
scikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアルscikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアル
 
機械学習によるデータ分析まわりのお話
機械学習によるデータ分析まわりのお話機械学習によるデータ分析まわりのお話
機械学習によるデータ分析まわりのお話
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks
 

Similar a G社のNMT論文を読んでみた

Tree-to-Sequence Attentional Neural Machine Translation (ACL 2016)
Tree-to-Sequence Attentional Neural Machine Translation (ACL 2016)Tree-to-Sequence Attentional Neural Machine Translation (ACL 2016)
Tree-to-Sequence Attentional Neural Machine Translation (ACL 2016)Toru Fujino
 
[ACL2016] Achieving Open Vocabulary Neural Machine Translation with Hybrid Wo...
[ACL2016] Achieving Open Vocabulary Neural Machine Translation with Hybrid Wo...[ACL2016] Achieving Open Vocabulary Neural Machine Translation with Hybrid Wo...
[ACL2016] Achieving Open Vocabulary Neural Machine Translation with Hybrid Wo...Hayahide Yamagishi
 
できる!並列・並行プログラミング
できる!並列・並行プログラミングできる!並列・並行プログラミング
できる!並列・並行プログラミングPreferred Networks
 
【Hpcstudy】みんな、ベンチマークどうやってるの?
【Hpcstudy】みんな、ベンチマークどうやってるの?【Hpcstudy】みんな、ベンチマークどうやってるの?
【Hpcstudy】みんな、ベンチマークどうやってるの?Seiichiro Ishida
 
スライド作成入門
スライド作成入門スライド作成入門
スライド作成入門Takahiko Ito
 
読みやすいプログラム、書き換えやすいプログラム
読みやすいプログラム、書き換えやすいプログラム読みやすいプログラム、書き換えやすいプログラム
読みやすいプログラム、書き換えやすいプログラムamusementcreators
 
Memory-augmented Neural Machine Translation
Memory-augmented Neural Machine TranslationMemory-augmented Neural Machine Translation
Memory-augmented Neural Machine TranslationSatoru Katsumata
 

Similar a G社のNMT論文を読んでみた (9)

Extract and edit
Extract and editExtract and edit
Extract and edit
 
Tree-to-Sequence Attentional Neural Machine Translation (ACL 2016)
Tree-to-Sequence Attentional Neural Machine Translation (ACL 2016)Tree-to-Sequence Attentional Neural Machine Translation (ACL 2016)
Tree-to-Sequence Attentional Neural Machine Translation (ACL 2016)
 
Agreement for rnn
Agreement for rnnAgreement for rnn
Agreement for rnn
 
[ACL2016] Achieving Open Vocabulary Neural Machine Translation with Hybrid Wo...
[ACL2016] Achieving Open Vocabulary Neural Machine Translation with Hybrid Wo...[ACL2016] Achieving Open Vocabulary Neural Machine Translation with Hybrid Wo...
[ACL2016] Achieving Open Vocabulary Neural Machine Translation with Hybrid Wo...
 
できる!並列・並行プログラミング
できる!並列・並行プログラミングできる!並列・並行プログラミング
できる!並列・並行プログラミング
 
【Hpcstudy】みんな、ベンチマークどうやってるの?
【Hpcstudy】みんな、ベンチマークどうやってるの?【Hpcstudy】みんな、ベンチマークどうやってるの?
【Hpcstudy】みんな、ベンチマークどうやってるの?
 
スライド作成入門
スライド作成入門スライド作成入門
スライド作成入門
 
読みやすいプログラム、書き換えやすいプログラム
読みやすいプログラム、書き換えやすいプログラム読みやすいプログラム、書き換えやすいプログラム
読みやすいプログラム、書き換えやすいプログラム
 
Memory-augmented Neural Machine Translation
Memory-augmented Neural Machine TranslationMemory-augmented Neural Machine Translation
Memory-augmented Neural Machine Translation
 

G社のNMT論文を読んでみた

  • 1. Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation 中澤 敏明 2016年 黒橋・河原研 夏の勉強会 http://arxiv.org/abs/1609.08144
  • 2. NMTの問題点 1. トレーニングも翻訳も(PBSMTに比べて)遅い 2. 低頻度語の翻訳が弱い – 既存手法はattentionに頼っているが、attentionは 信頼性が低い • Addressing the Rare Word Problem in Neural Machine Translation • On Using Very Large Target Vocabulary for Neural Machine Translation – 翻字(transliteration)するべきな時もある 3. 必ずしも入力文の全てを翻訳してくれない 4. いろいろ手法が提案されてるけど、scaleする?
  • 3. Google’s Neural Machine Translation: GNMT • ベースはattentionモデル • 8層LSTM RNN with residual connection • 計算の並列化のために、attentionはdecoderの1 層目からencoderの最終層に対して行う • 重みの量子化(quantization)による高速inference • Tensor Processing Unit (TPU) • 低頻度語をsub-word units (wordpieces)で扱う • beam search decodingでlength normalizationと coverage penaltyを使う quality of the system gets closer to that of average human translators
  • 4. 8層LSTM RNN • encoderもdecoderも深い方がいい – subtle irregularitiesを捉えることができる • しかし単純に積むだけだと、トレーニングが遅 いしうまくトレーニングできない – 勾配爆発/消失問題が起きるため – 4層ぐらいが良い、6層は厳しい、8層は無理 • 画像認識で使われたresidual connectionを使 う – 次の層の入力に、一つ前の層の入力を足す
  • 5. 並列化 • データ並列化: Downpour SGD – Large Scale Distributed Deep Networks (NIPS2012) – パラメータを共有している複数(実験では12)のモデル を同時にトレーニングし、非同期にパラメータを更新 • モデル並列化: GPUをたくさん使う – 各LSTMを別々のGPUに配置 – 最初の層以外はuni-directionalなので、前の層を待 たなくて良い – softmax層も語彙ごとに別々のGPUに配置
  • 6. 低頻度語 • 既存研究 – 入力の低頻度語を(attention等で)出力にコピー – 単語より小さい単位(sub-word unit)を使う • Google音声認識で使われたwordpiece model (WPM)を使う – 日本語/韓国語のsegmentation問題のためらしい
  • 7. Wordpiece Model: WPM • “_”は単語の始まりを表す – これを手掛かりに元の文を復元可能 • トレーニングコーパスとwordpiece数(8kから 32kが良いらしい)が与えられた時、言語モデ ルの尤度が最小になるようwordpieceを選択 • 使う文字種の数も制限(西洋語で500ぐらい、 アジア言語はもっと多い) • コピー機能を確保するため、両言語で共通の wordpieceも用意し、分割が同じになるように Jet makers feud over seat width with … _J et _makers _fe ud _over _seat _width _with … word: wordpiece:
  • 8. トレーニング方法 • 普通の最尤法の欠点=訓練とテストの乖離 – BLEUなどのタスクの目標に対して最適化してない – BLEU値と出力の確率に相関がない – デコーディング中のエラーに対してロバストでな い • 最尤法で訓練してから強化学習 – 実際には最尤方と強化学習の目的関数の重み 付き線形結合に対して最適化 BLEUの代わりに GLEU: 正解と出力の 1-4 gramのprecision かrecallの小さい方
  • 9. 量子化による高速化 • 細かいところはよくわからないのでパス! • ポイントっぽいところ – 訓練時にLSTMのメモリセルと隠れ層の値を[-δ, δ]に (δはアニーリング)クリッピングし、後で16bitの整数値 で表現 • どうやって変換しているのか・・・? – softmaxへの入力を[-γ, γ]に(γは25で固定)クリッピン グ • なぜこれが高速化につながるのか・・・? – LSTM内の重みを丸めて8bit整数で表現 • 浮動小数点数演算を固定小数点数演算に置き 換えることで高速化
  • 10. beam search decoding • 通常のbeam search decodingは最も確率の高 い出力を探す – 出力の長さは候補ごとに異なり、長いものほど確 率が低くなるため、短い出力が選ばれやすい • length normalization – 出力候補のlog-probabilityを以下の値で割る lp(Y) = (5+ |Y |)a (5+1)a
  • 11. coverage penalty • 入力文の全てをカバーするようにするため – pi,jは出力のj番目の、入力のi番目へのattention 確率 – attentionされなかった入力単語についてはΣpi,jが 1より小さくなり、ペナルティーがかかる • 最終的に出力候補のスコアは以下の式 – 実験から、強化学習を行ったモデルでは効果は 非常に小さくなる cp(X;Y) = b * log(min( pi, j,1.0)) j=1 |Y| å i=1 |X| å s(Y, X)= log(P(Y | X))/lp(Y)+cp(X;Y)
  • 12. 枝刈り (pruning) • Beam幅は8-12程度が良いが、4とか2でもそ こまで悪化しない • 単語を出力する際、最も良い単語よりも一定 以上低いスコアの単語は考慮しない • 最もスコアの高い出力候補のスコアより、一 定以上低いスコアの出力候補は枝刈り • 出力の長さは入力の2倍まで
  • 13. 実験 • データ – WMT En->Fr (36M), En->De (5M) – Google En<->Fr, En<->Es, En<->Zh (WMTの100倍 から1000倍のデータサイズらしい) • 評価 – BLEU, Google内部の7段階人手評価 • トレーニング – gradient clipping = 5, Adam (60k steps, lr=0.0002) -> SGD (lr=0.5), 128 mini-batch, lr annealing, dropout
  • 14. 実験 • 1システムのトレーニング時間 – 最尤訓練: En->Fr (36M)で、96枚のNVIDIA K80 GPU(24GBメモリ)を使って6日間 • K80一枚約80万円ぐらいなので、これだけで8000万円 • 8アンサンブルしてるので全部で6億4000万? – 強化学習: 400k steps行うのに3日間 • word-base modelのvocabulary size – source: 212k, target: 80k – それ以外の語は <first_char>UNK<last_char>に
  • 15. 結果 • WPM-32Kが最もよい • 8アンサンブルでWMTデータセットでSOTA • 強化学習の効果はBLEUではあったが、人手 評価ではなかった • Googleのデータでは人手評価で人間の翻訳 と変わらないぐらいの精度が出たが、評価の 信頼性には疑問が残る