【小贪】万字长文介绍因果推断和增益模型


❤️❤️❤️之前的《文献阅读》课程整理的报告,有错误的地方请指正❤️❤️❤️
更多内容可以看我的个人网站: 贪钱算法还我头发的个人网站

因果推断和增益模型

1. 绪论

在日常生活和数据分析中可以得到大量相关性的结论,我们通过各种统计模型、机器学习、深度学习模型,通过分析得到种种结论,但是这里面存在一个巨大的疑问就是:“相关性一定等于因果性吗?”下图为缅因州黄油消费量和离婚率的关系图,从图上可以看出这两个变量呈高度相关的关系,但是如果我们从因果的角度来阐释,说黄油消费导致了离婚,或者离婚导致了黄油出售,显然都非常荒谬。事实上,相关性通常是对称的,因果性通常是不对称的(单向箭头)。相关性不一定说明了因果性,但因果性一般都会在统计层面导致相关性。也即相关性 ≠ \neq =因果性。
在这里插入图片描述w=400

另外一个例子,在智能营销的发放优惠券场景下用户可分为如下图所示四类。建模时主要针对persuadables营销敏感人群,即给这部分人群发券可以增加人群购买欲望从而增加收益。要避免sleeping dogs人群,这类人群发放优惠券会产生发作用,即会降低人群的购买欲望。人群的区分需要明确是否因为发放优惠券才导致了购买行为,这是一个因果推断问题。预测发放优惠券带来的收益是一个增益模型。由此引出两个概念:

  • 因果推断(causal inference):即研究如何更加科学地识别变量间的因果关系,估算同一个体在干预和不干预(互斥情况下)不同输出的差异。
  • 增益模型(uplift model):需要预测某种干预增量(uplift)的模型,即干预动作(treatment)对用户响应行为(outcome)产生的效果。为了克服估算同一个体同时受到干预和不干预这一反事实的现状,增益模型强依赖于随机实验(将用户随机分配到实验组&对照组)的结果数据。

在这里插入图片描述

2. 因果推断基础

以发放优惠券问题为例,建立以下因果推断模型:

  • 输入变量 c o n t e x t   x context \space x context x:包含用户的多维度特征信息
  • 权益干预 t r e a t m e n t   t treatment \space t treatment t:一般考虑二值干预 t i ∈ 0 , 1 t_i\in 0,1 ti0,1,如是否给用户发优惠券,发优惠券定义为treatment组,不发优惠券定义为control组。
  • 输出变量 y y y:包括潜在结果protential outcome y y y和观察结果oberved outcome y o b s y_{obs} yobs
    • 潜在结果 y 1 ( x ) , y 0 ( x ) y_1(x), y_0(x) y1(x),y0(x)分别为用户有没有给treatment
    • 用户受到干预时, y o b s = y 1 ( x ) y_{obs}=y_{1}(x) yobs=y1(x),用户未受到干预时, y o b s = y 0 ( x ) y_{obs}=y_0(x) yobs=y0(x)

以上三个变量之间的关系如下图所示。
在这里插入图片描述

  • 对于单个用户,希望得到individual treatment effect(ite), i t e = y 1 ( x ) − y 0 ( x ) ite=y_1(x)-y_0(x) ite=y1(x)y0(x)
  • 对于整体的效果,希望得到the average treatment effect(ate), a t e = e ( y 1 ( x ) − y 0 ( x ) ) ate=e(y_1(x)-y_0(x)) ate=e(y1(x)y0(x))

ite和ate即因果效应 τ \tau τ(增益),增益模型目标是最大化增益。一般取所有用户的因果效应期望的估计值来衡量整个用户群的效果,称为条件平均因果效应(conditional average treatment effect, cate)。实际中对用户 i i i不可能同时观察到使用策略(treatment)和未使用策略(control)的输出结果,用下式表示用户可以观察到的输出结果,如果使用干预, w i w_i wi为1否则为0:
y i o b s = w i y i ( 1 ) + ( 1 − w i ) y i ( 0 ) y_i^{obs}=w_iy_i(1)+(1-w_i)y_i(0) yiobs=wiyi(1)+(1wi)yi(0)

