オリジナル記事
Create Intelligent Applications with the ‘Predict’ node in Recipes
AUTHOR
by Reinier van Leuken 11. February 2021 Add Intelligence, Spring 21 0
Reinier van Leukenは、Einstein Discoveryチームのプロダクトマネージャーです。長年、データサイエンティストとしてAIに取り組んできました。Einstein Discoveryのストーリーを改良し、埋め込み拡張分析をいかにしてビジネス上の成功に結ぶつけるかに心血を注いでいます。
Einstein Discoveryを使用すると、ビジネスサイエンティストは、ストーリーを使用して、ビジネスデータのパターン、傾向、相関関係を探索することができます。ストーリーは、訓練されたデータ(教師データ)に応じて、さまざまな質問に答えます。例としては、商談勝率分析、購買分析 (PTB) 、顧客サービスにおけるケース平均取り扱い時間分析(AHT)または顧客満足度分析(CSAT)などがあります。ストーリー作成時に自動的に出力される特に有用な要素の一つが予測モデルです。予測モデルは、将来についての予測を行います。一つ一つの入力行に対して、予測モデルは予測、上位の予測要因、上位の改善方法(推奨事項)を出力します。
これらの予測モデルの出力を活用するために、さまざまな選択肢が存在します。最も有名なものは、ライトニングページにコードなしで予測を表示するライトバックという方法です。アインシュタイン予測フィールドに情報を保存するかどうかに関わらず、左図のようにライトニングページ上に予測を表示することができます。もう一つの予測モデルの適用方法は、プロセスオートメーションで予測値を使用して、Next Best Action、検証ルール、ワークフローなどの自動化に予測を組み込むことです。完全にプログラム化して、APEXを通して予測値を取得したり、Prediction Service APIを使用して Salesforceシステム以外の外部システムから予測を活用することが可能です。
この記事の目的に戻りますが、Spring ‘21リリースでは、予測モデルから予測値を取得するための簡単かつ非常に強力な方法が追加されています:レシピ(DataPrep)のDiscovery 予測ノードを使用することです!今からご覧いただきますが、この機能は予測モデルの作成と展開のいくつかのステップを大幅に促進し、予測モデルからの出力を新しいデータセットに適用し可視化を簡単に行うことができます。
予測ノードを使って予測モデルの結果をデータセットに書き込む
最近、データの前処理のUXが新たなレシピで完全に刷新されました。この新たなレシピには、’Discovery 予測’と呼ばれる特別なノードも含まれます。Discovery 予測ノードを持つレシピを実行すると、Einsteinは予測モデルの結果を行ごとに計算し、データセットに保存します。上位予測要因と上位改善点を保存することもできます。例えば、レシピは、商談データセットで予測された勝率を保存することができ、上位要因や勝率を改善するための上位のレコメンデーションを行レベルで保存することができます。そして、レシピから得られたデータセットは、ダッシュボードで直接可視化するために使用することができます。
Discovery 予測ノードを動作させるために必要なのは、組織内にデプロイされたEinstein Discoveryで作成された予測モデルと、予測モデルを使って予測を当てはめたいデータセットだけです。Discovery 予測ノードを含む完全なレシピは以下のようになります。
ご覧のように、予測モデルに当てはめるデータセットは、ストーリー作成時に使った列と同じフィールド名を含む必要はありません。フィールドマッピングを使うと、ストーリー時に使った列をデータセットフィールドにマッピングすることができます。
選択できるもう一つのオプションは、上位要因と上位改善点を含めることです。
予測ノードは、GBM、XGBoost、Random Forestsなどのツリーベース学習アルゴリズムと同様に、GLMモデルタイプで利用できます。ツリーベースモデルの予測値を生成するには、GLMモデルよりも少し時間がかかります。Spring ‘21では、データセットに上位改善点を書き込むオプションはGLMモデルタイプでのみ利用可能になることに注意してください。今後のリリースでツリーベースの手法についても上位改善点が書き込まれる予定です。
レシピの予測ノードを使ってインテリジェントなアプリケーションを作成
この予測ノードがインテリジェント・アプリケーションに与える影響は、思ったよりも大きくなるかもしれません。いくつかの例を探ってみましょう。最初に、これがビジネスユーザーにとって何を意味し、どのような新しいインサイトのセットを活用できるのかを見ていきます。次に、これがどのように良いストーリを作成し、モデルの品質をチェックするのに役立つのかを見ていきます。最後に、特定のタイプのモデルの展開を容易にする方法を見ていきます。
ビジネスユーザとエグゼクティブに有益:予測、要因、改善方法をまとめて探索
上位の肯定要因と上位の否定要因をデータセットに保存することができるので、これらを集約して可視化するなどの活用を行うことができます。商談の勝率の例を考えてみましょう: レシピは商談のすべての行に対して勝率予測、上位要因、上位改善点を算出し、データセットに書き込みます。その結果、そのデータセットに基づいて構築されたダッシュボードでは、取引先の最も影響の大きい改善点をインタラクティブに探索することができます。あるいは、特定の領域で最もインパクトのある勝因を理解することもできます。また、期待される勝率が最も高いのはどの製品で、その勝率を最も大きく押し上げているのは何か、などを自分で分析することもできます。
この分析は、ストーリーから得られる洞察とは異なることを理解することが重要です。これらはレシピが商談データセットに対して予測モデルを当てはめた結果であり、このデータセットは現在の商談パイプラインを表していることを覚えておいてください。つまり、ダッシュボードでは、トレーニングデータセット(教師データセット)で起こったこととは対照的に、今日のビジネスのためのモデル結果を予測・分析しています。そのため、集計レベルでの正しい修正行動を即座に取ることができるようになります。特定の営業チームの特定の製品ラインの予測勝率が低いのを見つけたとしましょう。そのようなチームのために専用のイネーブルメントキャンペーンを一度に実施し、現在のパイプラインの成約率に直接影響を与えましょう。
別の例として、電気通信のシナリオにおける顧客の解約に関するこのダッシュボードを参照してください(上の画像)。解約リスクは顧客レベルで計算されますが、これらのモデル結果を集約できるダッシュボードのおかげで、ビジネスのさまざまな部分について集約レベルでこれを探り、単一の顧客だけではなく、データを様々な観点から分析することで、解約率の高低や上位の予測要因を明らかにすることができます。
より良いストーリの作成とモデルの正確性をチェック
Einstein Discoveryのモデルは、モデルの品質に関しても完全に透過的です。表示されているモデル統計値は、k分割交差検証によって得られた統計指標に基づいています。k分割交差検証では、トレーニングデータ(教師データ)からランダムに選択された部分集合を検証データとして残し、モデルのトレーニング中には使用しません。これらの検証セットは、観察された結果と予測された結果を比較することによって、モデルの品質を計算するために使用されます。ここで重要なのは、「ランダムに」という言葉です:これらの部分集合は、ランダムに選択された行で構成されており、これが本来あるべき姿であり、これがモデルがデータ全体でうまく機能することを知る方法です。
データの特定のサブセットを使用してモデルの品質を理解したいという場合があるかもしれません。過去3年間の顧客の解約率を見て、顧客解約モデルを作成したとします。モデルの統計値自体は、それが高品質のモデルであることを示しているとしましょう。ここであなたは疑問に思うかもしれません:モデルは、過去の四半期を見ただけで顧客の解約を予測して、どれだけ正確だったでしょうか、それは正しく解約する右の顧客を予測したでしょうか?この質問への答えは、レシピの予測ノードで簡単に見つけることができます。顧客データセットで解約を予測するレシピを作成し、それをフィルタリングして、実際に観測された解約と比較します。モデルはその最終四半期に正しい顧客を見つけられたでしょうか?
上記例の別のバリエーションとして、最初に特定の検証セットを手動で作成し、他のデータでモデルを訓練することがあります。例えば、新製品ラインを導入したとします。この製品のクローズした商談はまだ多くなく、存在する商談はモデルのトレーニングに含めるにはあまりにも多様な性質を持っています。商談の勝率モデルがこの新製品でどれだけうまく機能するかを理解するには、この製品が存在していない頃の商談で訓練されたモデルを作成し、新製品を含む商談の結果を予測するために予測ノードを使用します。それをそれらの機会の実際の勝率と比較することで、この新製品ラインのモデルの精度を十分に感じることができます。
最後に、異なる設定で複数のモデルを”裏で展開”し、展開されたすべてのモデルのモデル精度を比較するダッシュボードを構築するのにも使用できます。これを行うには、モデルの複数のバージョンを展開し、それらのすべてに従ってモデルの結果をデータセットに書き込むレシピを作成します。時間が経つにつれて、同じデータセットで観測された結果と異なる予測を簡単に比較することができ、どのモデルが最も精度の高いモデルであるかを確認することができます。
データセットに予測スコアを書き込み、モデルの結果を確認しながらデプロイ
最後に、この新しい機能を使って、モデル管理者やモデルマネージャーの仕事がどのように楽になるのかを探ってみましょう。モデルの結果をSalesforceに戻すことは、これまで以上に簡単になります。
まず第一に、これにより、予測結果をダッシュボード内で簡単に可視化することができます。ゲージチャートに解約リスクを表示することもできます。また、商談の勝率可能性を信号機として表示することもできます。また、1つから5つ星のカテゴリとして表現された購入傾向スコアとして見ることもできます。あるいは、この顧客を同業他社の顧客と比較した散布図に、期待される生涯収益を実際にプロットしてみることもできます。このような説得力のある可視化には、予測モデルの結果がデータセットに反映されている必要があり、時には小さな後処理が必要になることもあります(購買傾向のスコアを1つ星から5つ星に変換するなど)。
予測モデルの結果はデータセットに保存されているので、これらの変換やビジュアライゼーションはすべて簡単に作成できます。必要なデータ変換のレシピを完成させ、結果のデータセット上にダッシュボードを構築し、対応するライトニングページに埋め込むだけです。
新しいレシピで可能になったもう一つの革新的機能は、データセットからSalesforceオブジェクトにデータを書き戻すことができるSalesforce Output Connectorです。 Tableau CRMでデータを準備して変換し、それをSalesforceコアにプッシュバックすることができます。もちろん、予測ノードとの組み合わせで特に威力を発揮します。出力コネクタがどのように動くかを確認するには、以下のレシピを参照してください。
出力ノードで、
1) 出力接続に書き込むことを選択します
2) データをプッシュする Salesforce 出力接続を選択し
3) 書き込み先のオブジェクトを選択します
4) データを UPDATE、INSERT、または UPSERT にプッシュするかどうかを選択します
5) レシピ列をセールスフォース・オブジェクト列にマッピングします
Salesforceの出力コネクタとレシピの予測ノードの組み合わせは、マネージドパッケージを使用してカスタムフィールドにDiscoveryの予測項目をライトバックする既存のオプションと同様に、モデル結果をSalesforceにプッシュする強力な方法になります。Salesforceレコード上のこれらのモデル結果の更新頻度は、レシピスケジューラを使用して簡単に制御することができます。
最後の考慮点
レシピのDiscovery 予測ノードは、技術よりな機能のように見えるかもしれませんが、インテリジェント・アプリケーションへの影響は大きいです。この機能により、モデルの結果(予測、上位要因、上位改善点)をダッシュボードに簡単に集約し、現在何がビジネスを牽引しているのかを理解することができます。このコンセプトの応用例は数え切れないほどあり、ビジネスユーザーや経営者がモデルの結果を使って大規模に作業する方法を再定義することになります。
また、ストーリー作成者やモデル管理者にとっても、モデルの精度をさらに検査したり、実際にユーザーに表示する前に予測を変換したり、もちろんSalesforceに戻ってくる予測を管理したりと、多くのメリットがあります。これは、Spring ‘21にリリースされるEinstein Discoveryの機能の中で、私が最も気に入っている機能の1つです。
レシピの予測ノードをどのように使って、アプリケーションをよりインテリジェントにしていきますか?
コメントで教えてください。
訳者:
小見一平 (KOMI, Ippei)
Salesforce.com Tableau CRM (f.k.a. Einstein Analytics ) Specialist