金雅然因果推断主要技术思想与方法总结

DataFunTalk,将在年01月07日1:00直播预约重磅!业界首个数据智能知识地图发布专家智库:聚集十数位资深专家倾心绘制全景展示:数据采集、加工处理至数据应用全流程视频号《DataFun·5周年系列技术文章》专栏·第04篇作者

金雅然策划

Hoh

导读:因果推断是数据科学的一个重要分支,在互联网和工业界的产品迭代、算法和激励策略的评估中都扮演者重要的角色,结合数据、实验或者统计计量模型来计算新的改变带来的收益,是决策制定的基础。然而,因果推断并不是一件简单的事情。首先,在日常生活中,人们常常把相关和因果混为一谈。相关往往代表着两个变量具有同时增长或者降低的趋势,但是因果意味着我们想要知道对一个变量施加改变的时候会发生什么样的结果,或者说我们期望得到反事实的结果,如果过去做了不一样的动作,未来是否会发生改变?然而难点在于,反事实的数据往往是真实世界中难以观察和收集的。

本文回顾因果推断的两个流派——潜在结果模型RubinCausalModel(RCM;Rubin)和结构因果模型CausalDiagram(Pearl)的主要技术思想和方法,以及近年来的新方法和应用。笔者由于学术背景和计量经济学较为相关,所以引用的方法和论文主要参考了经济学的文献,可能在一些方法的理论和应用上的深度与广度上有所疏漏,请读者谅解。

01

潜在结果模型

RubinCausalModel

我们借助一些数学符号和公式来描述潜在结果模型的主要思想,读者也可以跳过这一部分直接进入具体方法的梳理。我们把每个研究对象或者用户用i来表示,他们可能会受到一定的策略干预:Ti=1代表受到了干预(实验组),Ti=0代表没有受到干预(基准组),对应的我们关心的结果分别是Yi0和Yi1,但是只有一种情况会真实发生,也就是说Yi0和Yi1只能观察到其中一个,另一个未知。这里我们期望得到的因果推断结果是平均处理效应ATE=E[Y1-Y0]。

我们可以通过一定的数学推导来解释估计ATE的困难之处。由于我们只会观察到Yi0和Yi1中的一个,我们能够直接计算的其实是实验组和基准组之间的组间差异E[Yi1

Ti=1]-E[Yi0

Ti=0],这个差值进一步可以拆解等于E[Yi1

Ti=1]-E[Yi0

Ti=1]+E[Yi0

Ti=1]-E[Yi0

Ti=0]。其中E[Yi1

Ti=1]-E[Yi0

Ti=1]是实验组个体上的平均处理效应(ATT),ATT和ATE往往并不相等,这两者的差异代表着我们计算的外在效度(ExternalValidity)。如果样本局限在某个年龄段的用户,那么结果不一定能够推广到全年龄段的用户上,说明我们的分析不一定具备外在效度。上面公式里的第二部分E[Yi0

Ti=1]-E[Yi0

Ti=0]代表了样本的选择性偏差。选择性偏差在实际生活中常常可能不是0,例如如果实验组和基准组不是随机抽样而来,会在一定的特征分布上有差异,那么就可能会造成选择性偏差。因此,我们计算的组间差异其实是只有当消除选择性偏差、具备外在效度,并且基于大量充足的样本的时候,才代表着我们期望得到的平均处理效应。潜在效果模型的思想方法其实就是通过一定的设定和模型达到这样的条件。其思想背后,还有比较严格的数学假设。下面我们按照不同方法,分别回顾其主要思想和近年来的技术发展与应用,受篇幅限制,断点回归方法这里就没有展开做详细介绍了。

1.A/B测试潜在效果模型最常见的方法就是随机实验,或者说是我们在工业界中常用到的A/B测试。我们通过一定的随机性抽样构造实验组和基准组,来观察组间的差异。但是需要指出的是,即便满足了随机性,这里因果推断的有效性还需要满足一个重要的假设——StableUnitTreatmentValueAssumption(SUTVA)。每个个体的潜在结果只和他自己有关,与其他个体是否被实验策略干预无关,同时我们所关心的单个策略干预没有不同形式或强度来导致不同的潜在结果。在现实生活中SUTVA假设违背的场景中有很多,也激发了各种新型A/B测试技术手段的发展,例如针对挤占问题的预算或者策略控制,亦或者是分流设计的改进。我们这里举一些分流相关的例子:在LinkedIn,实验人员采用网络抽样的实验方法来应对社交网络对于传统个体随机试验的挑战。首先将用户分成不同的cluster,每个cluster作为一个个体来随机分流和测算实验指标,通过估计用户的网络效应exposure来修正估计的处理效应(Guietal.)。在Airbnb等平台,买家和卖家之间常常存在着相互影响,也会干扰传统的实验方法。研究者通过双边实验设计和库存的动态模型来构造实验评估指标(Joharietal.2)。需要指出的是,双边实验是个比较崭新的领域,其实验设计可以帮助实验者发现传统单边实验的溢出效应,但是对于实验结果如何做统计推断和修正是比较困难并且不一定有绝对答案的,要更多地结合业务场景来探讨。

