良い特徴量を選択する
Decisioning Studioモデルは、顧客特徴量を入力として使用し、個別化されたおすすめを行います。意思決定空間に適した高品質な特徴量は、モデルのパフォーマンスを向上させるための最も効果的な手段の一つです。この記事では、提供できる特徴量の種類、適切な構築方法、エージェントが選択するアクションと特徴量を整合させる考え方について説明します。
社内にデータサイエンスチームやデータエンジニアリングチームがある場合、データ内のどのシグナルが意味を持つかについて最も多くのコンテキストを持っているため、特徴量の構築とキュレートに最適な立場にあります。
Brazeをご利用のお客様の場合、顧客特徴量は通常、ユーザープロファイルのカスタム属性を通じてDecisioning Studioに渡されます。カスタム属性とカスタムイベントの違い、およびそれぞれの更新戦略の詳細については、スナップショットとイベントストリームを参照してください。
顧客特徴量の種類
顧客特徴量には4つの一般的なカテゴリがあります。
| 特徴量の種類 | 捕捉する内容 | 例 |
|---|---|---|
| ユーザープロファイリング | 顧客のステータスに関する客観的な事実 | age、loyalty_tier、days_enrolled、city、acquisition_channel |
| ユーザー傾向 | 顧客が何かを行う可能性に関するモデル由来のスコア | churn_risk_score、purchase_intent_score、upsell_affinity |
| ユーザー行動 | 時間枠における顧客アクティビティの要約 | clicks_past_30d、purchases_past_7d、app_logins_past_14d |
| 環境 | 顧客外部の文脈に応じたシグナル | is_promotional_period、is_holiday、regional_economic_index |
これらの特徴量の種類を組み合わせることで、モデルはセグメントを特定し、顧客を区別し、それに応じておすすめを適応させるために必要な情報を得ることができます。
一般的なガイドライン
特徴量を選択・構築する際には、以下の点に留意してください。
- カバレッジ: 特徴量はターゲットオーディエンス内のすべての顧客をカバーする必要があります。オーディエンスの大部分で欠損またはnullとなる特徴量は、それらの顧客に対してモデルが活用できる情報を減少させます。
- 粒度: すべての特徴量は顧客レベルに集約する必要があります。「顧客レベル」が実際に何を意味するかについては、Braze external IDの使用を参照してください。
- 鮮度: 特徴量はイベント駆動ではなく、時間駆動のスケジュールで更新する必要があります。これが重要な理由については、スナップショットとイベントストリームを参照してください。
- 妥当性: 特徴量の値は、定義に照らして妥当な範囲内に収まる必要があります。「過去30日間の購入数」の特徴量が負の値になることはあり得ません。
- スパース性: 明確なビジネス上の理由がない限り、大多数の顧客でゼロまたはnullとなる特徴量は避けてください。スパースな特徴量はシグナルを追加せずにノイズを増やします。
- 相関: 互いに高い相関を持つ特徴量を含めることは避けてください。冗長な特徴量はバイアスを導入し、予測を改善せずにトレーニングを遅くする可能性があります。
行動特徴量の構築
行動特徴量は、定義された時間枠における顧客のアクション履歴を要約します(例:「過去28日間の購入数」)。これらは、静的なプロファイル特性だけでなく、顧客が実際にどのように行動するかを捕捉するため、おすすめシステムにとって最も価値のある特徴量の一つです。
時間枠の選択
適切な時間枠は、測定するアクションを顧客がどの程度の頻度で行うかによって異なります。
- 短い時間枠(7〜28日): アプリログイン、メール開封、Webサイト訪問などの高頻度アクティビティに使用します。
- 長い時間枠(90〜365日): 製品購入、サブスクリプション更新、カスタマーサービスへの問い合わせなどの低頻度アクティビティに使用します。
有用な診断方法:特徴量の値の大部分がゼロの場合、時間枠が短すぎる可能性があります。顧客間で意味のある分散が見られるまで時間枠を広げてください。
集約方法の選択
- 値を持たないイベント(何かが発生したか、しなかったか)の場合:カウント集約を使用します。例:
email_opens_past_30d。 - 関連する値を持つイベント(収益、期間、数量)の場合:合計と平均の両方の集約を使用します。例:
purchase_value_sum_past_90dとpurchase_value_avg_past_90d。これらは、合計ボリュームとイベントごとの規模に関する補完的な情報を提供します。
特徴量とアクション空間の整合
Decisioning Studioは傾向モデルではなく、ランキングシステムです。その目標は、各顧客に対して、定義されたオプションのセットの中からどのアクションが最良の結果を生み出す可能性が最も高いかを特定することです。これにより、特定の要件が生まれます。特徴量は、可能な限り、特定の顧客に対して利用可能なオプションを区別するのに役立つ情報をモデルに提供する必要があります。
これが重要な理由
例えば、エージェントのアクション空間が3つのメニューアイテム(コーヒー、紅茶、タピオカティー)のいずれかをおすすめすることだとします。
特徴量が顧客を高いレベルで記述している場合(「頻繁にドリンクを注文する」や「メールエンゲージメントが高い」など)、モデルは顧客を大まかなグループにセグメント化できます。しかし、特定の顧客に対してコーヒーとタピオカティーをランク付けする段階になると、大まかな特徴量はあまり役に立ちません。高レベルの特徴量では同一に見える2人の顧客が、まったく正反対の好みを持っている可能性があります。
モデルが矛盾するシグナルに遭遇した場合(例:一見似ている2人の顧客にコーヒーをおすすめしたが、1人しかコンバージョンしなかった場合)、効果的に学習できません。ノイズにより、正確なランキングを行う能力が低下します。
アクション空間に合った特徴量の構築
アクション空間と同じ粒度にマッピングされた特徴量は、モデルにはるかに強力なランキングシグナルを提供します。カフェの例では、coffee_orders_past_14dのような特徴量は、顧客がコーヒーを好むかどうかをモデルに直接伝えます。black_tea_orders_past_14dのような特徴量は、紅茶に対して同じ役割を果たします。これにより、モデルは十分な情報に基づいたランキング判断を行えるようになります。
アクションに整合した特徴量を使用すると、モデルは飽和や疲労も検出できます。顧客のcoffee_orders_past_14dの値が高いにもかかわらず、最近のコーヒーのおすすめでコンバージョンしなかった場合、モデルはコーヒーを再度おすすめすることが最善の選択ではない可能性があることを学習し、代替案のテストを開始します。
正確な整合が利用できない場合
特徴量とアクションの正確な整合が理想的ですが、データの利用可能性によって制約されることがよくあります。完全に整合した特徴量を構築できない場合、2つのアプローチが役立ちます。
データの要約: 紅茶とタピオカティーの購入を区別できない場合は、集約されたtea_orders_past_14d特徴量を使用します。これにより精度は多少失われますが、お茶を好む顧客とコーヒーを好む顧客を区別するのに役立ちます。
間接的なシグナル: アクション空間に直接含まれない特徴量でも、論理的な関係がある場合は価値があります。例えば、dessert_purchased_past_30dは甘いものへの好みの合理的な代理指標であり、タピオカティーの好みと相関している可能性があります。モデルは、直接的な特徴量の一致がなくても、これらの間接的なシグナルから学習できます。
基本的な原則は、より関連性が高く粒度の細かい情報は常に役立ちますが、モデルは不完全な特徴量からも学習できるということです。手元にあるものから始めて、より多くのデータが利用可能になるにつれて徐々に改善していきましょう。