和机器学习中的树基本一样(分裂规则、停止规则、剪枝),核心为分裂规则,根据每个叶子节点的uplift,计算分裂前后的信息差异(如转化率的差异)。常用比如基于分布差异(KL、Euclidean等);或者结合bagging、boosting技术等。
T-learner
用两个分别base learner去模拟干预组的outcome和非干预组的outcome
S-learner
是将treatment作为特征,干预组和非干预组一起训练,
T-learner和S-learner是一种naive的方法,无法解决样本不均衡的问题、selection bias等问题。
例子
T=1组只有少量样本(as treatment is often expensive),假设T、X和Y的关系是非线性的,且treatment effect是个常数等于1
第一步:T=1和T=0组分别构建模型
r i g h t m o d e l 非 线 性 : M ^ 0 ( X ) = E ( Y ∣ T = 0 , X ) w r o n g m o d e l 线 性 : M ^ 1 ( X ) = E ( Y ∣ T = 1 , X ) \begin{aligned} right \ model \ 非线性:\hat M_0(X) = E(Y|T=0,X) \\ wrong \ model \ 线性:\ \hat M_1(X) = E(Y|T=1,X) \end{aligned} right model 非线性:M^0(X)=E(Y∣T=0,X)wrong model 线性: M^1(X)=E(Y∣T=1,X)
训练得到的 M ^ 1 ( X ) \hat M_1(X) M^1(X)模型非常简单,是个线性模型。因为样本少,为了防止过拟合,模型自然简单。但T=0组样本量充足, M ^ 0 ( X ) \hat M_0(X) M^0(X)模型捕捉到了Y的非线性关系。 C ^ A T E = τ ^ = M ^ 1 ( X ) − M ^ 0 ( X ) \hat CATE = \hat \tau = \hat M_1(X)-\hat M_0(X) C^ATE=τ^=M^1(X)−M^0(X),是个非线性的结果,这与实际不符(实际的treatment effect是个常数等于1)。图中蓝色点是T=1组的观测Y,蓝线是 M ^ 1 ( X ) \hat M_1(X) M^1(X);图中红色点是T=0组的观测Y,红线是 M ^ 0 ( X ) \hat M_0(X) M^0(X)
第二步:用T=0组的模型去预测T=1组的outcome,并和T=1组的观测Y相减
w r o n g m o d e l 非 线 性 : τ ^ ( X , T = 0 ) = M ^ 1 ( X , T = 0 ) − Y T = 0 r i g h t m o d e l 线 性 : τ ^ ( X , T = 1 ) = M ^ 0 ( X , T = 1 ) − Y T = 1 \begin{aligned} wrong \ model \ 非线性 : \hat \tau(X,T=0) = \hat M_1(X,T=0)-Y_{T=0} \\ right \ model \ 线性: \hat \tau(X,T=1) = \hat M_0(X,T=1)-Y_{T=1} \end{aligned} wrong model 非线性:τ^(X,T=0)=M^1(X,T=0)−YT=0right model 线性:τ^(X,T=1)=M^0(X,T=1)−YT=1
红色点是 τ ^ ( X , T = 0 ) \hat \tau(X,T=0) τ^(X,T=0)是用错误的线性模型 M ^ 1 ( X ) \hat M_1(X) M^1(X)估计出来的,该估计是错的(真实treatment effect是常数1);蓝色点是 τ ^ ( X , T = 0 ) \hat \tau(X,T=0) τ^(X,T=0)是用正确的非线性模型 M ^ 0 ( X ) \hat M_0(X) M^0(X)估计出来的,该估计是对的,和真实treatment effect是常数1的设定相符;
将红色点和蓝色点拟合成模型:
w r o n g m o d e l 非 线 性 : F ^ τ 0 = E [ τ ^ ( X ) ∣ T = 0 ] r i g h t m o d e l 线 性 : F ^ τ 1 = E [ τ ^ ( X ) ∣ T = 1 ] \begin{aligned} wrong \ model \ 非线性 : \hat F_{\tau0} = E[\hat \tau(X)|T=0] \\ right \ model \ 线性: \hat F_{\tau1} = E[\hat \tau(X)|T=1] \end{aligned} wrong model 非线性:F^τ0=E[τ^(X)∣T=0]right model 线性:F^τ1=E[τ^(X)∣T=1]
第三步:得到正确的 τ ^ 1 \hat \tau_1 τ^1和错误的 τ ^ 0 \hat \tau_0 τ^0之后,通过倾向性得分加权最终的预估 τ ^ \hat \tau τ^
τ ^ ( X ) = F ^ τ 0 ∗ e ^ ( X ) + F ^ τ 1 ∗ ( 1 − e ^ ( X ) ) \hat \tau(X) = \hat F_{\tau0} *\hat e(X)+ \hat F_{\tau1} *(1-\hat e(X)) τ^(X)=F^τ0∗e^(X)+F^τ1∗(1−e^(X))
T=1组样本量少, e ^ ( T = 1 ∣ X ) \hat e(T=1|X) e^(T=1∣X)的预测样本也较少,所以错误的 τ ^ 0 \hat \tau_0 τ^0获得权重较低, ( 1 − e ^ ( X ) ) (1-\hat e(X)) (1−e^(X))接近1,所以正确的 τ ^ 1 \hat \tau_1 τ^1获得较高的权重。
图中虚线为 τ ^ X \hat \tau^X τ^X,表示X-learner预测得到的 C ^ A T E \hat CATE C^ATE;实线为 τ ^ T \hat \tau^T τ^T,表示T-learner预测得到的 C ^ A T E \hat CATE C^ATE,可以看到X-learner的预测更接近treatment effect是常数1的设定。
相似人群构造:对T=1/T=0两组群人分别预估uplift score,之后将人群按照 uplift score 进行降序排列,通过 score 分数这一桥梁,可以把两组人群进行镜像人群的对齐,之后分别截取分数最高的比如 10% 的用户出来,计算这一部分人观测转化率的差异,这个差异就可以近似地认为是分数最高的这群人真实的uplift,类似地,我们可以计算前 20%,40% 一直到 100% 的点上面的值,连线就能得到 uplift curve。
Q ( i ) = ( N t , y = 1 ( i ) N t − N t , y = 0 ( i ) N c ) , i = 10 % , 20 % , ⋯ 100 % Q(i) = (\frac {N_{t,y=1}(i)}{N_t}-\frac {N_{t,y=0}(i)}{N_c}),i=10\%,20\%,\cdots 100\% Q(i)=(NtNt,y=1(i)−NcNt,y=0(i)),i=10%,20%,⋯100%
G ( i ) = N t , y = 1 ( i ) n t ( i ) − N t , y = 0 ( i ) n c ( i ) ∗ ( n t ( i ) + n c ( i ) ) , i = 10 % , 20 % , ⋯ 100 % G(i) = \frac {N_{t,y=1}(i)}{n_t(i)}-\frac {N_{t,y=0}(i)}{n_c(i)}*(n_t(i)+n_c(i)),i=10\%,20\%,\cdots 100\% G(i)=nt(i)Nt,y=1(i)−nc(i)Nt,y=0(i)∗(nt(i)+nc(i)),i=10%,20%,⋯100%
21 - Meta Learners - Causal Inference for The Brave and True
阿里文娱智能营销增益模型 (Uplift Model) 技术实践
智能营销增益模型(Uplift Modeling)的原理与实践