2017年3月24日金曜日

古代と現代のパラレル・コーパス

機械翻訳では、同じ意味の二つの言語の文を集めたパラレル・コーパスが不可欠だ。

この世界で標準的に利用されているWMTというデータセットがあるのだが、WMT‘14の英語(En) <-> ドイツ語(De)データセットには、500万の文のペアが含まれている。すごいと驚いてはいけない。

WMT‘14の英語(En)<-> フランス語(Fr)データセットには、3,600万もの文のペアが含まれている。

これは、英語・フランス語のパラレル・コーパスパラレル・コーパスの例。Gale & Church "A Program for Aligning Sentences in Bilingual Corpora"
http://www.aclweb.org/anthology/J93-1004.pdfから。




ところが、上には上がある。

Googleのニューラル機械翻訳の論文を読んでいたら、すごいことがサラリと書かれていた。

「わしら、Google社内で機械翻訳のためコーパス持っているんだけど、それって、WMTより、二桁から三桁大きいんだよね。エヘン。」

噂には、聞いてはいたが、「WMTより、二桁から三桁大きい」は、すごい。どうりで、100個のGPU使って、訓練に3週間もかかるわけだ。WMTだけだったら、そんなに時間かからないはず。

アマノジャクなので、別のことを考える。

「でも、そんなにデータ持ってて、あなたは賢いの?」

「パラレル・コーパスって、昔からあったよね。ロゼッタ・ストーンってそうだろ。」
 

シャンポリオンが、これを使って、古代エジプトの象形文字を解読した。

ローリンソンとヒンクスが、楔形文字を解読するのに使ったベヒストゥン碑文も、立派なパラレル・コーパスだ。



若い時に、確か、みすずの本で古代エーゲ海文明の「線文字B」の解読の本を読んだことも思い出した。ヴェントリスは、天才だ。パラレル・コーパスなんかなくても、未知の文字を解読できる。

21世紀になって、クレタのGareth Owensは、たった一つの粘土板Phaistos diskにきざまれた、45種類の「文字」で書かれた241文字の「文」の解読に成功したという。 女神への祈りだという。https://goo.gl/4Ye6Be 


翻訳の世界には、機械にできないことでも、人間ならできることもあるのだ。

2017年3月21日火曜日

「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言語対の多言語モデルで、多くの個々のペアの翻訳より良い翻訳が可能になります。

我々のモデルは、モデルが訓練された言語ペアの翻訳品質を向上させることに加えて、訓練中に明示的には見られなかった言語ペアの間の暗黙的な橋渡しを実行することも学ぶことができました。それは、翻訳の学習とゼロ・ショット翻訳がニューラル翻訳で可能であることを示しています。

最後に、私たちのモデルには、普遍的なインターリンガ表現が存在することを示唆する分析を示し、複数の言語を混在させた時に起きる、興味深い例を示します。

1 はじめに


ニューラル機械翻訳(NMT)[22,2,5]は、多くの大規模な環境で急速に採用されてきた機械翻訳に対するエンドツーエンドのアプローチです[24]。このようなシステムのほとんどは、単一の言語のペアのために構築されていました 。 基本的なNMTアーキテクチャを大幅に変更することなく、単一のモデルを使用して複数言語のペアを処理するための十分に単純で効率的な方法はありませんでした。

この論文では、単一のモデルを使用して多言語間で翻訳を行うための簡単な方法を紹介します。多言語データを利用することで、関連するすべての言語のNMTを改善します。私たちの方法では、従来のNMTモデルアーキテクチャに変更を加える必要はありません。代わりに、必要なターゲット言語を示す人工的なトークンを、入力シーケンスに追加します。 [24]で説明されているように、エンコーダー、デコーダー、アテンション、共有ワードピースの語彙のすべての他の部分はまったく同じです。私たちは私たちのシステムを、多言語 GNMTと呼びます。なぜなら、それは[24]の拡張版だからです。この方法にはいくつかの魅力的な利点があります。


シンプルさ:モデルのアーキテクチャは変更されていないため、より多くの言語へのスケーリングは簡単です。新しいデータは単純に追加され、オーバーサンプリングまたはアンダーサンプリングによってすべての言語が適切に表現されます。ターゲット言語が変更された場合には、新しいトークンが使用されます。これにより、複数の言語を扱う際に必要なモデルの総数を減らすことができるため、製品版の展開も簡単なものになります。 Googleでは、ソースとターゲットとして合計100以上の言語をサポートしているため、もし、それぞれの翻訳のモデルが、1つの言語ペアしかサポートしていないとすれば、すべての言語ペア間の最良の翻訳を得るためには、理論的には、$100^2$ものモデルが必要になるはずです。明らかに、これは製品版の環境では問題です。


リソースの少ない言語の改善:多言語NMTモデルでは、すべてのパラメータが、モデル化されているすべての言語ペアによって暗黙のうちにに共有されます。これにより、モデルは、トレーニングを通じて言語の境界を越えて一般化されます。利用可能なデータがほとんどない言語のペアと豊富なデータを持つ言語のペアが単一のモデルに混在すると、リソースの少ない言語ペアの翻訳品質が大幅に向上することが観察されています。


ゼロ・ショット翻訳:単一のモデルで複数の言語ペアをモデリングすることの驚くべきメリットは、モデルが、これまで見たことのない言語ペア間の翻訳(ゼロ・ショット翻訳)を暗黙のうちに学習することです。 たとえば、ポルトガル語から英語、英語からスペイン語のサンプルで訓練された多言語NMTモデルでは、その言語ペアのデータは見当たらないにもかかわらず、ポルトガル語からスペイン語への合理的な翻訳が生成されます。問題の言語ペアの追加データをほとんど使わずに、ゼロ・ショット言語ペアの品質を簡単に改善できることを、私たちは示します。


この論文の残りの節では、最初に関連した仕事について議論し、多言語システムアーキテクチャをより詳細に説明します。次に、ソースとターゲット側の言語をマージするさまざまな方法を、難易度が増す順に(多対1、1対多、多対多)検討し、いくつかの実験の結果について議論します。 それは、WMTのベンチマークやGoogleの製品版データセットの一部にも適用されます。

翻訳学習の実験の結果を示し、機械翻訳システムで典型的に使用される明示的なブリッジング(すなわち、英語のような一般的な言語に最初に翻訳し、続いて、この共通の言語から希望するターゲット言語に翻訳する)と比較して暗黙的に学習されたブリッジング(ゼロ・ショット翻訳)がどのように実行されるかを示します。

私たちは、新しいシステムの視覚化について説明します、それは、言語間で意味論的表現(インターリンガ)が共有されていることを示す最初の証拠を提供しています。

最後に、ソース側のコード切り替えと重み付けされたターゲット言語の混合といった言語の混合のいくつかの興味深い応用を例とともに示し、さらなる探求の可能な道を示唆します。

2 関連した仕事


インターリンガを用いる翻訳は機械翻訳の古典的な方法です[16、10]。その目覚ましい歴史にもかかわらず、機械翻訳の最も実用的なアプリケーションは、個々の言語ペアに集中してきました。なぜなら、複数の言語間で、信頼できる翻訳を行うシステムを構築するのは非常に難しかったからです。

ニューラル・マシン・トランスレーション[22,2,5]は、機械翻訳に対する有望なエンド・ツー・エンドの学習アプローチであり、様々な方法で多言語機械翻訳に急速に拡張されました。

初期の試みの1つは、マルチタスク学習環境における多言語訓練を提案した[12]の研究です。彼らのモデルは多言語NMTのための基本的なエンコーダ - デコーダネットワークです。ただ、この場合はアテンションの仕組みがありませんでした。彼らは、多言語データを適切に使用するために、サポートされているソースとターゲット言語ごとに1つずつ、複数のエンコーダとデコーダでモデルを拡張します。

同様に[6]においては、ターゲット言語ごとに別々のデコーダとアテンション機構を追加することによって、マルチリンガルNMTを実行するアテンション・ベースのエンコーダ/デコーダアプローチを変更しました。

[3]においては、テキスト以外の複数のモダリティをエンコーダ - デコーダ・フレームワークに組み込んでいます。多言語の訓練のために、特にリソースの少ない言語対のために、いくつかの他のアプローチが提案されています。

例えば、[26]において、モデルが複数の異なるエンコーダを有し、各ソース言語に対して異なるアテンション・メカニズムを持つ複数ソース変換の一つの形が提案されました。しかし、この仕事には、関係するすべての言語の間に多方向の並列コーパスが存在する必要がありますが、これは実際には得るのが難いことです。

我々のアプローチに最も密接に関連しているのは、[7]です。そこでは、単一の共有アテンション機構を使用するマルチウェイ多言語NMTを提案していますが、ソース/ターゲット言語ごとに複数のエンコーダ/デコーダを提案しています。

最近[11]において、複数のソース言語にわたって共有されるCNNベースの文字レベルエンコーダが提案されています。ただし、このアプローチでは、単一のターゲット言語にのみ翻訳を実行できます。

我々のアプローチは、マルチタスク学習フレームワーク[4]に関連しています。その前提にもかかわらず、この枠組みは実世界のアプリケーションでは実用的な成功を収めていません。

音声認識では、単一のモデルを使用して複数の言語をモデル化することについては、多くの成功した報告がなされています(広範な参考文献および参考文献については[17]を参照)。多言語言語処理は、翻訳以外の分野でも成功することが示されています[9、23]。

目的が非常に異なっていますが、その精神においては、私たちと似たアプローチを取る[20]では、ソース文に特別なトークンを追加することによって、ターゲット翻訳の丁寧さのレベルを制御するためにNMTフレームワークが拡張されています。

私たちの方法には、他のシステムにはない利点があります。それは、システムにゼロ・ショット翻訳を実行する能力を与えるということです。それは、訓練中に特定の言語ペアからの明示的なサンプルを見ることなしに、システムがソース言語からターゲット言語に翻訳を行うことができることを意味します。

ゼロショット翻訳は、[8]の直接的な目標でした。この直接の目標を達成することはできませんでしたが、事前に訓練されたマルチウェイ多言語モデルを使用し、あとで、モデルが生成する擬似パラレルデータで微調整する「ゼロリソース」翻訳と呼ばれる処理を実行できました。

私たちの知る限りでは、エンドツーエンド・モデルを使用して本当の多言語翻訳の使用を検証したのは、私たちの仕事が初めてです。結果として、製品として現場でも既に使用されています。これは、機械翻訳における翻訳学習の成功例であるゼロ・ショット翻訳の可能性を、追加の手順なしで示した最初の仕事です。

3 多言語翻訳のシステム・アーキテクチャー



多言語モデルのアーキテクチャ(図1参照)は、Googleのニューラル・マシン・トランスレーション(GNMT)システム[24]と同じものです。(オプションで、エンコーダとデコーダのレイヤー間の直接接続を追加しています。それを、私たちは実験の一部で利用しました。 詳細な説明については、論文を参照してください。)


図1
[24]で説明されているものに加えて、多言語GNMTシステムのモデルアーキテクチャの入力には、必要なターゲット言語を示す人工的なトークンがあります。この例では、トークン<2es>は、ターゲット文がスペイン語であることを示し、ソースの文は処理ステップとして反転されます。ほとんどの実験では、エンコーダとデコーダの間の直接接続も使用しましたが、後でこれらの接続の影響は無視できることを見つけました(ただし、一度訓練でこの接続を利用したら、推論には、この接続は必要になります)。残りのモデル・アーキテクチャは[24]と同じです。


単一システム内で多言語データを利用できるようにするため、私たちは、入力データの簡単な変更を提案しています。入力文の冒頭に人工的なトークンを導入して、モデルが翻訳する対象言語を示すことです。たとえば、次の英語とスペイン語の文章を考えてみましょう。
Hello, how are you? -> ¿Hola como estás?
この文は、次のように変更されて、スペイン語がターゲット言語であることを示します。
<2es> Hello, how are you? -> ¿Hola como estás?

