多くのアプリやWebサイトに搭載されつつある、チャットボット。その裏側には、質問文の内容を解析する自然言語処理をはじめ、さまざまな深層学習・機械学習技術が用いられている。
「正答率95%」を謳うKARAKURI chatbotに込められた、ユーザーが欲しい情報をスムーズに得られる技術的な工夫を同社CTOの中山 智文氏に聞いた。
KARAKURI chatbotを支える技術
KARAKURI chatbotのローンチは2016年。徐々に利用企業を増やし続け、今やメルカリやPairs(ペアーズ)など大手サービスを中心に、導入が進んでいる。
「正答率95%」はローンチ当初から一貫して掲げている数値だ。
中山氏は「いま世の中にあるAIの中には、性能や品質が保証されていない製品も少なくない」と語り、同社でははっきりした指標を設け、高品質のボットを提供しているという。
用途ごとに最適化された自作アルゴリズム:BERTよりも素早いレスポンスを実現
KARAKURI chatbotには、高い正答率をはじめとした技術的な工夫が随所に盛り込まれている。そうした工夫のひとつが、ボットの利用シーンに合わせて自社開発しているアルゴリズムだ。
顧客対応(toB、toC)向けのチャットボットの回答パターンはほぼ無限大にのぼる。大量のデータから素早く適切な回答を返すために、KARAKURI chatbotは独自のアルゴリズムを搭載。ボットの回答時間を、BERT利用時の10分の1に短縮している。
「最先端の自然言語処理を使ううえで問題となるのは速度です。言葉を高度に理解できる深層学習アルゴリズムほど、処理時間が長くなるもの。実際に、BERTは学習フェーズと、結果を使って回答を予測する「推論」フェーズの両方で多くの計算時間を費やしています。
そのため自作のアルゴリズムを使い、速度を上げつつ回答精度を落とさないための工夫は結構頑張っています」
チャットボットに質問を入れたあと、何秒も「回答中」の表示が続いていると、どこかソワソワしてしまうのは筆者だけではないだろう。チャットボットのレスポンスの速さは、ユーザー体験にも直結しうる。
ユーザーフレンドリーなチャットボットに求められるのは、回答速度だけではない。
社内向けチャットボット(FAQシステム)には、小さいデータセットに特化したアルゴリズムを使い、意味検索を搭載。「(オフィス内の)複合機でスキャンする方法がわからない」といった文章から利用ユーザーの意図を汲み取り、検索結果に反映させている。
「データセットが大きければ、キーワードだけでもある程度の量の検索結果が返ってきますが、データセットが小さいとヒット件数や回答のバリエーションが少なくなってしまいます。
数兆からほぼ無限大の情報から回答を見つけ出すWeb検索に対して、社内向けのFAQシステムの回答パターンはせいぜい数万単位です。小さいデータセット向けに開発したアルゴリズムを使い、意味検索を取り入れることで、ヒット件数がゼロ、ということが起こりにくくなります」
質問パターンをデータ拡張で自動生成:ボット運用負荷の低下
チャットボットに質問・回答パターンを学習させ(ボットを育てる、ともいう)、実運用できるようにするまではデータ量が欠かせない。しかし自然言語処理はデータセットがあまり存在せず、データを集めること自体が難しい。
カラクリでも「立ち上げ期のデータ集めは大変だった」とのことだが、クラウドで提供するSaaSサービスという強みを活かし、カスタマーサポート(以下、CS)に関する数十もの企業の膨大なデータを収集。これにより「さまざまな企業でよく使われる質問・回答」のデータを学習したAIが、質問パターンを自動生成できるようになる。さらにデータ拡張に取り組むことで、運用時の負担が大幅に軽減されるという。
「ボットを育てるノウハウや知見は、実際に運用していくなかで気づくことも多いものです。自動生成には、AIチームだけでなく『ボットを育てるプロ』のCXデザインチーム(注:導入企業にボット運用支援をする担当者)も関わり、簡単なプログラミングをしてもらったり、AIチームが開発したものと組み合わせることで、質問パターンを社内で高速に作っています。
チャットボットの対応領域を増していくと、ボットが複雑化し回答精度が落ちてしまいがちです。同時に、運用負荷を下げるための研究開発も進めています」
作りたいものに対して適切な手法を選び実装ができるのは、技術力がある組織だからこそ可能なこと。「やりたいこと」が発生したときは、論文ベースで最先端の技術を調査し、その変遷を調べたうえで、他の知見とも組み合わせ最適な形で実装する、という開発チームのスタンスが、これらの工夫からもうかがえる。
開発チームを中心に、全部署のメンバーが参加したブレスト
技術ファーストではなく、クライアントファーストで
高い技術力を持つカラクリの開発チームでは、技術での最適解を追求しつつも、「技術に寄り過ぎない」ことを心がけているという。
セールスの段階から、開発者が顧客の要望を汲み取る
「エンジニアとして面白い技術はどんどん触っていきますが、技術や手段が先に立つことは、うちではあまり起きないようにしています。お客様の課題を解決するのに最適な方法は何か、というように課題に対してプロダクトを考えていくと、AIが最適解ではないことも少なくありません」
中山氏がこう話すように、同社ではリサーチャー(AIエンジニア、データエンジニア、データサイエンティスト)といった開発担当者が、セールス成約前の段階で顧客の課題を直接ヒアリングし、導入後も足繁く通う。同行は必須ではないのだが、多くのメンバーがクライアントとの会話を希望するとのことだ。
成果物が複雑であればあるほど、エンジニアの力が必要になるので、実際に会話する中で見えてくる課題を重要視しているのだ。
自社で培ったAI技術・知見を集めた「カラクリブレイン」
開発者自らが顧客に課題を聞くことの効果は、チャットボットの機能向上にとどまらない。データサイエンティストが企業担当者の話を聞いていくうちに、チャットボットやCSとは異なる分野での課題を見つけたケースもあった。
物流の配送ルートを最適化するために、独自アルゴリズムの開発やアプリ化を請け負ったり、量子コンピューティングを使ってシフト管理を最適化するプロジェクトを走らせるというプロジェクトも同社が請け負った。
「CSでの困りごとを聞いていくうちに、『その課題は解決できそうだ』と。開発のスピード力を鍛えるために社内で競い合っている、という部分もあります」
チャットボットをはじめとする、社内のAI技術の集積を「Karakuri Brain(カラクリブレイン)」と呼び、このようなAI技術を活用したソリューション提供が、同社の売上の3割を占めている。
CS領域の課題を技術の力で解決していく
ここまでKarakuri chatbotのAI技術を紹介してきたが、今後特に力を入れていきたい分野は「AI導入時に発生する“人力”の自動化」だという。
「たとえば『chatbot運用の超効率化』です。現在、どのチャットボットも学習データの登録を人力で行っており、導入時から運用まで担当者の負担になっています。ここを専任オペレーター不要で、手離れするくらいオートメーション化を進めていきたいと考えています」
技術的な工夫として先に挙げてもらった「データ拡張」の応用により、初期設定の質問パターン(学習データ)をAIが選定・自動生成できるまでもっていきたいとのことだ。
「技術の力でCS領域を大きく変えていきたい」という中山氏。
「もしCSの働きを技術によって可視化できれば、CSの重要性をより経営層が判断できる形に落とし込むことで、カスタマーセントリックな企業をもっと増やしたい。
CS領域を今以上にやりがいのある、人気の職業に変えていくための活動を一緒にやっていけるお客様と組んで長期的にいろんな施策を打っていきたいです」