機械学習型チャットとENOKI5.0を比べてみる

はじめに

「チャットボットの種類」の記事でご紹介したようにチャットボットで使用されるエンジンの種類には大きく分けると検索型シナリオ型機械学習型オントロジー型などがあります。これまで検索型やシナリオ型とENOKIとの比較について実験結果などを書かせていただきましたが、今回のシリーズ第3弾では機械学習型との比較をしてみたいと思います。
機械学習型というのはディープラーニング(深層学習)のアルゴリズムを応用したチャットの仕組みになります。少し余談になりますが、お客様とお話をする際によく「御社のチャットはAI搭載ですか?」と質問を受けます。世の中的にはAI搭載というと機械学習型のことを指しているようです。
なお今回も、実験データ以外の、シーン、組織名、他社製品名などは内容分かりやすく説明するためのフィクションですので、あらかじめご了承ください。

質問回答の無人対応の検討

C社ではリモートワークが始まって以降、社内システムの使い方など情報システム部門への問い合わせが増加していました。メールや社内チャットで来る問い合わせに、情報システム部門のメンバーが通常業務の合間に対応していましたが、他の業務に影響が出るほど件数が増えてきたため、対策を検討していました。よくある質問のページなどを充実させ社員がセルフサービスで解決することを狙いましたが、ページの設計が悪いのか効果はいまひとつと感じていました。そこでリモートワークで使う人が増えた社内チャットにチャットボットを設置し、そこでの質問回答の無人対応をしてみることにしました。
C社は色々な製品を検討し、比較サイトなどで総合スコアが上位だった機械学習型チャットの製品ZとENOKIを候補に選び評価をしてみることにしました。
C社では社員が自宅から仕事ができるように各種Webサービスを利用しています。パスワード忘れの対応について問い合わせが多いことから、その問い合わせを自動でさばくことから始めることにしました。以下がその問い合わせ(Q&A)の一部です。

No.質問回答
1メールのパスワードを忘れたログイン画面下のボタンを押して本人確認画面に・・・
2顧客管理システムのパスワードを忘れたこちらのフォームに必要事項を入力し・・・
3勤怠入力システムのパスワードを忘れた[パスワード再発行]を押してメールアドレスを入力・・・
4経費精算システムのパスワードを忘れた契約をライトプランに変更するには、・・・
5iPhoneのパスコードをリセットしたいiPhoneのパスコード解除のため情報システム部に連絡して・・・
6iPadのパスコードをリセットしたいiPadのパスコード解除のため情報システム部に連絡して・・・

機械学習型チャットの立ち上げ

まず、機械学習型チャットZの評価をすることにしました。ベンダによると機械学習型チャットはAIを使っているので学習させることで賢くなるとのことです。質問とその回答(Q&A)を登録し、さらに「質問のいろいろな言い方」を各質問10~20程度登録するのを「学習」と呼ぶようでした。
「質問のいろいろな言い方」とは、質問と同じ意味を持っているが違う表現での言い方です。例えば上記問合せの表のNo.1は「メールのパスワードを忘れた」という質問文ですが、この質問を同じ意味の別の表現で言うと「メールのパスワードが分からない」「emailのパスワードを忘れました」等になります。このような言い方のバリエーションを各質問10~20程度用意する必要があるとのことでした。
文を用意するだけならばすぐできるだろうと最初は少々甘く見ていました。やってみると2つ3つくらいは簡単でしたがそれ以上はなかなか難しく、すべての質問に一人で10以上の言い換えを作成するのは難しい課題でした。どうやって「質問のいろいろな言い方」を作ろうか思案した結果、同じ部門のメンバーにも協力してもらい作成することにしました。エクセルに表1の質問を記載し、「この質問のいろいろな言い方を記載して返信してください」と部門のメンバーに一斉連絡しました。しかし、なかなか返信が無いので催促したところ「すいません、忘れていました」「忙しくてとても見ている暇がない」などの意見や、「何を書いたらいいのかよくわからない」など主旨を理解していない意見も多くありました。そういうメンバーには再度主旨を説明して考えてもらうなどしました。その後も「質問のいろいろな言い方」あつめに思いのほか苦労をしながら、2週間くらいかけて集めた言い方から重複を省くなどの加工をして学習データを登録し、最終的に何とかチャットボットが動くようになりました。

機械学習型チャットの学習前準備

機械学習型チャットの学習

機械学習型チャットの運用

機械学習型チャットが立ち上がったので、社内の限定された利用者で評価のための試験運用を始めました。最初にユーザーから多く出た意見は「iPhoneのパスコードをリセットしたかったがチャットボットでは答えが出なかった」というものでした。「パスコードリセット」とチャットに入力すると関係のない「メールのパスワードを忘れた」などの回答が並び「iPhoneのパスコードリセット」に関する回答は出てこないようです。

機械学習型チャットの動作例

学習させているのにおかしいと思い、ベンダに問い合わせて学習データを見てもらうと、集めたデータがきれいでなくゴミが混じっているのが原因ではないかとのことです。例えば「メールのパスワードを忘れた」という質問の言い換えには「パスコードのリセット」というような言い方も含まれていました。「iPhoneのパスコードリセット」の言い換えにも同じ「パスコードのリセット」が含まれていましたが、機械学習型は統計情報を使って質問に対する確率を計算する仕組みのため多くの質問に同じ「質問の言い換え」が登録されていると、想定しないものに高い確率を付けることがあるとのことでした。

単語が分散した学習データの例