图片来自论文Joharietal.(2)

2.工具变量法工具变量是解决线性回归问题内生性的一种方法。接下来我们介绍一下内生性问题和如何通过工具变量解决内生性。内生性的主要问题是如果我们关心X对Y的影响,但是存在无法测量到的变量U,且U会同时影响X和Y。那么X具有内生性,U即上文提到的混淆变量。如果我们能找到一个跟X有关的变量Z,且Z与U不相关。那我们可以通过Z作为工具变量来估计X对Y的因果效应,具体计算方法一般是两阶段最小二乘法。工具变量法在实际使用的时候,要注意避免“弱工具变量”的问题,也就是工具变量Z和关心的变量X相关度很低,这样会造成估计的因果效应有偏差,可以依赖统计检验方法来确认这样的问题是否存在。工具变量法的一个发展是和深度学习模型相结合,例如Hartfordetal.()提出的DeepIV方法。这一研究将传统工具变量的两阶段最小二乘法转化成更灵活的两个深度神经网络的预测任务,放松了传统方法中对于数据生成过程(DGP)的强假设。在实际的应用中,基于互联网大量A/B测试积累的场景,我们可以通过实验的meta-learning和工具变量法来学习指标间的因果关系。例如PeysakhovichEckles()利用Facebook的数据,将实验组信息作为工具变量,在两阶段最小二乘法的基础上结合L0正则化,可以解决传统工具变量法在有限样本上的bias问题,也能克服现实情况中大量实验观察到的效果绝对值比较低(“弱工具变量”)的问题。工具变量的思想除了学习指标间的影响关系外也可以用于解决推荐系统中的偏差问题。在推荐系统中,模型的训练往往依赖用户的历史观看和转评赞的反馈行为,但是这些历史数据往往被展示的位置、曝光的模式等混淆因素所影响,快手和人大的研究者Sietal.(2)利用工具变量的思想提出IV4Rec框架,将搜索的query作为工具变量来分解推荐系统embedding中的因果和非因果关系,和深度学习相结合,在快手数据和公开数据集MIND上都能验证提升推荐模型的效果。图片来自论文Sietal.(2).匹配法匹配(Matching)是被业务广泛使用的一种因果分析方法,主要是为了解决当实验组和控制组由于某种原因(confounder)不可比的时候,通过给实验组的每一个用户匹配和他在某些特征上最相似(CEM粗粒度匹配)或者接受干预概率(propensityscore)最相似(PSM倾向性得分匹配)的控制组用户,重新制造可比的实验组和控制组。匹配是最近似AB/RCT(randomizedcontrolledtrial)随机实验的方法,操作方法比较类似,结果很直观。并且,匹配是一种非参数估计处理效应的方法,不受制于一般的线性参数模型假设。通过匹配之后的样本,也可以搭配双重差分的方法,常用于解决新功能渗透率较低的问题。近年来,匹配法的发展主要是结合机器学习模型将倾向性得分匹配做得更加精准,同时这里的思想也应用到了一些其他因果方法、机器学习模型的纠偏中,相关内容后文讲到的时候会涉及。4.面板数据的系列方法和发展近年来,围绕着面板数据的因果推断有着比较多的新方法来出现。我们先回顾传统的面板数据方法。最常用的是双重差分的方法。最简单的双重差分是控制组间差异,用回归模型的形式来描述yit=α0+α1Treati+α2Postt+αTreati*Postt。这里Treati=1代表个体是否受到干预,Postt=1代表干预后观测的时间周期。通过下表,我们可以发现α2+α是实验组在实验日期前后的差分值,α2是对照组在实验日期前后的差分值。对这两项做差,α即为因果效应的估计,也是上述模型中交互项的系数,并且就是两次差分的结果。

双重差分法依赖比较严格的假设。“平行趋势”是最重要的前提,也就是实验组和基准组再政策干预发生前结果指标的均值随着时间趋势稳定,这预示着除了政策干预本身其他因素影响对于实验组和基准组是相同的。我们可以使用时间趋势图来检验平行假设,一些统计推断包也会提供相应的功能。当平行检验不通过的时候,可以通过在回归中加入控制变量或者时间趋势项来进一步检验。在一些情况下,也可以借助三重差分法来解决。此外在实际实践中,双重差分法有比较多的实现方式。除了上文所述方式之外,也可以采取“双向固定效应模型”的设定Yit=τTreatit+Xitβ+αi+ξt+εit,但也会依赖强假设:不存在随时间变化的混淆因素,并且过去的结果不会影响当期的处理状态,同时也要求政策的处理效应保持不变。关于背后的理论和方法的局限性,以及拓展出的匹配和再加权等新方法,推荐结合斯坦福大学徐轶青教授的课程来进行学习:



转载请注明:http://www.shijichaoguyj.com/wxbzhu/12812.html

网站简介| 发布优势| 服务条款| 隐私保护| 广告合作| 网站地图| 版权申明

当前时间: