投稿

ラベル(Language)が付いた投稿を表示しています

文の複雑さについて

アルファベット(小文字)は、'a'から'z'まで26文字である。"monkey"は6文字だ。 もしも猿が26キーのタイプライターを6回適当に叩いたとする。この時、猿がうちだすことが可能な文字列の総数は、26の6乗で、308,915,776になる。9桁の数字で3億ちょっとである。 宝くじの番号は、75組 159149番(これが今年の5億円のあたりの番号)のように8桁なので、タイプライター猿が、"monkey"と打ち出すのは、サマージャンボで5億円当てるより、30倍ほど難しいことがわかる。 それでも、誰かには5億円が当たるように、もしも、猿のタイプライターが3億匹いれば、そのうちの一匹は、"monkey"と打ち出す可能性は高いのだ。 ところで、英語の単語は、何個あるのだろう? 先に、"monkey"の例で、6文字のアルファベットの数は、約3億 3 x 10^9 個あることがわかったので、12文字のアルファベットの並びの数は、約9 x 10^18、だいたい10の19乗ほどあることがわかる。随分大きな数だが、その全てが、意味のある単語にはなっていない。というか大部分が、猿タイプライターが打ち出すような無意味な文字の並びである。 (興味がある人は、「一番長い英単語は?」でググって見てほしい。) ただ、「単語」ではなく「文章」を打ち出そうとすると、もっともっと大きな数が登場することになる。 無意味な綴りを乱発する猿のタイプライターは、クビにして、必ず意味のある単語を打ち出すが、単語の順序はデタラメであるタイプライター・フジオを雇うことにしよう。英語ではなく日本語で考えよう。文章を作るという点で、フジオは猿よりマシだろうか? 日本語の単語の数を10万としよう。 現実には、日本語の語彙の数は、もっと多い。 日本語の辞書の収録語彙数をあげておく。    『日本国語大辞典』(小学館)  50万語  『広辞苑』(第六版、岩波書店) 約24万語  『岩波国語辞典』(第七版)   6万5000語 日本語で、10個の語からなる語の並びがどれくらいあるか数えてみよう。 10語文というのは、そんなに長い文章ではない。 古池1 や2

日本語WordNetのサーバーがシンガポールにあるのが悲しい

小川 さんから指摘されて、日本語WordNetのサーバーがシンガポールにある理由を調べて見たんですが、理由がわかりました。(多分) このプロジェクトをNICTで推進していたFrancis Bond 氏が、シンガポールの大学にうつったからですね。http://www.ntu.edu.sg/home/fcbond/prof.html ということは、日本では、日本語WordNet メンテされてないんだ。ひどいな。なんてこった。 「Botづくりを始める前に(4)」を書いていて、「 まず、bAbiに対応する推論訓練用の日本語データセット作ろう 」とか、書いていたんだけど、バカバカしくなって、書くのやめました。 ImageNetのラベルには、WordNetのIDがふられています。自国語辞書の整備は、自然言語処理の基本中の基本です。そんなこともできないで「日の丸人工知能」なんか、できっこないと思います。

Botづくりを始める前に(3)

人工知能と検索技術 人工知能と検索技術の関係では、GoogleのLarry Pageの次のような発言が興味ふかい。 「Googleの検索エンジンが、AIによって完全なものになったときにのみ、Googleのミッションは、完遂されるだろう。あなたたちは、それが何を意味するのか知っている。それが人工知能なのだ。」 「人工知能は、Googleの最終バージョンになるだろう。Web上のすべてのものを理解するだろう究極の検索エンジンは、あなたが望むものを正確に理解するだろうし、あなたに正しいものを与えるだろう。我々は、今は、そうしたことをするのには、遠いところにいる。ただ、我々は、少しずつ、それに近ずくことはできる。我々が取り組んでいることは、基本的には、そのことなのだ。」 「検索における我々の大きな目標は、人が望むものを、実際に正確に理解し、世界のすべてのものを理解することである。コンピューター科学者として、我々は、それを人工知能と呼ぶ。」 ここでは、Googleの検索と人工知能の目標が、一致することが主張されている。個々の画像の認識や、個別の文章の意味の理解だけではなく、世界のすべてのものを理解するのが、Googleの検索と人工知能の目標になる。 その主体は、Googleだとも読めるのだが、そこまで言わなくても、人工知能の主体は、ネットワーク上に存在することになる。これはこれで、狭い意味のディープ・ラーニング的な人工知能観とは異質な、しかしながら、重要な観点である。 グラフ検索とEntity ModelとSchema.org 先に見た、第二のタイプのBotを考えるとき、2010年代に起きた検索技術の変化が、大きな意味を持つことに気づく。 それまでの検索は、crawlerが収集したweb上の膨大なテキストから、文字列を探し出し(indexingにバッチのmapreduceを使う)、その文字列を含むURLを適当な順番(pagerank ここでもmapreduce)で返すシステムであった。 2010年代に検索に起きた変化は、まず、Indexingのリアル・タイム化であり、それに続くグラフ検索の手法の導入である。GoogleのKnowledge Graphは、Entity Modelで構成された巨大なグラフを、おそらくは、Google

7/2 大阪 ディープラーニング6時間集中講義

