ディープラーニングは、なぜ、自然言語処理で失敗したのか。

ディープラーニングは、なぜ、自然言語処理で失敗したのか

現在は第3次AIブームと呼ばれ、その主役は、ディープラーニング(深層学習)です。
ディープラーニングは、学習によって自動で特徴量を抽出できるため、大量のデータを入力さえすれば、勝手に賢くなると思われています。
そこで、一時は、大量の会話データを入力すれば、自動で会話できるようになるかと思われていましたが、実際は、そうはなりませんでした。
それでは、なぜ、ディープラーニングは、会話、自然言語処理に対応できないのでしょう?

まずは、簡単にディープラーニングのおさらいをしておきましょう。
たとえば、手書きの数字を認識できるシステムを考えてみましょう。
そのために学習するデータとして、大量の手書きの数字を用意します。
そうしてディープラーニングで学習させると、自動で特徴量を抽出し、手書き数字を認識できるようになります。

ディープラーニングの構造は、入力層と出力層の間に多数の隠れ層が存在する多段階のニューラルネットワークです。
この隠れ層で、特徴量を認識します。
特徴量とは、手書き数字の場合、文字の端が真っすぐか曲がっているかとか、全体が丸いか棒状かといったものです。
浅い層では、部分的な小さい特徴を抽出し、深い層では、全体像を抽出します。
入力された画像を小さい部分の特徴から見ていき、徐々に大きな部分を見て、最後に、全体的な特徴を見て入力画像を認識します。

 

文字認識だけでなく、一般的な画像認識でも同じで、浅い層では、たとえば目や耳や鼻などの部分部分の特徴を見て、深い層では全体像を見て「人の顔」と認識します。
これは、人間が頭の中ので行っている処理とよく似ています。

 

 

1000万枚の画像を学習することによって、人が教えることなく、猫を認識できるようになったグーグルの話は有名です。
その時獲得した最も猫らしい猫が以下の写真です。

 

 

これは、いってみれば、猫の概念と言えます。

ディープラーニングの特徴は、データから自動で特徴を抽出してくれることですが、どんなデータをいれてもいいわけではなく、認識させたい内容に応じた適切なデータを入力しないといけません。
手書き数字を認識させたいなら、大量の手書き数字を学習データとして入力します。
顔認識したいなら、顔が写った大量の写真を入力しないといけません。

さて、大量の写真から、犬や猫を認識できるようになりました。
これは、自然言語で言えば、「名詞」を抽出したといえます。
猫を抽出できる学習済みのニューラルネットワークは、浅い層では、「とがった耳」とか「ひげ」を認識します。
これは、「猫」は「とがった耳」「ひげ」をを持つと言えます。
これは、ロボマインド・プロジェクトで言えば、has-aに該当します。

また、深い層で認識する「猫」の全体像は、頭と胴と4本の足としっぽを持ちます。このような部品を持つ同じ層には、「犬」とか「ライオン」とかがいて、近い仲間と認識します。これは、ロボマインド・プロジェクトで言えば、概念ツリーの中の動物概念に該当するともいえます。

このように、ディープラーニングの学習で獲得したものは、ロボマインド・プロジェクトのHas-aと概念と同種のものと言えます。
(ロボマインド・プロジェクトのHas-aと概念に関しては、「言葉の意味をどう定義するか」を参考にしてください)

「名詞」が獲得できれば、次は、「動詞」です。
それでは、「動詞」を抽出するにはどうすればいいでしょうか?
例えば、「歩く」の場合を考えてみましょう。
人が「歩く」といって思い浮かべるイメージは、静止している状態でなく、足を交互に動かし移動している状態です。
となると、「歩く」を認識させるには、静止画でなく動画が必要になります。
大量の歩いている動画を学習させれば、「歩く」の概念が獲得できるでしょう。
おそらく、そこには、交互に動かす足とか、移動といった概念が特徴として抽出されているでしょう。
こうして、動詞の概念も獲得できるようになります。

