こんにちは、Kore.ai ソリューションエンジニアの橋口です。皆さんのAIチャットボットは今日も元気に動いてますか?!
今回の投稿は、私たちが提供する製品 Kore.aiのプラットフォームで使える、小ネタだけどもユーザーのお問い合わせ体験を向上させることができる機能をご紹介します。その名も、「示唆」。ブログの後半では、実装例にも触れていきたいと思います。早速見て参りましょう。
「資料がほしかったが、何もできなかった」
チャットボットに問い合わせをするときに、ユーザーである皆さまはどんな気持ちで問い合わせされますか?急いでいたり困っていたりするときも、まぁ相手は機械だからと、少し冷静に問い合わせをすることもあれば、頼りになるのはボットしかいない、と不満をぶつけることもあるかもしれません。何しろ相手は機械なので、不満をぶつけても嫌な顔はされません。
さてここに、資料請求を受け付けてくれるチャットボットがいたとしましょう。彼・彼女に対して、例えば「資料を送ってください」と問い合わせると、「どの資料が良いですか」などと返してくれ、最終的には送ってほしい住所を伝えると、受け付けてくれる、そんなチャットボットです。
「資料を送ってください」チャットボット
あるとき、あるユーザーが、自分でホームページを探して、資料請求の申し込みを開始しようとしたら、申し込みの途中で、次へを押したときにしばらくたっても前に進まず、画面が白くなってしまったということがありました。せっかく自分で申し込もうとしたのにできなかったので、お問い合わせをすることに。そこで先程の資料受け付けのボットに対して、「資料がほしかったが、何もできない」と伝えました。そうするとチャットボットは、キーワードとして「資料」「ほしい」などをピックアップし「どの資料が良いですか」と回答を返してしまいました。この返答でも、及第点かもしれませんが、そのユーザーとしては、何もできない点を解決して欲しかったかもしれません。例えばこのような問い合わせに対しては、「すみません」などと付け加えて、「担当とお話しください」などとガイドしてあげることがベターだったかもしれません。
こういうやり取りをしてほしい
このようなケース以外にも、例えば「資料請求について詳細を知りたい」という問い合わせに対して、「どの資料が良いですか」ではなく、「資料請求で取り寄せられるものは以下です」などと対応したい場合も、示唆を使うことが有効になる場合があります。
このように問い合わせユーザーの本来の意図を汲み取れるようにと設定できるのが、「示唆(Trait)」です。
Kore.ai Virtual Assistant PlatformのマルチエンジンNLU
では、その「示唆」とはどのように設定されるのでしょうか?具体的な実装のお話に移るまでに、少しKore.ai Virtual Assistant Platform(以下Koreプラットフォーム)の仕組みについて触れておきます。「示唆」とは何なのか、そしてなぜ「示唆」がこのユースケースに適しているのかを見てまいりましょう。
ユーザーの問い合わせが自由に入力できるようなチャットボットの場合、入力したテキストを機械的に処理する必要に迫られます。それによって、あらかじめ用意したやり取り(ケース、ワークフロー、あるいはタスクなどと呼ばれます。Koreではタスクと呼んでいます)に渡してあげることができます。Koreでは、ここでの機械的な処理を、自然言語処理で行います。
Koreのチャットボットが配備されるKoreプラットフォームでは、ユーザーからの問い合わせに対して、順次、自然言語処理とそれに基づくタスクへの紐付けなどを行います。そして、今回のトピックである「示唆」の判断は、この処理より少し前に行われます。そのため、一般的に想定される問い合わせのタスクについて定義したうえで、例外的な処理を「示唆」として判断させて先にルーティングさせておく、といった作り方ができます。
こちらの図が、Koreプラットフォームの、問い合わせに対する処理の流れイメージ図です。画面左側のユーザー問い合わせの意図を判断するときに、主に使われるのが画面中央の機械学習モデル、FMエンジン、ナレッジグラフですが、その前段に、示唆を検出するようになっています。
Kore プラットフォームが、問い合わせを理解するまでの流れイメージ
問い合わせの意図を把握して、より気の利いたチャットボットへアップグレード
それではここから、実際の実装例を用いて「示唆」の機能をご紹介します。先程の「資料を送ってください」が、Koreプラットフォームのダイアログタスクとして登録されているとして、その他の実装を以下見ていきます。
「資料を送ってください」ダイアログタスク
(1)事前準備として「問題を解決する」ダイアログタスクを作ります。これは「示唆」で検出した意図に対して実行するタスクです。ここではシンプルに、メッセージとエージェント転送ダイアログを設定しました。
「問題を解決する」ダイアログタスク
(2)それでは「示唆」の登録です。
1.Koreプラットフォームからボットを選択し、画面左からトレーニングー「示唆」を選択し以下画面を表示させます。
トレーニング画面
2.画面右上の「新しい示唆」を押下して、示唆を登録します。
新しい示唆登録画面
- 示唆のタイプ「トラブル発生」:この示唆のグループを示す名前をつけます。
- 示唆「問題」:示唆の名前をつけます。この示唆をプラットフォーム内で参照するときの名前となります。
- 発話やフレーズを追加「うまくできません」「エラーになった」「何も表示されない」:これらの発話をトレーニングし、示唆と紐付けます。
3.「ルールを保存して追加」を押下します。そして表示される画面で、先程作成した「問題を解決する」ダイアログを指定し、「ルールを保存」を押して保存します。
ルールを定義するインテントの選択画面
4.最後にトレーニングをして準備完了です。
トレーニングのリンクをクリックします
5.こちらのステップは念の為の確認ですが、「問題を解決する」ダイアログタスクを開いて、インテントノードに、今回登録した示唆「問題」が設定されていることを確認します。
インテントノードで示唆が設定されていることを確認
以上で設定は完了です。ダイアログの動きが変わったことをテストしてみてください。
テスト例:(背景黒が、問い合わせとして発話した内容です)
なお、示唆を検出した際にFAQを出力させることも可能です。その際は、FAQのノードの設定から示唆を指定します。
FAQに示唆を設定したところ
終わりに
今回は、「示唆」を使ったユーザー問い合わせの意図検出について、ご紹介させて頂きました。柔軟な設定が可能であることの一例と考えられます。ユーザーの問い合わせを、どのように解決までガイドしていくかは、単一の正解はなく、業界やお客様、社内であれば文化によって様々かと思います。こちらの例のように、柔軟に意図を理解する方法が好まれる場合もあれば、「【問題がおきた】と問い合わせてほしい」と案内するほうが好まれる場合もあります。そのため、例えば導入段階ではダイアログタスクのみで運用を初めて、実態に即して利用することにより、ユーザーの意図がより正確に把握できる仕組みの一つとして、「示唆」を活用する、という成長が望ましいかと思います。実態に即して利用することにより、ユーザーの意図がより正確に把握できる仕組みの一つとして、お役立てください。
Kore.ai プラットフォームについてもっと知りたい方は、こちらよりお問い合わせください。