这篇论文是在 Recursive Partitioning for Heterogeneous Causal Effects 的基础上加入了两个新元素:
- Trigger:对不同群体的treatment选择个性化阈值。 E.g优惠券力度,红包金额
- 新的Node Penalty: 旨在增强模型generalization
其他相关模型详见AB实验的高端玩法系列1-实用HTE论文GitHub收藏
论文
C. Tran and E. Zheleva, “Learning triggers for heterogeneous treatment effects,” in Proceedings of the AAAI Conference on Artificial Intelligence, 2019
模型
Trigger
Trigger的计算主要用在treatment是一个潜在连续变量,例如服药的剂量,优惠券的金额等等。这时实验希望得到的不仅是优惠券是否能提升用户留存,而且是对哪些用户使用多少金额的优惠券能最大化ROI。
作者在通过树划分用户群的同时计算能够使该用户群CATE最大化的Trigger阈值。既在遍历所有特征可能取值的同时遍历所有treatment的可能取值,取jointly的最优解。如下
T=titreatment的所有可能取值θl最优treatment阈值Ft(Sl)=maxθlF(Sl)
小思考
感觉这里对最佳trigger的选择还有优化的空间。因为上述split假定了实验效果对treatment的取值是单调的,如果不单调上述split可能得到不make sense的结果。而且在一些应用场景下是希望取到有条件最优解,例如在成本不超过N的情况下收益越高越好,而不是简单的最大化实验效果,这个当前也还无法解决。
Node Penalty
在Athey(2016)的Causal Tree中,作者通过在Cost Functino中加入叶节点方差,以及用验证集估计CATE的方式来解决决策树过拟合的问题。这里Tran提出的新的penalty旨在衡量相同节点训练集和验证机在CATE估计上的差异。
我们先回顾一下要用到的Notation
(Xi,Yi,Ti):Xi∈Xwhere X是特征,Y是Response,T是AB实验分组Ti∈0,1Yi={Y(1)Y(0)Ti=0Ti=1CATE:τ(x)=E(Yi(1)−Yi(0)∣X=x)
以下是Athey(2016) Causal Tree的定义
Sl=(Xi,Yi,Ti):Xi∈Xl叶节点-局部样本μt^(Sl)=Nl,t1Ti=t,i∈Sl∑YiAB组Y的均值τ^(Sl)=μ1^(Sl)−μ0^(Sl)叶节点CATEF(Sl)=Nl∗τ^2(Sl)cost fucntion:maxi=1∑LF(Si)
作者先把全样本切分成train, val和test。 用训练集来建树, 用test来估计叶节点variance,penalize小的叶结点带来的高方差,然后用叶节点上train和val的差异来penalize损失函数,以下λ控制penalty的大小:
penalty=NLval∗∣τ^(Slval)−τ^(Sltrain)∣cost=∣Nltrain−Nlval∣+1(1−λ)F(Sltrain)−λ∗penalty
小思考
各式各样解决over-fitting的方法不能说没有用,但个人认为最终通过Causal Tree得到的特征和特征取值,还是要依据业务逻辑来进行验证。以及在不同的样本集上很可能特征取值的变动要超过over-fitting的影响。所以主观判断在这里也很重要
想看更多因果推理AB实验相关paper的小伙伴看过来 Paper_CausalInference_abtest
欢迎留言~