自然言語処理への提言1 「メニューメーカー」で僕がやろうとしたこと

自然言語処理への提言1 「メニューメーカー」で僕がやろうとしたこと

このエントリーをはてなブックマークに追加

 

 

前回、「メニューメーカー」のソースコードの解説をしましたが、今回は、「メニューメーカー」を通じて僕がやろうとしていることについて説明します。

近年、スマートスピーカーや、ソフトバンクのロボット「ペッパー」のように会話できるAIが多く出てきました。
このような会話ロボットは、AIが飛躍的に進歩したからだと思っている方がいますが、そうではありません。
じつは、会話ができるソフトは50年前から存在し、しかも、ほとんど進歩がないのです。
その方法は「シナリオベース」または、人工無脳とも言われるものです。

一例を挙げましょう。
たとえば、AIが「最近、何かおいしいものを食べましたか?」と質問したとします。
それに対して人間が、「昨日、焼き肉を食べたよ」などと回答します。
すると、AIが「わぁ、僕も食べたかったなぁ」と答えます。

これは、一見、会話が成立しているように思えますよね。
ところが、AIは、意味を理解して会話しているわけではありません。
それでは、トリックを解説しましょう。

最初に、AIが「何かおいしいものを食べましたか?」と質問しますが、この質問の目的は、答えの幅を、おいしい食べ物に限定させることです。
焼き肉でも、お寿司でもなんでもいいですが、相手は、何かおいしい食べ物を答えるはずです。
相手が何を答えようとも、その次にロボットは、「わぁ、僕も食べたかったなぁ」と答えることで、会話が成立するわけです。

ただし、ロボットは意味を理解せずに同じ答えをするので、相手が「最近、おいしいものを食べた記憶がないなぁ」などと、予想外の答えをするだけで、会話が成立しなくなるのです。
これが、人工無脳と言われる所以です。
ソフトバンクのペッパーや、IBMのワトソンも、すべてこのタイプです。
大量のシナリオを丁寧に作り込んでいますが、意味を理解していないことは変わりないので、自然な会話が続くことはありません。

 

ここで、視点を変えて、コンピュータゲームの歴史を振り返ってみます。
敵機の攻撃をかわしながら、戦闘機を操つるシューティングゲームといったものは、昔からありました。
昔のゲームでは、敵機の動きは、ビデオを再生するように、毎回同じ動きです。
何度もプレイするうちに、敵機の動きを覚えて、どのルートで飛べばクリアできるか分かってきます。

ところが、最近のゲームでは、敵機の動きは、周りの状況や相手の動きに合わせて自動で動くようにプログラムで制御されています。
そのため、毎回、同じ動きをすることはなく、よりリアルになってきています。

コンピュータゲームには、ロールプレイングゲームや、ノベルゲームといった、ゲーム中にキャラクターと会話するものがあります。
このタイプのゲームでは、予めセリフが決まっていて、何度プレイしても、キャラクターは同じセリフをしゃべります。
つまり、シナリオベースで動いています。
昔のシューティングゲームと同じといえます。

コンピュータゲームの分野でも、AIの分野でも、会話のような自然言語処理は、いまだに、決められた固定の「文(セリフ)」しかしゃべることができません。
ところが、人間は、会話するとき、決められた固定の文をしゃべっているわけではないですよね。
毎回、その場で文を組み立てて会話しますよね。
相手の言った内容や、言い回しに応じて、その場で文を組み立てます。
言いたい内容が同じであっても、一言一句、全く同じセリフをしゃべることはありません。

 

僕が提案したいのは、会話できるAIにしろ、コンピュータゲームにしろ、そろそろ、決められたセリフだけをしゃべるのは終わりにしようということです。
シューティングゲームで、あたかも敵が操縦しているように動かすように、セリフも、その場で単語から自動生成しようということです。

単語とは、「リンゴ」や「机」といった名詞や、「歩く」や「走る」といった動詞です。
「が」や「を」といった助詞、「だろう」や「られる」といった助動詞なども単語です。

人が会話するとき、こういった単語を、その場で組み合わせて1から文を組み立てて話ます。
だから、全く同じセリフを話すことは、まず、ありません。

単語から文を組み立てる第一歩が「メニューメーカー」なのです。
予めいくつかの固定のメニューを用意しておいて、それをランダムに出力しているのではありません。
バラバラの単語からその場で組み立てて、毎回、メニューを生成しています。
そのため、少ない単語でも、無限のメニューを生成できるようになっています。

自然言語処理において、なぜ、単語から文を生成することが重要なのか。
近年、急速に発展しているAIの中で、なぜ、自然言語処理、特に「会話」「対話」といった分野だけ、50年前から何も進歩しないのか。

次回は、その点について説明したいと思います。

 

 

このエントリーをはてなブックマークに追加

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です