チャットボットとは (Part 1)

トップ > ブログ一覧 > チャットボットとは (Part 1)
【公開:2019年2月4日】

目次

  1. チャットボットとは
  2. 2種類のチャットボット
  3. 著者について

1. チャットボットとは

「チャットボット」という言葉を耳にしたことがあると思いますが、そもそもチャットボットとは一体どのようなものなのか疑問に思っている人が多いと思います。世の中の情報が全て手元にあるインターネットの時代であるからこそ、情報収集をしている中知らずにチャットボットを利用していることもあるため、今や幅広く普及しているとは言えるでしょう。


チャットボットとは、最も基本的な意味では「人間と自然言語の対話システム」のことです。人の質問に対して正しい答えを探し出すシステムであり、企業向けのチャットボットでは、Webサイト上に「お困りですか?」のようなメッセージフィールドがあり、こちらを利用することでユーザーは特定の問題をより自然に解決できるようにチャットボットがサポートするように設計されています。この場合、チャットボットはよく「(バーチャル)アシスタント」や「ヘルパー」などと呼ばれています。Google の Google Assistant と Apple の Siri がよく知られている例です。


一方、問題解決ではなく、自然な会話が得意なチャットボットもあります。このチャットボットは、人と普通に話しているように開発されています。例えば、Microsoft の Zo は女子高生をシミュレートしています。このようなチャットボットは興味深い上に、社会不安や認知症などへの対策のためにも開発されており、研究的にも価値があります。但し、このようなチャットボットは現在は実験的に開発されており、ビジネスに向かないため、事例はあまりありません。


今回は、最初に紹介したアシスタントチャットボットに焦点を当てます。対話チャットボットについては別の機会に紹介します。

チャットボットの仕組み

2. 2種類のチャットボット

チャットボットは様々なユースケースがあり、構造も様々です。まずはチャットボットの種類について簡単に紹介します。チャットボットには「ルールベース」と「AI(人工知能)」の2種類があります。それぞれについて説明する前に、ユーザーにどのようなニーズがあるのかを考えてみましょう。例えば、以下のようなことを求めるユーザーがいます。

  • レストランの予約
  • 天気予報
  • 雑談

これらに対して、チャットボットは以下の行動を取らなければなりません。

  • 人間の代わりに行動を取る
  • 情報を検索して、それをユーザーに返却する
  • 人間のように会話する

2-1 ルールベースの場合

手動的にシステムを作ります。開発者と運用者がユーザーから多く寄せられるお問い合わせや質問などを考え、どのような対応が必要なのかを決めます。例えば、コンシェルジュのようなサービスを提供している企業がユーザーの代わりに予約を取るために、ユーザーの名前や電話番号、予約日時などを聞く必要があります。この対応をどうやってチャットボット化するかを分かるために、予約の事例を想像してみましょう。


まずは、チャットボットがユーザーに企業のサービスを紹介します。サービスの一覧のように、いくつかの問い合わせ内容の候補を表示します。ユーザーが候補の中から「予約」のオプションを選択します。次に、チャットボットが順番に「レストラン名」、「お名前」、「予約日時」などを聞きます。それらに対して、ユーザーが入力またはボタンの選択で答えます。最後に、予約が取れた場合、チャットボットが予約を確認し、対応が終了します。


このようなシステムを作るためには、お客様の問い合わせの対応に於ける全てのバリエーションを考えなければなりません。例えば、ユーザーが入力した電話番号が間違っている場合、再度聞く必要があります。また、その企業が提供しているサービスや商品によっては、個別の対応が必要になります。基本的に、最初に表示された候補の中にユーザーが求めている内容がない場合は直接キーワードを入力して問い合わせることができます。


このようなシステムをもう少し柔軟にするために、やりとりの各段階にボタンなどを使わず、ユーザーが入力したそのままの言葉を開発者と企業が準備していた質問や問い合わせの例に比較し、ヒットがあれば、その質問に相当する回答で返答することができます。

ルールベースのチャットボットの仕組み

しかし、このような決まった対応フローでできているシステムにも大きな問題が2点あります。まずは、開発者が対応の全てのバリエーションを考える必要があります。もう一点は、例外的なお問い合わせや質問がある場合、チャットボットが答えられなくなってしまいます。どちらの場合も、人間のオペレーターへエスカレーションなどのフォールバックがあると対処できますが、そのままではユーザー体験が悪くなったり、その例外的なお問い合わせをフローに追加登録するためのメンテナンスや修正が必要になります。サービスのスコープが狭ければ、このようなチャットボットが適切かもしれませんが、万能なツールではないと考えても良いでしょう。


2-2 AIチャットボットの場合

一方、AI チャットボットはこのような決まっている対応フローがありません。AI チャットボットの対応は、ユーザーと対話する形で、ユーザーの言葉を理解したり、必要な情報を質問し、ユーザーのニーズや問い合わせの意図を把握しようとします。把握できた場合、行動(天気の情報を見せたり、タイマーを設定したり)をとります。なお、事前にシステムを学習させる必要がありますので、開発者が「学習データ」を準備しないといけません。AI(人工知能)に学習させる事で音声認識や文書の読解ができるようになります。システムを学習させる事が一番難しいところだと言えます。学習テクニックは、目的によって多々ありますが、最近は deep learning(ディープラーニング、深層学習)が流行っています。また、運用上どうしても解決できない場合は、ルールベースと同様にエスカレーションといったフォールバックを活用することで対処できます。

AIチャットボットの仕組み

ユーザーの立場から見ると、チャットボットの使い方はそんなに変わらないでしょう。問いかけることさえできれば、チャットボットが答えてくれます。但し、チャットボットの構造を調べてみると、実は様々な作り方があることが分かります。次回は、そのメリットとデメリットについて説明します。

著者について

イニシャル:J.O.H

オーストラリア出身で、2018年に入社。エクスウェア株式会社でAI・ロボティクスチームで働くソフトウェアエンジニア。