ソース言語を指定していないことに注意してください。モデルはソース言語を自動的に学習します。ソース言語を指定しないと、スペルは同じだが異なるソース言語の、意味が異なる単語の翻訳が曖昧になる可能性があるという欠点があるのですが、コード切り替えを使って簡単に入力を処理できるという利点があります。ほとんどすべての場合で、文脈が正しい翻訳を生成するのに十分な言語の証拠を提供することがわかります。

トークンを入力データに追加した後、複数の言語ペアからなるすべての多言語データを一度にモデル化します。データの一部をオーバーサンプリングまたはアンダーサンプリングして、利用可能な言語データの相対比率を調整します。我々は、トレーニングに使用されるすべてのソースとターゲットのデータを共有するワードピースモデル[18、21]を使用します。通常は32,000ワードピースです。すべてのトレーニングは、[24]で説明されている一般的なNMTパイプラインとして実行されます。それは、TensorFlow [1] で実装されています。

要約すると、このアプローチは、われわれが知りうる選択肢の中で、最もシンプルで最もエレガントです。トレーニングと推論の間に、ソースデータの各センテンスに1つのトークンを追加して、目的のターゲット言語を指定するだけで済みます。


4 実験と結果


この節では、多言語モデルをいくつかの異なる構成で訓練するために提案された方法を適用します。単一または複数のソース/ターゲット言語のモデルを持つことができるので、3つの興味深いケースをテストします。


● 多くのソース言語を1つのターゲット言語(多対1)に、

● 1つのソース言語から多くのターゲット言語(1対多)に、および

● 多くのソース言語を多くのターゲット言語に(多対多)。


私たちは、また、製品版のデータで訓練された単一の大規模モデルで、多くの関連する(あるいは関連しない)言語をまとめたメリットについて、結果を示して議論するでしょう。

最後に、学習データに明示的な例が存在しない言語ペア間でモデルが翻訳することを学習し、さらにデータを追加することでゼロ・ショットの翻訳品質をさらに向上させる実験結果を紹介します。

4.1 データセット、訓練手順、評価基準


WMT'14の英語(En)-> フランス語(Fr)データセット、WMT'14の英語 -> ドイツ語(De)データ、Google内部の製品版データセットのいくつかでモデルを訓練します。

WMT En -> Frでは、トレーニングセットに36Mの文ペアが含まれています。 WMT En -> De訓練セットには、5Mの文ペアが含まれています。

どちらの場合も、以前の作業[14、19、25、24]と比較するテストセットとしてnewstest2014を使用します。

WMT Fr -> EnとDe -> Enでは、newstest2014とnewstest2015をテストセットとして使用します。 WMT'15よりも若干小さいWMT'14データで訓練したにもかかわらず、[13]と同様に、newstest2015でDe -> Enモデルをテストします。 newstest2012とnewstest2013の組み合わせが開発セットとして使用されます。

WMTに加えて、英語 <-> 日本語(Ja)、英語 <-> 韓国語(Ko)、英語 <-> スペイン語(Es)、英語 <-> ポルトガル語(Pt)などの、非常に明確な言語特性を持つ幅広い言語を表現しているGoogle内部のデータセットの多言語アプローチを評価します。

これらのデータセットは、WMTデータセットより2〜3桁大きいものです。私たちの訓練の手順は、[24]で説明したものとほとんど同じです。その論文の詳細な説明を参照してください。

多言語モデルでは、単一言語ペアモデルよりもトレーニングに時間がかかることがあります。これは、各言語のペアがトレーニングプロセスのほんの一部にしか見られないためです。

言語の数に応じて、フルトレーニングには最大10Mステップ、収束までには3週間かかることがあります(約100 GPU)。これらのモデルの収束を高速化するためには、より大きなバッチサイズと通常よりわずかに高めの学習率を初期値として使用します。

標準BLEUスコアメトリックを使用してモデルを評価しました。結果を、[24,22,14,25]と比較可能にするために、公開されていてダウンロードできるMosesの実装の中のmultibleu.plスクリプトで、トークン化されたBLEUスコアを計算しました。

すべての言語ペアが同じ量の訓練データを持つわけではないので、多言語モデルを構築する際には2つの戦略を開拓しました。

一つは、すべての言語ペアのデータを最大言語ペアと同じサイズにオーバーサンプリングします。もう一つは、何の変更もせずにそのままデータを混ぜています。私たちのWMTモデルでは、これらの両方の戦略を使用した結果を報告します。

製品版モデルでは、比率が等しくなるようにデータのバランスを常に取っています。モデルのすべてのコンポーネントを共有するメリットは、ミニバッチには訓練と推論の際に異なる言語ペアのデータが含まれる可能性があることです。これは、言語ペアごとに別々のバッチを用意し、トレーニング中に更新を処理するためのスケジューリング戦略を考案し、複数の言語を扱う際にプロダクションで簡単に導入するよりもずっと簡単です。

4.2 多対1


この節では、複数のソース言語が単一のターゲット言語(言語ペアを組み合わせる最も簡単な方法)を持つ場合を検討します。単一のターゲット言語しかないので、追加のソーストークンは必要ありません。私たちは3つの実験を行います:


● 最初の実験は、WMTデータセット上で行います。ここでは、ドイツ語 -> 英語とフランス語 -> 英語を組み合わせて多言語モデルを学習します。私たちのベースラインは、2つの単一言語ペアモデルです。ドイツ語 -> 英語とフランス語 -> 英語は独立して訓練されています。これらの実験は、言語ペアごとのデータ量が等しくなるようにオーバーサンプリングで1回実行し、もう一回はオーバーサンプリングなしで実行します。


● 2番目の実験は、製品版データに基づいています。ここでは、日本語 -> 英語、韓国語 -> 英語とオーバーサンプリングを組み合わせています。ベースは、日本語 -> 英語、韓国語 -> 英語の2つの言語ペアモデルです。


● 最後の3番目の実験は、製品版データの上で、スペイン語 -> 英語、ポルトガル語 -> 英語の両方を組み合わせたものです。オーバーサンプリングを使用します。ベースラインは、ここでも、独立に訓練された2つの単一言語ペアモデルです。


多言語および単一言語のペアモデルはすべて、単一の言語ペア([24]で説明されているように1024ノードおよび8つのLSTMレイヤーと32kの共有ワードピース・モデル・ボキャブラリを使用)で訓練されたベースラインNMTモデルと同じパラメータ数を持ちます。

これは多言語モデルには、不公平なものと思われます。なぜなら、Nが多言語モデルで結合された言語対の数であれば、単一言語対モデルに比べて、言語対ごとに利用可能なパラメータの数は、N倍だけ減少します。多言語モデルはまた、組み合わせたボキャブラリーを処理しなければなりません。実験を簡単にするため、すべてのモデルでパラメータの数を一定に保つことを選択しました。

表1


結果を表1に示します。すべての実験について、多言語モデルは、言語対ごとに利用可能なパラメータの数に関して上記の欠点にもかかわらず、ベースライン単一システムより優れています。このメリットを説明する可能性のある仮説の1つは、モデルがより多くの英語データをターゲット側に持ち、ソース言語が同じ言語ファミリに属していることです。それで、モデルは有用な一般化を学んでいます。

WMT実験では、French -> Englishの最大利得は+1.27BLEUです。両方のWMTテストセットの結果は、私たちがが知る限り、単一のモデルの他の公開された、どの最先端の結果よりも優れていることに注意してください。製品版の実験では、多言語モデルがベースラインの単一システムよりも+0.8 BLEUほど優れていることがわかります。

4.3 1対多


この節では、単一のソース言語と複数のターゲット言語がある場合の、私たちの方法の応用を探ります。ここでは、ターゲット言語を指定するために入力に追加のトークンを付加する必要があります。ソース言語とターゲット言語が逆になっていることを除けば、前節とほぼ同じ3組の実験を行います。


表2は、複数のターゲット言語に翻訳を実行した場合の結果をまとめたものです。

多言語モデルはベースラインに匹敵し、ある場合にはそれを上回るパフォーマンスを示しますが、全ての場合では、必ずしもそうではありません。英語はスペイン語で+ 0.9BLEUの大きな利得を得ていますが、これまでの結果とは異なり、この一連の実験ではあまり重要なメリットは得られていません。

これはおそらく、デコーダが複数のターゲット言語に翻訳するのがより困難であるという事実によるものです。例えば日本語と韓国語のような異なる記述でも、これらは単一の共有ワードピース語彙に結合されます。また、前述したように、多言語モデルは、単一言語ペアモデルと同じ数のパラメータしか持たないという、不利な点があります。

表2


オーバーサンプリングは、より大きい言語ペア(En -> Fr)の低品質を犠牲にして、小さな言語ペア(En -> De)に役立っています。オーバーサンプリングのないモデルは、期待されるるように、小さなモデルと比較して、より大きな言語でより良い結果を達成します。

これらの両極端の間に、両方の言語に利益をもたらす設定があり、その設定を見つけることが将来の仕事の範囲であることを期待しています。この効果は、小規模なデータセット(WMT)で顕著であり、製品版のデータセットではそれほど顕著ではないこともわかります。

4.4 多対多


この節では、単一のモデル内に複数のソース言語と複数のターゲット言語が存在する場合の実験について報告します。最も困難な設定です。

複数のターゲット言語が与えられているので、上記のように入力の先頭にターゲット言語のトークンを置く必要があります。結果を表3に示します。

単一言語モデルと同じモデルサイズと語彙サイズを持つ多言語製品版モデルは、ベースラインに非常に近いことがわかります。場合によっては、ベースラインモデルよりも優れている場合もあるのですが、他のモデルでは悪化しています。この効果は、このモデルでは、利用可能なすべてのトレーニングデータを利用せず、各言語のペアがベースラインで見られるデータの4分の1しか見ていないためだと考えています。

WMTデータセットでは、小さな言語ペアのオーバーサンプリングの影響をもう一度調査します。以前のセクションと同様の傾向に気付きました。オーバサンプリングは、より小さい言語ペアを、大規模なものを犠牲にして助けるのですが、オーバーサンプリングしないことが、逆の効果を持つようには見えません。

表3


単一言語ペアモデルと同じ総数のパラメータを持つモデルを使用して多数の言語を共同して訓練することで、品質が低下することがありますが、これらのモデルは訓練と製品化の複雑さを軽減します。さらに、これらの多言語モデルには、以下のセクションで詳しく説明するように、より興味深い利点があります。

4.5 大規模実験


この節では、12の製品版の言語のペアを単一言語のペアモデルと同じ数のパラメータを使用して単一の多言語モデルに結合した結果を示します。上記のように、入力にはターゲット言語トークンを前置する必要があります。上記のようにデータのバランスを取るために、より小さな言語のペアからサンプルをオーバーサンプルします。

表4


結果は表4に要約されています。多言語モデルは最高の単一モデルにかなり近く、場合によっては同等の品質を達成することさえあります。私たちは、278Mのパラメータを持つ単一のモデルが、合計3.33Bのパラメータを持つ12のモデルを実行することができることは注目に値することです。

多言語モデルでは、トレーニングの時間とコンピューティングリソースの12分の1で収束する必要があります。もう1つの重要な点は、単一のモデルより少し長く訓練しただけなので、個々の言語のペアは、その単一の言語のペアモデルと比較して、データの12分の1以下のデータしか見ていないことです。

ここでも、多言語モデルにとっては、以下の比較はやや不公平なものなのですが、利用可能なすべてのデータで訓練されたより大きなモデルが、ベースラインと同等またはそれ以上の品質を達成すると期待しています。

要約すると、多言語NMTを使用することで、品質の低下がほとんど、あるいは、まったくないように言語をグループ化でき、トレーニング効率も向上し、モデル数も少なくなり、製品化が容易になるという利点があります。

4.6 ゼロ・ショット翻訳


