11/23/2016

Googleの多言語ニューラルマシン翻訳システム

Googleのリサーチブログより。Google翻訳の精度が素晴らしくなった話。

過去10年間、Google翻訳はわずか数言語のサポートから103言語へ、毎日1400億単語を翻訳するまで成長している。これを可能にするため、2つの言語間の翻訳に多くの様々なシステムを構築・維持し、かなりのコンピュータコストを負担する必要があった。多くの分野で改善しているニューラルネットワークで、我々は翻訳の品質を向上させられると確信していたが、実行にはGoogle翻訳の背後にあるテクノロジーの再考が重要だった。

9月に我々はGoogle翻訳を、数百万の用例を学習するエンドツーエンドの学習フレームワーク、そして翻訳品質の重要な改善を提供するGoogleニューラルマシン翻訳(GNMT)と呼ぶ新しいシステムにスイッチすると発表した。GNMTへのスイッチは我々がテストした言語の品質が改善する一方、サポート言語を103に拡大することは大きな挑戦(課題)だった。

Googleの多言語ニューラルマシン翻訳システム: ゼロショット翻訳の実現」の中で、我々は以前のGNMTシステムを一つのシステムが複数言語間の翻訳できるよう拡張することでこの課題を克服した。提案されたアーキテクチャは基本となるGNMTシステムを変更する必要がないが、代わりに翻訳のターゲットとなる言語を明確にするため入力分の先頭に付加的なトークンを使った。翻訳品質を改善することに加え、我々の手法は2つの言語間の翻訳はシステムによって明確には決して分からない「ゼロショット翻訳」も実現した。

Google neural machine trans01

ここにどのように動作するかを示す。まず、アニメーションに青い実線で示す日本語と英語、ハングルと英語を例に多言語システムを教育してみよう。一つのGNMTシステムとして同じサイズを持つ多言語システムは、4つの異なる言語ペア間を翻訳するためにそのパラメータを共有する。この共有はシステムが一つの言語ペアから他のペアに「翻訳知識」を伝達できるようにする。この伝達学習や多言語間翻訳の必要性はシステムにそのモデリング力をより良く使うよう推し進める。

次の疑問が湧いてきた: システムがまだ見たことがない言語ペアの翻訳はできるのだろうか? システムにハングル⇄日本語の用例がないハングルと日本語間の翻訳がその例である。感心することに、答えはyesで、今までにそれを教えられていなくても、それなりのハングルと日本語の翻訳は生成できるのだ。我々はこれを「ゼロショット」翻訳と呼び、アニメーションの黄色の点線で示している。我々が知る限りにおいて、このタイプの移転学習が機械翻訳で動くのは初めてのことである。

ゼロショット翻訳の成功は別の重要な疑問を浮かび上がらせる: 同じ意味を持つ文章は言語に関わらず同様の方法で表現される場合、システムは共通表現、例えば「インターリングア」を学習しているのだろうか? 内部のネットワークデータの3次元表現を使って、我々は日本語、ハングル、英語の全ての可能なペア間で一連の文を翻訳する時、システムを覗くことができる。

Google neural machine trans02

上の図(a)はこれらの翻訳の全体の配置を示している。この図のポイントは意味によって色分けされている: 日本語から英語に翻訳される文と同じ意味を持つ英語からハングルに翻訳される文は同じ色を共有する。この図では、ポイントのグループ分けをはっきりと区別して見ることができるよう、各々が独自の色を持つ。(b)はグループの一つを拡大し、(c)は元の言語によって色分けしている。一つのグループの中で、同じ意味を持つ3つの異なる言語の文が分かる。つまり、ネットワークはフレーズからフレーズの翻訳をシンプルに記憶するよりも、文の意味について何かを記号化しなければならない。我々は、ネットワークの中でインターリングアの存在の表れとしてこれを解釈している。

我々の論文ではより詳しい結果や解析を示しており、その研究結果は機械学習あるいは機械翻訳の研究者だけでなく、複数言語がどのように一つのシステムを利用するマシンによって処理されるか興味がある言語学者などにとっても興味を持ってもらえることを期待する。

最後に、ここに説明した多言語Googleニューラルマシン翻訳システムは全てのGoogle翻訳ユーザに目下のところ稼働中である。多言語システムは現在最近発表された16言語ペアのうち10言語で役立っており、結果として、品質が改善され、プロダクションアーキテクチャが簡素化した。

Hacker NewsTechCrunchSlashdot