新たに 新機能を加えた Einstein Studio が GA されます! Data Cloud に新たに Einstein Studio タブ が加わりました。 Data Cloud に アクセスできる ユーザーが 予測 AI モデルと 生成 AI モデルを構築、 接続、 管理できるようになります。 これらの 両モデルは、インテリジェント な意思決定を実現するために、 Salesforce Customer 360 アプリケーション にシームレス に 統合することができます。
訳 AI and Analytics Specialist, Salesforce, Ippei Komi

Einstein Studioでは以前から、Amazon SageMaker または Google Vertex AI を使い、データサイエンティストが外部で構築されたモデルにユーザーが接続できるようになっていますが、今回のリリースで、すでにData Cloudを扱い慣れているデータスペシャリストやアナリストが、コードを書くことなく、クリックだけで予測モデルを構築できるなりました。
このブログでは、顧客離れの可能性を予測する例を使用して、Data Cloud で予測モデルを構築する方法を段階的に説明します。次の手順で説明いたします。:
- データの準備 – Data Cloudの機能を利用してモデルを トレーニングするデータを準備します。
- モデルのトレーニングと検査 – ここでは、モデルの構築とトレーニング、およびモデル メトリクスの検査方法に関する詳細な手順を説明します。
- アクティブ化されたモデルの運用 – ここでは、モデルを使用してインテリジェントな顧客 360 アプリケーションを構築する方法をすべて見ていきます。
ステップ 1: データの準備
予測モデルの構築に必要な作業の大部分は、実際にはデータの準備にあります。データ スペシャリストやアナリストは、自分たちのデータに知悉しているためモデルを構築する権限を与えられていると思わなければなりません。最初のリリースでは、Einstein Studio Model Builderは、Data Cloud 内の単一のデータモデルオブジェクト (または DMO) に基づいてモデルをトレーニングできます。将来的にはこれを容易にすることを目指していますが、Data Cloudにはすでに、ユーザーがデータを準備およびモデル化して、単一の非正規化された DMO として表現できるデータのテーブルを形成できるツールが数多くあります。ここでは、一括処理データ変換でモデルをトレーニングするための DMO を作成する方法の例を示します。

モデルをトレーニングするには、履歴結果がデータ内のフィールドにある必要があります。これは、「ラベル付きデータセット」の作成とも呼ばれます。したがって、顧客の解約の例では、「解約」というテキストフィールドがあり、解約した顧客には「true」、会社とまだ取引のある顧客には「false」が表示されている必要があります。
また、一括処理データ変換を使用して、サブスクリプションの詳細 DMO に基づいて、長期にわたる合計料金や合計月額料金などを計算することもできます。
この出力 DMO は次のようになります:

データの準備には多くの反復が必要となる場合があります。ありがたいことに、Data Cloud はこれを簡単にするツールを提供します。
ステップ2: モデルのトレーニング
1 – [Einstein Studio] タブに移動し、[新規] ボタンをクリックします。

ここから、モデルを最初から作成することも、SageMaker、Vertex AI、Databricks などの外部 AI プラットフォーム アプリケーションに存在するモデルに接続することもできます。今回はクリックのみでモデルをトレーニングしたいので、「最初からモデルを作成」をクリックします。
2 – ここで、ステップ 1 の一括処理データ変換から作成された DMO を選択する必要があります。その DMO は特定のデータ スペースに存在するため、最初にそれを選択する必要があります。次に、モデルのトレーニングに使用する DMO を選択します。

このリストには多くの DMO が含まれている可能性があります。ほとんどの DMO は正規化されており、他の多くの DMO と関連しているため、おそらく (まだ) Einstein Studio では機能しません。モデルのトレーニングに使用できない DMO を選択すると、エラー メッセージが表示されます (願わくばこのメッセージが役立ちますように)。
3 – DMO を選択すると、さらにフィルタリングするオプションが表示されます。そうです、一括処理データ変換で実行することもできますが、これはモデルのトレーニング時に頻繁に繰り返されるステップであるため、これをモデル トレーニング プロセスの一部として行う必要がありました。顧客離反の例では、離反 = false であるすべての顧客を含めると、新規顧客が多数存在する可能性があるため、モデルが大きく歪む可能性があります。自分の会社と少なくとも 1 年間取引がある顧客のみを考慮したいと思うかもしれません。このフィルター ステップを使用すると、その基準に焦点を当て、在職期間が 12 か月を超える顧客のみを含めることができます。

