イライザがなぜジョークだったのか、なぜ多くの人がそれに騙されてしまったのか。筆者は子供にプログラミングを教える「秋葉原プログラミング教室」の初期段階の教材で、まさにこの「チャットボット」の作り方をカリキュラムに入れている。
単純なチャットボットは、わずか二行で作ることができる。
buffer=["こんにちは"]
buffer.push(prompt(buffer[Math.floor(buffer.length*Math.random())]))
興味がある人はこれをブラウザの開発者タブでJavaScriptコンソールを立ち上げて実行してみてほしい。
「こんにちは」というプロンプトが現れるので、ここに何らかの反応を入力する。例えば「どうもどうも」などだ。再び二行目のコードを打ち込む(コピペで良い)と会話を続けることができる。
これで会話するとこんな感じになる。
「こんにちは」
「どうもどうも」
「こんにちは」
「さっき聞いたよそれは」
「どうもどうも」
「挨拶はもういいからさ」
「挨拶はもういいからさ」
「うん。別の話をしよう」
「さっき聞いたよそれは」
「え、言ったっけ?」
「どうもどうも」
「君、なんかおれのこと誤魔化そうとしてない?」
「え、言ったっけ?」
「なにを?」
「うん。別の話をしよう」
これは実際の会話だが、仕組みが分かっただろうか。つまり、この最も単純なチャットボットは、ユーザーが入力した言葉を覚えておいて、単にランダムに過去の発言を選んで出しているだけなのである。
それでもある程度は会話が成立しているように見えてしまうのは、コンピュータではなく、人間が、「会話の流れ」を頭の中に作ってしまうという習性があるからだ。こうした習性はモンタージュ理論・クレショフ効果などと呼ばれる。全く無意味な言葉の羅列から、意味を見出してしまう性質である。
「そんなもの信じられるわけない」と思うかもしれない。でも、もしも原理を聞かずに、「この人の相手をしてください」と言われたらどうだろう。もしくは前置きなしに、この会話が繰り広げられたらどうだろう。例えば、耳の遠い、ちょっとボケたおじいちゃんだったら、こんなやりとりになるのではないか、と想像してしまうかもしれない。
フランスの詩人が書いた四行詩に、世界の終わりの予言を見出してしまう人もいるのだ。コンピュータが出したデタラメな受け答えを見ても、人間は勝手に自分の頭のなかで、相手の人格を見出してしまう。
これを少しだけ巧妙に作ったのがイライザだ。イライザの原理は、まず前提として、イライザは精神科医であり、やってくる人はカウンセリングにきた患者という設定を置くことにある。この設定によって、ユーザーは必然的にイライザに相談をしなければならなくなる。
例えば、イライザとの会話はこうなる。
「こんにちは。あなたのファーストネームは?」
「リョウ」
「そうですか。リョウさん。なにかお悩みがあるそうですね?」
「はい」
「どんなお悩みでしょうか?」
「実は弟がギャンブルに依存していて……」
「ギャンブルはできればやめたほうがいいでしょう」
「そうなんです。それで父と弟が喧嘩していて……」
「お父さんはどんな方ですか?」
「サラリーマンで、いまは定年しています」
「もっと聞かせてください」
「そうですね、父はエンジニアでした」
「エンジニアは素晴らしい仕事ですね。聡明さを要求される職業ですね。あなたはどんなお仕事を?」
このような具合である。この会話のトリックは極めて簡単だ。
「父」という言葉が発言に含まれていれば、「お父さんはどんな方ですか?」と聞く。「ギャンブル」という言葉が発言に含まれていれば、「ギャンブルはできればやめたほうがいいでしょう」と当たり障りのない答えを返す。エンジニアも同様。どれにもあてはらなければ、「もっと聞かせてください」など、相手の発言を引き出す定型文を投げる。
今でこそ、「定型文」というのは身近になったが、それはメールやメッセンジャーが普及しきったからだ。そんなものがない1960年代に「定型的な返しだけで会話が成立する」と想像するのは難しい。だからワイゼンバウムはすごかったのだが、同時に会話の中身がないことは作った本人がよく承知していた。
もっと複雑なこともできるが、重要なのは、それが全てトリックであるということだ。イライザは一大ブームを巻き起こし、さまざまなものに影響を与えた。
イライザを直系の祖先として持つのが、最近多くの企業が取り入れ始めた「チャットによるサポート」サービスだ。しかし一度使えば分かるが、会話を楽しむどころか、質問に的確に答えてくれることのほうが珍しい。
なぜこういうことが起きるかといえば、いまのチャットボットによるサポートは、FAQのユーザーインタフェースを少し変えただけのものだからだ。つまり、チャットボットのシナリオとして用意されていないものは、まったく対応できない。一時期盛り上がったIBMのWatsonと呼ばれる一連のソリューションが、結局はチャットボットになり、最終的には人々を落胆させた原因でもある。
チャットボットのシナリオの記述には、例えばAIML(Artificial Intelligence Markup Language)のようなマークアップ言語が使われる場合があるが、AIMLを一度触ってみれば、これがいかに不完全なものか分かる。
筆者らの研究チームは、2020年にAIMLを深層学習で独自に拡張したAIIML(Artificial Illusional Inteligence Markup Language)を開発した。筆者らの開発したAIIMLは内部にspaCyやGiNZAなどを使った構文解析や、PythonやJavaScriptでの拡張が可能で、音声認識と音声合成の機能を備えていた。声で指示するだけでWikipediaを調べて読み上げたり、地図を表示したり、図を書いたりWebサイトを作らせたりすることができる。
このAIIMLでは内部でGPT-3も使っているが、GPT-3に投げるとかなり適当な答えを返してくる。以前、焼肉屋さんで実験的に導入したときは、客がおすすめの肉を聞くと別の店を紹介し始めたので慌てて止めたことがある。
Copyright © ITmedia, Inc. All Rights Reserved.
Special
PR