こんにちは、AIチームの戸田です
先日行われた、第10回対話システムシンポジウム(言語・音声理解と対話処理研究会 第87回研究会)^1に参加し、ポスター発表をさせていただきましたので今回はその発表について紹介したいと思います。
発表 「チャットボット運用における対話クラスタリング」
我々AI ShiftはAI Messenger^2というチャットボットプロダクトを運用しています。AI Messengerは自動応答と有人対応を切り替えることのできるハイブリット型と呼ばれるチャットボットで、コスト削減と対応の的確性をバランス良く実現できるため近年需要が高まっています。
チャットボット運用では、定期的にログとして溜まっている既存の対話を分析し不足している回答候補を追加していく必要がありますが、AI Messengerでは事前に対話をクラスタリングしておくことでこの作業を効率化しています。
運用フローのイメージ図
発表では、実際の運用でカスタマーサポートの対話のクラスタリングに使用している手法を紹介しました。
手法紹介
問い合わせ発話の抽出
クラスタリングを行う上で対話中の挨拶や相槌などは不要です。問い合わせ内容のみを抽出するため、
- (疑問系) サービスやエラー対処方法についての質問
- 例: 「ABCってなんですか?」「エラー100が出たけどどうすればいいの?」
- (否定系) これまでできていたことができなくなった場合
- 例: 「接続できません」「マイページに入れない」
- (願望系) 達成したい目的があり、その方法を問うている
- 例: 「ログインしたい」「追加注文したい」
上記3種類の発話を、予め定義したルールで抽出します。
二段階階層クラスタリング
抽出された発話を分散表現に変換してクラスタリングを行います。
回答候補作成の際の視認性として、表層的に近い発話がまとまっているのはもちろんですが、表層的に異なっていても意味的に似ている発話(類義語など)も近くにまとまっているのが理想的です。この「意味的に似ている文章のまとまりの中に表層的に似ている文章の塊を作る」ことを目的として、
- Word2Vecを特徴量とした、しきい値の緩い階層クラスタリング
- 1で分かれたクラスタの内部でTF-IDF特徴量とした、しきい値の厳しい階層クラスタリング
の2段階のクラスタリングを行います。
実際の運用画面
上記で紹介したクラスタリングを行い、実際に使用されている運用画面は下記のようになっています。
運用画面(一部マスキング)
可視化にはTableau^3を使用しており、各バーが大クラスタ、その中の色が小クラスタを表しています。
類似する問い合わせをまとめて見やすくしていることに加え、ボリュームゾーン、つまり問い合わせ数の多いものから回答候補優先度をつけて回答候補作成にとりかかることができるという利点もあります。
今後
現在は問い合わせのクラスタリングまでですが、将来的にはそこから代表文の抽出まで行いたいと考えています。代表文が抽出できれば、その発話に対応する発話が回答といえるので、問い合わせと回答のペアをデータから自動生成できるようになることを期待しています。
終わりに
今回の発表内容は内定者バイトとしてAI Shiftに来てくれた、東京大学の黒岩くんの協力によるところがおおきかったです。1ヶ月半という短い間でしたがありがとうございました!