私たちのアプローチの興味深い利点は、明示的な訓練データがない言語ペアの間でゼロ・ショット翻訳を実行できることです。

これを実証するために、2つの異なる言語ペア、ポルトガル語 -> 英語と英語 -> スペイン語(モデル1)と、英語 <-> ポルトガル語、英語 <-> スペイン語(モデル2)の4つの異なる言語ペアのデータで訓練されたモデルの、2つの多言語モデルを使います。

これらのモデルの両方が、スペイン語 -> ポルトガル語で、合理的に良質な ポルトガル語を生成できることを示しています。私たちの知る限り、これは真の多言語ゼロ・ショット翻訳の最初のデモです。

これまでの多言語モデルと同様に、これらのモデルはいずれも、ベースラインの単一言語ペアモデルと同等かそれよりもわずかに優れています。ゼロ・ショット翻訳が問題なく機能するという楽しい事実の他に、第3言語による明示的なブリッジ処理が不要なため、デコードのスピードが半分になるという利点もあります。

表5は、ポルトガル語ス -> ペイン語の翻訳実験の結果をまとめたものです。行(a)と(b)は、フレーズベースの機械翻訳(PBMT)システムとNMTシステムのパフォーマンスを、ブリッジング(ポルトガル語から英語への翻訳とその結果の英語文のスペイン語への翻訳)行った場合についてに報告しています。

NMTシステムは、BLEUのポイントで2点近くでPBMTシステムより優れていることがわかります。モデル1とモデル2は、ポルトガル語のスペイン語翻訳を行うために、それらの内部でブリッジすることができます。これらの数値は、2つの個別の言語ペアNMTモデルを使用したブリッジングのパフォーマンスと同じようなものなので、ここでは報告していません。比較のために、利用可能なポルトガル語 -> スペイン語のパラレルセンテンス(表5の(c)を参照)をすべて使用して、単一のNMTモデルを作成しました。

表5



最も興味深いのは、モデル1とモデル2の両方が合理的な品質でゼロショット変換を実行できるということです((d)と(e)を参照)。モデル2は、BLEUポイントで3点近くモデル1より優れていることに注目すべきです。言い換えれば、ソース側でスペイン語を追加し、ターゲット側でポルトガル語を追加すると、ポルトガル語 -> スペイン語のゼロ・ショット翻訳に役立ちます。これは、私たちの共有アーキテクチャにより、モデルがこれらすべての言語間のインターリンガを学習できるためだと考えています。私たちは、次の5節で、その詳細を展開します。

最後に、モデル2は、少量のポルトガル語 -> スペイン語のパラレルデータ(表5(c)よりも1桁小さい)で段階的に訓練した時、最良の品質を得ました。

これは、我々の多言語モデルが、暗黙的なブリッジングによるゼロ・ショット変換を実行できることを示しています。それは、少量のデータで段階的に訓練されると、強力なNMTベースラインよりも優れています。

この結果は、特に重要です。英語以外のリソースの少ない言語ペアにとって、ソース言語とターゲット言語の両方が英語でない言語ペアのパラレル・データを取得する方がはるかに難しいからです。パラレル・データの効果については、4.7節で詳しく説明します。

4.7 直接のパラレル・データの効果


このセクションでは、利用可能な並列データを活用してゼロショット変換の品質を向上させる、次の2つの方法について展開します。すなわち、

● ゼロ・ショットの方向に、パラレルデータを追加して、多言語モデルを段階的に訓練する。

● 使用可能なすべてのパラレルデータを均等に混合して、新しい多言語モデルを訓練する。

私たちの実験では、英語 <->  {ベラルーシ語、ロシア語、ウクライナ語}の並列コーパスで訓練された "ゼロ・ショット"と呼ばれるベースラインモデルを使用します。

私たちは、上記のコーパスに、ロシア語 <-> {ベラルーシ語、ウクライナ語}のデータを追加して、2番目のモデルを訓練しました。このモデルを「From-Scratch」と呼びます。どちらのモデルも4つのターゲット言語をサポートし、標準テストセットで評価されます。これまでのように、すべての言語ペアが等しく表されるように、データをオーバーサンプリングします。

最後に、「Zero-Shot」モデルの最良のチェックポイントを取って、「From-Scratch」モデルを短期間(「Zero-Shot」モデルの合計トレーニング時間の3%)訓練します。このモデルを「インクリメンタル」と呼びます。

表6からわかるように、英語 <-> X語方向については、3つのモデルすべてが同等のスコアを示しています。ロシア語 <-> {Belarusian、Ukrainian}の方向では、Zero-Shotモデルは明示的なパラレルデータなしで、1つを除いてすべての方向で比較的高いBLEUスコアを達成しています。これらの言語は言語的に関連している可能性があります。

「From Scratch」列では、新しいモデルをゼロから訓練するとゼロ・ショット翻訳の方向がさらに向上することがわかります。しかし、この戦略は、英語 <->  X語方向に若干のマイナスの影響を与えます。これは、オーバーサンプリングの戦略がこれらの方向からのデータの頻度を減らすためです。

最後の列では、直接的な並列データを使用した段階的なトレーニングが、ゼロショット言語ペアの最初の2つの列のBLEUスコアの差の大部分を回復することがわかります。要約すると、私たちの共有アーキテクチャは、ゼロショット言語のペアを非常によくモデル化し、少量の追加並列データで品質を簡単に向上させることができます。

表6


5 ビジュアルな分析


モデルを複数の言語にまたがってトレーニングすることで、個々の言語レベルでのパフォーマンスが向上し、ゼロ・ショット翻訳が有効になることがわかるということが、この論文の結論なのですが、この結果は、これらのタスクがモデル内でどのように処理されるかについて、いくつかの問題を提起します。例えば、次のような問題です。

● 言語にかかわらず、ネットワークは、同じ意味を持つ文章が同じような方法で表現される何らかの共有表現を学習しているのか?

● モデルは、訓練された言語ペアを扱うのと同じ方法で、ゼロ・ショット翻訳を実行しているのか?

ネットワークによって使用される表現を研究する1つの方法は、翻訳中のネットワークの活性化の状態を見ることです。研究の出発点は、アテンション・ベクトルのセット、すなわち、エンコーダとデコーダのネットワークを接続するレイヤ内の活性化の状況(図1の中央の青色のボックスを参照)です。

単一の文の翻訳は、一連のアテンション・ベクトルを生じさせます。この文脈において、共有表現に関する元々の問題は、異なる文のベクトルのシーケンスがどのように関連しているかを調べることによって研究することができます。

実際の例を調べて見ましょう。

● ソースまたはターゲット言語に応じて、文章がクラスタリングされているのか?

● あるいは、言語にかかわらず、同様の意味を持つ文章がクラスタリングされるのか?

私たちは、人間がより簡単に解釈できる内部埋め込みの低次元表現を見て、これらの疑問に対する答えを見つけようとします。

5.1 インターリンガの証拠


いくつかの訓練されたネットワークは、実際に共有表現の強いビジュアルな証拠を示します。

たとえば、以下の図2は、英語 <-> JapaneseとEnglish <-> Koreanでトレーニングされた多対多モデルから作成されたものです。モデルの実際の動作を視覚化するために、意味論的に同一の言語間フレーズの74個のトリプルからなる小さなコーパスから始めました。

つまり、それぞれのトリプルには、同じ基本的な意味を持つ英語、日本語、韓国語のフレーズが含まれています。これらのトリプルをコンパイルするために、私たちは日本語と韓国語の翻訳と対になった、英語の文章のための正しい(Ground Truth)データベースを検索しました。

次に、訓練されたモデルを適用して、各トリプルの各センテンスを他の2つの言語に翻訳しました。このプロセスを実行すると、各トリプルに基づいて6つの新しい文が得られ、9,978のステップの合計74 * 6 = 444の翻訳が、同じ数のアテンション・ベクトルに対応することになります。

アテンション・ベクトルは高次元であるため、TensorFlow Embedding Projector2を使用して、t-SNE [15]を介して、より理解しやすいな3D空間にマッピングします。次の図では、各ポイントは翻訳プロセス中の単一のデコードステップを表しています。与えられたセンテンスのステップを表すポイントは線分で結ばれます。

図2には、9,978個の注意ベクトルの全体像が示されています。同じ元の文のトリプルから生成された点にはすべて同じ(ランダムな)色が与えられます。

これらのクラスタを調べてみると、各ストランドが単一のセンテンスを表し、ストランドのクラスタは、一般に、同じ元のセンテンスの翻訳セットを表しているのですが、ソースおよびターゲット言語が異なることを示しています。

図の右は、2つのクローズアップです。個々のクラスタは、同じトリプルのメンバーシップに基づいていて色付けされています。また、ソース言語で色付けされています。

5.2 部分的に分離された表現


すべてのモデルが、そのようなクリーンな意味クラスタリングを示すわけではありません。

時には、ある一つの言語ペアからの多くのアテンション・ベクトルを含む別々の大きなクラスターと共存する空間の一部の領域で、共同の埋め込みを観察しました。

たとえば、図3aは、ポルトガル語 -> 英語(青)と英語 -> スペイン語(黄色)で訓練され、ポルトガル語からスペイン語(赤)のゼロショット変換を実行したモデルからの注意ベクトルのt-SNEプロジェクションを示しています。

このプロジェクションは、上記のように翻訳された153個の意味的に同一のトリプルを示しています。総翻訳数は459あります。左の大きな赤い領域には、主にゼロショットのポルトガル語 -> スペイン語の翻訳が含まれています。言い換えれば、かなりの数の文では、ゼロ・ショット翻訳は、2つの訓練された翻訳方向とは異なる埋め込みを持っています。

一方、いくつかのゼロ・ショット翻訳ベクトルは、他の言語で見られる埋め込みの近くにあるように見えます(右の大きな領域と同様)。

「分離された」ゼロ・ショット変換の大きなクラスターが、何らかの重要性を持っているかどうかを尋ねるのは自然なことです。確定的な回答にはさらなる調査が必要ですが、この場合、分離された領域のゼロ・ショット翻訳ではBLEUスコアが低くなる傾向があります。同じ意味の文の埋め込みの間の距離と翻訳品質との関係を測定するために、最初に各翻訳のBLEUスコアを計算しました。 (これは、すべてのトリプルのフレーズが、正しい(Ground-Truth)データから抽出されたために可能です。)




図2

74の意味的に同一の文の埋め込みのt-SNEプロジェクション。英語 <-> 日本語と英語 <-> 韓国語のデータで訓練されたモデルは、6つの可能な方向すべてに翻訳され、合計9,978ステップ(画像内の点)を生み出す(a)埋め込みの鳥瞰図、同じ意味の文のインデックスで色付けされています。それぞれが単一の色を有する明確に定義されたクラスターが存在することは明らかです。 (b)同じ色のクラスターの1つを拡大したビュー。このクラスター内のすべての文章は、「成層圏は高度約10kmから約50kmまで広がっています。」です。(c)元の言語で色分けされた同じクラスター。このクラスタ内では、3つのソース言語すべてが表示されます。




図3

(a)ポルトガル語 -> 英語(青)と、英語 -> スペイン語(オレンジ)で訓練されたモデルの埋め込みのt-SNEプロジェクションの鳥瞰図。左の大きな赤い領域には、主にポルトガル語 -> スペイン語のゼロ・ショットの翻訳が含まれています。 (b)ゼロ・ショット翻訳のBLEUスコアとゼロ・ショット翻訳とノンブリッジ翻訳との平均点距離の散布図。ピアソン相関係数は-0.42。図3bから、この相違度スコアの値はピアソン相関係数が-0.42のゼロショット変換の品質と相関があり、中程度の相関を示していることがわかります。将来の研究のための興味深い領域は、訓練された言語ペアを介した翻訳の埋め込みと比較することによって、デコーダ内のゼロショット変換の品質を予測するために、埋め込みの地図とモデル性能との間のより信頼できる対応を見つけることです。



