前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AB实验人群定向HTE模型2 - Causal Tree with Trigger

AB实验人群定向HTE模型2 - Causal Tree with Trigger

作者头像
风雨中的小七
修改2020-05-17 15:51:44
1.4K0
修改2020-05-17 15:51:44
举报

这篇论文是在 Recursive Partitioning for Heterogeneous Casual Effects 的基础上加入了两个新元素:

  • Trigger:对不同群体的treatment选择个性化阈值。 E.g优惠券力度,红包金额
  • 新的Node Penalty: 旨在增强模型generalization

论文

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的最优解。如下

`$\begin{align}

T = {t_i}&\quad \text{treatment的所有可能取值}\

\theta_l &\quad \text{最优treatment阈值}\

F^t(Sl) &= max{\theta_l}F(S_l)\

\end{align}$`

小思考 感觉这里对最佳trigger的选择还有优化的空间。因为上述split假定了实验效果对treatment的取值是单调的,如果不单调上述split可能得到不make sense的结果。而且在一些应用场景下是希望取到有条件最优解,例如在成本不超过N的情况下收益越高越好,而不是简单的最大化实验效果,这个当前也还无法解决。

Node Penalty

在Athey(2016)的Casual Tree中,作者通过在Cost Functino中加入叶节点方差,以及用验证集估计CATE的方式来解决决策树过拟合的问题。这里Tran提出的新的penalty旨在衡量相同节点训练集和验证机在CATE估计上的差异。

我们先回顾一下要用到的Notation

`$\begin{align}

& {(X_i, Y_i,T_i): X_i \in X} \

& \text{where X是特征,Y是Response,T是AB实验分组}\

&T_i \in {0,1} \quad \

&Y_i = \begin{cases}

代码语言:txt
复制
Y(1) & \quad  T_i = 0\\
代码语言:txt
复制
Y(0) & \quad  T_i = 1\\

\end{cases}\

&CATE: \tau(x) = E(Y_i(1)-Y_i(0)|X=x)\

\end{align}$`

以下是Athey(2016) Casual Tree的定义

`$\begin{align}

&S_l = {(X_i, Y_i,T_i): X_i \in X_l} \quad \text{叶节点-局部样本}\

&\hat{\mut}(S_l) = \frac{1}{N{l,t}}\sum_{T_i=t, i \in S_l}Y_i \quad \text{AB组Y的均值} \

&\hat{\tau}(S_l) = \hat{\mu_1}(S_l) -\hat{\mu_0}(S_l) \quad \text{叶节点CATE}\

&F(S_l) = N_l * \hat{\tau}^2(S_l)\

& \text{cost fucntion}: max \sum_{i=1}^L F(S_i)\

\end{align}$`

作者先把全样本切分成train, val和test。 用训练集来建树, 用test来估计叶节点variance,penalize小的叶结点带来的高方差,然后用叶节点上train和val的差异来penalize损失函数,以下

(lambda)

控制penalty的大小:

`$\begin{align}

&penalty = N_L^{val} * |\hat{\tau}(S_l^{val}) -\hat{\tau}(S_l^{train}) | \

&cost = \frac{(1-\lambda)F(S_l^{train}) - \lambda * penalty}{|N_l^{train} - N_l^{val}| +1}\

\end{align}$`

小思考 各式各样解决over-fitting的方法不能说没有用,但个人认为最终通过Casual Tree得到的特征和特征取值,还是要依据业务逻辑来进行验证。以及在不同的样本集上很可能特征取值的变动要超过over-fitting的影响。所以主观判断在这里也很重要

其他相关模型详见因果推理的春天-实用HTE论文GitHub收藏

欢迎留言~

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-10-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 论文
  • 模型
    • Trigger
      • Node Penalty
      相关产品与服务
      大数据
      全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档