AdvGen:ニューラル機械翻訳を堅牢にするために敵対的サンプルを利用(1/2)

  • 2019.08.05
  • AI
AdvGen:ニューラル機械翻訳を堅牢にするために敵対的サンプルを利用(1/2)

1.AdvGen:ニューラル機械翻訳を堅牢にするために敵対的サンプルを利用(1/2)まとめ

・文法等を意識せずとも言語を他の言語に直接翻訳するニューラル機械翻訳は大きな成功を収めている
・しかし、ニューラル機械翻訳は入力文のわずかな違いで大きく挙動を変える不安定さを内包している
・ニューラル機械翻訳が誤訳しそうな単語の置き換えをわざと行って堅牢性を向上させる試みが発表された

2.AdvGenとは?

以下、ai.googleblog.comより「Robust Neural Machine Translation」の意訳です。元記事は2019年7月29日、Yong Chengさんによる投稿です。

近年、Transformerモデルを使用したニューラル機械翻訳(NMT:Neural Machine Translation)は大きな成功を収めています。ディープニューラルネットワークに基づいて、NMTモデルは通常、言語データのみに基づいて学習します。文法等を明示的に人間がルールとして設定する必要がなく、非常に大きなパラレルコーパス(翻訳元言語の入力文と翻訳先言語の出力文がペアになった言語資料)を使ってエンドツーエンドでトレーニングされるのです。

この大きな成功にもかかわらず、NMTモデルは入力データの摂動(微妙なブレ)に対して敏感すぎる反応を示す事があります。これは、訳漏れ、重複訳、誤翻訳など、さまざまなエラーとして現れる可能性があります。例えば、以下のようなドイツ語の入力文が与えられた場合、最先端のNMTモデルであるTransformerは正しい翻訳を生成します。

ドイツ語による入力
「Der Sprecher des Untersuchungsausschusses hat angek?ndigt, vor Gericht zu ziehen, falls sich die geladenen Zeugen weiterhin weigern sollten, eine Aussage zu machen.”

英語に翻訳した結果
「The spokesman of the Committee of Inquiry has announced that if the witnesses summoned continue to refuse to testify, he will be brought to court.」

日本語訳
査問委員会のスポークスマンは、喚問された証人が証言を拒否し続けると、証人は法廷に立たされる事になると発表しました。(罰っせられるのは証人自身)

しかし、入力文に微妙な変更を加えると、たとえばgeladenenを同義語のvorgeladenenに変更すると、翻訳はまるで異なったものになります。(以下の訳は正しくありません)。

ドイツ語による単語を置換した入力
「Der Sprecher des Untersuchungsausschusses hat angek?ndigt, vor Gericht zu ziehen, falls sich die vorgeladenen Zeugen weiterhin weigern sollten, eine Aussage zu machen.」

英語に翻訳した結果
The investigative committee has announced that he will be brought to justice if the witnesses who have been invited continue to refuse to testify.

日本語訳
調査委員会は、もし、召還された証人が証言を拒否し続けるなら、彼は処罰されると発表しました。(罰っせられるのは証人と違う人)

NMTモデルにおけるこの堅牢性の欠如は、多くの商用システムは、このレベルの翻訳の不安定さを許容する事ができないため、機械翻訳システムを業務に採用する事を難しくします。従って、堅牢な翻訳モデルを学習させることは、単に望ましいと言うだけではなく、多くの場面で必要とされる事です。

しかしながら、ニューラルネットワークの堅牢性はコンピュータビジョン研究のコミュニティでは広く研究されてきましたが、堅牢な機械翻訳モデルに関する先行研究はほんの少数しか文献に見出すことができません。

論文「Robust Neural Machine Translation with Doubly Adversarial Inputs」(ACL 2019で発表)では、敵対的サンプルを生成し、それを使って、入力文の微妙な差異に対する機械翻訳モデルの安定性を改善するアプローチを提案しています。

モデルの翻訳を歪めることを意図して敢えて生成した敵対的なサンプルと直接対決する事で、高い堅牢性を持つようにNMTモデルを学習させます。このアプローチが標準ベンチマークでNMTモデルのパフォーマンスを向上させることを以下に示します。

AdvGenを使ったモデルのトレーニング
理想的なNMTモデルの挙動とは、わずかに違うだけの入力文に対しては同じ翻訳文を出力する事です。私達のアプローチの背後にある考えは、モデルの堅牢性を改善することを期待して、敵対的な入力をわざと入力して翻訳モデルを混乱させることです。

これはAdversarial Generation(AdvGen)と呼ばれるアルゴリズムを使用して行われます。AdvGenは、モデルを混乱させるためにもっともらしい敵対的な例文を生成し、次に防御的な訓練のためにそれらをモデルにフィードバックします。

この方法は敵対的生成ネットワーク(GAN)のアイデアに触発されていますが、識別ネットワークに頼るのではなく、単に敵対的なサンプルをトレーニングに適用し、トレーニングデータセットを効果的に多様化し、拡張します。

最初のステップは、AdvGenを使ってモデルを小さく攪乱させることです。まず、Transformerを使用して、元となる入力文、ターゲット入力文、およびターゲット出力文に基づいて翻訳損失を計算します。

次に、AdvGenは、一様分布(全ての事象の起こる確率が等しいモデル)を仮定して、元となる入力文中のいくつかの単語をランダムに選択します。

各単語には、類似の単語、つまり置換に使用できる候補の単語リストが関連付けられています。AdvGenから、Transformerの出力にエラーが発生する可能性が最も高い単語を選択し、置換します。その後、この生成された敵対的な文章がTransformerにフィードバックされ、防御段階が開始されます。


まず、Transformerモデルが元となる入力文(左下)に適用され、ターゲット出力文(右上)とターゲット入力文(右上、<sos>から始まります)と組み合わせて、翻訳損失を計算します。AdvGen関数は、原文、単語選択分布、単語候補、および翻訳損失を入力として使用して、敵対的なサンプルを作り出します。

3.AdvGen:ニューラル機械翻訳を堅牢にするために敵対的サンプルを利用(1/2)まとめ

1)ai.googleblog.com
Robust Neural Machine Translation

2)arxiv.org
Robust Neural Machine Translation with Doubly Adversarial Inputs