Phrase-Based & Neural Unsupervised Machine Translation

https://arxiv.org/abs/1804.07755

何がすごいか

一般に、機械学習モデルの出力精度は教師あり学習のほうが高い。これまでの機械翻訳も当然、教師あり学習を用いていて、このときの教師(=答え)にあたるものは対訳コーパスと呼ばれる。
対訳コーパスの例:

Japanese : 草不可避

English : I can’t help laughing.

英仏とか英中とかなら巨大な対訳コーパスが存在するのでどんどん教師あり学習をしておけば良いんだけど、そんなものがあるのはほんの一握りの言語間だけで、ほとんどは対訳コーパスの量が少ない。
というわけで、この論文では、対訳コーパスがなくても機械翻訳を行おうとしている。

教師なし学習でも高精度

少し前の教師あり学習と遜色ない精度らしい。

Back-Translation

翻訳元文→[翻訳モデル]→翻訳文→[逆翻訳モデル]→逆翻訳文 という変換をする。
このとき、翻訳元文は逆翻訳文にとっての教師データとみなせ、逆翻訳文にとって、翻訳元文と翻訳文の対訳コーパスの関係にあるといえる。
翻訳モデルも逆翻訳モデルも、翻訳元文と逆翻訳文が一致するように学習が進んでいく。

Denoising

もうひとつ、翻訳モデルとは別のノイズ除去モデルを生成する。これは、
翻訳元文 →[ノイズ処理] →ノイズ文→[ノイズ除去モデル]→ノイズ除去文
という変換をする。このとき、ノイズ除去文にとって翻訳元文は教師データとみなせる。
このノイズ除去モデルは、Back-Translationの途中で生成された翻訳文に対して、ノイズ除去を行うために存在する。当然ながら学習の初期段階では上手な翻訳はなされず、逆翻訳モデルはめちゃくちゃな翻訳文を入力データとするので、学習が進んでいかないからだ。

教師なし機械翻訳の3つの基礎的考え

Principles of Unsupervised MT

Initialization

単語や短い句やsub-words units(“de”compress, “co”operation,”微”調整…)を揃える(align)ためにモデルを初期化する。単語群を揃えることで、単語単位(word-by-word)の翻訳が実行できる。この翻訳の結果があまり良くないこともあるが、元の意味を保つことはできている。

Language Modeling

一言語のみの大量のデータがあれば言語モデルを翻訳元言語と翻訳先言語で学習することができる。このモデルは、文をそれぞれの言語でどう読むべきかについて表現する。

Iterative Back-translation

上述したように、Back-translationは教師なし学習を教師あり学習へと変貌させる。これは対訳コーパスがない、一言語のデータに対しては最も効果的な手法となり得る。

まとめ

Back-Translation, Denoising ともにモデルを2つ用いて学習させるという点がGAN(最近とてもアツいのだが調査しきれていない)に似ている気がする。機械翻訳のみならず他の機械学習分野でも同様のアプローチが有効だろう。
とはいえ、モデルを複数個生成して学習させるという性質上、計算リソースとの相談が必要かな。

ちなみに

今回、論文を読むにあたってiBooksを利用したのだが、なかなか良い。

こんな感じでマーカーとか線とかメモとかできる。

知らない単語を選択したら、その場で意味を調べることができたりもするので、論文を読むのが捗った。