appricot’s diary

日々の勉強のメモ

Uplift Modelingの手法分類

最近、Uplift Modelingという単語をよく耳にするので、概要を、ざっくりメモ。間違いなどあれば、お気軽にご指摘ください。

Uplift Modelingとは

  • Xは、各ユーザの属性
  • Wは、各ユーザに対する介入。例えば、クーポン発行する(1)、しない(0)。
  • Yは、各ユーザの反応。例えば、コンバージョンの有り(1)、なし(0)。
  • Uplift Modelingとは、Xを固定した場合の、WがYに与える影響をモデリングすること。
  • 以下の値は、因果推論において、CATE( Conditional Average Treatment Effect)と呼ばれる。Uplift Modelingとは、この値を推定すること。
    • Uplift Score = P(Y=1 | W=1,X) - P(Y=1 | W=0, X)

 

Case-1. RCTの結果がある場合における、Uplift Modelingの手法概要(介入対象がランダム選択である場合)

  • Two-Model Approach (T-Leaner)
    • 訓練データを用いて、以下2つのモデルを構築する。
      • 介入した群のデータを利用して、Y=F1(X|W=1)
      • 介入なし群のデータを利用して、Y=F0(X|W=0)
    • テストデータを用いて、以下の値を算出。
  • 1つの学習器を用いたApproach
    • Uplift Score = P(Y=1 | W=1,X) - P(Y=1 | W=0, X)を、1つの学習器でモデリング。以下、有名な手法。
      • Causal-Tree(決定木を用いる)
      • Causal-Forest(Causal-Treeのアンサンブル学習Version。Random Forestを用いる。)

Case-2. RCTの結果がない場合におけるUplift Modeling手法概要(介入対象がランダムではない場合)

  • X-Leaner
    • Wの割付方法(傾向スコア, P(W|X))まで含めてモデリングする必要がある。よって、T-Leanerの結果を、傾向スコアを利用して調整。
    • まず、T-learnerと同様に、以下のモデルを構築。
      • Y = F1(X|W=1)
      • Y = F0(X|W=0)
    • ここから、T-Learnerと同様にて、
    • としたいところだが、それは、できない。なぜならば、各ユーザに対するWの割付がランダムではないため。言い換えると、X(W|X)=0.5とは限らないため。そこで、介入あり群・介入なし群に分けて、以下の推定量を計算。
      • 介入あり群における、各ユーザへのWの効果: D1 = Y - F1
      • 介入なし群における、各ユーザへのWの効果: D0 = F0 - Y
    • このD1, D0をラベルデータにして、モデルを構築
      • D1'=G1(X)
      • D0'=G2(X)
    •  各ユーザに対し、P(W|X)を考慮して、補正。
      • Uplift Score = P(W=1|X)D1' - P(W=0|X)D0'
      • ここで、P(W=0|X) = 1 - P(W=1|X)

 

評価指標

  • AUUCが、よく利用される。
  • AUUCとは、ランダムに選択されたユーザに介入する場合と比べ、介入効果が大きいユーザのみに介入した場合、どれぐらい介入効果が増すか?を示したもの。

 

その他

  • T-LeanerやX-Learnerを含め、一般化したのが、Meta-Leaners

  • 様々な手法を含むPythonライブラリとして、以下のようなライブラリがある。

  • 傾向スコア(Propensity Score)とは?

    • 傾向スコア=P(W=1|X)

    • RCTであれば、傾向スコアは、全てのユーザで0.5となる。Case-1.においては、考慮不要だが、Case-2.においては、考慮が必要。

 

今後、調べたい事項

  • P(W|X)がランダムな場合に、Two Model Approachと、学習器1つのアプローチでは、どのようなPros/Consがあるのか?精度は、どちらが高いのか?