第205回 文と物語の間 〜文脈って、こういうことだったのか!


ロボマインド・プロジェクト、第205弾
こんにちは、ロボマインドの田方です。

ロボマインド・プロジェクトの目的の一つは、コンピュータによる言葉の意味理解です。
ここで、コンピュータってのがミソなんですよ。

人が話す言葉のことを自然言語っていいまして、コンピュータで言葉を扱う分野を自然言語処理って言います。
この分野、かれこれ50年以上の歴史がありますけど、未だに、言葉の意味とは何かって定義すらないんですよ。

でも、言葉の意味って、一番、重要でしょ。
それが、未だに出来てないって、どういうこと?って思いますよね。

でもね、これは仕方ない面もあるんですよ。
さっき言ったでしょ。
コンピュータによる意味理解がミソだって。
厄介なんは、ここなんですよ。

じつはこの問題、人類が未だかつて直面したことのない問題なんですよ。
どういうことかっていうと、人類が今まで議論してきたことは、すべて、人間が対象だったんです。
説明する相手は、人間なんです。
たとえば、「ここにリンゴがあるとするでしょ」って言ったとします。
ここで引っかかる人はいませんよね。

でも、相手が、コンピュータだと、こっから引っかかるんですよ。
リンゴって何?
物があるって、どういうこと?って。
これが、人類が初めて直面した問題です。
人間以外の相手に説明するって、未だかつて、経験したことがなかったんですよ。

たとえ、リンゴが丸いとか赤いとかって定義できたとします。
でも、次は、文です。
文の意味がわかるって、どういうこと?ってなります。

さらにやっかいなのは、文脈です。
文脈が同じとか、違うとか。
それって、どういうこと?ってなりますよね。

人間なら、何となくわかることでも、コンピュータに理解させるって、本当に難しいんですよ。

そこで、今回は、これらをコンピュータでどうやって扱うかってことを考えてみたいと思います。
今回のテーマは、「文脈とは何か?」です。
それでは、始めましょう!

まずは、人が世界をどうやって認識するかから、おさらいします。

人は、目で見た世界を頭の中で仮想世界としてつくり上げます。
そして、意識は、その仮想世界を介して現実世界を認識します。
これを、意識の仮想世界仮説と呼んでいます。
詳しくは、この本に書いています。
説明欄にリンクを張ってますので、興味ある方は読んでください。

ここで重要なのは、意識は、仮想世界を認識してるってことです。
現実世界を直接、認識してないってことです。

ここ、もう少し丁寧に説明しますね。
目の前にあるリンゴを認識するとき、人は、リンゴを直接認識してるわけじゃないんです。
記憶してたリンゴオブジェクトを仮想世界につくりだして、それを認識するわけです。
だから、見ただけで、味や香り、重さまで想像できるわけです。

これ、どういうことか分かりますか?
認識してるリンゴのほとんどは、既に頭の中にあった物です。
それを呼び出して、見えてるリンゴに当てはめてるわけです。

つまり、目に見えてるリンゴは、単なるきっかけに過ぎないんです。
リンゴの本質は頭の中にあって、それを呼び出してるだけです。
もっと言えば、目に見えなくてもいいんです。
重要なのは、頭の中にあるリンゴを呼び出すことです。
呼び出すきっかけが、「リンゴ」って単語なわけです。
一種の記号といってもいいです。
そう言うふうに管理する仕組みを持ってるわけです。

これ、別の見方をしてみますよ。
情報量の観点です。
現実のリンゴの情報は眼球の奥の網膜に映った映像です。
網膜にある何千万といった視細胞からの画像情報です。

でも、人間の場合は、リンゴの本質は、頭の中に保存されてるわけです。
行ってみれば、辞書みたいなのがあって、「リンゴ」の本質は何ページに書いてあるかさえわかればいいわけです。
つまり、リンゴの情報は、何ページって数字に置き換わったわけです。
膨大な画像情報が、小さな情報に削減されたわけです。

これが意味理解なんです。
つまり、意味を理解するとは、情報量の削減なんですよ。
大量の情報から、必要な情報に絞り込むってことです。

さて、リンゴのページには、色とか重さ、味とか、値段とか、もう、いっぱい書いてあります。
その中には、今、関係ない情報もいっぱい含まれてます。
重要なのは、今、必要な情報です。
今、必要な情報ってのは、言い換えれば、今の文脈で必要な情報ってことです。
はい、文脈がでてきました。

こっからが、本題です。
ここで、意識の仮想世界仮説が出てくるわけです。

頭の中の辞書って、文字で書かれてるわけじゃないんですよ。
仮想世界で一番分かりやすいのは、3次元の物理世界です。
大きさとか形は、3Dオブジェクトで定義できます。
重力も表現できるので、重さも定義できます。
重さとか、色、形の意味って、3次元世界で定義されるわけです。

スーパーでリンゴが売ってるのを見て、値段を見たら300円って書いてあったとします。
そこで、そのリンゴに新たな情報として300円って付けるとします。

さて、300円は、さっきの3次元の仮想世界のどこに設定しましょ。
3次元世界じゃ、値段を設定するとこがないですよね。
3次元世界というのは、大きさや重さを定義する世界です。
値段を定義するのは、別の世界が必要なんです。

