投稿

Benjioの「次元の呪い」-- 語の数と文の数

イメージ
【 Benjioの「次元の呪い」-- 語の数と文の数 】 今回のセッションから新しい章「意味の分散表現の登場」に入ります。 最初に扱うのは、2013年のThomas Mikolov, Jeff DeanらのWord2Vec論文です。この論文は、自然言語処理システムが現在の大規模言語モデルへと発展する「進化」の戸口にたつものだったと考えています。 ここでは、この論文に先行した当時の研究状況を振り返ってみようと思います。 コンピュータと自然言語が出会った時以来、大量の言語データを統計的に処理すれば、言語の性質がわかるだろうという楽観論が存在しました。ただ、そうしたアプローチは失敗します。 For breakfast I ate _____eggs. という文の空白部分に入るのは、三つの単語{ to, two, too }のどれかという問題に(答えはもちろん 'two'です)、21世紀に入っても、単純な統計的アプローチは、100% 正確に答えることができませんでした。この論文の著者は、10億語からなる用例集を統計的に処理したのですが。 それは問題の複雑さの尺度を見誤ったことによるものです。データの数を増やせば、問題が解けるようになるとは限らないのです。 26文字のアルファベット15文字以内で構成される語の数は、高々、26^15です。ただし、語彙が10万個ある言語での10個の語からなる文は、100000^10=10^50種類もあるのです。 ある言語で、すべての語彙を集めた辞書は存在するかもしれないのですが、その言語のすべての文の例を網羅した用語集は存在しません。 Benjioは、早くから、言語処理に現れる組み合わせの数の爆発を意識していた一人でした。2003年の論文で、彼は、それを「次元の呪い」 Curse of Dimentionality と呼びました。 この論文で、Benjioは「次元の呪い」と戦うために、次のような方法を提案します。  1.  語彙中のそれぞれの語に、m個の実数に値を持つ、分散したm次元の特徴ベクトル(word feature vector)を対応づける。  2.  語の並びの結合確率関数を、この並びの中の語の特徴ベクトルで表現する。  3.  語の特徴ベクトルとこの確率関数のパラメーターを、同時に学習する。 乱暴なまとめをすれば、こ

言語モデルの成功と失敗 --「意味の分散表現」

イメージ
【 言語モデルの成功と失敗 --「意味の分散表現」】 今回のセミナーのタイトルを、「AIは意味をどのように扱っているのか?」にしました。ただ、注意してもらいたいことがあります。それは、ここでいう「AI」のコンセプトは狭いものだということです。 ここでの「AI」は、基本的には、Googleニューラル機械翻訳に始まり、BERT、GPT-3、ChatGPTへと続く、現在の「大規模言語モデル」のことを指しています。 正確に言えば、今回のセミナーのテーマは、「大規模言語モデルは、意味をどのように扱っているのか? 」というものです。 では、なぜ、意味の理解に大規模言語モデルは、重要なのでしょうか?それに答えるのは比較的容易です。 人間は、自然言語を扱う理論をいろいろ作ってきたのですが、それに基づいて実際のコンピュータ上で、意味を含んだ自然言語を扱うシステムを実装することには、なかなか成功しませんでした。 大規模言語モデルが重要なのは、それがコンピュータ上で自然言語の意味を扱うことに成功した、事実上最初の、そして現状では唯一の実装されたモデルだからです。 大規模言語モデルの出発点となったのは、「語の意味の多次元ベクトルによる表現」でした。 今回のセミナーの、第二部「意味の分散表現の登場」、第三部「大規模言語モデルの成立」という構成は、今回のセミナーの主要な目的が、大規模言語モデルの成功を跡づけようとしていることを示しています。 ただ、この第一部「意味理解への様々なアプローチ」では、大規模言語モデル以外の、意味理解のアプローチを紹介しようと思います。 様々なアプローチがあるといっても、対象となる人間の言語活動は共通です。ここでは、文と文の意味の基本的な特徴について述べてみたいと思います。それは、次の二つです。  ● 文と意味の「構成性(compositionality)」  ● 意味の「同一性」 / 意味の共通表現の存在 文と意味の「構成性(compositionality)とは、 ・文は文法に従って語から構成されること。 ・文の意味は、語の意味に依存して構成されること。 ・文の意味は、文の文法的構成に依存すること。 をさします。 意味の「同一性」 / 意味の共通表現の存在 とは、 ・言語が異なっていても、「同じ」意味を持つ語が存在する。 ・言語が異なっていても、「同じ」意味を持つ

EntityモデルのFolksonomyとChatGPT

