投稿

「Zero-Shot 論文」の翻訳

イメージ
ゼロ・ショット翻訳を可能にする Googleの多言語ニューラル機械翻訳システム Melvin Johnson, Mike Schuster, Quoc V. Le, Maxim Krikun, Yonghui Wu, Zhifeng Chen, Nikhil Thorat melvinp, schuster, qvl, krikun ,yonghui,zhifengc,nsthorat@google.com Fernanda Viégas, Martin Wattenberg, Greg Corrado,  Macduff Hughes, Jeffrey Dean 概要 私たちは、単一のニューラル機械翻訳(NMT)モデルを使用して、複数の言語どうしを翻訳する、シンプルで洗練されたソリューションを提案します。 私たちのソリューションでは、基本のアーキテクチャーからモデルのアーキテクチャーを変更する必要はありません。代わりに入力文の始めに特殊な人工的なトークンを導入して、必要なターゲット言語を指定するだけです。エンコーダ、デコーダ、アテンションを含むモデルの残りの部分は変更されず、すべての言語で共有されています。 共有ワードピースのボキャブラリを使用することで、多言語NMTはパラメータを増やさずに、単一のモデルを利用することができるのです。これは、従来の多言語NMTの提案よりも大幅に簡単なものです。私たちの方法は、多くの場合、モデル・パラメータの総数を一定に保ちながら、関連するすべての言語ペアの翻訳品質を改善します。 WMT'14のベンチマークでは、単一の多言語モデルが、英語 -> フランス語翻訳に匹敵するパフォーマンスを達成し、英語 -> ドイツ語の翻訳では、最先端の結果を凌駕しています。同様に、単一の多言語モデルは、それぞれ、フランス語 -> 英語とドイツ語 -> 英語のWMT'14とWMT'15ベンチマークの最新の結果を上回りました。 製品版のコーパスでは、最大12言語対の多言語モデルで、多くの個々のペアの翻訳より良い翻訳が可能になります。 我々のモデルは、モデルが訓練された言語ペアの翻訳品質を向上させることに加えて、訓練中に明示的には見られなかった言語

可微分ニューラルコンピュータとは何か(2) システム概観

イメージ
システム概観 DNCは外部メモリ行列に結合されたニューラルネットワークである。 (ネットワークの動作は、メモリが容量まで満たされていない限りメモリのサイズに依存しないため、メモリは「外部」と見なされる)。このメモリ行列をDNCのRAMと考えるならば、 「コントローラ」と呼ばれるネットワークは、微分可能なCPUである。その動作は、勾配降下法で学習される。 DNCアーキテクチャは、メモリを選択的に読み書きすることができ、メモリの内容を繰り返して修正することが可能である点で、近年のニューラル・メモリー・フレームワークとは異なっている。DNCの以前の形式であるニューラル・チューリング・マシンは、同様の構造を持っていたが、メモリアクセスの方法がより制限されていた(詳細は「Method」の章を参照されたい)。 従来のコンピュータが、メモリ内容にアクセスするためにユニークなアドレスを使用するのに対し、DNCは微分可能なAttentionメカニズムを使用して、$N×W$メモリ行列である$M$内の$N$行、「ロケーション」上に分布を定義する。この分布が、各ロケーションが読取りまたは書込み操作に、関わる程度を表現している。我々はそれを「重み付け」と呼んでいる。 メモリM上の読み出しで、重み付け$w^r$によって返される読み出しベクトル$r$は、メモリ・ロケーションにわたって重み付けされた和である。$r = \sum_{i=1}^N  M [i、\cdot ] w^r [i] $である。ここで、「$\cdot$」は全ての$j = 1, ... ,W$を表している。 同様に、書き出しの操作は、書き出しの重み付け$w^w$を使う。まず、消去ベクトル$e$を使って消去し、その後で、書き出しのベクトル$v$を追加する。  $M[i,j] \leftarrow M [i、j](1-w^w [i]e[j])+ w^w [i]v[j]$ 重みづけを決定して適用する機能の単位は、読み書きヘッドと呼ばれる。ヘッドの動作は、以下に要約する。形式的な記述は、「Methodの」章を参照されたい。 ヘッドとメモリーの間の相互関係 ヘッドは3つの異なる形の微分可能なAttentionを用いる。 コンテンツ検索 第一は、コンテンツ検索である。そこでは、コントローラ

可微分ニューラルコンピュータとは何か(1) 概論

