構造化されたフレームワークの適用: 顧客チャーンの例
この例では、機械学習の質問を定義するプロセスのステップについて説明します。ビジネス知識をイベント トリガー、ターゲット、予測ポイント、特徴量のフレームワークと組み合わせて、明確に定義された質問を構成する方法を学びます。
出発点は、「顧客はチャーンするか」というビジネス ケースです。構造化されたフレームワークを使用することで、機械学習アルゴリズムによって予測できる、より具体的なものにこれを要約します。
イベント トリガー
イベント トリガーとは、新しい予測の作成をトリガーするアクションまたはイベントのことです。イベント トリガーを「顧客がサブスクリプションにサインアップした」と特定します。これは、新しい顧客が作成されたときにデータで表されます。チャーンするかどうかを顧客レベルで予測したいため、各行は 1 人の顧客を表す必要があります。
ビジネス知識を使用してデータを確認したところ、新規顧客のチャーン率が最も高いことがわかりました。そこで、特に新規顧客に焦点を当てることにしました。イベント トリガーは、新しい顧客がサインアップすることです。各顧客は、サブスクライブした日から始まる個別のタイム ラインを持っていると考えることができます。
ターゲット
ターゲットとは、予測しようとしている結果のことです。チャーンを予測したいので、一般的なターゲットは「顧客はチャーンするか」であることがわかっています。しかし、質の高い機械学習モデルを作成するには、より具体的にする必要があります。まず、「チャーン」とは、顧客がサブスクリプションをキャンセルするために電話をかけてくることであると決定しました。
次に、そのキャンセルの電話がかかってくる時間枠 (ホライズン) を決定します。キャンセルした複数の顧客を見ると、タイムラインが一定でないことがわかります。45 日後にキャンセルする顧客もいれば、110 日後にキャンセルする顧客もいます。
サービスには 90 日間の無料試用プログラムがあり、多くの顧客が試用期間中にチャーンすることがわかっています。このビジネス コンテキストに基づいて、当初は 90 日間のホライズンの使用を検討しました。キャンセルが予想される顧客を予測することで、その顧客に事前に連絡を取り、割引や追加のサブスクリプション機能などのインセンティブを提供することによって、継続利用を促進できます。
顧客がサインアップから何日後にキャンセルしたかを表すヒストグラムを確認すると、ビジネスを直感的に把握できます。以下の図では、過去 3 年間にチャーンしたすべての顧客のデータを確認できます。
90 日間のホライズンから開始することは、よい選択のように思えます。ただし、ヒストグラムでホライズンを確認すると、90 日間の試用期間の後にもチャーンする顧客が多数いることがわかります。考えられる理由には、顧客がクレジット カードの請求に気づくことや、支払い方法が拒否されたという通知を受け取るなどして、サブスクリプションをキャンセルするために電話をかけてくることがあります。
このような顧客を「チャーンした」としてモデルに含める必要があるため、110 日をターゲット ホライズンとして使用するほうが理にかなっていると判断しました。110 日を使用することで、無料試用プログラムに起因するチャーンの可能性が高いほとんどの顧客を捉えることができます。
ターゲットを定義したので、データが保存されている場所と、データセットにターゲット列を構築するためにデータをクリーンアップする方法を決定できます。この例では、次を実行します。
-
Salesforce から顧客ステータスを取得します。
-
ステータス、顧客の作成日、顧客のキャンセル日を抽出します。
-
抽出されたデータをクリーンアップして、ターゲット列に変換します。
これで、イベント トリガー (新規顧客のサイン アップ) とターゲット (顧客がサイン アップから 110 日以内にサブスクリプションをキャンセルするために電話をかけた) は定義されました。その内容が、以下の図のタイムラインに示されています。
予測ポイント
予測ポイントとは、特徴量のデータ収集を停止し、各行のターゲットを予測する指定された時間のことです。予測ポイントは、イベント トリガー (サブスクリプションのサイン アップ日) とターゲット ホライズン (サインアップ後 110 日) の間のどこにでも設定できます。開始点を決定するためには、実行するアクションについて考えます。
この例では、顧客チャーンが予測された場合に、カスタマー サポート チームが顧客に連絡してリテンション オファーを提供するために、30 日間を要求するとします。つまり、遅くともターゲット ホライズンの 30 日前、つまり 80 日目までに予測する必要があるということです。
予測ポイントとして 80 日目を選択すると、新規顧客に関するデータを 80 日間収集できます。イベント トリガーから予測ポイントまでの時間枠は、データ蓄積ウィンドウと呼ばれます。データ蓄積ウィンドウで収集されたデータは、特徴量の生成に使用されます。
予測ポイントを 80 日目とすると、予測ポイントからターゲット ホライズンまで 30 日間のアクション ウィンドウが残ります。これは、カスタマー サポート チームが顧客に連絡するために要求した 30 日間のウィンドウです。
予測に対するアクションの実行に必要な最小限のアクション ウィンドウを考える他に、チャーンまでの日数のヒストグラムも確認する必要があります。80 日目に予測ポイントを適用すると、次のようになります。
このヒストグラムを見ると、80 日目に予測ポイントを設定しても、ビジネス価値を最大化できないことがわかります。80 日分のデータはモデルの正確度を高めるのに役立ちますが、実行可能性には大きな代償が伴います。
-
1 つ目に、多くの顧客が 80 日目までにチャーンしているため、予測を行う前のデータ蓄積期間中にチャーンしていることになります。つまり、予測の前に結果がわかってしまうため、トレーニング データセットにはそのデータを含めたくありません。
-
2 つ目に、多くの顧客が 80 日目から 90 日目にかけてチャーンするため、カスタマー サクセス チームがそれらの顧客に連絡するために 30 日間のすべてを使えないことになります。
予測ポイントを 60 日目に移動すると、正確度と実行可能性のバランスが改善されます。モデルの特徴量に使用するデータの収集にはまだ 60 日間あり、カスタマー サクセス チームは 30 日間をかけてチャーンが予測されるほとんどの顧客に連絡できるほど、早期に予測できるようになりました。データ蓄積ウィンドウを減らすことでモデルの正確度はわずかに低下する場合がありますが、予測はより実用的になります。
特徴量
イベント トリガー、ターゲット、予測ポイントが定義されたので、データセットに最後の要素である特徴量を追加できるようになりました。特徴量とは、機械学習アルゴリズムが一般的なパターンを学習するための、トレーニング データセットの各データ行の既知の属性または観測値のことです。適用データセットの新しいデータ行が提示されると、アルゴリズムは特徴量を使用して予測します。
特徴量は、結果に影響を与える内容についてのビジネス知識に基づく仮説と考えることができます。この例の特徴量としては、顧客の所在地、リード ソース、サインアップ月、ログイン数、アクティブ ユーザー数などが考えられます。
特徴量には、次の 2 つのカテゴリがあります。
-
固定特徴量は、時間の経過とともに変化しないため、最もわかりやすい特徴量です。この例では、顧客の所在地 (サインアップ時)、リード ソース、サインアップ月はすべて固定特徴量とみなされます。固定特徴量は、顧客がサインアップするとすぐに (イベント トリガーの時点で) 認識され、予測ポイントをどこに置いても、認識された不変の情報となります。
-
ウィンドウに依存する特徴量は、もう少し複雑になります。ウィンドウに依存する特徴量は、イベント トリガーと予測ポイントの間で収集された情報に基づいて収集される特徴量です。ウィンドウ内で認識されているデータのみを使用していることを確認しないと、モデルにデータ漏洩が発生する可能性があります。(詳細については、「データ漏洩」を参照してください)
単純なモデルでは、0 日目に認識されている情報、つまり固定特徴量のみを使用する場合があります。その場合は、図に示すように 0 日目に予測ポイントが設定されます。
結果のデータセットは次のようになります。
ただし、60 日目の予測ポイントの例のように、顧客がサブスクライブした後に収集されたデータを使用する場合もあります。
これで、顧客がサインアップしてから最初の 60 日間に収集された情報を使用して、ウィンドウに依存する特徴量をモデルに追加できるようになりました。このモデルのデータセットは、次のテーブルのようになります。ウィンドウに依存する特徴量である「最初の 60 日間のログイン数」と 「60 日間のアクティブ ユーザー」が含まれるようになりました。
この例では、特徴量はデータ蓄積ウィンドウ全体を反映していることに注意してください。ウィンドウを小さくすることもできます。例えば、最初の 10 日間のログインまたは 30 日目~ 60 日目のログインなど、特徴量に予測ポイントを過ぎた情報が含まれていない限り測定できます。
ウィンドウに依存する特徴量には日付が必要であり、データ漏洩を防ぐためにデータ蓄積ウィンドウ内に収まるように特別な配慮が必要になるため、収集がより複雑になる可能性があります。しかし、ウィンドウに依存する特徴量は予測に近いタイミングで収集した情報を反映できるため、最も強力な特徴量にもなります。
結果として得られる機械学習の質問
出発点は、「顧客はチャーンするか」という単純なユースケースでした。次に、個々の顧客レベルで予測するために、イベント トリガーを「新規顧客のサインアップ」と定義しました。
ターゲットを「顧客がサブスクリプションをキャンセルするために電話をかけた (「はい」または「いいえ」)」という特定の結果に定義し、試用期間のユーザーの多くがキャンセルする 110 日にホライズンを設定しました。
サインアップからキャンセルの電話までの日数が示される過去 3 年間のヒストグラムを見て、サインアップから 60 日を予測ポイントに決定しました。これにより、予測する前に 60 日間情報を収集し (データ蓄積ウィンドウ) 、カスタマー サポート チームはチャーンを減らすために予測に基づいて対処する時間を確保できます。
最後に、特徴量を生成するために、60 日目より前に利用できる顧客に関するデータを収集しました。
結果として得られる機械学習の質問は次のとおりです。「最初の 60 日間の後、顧客は 110 日目までにキャンセルの電話をかけてくるか」
自動機械学習に使用できるようになったデータセットは、次のテーブルのようになります。「場所」、「リードソース」、「加入月」、「サブスクリプション金額」は固定特徴量です。「最初の 60 日間のログイン数」と 「60 日間のアクティブ ユーザー」はウィンドウに依存する特徴量であり、ターゲット列に 110 日目までのチャーンが示されています。