当假设CIA(conditional independence assumption)成立时,即给定特征下用户被随机分配到实验组/对照组(与用户的干预敏感度无关)。可以通过计算下式来估算每个个体的增益:
τ i = E [ y i o b s ∣ x i = x , w i = 1 ] − E [ y i o b s ∣ x i = x , w i = 0 ] \tau_i=E[y_i^{obs}|x_i=x, w_i=1]-E[y_i^{obs}|x_i=x, w_i=0] τi=E[yiobsxi=x,wi=1]E[yiobsxi=x,wi=0]

由于增益无法观测,造成不能得到监督学习的label,如果得到了监督学习的label,就可以对数据集进行训练集测试集的划分,定义目标函数和损失函数进行神经网络训练,达到优化目标的目的。所以需要使用增益模型对评估增益的方法描述。通过ab实验可以获得使用干预策略和不使用干预策略两组人群,如果两组人群的特征分布一致,可以通过模拟两组人群的 τ ( x i ) \tau(x_i) τ(xi)得到个体用户的 τ ( x i ) \tau(x_i) τ(xi)。因此增益模型依赖ab实验的数据。ab实验也可以称为随机化实验(randomized controlled trials),在ab实验中,数据的treatment和control组理论上同质,即除treatment外其余特征相同。这就导致ab实验往往耗费的成本较高,是最“贵”的因果推断方式,有时候无法控制“treatment”,只能拨一小波人进行实验,需要通过子人群(obs数据)的增益效果来推断个体(rct数据)的增益效果。

基础的增益模型主要有以下三种:

  1. Meta Learning
  2. Tree-based Method(增量直接建模)
  3. Representation Learning

3. 主要增益模型

3.1 Meta Learning

这个方向使用基础的机器学习方法去首先估计条件平均输出 E [ y ∣ x = x ] ( c a t e ) E[y|x = x](cate) E[yx=x](cate),然后基于不同的结果获得cate estimator ,以下介绍几种经典的meta learning:

3.1.1 S-Learner(One Model)

通过现有模型(LR,GBDT,NN等)对treatment / control的数据进行训练,在预测的时候分别对该用户被干预和不被干预时的p进行预测计算,相减后便是增益。其计算步骤如下:

  1. ATE:
  • step1: 模型条件期望 μ ( t , w ) = E ( y ∣ t , w ) \mu(t, w)=E(y|t,w) μ(t,w)=E(yt,w)
  • step2: 每个样本的平均增益 τ ^ = 1 n ∑ i ( μ ^ ( 1 , w i ) − μ ^ ( 0 , w i ) ) \hat \tau =\frac{1}{n}\sum_i(\hat \mu(1, w_i)-\hat \mu(0, w_i)) τ^=n1i(μ^(1,wi)μ^(0,wi))
  1. CATE
    • step1: μ ( t , w , x ) = E ( y ∣ t = t , w = w , x = x ) \mu(t, w, x)=E(y|t=t,w=w,x=x) μ(t,w,x)=E(yt=t,w=w,x=x)
    • step2: 每个样本的平均增益 τ ^ = 1 n ∑ i ( μ ^ ( 1 , w i , x ) − μ ^ ( 0 , w i , x ) ) \hat \tau =\frac{1}{n}\sum_i(\hat \mu(1, w_i, x)-\hat \mu(0, w_i, x)) τ^=n1i(μ^(1,wi,x)μ^(0,wi,x))
  • 优点:S-learner简单直观、直接使用既有预测算法;预测仅依赖一个模型,避免了多模型的误差累积;更多的数据和特征工程对预测准确率有利。
  • 缺点:该方法不直接建模uplift;且需要额外进行特征工程工作(由于模型拟合的是y,所以若t直接作为一个特征放进去,可能由于对y的预测能力不足而未充分利用)。
  • 应用:在因果推断未受关注之前,诸如优惠券发放的问题常用该方法,直接建模“对什么人,发放什么面额券,是否会下单”,预测阶段则对user和coupon交叉组合后进行预测,得到(user,coupon)组合的下单率,然后再依据预算、roi或其他约束进行mckp求解。
3.1.2 T-Learner(Two Model)

又称差分响应模型,通常作为baseline模型,模型分别在干预组和非干预组训练,即对 μ 1 ( w ) = E [ y i ( 1 ) ∣ x i ] \mu_1(w)=E[y_i(1)|x_i] μ1(w)=E[yi(1)xi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值