ものを売り買いできる世界です。
物を買うってことは、その物が自分の物になることです。
つまり、所有権が移るわけです。
そこで、所有権世界ってのを考えることにします。
所有権世界には、物の売買以外に、交換とか、あげるとかがあります。
3次元世界では表現できない所有権ってのが、表現できるんです。
そして、物の価値ってのも設定できる項目があるわけです。
リンゴは、そこに300円って設定すればいいんです。
これが、リンゴは300円の意味です。

はい、ここで、ようやく意味が出てきましたね。
新たな意味の定義です。
意味が分かるってのは、仮想世界のどこに設定したらいいのか分かるってことなんですよ。

もっと行きますよ。
仮想世界って、一つじゃなかったですよね。
3次元世界とか、所有権世界とか。
たぶん、そんなのがいっぱいあるんですよ。
つまり、仮想世界に設定するには、まず、適切な仮想世界を決めないといけないんです。

世界を間違うと、意味が通じなくなるんです。
売ってるリンゴを指して、これは甘いですかとか、新鮮ですかとかって聞くのは意味のあることです。
甘いか、新鮮かってリンゴの価値ですよね。
物の価値は、所有権世界で設定されますよね。
300円の価値に似合うものかって確認してるわけです。

これを、「このリンゴは手を離せば、下に落ちますか?」とか。
「それって、地球がリンゴを引っ張ってるってことですよね」
とかって言ったら、なんか、違いますよね。

これ、何が違うんでしょう?
わかりますよね。

そう、文脈です。
文脈が違うんです。
はい、文脈がでてきました。

いいですか、リンゴの値段とか、価値の話は、所有権世界の話です。
リンゴが落ちるとか、重力の話は、3次元の物理世界の話です。
違う世界の話をごっちゃにすると、話がぐちゃぐちゃになるんです。
これは、違う文脈の話をしてるからです。

ここらで、整理していきますよ。
人は、考えることができます。
考えるとき、何らかの文脈に沿って考えます。

文脈というのは、別の言い方をすれば世界です。
3次元世界とか、所有権世界とか。
その世界、あるいは文脈ごとに、使う単語が異なります。
3次元世界なら、形とか重さ、落ちるとかです。
所有権世界なら、買うとか、あげるとかです。
世界を決めて、その世界の言葉に当てはめること、これが意味を理解するってことです。

世界とは文脈のことだって言いましたけど、ここ、補足説明しておきます。
3次元世界には、リンゴとかって物がありますよね。
3次元世界で、物は下に落ちますよね。
物は名詞です。
落ちるは動詞です。
3次元世界に定義される物と、その動きで文が作れるんです。
「リンゴが落ちる」って文がつくれます。

3次元世界は、3Dの物理シミュレータで作れます。
3次元世界のリンゴは、3Dのリンゴオブジェクトで作れます。
つまり、名詞は3Dオブジェクトとなるわけです。

落ちるって動詞は、オブジェクトの動きです。
重力に従って下に落ちる動きが落ちるです。
オブジェクト指向言語でいえば、物体オブジェクトは、落ちるメソッドを持ってるわけです。

「リンゴが落ちる」って文は、リンゴオブジェクトが持ってる「落ちる」メソッドを呼び出すのと同じです。
プログラムっぽくかけば、
「リンゴ.落ちる」
とでもなります。
このプログラムを実行するには、まず、3次元世界を設定します。
この世界の設定が、文脈に当たります。
そして、その3次元世界にリンゴオブジェクトを生成して、空中に配置します。
そして、リンゴオブジェクトの落ちるメソッドを呼び出すわけです。
すると、空中に浮かんでたリンゴが下に落ちるわけです。
はい、これが、「リンゴが落ちる」って文の意味です。
世界、文脈、文、プログラム。
これらがキレイにつながりましたよね。

次は、所有権世界を考えてみましょう。
所有権世界には、人とか物って名詞があります。
これは、プログラムだと人オブジェクト、物オブジェクトとなります。
それから、買うとかあげるって動詞があります。
これは、プログラムだと、買うメソッドとかあげるメソッドです。
あげるメソッドは、誰に何をあげるってパラメータを持ってます。

たとえば、「太郎がリンゴを次郎にあげる」って文をプログラムで書くとすると、
「太郎.あげる(次郎,リンゴ)」とかってなるわけです。
ほんで、このプログラムを実行すると、太郎の所有物にあったリンゴが、次郎の所有物に移るわけです。
さらに、「次郎はリンゴを花子にあげる」って文も作れます。
こうやって、同じ世界で文が引き継がれていくわけです。
これが文脈です。

どうです?
自然言語処理で今まで定義できなかった言葉や文の意味、文脈ってのが、プログラムでキレイに定義できましたよね。

ついに、言葉の意味を理解するコンピュータが生まれたわけです。
人類以外で、初めて、言葉を理解しました。
これが、ロボマインド・プロジェクトです。

はい、今回の動画が面白かったら、チャンネル登録、高評価、お願いしますね。
それじゃぁ、次回も、おっ楽しみに!