zoukankan      html  css  js  c++  java
  • AB实验人群定向HTE模型4

    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 文章链接

    背景

    HTE问题可以用以下的notation进行简单的抽象

    • Y是实验影响的核心指标
    • T是treatment,通常是0/1变量,代表样本进入实验组还是对照组,对随机AB实验(T perp X)
    • X是Confounder,可以简单理解为未被实验干预过的用户特征,通常是高维向量
    • DML最终估计的是( heta(x)),也就是实验对不同用户核心指标的不同影响

    [egin{align} Y &= heta(x) T + g(X) + epsilon & ext{where }E(epsilon |T,X) = 0 \ T &= f(X) + eta & ext{where } E(eta|X) = 0 \ end{align} ]

    最直接的方法就是用X和T一起对Y建模,直接估计( heta(x))。但这样估计出的( heta(x))往往是有偏的,偏差部分来自于对样本的过拟合,部分来自于(hat{g(X)})估计的偏差,假定( heta_0)是参数的真实值,则偏差如下

    [sqrt{n}(hat{ heta}- heta_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得到残差( ilde{Y}, ilde{T})

    [egin{align} ilde{Y} &= Y - l(x) & ext{ where } l(x) = E(Y|x)\ ilde{T} &= T - m(x) & ext{ where } m(x) = E(T|x)\ end{align} ]

    步骤二. 对( ilde{Y}, ilde{T})用任意ML模型拟合(hat{ heta})

    ( heta(X))的拟合可以是参数模型也可以是非参数模型,参数模型可以直接拟合。而非参数模型因为只接受输入和输出所以需要再做如下变换,模型Target变为(frac{ ilde{Y}}{ ilde{T}}), 样本权重为( ilde{T}^2)

    [egin{align} & ilde{Y} = heta(x) ilde{T} + epsilon \ & argmin E[( ilde{Y} - heta(x) cdot ilde{T} )^2]\ &E[( ilde{Y} - heta(x) cdot ilde{T} )^2] = E( ilde{T}^2(frac{ ilde{Y}}{ ilde{T}} - heta(x))^2) end{align} ]

    步骤三. Cross-fitting

    DML保证估计无偏很重要的一步就是Cross-fitting,用来降低overfitting带来的估计偏差。先把总样本分成两份:样本1,样本2。先用样本1估计残差,样本2估计(hat{ heta}^1),再用样本2估计残差,样本1估计$ hat{ heta}^2$,取平均得到最终的估计。当然也可以进一步使用K-Fold来增加估计的稳健性。

    [egin{align} sample_1, sample_2 &= ext{sample_split} \ heta &= hat{ heta}^1 + hat{ heta}^2 \ end{align} ]

    Jonas在他的博客里比较了不使用DML,使用DML但是不用Cross-fitting,以及使用Cross-fitting的估计效果如下

    从propensity的角度来理解

    最近想到一个比下面GMM更加直观理解DML的角度跟大家分享下。为了更好理解,我们做一些简化假设。

    假设样本在高维特征空间上依旧完全随机,那预测T的第一步会得到全部是0.5的概率预测, 实验组的( ilde{Y})是0.5, 对照组是-0.5。

    预测Y的第一步(假设用GBDT拟合),每个叶节点(k)会得到(0.5*(mu_{cmp,k} + mu_{exp,k}))的预测值。假设每个叶节点不再存在HTE,实验对叶节点内所有实验组样本都有相同效果,实验组样本的残差为(0.5*(mu_{exp,k} - mu_{cmp,k} )),而对照组为(0.5 *(mu_{cmp,k} - mu_{exp,k})),它们互为相反数。这样在用( ilde{T})来拟合( ilde{Y})的时候负负为正,得到的就会是(mu_{exp,k} - mu_{cmp,k})

    对随机AB实验T的预测往往会在0.5附近,但一般不会是0.5因为实验的样本终究是有限的,被高维特征一切割多少会有不均匀的情况。假定某个叶节点T的预测是0.6,实验组( ilde{T})=0.4,对照组( ilde{T})=-0.6。这也意味着在这个叶节点实验组样本占40%对照组占60%。保持节点无HTE的假设,Y的预测变为$0.6mu_{exp,k} +0.4 mu_{cmp,k} $,实验组样本的残差为(0.4*(mu_{exp,k} - mu_{cmp,k} )),而对照组为(0.6 *(mu_{cmp,k} - mu_{exp,k})),这样公式7里面的(frac{ ilde{Y}}{ ilde{T}})是不是就make sense了。至于sample weight的调整也和propensity的逻辑一致,越接近0.5意味这估计的HTE越近似真实HTE,越偏离0.5意味着样本估计偏差越高因此权重越低。

    从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=eta X)可以用最小二乘法来求解(argmin (Y-eta X)^2),但同样可以用矩估计来求解(E(X(Y-eta X))=0)。实则最小二乘只是GMM的一个特例。

    那针对HTE问题,我们应该选择什么样的矩条件来估计( heta)呢?
    直接估计( heta)的矩条件如下
    (E(T(Y-T heta_0-hat{g_0(x)}))=0)
    DML基于残差估计的矩条件如下
    (E([(Y-E(Y|X))-(T-E(T|X)) heta_0](T-E(T|X)))=0)

    作者指出DML的矩条件服从Neyman orthogonality条件,因此即便(g(x))估计有偏,依旧可以得到无偏的( heta)的估计。


    参考材料&开源代码

    1. 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.
    2. V. Chernozhukov, D. Nekipelov, V. Semenova, and V. Syrgkanis. Two-Stage Estimation with a High-Dimensional Second Stage. 2018.
    3. X. Nie and S. Wager. Quasi-Oracle Estimation of Heterogeneous Treatment Effects. arXiv preprint arXiv:1712.04912, 2017.
    4. Microsoft 因果推理开源代码 EconML
    5. Double Machine Learning 开源代码 MLInference
    6. https://www.linkedin.com/pulse/double-machine-learning-approximately-unbiased-jonas-vetterle/
    7. https://www.zhihu.com/question/41312883
  • 相关阅读:
    JS高级程序设计 第三章笔记
    JS高级程序设计第二章
    JS高级程序设计 第一章读书笔记
    markdown 尝试
    实验九
    第六章总结
    实验五
    第五章总结
    实验四
    实验三
  • 原文地址:https://www.cnblogs.com/gogoSandy/p/12285168.html
Copyright © 2011-2022 走看看