モデルを開発するための工夫
できるだけ早く利用可能なモデルを開発するために行った工夫として、本間氏は次の3つを挙げる。第一は取り組む問題を簡単にすること。「問題をシンプルにし、要求される精度を下げるように問題を設定した」と本間氏。こうすることで初めて機械学習を扱うチームでもハードルを低く設定できるようになる。具体的にはモデルへのインプットは問い合わせ本文のみとし、まずは一つのテンプレートを対象にして、テンプレートの推薦のみを行うシステムを作ることにしたという。
第二の工夫は試行回数を増やすこと。そのために社内外のエンジニアに相談し、自走するために必要な知識を身につけたという。「社内外のエンジニアに相談する際も、答えを聞くのではなく考え方を教えてもらうように意識した」と本間氏は言う。例えばモデルの精度を上げる方法について相談すると、データ量を増やした方がよい、パラメータの設定をこういう風に調整した方がよいなどのアドバイスがもらえる。それをそのまま実践するのではなく、どのような選択肢の中から今回のアドバイスを選択したのか、そのアドバイスが効果的だと考えた背景にどういった理論的な実証があるのかなど、考え方を聞いたという。
「このようなことは掘り下げて聞かないと出てこない。知識を身につけるにはどういう質問をすればよいか。コミュニケーションの仕方はすごく考えた」(本間氏)
第三の工夫はドメイン知識を身につけ、明確な仮説を持って試行すること。「ドメイン知識は機械学習の知識と同等以上に大切」と本間氏は力強く語る。そこで実際に問い合わせデータの傾向を見たり、オペレーションの様子を見てCSの考え方を理解したりすることに努めたという。
このような工夫を行うことで、機械学習における課題を解決し、必要なモデルを開発することに成功したという。また少ないリソースでできるだけ早くシステム開発をするという課題に対しては、シンプルな構成で作るものを減らし、マネージドサービスを活用することで解決した。
今回のシステムで必要なのは、「CRMにある過去データを利用する仕組み」「モデルの学習・推論を行うための環境構築」「CRMにテンプレートの推薦・返信をする仕組み」の3つである。
CRMにある過去データを利用するための仕組みとしては、Amazon Athenaを活用。「S3にJSONファイルを保存するだけで、そのJSONファイルに対してクエリを実行できるようになる」と本間氏。通常データベースにデータを保存しようとすると、JSONファイルをデータベースで保管できるように加工処理する必要があるが、Athenaを活用すればその必要がなく、ただデータを保存するという単純な実装のみで今回の仕組みが構築できたという。
次にモデルの学習・推論を行うための環境構築では、SageMakerをフルに活用。「こちらで用意するのは学習モデルを記述したコードのみ」と本間氏。学習環境の構築、学習したモデルの管理、推論エンドポイントの構築などを用意する必要がないため、「モデルの学習や推論モデルの構築に集中できることができた」と語る。
第三のCRMにテンプレ推薦・返信をする仕組みとしては、バッチ処理でテンプレの推薦、返信処理を実装。具体的には新規問い合わせに対しテンプレートを推薦する時は、CRMから問い合わせを取得してSageMakerに推論リクエストを投げ、その推論結果をCRMに反映するというスクリプトを定期的に実行。一方の返信処理については、CRMから問い合わせを取得し、その中でCSスタッフが正解と判断したものに対して、返信を行うといった処理を実装している。
「シンプルな構成で作るものを減らし、さらにマネージドサービスをできるだけ活用することで、少ないリソースでも早くシステム開発ができた。そしてシステム開発に時間をかけなくてもよい分、機械学習に時間を割けた」と本間氏は振り返る。
この施策を実現したことで得られた効果について本間氏は、「問い合わせの約1%をシステムで対応できるようになった。1件あたり約3分の効率化が実現した」と話す。効果はそれだけではない。CSスタッフの中でAIに興味を持ってくれる人が増えたことも効果だという。
「今後AIを活用するためにはどのようなデータを蓄積すればよいのか、どのようなオペレーションを設計すればよいのかといった視点が生まれた」(本間氏)
得られた成果はまだまだ小さいが、「リリースし、目に見えるものができることで周りの考え方が大きく変わる。これも大きな成果だと思う」と本間氏は最後に語り、セッションを締めた。