4 – これでモデルの目標を設定できるようになりました。ここで、結果を表す列を選択します。これは、ラベル付き列または予測する列とも呼ばれます。モデル ビルダーは (今のところ) バイナリ分類と回帰タイプのモデルのみをサポートしているため、DMO の任意の数値フィールドまたは一意の値が 2 つしかないテキスト フィールドを選択できます。値が 1 と 0 の数値フィールドも表示され、二項分類モデルのトレーニングにも使用できます。この場合、結果列、つまりラベル付き列、あるいは予測したい列は、上で説明したように「離反」と呼ばれます。

ここで値の分布を確認できます。解約した顧客の例 (データ行) が約 2,000 件あり、解約していない顧客の例 (データ行) が 5,200 件あります。モデルをトレーニングするには、各値に少なくとも 25 行、合計 400 行が必要です。それで良いモデルが得られるとは約束できませんが、Einstein は常に最善を尽くします。
次に、予測したい値をモデルに伝える必要があります。モデルを実行すると、0 ~ 100%で表せるスコアが得られます。数値が大きいほど、予測しようとしている値に近くなります。これは尤度スコアと考えられます。したがって、離反を予測したい場合は、値 true を選択できます。次に、Einsteinに true が良いかどうかを伝えることができます。これは、洞察の方向性を決定するのに役立ちます。離反は良くないことなので、この場合「最小化」を選択します。

5 – 次に、モデルに含める列を選択します。この機能の Spring ’24 リリースでは、最大 50 個の入力変数を選択できますが、その中に何が入っているかを確認する良い方法が (まだ) ありません。現時点では、Tableau、CRM Analytics、またはその他の視覚化ツールを使用して、各入力変数の形状と内容をよりよく把握することができます。ここでの考え方は、データ モデルをよく知っている場合は、どの列が顧客を最もよく表しており、離反を引き起こしている可能性があるのかという仮説を立てて、それらを入力として使用する必要があるということです。

6 – アルゴリズムを選択し、モデルをトレーニングします。モデルのトレーニングに使用できる 3 つの異なる予測モデルアルゴリズムがあります。何を使用すればよいかわからない場合は、デフォルトのままにしてください。 XGBoost はこのような分類問題には非常に適しているので、それを選択することにします。最後に、モデルに名前を付けてトレーニングを開始します。


ステップ 3: モデルを検査する
モデルが完成したら (これには約 5 分かかりました)、評価指標を検査して、モデルがどの程度正確に予測できるかを確認できます。 Spring ’24 リリースのModel Builderでは、4 分割相互検証を使用して、このモデルが目に見えないデータの結果を予測するためにどの程度うまく使用できるかを判断します。ただし、このモデルをアクティブにして別の履歴データのセットに適用することもでき、これらの評価指標を手動で計算することもできます (一括処理データ変換内でモデルを使用できるステップ 4 を参照)。

モデルはしきい値に関係なくスコアを出力するため、スコアをどのように解釈するかはユーザーとビジネス要件次第です。しきい値を調整して、モデルのパフォーマンスを確認できます。
しきい値を上げると、「離反」= true をより適切に予測できますが、例も少なくなります。より多くのデータ行 (つまり、離脱する顧客の例) を取得することは理にかなっているかもしれません。

[設定] をクリックすると、フィルター基準、モデルのトレーニングに使用した列、およびモデル アルゴリズムを変更できます。これにより、モデルの新しいバージョンが作成され、モデルのパフォーマンスが向上するか低下するかを確認できます。さらに、DMO を更新し、新しいデータに基づいてモデルの新しいバージョンを作成できます。

データ準備ステップと同様に、モデル構築も反復的に行うことができます。モデルの新しいバージョンは簡単に作成できます。また、バージョン ピッカーをクリックして以前のバージョンに戻ることもできます。
バージョン 2 の結果に満足しているので、モデルをアクティブ化します。これは、以下に示す [トレーニング メトリック] ページまたは [モデルの詳細] ページから実行できます。

ステップ 4: モデルを運用可能にする
そもそもこのモデルが構築された理由は、どの顧客が離反する可能性が最も高いかをよりよく理解し、離反するリスクを緩和するための措置を講じられるようにするためでした。意思決定の時点でモデルを統合することは、これらのモデルを成功させるために非常に重要です。そのため、これらのモデルをほぼすべての Salesforce ワークフローに簡単に組み込めるようにできます。
Inference Builder を介して DMO に予測を書き込む
Inference Builderまたは予測ジョブは、モデルの詳細の「使用法」タブにあります。

