这篇是treatment effect估计相关的论文系列第一篇所以会啰嗦一点多给出点背景。
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过程中的过拟合问题。
我们举个例子:科研人员想衡量一种新的降血压药对病人的效果,发现服药的患者有些血压降低但有些血压升高。于是问题可以抽象成我们希望预测降压药会对哪些病人有效?相似的问题经常出现在经济,政治决策,医疗研究以及当下的互联网AB测试中。
Treatment effect之所以比通常的预测问题要更难解决,因为groud-truth在现实中是无法直接观测到的,一个人在同一时刻要么吃药要不么吃药,所以你永远无法知道吃药的人要是没吃药血压会不会也降低,或者没吃药的人要是吃了药血压会不会降低。
既然个体的treatment effect无法估计,只能退而求其次去估计群体的treatment effect- ATE (Average treatment effect),既全部用户中(服药效果- 未服药效果)。 但是当出现个体效果差异时ATE无法反应局部效果(E.g.样本稀释)。这时我们需要估计相似群体的treatment effect-CATE(Conditional average treatment effect)
用数学抽象一下上述问题:
这里寻找相似用户的方式是通过决策树。树相较线性模型的优点毫无疑问是它对特征类型的兼容,尤其考虑到实际情况中会存在大量离散特征如性别,地域等等。
那究竟怎样grow tree来找到局部用户群, 取决于cost function的定义。一般决策/回归树是对Y的拟合例如RMSE,或者cross-entropy等等。这里作者选择最大化\(Y(1)-Y(0)\)作为cost Function, 既我们通过树划分出的局部人群可以实现局部实验效果最大化(正向或负向)。 cost function 如下:
熟悉决策树的朋友也就知道后续split criterion就是去寻找最大化CATE增长的特征和阈值。
决策树最大的问题就是过拟合,因为每一次split都一定可以带来Information Gain。这里就涉及到ML里最经典的Bias-variance trade off。树划分的节点越小,对样本的估计偏差(Bias)越小但方差(Variance)越大。
传统决策树一般通过几个方法来解决过拟合的问题:
作者在文章中给出另外两种解决过拟合的方法:
Honest approach是把训练样本分成train和est两部分,用train来训练模型用est来给出每个叶节点的估计 Variance Penaly则是直接把叶节点的方差加到cost function中,最终的cost function如下:
文章大概就是这些信息,这个模型当前还没找到很好的工程实现,在Uber的Casualml项目中是正在开发中的Enhancement。