因果推断–uplift model 评估

  • 2021 年 1 月 27 日
  • AI

很多刚接触因果推断的萌新(比如我),在资料有限情况下,对这方面相关的评估一头雾水,本文针对萌新整理一些资料,帮助大家了解因果推断的核心和指标。

虽然主要讲评估,但是还是简单介绍一些背景,故事性还是要有(故事就不一定完全正确),为此还读了一些哲学。本文遵循以下逻辑诉说,不感兴趣可以直接跳过。(部分资料如有侵权请告知)

  1. 因果起因及其发展
  2. 因果推断简介
  3. 常用模型
  4. 评估分析

开篇之前需要一些问题来说明,为什么需要研究因果,包括我们如果能得到因果可能可以回答一些你感兴趣的问题

生活相关

  1. 努力与成功的关系、如何进行投资理财、德行与幸福的关系、人际交友的原则;
  2. 爱一个人,是否是让对方爱的原因?(爱情动力学

ML相关(工作相关)

机器学习许多开放性难题本质与因果相关

  1. 模型可解释性 (判断模型对因果的判断与哪些因素相关)
  2. 迁移学习:不同任务的迁移能力提升。如何在无监督下学到领域无关的一致性表征
  3. 模型歧视问题:歧视少数族或女性。模型可以自己回答反事实的问题,判断决策公平性
  4. 学习速度提升与样本需求减少:类似主动学习(人类是优秀的小样本学习器,靠观察和想象);目前的机器学习模式类似达尔文进化论的发展历程(长颈鹿花了几百万年进化出了这么长的脖子),是一个非常耗时,低效的学习过程。
  5. 强AI。传统机器学习模式,是无法发展出人类的超进化论(发展出奢侈品,网红店,物联网等等)这种智能产物。
  6. ……

=============== 废话篇 (本文废话较长,随时跳过) =============

  • 因果研究发展

人类在探索整个宇宙和动物行为的过程,其思维的变迁经历了漫长的过程,且因果观念的逻辑分析自科学诞生之日,就没中断过。

最早风雨交加,电闪雷鸣,山洪猛兽人类归其于神话,巫术盛行,其中“果必同因“的理念,人类开始认为万物并非虚幻无常,一定事出有因;进而古希腊人发明了哲学和科学,以理性精神探索世界,认为世界是由一些基础物质组成,开始发问“宇宙的起源”;后来亚里士多德归因这些为四因,有质料因(物质)、形式因(概念/信息)、动力因(能量)和目的因(认为一切事物都有“原因“作为解释),此时的因果观念还是比较主观(形而上学创始人),偏事物的解释(而非真正的原因)。

直到莱布尼兹的宇宙论提出“充分理由定律“,首先提出问题“为什么是有而非无“,来辩论神的存在,开始形成哲学和逻辑学的充分因雏形;

与此同事,牛顿创立了经典力学,一时决定论在人们精神道德和政治领域大行其道,拉普拉斯提出,如果有位妖怪能知道某一时刻所有自然运动的力和位置,那么就可以通晓过去,预知未来,此为拉普拉斯妖,它存在的前提就是万事万物都满足因果关系

同时期的休谟给出了因果关系定义,真正的开始考虑因果关系的问题。认为两个事件发生的时间上的先行关系和空间上的接近关系,且说“假如没有前者,后者就不存在”,首次提出了因果中的必要因(若非因[but for])为后来因果推理提供强大工具(反事实推理)。但是他对因果存在的真实性是持有怀疑态度,甚至质疑经典力学体系,对抗整个科学界。他的核心思想是世界所有事物是由经验观念保持的某种秩序的观念上的联想(世界一切建立在感官之上,信念由内在和外在的印象中产生,包括物理(唯理论者和经验论者)——形而上学【一切科学只是“实然”(本来是),并非“应然“(应该是)】);之后康德直接断言了因果关系是先验存在的,而非感觉论。

伯努利提出“不充足理由原则”(类似最大墒原则),并在此之上提出“极限定理,揭示了概率与频率之间具有的密切因果关系。自此非确定性的事实研究展开;但贝叶斯提出的逆概率定理,认为概率现象也是主观信念程度的变化和更新,让概率也失去了客观性;21世纪,当经典物理大厦建立起来时,“两朵乌云”(莫雷实验和黑体辐射)创立的量子论和相对论,极大改变了人们对确定性理论的衷心,其他学科更是越来越多的不确定性现实出现,统计学创始人高尔顿和学生皮尔逊用相关关系取代了因果关系。至此,基于统计的科学研究壮大发展,因果效应基于统计计量的研究开启。

计量经济学家格兰杰基于概率形式给出因果检测公式,论证事件发生是否存在先后的显著性。但是只能判断发生事件在时间上的先后是否有统计显著性,并不能判断因果,比如A股指数暴跌总是慢零点几秒于美股指数,那极有可能是网速问题,真正导致暴跌的原因是某个事件。2012年science一偏文章提出收敛交叉映射算法改进格兰杰因果方法(针对之前提到休谟理论,提出了新休谟式的框架,【如果x是y的因,那么x出现是y出现的充分条件】),找到最可能的因果作用(x推出y程度越高,因果关系越强),且能辨别因果方向(互为因果、单向因果,共同原因),对存在伪相关性(长期相关但突然不相关的现象)的复杂系统中的因果发现有极大的推动。

目前,大力推广因果革命之一的2011图灵奖得主Judea Pearl,研究中发现统计相关性并不能取代因果性(Yule-Simpson Paradox【x与y边缘正相关,在某个变量z的每一水平上负相关】),无法处理具有共同混杂因子的变量关系统计数据常因果颠倒(无方向性),造就伪相关,对数据要求也很高(iid),泛化性,鲁棒性都很差。他改进的贝叶斯网络和SCM在统计因果推断领域作用巨大,且认为强人工智能必须要进行因果革命。且Schölkopf和Bengio在研究过程中也发现了因果是必然之路。

以上是西方哲学科学对因果的大致研究发展,这里再简单以古东方哲学佛教的因果论。认为因果法则是天然存在的;业为因,报为果;因和果辗转相生,且通于过去、现在和未来。其中蕴含三个观点。1. 客观存在的 2. 因果不是静态的,在事物的生命周期会生长出新因 3. 并且因果造作是有延迟效应的,既不是不报,时候未到。世界由三大物质组成“无常(anicc)”、“无我” 和 “苦“,其中因果为一切基础,所谓因既是果,果既是因(世间万物,开始又停止,存在又消失,如何解脱,获得无上喜乐?

中国的易经也系统地反映我国古代的因果决定论的著述,“易”既指日月周而复始,有迹可循,也指阴阳相生,催生万物,变化无穷。它通过运用“爻”“卦”“太极”来表征世间万物的起源以及它们之间的因果演变关系,并且进行了系统的阐述。主要思想就是万物皆有因以及事物有不同层次的原因的朴素的因果思想。

因果科学

因果科学是研究因果关系或回答因果问题的学科。现代因果定义为在保证其他因素不变,改变X引起Y的改变,则X为Y的一个原因。

简单从历史上看,因果研究一般分为3类

  • 物理学定义因果(最清晰定义的因果)
    • 物理系统演化动力学,基于时间讨论因果
  • 哲学定义因果
    • Type Causality:某原因导致什么结果,由因推果,干预主义思想(因果效应定义),用来帮助预测
    • Actual Causality:关注事物发生的原因,由果推因,与反事实思维相关。【反事实:主要是研究“若非(but for)”,“若非“过去A事件发生,结果事件B可能不发生,常用于因果检测。“若非”对因果检测也存在缺陷,你自己品】

统计中因果推断

从现实数据中提取出某些变量间的因果关系,主要就是Judea Pearl的因果信息革命。其中也囊括了目前最火热的机器学习方法。他提出的因果关系之梯,根据因果问题的可答性,对比了目前的机器学习(深度学习)和因果推断区别。

J. Pearl

这里他把任务分为递进的3类,association(what is)-> intervention(what if)-> counterfactuals(retrospection)。传统机器学习(关联层)是在问你what is?,即给定属性,问你是什么的概率; 而第二层(干预层)是在问what if?即,如果我对你做了什么,你会怎么样?终极(反事实层)的当然是回答哲学反事实问题,如果我当时那样做了,会怎么样?(唱:”想回到过去,试着让故事继续“)这里层层递进,高层可以回答低层的问题,反之则不行,因为不具备充足的信息。

再说明一些,关联和干预区别就是seeing和doing的区别,pearl发明了do算子,既p(y|x) != p(y|do(x))反事实层是回答“若非“的问题,要求将现实世界与未发生某行为的反事实世界进行比较(假如当时我没那么做,导致这样的结果概率是什么?)。不过话说回来,反事实这件事感觉意义不大,只有toy model可以玩玩(没有贬低SCM意思!),时间作为一个物理要素,且与熵方向一致(不可逆),加上人意识和行为的量子化(突然,不连续,不确定(会在某时刻塌缩),非独立(纠缠),非线性,非理性(与经典经济学相悖),不稳定)。

就是想说一句废话:假如再给你一次机会,你依然过不好这一生!

因果效应估计框架(观测数据下)

  • D.B Rubin的Rubin Causal Model (RCM)
    • 基于Potential Outcome Framework,更加简单直观,统计和社科用的多。它设想与观测相悖情况,是一种反事实因果,被称为Experimental causality(但其一般回答干预层的问题)。因果分析步骤主要有 1. 定义问题构建粗粒化因果图 2. Do-Calculus(干预)基于概率计算效应
  • 基于Judea Pearl的结构因果模型(SCM)
    • Pearl提出小图灵测试是实现真正智能的必要条件(机器如何迅速访问必要信息、正确回答问题,输出因果知识)。并提出因果推理引擎,以假设(图模型)、数据和Query输入,输出Estimand(基于do-calculus判断query是否可识别)、Estimate(概率估计)和Fit Indices(评估)。
    • 其中do-calculus是判断因果问题是否可解的前提,原理就是贝叶斯网络中D-seperation(图分离与概率独立等价条件,参考PRML)
    • 一般回答反事实问题需要SCM模型,由图模型(表示因果知识)、反事实和干预逻辑(形式化问题)和结构方程(链接因果知识【图模型】和因果问题【反事实和干预逻辑】的语义)组成。一般步骤为 1. abduction(基于现有事实分布【先验】p(u|e)更新图概率p(u)) 2. action(基于结构方程更新x) 3. prediction(预测反事实)

统计估计的主要困难是数据缺失,如何去除数据产生的偏差(Debias)是核心主题。Pearl提出解决混杂偏差、选择偏差和迁移学习方法(数据本身特点导致)

反事实基本定律 Y_x(u)=Y_{M_x}(u)SCM和RCM联系起来,左边是反事实,M_x是干预后的模型。SCM中使用函数关系描述因果关系,避免了条件概率表示因果关系时认知论上的困难。

突然发现说了这么多废话,还没开始本文的核心。

============ 以上废话可以直接跳过 ============

因果推断在互联网界应用主要是基于Uplift model来预测额外收益提升ROI。主要应用营销类业务,举个例子比如商家决定给用户发优惠券促进销售。

基于这个问题很自然可以把是否给方案和是否买单组合为4类。即给券买单、不给券买单、给券不买单(sleeping dog)、不给券不买单。

来源 //tech.wayfair.com/data-science/2018/10/pylift-a-fast-Python-package-for-uplift-modeling/

所以,我们营销时更多的是想给那些发券买单的且不发券不买单的人来发券,才能最大化实现我们的营销目标。所以这里的应用目标是找出这部分人,降低成本/提高ROI。

基于业务的目标我们可以发现,这里从哲学角度来看主要是一个type Causality类型的干预主义的预测问题,而非是一个反事实推理问题。所以从分析框架上,我们很自然选择的是rubin的RCM在干预层面的分析工具,所以uplift model是一个干预模型,且为RCM框架。

  • uplift简介

uplift modelling目标是精确学习给定一个干预(发券)后,对结果(是否购买概率)增量。即它要建模出增量效应(发券对比不发券对结果的影响)。直白一点,用经济学语言就是,学习出边际效用,且好的模型能最大化边际效用

uplift定义为: u(x)=P(O=1|T;x) - P(O=0| \bar{T};x) ,T为是否发券,O=1为买单,x为属性

干预问题和ML的相关问题最直接的区别就是,ML监督模型都是由label的,而因果干预问题是缺失label的(对于每一个人他只有发券或者不发券的结果【另一个是反事实的】),但是我们建模目标是干预(do操作),而非简单的相关(转化率)。我们希望模型能找到最多的可以被干预转化(发券购买)的用户(我们希望看到用户行为的变化)。这就类似强化学习RL中最大化reward,uplift model要最大化uplift(找到最有可能受到券激励消费的用户),RL中核心操作是决策action获得的额外reward。这里action对应do算子,reward对应uplift,所以uplift model和RL天然如出一辙。RL中学习过程通过E&E(explore & exploitation)来探索利用action,那uplift model最好也需要EE,即随机试验,因为互联网产品都可以做ABtest,do可以作为ABtest分组,进而进行统计计算。(传统医学因为随机试验可能存在伦理问题,比如分析吸烟是否导致肺癌,很难去随机强迫人吸烟,导致难度增加)

举个例子传统的转化率模型P(y=1|x),是没有考虑我们这个发券(do)行为的,与目标有出入。

最后简单说一下我们计算框架RCM。u(x)定义为一个人的uplift,实际上也说过,由于每个个体要么给他发券,要么不给他发券的反事实性存在,所以个体的因果作用是不可识别的(同一观测是否得到唯一结果)。对于个体而言,uplift是确定的!我们通常识别总体(子群体)的因果作用,这里随机性体现在个体i上,一般用平均因果作用ACE(Average Causal Effect)表达。 ACE(Z \rightarrow Y)=E(Y_i(1) - Y_i(0)) = E(Y_i(1)|Z_i=1) - E(Y_i|Z_i=0)  = E(Y_i|Z_i=1) - E(Y_i|Z_i=0)

可以看到最后一个等式我们就可以利用数据进行统计估计,第二个等号核心假设为 Z\bot(Y(1), Y(0)) ,所以随机化实验对于ACE计算起着至关重要的地位

从子人群(类似根据特征X聚类)角度分析ACE,接受发券可能与个人属性X相关,破坏上面假设,一般使用CIA假设(conditional independent assumption): Z\bot(Y(1),Y(0))|X ,简单说就是在X每个取值下,希望发券与不发券随机一点。至此就可以设计ABtest实验了。

uplift modelling 常规方法

  • tree-based:和机器学习中的树基本一样(分裂规则、停止规则、剪枝),核心为分裂规则,根据每个叶子节点的uplift,计算分裂前后的信息差异。常用比如基于分布差异(KL、Euclidean等);或者结合bagging、boosting技术等
  • regression-based
    • two-model:实验对照组分别一个模型,之后做差。可能实验对照各自学的好,但是缺失了我们要的uplift增益效应
    • one-model:把T(是否发券)作为特征加入(其他模型T不作为特征),最终输出 u(x) = f(x, t=1)-f(x,t=0)
  • 聚类:从目标上我们想圈一部分uplift高的人,且无label指导,从这个角度可能可以借鉴思路

============ (以上可跳过)==========

uplift modelling 评估

到了本文的核心,介绍评估方法。介绍前再回顾一下uplift model特点,没有监督学习的label,所以不能使用传统评估指标。因为我们的目标是圈人,所以根据业务目标,可以按照预估uplift降序排,按照直方图思路选择一些quantile分组(树模型直接对叶子进行计算排序)。因为我们之前提到RCM是估计”总体“ uplift再根据每个quantile统计出真实的uplift,可以得到如下图。

the uplift by deciles graph(根据预估uplift排序)

Note:RCM的experimental causal核心是,假想每一个treat组的人都有一个counterpart在control组,这一点在uplift model是被model默认考虑进的,一般没人去过多讨论这点。实际上在因果推断中,对照组和实验组的matching strategy也是一个研究方向,比如kernel matching、propensity score matching(逆概率加权)、 Mahalanobis distance matching等,可以作为优化点。

回到评估问题。传统ML模型需要准确,而uplift model不但需要准确,还要能找出最大化效应的人群。(举个例子,比如模型把所有人uplift预估为整体平均uplift,误差为0,但是模型不知该选谁发券,就没有意义了)。重点关注哪些指标需要根据不同业务具体分析。Radcliffe提出了五点可以作为评估uplift model的指标,大致分为准确性指标效应指标(模型能否更好把人群分类,ROI指标)

  1. Monotonicity (真实效应高的排在前面,类似皮尔逊相关系数。准确性指标)
  2. Prediction error (真实与预测uplift误差。准确性指标)
  3. Spread (效应指标)
  4. Maximum cumulative uplift(累计能获得多少ROI,效应指标)
  5. Impact at cut-off(效应指标)

Note: 准确性和高效应不像ML中偏差和方差,是不矛盾的。但是基于统计的模型,高效应的更容易被异常值影响(均值回归现象),一般任务更倾向于效应指标,毕竟提升ROI才是业务!还有一些业务是目标发现negative effect的(发券更不买的)。

两个模型准确性一样,效应不一样,你会选哪个呢?

前三个指标根据the uplift by deciles graph比较容易计算,后两个指标则需要uplift累计直方图,也就是常说的Qini Curve。为了更好解释Qini Curve,我们先看看gains chart图。其作图规则如下,

  1. 按照模型对全体预估值降序排列(我们圈人优先选择值高的)
  2. 作图:购买的人数 vs. 圈的人数 (主意这里是cumulative)
gains chart

在不考虑negative effect情况下,完美的gains chart应该是一条直线到头然后打平对吧,说明模型把能转化的都排在了前面了。值得一提的是,随机排序应是按照固定比例随机选到转化选手,所以应该是一条从原点连接到最后的直线

gains chart

根据gains chart,可以定义Gini coefficient为蓝绿间面积(模型提升) / 蓝红面积(理想最大提升),类似auc计算。

基于gains chart,得到Qini Curve只需要把y轴的累计购买人数(cumulative number of purchases)换成增加购买的人数 (incremental number of purchases),此时我们考虑子人群(Segment),且默认是按照uplift降序排列过。根据每个人群实验对照组购买的累计增量,与圈人数(target number)作图。

Qini Curve 为 U_ka vs. N_k^t

同样方法可以定义Qini Coefficient,且不考虑negative effect最有图与gains chart类似,当考虑negative effect时,优秀的模型会把他们的uplift 预测为负数(因为本身是负效应),如下所示

Qini Curve with negative

简单分析一下negative effect。这个是说,本身用户会购买,但是我发券反而他不买了的情况。所以negative effect的量最多就是control组的购买人数,他们会由treat组的购买人数来弥补(如果他们是negative people的话)。

Note:制作Qini Curve时,因为我们base是依据实验组的target人数,所以在计算incremental时,如果对照和实验组的累计target人数不一样,需要等比例放缩到实验组人数上U_k^a=R_k^t-N_k^tR_k^c/N_k^c

显而易见的是,Qini coefficient是一种rank based的指标,衡量模型是否把人排的比较好,不考虑预估uplift的准确性,在一般的业务中已经够用了。但是像互联网这种流量够大情景下,我们更希望能离线去预测一下uplift真正数量(因为可能涉及预算控制),这时候准确性就很重要了。

Note:从业务角度,我们可以使用ROI来评估模型。

那如何设计一种即考虑排序能力又考虑准确性的指标呢?指标至少应包含如下信息

  • 整体平均uplift可以用来区分不同人群的差异(有点聚类思想)
  • 预测uplift和真实uplift,可以衡量准确性

很自然就可以想到得是统计里面的二阶中心矩。有人提出了一个指标Moment of Uplift,由于文章太长,下次再说吧~(如果感兴趣

附录

好像开头提的问题,一个还没解决哦。可以在参考文献中查阅,这里放一个爱情动力学的Love Affairs and Differential Equation

罗密欧(R)emotion vs. 朱丽叶(J)emotion

恋爱方程为 \frac{dR}{dt}=aJ; \frac{dJ}{dt}=-bR ,显然这一对互为因果,二者之间是非线性因果关系。他们之间的爱情将是永无止境的“热情-冷漠“循环,当罗密欧感情增加,朱丽叶可能会增加也会降低,相关系数是变化的。

爱情相图

这就涉及到混沌的问题。以什么样的方式开始,以什么样的模式相处,对未来造成的影响也不一定是确定的,是一种极不稳定的关系。或许这就是人生充满不确定性的乐趣,但是总有那么一个人,碰巧在每一个临界点都没有偏离航道,陪伴终生。

还是那句话,世界是量化的。假如再给你一次机会,你依然过不好这一生!珍惜当下吧!

结语:人类两次工业革命(蒸汽机和电力)本质是关于能量产生和转化。这次信息革命,信息类似能量,也如同货币,信息革命将带我们走向何方?

学海无涯,更多内容参考文献自行查阅。

参考文献

Causality: Philosophical Theory meets Scientific Practice (哲学思想)

Detecting Causality in Complex Ecosystems (收敛交叉映射算法)

PC-Fairness: A Unified Framework for Measuring Causality-based Fairness (反歧视的公平性)

Feature relevance quantification in explainable AI: A causality problem (模型可解释性)

Deep causal representation learning for unsupervised domain adaptation (迁移能力)

Causal Inference and Data-Fusion in Econometrics (Debias)

The Book of Why: The New Science of Cause and Effect (不多说了,这你不来一本)

Causality for Machine Learning (机器学习相关)

Hidden interactions in financial markets (暗因果)

因果观念新革命?万字长文,解读复杂系统背后的暗因果

Testing a New Metric for Uplift Models (因果推断评估)

Causal Inference and Uplift Modeling A review of the literature (uplift综述)

光喻:【综述长文】因果关系是什么?结构因果模型入门

逆向因果关系:哲学与物理的反思