
目次
2016年ごろ、チャットボット(chatbot)は人間と同じようにコミュニケーションが取れるものだと、楽観的に考えている人が多かったのではないでしょうか。実際、メディアでは「チャットボットの普及が人工知能を強化し、よりよい未来を引き寄せる」といったタイトルの記事が多く掲載されていました。
2016年はFacebookメッセンジャーのユーザーが10億人に達し、今では10万超を誇るボットAPIをFacebookが導入したのもこの年でした。また、その頃、欧米のアプリ開発者は中国のWeChatのような、より没入型のメッセージングアプリに強い関心を寄せていました。
今年までには80%の新規事業でチャットボットが導入される、という予測もされており、チャットボットはありとあらゆるタスクをこなせるように思われていました。
期待されていたチャットボット開発は今…。
振り返ってみるとチャットボット開発に大きな期待を寄せることと、実際にチャットボットを導入し機能させることは、まったく異なります。いざ企業がチャットボットを導入した際、様々な支障が生じ、理想的な使い方ができないケースがほとんどだったのです。
当社は自然言語処理でAI開発時に必要な「ビッグデータ収集」「ビッグデータの学習データ化」、そしてAIの精度を高めるために必要な「学習データの再編集」をオーダーメイド型で提供するサービスを提供しております。
その中で「チャットボット開発」に関する問い合わせが増えており、多くの企業がどのようにすればチャットボットの精度を高めることができるか悩んでいることがわかりました。
今回はチャットボットの意味、なぜ思ったように機能しないのか、またどうすれば、「人間のような」チャットボットを開発することができるのか、解説していきたいと思います。
チャットボットとは?
チャットボットとは、人間同士の会話を真似るプログラムのことです。webサイトに埋め込むこともできれば、FacebookやSlackのような第三者メッセンジャーサービスを介して導入することもできます。
チャットボットの開発には、Google NowやアップルのSiriのようなバーチャルアシスタントに使われている技術、「自然言語処理」を活用します。自然言語処理とは、機械が言葉の意味を理解し、適切な行動を決定し、ユーザーが理解できる言語で反応する能力の総称を指します。
チャットボットは、問いかけに対応するまでに「言葉の理解」「適切な行動」「ユーザーへの反応」の三つのシンプルなステップを踏みます。
- ユーザーから送られてきたメッセージの言葉を単語や文法レベルで処理し、意図する内容を文脈から理解
- 求められている行動を実行する
- ユーザーに適切な反応(返事)をする
最後の反応に関しては、毎回同じ形で反応するように設定することもできれば、特定のキーワードを含むメッセージごとに異なった反応をするようにプログラミングすることも可能です。
チャットボットのメリット
アプリやチャットボットを選ぶ際、アプリならユーザーインターフェースが決め手となるでしょうが、チャットボットはシンプルさで選ぶのがよいでしょう。チャットボットは使いやすさが重要で、使いづらいなら、いっそ無いほうがいいくらいです。
チャットボットは次のような場合に有用です。
- 会話的: 問題解決までに複数の変数入力が必要なために、アプリでは対処できない場合。
- シンプル: ユーザーの問題に対して、最も素早く直接的なソリューションを提供できるのがボットである場合。
チャットボット開発に係る主な課題
チャットボットが直面している課題は大きく2つ挙げられます。
課題1: チャットボット開発は自然言語処理技術への依存度が高い
チャットボット開発は自然言語処理技術への依存度が非常に高いことがネックになっています。現状では、どんなに優れた自然言語処理ですら、人間の足元にも及ばないと言われています。つまり、チャットボットは言葉そのものを処理(文章中に使われている単語ごとに分解)できても、言葉の意味まで理解できるとは限らないのです。
もちろん言葉の意味がわからなければ、適切な行動、反応に繋げることはできず、ユーザー(人間)が満足するコミュニケーションには遠く及びません。
チャットボットのさらなる普及には、まず自然言語処理技術の大きく進歩が必要です。
課題2: 複雑なユーザーの対話
もう一つの課題は、意外かもしれませんが人間の話し方です。
人間同士の会話というのは、急に前の話題に戻ったり、話が逸れたり、複数の話題が同時に話されたり、予定調和に進まないことがほとんどです。
チャットボットは人間の会話を真似ようとプログラミングされますが、実際の会話をアルゴリズムで追うのは、現状では非常に困難なのです。
人間に近いチャットボットの作り方
どうすればこの二つの課題を解決し「人間のような」チャットボットを開発することができるのでしょうか。
人間のようなコミュニケーションが取れる理想のチャットボットを開発するには、次の2点を押さえる必要があると言われています。
- 意図認識: それぞれの文章や単語から関連する情報を抽出し、言葉の背後にある意図や意味を理解する能力です。この能力により、チャットボットは一つの文章に含まれる複数の意図を抽出・理解し、ユーザーが入力する長くて複雑な文章にも正しく反応できるようになります。
- 文脈理解: 会話に出てくる様々な要素(場所、時間、相手の好みなど)を組み合わせ、会話全体の「概要を掴む」能力です。人間の会話において「文脈」を察知することが必要なのと同じように、チャットボットも正確な会話を続けるために文脈理解が必要です。
この二つの機能は非常に複雑ですが、成立させるための方法はシンプルで、大量の学習データを用意しボットに教え込むことです。考え得る想定質問や返答、会話のテンプレートを始め、ユーザーの要求を適切に理解してそれに応えるための鍵である「構文」、さらにその業界特有の専門用語など、チャットボットに多くのデータを与えれば与えるほど、イレギュラーな内容でも上手く対処できるようになります。 「人間のような」会話レベルを実現するチャットボットとは、言い換えるとレベルの高い自然言語処理技術の土台で、その土台を維持・改善できるのは、膨大な量の高品質な学習データだけだと言っても過言ではないのです。
そしてチャットボットの学習データは次の二つの「言葉の意味付け(アノテーション)」が重要です。

アノテーションの事例
- 固有表現抽出: 文章から人や組織、場所の名前、固有名詞など「情報のユニット」を抽出して、構造化することを指します。時間や日付、お金、百分率といった数字表現の特定に使うこともできます。チャットボットの会話における「文脈」の理解能力を向上させるトレーニングに役立ちます。
- 言語的アノテーション: 文章の意図を認識することを指します。このアノテーションの対象は広く、基本的にテキストの分析に関わることすべてです。例えば、ユーザーの感情分析や、質問に答えるための自然言語処理などです。チャットボットは感情分析を通してユーザーの「語調」を認識し、ユーザーが良い気分なのか、友好的なのか、あるいは気分を害しているのかを見極めて、それに応じて適切な温度感で対応します。
チャットボット開発の未来
今後チャットボットは世界中の様々なシーン(サービス)で活用されることでしょう。
企業がチャットボットを導入する目的は、ユーザーに気軽に使ってもらい、素早く対応できるツールを提供することで、満足度を下げないことではないでしょうか。そのためには、ユーザーのどのような問いかけに対しても、自然な会話の流れを保ち、適切な対応、反応ができるチャットボットの開発が求められます。
人間のようなチャットボットには高品質なデータが必要です。つまり、そのデータが多ければ多いほど、自然言語処理エンジンは適切に機能し、より良いAI体験を実現することができるのです。その時初めて、ユーザーに人間相手に話していると錯覚させることができるチャットボットが完成するのです。
チャットボット開発に関わっている方へ
チャットボット向けのトレーニングフレーズをでお困りですか?
当社はチャットボット向けのトレーニングデータセットをご提供し、チャットボットを開発されている企業を支援いたします。