すべての予測ジョブは、自動的に作成される新しい DMO に予測を出力し、ジョブの作成時に最初に選択する必要がある既存の DMO に接続します。この場合、離反スコアを取得したいすべての顧客が含まれる DMO (このケースでは、Customers to Score)にモデルを接続します。

次に、予測を行うためのデータをどこで取得するかをモデルに指示する必要があります。ベース オブジェクト Customers to Score からデータを取得するか、[オブジェクトの追加] をクリックしてメイン オブジェクトと関係がある DMO を選択できます。月額料金と合計料金の両方がサブスクリプション DMO から集計されたことに注意してください。新しい予測を取得するためにデータをマッピングするときに、これらの計算にアクセスできることを確認する必要があります。

すべてのフィールドをマッピングしたら、ストリーミング予測とバッチ予測のどちらを使用するかを選択できます
バッチ予測は、マーケティングのセグメンテーションに使用できる 1 回限りの予測が必要な場合や、Tableau や CRM Analytics などの分析ツールでさらに分析できるようにしたい場合、または、以前に作成されたデータでこのモデルをテストしたい場合に最適なオプションです。モデルのトレーニングには使用しませんでした (これには手動で精度を計算する必要があることに注意してください。これは分析ツールで実行できます)。
ストリーミング予測は、予測に基づいてアクションを自動化するための優れたオプションです。新しいレコードがソース DMO に表示されるか、レコードが変更されるたびに、再スコアリングされます。次に、Data Cloud で、データ アクションまたはData Cloud Trigger Flowsを作成し、予測の結果に基づいてビジネス ルールを自動化できます。
新しい予測を行うための不必要な呼び出しを避けるために、どのフィールドの更新によって新しいスコアが生成されるかを制御できます。

予測ジョブを保存するときに、予測用に自動的に作成される DMO の名前に対応する名前を付けることができます。今回は、ジョブを StreamingChurnPredictions という名前にします。

新しく作成された予測ジョブは非アクティブな状態で作成されるため、使用するにはアクティブ化する必要があります。

予測ジョブがアクティブ化されると、既存のすべてのレコードの予測を生成するために実行できます。ストリーミング ジョブであってもバッチで使用して、更新イベントが発生する前にすべてのレコードに予測があることを確認することできます。
ジョブ ステータスの履歴を表示するには、[最後の実行を表示] をクリックします。

予測ジョブを作成してアクティブ化すると、ML Prediction タイプの新しい DMO が自動的に作成され、ジョブの設定時に使用したベース DMO (顧客スコア) との関係が作成されました。 DMO を見つけるには、[データ モデル] タブに移動します (必ず「すべて」リスト ビューを使用してください)。

Batch Data Transforms内でAIモデルを使用する
Data Cloudオブジェクトに予測を書き込む別の方法は、Batch Data Transformsを使用することです。結果をBatch Data Transforms内の下流工程で使用するには、AI モデルをBatch Data Transformsのノードとして挿入します。これは、モデルのトレーニングで使用されたものとは別のデータ セットに予測を適用する優れた方法です。特定の変換を使用すると、実際の結果と予測された結果を比較して精度を計算し、これをすべて Tableau または CRM Analytics で視覚化できます。

リアルタイム予測
ストリーミング予測ジョブはData Cloudでトリガーされるフローを開始する優れた方法ですが、レコード トリガーや画面フローなどの他のフロー タイプでモデルを使用することもできます。すべてのフロー タイプがData Cloudアクションにアクセスできます。
任意のフロー タイプを作成し、アクションを追加するだけです。データクラウドカテゴリを選択すると、アクティブな Einstein Studio モデルがすべてドロップダウンリストに表示されます。

フロー内でモデルを使用するには、データを各モデル入力にマップする必要があります。このデータは、ユーザーに値の入力を求める前のステップと同様に、フロー内のどこからでも取得できます。データが Data Cloud から取得される必要はありません。

これで、モデルを好きなように使用できるようになりました。たとえば、Salesforce で何かが変更されるたびに、関連するアカウントが解約する可能性を評価し、意思決定ノードに基づいて解約予測が高すぎる場合にメールを送信する必要があるとします。

最後に挨拶
新しい Einstein Studio モデルビルダーにより、顧客は Data Cloud データをクリックするだけでモデルを構築できるようになり、Salesforce プラットフォームの機能を利用して Salesforce アプリケーション内でこれらのモデルを運用できるようになり、意思決定が向上します。