Paper慢慢读 - Recursive Partitioning for Heterogeneous Casual Effects

这篇是treatment effect估计相关的论文系列第一篇因此会啰嗦一点多给出点背景。html

论文

Athey, S., and Imbens, G. 2016. Recursive partitioning for heterogeneous causal effects. Proceedings of the National Academy of
Sciences.算法

背景

论文给出基于决策树估计实验对不一样用户的不一样影响。并提出Honest,variance Penalty算法旨在改进CART在tree growth过程当中的过拟合问题。app

咱们举个例子:科研人员想衡量一种新的降血压药对病人的效果,发现服药的患者有些血压下降但有些血压升高。因而问题能够抽象成咱们但愿预测降压药会对哪些病人有效?类似的问题常常出如今经济,政治决策,医疗研究以及当下的互联网AB测试中。测试

Treatment effect之因此比一般的预测问题要更难解决,由于groud-truth在现实中是没法直接观测到的,一我的在同一时刻要么吃药要不么吃药,因此你永远没法知道吃药的人要是没吃药血压会不会也下降,或者没吃药的人要是吃了药血压会不会下降。优化

既然个体的treatment effect没法估计,只能退而求其次去估计群体的treatment effect- ATE (Average treatment effect),既所有用户中(服药效果- 未服药效果)。 可是当出现个体效果差别时ATE没法反应局部效果(E.g.样本稀释)。这时咱们须要估计类似群体的treatment effect-CATE(Conditional average treatment effect)spa

用数学抽象一下上述问题:
\[ \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} Y(1) & \quad T_i = 0\\ Y(0) & \quad T_i = 1\\ \end{cases}\\ &CATE: \tau(x) = E(Y_i(1)-Y_i(0)|X=x)\\ \end{align} \]code

模型

这里寻找类似用户的方式是经过决策树。树相较线性模型的优势毫无疑问是它对特征类型的兼容,尤为考虑到实际状况中会存在大量离散特征如性别,地域等等。orm

那究竟怎样grow tree来找到局部用户群, 取决于cost function的定义。通常决策/回归树是对Y的拟合例如RMSE,或者cross-entropy等等。这里做者选择最大化\(Y(1)-Y(0)\)做为cost Function, 既咱们经过树划分出的局部人群能够实现局部实验效果最大化(正向或负向)。 cost function 以下:
\[ \begin{align} &S_l = {(X_i, Y_i,T_i): X_i \in X_l} \quad \text{叶节点-局部样本}\\ &\hat{\mu_t}(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} \]htm

熟悉决策树的朋友也就知道后续split criterion就是去寻找最大化CATE增加的特征和阈值。对决策树不太睡的朋友能够来我以前的博客看看Tree-Decision Tree with Sklearn source codeblog

模型优化

决策树最大的问题就是过拟合,由于每一次split都必定能够带来Information Gain。这里就涉及到ML里最经典的Bias-variance trade off。树划分的节点越小,对样本的估计误差(Bias)越小但方差(Variance)越大。

传统决策树通常经过几个方法来解决过拟合的问题:

  • cross-validation来肯定树深度
  • min_leaf, min_split_gain 用叶节点的最小样本量等参数来中止growth

做者在文章中给出另外两种解决过拟合的方法:

  • Honest approach
  • Variance Penalty

Honest approach是把训练样本分红train和est两部分,用train来训练模型用est来给出每一个叶节点的估计
Variance Penaly则是直接把叶节点的方差加到cost function中,最终的cost function以下:

\[ F(S_l) = N_l * \hat{\tau}^2(S_l) - N_l(\frac{Var(S_{l,1})}{p} + \frac{Var(S_{l,0})}{1-p})) \]

文章大概就是这些信息,这个模型当前还没找到很好的工程实现,在Uber的Casualml项目中是正在开发中的Enhancement

其余相关模型详见AB实验的高端玩法系列1-实用HTE论文GitHub收藏

欢迎留言~

相关文章
相关标签/搜索