Hetergeneous Treatment Effect 旨在量化实验对不同人群的差异影响, 进而通过人群定向 / 数值策略的方式进行差异化实验, 或者对实验进行调整. Double Machine Learning 把 Treatment 作为特征, 通过估计特征对目标的影响来计算实验的差异效果.
Machine Learning 擅长给出精准的预测, 而经济学更注重特征对目标影响的无偏估计. DML 把经济学的方法和机器学习相结合, 在经济学框架下用任意的 ML 模型给出特征对目标影响的无偏估计
HTE 其他方法流派详见因果推理的春天 - 实用 HTE 论文 GitHub 收藏
核心论文
V. Chernozhukov, D. Chetverikov, M. Demirer, E. Duflo, C. Hansen, and a. W. Newey. Double Machine Learning for Treatment and Causal Parameters. ArXiv e-prints 文章链接 https://arxiv.org/abs/1608.00060
背景
HTE 问题可以用以下的 notation 进行简单的抽象
Y 是实验影响的核心指标
T 是 treatment, 通常是 0/1 变量, 代表样本进入实验组还是对照组, 对随机 AB 实验 \(T \perp X\)
X 是 Confounder, 可以简单理解为未被实验干预过的用户特征, 通常是高维向量
DML 最终估计的是 \(\theta(x)\), 也就是实验对不同用户核心指标的不同影响
\[ \begin{align} Y &= \theta(x) T + g(X) + \epsilon &\text{where }E(\epsilon |T,X) = 0 \\ T &= f(X) + \eta &\text{where } E(\eta|X) = 0 \\ \end{align} \]
最直接的方法就是用 X 和 T 一起对 Y 建模, 直接估计 \(\theta(x)\). 但这样估计出的 \(\theta(x)\) 往往是有偏的, 偏差部分来自于对样本的过拟合, 部分来自于 \(\hat{g(X)}\) 估计的偏差, 假定 \(\theta_0\) 是参数的真实值, 则偏差如下
\[ \sqrt{n}(\hat{\theta}-\theta_0) = (\frac{1}{n}\sum{T_i^2})^{-1}\frac{1}{\sqrt{n}}\sum{T_iU_i} +(\frac{1}{n}\sum{T_i^2})^{-1}(\frac{1}{\sqrt{n}}\sum{T_i(g(x_i) -\hat{g(x_i)})}) \]
DML 模型
DML 模型分为以下三个步骤
步骤一. 用任意 ML 模型拟合 Y 和 T 得到残差 \(\tilde{Y},\tilde{T}\)
\[ \begin{align} \tilde{Y} &= Y - l(x) &\text{ where } l(x) = E(Y|x)\\ \tilde{T} &= T - m(x) &\text{ where } m(x) = E(T|x)\\ \end{align} \]
步骤二. 对 \(\tilde{Y},\tilde{T}\) 用任意 ML 模型拟合 \(\hat{\theta}\)
\(\theta(X)\) 的拟合可以是参数模型也可以是非参数模型, 参数模型可以直接拟合. 而非参数模型因为只接受输入和输出所以需要再做如下变换, 模型 Target 变为 \(\frac{\tilde{Y}}{\tilde{T}}\), 样本权重为 \(\tilde{T}^2\)
\[ \begin{align} & \tilde{Y} = \theta(x)\tilde{T} + \epsilon \\ & argmin E[(\tilde{Y} - \theta(x) \cdot \tilde{T} )^2]\\ &E[(\tilde{Y} - \theta(x) \cdot \tilde{T} )^2] = E(\tilde{T}^2(\frac{\tilde{Y}}{\tilde{T}} - \theta(x))^2) \end{align} \]
步骤三. Cross-fitting
DML 保证估计无偏很重要的一步就是 Cross-fitting, 用来降低 overfitting 带来的估计偏差. 先把总样本分成两份: 样本 1, 样本 2. 先用样本 1 估计残差, 样本 2 估计 \(\hat{\theta}^1\), 再用样本 2 估计残差, 样本 1 估计 $ \hat{\theta}^2$, 取平均得到最终的估计. 当然也可以进一步使用 K-Fold 来增加估计的稳健性.
\[ \begin{align} sample_1, sample_2 &= \text{sample_split} \\ \theta &= \hat{\theta}^1 + \hat{\theta}^2 \\ \end{align} \]
Jonas 在他的博客里比较了不使用 DML, 使用 DML 但是不用 Cross-fitting, 以及使用 Cross-fitting 的估计效果如下
从 GMM 的角度来理解
Generalized Method of Moments 广义矩估计 (GMM) 在经济学领域用的更多, 在论文里乍一看到 moment condition 琢磨半天也没想起来, 索性在这里简单的回顾下 GMM 的内容.
啥是矩估计呢? 可以简单理解是用样本的分布特征来估计总计分布, 分布特征由 \(E((x-a)^K)\), 样本的 K 阶矩来抽象, 一阶矩就是均值, 二阶原点矩就是方差. 举几个例子吧~
例如, 总体样本服从 \(N(\mu, \sigma^2)\) 就有两个参数需要估计, 那么就需要两个方程来解两个未知数, 既一阶矩条件 \(\sum{x_i}-\mu=0\) 和二阶矩条件 \(\sum{x_i^2} - \mu^2 - \sigma^2=0\).
再例如 OLS,\(Y=\beta X\) 可以用最小二乘法来求解 \(argmin (Y-\beta X)^2\), 但同样可以用矩估计来求解 \(E(X(Y-\beta X))=0\). 实则最小二乘只是 GMM 的一个特例.
那针对 HTE 问题, 我们应该选择什么样的矩条件来估计 \(\theta\) 呢?
直接估计 \(\theta\) 的矩条件如下
\(E(T(Y-T\theta_0-\hat{g_0(x)}))=0\)
DML 基于残差估计的矩条件如下
\(E([(Y-E(Y|X))-(T-E(T|X))\theta_0](T-E(T|X)))=0\)
作者指出 DML 的矩条件服从 Neyman orthogonality 条件, 因此即便 \(g(x)\) 估计有偏, 依旧可以得到无偏的 \(\theta\) 的估计.
参考材料 & 开源代码
V. Chernozhukov, M. Goldman, V. Semenova, and M. Taddy. Orthogonal Machine Learning for Demand Estimation: High Dimensional Causal Inference in Dynamic Panels. ArXiv e-prints, December 2017.
V. Chernozhukov, D. Nekipelov, V. Semenova, and V. Syrgkanis. Two-Stage Estimation with a High-Dimensional Second Stage. 2018.
Microsoft 因果推理开源代码 https://github.com/microsoft/EconML
Double Machine Learning 开源代码 https://github.com/demirermert/MLInference
https://www.zhihu.com/question/41312883
来源: https://www.cnblogs.com/gogoSandy/p/12285168.html