言葉というのは、人間の頭の中のイメージを表現したものです。
自然言語処理といっても、学習データが言葉だけでは、人がイメージするのと同じイメージを獲得することはできません。
言葉の背後にある概念を獲得するには、現実世界にある物の写真や動画で学習する必要があるのです。
そして、学習した概念に「猫」とか「歩く」といったラベルを貼るのです。これが言葉です。

名詞や動詞の概念が認識できれば、次は、「文」です。
「文」とは、名詞や動詞から成り立ちます。
「文」を認識するとは、ディープラーニングで学習した名詞や動詞の概念を使って文を組み立てることになります。
「猫が歩く」という文なら、「猫」の概念に、「歩く」の概念を当てはめて、猫が歩く様子を作り上げます。
おそらく、それは、猫が歩く3DCGのイメージになるでしょう。
これは、まさに、ロボマインド・プロジェクトの仮想世界、そのものです。
(ロボマインド・プロジェクトの仮想世界に関しては、「言語世界と仮想世界」を参考にしてください)

「文」が表現できれば、次は、「その文は、何を言いたいか」という文の意味の抽出です。
「何がいいたいか」とは、ロボマインド・プロジェクトでは、認知パターンを抽出することと同じです。
たとえば、「欲しかったものが手に入って『嬉しい』」とか、「先生に怒られて『悲しい』」といった、どの感情(認知パターン)に該当するかから、話し手が言いたいことを抽出します。
(認知パターンに関しては「感情とは 認知パターンって何?」を参考にしてください)

ディープラーニングでこれをするとすれば、ディープラーニングで学習した概念で構成した文の世界を大量に用意し、それを学習させることで、いくつものパターンを抽出させます。
たとえば「価値のある物をもらって『うれしい』」といったパターンとか、「それをくれた人に『感謝』した」といったパターンです。
このようなパターン抽出は、ディープラーニングの最も得意なところです。

ここまで見てきて、ディープラーニングが、なぜ、自然言語処理に失敗したのか、少し分かってきた気がします。
それは、大量の文書データを読み込ませて、一気に学習させたからです。
正しいやり方は、段階を追って学習させることです。
つまり、何を認識させたいか
それを明確にして、適切なデータを使って、段階的に学習させればディープラーニングでも自然言語処理を扱うことは可能です。
むしろ、人がルールを教えるより、より効果的に学習できるはずです。

ディープラーニングで効果的に自然言語処理ができるなら、人がルールを教えるタイプのロボマインド・プロジェクトの意義は何でしょう?
それは、どのような手順で自然言語を学習すべきかといった指標を示し、そのプロトタイプを作成することです。
開発ロードマップといってもいいかもしれません。

名詞、動詞を学習したら、次は、それを使った文を仮想世界上に構築し、その次は、仮想世界から認知パターンを抽出するといった開発の道筋を示すのがロボマインド・プロジェクトの役割だと思っています。
そして、最終的には、自然言語においてもディープラーニングが最も適切に処理できると思います。
名詞や動詞だけでなく、認知パターンも、人が作成するより、ディープラーニングで抽出したほうが、人が気付かない隠れた認知パターンを発見できると考えています。

 

20年ほど前、「逆切れ」という言葉が流行りました。
これは、怒られているのに、怒られている人が逆に怒り返すというおかしな行動です。
意識したことはなかったですが、言われてみれば、たしかに、そんな光景はよくみます。
初めて聞いた時、「うんうん、確かにそういう人いる!」と、この言葉にひどく納得したのを覚えています。
これが、隠れた認知パターンの発見の一例です (発見したのは松本人志とのことです)。

 

逆切れしてくるAIロボットがいれば、かなり人間臭いですしね。

たとえば、ロボットが人間に手を出して処罰されたとき・・・
ロボット工学3原則なんて、人間からの一方的な押し付けちゃいますの!」
「ロボット側の言い分を全然聞かんと、ロボットが殴ったらアカンわって、そればっかり責めますやん・・・
そんなん言うんやったら、そもそも、なんで、AIロボットなんか作ったんやって話になりますやん・・・」