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)
- テストデータを用いて、以下の値を算出。
- Uplift Score = F1 - F0
- 訓練データを用いて、以下2つのモデルを構築する。
- 1つの学習器を用いたApproach
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と同様にて、
- Uplift Score = F1 - F0
- としたいところだが、それは、できない。なぜならば、各ユーザに対する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があるのか?精度は、どちらが高いのか?