次に、2つのセンテンスが異なるワードピースの数で構成されるかもしれないという事実を考慮して、異なるセンテンスの埋め込みのための非類似性測度を定義する必要がありました。同じ意味を持つ文の埋め込み間の翻訳品質と距離との関係を測定するために、最初にそれぞれの翻訳のBLEUスコアを計算しました。 (これは、すべてのトリプルのフレーズが、正しい(Ground-truth)のデータから抽出されたために可能です。)

次に、2つのセンテンスが、異なるワードピースの数で構成されるかもしれないという事実を考慮して、異なるセンテンスの埋め込みのための非類似性測度を定義する必要がありました。

そのためには、文が $n$個のワードピース $w_0, w_1, \cdots , w_{n-1}$からなり、$i$番目のワードピースが、$y_i \in R^{1024}$に埋め込まれるとして、$\frac {i} {n-1}$の形の"コントロール・ポイント"を持つ、曲線$\gamma : [0,1]  \to  R^{1024}$を、次のように定義します。
$$\gamma ( \frac {i} {n-1}) = y_i $$
線形補間を使用してこれらの点の間に$\gamma$があると定義します。$m$を、二つの文のワードピースの最大数とすると、二つの曲線 $\gamma_1$と$\gamma_2$との非類似性は、次の式で定義されます。
$$dissimilarity(\gamma_1,\gamma_2)= \frac{1}{m} \sum_{i=0}^{m-1} d(\gamma_1 ( \frac {i} {n-1}) ,\gamma_2 ( \frac {i} {n-1}))$$

図3bから、この非類似性スコアの値は、ピアソン相関係数が-0.42のゼロショット変換の品質と相関があり、中程度の相関があることがわかります。

将来の研究のための興味深い領域は、訓練された言語ペアを介した翻訳の埋め込みと比較することによって、デコーダの中のゼロショット翻訳の品質を予測するために、埋め込み地図とモデル性能との間の、より信頼できる対応を見つけることです。


6 混合言語


追加のソーストークンを使用してランダムなソース言語から選択した単一のターゲット言語に翻訳する仕組みを持っていますので、ソースまたはターゲット側で言語が混在しているときに何が起こるかを考えました。特に、次の2つの実験に興味がありました。


1.多言語モデルは、文章の途中での多言語入力(コード切り替え)をうまく処理できるか?

2.多言語モデルがトリガーされ、1つではなく2つのターゲット言語トークンが重み付けされて1つに加わる(これらのトークンの重み付けされた埋め込みをマージするのと同等)場合、どうなるか?

次の2つのセクションでは、これらの実験について説明します。

6.1 ソース言語でのコード転換


このセクションでは、多言語モデルがソース言語のコード交換をどのように扱うかを示します。

ここでは、{日本語、韓国語} ->英語 データで訓練された多言語モデルの例を示します。このモデルを使用して、ソースに日本語と韓国語を混在させると、このモデルではコード切り替えが処理できます。そのようなコード切り替えサンプルはトレーニングデータには存在しないにもかかわらず、多くの場合正しい英語の翻訳が生成されます。モデルには、個々の文字/ワードピースが語彙ボキャブラリー内に存在するため、異なるタイプの記述を効果的に処理できることに注意してください。



興味深いことに、混在言語入力の翻訳は、単一の翻訳元の言語翻訳の翻訳とわずかに異なります。実際には、入力のコード切り替えが良い出力をもたらさない例を見つけることはあまり難しくありません。場合によっては、モデルは翻訳する代わりに原文の一部を単純にコピーします。

6.2 重みづけられたターゲット言語の選択


この節では、ターゲット言語を混在させたときの動作をテストします。私たちは英語など複数のターゲット言語を訓練した多言語モデルを採用しています。次に、エンコーダLSTMの最下層に "<2ja>"の埋め込みベクトルを与えるのではなく、線形結合
$(1-w)<2ja>  + w <2ko>$を与えます。

明らかに、w = 0の場合、モデルは日本語を生成する必要があり、w = 1の場合、それは韓国語を生成するはずですが、wがその間の値をとる時、何が起こるのでしょう? 

あるモデルでは、ある種の中間言語(「Japarean」)が出力されることが予想されますが、結果はそれほど驚くことではありません。たいていの場合、出力はw = 0.5付近で言語を切り替えるだけです。場合によっては、wの中間の値について、モデルは文の途中で、言語を切り替えます。

この動作の可能な説明は、デコーダLSTMによって暗黙的に学習されたターゲット言語モデルが、特にこれらの言語が異なった記述を使用する場合、異なる言語の単語を混在させることを非常に困難にする可能性があるということです。

さらに、要求されたターゲット言語を定義するトークンが文の先頭に配置されるので、デコーダがさらに進むほど、このトークンに注意を払う可能性は低くなり、その代わりに言語の選択は予め生成されたターゲットの単語で決定されます。


表7は、3つの異なる多言語モデルを使用する混合ターゲット言語の例を示しています。

最初の例(ロシア/ベラルーシ語)では、モデルが最初にベラルーシ語に切り替える前に、まずターゲット言語としてロシア語からウクライナ語(下線)に切り替わるのは興味深いことです。

2番目の例(日本語/韓国語)では、日本語から韓国語への文法を徐々に変える日本語から韓国語へのさらに興味深い移行を観察できます。 wko = 0.58では、ターゲット文の冒頭で原文を日本語と韓国語の組み合わせに変換します。 wko = 0.60では、原文は完全な韓国語に翻訳され、すべての原語が取り込まれますが、単語の順序は自然に見えません。興味深いことに、wkoが0.7まで増加すると、モデルは原文をより自然に聞こえる韓国語の文に翻訳し始めます。

表7


韓国語の翻訳には空白が含まれておらず、句読記号として ''を使用しています。これらは、すべて日本のポストプロセッサを適用したものです。

7 結論


私たちは、多言語NMTに、シンプルで洗練されたソリューションを提示しました。私たちは、すべてのパラメータが共有される単一のモデルを使用して、多数の異なる言語間の翻訳に使用できる多言語NMTモデルを訓練できることを示しました。それは、積極的な副作用として、混合されたリソースの少ない言語の翻訳の質を改善します。

また、これらのモデルを使用して明示的なブリッジングを行わずに、ゼロ・ショット翻訳が可能であることも示しました。これは、私たちが知りうる限りでは、機械翻訳のために真の翻訳学習の一つの形態が、初めて示されたということです。

ゼロ・ショット翻訳の質を明示的に改善するために、利用可能な並列データを追加する2つの異なる方法を検討して、満足できる結果に達するには、少しの量のデータの追加で十分であることがわかりました。

私たちの最大規模の実験では、12の言語ペアをそれぞれの言語ペアモデルと同じサイズの単一のモデルにマージしました。多言語モデルのモデルの容量は、劇的に削減されたにもかかわらず、それは、単一の言語ペアのベースラインの翻訳品質を若干低下させただけでした。

結果のビジュアルな解釈は、これらのモデルが、関係するすべての言語ペアの間の多言語モデルのためのインターリンガ表現の形態を学習することを示しています。シンプルなアーキテクチャでは、ソースまたはターゲット側で言語を混在させて、興味深い翻訳例を得ることができます。私たちのアプローチは、Google規模の製品版環境で確実に動作することが示されており、多数の言語にスケールさせることに、素早く対応できます。

謝辞


Google BrainチームとGoogle翻訳チームの皆様に、このプロジェクトへの彼らの基本的的な貢献に感謝したいと思います。特に、トピックに関する洞察ではJunyoung Chungに、また、Alex RudnickとOtavio Goodの親切なアドバイスに感謝します。

参考文献


[1] Abadi, M., Barham, P., Chen, J., Chen, Z., Davis, A., Dean, J., Devin, M., Ghemawat, S.,Irving, G., Isard, M., Kudlur, M., Levenberg, J., Monga, R., Moore, S., Murray, D. G., Steiner, B., Tucker, P., Vasudevan, V., Warden, P., Wicke, M., Yu, Y., and Zheng, X. Tensorflow: A system for large-scale machine learning. Tech. rep., Google Brain, 2016. arXiv preprint.
[2] Bahdanau, D., Cho, K., and Bengio, Y. Neural machine translation by jointly learning to align and translate. In International Conference on Learning Representations (2015).
[3] Caglayan, O., Aransa, W., Wang, Y., Masana, M., García-Martínez, M., Bougares, F., Barrault, L., and van de Weijer, J. Does multimodality help human and machine for translation and image captioning? In Proceedings of the First Conference on Machine Translation (Berlin, Germany, August 2016), Association for Computational Linguistics, pp. 627–633.
[4] Caruana, R. Multitask learning. In Learning to learn. Springer, 1998, pp. 95–133.
[5] Cho, K., van Merrienboer, B., Gülçehre, Ç., Bahdanau, D., Bougares, F., Schwenk, H., and Bengio, Y. Learning phrase representations using RNN encoder-decoder for statistical machine translation. CoRR abs/1406.1078 (2014).
[6] Dong, D., Wu, H., He, W., Yu, D., and Wang, H. Multi-task learning for multiple language
translation. In Proceedings of the 53rd Annual Meeting of the Association for Computational Linguistics
and the 7th International Joint Conference on Natural Language Processing of the Asian Federation of
Natural Language Processing, ACL 2015, July 26-31, 2015, Beijing, China, Volume 1: Long Papers
(2015), pp. 1723–1732.
[7] Firat, O., Cho, K., and Bengio, Y. Multi-way, multilingual neural machine translation with a shared
attention mechanism. In NAACL HLT 2016, The 2016 Conference of the North American Chapter of
the Association for Computational Linguistics: Human Language Technologies, San Diego California,
USA, June 12-17, 2016 (2016), pp. 866–875.
14
[8] Firat, O., Sankaran, B., Al-Onaizan, Y., Vural, F. T. Y., and Cho, K. Zero-resource
translation with multi-lingual neural machine translation. arXiv preprint arXiv:1606.04164 (2016).
[9] Gillick, D., Brunk, C., Vinyals, O., and Subramanya, A. Multilingual language processing from
bytes. CoRR abs/1512.00103 (2015).
[10] Hutchins, W. J., and Somers, H. L. An introduction to machine translation, vol. 362. Academic
Press London, 1992.
[11] Jason, L., Cho, K., and Hofmann, T. Fully character-level neural machine translation without
explicit segmentation. arXiv preprint arXiv:1610.03017 (2016).
[12] Luong, M.-T., Le, Q. V., Sutskever, I., Vinyals, O., and Kaiser, L. Multi-task sequence to
sequence learning. In International Conference on Learning Representations (2015).
[13] Luong, M.-T., Pham, H., and Manning, C. D. Effective approaches to attention-based neural
machine translation. In Conference on Empirical Methods in Natural Language Processing (2015).
[14] Luong, M.-T., Sutskever, I., Le, Q. V., Vinyals, O., and Zaremba, W. Addressing the rare word
problem in neural machine translation. In Proceedings of the 53rd Annual Meeting of the Association for
Computational Linguistics and the 7th International Joint Conference on Natural Language Processing
(2015).
[15] Maaten, L. V. D., and Hinton, G. Visualizing Data using t-SNE. Journal of Machine Learning
Research 9 (2008).
[16] Richens, R. H. Interlingual machine translation. The Computer Journal 1, 3 (1958), 144–147.
[17] Schultz, T., and Kirchhoff, K. Multilingual speech processing. Elsevier Academic Press, Amsterdam,
Boston, Paris, 2006.
[18] Schuster, M., and Nakajima, K. Japanese and Korean voice search. 2012 IEEE International
Conference on Acoustics, Speech and Signal Processing (2012).
[19] Sébastien, J., Kyunghyun, C., Memisevic, R., and Bengio, Y. On using very large target
vocabulary for neural machine translation. In Proceedings of the 53rd Annual Meeting of the Association
for Computational Linguistics and the 7th International Joint Conference on Natural Language Processing
(2015).
[20] Sennrich, R., Haddow, B., and Birch, A. Controlling politeness in neural machine translation via
side constraints. In NAACL HLT 2016, The 2016 Conference of the North American Chapter of the
Association for Computational Linguistics: Human Language Technologies, San Diego California, USA,
June 12-17, 2016 (2016), pp. 35–40.
[21] Sennrich, R., Haddow, B., and Birch, A. Neural machine translation of rare words with subword
units. In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (2016).
[22] Sutskever, I., Vinyals, O., and Le, Q. V. Sequence to sequence learning with neural networks. In
Advances in Neural Information Processing Systems (2014), pp. 3104–3112.
[23] Tsvetkov, Y., Sitaram, S., Faruqui, M., Lample, G., Littell, P., Mortensen, D. R., Black,
A. W., Levin, L. S., and Dyer, C. Polyglot neural language models: A case study in cross-lingual
phonetic representation learning. CoRR abs/1605.03832 (2016).
[24] Wu, Y., Schuster, M., Chen, Z., Le, Q. V., Norouzi, M., Macherey, W., Krikun, M., Cao,
Y., Gao, Q., Macherey, K., Klingner, J., Shah, A., Johnson, M., Liu, X., Łukasz Kaiser,
Gouws, S., Kato, Y., Kudo, T., Kazawa, H., Stevens, K., Kurian, G., Patil, N., Wang, W.,
Young, C., Smith, J., Riesa, J., Rudnick, A., Vinyals, O., Corrado, G., Hughes, M., and
Dean, J. Google’s neural machine translation system: Bridging the gap between human and machine
translation. arXiv preprint arXiv:1609.08144 (2016).
15
[25] Zhou, J., Cao, Y., Wang, X., Li, P., and Xu, W. Deep recurrent models with fast-forward
connections for neural machine translation. CoRR abs/1606.04199 (2016).
[26] Zoph, B., and Knight, K. Multi-source neural translation. In NAACL HLT 2016, The 2016 Conference
of the North American Chapter of the Association for Computational Linguistics: Human Language
Technologies, San Diego California, USA, June 12-17, 2016 (2016), pp. 30–34.
16