イメージ
 【 EntityモデルのFolksonomyとChatGPT 】 今回のセッションでは、ボイス・アシスタントの意味へのアプローチの紹介しようと考えていました。 ボイス・アシスタントでは、人間の側の発話の意図を機械が把握し、その意図に応えて正しく反応するのが、機械にとっての「意味理解」であるという、意味のPragmatic(「語用論」的)な解釈が取られます。   命令文 ー 命令された動作を行えばいい   疑問文 ー 答えを与えればいい ー>検索を実行 ボイス・アシスタントの代表的な製品である Alexa / Echo では、人間の発話の意図は、Intent という一つの文字列で表現されます。Intentは、基本的には、機械に対する人間からの命令を簡潔に示したものです。こうした単純な意味モデルをIntentモデルと呼びます。 お詫びしですが、前回の最後のスライドで、すこし正確じゃないことを言っていました。Googleの音声検索も、Pragmaticな意味解釈に基づくようなことを言ったのですが、Googleのグラフによる知識表現論は、もっと複雑なものです。 少し補足します。 GoogleのKnowledge Graphは、情報をEntityの構造に対応させる技術です。あるものの「意味」は、対応するEntityが持つ「情報」として解釈されます。Entityは、現実のものであれバーチャルなものであれ、具体的なものであれ抽象的なものであれ、概念としては「実在するもの」とみなされます。ある種の概念実在論と言っていいと思います。 Entityモデルでは、Entityとその関係の構造が表現するものは実在的なものの構造の反映です。こうした関係をEntityの「存在論 "Ontology" 」といいます。少し大袈裟な気もしますが。ですから、Entityを用いれば、具体的な言語表現からは独立な、かつ、全ての言語で共通な情報を与えることが可能です。(もっとも、Entityとその階層を定義しているSchema.org は、Entityを英語の名前で定義しています。) ただ、そうした理念に導かれたEntityモデルですが、現実的な問題がありました。それは、Entityの階層にしろ、それぞれのEntityの持つPropertyにしろ、それらは決してアプリオリに与えられるもの

Google検索とChatGPT

イメージ
 【 Google検索とChatGPT 】 このセッションでは、二つのトピックスを取り上げます。 一つは、ChatGPTに対するGoogleとMicrosoftの反応です。もう一つは、Google検索での「意味」へのアプローチを紹介したいと思います。 ChatGPTに対するGoogleの反応については、昨年末の2022年12月21日のNew York Times紙のリークがニュースソースになっているようですが、ここで紹介しているのは、CNETの記事です。 ChatGPTの登場にGoogleが大きな関心を持っているのは確かなようです。それも強い警戒心を持って。「危険信号 Code Red」という表現を使ったことが話題になっています。興味深いのは、ChatGPTのような技術は、「検索に対する信頼性を損なう」という評価をしたことだと思います。これは、現状の判断としては正しいのではと僕は考えています。 Microsoftの反応は、今年1月11日のBloombergの記事からのものです。MicrosoftはChatGPTを開発したOpenAIに、今後100億ドル規模の投資を行う方向で協議を進めているという報道です。 「検索業界では長い間、基本的に手出しができない存在だったグーグルが突然弱さを見せたため、ナデラCEOはこの関係を強化しようとしている。」 僕が面白いと思ったのは、現在Microsoftの傘下にあるGitHubのCoPilot等のプログラム開発支援ソフトに、ChatGPTの技術を取り入れようとしているということです。 ChatGPTは、自律的なAIではなく、むしろ基本的には「人間からのフィードバック」によってドライブされています。プログラム開発の世界で、「人間からのフィードバック」が一番蓄積されているのは、GitHubだと思います。ChatGPTのコミュニティの沢山の参加者の、とりめのない「対話」からの「フィードバック」より、GitHubでのソフトウェアの更新履歴は、役にたつ「人間からのフィードバック」の「宝の山」になるでしょう。 セッションの後半では、Google検索のグラフによる知識表現と意味の世界との繋がりに触れています。 「テーラー・スイフトの年齢は?」という問いに対して、「33歳」と答えることは、 「テーラー・スイフトの年齢は?」という文の意味を理解してい

1/28マルレクへの招待

【 1/28マルレク「AIは意味をどのように扱っているのか? -- ChatGPTの不思議」への招待 】  1月28日「ChatGPTの不思議」の続編のセミナーを開催します。 前回の1月14日のセミナーでは、ChatGPTが「大規模言語モデル」の中から生まれながら、「人間からのフィードバックによる強化学習」という方法で、人間の教師による教育と評価をうけて成長した、人間との「対話」に特化したAIシステムであることを見てきました。 それにしても、ChatGPTが、多くの人に強い印象を与えたのは、それが滑らかに「対話」する不思議な能力をもっていることだったと思います。その能力は、ChatGPTが「対話」の意味を的確に理解していることに主要に依拠しています。そして、その能力はChatGPTの産みの母である「大規模言語モデル」から受け継いだものに他なりません。 今度の1月28日のセミナーでは、前回のセミナーでは取り上げることのできなかった、ChatGPTをはじめとする現代のAI技術が、どのように意味を扱ってきたかを、すこし歴史的に振り返って見たいと思います。 次のような三つの内容でセミナーを構成しようと思っています。  ● 意味理解への様々なアプローチ  ● 意味の分散表現の登場  ● 大規模言語モデルの成立 【 意味理解への様々なアプローチ 】 「IBM Watson」や「Google 音声検索」、また「Amazon Alexa」等のボイス・アシスタンス等の「対話型」のシステムは、それぞれ異なる意味理解のモデルに基づいています。言語の意味理解のコンピュータでの実装のいくつかの取り組みとその特徴を簡単に紹介します。 【 意味の分散表現の登場 】 ただ、ある時点から、ディープ・ラーニングでの「意味の分散表現」が、それまでの様々な意味の実装方法を凌駕するようになります。自然言語の理解に統計的手法を使うという流れは古くからあったのですが、ここでは「意味」は明確にベクトルで表現されることになります。具体的には、次のトピックスを紹介しようと思います。  ○ Auto Encoder  ○ Word2Vec  ○ Sequence to Sequence  ○ Attention Mechanism 【 大規模言語モデルの成立 】 「意味の分散モデル」の成功は、次の「大規模言語モデル」の

