チャットボット ~ 種類別の仕組みを解説~

最近は無人対応・無人接客などチャットボットをサイトで利用する企業も増え、さまざまなチャットボット製品が利用されています。チャットボット製品はどれも見た目は会話チャットのようなフキダシのUIをもちユーザーの質問を受け付けて回答を返します。表から見ると細かい違いこそあれ、どれも大体同じに見え、違いはわかりにくいのですが、中で使われているエンジンには様々な種類があります。その種類を大別するとおおまかには次のように分かれています。

  • 検索型チャット
  • シナリオ型チャット
  • 機械学習型チャット
  • オントロジー型チャット

本記事ではそれぞれの概要と特徴について解説をしたいと思います。


検索型チャット

検索型チャットは名前の通りユーザーの質問に対し検索をして回答を提示するチャットのエンジンです。エンジンには質問回答の組(Q&A)が登録されており、ユーザーの質問を受け取ると同じキーワードを含むQ&Aを検索します。例えば下図のように「プリンターの電源が入らない場合の対処方法」「プリンターの紙詰まりの対処方法」…などのQ&Aが登録されていた時、ユーザーが「プリンターが動かない」という質問を入力すると、エンジンは「プリンター」という語を含むQ&A全てを回答候補として選択します。選択されたQ&Aは画面上のフキダシに一覧で出力されるので、ユーザーは一覧の中から妥当な回答を自分で探します。検索型チャットはUIにフキダシを使っているので見た目は会話チャットのように見えますが、仕組みとしては検索エンジンと同じで会話要素は無く、入力のたびに都度Q&Aを検索して回答を返します。チャットというよりは検索エンジンの画面の表示方法が変わっただけとも言えます。仕組みがシンプルなため、安価なチャットボット製品ではよく利用される方式のひとつです。
検索型チャットは検索という手法を使用するため入力が非定型なものに適していると言えます。例えばユーザーサポートページでの無人対応チャットでFAQを検索するような用途に向いていると言えます。ただし回答の候補が多くなるとそれらすべてをチャットの小さなフキダシ内に表示するのは良いUIとはいえず、候補数はある程度制限をする必要があります。このため小規模なQ&Aでの利用に適しています。

検索型チャットのデータ(Q&A)登録
検索型チャットの動作の仕組み

シナリオ型チャット

シナリオ型チャットはシナリオとよばれる会話の開始から終了までの流れの定義に沿って会話を進めるチャットのエンジンです。エンジンに会話の開始のメッセージ、ユーザーの入力に応じた分岐、分岐の際に提示するメッセージをシナリオとして定義しておきます。ユーザーの入力を受け取ると、どの分岐に進むかをシナリオの中から選び、応答メッセージを提示することで会話が進みます。例えば最初の分岐として「プリンターに関する質問」「WiFiルーターに関する質問」が提示されていて、ユーザーが前者を選んだ場合「プリンターの電源が入らない場合の対処方法」「プリンターの紙詰まりの対処方法」のように次の分岐が提示されます。「プリンターの電源が入らない場合の対処方法」を選ぶと回答が提示されて、シナリオの終端にたどり着いたことになり会話は終了します。このようにシナリオが進んでいくことで会話が進行していきます。仕組がシンプルなため、安価なチャットボット製品ではよく利用される方式のひとつです。
シナリオ型チャットは、シナリオを作りこめば会話の精度があげられ色々な業務に対応できる特徴があります。その反面シナリオに不整合が生じないよう十分に設計をする必要があることから、現実的に適用が可能なのは小規模な業務範囲となります。またシナリオに定義が無いものには応対できないのでユーザーに自由に入力してもらうよりは、チャットボット側から会話内容を提示し、かつ内容が固定的なものに適しています。例えばサイト訪問者へ簡単なアンケートをして商品提案をするなどの用途で利用されています。

シナリオ型チャットのデータ(Q&A)登録
シナリオ型チャットの動作の仕組み

機械学習型チャット

機械学習型チャットはディープラーニング(深層学習)などの機械学習アルゴリズムを使い、ユーザーの質問から確率の計算で回答を導き出すチャットのエンジンです。お客様の質問で「そちらのチャット製品はAIを搭載しているかどうか?」という質問をよくいただきますが、AI搭載とはここで言っている機械学習型チャットかどうかを示している場合が多い感じです。
機械学習型チャットは質問回答(Q&A)と質問の言い換えを機械学習モデルに学習させておきます。質問の言い換えとは、あるQ&Aに該当する質問に対して同じ意味を示すいろいろな言い方のことです。例えば「電源が入らない」という質問には「電気がつかない」「電源がオンにならない」などが質問の言い換えとなります。一般的には一つのQ&Aに対して10~20くらいの質問言い換えのパターンを学習させます。質問言い換えは質問の特徴をよく表現している文が望ましく、質問言い換えの質により機械学習型チャットの性能が大きく変わります。このようなデータを学習させた機械学習エンジンはユーザーの質問を受け付けると確率の計算をして、可能性が一番高いQ&Aの回答を出力します。会話要素はなく一問一答のチャットとなり、ユーザーの質問が明確で回答が一意に決まりやすい場合の質問回答の用途に適しています。
機械学習型チャットは質問言い換えのパターンを集めれば構築ができますが、Q&A数の10~20倍の言い換え質問が必要となるので小規模なQ&Aの場合は有効かと思われます。しかし規模が大きいQ&Aを検討する場合は質の良い言い換え質問をどのように収集するか考えておく必要があります。また、Q&Aの中に似たよう質問が複数あると学習がうまくできず、質問の言い換えと同じ質問をユーザーが入力しても想定とは別の回答が出力されることがあります。ユーザーの質問が学習済みQ&Aのいくつかに該当するような曖昧な質問も苦手で想定とは別の回答が出力されることがあります。ネガティブな観点が続いてしまいましたが、これらは機械学習モデルが確率の計算に基づいて答えを出すブラックボックスであるという特徴によります。機械学習型チャットはこのような特性を十分に理解したうえで使う必要があります。