ニューラルネットワークの最前線 Googleニューラル機械翻訳も素晴らしいのだが、ニューラルネットワークの世界では、さらに大きな変化が進行中である。その最前線と言っていいのが、去年の10月に、GoogleのDeepMindチームが、Nature誌に発表した次の論文である。 Alex Graves et al. "Hybrid computing using a neural network with dynamic external memory"  https://goo.gl/r4g5xt ニューラルネットワークに、動的に外部メモリーへのアクセスを可能にすることによって、ニューラルネットと従来のコンピュータのハイブリッドのシステムを提案している。 以下に、この論文の概論部分を翻訳してみた。 動的外部メモリーを持つニューラルネットワークを利用したハイブリッド・コンピューティング Alex Graves, Greg Wayne, Malcolm Reynolds, Tim Harley, Ivo Danihelka, Agnieszka Grabska-Barwińska, Sergio Gómez Colmenarejo, Edward Grefenstette, Tiago Ramalho, John Agapiou, Adrià Puigdomènech Badia, Karl Moritz Hermann, Yori Zwols, Georg Ostrovski, Adam Cain, Helen King, Christopher Summerfield, Phil Blunsom, Koray Kavukcuoglu & Demis Hassabis 人工のニューラルネットワークは、感覚の処理、シーケンスの学習、強化学習には、極めて熟練しているのだが、変数やデータ構造を表現したり、長い時間のスケールでデータを格納する能力には限界を持っている。そうした限界は、ニューラルネットワークが、外部メモリを持たないことによるものだ。 この論文で、我々は、「可微分ニューラル・コンピュータ(DNC: Differentiable Neural Computer)」と呼ばれる機械学習モデルを

Google翻訳のアーキテクチャー(3) Attention Mechanism

イメージ
新しいGoogle翻訳の元になった論文 新しいGoogle翻訳のシステムは、全く新しいアイデアに基づいてスクラッチから作り上げられたものではない。 その基本的なアイデアは、2016年の5月にarXivに投稿された次の論文に多くを負っている。(Google Brainのチームが、新しいシステムを6ヶ月で仕上げたと言っていることと、符合する。) Bahdanau, D., Cho, K., and Bengio, Y.  “Neural machine translation by jointly learning to align and translate”    https://goo.gl/HZxbNH   「近年、ニューラル機械翻訳として提案されたモデルは、多くの場合、Encoder-Decoderのファミリーに属している。そこでは、ソースの文が固定長ベクトルにエンコードされ、そこからデコーダが 翻訳文を生成する。この論文では、固定長ベクトルの使用が、この基本的なEncoder/Decoderアーキテクチャの性能を改善する上でのボトルネックになっていると推論し ... 」 先に見た、Ilya Sutskever らの翻訳システムでは、翻訳されるべき文は、Encoderで、一旦、ある決まった大きさの次元(例えば8000次元)を持つベクトルに変換される。このベクトルからDecoderが翻訳文を生成する。入力された文が、長いものであっても短いものであっても、中間で生成され以降の翻訳プロセスすべての出発点となるこのベクトルの大きさは同じままだ。このシステムでは、長くても短くても入力された文全体が、一つの固定長のベクトルに変換されるのだ。 確かに、そこは翻訳の精度を上げる上でのボトルネックになりうる。事実、Ilya Sutskever らのシステムでは、文の長さが長くなるにつれて、翻訳の精度が低下されるのが観察されるという。 それでは、どうすればいいのか? 「モデルに自動的に、ターゲット・ワードを予測するのに重要なソース・文の一部分について、 (ソフト)検索を可能とすることによって、これを拡張することを提案する。その際、これらの部分を明示的にハードセグメントとして形成する必要はない。」 Attention

Google翻訳のアーキテクチャー(2) Encoder / Decoder

イメージ
Google機械翻訳の基本的な論文 Googleの新しいニューラル機械翻訳システムについては、基本的な論文が二つある。 一つが、去年の10月にarXivに投稿された Yonghui Wuらの" Google’s Neural Machine Translation System: Bridging the Gap between Human and Machine Translation "(「Googleのニューラル機械翻訳システム:人間と機械のギャップを橋渡しするもの」)という論文である。 https://arxiv.org/pdf/1609.08144.pdf もう一つが、同じくarXivに11月に投稿された Melvin Johnsonらの" Google’s Multilingual Neural Machine Translation System: Enabling Zero-Shot Translation " (「Googleの多言語ニューラル機械翻訳システム:ゼロ・ショット翻訳が可能に」) https://arxiv.org/pdf/1611.04558.pdf 前者の論文は、新しいGoogle機械翻訳のニューラル機械翻訳システムの発展形としてのアーキテクチャにフォーカスしたもので、後者の論文は、このGoogle機械翻訳を多言語対応させた時に、翻訳システムとして、どのような特徴を持つかを、述べたものである。 Googleニューラル機械翻訳システムの概観 ここでは、まず前者の論文に依拠して、Googleニューラル機械翻訳システムのアーキテクチャーの概観を見てみようと思う。アーキテクチャーの概念図を下に示す。 左側に、LSTMを8段重ねにした Encoder LSTMがあり、右側には、同じくLSTMを8段重ねにした Decoder LSTMがある。 Googleニューラル機械翻訳 (GNMT : Google Neural Machine Translation )システムは、LSTMを利用したシステムであり、全体としては、Encoder-Decoderのアーキテクチャーを採用していることを確認しよう。 EncoderとDecoderの中間に、Attent

