自然言語処理への提言4 「心のモデル」と言葉の関係
自然言語処理への提言4 「心のモデル」と言葉の関係
人と自然な会話ができるシステムを作るには、人と同じ心のモデルを作るのが一番重要。
そのために、どちらが良い「心のモデル」で、どちらが悪い「心のモデル」か、判定できる方法がないといけません。
そこで、「心のモデル」を作ったら、そのモデルに基づいて言葉を出力し、それを人が読んで判断します。
人は、「相手の発した言葉から、相手の心のレベルを判断できる」という性質を使った判定方法というわけです。
ここまでが、前回の話です。
今回は、この手法の具体的な内容について説明します。
前回は、話を分かりやすくするために、思いやりのある少年の話を例にあげましたが、これは、かなり高度な心のモデルです。
最初に取り組むのは、もっと原始的な心のモデルになります。
「言葉の意味をどう定義するか」で、「概念ツリー」と「Has-aツリー」の話をしました。
どちらも、心のモデルを構成するものです。
「概念ツリー」とは、単語の意味の概念関係をツリーで表現したモデルです。
たとえば、「建物」概念の下には、「病院」「学校」「家」といった建物の下位概念が属します。
「学校」概念は、「小学校」や「中学校」、「大学」「東京大学」などの単語を持ちます。
このように、概念ツリーは、下位なほど具体的であり、上位なほど、抽象度が高くなります。
「Has-aツリー」は、「AはBを持つ」という関係を表したものです。
たとえば、
「建物」は「ドア」、「窓」を持つ。
「学校」は、「先生」、「生徒」を持つ。
「病院」は、「医者」、「患者」、「看護師」を持つ。
といったデータモデルになっています。
「心のモデル」が、「概念ツリー」と「Has-aツリー」を持っていたとします。
そこから、このモデルに合致する単語をランダムに選び、文として出力させます。
たとえば、「建物は窓を持つ」といった風に。
特に、問題ないですよね。
こうやって、AIが出力する文を人間が判断していくわけです。
上位概念が持つものは、下位概念も持つので、
「学校は窓を持つ」
「小学校は窓を持つ」
といった文も出力されます。
「窓を持つ」でなく、「窓がある」の方が正しいんじゃないか?と思われるかもしれません。
でも、言いたいことはわかると思います。
言いたいことがわかる。
これが重要なのです。
これが、僕が目指そうとしているAIなのです。
表現はぎこちなくても、意味が通じる文を生成できるAI。
今までのAIは、流ちょうでなめらかな言葉を話しますが、意味が通じていないことがよくありました。
なぜかというと、予め、固定されたセリフを大量に用意していて、特定の単語がでてくると、このセリフで答えるといった単純なルールで動いていたからです。
セリフは固定された文で、文法的には問題ないですが、意味理解していないので、会話が成立していなかったのです。
僕が目指そうとするのは、単語から文を組み立てるので、出力される文は、稚拙な表現となっているかもしれませんが、少なくとも、何が言いたいか、意味が通じる文を生成します。
意味さえわかっていれば、あとは、表現の上手い下手の問題なので、ここは、学習によって、いずれ洗練された文を出力できるようになるでしょう。
機械学習の出番ですね。
大量の文書を学習し、意味を維持した上で、最も適切な表現を選ぶ。
ここがディープラーニングの使いどころです。
意味理解できない現段階の自然言語処理で、無理やりディープラーニングを使っても、価値のある結果は出てきません。
「学校は、窓を持つ」より、「学校に窓がある」の方がふさわしい。
こういった修正は、いずれ、機械学習で行うとして、今は、多少ぎこちなくても、意味の通る文を生成する、これだけを目指します。
今回、例に挙げたモデルは、「概念ツリー」と「Has-aツリー」だけなので、単純な文しか生成できませんが、動詞モデルを追加することで、動きのある文が生成できます。
また、原因と結果のモデルを適用することで、時間の意味も理解できるようになります。
モデルを追加するごとに、そのモデルに合致する文をランダムに生成し、意味的におかしくないか判断し、おかしければモデルを修正するといったことを繰り返すことで、心のモデルが出来上がってくるのです。
これが、僕の提案する新しい自然言語処理の開発方法です。
そして、ロボマインド・プロジェクトが、今後、行う開発でもあります。
何らかの心のモデルができれば、実際に動く形でブログでも紹介していきたいと思いますので、ご期待ください。
これは凄い人が現れました。じっくり読ませていただきます。
ありがとうございます。
田方さんは、相手の話をAIが、自らの頭脳中に設けた3次元の仮想空間の中で再構築し、話の内容が「変なのか変でないのか?」「変だとすると何が変なのか?」を判定するため、参照する3次元の標準モデル(常識モデル)を構築している最中ではないかと理解しています。
何か「水道式」教育に似ているなと思いました。水道式とは、「足し算、引き算、かけ算、割り算」を理解するのに必要な過程(素過程)に分解し、段階を追って理解させようとするものです。「足し算の理解」を構築する素過程がツリー状に、言わば、足し算の3次元標準モデルが構築されています。
そう考えると、AIが「相手の話した内容」と「3次元標準モデル」との比較判定を行う田方さんの研究は、教育ソフト(特に数学と英語)としておもしろい応用ができるのではないかと思いました。
南沢さん、コメントありがとうございます。
水道式の考え方、興味深いです。
ちょっと調べてみましたが、遠山啓先生がかかわっていたのですね。納得です。
僕も、大学時代に遠山先生の微積分などの本で、数学の根本的な考え方を学んだのを思い出しました。
本質的な部分を理解しているかどうかを、標準モデルとの比較で判定するというのは、たしかに、教育ソフトとの相性がよさそうですね。
今の教育は集団教育ですから、授業の理解ができなかった生徒がいても、強制的に進めてしまいます。しかし、数学や英語等の知識理解を積み重ねて段階的に覚えていく教科は、一度分からない部分が出来ると、そのままでは、その後の授業が分からなくなってしまいます。リカバリーが必要です。
生徒の理解状況は全て異なるので、リカバリーを教師が行うことは物理的に困難ですが、AIなら可能です。そこで、覚えなければならない単元(数学なら因数分解、微分等)毎に、その単元を理解するために必要な素過程をツリー化し(恐らく、教育現場ではツリー化は既に完成しているのでは?)、授業の節目ごとに、ツリーを元にした単元のテストを生徒に受けさせ、回答をAIに分析させれば、AIはツリーを参照し、当該生徒が何を理解していないのか、何を理解させればよいかを判定できるでしょう。後は必要な素過程を理解するための訓練プログラム(簡単な問題の繰り返し)をAIが編集して提示する。
今まで、学校の小テスト、中間テストはやればやりっぱなしでしたが、田方さんのAIを応用すれば、やりっぱなしにせず、各生徒の学力向上に生かせるのではないかと思いました。当然、そのAIはギャグのひとつもかますのでしょう。
教育ソフトは莫大な市場価値があると聞いています。AIの研究が進んだら、やってみてほしいと思いました。
南沢さん、コメントありがとうございます。
各生徒の理解度に合わせた教育ソフトは、おそらく、最近の教育ソフトでも取り入れらていると思います。
ただ、理解度を小テストだけで判断して学習を進めると、生徒のやる気まで引き出すのは難しいでしょうね。
そこで、対話でコミュニケーションを取りながら、どこで躓いているのかといったことを本人に納得させながら進めていくというのが理想だと思います。
そうなると、僕のAI技術が教育分野で生かせそうです。
参考になるご意見、ありがとうございます。
ちなみに、ロボマインド・プロジェクトで次の段階で取り組みたいのは、小学校の国語の問題を解くことです。
「主人公は、どうして悲しんだのでしょう?」といった問題が今のAIでは絶対解けないということは、新井紀子教授の「AI vs 教科書が読めない子どもたち」に書いてある通りです。
まずは、そこから攻略していくつもりです。