今日からできる!今さら聞けない、チャットボット開発のはじめ方
あなたは、チャットボットが、とても複雑で高度なAI技術があってのものだと思っていませんか? 昨今のAIに対する期待感からそのようなイメージを持たれる事が多いのですが、実はチャットボット単体で見れば、そこまで複雑なものでもありません。
あなたは、チャットボットが、とても複雑で高度なAI技術があってのものだと思っていませんか? 昨今のAIに対する期待感からそのようなイメージを持たれる事が多いのですが、実はチャットボット単体で見れば、そこまで複雑なものでもありません。
知識・情報
2018/03/22 UP
- 技術
- 開発
皆さん、チャットボットと会話してますか?
会話していることがあたかも当然かのように聞かれると、一概に「はい」とは答えにくいものでしょう。
しかし、昨今Google HomeやAmazon EchoなどAIスピーカーのブームもあり、「Hey Siri」「OK Google」くらいなら一度は話しことがある方も多いのではないかと思います。
チャットボットとは、ネットワーク上での会話(チャット)を行うロボット(ボット)のことです。文字や音声の内容を理解し、適切な(時には突拍子もない)返答をしてくれます。
本稿では、チャットボットの概要や種類などその仕組みについてお伝えすると共に、開発を気軽に始められるツールについても幅広く紹介してます。
コミュニケーションツールの一つとして、私たちの日常生活に浸透し始めているチャットボット
基本的に、チャットボットとは「文字による会話」を想定するのが一般的です。
しかし、今回ご紹介する記事の中では、ボイスチャットのような「音声による会話」もチャットボットとしてご紹介しています。
また、AIスピーカーによる対話についても、ベースはメッセージツールのものと変わりはありません。
冒頭でもご紹介したGoogle HomeやAmazon EchoなどAIスピーカーが広く普及するなど、チャットボットが私たちの日常生活に少しずつ浸透してきています。
チャットボットには、どんな種類があるの?
チャットボットが利用されている事例としては、大きく分けて6つの種類に大別されます。
1. ECレコメンド型:これまでの購買動向から最適な商品を最適なタイミングで提案する。
2. タスク管理型:ToDoに対するスケジューリングやアラートを行う。
3. 特定情報提供型:天気やレストラン情報などの、特定の条件のもとで最適な情報提供を行う。
4. アンケート型:情報取得側が知りたい情報を、ユーザーとの対話形式で取得する。
5. カスタマーサポート型:商品やサービスに対する相談の一次対応を行う。
6. 雑談対話型:特定の目的を持たず、ボットとのコミュニケーションを楽しむ。
などがあります。
これらの分野でチャットボットが活用され、今後より期待されている理由としては、
1. 一般の入力フォームとくらべて、表現や入力内容への制限が少ないため、気軽なコミュニケーションを行えること。
2. 24時間365日のサポート体制をボットが担うことで、人に依存せずに精度も充実させる事が可能になること。
3. そして、ユーザーの行動履歴を元にパターンを学習する事で、最適なタイミングでのアプローチを自動化できること
があげられます。
コミュニケーションの効率化、と言うと少し寂しく感じるところではありますが、属人化を避け、その都度、最適な回答を返すことができれば、それは「最高のおもてなし」であるとも言えるのではないでしょうか。
チャットボットってどうやって動いているの?
誰もが知っている当然のことを述べますが、「対話」とは、人とヒトとの会話のキャッチボール(人が何と言ったら、会話している相手が何と返すのか)で成り立っています。
このことを踏まえた上でチャットボットの仕組みを理解すれば、それほど複雑な構造ではないことがご理解いただけると思います。
まずはじめに、一般的なメッセージツールでのやりとりで見てみましょう。
1. まずユーザーが何らかの発言を、メッセージツールで行います。
2. もし対話相手がボットだった場合、ボットは発話内容を記録されたテキストファイル(主にJSON)で受信します。
3. 受信したテキストファイルに記載された発話内容から、「何と言ったのか?」を解析した上で、ルールに沿って、「なんと返すか?」を返答文として適用します。
4. この応答文は、メッセージツールが指定した形式でテキストファイル(主にJSON)にし送信することで、返答内容がメッセージツールに表示されます。
メッセージツールごとに仕様は多少異なりますが、挙動に大きな違いはありません。”?何と言ったら、?何と返すか?”の部分だけ、その対話ルールを設計し構築すればよいわけです。
この対話ルールの設計方法として、「ルールベース」と「機械学習ベース」があります。
「ルールベース」は、「if-then-else」というように、「もしこの単語が含まれる場合はこのように応答、そうでない場合は…」と言った無数のルールを、人が構築するものです。
これに対し、これまでの対話履歴を元に、機械が独自のアルゴリズムを生成して応答するのが「機械学習ベース」です。
それぞれの特長ですが、ルールベースはルールさえあれば即実行可能なものの、ルール外の事象はエラーとなってしまいます。
とくに表現の揺らぎに対する処理をしようとすると、非常に膨大なルールが必要となります。
これに対し機械学習ベースは、表現のゆらぎや言い換えなどを学習精度によって理解してくれる反面、その為に大量の学習データを必要とし、また高スペックな解析環境が必要となるなどの手間が生じます。
そして、どちらの方式でも「何と言ったら何と返すか?」の関係性に何らかのルールがあることは変わりません。
しかし、ルールベースは「何と言ったか?」も「何と返すか?」のどちらも固定条件にあるのに対し、機械学習ベースは「何と言ったか?」を対話ログから学習させることで、「なんと返すか?」の適用精度を向上させていることになります。
※マイクロソフト社の『りんな』は、「なんと返すか?」にも学習要素が含まれますが、一般のFAQシステムなどは応答分は固定であるケースが多いのが現状です。
また、Aiスピーカーもベースはこの応答ルールによって成り立っていることには変わりはなく、仕組みの前後に、音声をテキストに変換する(Voice to Text)、もしくはテキストを音声に変換する(Text to Voice)が追加されていると考えれば大丈夫です。
機械学習ベースの“機械学習”って何をしているの?
機械は文字列をそのまま記憶しても、それが持つ意味を一緒に理解することはありません。
ただの文字情報に意味を付与して学習させていくわけですが、この作業を「アノテーション」と呼びます。
アノテーションとは本来、対話データだけでなく画像認識や音声認識にも使われる用語で、「とあるデータに対し、そのデータを意味づけるメタデータをタグづけすること」を言います。
例えば、誰かが「今日はいい天気だね」と発言したとします。
このままでは、機械は文章を一つの塊として認識してしまうため、単語ごとに分解した上で、(これを形態素解析と言います)
- 「今日」には、「DATE」や「TODAY」などの時系列を意味するタグ
- 「いい」には、「GOOD」などの好意的な感情を意味するタグ
- 「天気」には、「WEATHER」などの天候を意味するタグ
を付与して学習させることで、この発話が「今日の天気がいい」事を理解します。
これに対して、そのような発言があった履歴から、最もふさわしい返答文を返すといったことが行われます。
これにより、多少表現が変わったとしても、同じようなタグ付けがされた発言は同一のものとみなし、応答文の適用精度があがるわけです。
古くは1960年代からルールベースで開発されてきたチャットボットですが、昨今の機械学習や深層学習の急激な進化により、アノテーションを通して得た知識を持って、対話ができるようになったのです。
ただし、現在この「知識」は、まだまだ一分野に特化した「特化型知能」であるのが現状です。
今後、あらゆる経験(学習)からを知識を構築していくことで「汎用型知能」を持つようになった時、「強いAI」や「シンギュラリティ」と呼ばれるような、「人を超えるAI」が生まれると予測されています。
ノンプログラミングからでも始められるチャットボット構築ツール3選
エンジニアと言えどもいきなりゼロから構築するのはハードルが高いものです。
この章では、ノンプログラミングからでも始められるチャットボット構築ツールを厳選してご紹介します。
Dialogflow(旧api.ai)
Dialogflowは、api.aiの名称でサービスローンチされた自然対話プラットフォームです。
2016年9月にGoogleに買収され、2017年10月、Dialogflowへと名称変更されました。
日本語を含む多くの言語に対応し、また各種メッセンジャーツールとの連携もノンプログラミングで行えます。
そして何より、対話がルールベースと機械による判断の“ハイブリット”で行われることが大きな特徴です。
まずはルールベースで対話ルールを設計した後、対話履歴が十分にたまった段階で100%機械学習ベースへと切り替えることも可能です。
Action on Googleとの連携も容易なため、Google Homeを独自のAIスピーカーへと成長させたい方にはぜひオススメのプラットフォームになります。
Wit.ai
こちらは2015年にFacebookに買収され話題となった自然対話プラットフォームです。
Facebook傘下ではあるものの、LINEなどそれ以外のSNSとの連携が可能です。
実際のつなぎ込みにはプログラミング知識が必要ですが、デモで挙動の確認をすることができます。
DialogflowとWit.aiに共通して言えることですが、発言の意図を理解させるアノテーションを行う”intent”と、単語のカテゴライズや辞書機能となる”Entity”の2つを使って、ルールを設計していきます。
「この単語が含まれたらこう返す」というルールのみを設計するだけのものよりは、機械学習時代のチャットボットツールとして適切な構造とも言えるため、このようなアノテーション機能があるものを選択するとよいと思います。
Hachidori
Hachidoriは、上でご紹介した2つと違い、日本国産のチャットボットツールです。
日本語と英語の決定的な違いがあります。それは、日本語は単語ごとに区切る形態素解析が必須であるのに対し、英語だとこの機能が弱い傾向にあります。
Hachidoriは国産だけあって、形態素解析に優れたツールと言えるでしょう。
対応するメッセージツールは、FacebookとLINEの2種類があります。
アノテーションのような機能はありませんが、シナリオ作成がビジュアル的にわかりやすく、またリッチなアウトプットにも対応しています。
機械学習などを気にせずに、リッチな対話を試したい方にはオススメです。
さいごに
しくみを学ぶと、各ツールの特長も理解しやすくなると思います。
どちらにしろ、あまり難しく考えなくても、チャットボットは気軽に開発できる時代になりました。
そして、自然対話市場はまだまだ発展途上な分野でもあります。始めるなら今。この機会に、一度手に触れてみてはいかがでしょうか。