Google翻訳のアーキテクチャー(1) ニューラル機械翻訳モデル

イメージ
ニューラル機械翻訳に先行した機械翻訳モデル 新しいGoogle翻訳は、「ニューラル機械翻訳モデル」に基づいている。それに対して、それ以前のGoogle翻訳は、「統計的機械翻訳モデル」に基づいたものだ。ここでは、まず、新しいGoogle翻訳以前の代表的な機械翻訳モデルを振り返り、ニューラル機械翻訳モデルが、どのような問題意識から生まれたのかを考えてみよう。 ルール・ベース機械翻訳モデル (RBMT) ルール・ベースの機械翻訳モデル(Rule-Based Machine Translation)は、古典的なものだ。日本でも、このモデルに基づく多くの翻訳システムが、かつては作られていた。(こんなリストをネットで見つけた。今から20年以上前のものだ。当時の日本は、AIでも機械翻訳でも、先進国だった。 http://aamt.info/english/mtsys.htm  ) 人間が(ここでは日本人としよう)、英語の文章を日本語の文章に翻訳する場合を考えよう。その時、最低限必要になるのは、次の三つだ。 英語・日本語の辞書 英語の文法の知識 日本語の文法の知識(暗黙の知識を含めて) ただ、これで十分かというと、そうではない。英語の構文を日本語の構文に変換する知識が必要となる。 ルール・ベースの機械翻訳は、基本的には、こうした人間の翻訳作業と同じことを、機械にさせようとする。原理はわかりやすい。機械の翻訳のルールは、人間が手で書くので、誤訳があっても、その原因を突き止めることは容易だ。ただ、電子的に利用可能ないい辞書があるかは分野による。と言って、ゼロから辞書を作るのは手間がかかる。その上、文法構造の解析は、意外と難しい。様々の付加的情報を追加する必要がある。ただ、我々は、母語にせよ外国語にせよ、自分の持つ文法知識を、たいていの場合、ルールとして全て書き下せるわけではないのだ。 統計的機械翻訳モデル (SMT) ルール・ベースの機械翻訳モデルが、その精度を上げるのに伸び悩んでいる中、新しい機械翻訳のモデルに注目が集まる。それが統計的機械翻訳モデル (Statistical Machine Translation)である。 代表的な論文は、次のものだと思う。 1990年 Peter F. Br

初めにことばありき

旧約の「創世記」の「光よあれ」は、ビッグバンを思わせて、物理学者はちょっと萌えるかもしれないのだが、新約の「ヨハネによる福音書」には、言語学者が喜びそうなフレーズがある。 「初めに言があった。言は神と共にあった。言は神であった。」 僕が知っていたのは、「はじめにことばありき」という訳だったのだが。この口語訳での「言」は、英訳だとこうなっている。 "In the beginning was the Word, and the Word was with God, and the Word was God." 「言」= "Word" である。はじめにあったのは、Wordであって、Language ではない。だから、新しい口語訳では、普段、あまり馴染みない「言」という訳語を使ったのかも。「初めに語があった」では、なんかしまらないんだろうな。(僕は、「はじめにことばありき」というフレーズの方が好きだ。) ちなみに、「ヨハネによる福音書」は、英語では、"Gospel of John" という。「ジョンのゴスペル」である。でも、そう日本語に訳してしまうと、ジョン・レノンがバラードではなく、ゴスペルを歌っているようで、まずいんだろうな。 「ことば」・「言」・"Word" と訳されている、元々の言葉を調べてみると面白い。 キリスト教のオーソドックスな原典であるラテン語訳聖書では、この部分は、こうなる。 "In principio erat Verbum, et Verbum erat apud Deum, et Deus erat Verbum" 「イン・プリンキピオー・エラト・ウェルブム」 英訳 Word のラテン語の原語は、Verbum である。この単語、英語に直訳すれば、Verbである。「初めに、動詞があった。」 言語学の「従属性文法 (Dependency Grammar) 」理論の人たち、喜びそう。 もっとも、英語のVerbは、元々は、動詞というより広く言葉全体をさしてたらしい。そのことは、「ノンバーバル・コミュニケーション (Non-Verbal Communication) 」というのが、動詞を使わないコミュニケーション