Einstein予測ビルダーとEinstein AnalyticsでサービスをKAIZENする
弊社リバネスでは、リバネス研究費やTECH PLANTER、キャッスル研究費といった企画で申請書を募集し、面白いものをピックアップするというプロジェクトが複数存在します。
申請書の中身は基本的にテキストです。どんな課題に対してこんなプランでこんなチャレンジをしてみたいといったものを記入してもらいます。
課題はなにか
これまでのリバネスでは、申請書のレコードがどの程度ドラフトに入っていて、どの程度が申請完了になったのかという件数しか見ることができませんでした。それなりの量がある書類の進捗状況を、一件ずつデータを開いて確認するというのは時間がかかりすぎるからです。
人力で難しいことを機械にやらせる
基本的に私自身の実装方針がこれなのですが、ではその毎日の進捗状況をどうにかしてデータ処理で取得できないものでしょうか。文字列なのでもちろんそのlengthを取得するような項目を作って表示するというのもありですが、一つのオブジェクトを色々なプロジェクトで使いまわしているのでカスタム項目をそんなことのために消費したくありません。じゃぁどうしようと考えたときに使うのはEinstein予測ビルダーです。
簡単に言うと、Einstein予測ビルダーにデータを読み込ませることで、そのレコードのスコアを返してくれるというサービスです。
予測ビルダーの設定は、教師データとして
・これまでの申請書で申請済になったもの
・これまでの申請書で申請済みにならなかったもの
を読み込ませました。中身はほぼテキストです。日本語の意味まで解析してくれるという機能は現時点ではありませんので、テキスト量を特徴量として捉えています。その他に申請者の登録情報を参照していました。
ざっとスコアと中身を見てみます。
一番スコアが低いところのデータを見てみると、データの入力がないことがわかりました。
そしてスコアが高くなると、文章量が増えていくということもわかりました。この予測ビルダーでは、申請済みになる可能性という形で予測をしましたが、本質的には申請書の書き込み状態を反映していると言えます。
スナップショットを設定する
これはSalesCloudのデフォルト機能のレポート作成スナップショットを使います。
一日一度、レコードIDとそれに付帯する予測スコアを記録するようなスナップショットを作成しました。これによって、申請書が作成され、編集され、申請が完了する(もしくはしない)までのスコアの軌跡がわかるようになります。
これをEinstein Analyticsで表示するとこんな形になりました。
基本的には書き上げていくはずなので、日にちが進む(右方向)によってスコアは上がっていくはずです。0になっているのは下書きを削除したパターンです。
スコア vs 締切までの残日数
ひとまずデータの作成とトラッキングができましたので、今度は申請書の締切にたいして申請者がどのような挙動を示すのかを取ってみました。
一番右がDAY0、つまり締切日です。それに対してスコアがどのように動くのかを示しています。途中つながっていないのですが、これはスナップショットを取ったのがまだ少しだからですね。あと数ヶ月経てば全ての線がつながります。途中で線が終わっているものは、その時点で書き上げたという判定を意味します。
編集回数 vs 締切までの残日数
こちらは何回編集したのかがわかります。
一つのデータをトラッキングするフィルタを設置してみてみると、編集回数とスコアの変化がわかります。
何を改善するのか
これまでは、締切の数日前にリマインドメールを送りましょう、みたいな手動運用にしていたのですが、これらの解析が進む事によって、度のタイミングが一番更新してくれやすいのかが見えてきます。個人的な癖もあるでしょうから、僕のように先に8割やっつけてしまって締切までにブラッシュアップする人もいれば、締切間近にならないとテンションが上がらないという人もいるでしょう。スナップショットのデータを確保しておくことで個人の指向性に応じたリマインドをすることが可能になります。
ということで、Einstein予測ビルダーを使って、ユーザが欲しいリマインドのタイミングを追求していくぞというプロジェクトを動かしていますというお話でした。
noteにはこれまでの経験を綴っていこうかと思います。サポートによって思い出すモチベーションが上がるかもしれない。いや、上がるはずです。