機械学習型チャットのデータ(Q&A)登録
機械学習型チャットの動作の仕組み

オントロジー型チャット

オントロジー型チャットはオントロジーと呼ばれるユーザーの知りたいことの概念定義を用いて会話を進めるチャットのエンジンです。概念定義というと難しく聞こえるかもしれませんが、例えば製品を使っていて発生した困りごとについての質問回答(Q&A)を考えると、ユーザーの質問は「装置名」「(困りごとの)事象」という概念要素で表すことができます。例えばユーザーの質問「プリンターの電源が入らない」は「装置名=プリンター」「事象=電源が入らない」という概念要素で構成されます。この概念定義をエンジンに定義しておくことで、ユーザーの入力を受け取ると、ユーザーの質問をその概念定義に従って意味理解します。例えば「電源が入らない」というユーザー入力は「事象」になるのでエンジンは装置名が何かを聞き返します。ユーザーが「プリンター」と答えると「装置名=プリンター」「事象=電源が入らない」となり、そのQ&Aの回答が出力されます。指定されなかった概念要素を順に聞き返しするため見た目はシナリオ型と同じように見えますが、ユーザーが「プリンターの電源が入らない」と入力して概念要素が全て一度に決まり回答が出力された場合は聞き返しません。また「プリンター」と答えた後に「WiFiルーター」と別の装置名を入力した場合は装置名を置き換えて「装置名=WiFiルーター」「事象=電源が入らない」となり別の回答を提示します。このような自然な会話により近い自由な入力に対応できるのがオントロジー型の特徴です。類似のものとして、概念定義をスロットと呼ぶスロットフィル型というエンジンもありますが同様の方式です。
オントロジー型チャットは概念要素をどう定義するかがポイントとなります。また概念要素ごとに意味理解のための辞書を持たせておく必要があります。チャットの稼働後は概念要素の追加や変更により振る舞いを変えられますが、変更は局所的にできシナリオ型チャットほど全体への影響が無いため、拡張や変更に強いのが特徴です。振る舞いとしては、聞き返して絞り込む、別の絞込に横跳びするができるため、曖昧なユーザーの質問からデータの特定をするような用途に適しています。Q&Aの規模が大きくユーザーの質問から一発で回答を引き当てられない場合、商品や施設などを絞り込んで探すようなチャットで利用されています。

オントロジー型チャットのデータ(Q&A)登録
オントロジー型チャットの動作の仕組み(1)
オントロジー型チャットの動作の仕組み(2)

ハイブリッド型チャット

ここまで検索型、シナリオ型、機械学習型、オントロジー型の各方式について説明をしました。以下の表に概要をまとめましたが、それぞれの特徴と適する用途が異なることをご理解いただけたのではないかと思います。

区分会話要件検索型
チャット
シナリオ型
チャット
機械学習型
チャット
オントロジー型
チャット
機能面自由入力での質問×
曖昧な内容の質問×××
データ(Q&A)の絞込××
データ(Q&A)選択条件の切り替え×××
会話要素××
適する用途の例FAQ検索商品提案一問一答Q&AQ&A、商品検索
運用面対応できるデータ(Q&A)規模
拡張と変更のしやすさ×××
データ設計不要必要不要必要
学習データ準備

エンジンによって異なる得意分野を適材適所で組み合わせることで導入の容易さと幅広い業務での無人応対を可能にしたのがハイブリッド型チャットの「ENOKI」です。ENOKIはオントロジー型チャットを基盤として、検索型、シナリオ型、機械学習型の各種チャットエンジンを組み合わせて構築された会話プラットフォームであり、会話の状況に応じ適切なエンジンを自動選択し回答を返します。当社エンジニアがこれまで蓄積した20年近い会話エンジン開発のノウハウが活かされており、通常はデータ設計が必要なオントロジーをエクセルに記述したデータから自動抽出したり、自然な会話となるように各種チャットエンジンを選択するなど使いやすい製品としております。
お客様のやりたいことによりどうチャットボットを選んだらよいかについてはこちらの記事「お客様にマッチしたチャットボットを選ぶには?」に業務内容からのマッチングチャートが掲載されておりますので、そちらもぜひ参考にして下さい。