色々な人に「質問のいろいろな言い方」を作ってもらったためこのようなゴミとなるデータが含まれてくるのは仕方がない。後工程で人が選別してきれいなデータだけを登録したほうが精度は高まりますとのことでした。このような後処理をデータクレンジングと呼ぶそうです。取捨選択の基準をどうするべきかについては「機械学習はブラックボックスなのでデータを削ったり足したりして良いポイントを見つけてください」とのことです。どうやら試行錯誤してみるしかないようでした。
試行錯誤を繰り返してデータクレンジングと学習をしなおし再度リリースをしましたが、それでも解決できない課題が残りました。ユーザーの質問が明確でない場合の応答です。
例えば社内システムの数が多いこともありパスワードに関連したQ&Aはシステムごとのリセットや変更も含めると合計数十程度ありました。ユーザーが「勤怠入力システムのパスワードを忘れた」のようにチャトに明確に質問を入れてもらえた場合は該当の回答を提示でき、高い頻度で回答にたどり着けているようでした。しかし単語で「パスワード」だけ入力されるケースも多くこのような場合は候補が大量に出て選べなかったり、パスワードと関連の低い候補も提示されていました。その結果回答にたどり着けず離脱するユーザーも多いようでした。

機械学習型チャットの動作例

Q&Aの拡張についても課題が発生しました。足りないQ&Aについてはユーザーの利用状況を見て追加していく想定でしたが、どのQ&Aにも該当しない質問が入力された時に機械学習型チャットは該当なしと返すのではなく関係ない回答を返してしまうことも多いようでした。統計の計算で確率を計算しているので、閾値を超えた場合は出てしまうとのことでした。閾値を調整してくださいと頼んでみると、今まで出ていた回答が出なくなる可能性があるとのことなので止めることにしました。Q&A該当なしの質問を履歴からフィルタして次に追加するQ&Aを決めればよいと思っていましたがそう簡単ではないようです。追加するQ&Aを決めた後も「質問のいろいろな言い方」を集める必要があり、その収集とデータクレンジングでさらに数週間かかりそうだったのと、学習をし直すと統計情報が変化して今まで出ていた回答が変わる可能性があるそうなので、ここで機械学習型チャットの評価は一旦終えることにしました。

ENOKIチャットの立ち上げ

次に、ENOKIのチャットを同様に評価することにしました。
ENOKIは質問と回答の一覧をエクセルに記述してQ&Aを作成します。質問の言い換えは不要で、手持ちのQ&A表をそのままエクセルに記載、ヒットさせたいキーワードをいくつか追加してENOKIに登録し1日かけずにチャットボットを立ち上げることができました

ENOKIへのQ&Aデータ登録

ENOKIチャットの運用

チャットが立ち上がったので、社内の限定された利用者で評価のための試験運用を始めました。機械学習型チャットの時に問題となった、関係ない回答が提示されるというケースは少ないように感じました。
ユーザーの質問が明確でない場合については機械学習チャットと同じように候補が大量に提示されているようです。例えば、単語「パスワード」だけの質問に対する応答は、パスワード関連のQ&Aが多く登録されていることから、ユーザーからも「回答が見つけられない」という意見が寄せられていました。この課題をどう解決するか検討するとENOKIの特徴である「聞き返し」を使って回答まで誘導することができることが分かりました。
「聞き返し」とは登録したデータの分類列にQ&Aを分類するためのタグを追加しておくことで、候補が複数の場合に聞き返しが自動で行われ回答まで誘導する機能です。分類のタグとは質問を大区分、中区分、小区分のように分類分けするものということで、Q&Aの内容にもよりますが今回のようなシステムに関する問い合わせは「システム」「操作内容(または「困りごと」)」のようにすると良いそうです。以下のような分類を追加しました。

No.分類1 (システム)分類2 (操作内容)質問回答キーワード
1メールパスワードリセットメールのパスワードを忘れた・・・・
2顧客管理システムパスワードリセット顧客管理システムのパスワードを忘れた・・・・
3勤怠入力システムパスワードリセット勤怠入力システムのパスワードを忘れた・・・・
4経費精算システムパスワードリセット経費精算システムのパスワードを忘れた・・・・
5iPhoneパスコードリセットiPhoneのパスコードをリセットしたい・・・・
6iPadパスコードリセットiPadのパスコードをリセットしたい・・・・

このデータをENOKIに登録しチャットの運用を再開しました。今度は質問「パスワード」に対してシステム名を聞き返してくるようになり、さらに「変更」か「リセット」かを聞き返してくるようになりました。ユーザーからの「回答が見つけられない」という意見も少なくなりました。

ENOKIの動作例

Q&Aの拡張についても、質問に関係のない回答が提示されることが少なくなったので、該当しない質問を履歴から抽出することが楽にできました。その結果、次に追加するQ&Aを決める、それをすぐに反映するチャットの成長フローを効率よく実施することができました。データの追加も言い換えをたくさん追加することなく、Q&Aの表に新しいQ&Aの行を追加するだけで容易に可能でした。

まとめ

C社では以下がポイントとなりENOKIを選択し社内問い合わせ対応に取り組むことになりました。

  • 手持ちのデータを活用し速く立ち上げることができる。
  • 用意したQ&Aをユーザーに確実に提供できる。
  • Q&Aの拡張が容易にできる。

チャットボットでの無人対応は、すべての問い合わせを100%対応することは難しいです。小さいところからチャットボットを立ち上げて、無人対応範囲を徐々に拡張していく。それができるチャット製品ENOKIの詳細はこちらをご覧ください。