翻訳の意味の世界の奇妙さ

イメージ
【 翻訳の意味の世界の奇妙さ 】 このセッションでは、ChatGPTが意味を理解しているかを考えたいと思います。 僕は、彼は、「意味を理解している」と考えていいと思っています。 だからこそ、関連する話題に関連する話題で反応できるんです。 彼は、「話題の関連」「意味の近さ」を把握しています。 現代のAI技術が、コンピュータの内部でどのように意味を表現し処理しているかについては、今回のセミナーでは触れないことにしました。それは、「意味の分散表現」というものなのですが、それについては、改めて別のセミナーを開くのがいいと考えています。 ここでは、その意味理解のみかけ上の特徴について触れてみようと思います。 ChatGPTの産みの母であるGPT等の大規模言語モデルの意味理解の中核技術は、機械翻訳技術です。そして、ChatGPTの意味の扱いは、基本的に大規模言語モデルの翻訳による意味の理解に依拠しています。 翻訳で意味を把握するということは、単純な例を挙げれば、”I love you.”の意味は、「私はあなたを愛している」という意味であると考えることです。これは、ある意味では、正しい意味の把握です。 そして、この機械翻訳技術は大きな成功を収めました。 現在では、多くの言語で書かれたものの意味を、我々は理解できます。 シェクスピアでもゲーテでもランボーでも。 素晴らしい! ただ、翻訳の意味の世界には、いくつか奇妙な点があります。 それは、その意味が明らかでないもの、あるいは、意味がないものも、「翻訳」してしまいます。 Beau comme la rencontre fortuite sur une table de dissection d'une machine à coudre et d'un parapluie.  解剖台でミシンと傘が偶然出会ったように美しい Colorless green ideas sleep furiously  無色透明のグリーンのアイデアは、猛烈な勢いで眠る もっと重要なことが二つあります。 一つは、翻訳の意味の世界は、「事実」とは関係なく存在するということです。 アインシュタインはバカだった  Einstein was an idiot. 世界に戦争はない  There is no war in the world. もう一つは

夢の中の記憶

 【 夢の中の記憶 】 面白い夢を見ました。といっても、面白いと気がついたのは、夢から覚めてからだったのですが。 クレジットカードを無くしたという夢でした。 探し物をする夢は、何度か見たように思うのですが、今度の夢では、あちこち無くしものを探しませんでした。その代わり、僕が夢の中でしたことは、昨日の行動を思い出すことでした。これも、現実には、よくあることです。 いろいろと前日の記憶を引き出すことができました。(残念ながら、今はもう、その「記憶」の中身は無くなってしまいました。) どうやら、カードを無くしたのは、昨日ではないらしいと気づきました。それじゃ、その前の日かな? それで、さらにその一日前の日の出来事を思い出そうとして、目が覚めました。 夢から覚めて面白いと思ったのは、夢の中の自分が、夢の中の自分の「前の日の記憶」を思い出そうとしていることです。 今回の夢は、カードがなくなったことに気づくところから始まっていました。ですから、この夢の時間には、本当は「前の日」はないんです。 でも、夢の中で、記憶を辿ると、適当なこと思い出すんですね。そこで思いだされた記憶の実体は、どういうところにあるのでしょう? もちろん、夢ですので実体などないのですが。 夢のイメージと、夢の中の記憶のイメージは、同じものなのでしょうか? 不思議ですが、少し違うような気がします。夢の中で見る夢と同じようなものかもしれません。 夢を見たら、夢の中の「記憶」を過去に遡ってみてください。 ------- 追記 ------- 「集合的無意識」というものがあるかもしれませんので、「唯一無二」とは言い切れないとしても、「生物学的本能」を含めて、意識は「さしあたり」は、その人の意識として現れると思います。 夢の中でも現実でも、現実の意識と夢と、それから記憶の想起は区別されます。現実の中の現実の意識も、夢の中の現実の意識も、現在から未来に向かいます。こうした時間の流れは、現実に見る夢(普通の夢です)でも、夢の中で見る夢も同じです。 面白いと思うのは、記憶の想起は、現実でも夢の中でも、未来も現在もなく、過去にしか向かいません。 過去などないはずの世界でも、夢の記憶は、過去を作り出すのかもしれません。それは、ベクトルの方向は真逆ですが、未来に向けて、今はないものを作り出す「想像力」の働きと同じものだと思います。