2017年3月18日土曜日

可微分ニューラルコンピュータとは何か(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を用いる。

コンテンツ検索


第一は、コンテンツ検索である。そこでは、コントローラによって出力されたキー・ベクトルが、類似性の尺度(コサイン類似度を使う)に従って、メモリ内の各ロケーションの内容と比較される。この類似性のスコアが、連想記憶のために読取りヘッドによって利用される重み付け、あるいは、メモリ内の既存のベクトルを修正するために書込みヘッドによって使用される重み付けを決定する。

重要なことは、メモリ・ロケーションのコンテンツと部分的にしか一致しないキーも、そのロケーションに強く注目するために使用できるということである。これによって、パターンを完成させるような形式も可能になる。なぜなら、メモリのロケーションを読み取ることによって回復される値には、キーには表現されていない追加の情報が含まれているからである。

一般に、キー値での値の検索は、外部メモリ内の連想データ構造をナビゲートするための豊富なメカニズムを提供する。これは、あるアドレスのコンテンツが他のアドレスへの参照を効果的にエンコードできるからである。

時間的リンク行列


第二のAttentionメカニズムは、$N×N$の時間的リンク行列Lである。それは、連続して書き込まれたロケーション間の遷移を記録する。$L [i、j]$は、$i$が$j$の後に書き込まれた次の位置であれば1に近く、そうでない場合には0に近い値を持つ。

任意の重みづけ$w$に対して、操作$Lw$は、フォーカスを、$w$で強調された後に書き込まれた位置に、前方に滑らかにシフトさせる。$L^Tw$は、フォーカスを後方にシフトする。これにより、DNCは、連続した書き込みが、近接した時間の範囲内に発生しなかった場合でも、シーケンスを書き込んだ順序で復元するネイティブな機能を提供する。

メモリー割り当て


第三のAttentionの形式は、書き込みのためのメモリを割り当てる。各ロケーションの「利用状況」は0と1の間の数として表され、使用されていない場所を選ぶ重み付けが、書込みヘッドに送られる。

利用状況は、ロケーションへの書き込みごとに自動的に増加するだけでなく、読み取りごと減らすことができる。これにより、コントローラは不要になったメモリを再割り当てできる。

割り当てメカニズムはメモリのサイズと内容とは無関係である。つまり、あるサイズのメモリを使用してあるタスクを解決するためにDNCを訓練し、後で再訓練することなく、大容量のメモリにアップグレードすることができる。原理的には、これは、任意のロケーションの最小使用可能量が特定の閾値を超えるたびに、自動的にロケーションの数を増加させて、無制限の外部メモリを使用することを可能にする。

海馬の機能との類似


Attentionメカニズムのデザインは、主に計算上の考慮によって動機づけられている。コンテンツ検索は、連想データ構造の形成を可能にする。時間的リンクは、入力シーケンスの逐次検索を可能にする。メモリーの割り当ては、書き込みヘッドに未使用のロケーションを提供する。

しかし、興味深いのは、DNCの記憶メカニズムと哺乳動物の海馬の機能の能力との間には、類似点があることである。 DNCの記憶の修正は速く一次的であり得るのだが、それは、海馬CA3およびCA1シナプスの長期的な増強に似ている。

海馬歯状回は、ニューロンの形成をサポートすることが知られている領域であるが、そこでは記憶の表現をさらに疎なものにして、それにより記憶容量を拡大しているのではと提案されている。我々のモデルでの、利用状況に基づくメモリ割り当てと疎な重み付けは、それと類似の機能を提供しているのかもしれない。

人間の「自由想起」の実験では、最初に提示されたのと同じ順序の時、想起の確率が高まることが示されるのだが、それは、時間的なコンテキスト・モデルによって説明される海馬依存の現象である。それは、我々のモデルでの時間的なリンクの形成とある類似性を有する。(「method」の章を参照されたい。)





a Controller


リカレント・コントローラ・ネットワークは、外部のデータソースから入力を受け取り、出力を生成する。

b Read and Write Heads

c Memory


コントローラは、1つの書き込みヘッド(緑)と複数の読み取りヘッド(この場合は2つの青とピンク)をパラメータ化するベクトルも出力する。

書き込みヘッドは、$N×W$ メモリ行列を編集するために使用される書き込みベクトルおよび消去ベクトルを定義し、その要素の大きさおよび符号は、それぞれ四角の領域および色の濃さによって示されている。

さらに、コンテンツ検索では、書き込みキーを使用して、以前に書き込まれた場所を検索して編集する。書込みキーは、メモリ行列内の行 すなわちロケーションにわたって書込み動作を選択的に集中させる重み付けの定義に、影響を与えることができる。

読み取りヘッドは、読み取りモードと呼ばれるゲートを使用して、読み取りキー( 'C')を使用してコンテンツ検索と、書かれた順に前方( 'F')または後方( 'B')への読み出しとを切り替える。

 d Memory Usage and Temporal Links


利用状況のベクトルは、これまで使用されていたロケーションを記録し、時間的リンク・行列は、ロケーションに書き込まれた順序を記録する。ここでは、ロケーションの順序は、矢印で表されている。

2017年3月17日金曜日

可微分ニューラルコンピュータとは何か(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)」と呼ばれる機械学習モデルを提案する。このモデルは、従来のコンピュータのランダムアクセスメモリに類似した、外部メモリ行列との間で読み書きが可能なニューラルネットワークで構成される。それは、従来のコンピュータと同じ様に、複雑なデータ構造を表現し操作するためにメモリを使用できるが、ニューラルネットワークのように、データからそれを行う方法を学ぶことができる。

DNCを教師あり学習で訓練すると、それは、自然言語で書かれた論証や推論の問題を真似するように作られた総合的な質問に正しく答えることができることを示す。我々は、DNCが、ある特定の点の間の最短経路を見つけ出したり、無作為に生成されたグラフで欠けているリンクを推定したりするタスクを学習することが出来ることを示す。さらに、DNCは、これらのタスクを輸送ネットワークや家系図などの特定のグラフに一般化することもできる。

DNCを強化学習で訓練すると、それは、目標の変化を記号列で指定するブロックを移動させるパズルを解くことが出来た。

これらをまとめると、我々の結果は、DNCが、外部読み書きメモリなしのニューラルネットワークでは到達できない、複雑で構造化されたタスクを解決する能力を持っていることを示している。


現代のコンピュータは、計算とメモリを分離する。計算は、プロセッサによって実行される。プロセッサーは、計算の対象を出し入れするのに、アドレス可能なメモリを利用することができる。

これにより、2つの重要な利点が得られる。新しい情報を書き込むための拡張可能なストレージの利用と、メモリの内容を変数として扱う機能である。変数はアルゴリズムの汎用性にとって非常に重要である。つまり、同じ手続きを、一つのデータだけでなく他のデータで実行するのに、アルゴリズムは、それが読み出すデータのアドレスを変更するだけでいいからである。

コンピュータとは対照的に、人工ニューラルネットワークの計算リソースとメモリーのリソースは、ニューラルネットワークの重みとニューロンの活動の中に、混じり合っている。これは、大きな負債である。タスクの増大によってメモリが必要とされても、これらのネットワークは、新しいストレージを動的に割り当てることもできず、タスクの変数によって実現される、値とは独立に動作するアルゴリズムも簡単には学習できないからである。

最近のブレークスルーは、ニューラルネットワークは感覚の処理、シーケンスの学習と強化学習には、極めて熟練していることを示しているのだが、認知科学者や神経科学者は、ニューラルネットワークには、変数やデータ構造を表現する能力と外部からの干渉なしに長い期間にわたってデータを格納する能力では限界があると論じてきた。

我々は、ニューラルネットワークに外部メモリへの読み書きのアクセスを提供することで、ニューラルコンピューティングとコンピュータによる処理の利点を組み合わせることを目指している。

メモリーへのアクセスは、記憶間の干渉を最小限に抑える、かつ、長期間の保存を可能にする為に、狭いところに集中して行われる。システム全体は微分可能であり、それ故、勾配降下法でエンドツーエンドで訓練することができ、ネットワークは目標指向の方法でメモリを操作し、編成する方法を学習できる。

2017年3月15日水曜日

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 Mechanism


文全体に一つの固定長のベクトルを割り当てるのではなく、翻訳時に、ソース・文の一部分を 改めて見直して、その部分から提供される情報を翻訳に生かそうということだ。

次の図を見て欲しい。





「ここで、yはデコーダによって生成された翻訳された単語であり、xは原文の単語である。上記の図は双方向のリカレント・ネットワークを使用しているが、それは重要ではない。逆方向は無視していい。重要な部分は、各デコーダの出力するワード $y_t$が、Encoderの最後の状態だけでなく、すべての入力状態の重みづけられた結合に依存することである。 aは、出力ごとに、それぞれの入力状態をどの程度考慮されるべきかを定義する重みである。したがって、$a_ {3,2}$が大きい場合、これは、Decorderがターゲット文の第3の単語を生成しながら、ソース文の第2の状態に多くの注意を払うことを意味する。 aは、通常、1に合計されるように正規化される(それらは、入力状態に対する確率分布である)。」
このシステムでは、Encoderが、入力のシーケンスをAnnotationのシーケンス $(h_1, h_2 , \cdots , h_{T_x} ) $に変える。この図では、Annotation $h_i$の名前は、直接には書き込まれていない。上下に並んだ $\overrightarrow{h_i}$ と$\overleftarrow{h_i}$ を囲む四角が書かれているのだが、この四角が $h_i$である。(この論文では、右向きの隠れ層の状態$\overrightarrow{h_i}$ と左向きの隠れ層の状態 $\overleftarrow{h_i}$の「連結」として実装されている。)

Docorderが、入力の$(x_1, x_3, \cdots , x_T)$から、 $t$番目の語$y_t$ を生成しようとする時に、このAnnotationのシーケンス $(h_1, h_2 , \cdots , h_{T_x} ) $からの情報は、次の式で $c_i$に束ねられてDecoderに流れ込んでくる。
$$c_i = \sum_{j=1}^{T_x} \alpha_{ij}h_j $$
この$c_i$を、Contextと呼んでいる。

Decoderの内部状態 $s_i$は、先行するノードの内部状態$s_{i-1}$と先行するノードの出力$y_{i-1}$と、このContext $c_i$で決まるのである。
$$s_i = f(s_{i−1}, y_{i−1}, c_i)$$

「直観的には、 これは、DecoderにAttentionのメカニズムを実装する。Decoderは、ソースの文のいくつかの部分を、注意を払うべき文章だと決定する。Decoderに、Attentionのメカニズムを持たせることで、 Encoderは、ソース文内のすべての情報を固定長のベクトルにエンコードする負担から解放される。 この新しいアプローチにより、情報は、 Annotationのシークエンス上に広がって拡散することができ、その情報は、Decoderによって選択的に取り出すことができる。」

 Alignment Model 


Context $c_i$を定義している、それぞれのAnnotation $h_j$にかかる重み$\alpha_{ij}$は、次の式で定義される。
$$\alpha_{ij} = \frac{exp(e_{ij})}{\sum_{k=1}^{T_x}exp(e_{ik})} $$
先の図の$\alpha_{t,1}, \alpha_{t,2}, \cdots , \alpha_{t,T}$を全部足し合わせると、1になる。SoftMaxと同じだ。

$\alpha_{ij}$の計算の元になる、$e_{ij}$は、次のように計算される。
$$e_{ij} = a(s_{i-1}, h_j)$$
この指標$e_{ij}$(Alijgnment Modelと呼ばれる)は、入力のi番目付近と、出力のj番目付近が、うまくマッチしているかを示すものだ。$e_{ij}$は、Decoderの$i-1$番目の状態($y_i$を出力する直前の状態である)と、Encoderの$j$番目のAnnotation $h_j$で決まる。

次の図は、英語からフランス語の翻訳で、英語の入力の$j$番目の語と、フランス語の出力の$i$番目の語について、$\alpha_{ij}$の値をグレースケールで示したものである(白は1、黒は0)。



二つの言語の語順が、同じであれば、対角線上に、1が集まることになるのだが。

この図は、次の英語とフランス語の翻訳が、下線部分で、語順が逆になることを反映している。
The agreement on the European Economic Area was signed in August 1992 .  
L' accord sur la zone économique européenne a été signé en août 1992 . 
もっとも、Word Alignmentについては、90年代の「統計的機械翻訳モデル」においても、熱心に研究されていたので、こうしたアプローチは、新しいものではない。

Googleニューラル機械翻訳論文との比較


Googleの論文では、このAttentionの部分は、次のようになっている。

$$s_t= \it{AttentionFunction} ( \bf{y}_{i-1}, \bf{x})  \ \  \ \forall{t} ,  1 \leq t \leq M$$
$$p_t = exp(s_t) / \sum_{t=1}^M exp(s_t)   \ \ \ \forall{t} ,  1 \leq t \leq M$$
$$a_i = \sum_{t=1}^M p_t \cdot \bf{x}_t $$

基本的には、この論文と同じであることがわかる。

2017年3月14日火曜日

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の中間に、Attentionと記された領域がある。ここからの出力Attention Context は、Decoderのすべてのノードに供給されている。AttentionがDecoderの振る舞いをコントロールしていると思っていい。

細かく見ると、LSTMの段の積み重ねに、特徴があるのがわかる。積み重ねられたLSTMは、一つ下のLSTMからの出力を受け取るだけではなく、もう一つ下のLSTMからの出力をも受け取っている。これを Resudue Connectionと呼ぶ。一昨年のImageNetの画像認識のコンテストで優勝したMSRA(MicroSoft Research Asia)が、Convolution Neural Networkで利用した手法だ。

また、Encoder側の一番下の方の二つのLSTMの処理が、逆向きに走っている。

HintonのAutoencoder


こうした特徴を持つGNMTのうち、ここでは、まず、Encoder/Decoderの枠組みに注目しよう。

ニューラル・ネットワークの中で、Encoder-Decoderの枠組みを提案した基本的な論文は、Hintonの 2006年の ”Reducing the Dimensionality of Data with Neural Networks” である。https://goo.gl/Ki41L8

彼は、ニューラル・ネットワークを用いて、高次元のベクターの次元を減らすことができることを示し、それをAutoencoderと呼んだ。

「高次元の入力ベクターを再構成する小さな中央層を持つ多層のニューラル・ネットワークを訓練することで、高次元のデータを低次元のコードに変換することができる。このようなAuto Encoderネットワークの重みを調整するのに勾配降下法を利用できる。ただし、それは、重みの初期値が、良好な解に近い場合にのみうまく働く。我々は、 ディープAuto Encoderネットワークが、低次元のコードを学習することを可能にする重みの初期化の効率的な方法について述べる。この方法は、 データの次元を下げるツールとしての主成分分析より、ずっと優れている。」

次の図の中央、下の方の赤い枠がEncoderである。Encoderは、2000次元のベクトル(2000 pixelの画像データ)を、30次元のベクトルに変える。上の方の青い枠のDecoderは、この30次元のベクトルから、2000次元のベクトルを生成する。(こうして、画像が復元される)論文では、このAutoencoderを微調整する方法が示されているのだが(下図の右側。画質が改善されている)、それについては割愛する。



注目して欲しいのは、ここでは、入力に与えられたデータ自身が、教師用のデータの役割を果たすので、その意味では、ラベルづけられた教師用のデータを必要としないということ。Autoencoderとは、「自己エンコーダ」の意味である。

この例は、「画像圧縮技術」の一種として理解してもいいのだが、この論文で、Hintonは、もっと面白い例を紹介している。「書籍の分類」に、このAutoencoderを使おうというものである。

よく使われる単語を2000個ほど選ぶ。ある本にこれらの単語が何個含まれているかをカウントする。そうすると、ある本に2000次元の整数からなるベクトルを対応づけることができる。このベクトルをAutoencoderの入力に与えて、Autoencoderがこのベクトルを出力に再現できるように訓練をする。Autoencoderの中央のボトルネックの部分を、10次元のベクトルにすると、ある本に10個の数字を対応づけることができる。

Hintonは、40万冊のビジネス書を対象に、この方法で得られた10個の数字が、書籍の分類に有効かどうかを実験した。結果を、二次元に可視化したものが、次の図だ。見事に、分類に成功している。


同じデータを、主成分分析法で解析したものは、次のようになる。


明らかに、Autoencoderの方が、主成分分析より優れている。

重要なことは、「画像」と「書籍」では、対象のデータの性質はまるで異なるのだが、Autoencoderは、そのいずれに対しても、高次元のデータを低次元のデータに変換しているということである。別の言葉で言えば、それは、対象の高次元のデータから、低次元のデータを、元の情報のエッセンスとして取り出しているのである。

Hintonは、こうしたAutoencoderの働きを、Semantic hashing(意味的ハッシング)と呼んでいる。SHA-1のようなハッシングでは、ハッシュ化されたデータから元のデータを復元することは不可能なのだが、Semantic hashingされたデータは、データの次元は低いものの、元の情報の中核部分を保持している。

Encoder-Decoderの機械翻訳への応用


HintonのAutoencoderは、そのままの形では、機械翻訳に利用されることはなかったと思う。ただ、2014年に、Ilya Sutskever らは、RNN(ここでは多層のLSTM)の持つシーケンスをシーケンスに変換する能力が、機械翻訳に応用できるという論文 "Sequence to Sequence Learning with Neural Networks" https://goo.gl/U3KtxJ を発表する。

ディープニューラルネットワーク(DNN)は、難しい学習課題でも優れたパフォーマンスを達成する強力なモデルである。DNNは、ラベル付けられた訓練用のデータが利用可能な時には、いつもうまく機能するというものの、シーケンスをシーケンスにマップすることに、DNNを利用することはできない。我々は、この論文で、シーケンスを学習するエンド・ツゥ・エンドの汎用のアプローチを提示する。そこでは、シーケンスの構造に最小限の前提しか課していない。我々の方法では、入力のシーケンスを固定次元のベクトルにマップするのに、多層のLong Short-Term Memory(LSTM)を利用する。その後、別の深いLSTMが、このベクトルから目的のシーケンスをデコードする。

この論文の次の図を見て欲しい。



この図は、このシステムが、ABCというシーケンスが与えられた時、xyzというシーケンスを返すことを表している。<EOS>は、End of Sequence でシーケンスの終わりを表す特別な記号である。(これが、シーケンスの構造に課せられた「最小限の前提」である。)

これが、先に見たEncoder-Decorderのパターンであることは、次のようにしてわかる。
先行するLSTM群は、入力シーケンスABCを受け取って、それを固定長のベクトwに変換している。後行のLSTM群は、そのベクトルwを受け取って、それから出力シーケンスxyzを生成する。すなわち、先行のLSTM群をEncoder、後行のLSTM群をDecoderと考えることができる。中間に生成され、両者で共有されるwは、先のHintonのボトルネック部だと思えばいい。



次の図( https://goo.gl/JGckBP から)は、こうしたメカニズムで、RNNが、独文の "Echt dicke Kiste" を英文の"Awesome sauce" に翻訳する様子を表している。(ここでは、文章の終わりを表す<EOS>は、省略されている) 

ここでは、赤い色のEncoder部が、文章の最後にとるRNNの内部状態 $h_3$が、そのまま青い色のDecoder部に渡されることが示されている。入力シーケンスの情報のエッセンスが、この内部状態 $h_3$に凝縮されていると考えればいい。AutoencoderのDecoder部が、圧縮された情報から元の情報を復元しようとするように、ここでは、その情報から、「同じ意味」を持つ、別の言語の文章を復元しようとする。

Ilya Sutskever らは、このアーキテクチャーで、英語をフランス語に翻訳するシステムを作成し、BLEUのスコアで、34.81という高得点をたたき出した。

この時のシステムは、5段重ねのLSTMで構成され、それぞれが 8,000次元の状態からなる384M個のパラメーターを持つものだった。





2017年3月13日月曜日

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

ニューラル機械翻訳に先行した機械翻訳モデル


新しいGoogle翻訳は、「ニューラル機械翻訳モデル」に基づいている。それに対して、それ以前のGoogle翻訳は、「統計的機械翻訳モデル」に基づいたものだ。ここでは、まず、新しいGoogle翻訳以前の代表的な機械翻訳モデルを振り返り、ニューラル機械翻訳モデルが、どのような問題意識から生まれたのかを考えてみよう。

ルール・ベース機械翻訳モデル (RBMT)


ルール・ベースの機械翻訳モデル(Rule-Based Machine Translation)は、古典的なものだ。日本でも、このモデルに基づく多くの翻訳システムが、かつては作られていた。(こんなリストをネットで見つけた。今から20年以上前のものだ。当時の日本は、AIでも機械翻訳でも、先進国だった。http://aamt.info/english/mtsys.htm )

人間が(ここでは日本人としよう)、英語の文章を日本語の文章に翻訳する場合を考えよう。その時、最低限必要になるのは、次の三つだ。
  1. 英語・日本語の辞書
  2. 英語の文法の知識
  3. 日本語の文法の知識(暗黙の知識を含めて)
ただ、これで十分かというと、そうではない。英語の構文を日本語の構文に変換する知識が必要となる。

ルール・ベースの機械翻訳は、基本的には、こうした人間の翻訳作業と同じことを、機械にさせようとする。原理はわかりやすい。機械の翻訳のルールは、人間が手で書くので、誤訳があっても、その原因を突き止めることは容易だ。ただ、電子的に利用可能ないい辞書があるかは分野による。と言って、ゼロから辞書を作るのは手間がかかる。その上、文法構造の解析は、意外と難しい。様々の付加的情報を追加する必要がある。ただ、我々は、母語にせよ外国語にせよ、自分の持つ文法知識を、たいていの場合、ルールとして全て書き下せるわけではないのだ。

統計的機械翻訳モデル (SMT)


ルール・ベースの機械翻訳モデルが、その精度を上げるのに伸び悩んでいる中、新しい機械翻訳のモデルに注目が集まる。それが統計的機械翻訳モデル (Statistical Machine Translation)である。

代表的な論文は、次のものだと思う。

1990年 Peter F. Brown et al. "A Statistical Approach To Machine Translation" https://goo.gl/UnTIxo

「機械翻訳の分野は、現代のデジタルコンピュータとほとんど同じ程古いものだ。 1949年に、ウォーレン・ウィーバー (Warren Weaver)は、この問題が統計的方法と情報理論から得られるアイデアで攻略できると提案していた。情報理論の領域は、当時、彼やクロード・シャノン(Claude Shannon)やその他の人たちが開発していたものだ。このアプローチは、多くの理論上の反対意見を集め、研究者はすぐにこのアプローチを放棄したのが、我々は、本当の障害は、利用可能なコンピューターの相対的な無能力と、こうした攻略には不可欠な、そこから統計情報を収集する機械で可読なテキストの欠如にあったと考えている。今日では、コンピューターは、1950年より5桁ほど早くなり、数百メガバイトのストレージを備えている。機械可読なコーパスも利用可能である。 .... 我々は、今こそ、これらを、機械翻訳に生かすべき時だと感じている。」

基本的なアイデアは、次のようなものだ。

二ヶ国語間の翻訳を考える。翻訳されるべき文S(ソース SourceのSだと思えばいい)と翻訳結果の文T(ターゲット TargetのTである)のすべてのペア(S, T)に対して、ある確率を割り当てる。

確率Pr(T|S) は、ソース言語に文Sが現れる時、翻訳がターゲット言語で文Tを生み出す確率と解釈される。

例えば、英語から日本語への翻訳なら、Pr( "リンカーン大統領はいい弁護士だった" l "President Lincoln was a good lawyer") は、高い確率をマークするだろうが、Pr( "僕は今朝歯磨きをした" l "President Lincoln was a good lawyer") の確率は低くなるように確率を与える。

こうした見方をすると、機械翻訳は、次のような問題だと考えることができる。

ターゲット言語の文Tが与えられた時、我々は、翻訳が文Tを生成した文Sを検索する。与えられたTに対して、もっともありそうなSを選ぶことで、翻訳のエラーは最小化されるのは明らかなので、Pr(S|T) が最大になるように、S を選べばいいことになる。

次の関係は簡単にわかる。(ベイズの公式)

$$   Pr(S|T) = \frac{Pr(S) Pr(TIS)} {Pr(T)} $$

右辺の分母のPr(T)は、Sには依存しないので、Pr(S|T) を最大にするには、分子のPr(S) Pr(TIS)を最大にすれば十分である。 この最初の項 Pr(S)を「この言語モデルでのSの確率」と言い、二番目の項 Pr(T|S) を「与えられたSに対するTの翻訳の確率」という。

次の図は、統計的機械翻訳モデルの概念図である。2008年のNTT Communication Science LaboratoriesのFrancis Bondの講演資料 "Machine Translation Introduction" https://goo.gl/syFJ2P から借用した。



コーパスとしては、次のようなものが用いられる(英仏のコーパスの例)。Gale & Church "A Program for Aligning Sentences in Bilingual Corpora" 



単純化すれば、膨大な二国語コーパスから、適当な翻訳を「検索」するというアプローチなのだが、それでも、先行した「ルールベース機械翻訳モデル」より、高い翻訳精度を達成した。

統計的機械翻訳モデル (SMT)の成功と限界


こうした、統計的機械翻訳モデル (SMT)の成功は、翻訳モデルの質にではなく、コーパスの量に対する関心を向けさせることになった。

2001年のBankoらの論文 “Scaling to Very Very Large Corpora for Natural Language Disambiguation” のタイトルにも、そうした傾向が如実に表れている。http://research.microsoft.com/pubs/66840/acl2001.pdf

ただ、Bankoらのモデルでは、"For breakfast I ate _____ eggs." の空白部分に入るものを、{to, two, too}の三つの中から選べという、極めて単純な問題に答えるのに、10億語のコーパスの学習が必要だった。

Andrew NGは、この論文を取り上げ、次のように述べる。http://bit.ly/1qKh8ro 
「勝つのは、最良のアルゴリズムを持っている人ではなく、もっとも多くのデータを持っている人である。」
“It’s not who has the best algorithm that win. It’s who has the most data.”
 これは、皮肉なのだろうか?

Googleの以前の機械翻訳に対するアプローチも、スペル訂正アルゴリズムの成功に気を良くして、"Power of Data"を前面に押し出して、"Yes! Size Matters" と叫んでいた。「コーパスが二倍になれば、翻訳の質は、0.5%上がる」と。

ただ、今回の新しいGoogle翻訳による翻訳精度の改善は、単純なコーパスの量の拡大によるものではない。Googleは、翻訳のアルゴリズムを見直し、機械翻訳のモデルを「統計的機械翻訳モデル」から「ニューラル機械翻訳モデル」に変えたのである。

ニューラル確率言語モデル -- Benjioの「次元の呪い」


統計的機械翻訳モデルに変わるニューラル機械翻訳モデルを提案したのは、次のBengioの論文である。

2003年 Yoshua Bengio et al. “A Neural Probabilistic Language Model” http://goo.gl/977AQp  

Bengioは、早くから、統計的機械翻訳モデルに現れる組み合わせの数の爆発を意識していた一人である。彼は、それを「次元の呪い」 Curse of Dimentionality と呼んだ。

26文字のアルファベット15文字以内で構成される語の数は、高々、$26^{15}$である。スペル訂正の次元は、その程度のオーダーである。ただし、語彙が10万個ある言語での10個の語からなる文は、$100000^{10}=10^{50}$種類もある!

$この_1 文_2 は_3 10_4 個_5 の_6 語_7 から_8 できて_9 いる_{10}$ 

このように、10語文というのは、そんなに長い文章ではない。が、$10^{50}$というのは、とてつもなく巨大な数である。

彼は、この論文で、統計的言語モデルについて、こう語る。

「統計的言語モデルの目標は、ある言語における語のシーケンスの結合確率関数を学習することである。ただ、これは、次元の呪いのために本質的に困難である。その上でモデルが試される語のシーケンスは、モデルが学習中に出会った全ての語のシーケンスとは異なっている可能性が高い。」
それでは、どのように「次元の呪い」と戦うのか?

「伝統的だが非常に成功したn-gramベースのアプローチは、訓練データ中に現れた非常に短いシーケンスの重なりを連結することで、一般化の能力を得ている。それぞれの訓練用データ中の文が、モデルに、指数関数的な数のその文と意味的に近い文の情報を伝えることを可能にするような、語の分散表現を学習することで、この次元の呪いと戦うことを提案する。」

具体的には、この論文で、彼は、次のような方法を提案する。
  1. 語彙中のそれぞれの語に、$R_m$に実数値の値を持つ、分散した語の特徴ベクトル(word feature vector)を対応づける。
  2. 語の並びの結合確率関数を、この並びの中の語の特徴ベクトルで表現する。
  3. 語の特徴ベクトルとこの確率関数のパラメーターを、同時に学習する。

要は、統計的モデルのように、単に語の並びの統計的性質に依拠するだけでなく、それぞれの語に「特徴ベクトル」という語の「意味」の対応物を導入しようということだと僕は理解している。

こうした問題意識は、 Tomas Mikolovらの Word2Vec に受け継がれている。

Word2Vecの登場 語の「意味ベクトル」


2013年に、GoogleにいたTomas Mikolovらは、語が埋め込まれたベクター空間が、言語学的に(文法的にも、意味論的にも)面白い性質を持っていることを発見する。それが、次の論文である。

Tomas Mikolov et al. “Linguistic Regularities in Continuous Space Word Representations” http://goo.gl/j25y8s

ここで使われているモデルは、次の二つである。
ここでも、文中の語の順序は、捨象されていることに注意しよう。
  • CBOW(Continuus Bag-of-Word”) モデル: 複数の語の集まりから、一緒に出現しそうな一つの語の確率を調べる。
  • Skip-gram モデル: 一つの語が与えられた時、一緒に出現しそうな複数の語の確率を調べる。


こうして多次元(1000次元ぐらい)のベクトル空間に語を埋め込んでいくと、意味の似通ったものが、この空間内で「近い」ところに埋め込まれるのである。(例えば、一列目は、国の名前。二列目は、宗教的な神。三列目は、ゲーム関係。等々。)




それだけではない。二つの語を対応づけるベクトルを考えると、そのベクトルは、語の意味を変換するベクトルとして、多くの語に共通に作用するように見えるという。例えば、"MAN"と"WOMEN" を対応づけるベクトルは、"UNCLE" を"AUNT"に対応付け、"KING"を"QUEEN"に対応づける。



彼の発見で有名なのは、次のように、国を首都に対応づけるベクトルもあるということだった。




さらに、様々な「関係」に対応するベクトルも存在する。


もっとも、このMikalovのWord2Vecは、直接に、機械翻訳モデルに生かされたわけではないように思う。

Word2Vecについては、丸山のblog「モノと名前(2)」http://maruyama097.blogspot.com/2017/01/blog-post_53.html を参照されたい。

2017年3月11日土曜日

初めにことばありき

旧約の「創世記」の「光よあれ」は、ビッグバンを思わせて、物理学者はちょっと萌えるかもしれないのだが、新約の「ヨハネによる福音書」には、言語学者が喜びそうなフレーズがある。

「初めに言があった。言は神と共にあった。言は神であった。」

僕が知っていたのは、「はじめにことばありき」という訳だったのだが。この口語訳での「言」は、英訳だとこうなっている。

"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) 」というのが、動詞を使わないコミュニケーションではなく、非言語的コミュニケーションのことを指すことに残されている。

ラテン語訳聖書より古いギリシャ語訳聖書では、この部分は、こうなる。

"Ἐν ἀρχῇ ἦν ὁ λόγος, καὶ ὁ λόγος ἦν πρὸς τὸν θεόν, καὶ θεὸς ἦν ὁ λόγος."

もう僕には読めないのだが、ラテン語のVerbumに当たるのは、ギリシャ語の λόγος (Logos) である。英語の logic の原語である。

「初めにロゴスありき」

うーん。論理学好きで、言語理論ではCategorial Grammar好きの僕は、初めに論理があったのかと、かなり萌えるのだが。

ギリシャ語のロゴスは、現在の「論理」とは、ちょっと違った広い含意を持つ。ただ、大事なことは、ロゴスは、今はやりの"Alternative Truth" とか"Fake News" といった、単なる「お話」(そういうのギリシャ語では、「ミュトス」という)とは、明確に区別された「真理」を指すということ。

「初めにオルタナ・ファクトがありました」

じゃ、ちっとも面白くないもんね。

2017年3月8日水曜日

誕生日

今日で70歳になりました。

あ、間違いました。69歳でした。誕生日、今日じゃなかったかも。
ボケているのでご容赦ください。皆さんには、どっちだっていいことでしょうし。

 吾十有五而志乎学、    吾十有五にして学に志す
 三十而立、        三十にして立つ
 四十而不惑、       四十にして惑わず
 五十而知天命、      五十にして天命を知る
 六十而耳順、       六十にして耳順う
 七十而従心所欲不踰矩。  七十にして心の欲する所に従えども矩を踰えず。

孔子の言葉を自分に照らしてみると、どの年代の「教訓」も、ピンとこないのは困ります。

しょうがないので、年齢を大幅にサバ読んで、最初の「吾、十五にして学に志す。」を、これからのモットーにできればいいなと思っています。

 「吾、七十にして学に志す。」

周回遅れですね。

ま、いいか。

それに、70になるまで、まだ一年ありますし。

ちなみに、先の孔子の言葉、最新のGoogle翻訳では、こうなります。陽水のTeenagerみたいです。http://j-lyric.net/artist/a00071f/l0000c0.html

 私はほぼ10、5と科学、
 三十、
 フォーティ、当惑、
 フィフティ私は、天の使命を知っていました
 60私の耳で
 越境のない七十コング気まぐれ。

僕は、どっちかというと、孔子より陽水が好きです。
SeventyとSeventeenは、よく似ています。(どこが!)
山手線の新宿駅もKY-Seventyと呼ばれるようになりました。 (JY-Seventeen だよ!)

「心の欲する所に従って」(それより、空気読めよ!)、「奇跡のSeventy」(Seventeenだって!)を準備できればいいと思います。


 
 







2017年3月3日金曜日

形式的文法のChomsky階層とDeep Learning

機械は、「何」を理解できるのか?


機械は、「何」を理解・学習できるのか? 画像認識や自動運転技術のような、生物の感覚・運動系の能力の機械での対応物については、機械の能力の評価は、比較的容易である。

問題は、我々の認識能力が、具体的な感覚・運動系の能力にはとどまらないということ。人工知能研究の大きなターゲットの一つは、人間の言語能力である。この分野で、機械は、「何」を理解・学習できるようになったのだろうか?

機械は、「文法」を理解できるのか?


言語能力の領域には、「意味の理解」をはじめとして、未解明の問題がたくさんある。ここでは、問題を限定して、機械は、自然言語のものであれ、人工的に構成されたものであれ、言語の構文規則である「文法」を、理解できるのかという問題を考えてみよう。

おそらく、我々は、この問いに、肯定的に答えることができると、僕は考えている。

既に1990年代に、Hochreiterは、有限状態オートマトンで記述される構文規則を、 RNNが、理解・学習できることを発見していた。

2011年、 Ilya Sutskever らは、5億文字ものテキストをRNNに学習させ、学習したテキストに近い文体の文章を生成して見せた。文法にはかなっているように見えるが、意味をなさない文章だったが。ただ、意味をなさなかったにせよ、文法的には正しそうに見える文章を生成したことに注目できるということだと思う。

2015年、Andrej Karpathy は、Stack Theoryの膨大なドキュメントをRNNに学習させ、一見すると数学の論文に見える文書を生成してみせる。彼は、また、 Linuxの膨大なソースコードをRNNに学習させ、Cのコード(に見えるもの)を生成して見せた。これは、機械が、文脈自由文法であるLaTexやC言語の構文規則を、理解・学習できることを示すものだ。

2016年の、Googleニューラル機械翻訳は、これらの先行する機械の文法理解の能力に関する仕事を、さらに一歩進めるもののように、僕は考えている。

ここでは、こうした流れを振り返ってみよう。

驚くべきRNNの能力


Hochreiterの90年代の発見


LSTMの提案者であるHochreiterは、1990年代に、既に RNNが、極めて高い、認識能力を持つことを発見していた。LSTMの原論文 https://goo.gl/sDAq81に、詳細に、多数の実験結果が報告されている。ここでは、その中から、三つほどの例を紹介する。

一つは、有限オートマトンの生成する文字列の規則性を、LSTMが認識できるという実験結果である。これは、認知心理学の分野で、人間が持つ「人工的文法の学習(Artificial grammar learning)」https://goo.gl/VgvboK 能力として研究されていたものである。  
もう一つは、LSTMが、掛け算を学習できるという実験である。ニューラルネットが、任意の関数の近似が可能であることは知られていたのだが、これはこれで興味ふかい実験である。

最後は、あるルールに従って、時間的に離れたところで起きるイベントのパターンを、LSTMが学習できるという実験である。これは、人間でも手こずりそうかもしれない。
いずれの実験も、膨大な学習の繰り返しが必要である。






Ilya Sutskever が生成した文章


2011年の論文、“Generating Text with Recurrent  Neural Networks” http://goo.gl/vHRHSn で、Ilyaたちは、文字数が5億文字にものぼるテキストを長い時間をかけてRecurrent Neural Nets に学習させ、次のような文章を生成することができた。

WikiPedia で学習したもの

The meaning of life is the tradition of the ancient human reproduction: it is less favorable to the good boy for when to remove her bigger. In the show’s agreement unanimously resurfaced. The wild pasteured with consistent street forests were incorporated by the 15th century BE. In 1996 the primary rapford undergoes an effort that the reserve conditioning, written into Jewish cities, sleepers to incorporate the .St Eurasia that activates the population. 

New York Timesで学習したもの

while he was giving attention to the second advantage of school building a 2-for-2 stool killed by the Cultures saddled with a halfsuit defending the Bharatiya Fernall ’s office . Ms . Claire Parters will also have a history temple for him to raise jobs until naked Prodiena to paint baseball partners , provided people to ride both of Manhattan in 1978 , but what was largely directed to China in 1946 , focusing on the trademark period is the sailboat yesterday and comments on whom they obtain overheard within the 120th anniversary , where ......


Andrej Karpathyが作り出した驚くべきサンプル


Andrej Karpathyの2015年のblog "The Unreasonable Effectiveness  of Recurrent Neural Networks” http://goo.gl/mNqwCv には、RNNが生成した、驚くべきサンプルが含まれている。それらを、紹介しよう。










マシンは、簡単な文法を理解できる!


これらの取り組みは、マシンが、例えば、C言語の構文や、LaTexの構文は、ほぼ完璧に学習していること示しており、興味深いものだ。マシンは、簡単な文法を学習できるのだ。

ただし、自然言語の生成では、いくつかの破綻が見られる。このことは、プログラム言語の文法規則が、基本的には「文脈自由文法(レベル2)」で、自然言語の文法規則である「文脈依存文法(レベル1)」よりも単純であることの表れとして理解できる。より単純な、有限オートマトンで表わされる「正規文法(レベル3)」の構造を、その出力から推定する問題が、膨大な計算を必要とするように、ここでは、膨大な計算が行われている。

もちろん、これらのアプローチの最大の問題は、文の「意味」を捉え損ねていることである。生成されたものには、文字通り「意味がない」のだ。ただ、そのことは、機械が文法を理解・学習しうるという発見の価値を傷つけるものではない。


文法の階層性 -- Chomsky Hierarchyについて


形式的言語の形式的文法は、次のような階層をなすことが知られている。これをChomsky Hierarchyと呼ぶ。

  • タイプ-0 文法は、全ての形式文法を包含する。
  • タイプ-1 文法は、文脈依存言語を生成する。
  • タイプ-2 文法は、文脈自由言語を生成する。
  • タイプ-3 文法は、正規言語を生成する。



機械が、この階層の中に位置付けられるどの形式的な文法を理解・学習できたかを考えることができる。

Hochreiterの仕事は、機械が、有限オートマトンで表現される正規文法を、理解・学習できることを示唆している。

Karpathyの仕事は、機械が、BNF(Backus-Naur Form)で表現されるような、Latex, プログラム言語の文脈自由文法を、理解・学習できることを、強く示唆している。




自然言語の文法は、この階層のどこに位置付けられるか?


問題は、自然言語の文法が、この階層のどこに位置付けられるかということである。

元の4階層の区分は、基本的だが粗いものである。Context-Freeな文法の中にも、LRやLLがあるように。

かつてのChomskyは、英語は Regular 文法ではないと明確に述べたが、それが Context-Freeであるかどうかは、明確には判断を下していないようにも見える。ただ、自然言語は、Context-Free性を満たさないというのが、大方の意見のように見える。それは、Context-Freeを超えた、Mildly Context-Sensitive な文法だという。(次の図の、赤い四角の部分)

現在のChomskyのMinimalist Programでは、自然言語の文法を、文法の階層の中に位置付けようとする問題意識は、あまりないようにも見える。ただ、Minimalist Programの中心的概念であるMergeについては、それがRecursiveであることが強調されている。Recursiveというのは、Recursive Enumerableの一部分で、決定可能なものである。(図の青い四角の部分)




Google翻訳が理解・学習した文法は?


おそらく、新しいGoogle翻訳が示しているのは、文脈依存文法の一部を、機械は理解・学習できるということなのだと、僕は、考えている。




方法論上の問題


機械が理解・学習できる文法のクラスを、Chomsky階層の中で位置付けようとする試みは、興味深いものだが、そこには、大きな方法論的な問題がある。

Hochreiterが、単純なRNNでは、有限オートマトンの生み出すRevere文法の認識が「できず」、LSTMなら、それが「できる」と主張したことを振り返ってみよう。

第一。ここでは、単純なRNNとLSTMという、二つの機械の能力が問題になっている。機械の構成の違いが、機械の能力の違いを生み出しているのは確かなのだが、我々は、二つの機械の出力をみてその能力を判断しているのであって、その機械の構成から、その能力の予測ができているわけではない。

Chomsky階層の各クラスの生成能力と相互の包含関係を、我々は、形式的に証明できるのだが、それぞれの機械の生成能力と相互の関係を、我々はきちんと把握できてはいない。Google翻訳のLSTM8段重ねx2の構成を、すごいとは思いつつ、どうすごいのかをうまく語れないのだ。(結果から見て、すごいとは言えるのだが)


第二。LSTMがRevere文法の認識が「できる」というのは、相当数の学習の後で、正解率がほぼ100%になるということであり、他の機械に、それが「できない」というのは、相当数の学習を繰り返しても、正解率が向上しないということである。それは、双方ともに、統計的・確率的な判断である。それは避け難いことだし、そのことの意味をよく考える必要がある。ただし、それは先に見たように、機械の構成で基本的には、規定されている。

相当数といったが、どのくらい学習を繰り返すべきかは、暗黙のうちに了解されている前提がある。それは、10年とかではない。(当たり前だ。でも、人間が一人前になるには、10年の経験が必要という分野だってあることはある。話が横道にそれたが、だから、「たくさんのGPUと膨大なデータと十分な学習時間があれば、精度をいくらでもあげられる」という無邪気な楽観論に、僕は、懐疑的だ。問題は、どんなマシンを作るかだ。)

第三。Hochreiterのマシンは、Revere文法を認識したというが、それは正規文法を認識したことにはならない。実際に示されたのは、正規文法の一部であるRevere文法の認識能力である。

僕は、LSTMは正規文法を認識できると考えているのだが、与えられたデータ(例えそれがいかに巨大なものであろうと)で学習したニューラル・ネットの能力を、その出力で判断するというアプローチを取る限り(それが、普通のディープラーニングのアプローチだ)、機械の能力をChomsky Hierarchyにマッピングすることは難しいだろう。現実に、不可能な網羅的な検証は、形式的・抽象的定義の飛翔に追いつくことはできないのだ。

正確に言えば、「Hochreiterのマシンで認識できない、Revere文法を満たす文は存在しないこと」を、我々は、証明してはいないのだ。


楽観的な展望


いろいろ、悲観的なことを書いたが、そこで終わっていると、気持ちが悪い。

例えば、正規文法を認識するニューラル・ネットを、スクラッチから構成することは、難しくはない。状態の遷移図を、そのままニューロンの役割に置き換えればいいはずだ。

問題は、例えば、LSTMが、その学習をつうじて、こうした回路を内部に、試行錯誤を通じて近似的に構成する能力を持つことを、きちんといえてないことだ。そのことは、経験的には当然のようにも思えるが、詳しい過程やその背後の理論構造を、僕は知らない。

そのことを明らかにできれば、文法の階層だけではなく、機械の構成の違いに基づく機械の階層について語ることができるだろう。