イメージ
7月2日、大阪で「ディープラーニング6時間集中講義」の第二弾を開催します。テーマは「自然言語」です。 私たちが普通に使っている「言語」の「意味」を機械に理解させることは、人工知能のもっとも大きな目標の一つです。 多くの関心を集め、応用分野の拡大が続く「人工知能技術」ですが、自然言語処理の分野では、残念ながら、まだまだ多くの課題が残されています。 講演の前半では、ディープラーニング技術に限らずに、自然言語をめぐる様々なトピックを紹介します。アプローチの多様性は、このチャレンジの難しさを示しているのかもしれません。 講演の後半では、ニューラル・ネットワークの側からの取り組みを紹介します。まず、基本的なツールとしての RNN という技術の紹介をし、最後に、この分野での最高の達成の一つである、Googleの「ニューラル機械翻訳」を詳しく見てみたいと思っています。 自然言語処理の現状を理解することは、現在の人工知能技術の到達点を正確に把握する上で不可欠の課題だと考えています。また、それは、人工知能技術の未来を考える上でも、大きな意味を持っています。 多くの皆様の参加をお待ちしています。 開催概要・お申込みについては、次のサイトをご利用ください。 http://osaka-deeplearning2.peatix.com/

Google翻訳のアーキテクチャー(4) Wordpiece

Segmentation Approaches Neural Machine Translation models often operate with fixed word vocabularies even though translation is fundamentally an open vocabulary problem (names, numbers, dates etc.). There are two broad categories of approaches to address the translation of out-of-vocabulary (OOV) words. One approach is to simply copy rare words from source to target (as most rare words are names or numbers where the correct translation is just a copy), either based on the attention model [37], using an external alignment model [31], or even using a more complicated special purpose pointing network [18]. Another broad category of approaches is to use sub-word units, e.g., chararacters [10], mixed word/characters [28], or more intelligent sub-words ニューラルマシン翻訳モデルでは、名前、数字、日付といった、基本的には辞書にないオープンな語彙の翻訳であっても、固定した語のボキャブラリで動作することがよくある。 語彙外(OOV : Out Of Vocaburary )単語の翻訳に対処するアプローチには、大きく2つのカテゴリーがある。  1つのアプローチは、珍しい単語を、ソースからターゲットへの単純にコピーすることである。(珍しい単語の大部分は、名前や番号で、それらに対しては、コピーが正しい翻訳になる。)あるいは

6時間集中講義「自然言語とニューラルネットワーク」

イメージ
今週末の4月22日、角川ASCIIさんで開催する 6時間集中講義「自然言語とニューラルネットワーク」の講演資料です。ご利用ください。  第一部 概説 自然言語と人工知能  https://goo.gl/Hx4maJ  第二部 RNNとLSTMの基礎     https://goo.gl/aAmyfC  第三部 Googleニューラル機械翻訳   https://goo.gl/m1yMb0 基本的に、言語について取り上げてきた、この間の4回+アルファのマルレクの講演を3回にまとめたものです。 計算が合わないのですが、第一部が、再構成・一部加筆され、結果、頭でっかちになっています。第二部・第三部は、マルレクの資料と同じものです。 長いので(スライド 700枚近くあります)、本当は、聴きにいらしてもらうのが一番いいのですが .....

Google翻訳での日本語の点数の低さについて

イメージ
Google翻訳は、なかなかスゴイのだが、他の欧米系の言語での翻訳と比べると、日本語の翻訳精度は、かなり低い。 この表は、Google翻訳の「Zero-Shot論文」の、ある意味「目玉」の結果の一つである。 機械翻訳のシステムを、ドイツ語 -> 英語、フランス語 -> 英語 というように、一対一の言語の組み合わせで別々のシステムで訓練させるより、{ ドイツ語、フランス語} -> 英語 のように、一つのシステムで同時に複数の言語(この場合は二つの言語)の一つの言語(この場合は、英語)への翻訳を訓練した方が翻訳精度が上がるという、驚くべきものである。 人間で言えば、日本語の英語への翻訳をもっとうまくやりたいなら、韓国語から英語への翻訳も、同時に学習する方がいいということ。 このメリットを説明する可能性のある仮説の1つは、モデルがより多くの英語データをターゲット側に持ち、ソース言語が同じ言語ファミリに属していること。それで、モデルは有用な一般化を学んでいると思われる。 こうした 発見は、とても興味深いものだが、ここでは、別のことに注目しよう。 ここでの翻訳精度の改善は、BLEUのスコアで、+0.05〜+0.79の改善である。(表の赤い枠の部分。) ただ、日本語 -> 英語の翻訳精度は高いスコアで 23.87で、フランス -> 英語の 36.77と比べるとずいぶん低い。この表の中では、最低だ。実験で最高得点をたたき出している ポルトガル語 -> 英語の 45.19と比べると、半分程度だ。 実は、このポルトガル語の高得点も、僕には不思議に見える。WMTのコーパスでは、英語・フランス語のパラレル・データが3,600万ペアで、英語・ドイツ語のペア500万と比べても圧倒的に多い。ポルトガル語の高得点は、Google内部のコーパスを使ったものだが、アメリカなら、英語・スペイン語のデータは多いと予想できるのだが、英語・ポルトガル語のデータが、それ以上に多いとは思えない。でも、スペイン語 -> 英語より、ポルトガル語 -> 英語の方が、ずっと成績がいいのだ。 きっとGoogle翻訳は、英訳に関して言えば、日本語とは相性が悪く、ポルトガル語とはとても相性がいいのだ。なぜか? 僕にはわからない。

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

イメージ
機械翻訳では、同じ意味の二つの言語の文を集めたパラレル・コーパスが不可欠だ。 この世界で標準的に利用されている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文字の「文」の解読に成功したという。 女神への祈りだという

「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言語対の多言語モデルで、多くの個々のペアの翻訳より良い翻訳が可能になります。 我々のモデルは、モデルが訓練された言語ペアの翻訳品質を向上させることに加えて、訓練中に明示的には見られなかった言語

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