こんにちは、荒井(@yutakarai)です。
少し前にあるお客様からこんな質問をいただきました。
Dialogflowを使うと高度なチャットボットが作れるんですか?
この質問をいただいたとき、返答に困ってしまいました。
なぜなら「高度な」という表現は、人によってレベルが違うからです。
たとえば「高度なチャットボットはどんなものか」と問われたときには以下のようにばらつきがあります。
・質問に適切に答えてくれるチャットボット
・会話を進めるうちに求めている目的が達成できるチャットボット
・時々理解できない内容はあるが、会話を繰り返すうちに賢くなるチャットボット
・人間と同じように会話ができるチャットボット
今回は、Dialogflowを使った高度なチャットボットの開発について考えてみます。
ボットビルダーへの期待と実際の実力
マウスを操作してクリックするだけで、簡単にチャットボットを作ることができるボットビルダーが国内外問わずたくさん出てきました。
しかし、ボットビルダーで作ったチャットボットには、ユーザーが何を言ったか「意味を理解する」という能力は持ち合わせていません。(そういった意味では、Dialogflowが持つ能力には驚かされます)
たとえば、パリ行きのチケットを取りたい人がいたとします。
その人は、
「パリに旅行に行きたい」
「ファーストクラスには乗りたくない」
というメッセージをチャットボットに送ったとします。
しかし、チャットボットはその「意味」を理解しません。
もしかしたら車と船を乗り継いだルートを推薦するかもしれません。
笑い話ではなく、「意味」を理解しないということはそういうことです。
チャットボットが自動的に「意味」を推測するとは限りません。
人間がもつチャットボットに対する期待と、実際のチャットボットの実力には差があります。
「意味」を理解させるようにするには、ボットフレームワークの活用が有効です。
Dialogflowとその他のボットフレームワーク
Dialogflowを使うと、Amazon Lex、IBM Watson、Wit.ai、Microsoft LUISなどの他のボットフレームワークよりも優れたチャットボットを作れるんでしょうか?
僕の個人的な意見では、細かい機能の違いこそあれ、能力的にはそれぞれ大差はないと思います。
ボットフレームワークにはそれぞれ個性があります。
使う人によって「こっちのほうが直感的に使いやすい」とか「あっちのほうが私がやりたいことに合ってる」というのもあるかもしれません。
DialogflowってNLPはどうなの?
NLPとは「Neuro Linguistic Programing」を略したもので、日本語に訳すと「神経言語プログラミング」です。
Wikiによると「コミュニケーション、能力開発、心理療法へのアプローチを目指す技法」と説明されています。
僕は、このNLPの領域がDialogflowの実力を発揮する部分ではないかと考えています。
ユーザーのメッセージを適切なIntentsにマッピングするDialogFlowの能力は非常に強力です。
Dialogflowのインテントについてはこちら(英語)を参照ください。
チャットボットを利用することのメリット
チャットボットを利用することのメリットは「人間のように会話できる」ということではありません。
むしろ会話している相手が「チャットボット」であることが明らかであっても良いと思います。
チャットボットのメリットは、チャットボットを利用することで、人間の時間を創出することです。そうすることでチャットボットでできることは任せ、人間はより創造的な活動に時間を使えるようになります。
メリットが人間の時間を創出することであるならば、Dialogflowでかなり高度なチャットボットを開発することができると言えます。
まとめ
「高度」という言葉には人によって捉える意味に違いがありますが、「高度な人工知能」の延長線の先には「シンギュラリティ」というものがあります。
このブログでも以前書きましたが、僕自身はシンギュラリティにそれほど興味はありません。
厳密には多少は興味はありますが、自分がシンギュラリティを追い求めたりましてや一端を担おうとは思ってはいません。僕は明晰な頭脳を持ち合わせてはいませんし、そういったイノベーションや未来を創造するのは、頭の良い方に任せれば良いと思っています。
僕自身(弊社)がすべきことは、現在の技術で実現できる「高度」のレベルを見極め、適切な方法でお客様のビジネスに活用する、だと考えています。
ビジネスの活用として考えると、Dialogflowを使えば十分高度なチャットボットを開発できるのではないでしょうか。