机器学习与因果推断
Chapter 1:the introduction of Causal Reasoning
Introduction
机器学习算法越来越多的被应用到生活的方方面面,其中很大一部分学者尝试应用在医疗、教育、管理、金融和农业等社会关键领域。然而在这些领域基于机器学习而做出的判断或者决策会产生广泛的影响。这意味着,如果想要真正的理解(机器学习)系统所做出的判断或者决策,必须要抓住其本质。对所做出的决策还需要了解到决策的副作用和直接影响。与传统的机器学习模型不同的是,因果推断可以解决我们对因果关系以及因和果之间 的耦合问题。以及我们如何从一个因果关系的角度来解释纯粹的预测问题,这足以让我们从因果推论中使我们的机器学习模型获益。
那么,在这里举几个非常经典的例子来非正式的介绍因果推理的研究内容。such as:(1)事件A 是事件B发生的原因么?(2)向用户推荐产品是否会让他们更愿意购买?if so,what the probability could be?(3)什么样的原因会驱使一个人去偿还贷款或者他会做一个好雇员或者好老板?(4)如果天气变热,庄稼会枯萎么?and what we talked above is just the Causal Reasoning did.
What is Causal Reasoning?
因果推理是科学探究的一个组成部分,从古希腊哲学开始就有着悠久的历史。从生物医学到社会科学等领域都依赖因果推理来评估理论,并回答关于我们居住的物理和社会世界的实质性问题。And here we quote Gary King’s words
“More has been learned about causal inference in the last few decades than the sum total of everything that had been learned about it in all prior recorded history”.
“在过去的几十年里,人们对因果推理的了解超过了以往所有有记录的历史中关于因果推理的所有知识的总和”。
紧接着有人可能会疑惑为什么因果推理是如此的crucial,为什么他没有成为类似概率论或者贝叶斯理论一样的常见的数学表达形式。这就让人们想起来了那句话百因必有果,你的报应就是我,事实上这些因果论的论调总是模糊的,许多哲学家至今也未达成共识。(至于为什么你可以类比想想自己小时候为什么没考好,然后总是有各种各样的理由搪塞)
面对你为什么小时候没考好这种难度极大的哲学问题,现代因果推理的进步不是通过直接回答这些问题,而是通过创造灵活的方法来推理因果之间的关系,而不考虑人们选择的抽象概念。本文中的Causal Reasoning避开哲学上的模糊,采用一种更简单实用的方法进行因果推理,即所谓的干涉主义来定义因果关系。
Defining Causation
definition
在干涉主义者的因果论定义中,在保持其他一切不变的情况下,如果我们在改变A之后观察到B的值有所不同,那么一个事件A引起了另一个事件B。
由于因果推理早期在医学上的应用(我们将在第三章讨论),习惯上称A为“治疗”或简称为原因。b被称为“结果”。熟悉强化学习的读者可能会把A比作“动作”,把B比作“奖励”。一般来说,这些事件与定量描述它们的测量变量相关联,例如,治疗药物的剂量及其在血压方面的结果,我们分别将其称为治疗变量和结果变量。为了方便起见,我们可以互换使用事件及其测量变量,但重要的是要记住,因果关系是根据事件定义的,相同的事件在不同的测量中可以对应不同的变量。
Interventions and Counterfactuals
在这里需要进一步解释的词语是改变A和保持其他一切不变的情况下。这些分别对应于因果推理中的两个关键概念:干预和反事实推理。干预指的是主动改变治疗变量的任何动作,例如给病人吃药,改变用户网站界面、给某人贷款等等。
intervention: 改变治疗变量T的主动行为。
然而,为了获得对其效果的有效解释,必须在“保持其他一切不变”的情况下进行干预。也就是说,仅仅采取行动是不够的,还要确保其他相关因素都没有改变,这样我们才能隔离干预的影响。继续我们的例子,评估一个新特性的效果,仅仅指派人去尝试它是不够的,还要确保没有其他系统组件同时改变。从自然科学的早期实验来看,这种干预被称为“受控”实验,我们限制某些变量的值,以隔离干预的影响。
虽然“控制”或保持其他变量不变是直观的,但不清楚包括哪些变量。利用因果推理的第二个关键概念,反事实,我们可以得到一个更精确的定义。这个想法是比较干预后发生的事情和没有干预会发生的事情。也就是说,对于任何干预,我们可以想象两个世界,在任何方面都是相同的,直到某个“治疗”发生在一个世界而没有发生在另一个世界。这两个世界的任何随后的差异都是这种处理的逻辑结果。第一个是观察到的事实世界,而第二个是未观察到的反事实世界(conunterfactuals反事实这个词的意思是“与事实相反”)。
Counterfactual Value:在没有发生的事件下变量的(假设)值。
将反事实和干预(治疗变量)放在一起,干预的因果效应定义为干预后观察到的结果和没有干预时的反事实结果之间的差异。
事实世界下的结果表达为
在反事实的情况下结果表达式为
因果效应可以完美的表达为:
The Gold Standard: Randomized Experiment
在这部分作者将随机实验来揭秘因果推断(或者说解释),该例子为是否为一个病人Alice推荐药物治疗,是否推荐可通过考虑药物治疗对Alice的影响结果来决定。在该事件中,药物表示治疗变量,病人Alice的健康表示结果变量。那么药物治疗对Alice的健康影响表示就是:
问题的关键在于实验不可能给我们两次机会或者两个同质的实验对象让我们即做治疗又不做治疗!而且,反事实的情况基本上都不会被观察到,这就导致了因果推断中的数据缺失问题。(怎么解决这个问题?假设Alice有个同卵双胞胎,身体各项状况指标都相同。)但是不是每个人都有个同卵的双胞胎兄弟姐妹的,所以就会导致人们总会问一个问题,疗效是否取决于用药还是每个人的身体状况差异。每个人的各项指标以及自身差异会使得我们混淆治疗结果的归因(听上去很复杂,其实就是找出来到底是为啥)。
另一种方法是对干预变量做出假设,例如假设这里有一组数据集是关于病人的身体健康的数据集,这里的数据集中的治疗变量被认为和病人本身的实际结果变量(病人身体健康)无关,也就是说任何人的结果变量(健康)还是取决于他们本身的身体条件,只是唯一的不同是是否用药。因此,如果我们比较两个人是否服药,他们之间就没有系统性的差异。在足够多的样本的情况下,接受治疗的群体的平均结果就可以无限逼近无接受治疗群体的反事实结果。现在想明白了作者为什么介绍随机实验他的目的就是在于消除个体之间的差异影响,核心思想就是,找到两个本质上彼此相同的群体。Now we could rewrite the formula as follow:
随机试验说明了第一组实验群体可作为第二组实验群体的反事实推理,回到个体案例上去是否给Alice药物治疗取决于,药物疗效对群体的影响是积极的还是消极的。(也就是说群体平均效果决定了是否做出药物治疗)。
Why causal reasoning?The gap between prediction and decision-making
随着越来越多可部署的传感器,计算机计算能力的发展,数据量的激增。人们希望机器学习参与到决策层面,甚至寄希望于机器学习能够取得不小的成功。因果推断必将不可或缺。虽然越来越多的数据和机器学习算法有助于做出高度准确的预测,但是会出错。这是因为从预测到决策并不简单,基于纯粹的数据预测模型的决策的因果效应可能是非常糟糕的。
for example:机器学习可以应用于农场的数据来做出灌溉决策。特别是,让我们假设知道灌溉的效果是什么。在预测模型我们根据手机过去关于土壤湿度和其他变量的数据,然后根据过去的数据预测未来的土壤湿度水平。将预测转化为决策就是:土壤湿度低,灌溉!土壤湿度高,不灌溉!假设我们拥有过去的土壤湿度数据和历史天气数据,并据此训练出一个机器学习模型,这个模型可以指导我们在农场的灌溉决策么?
答案是否定的,我们不能根据我们所学的土壤湿度模型来做出灌溉决策。想象一下,有一天天气预报说会很热。我们的土壤湿度模型很可能预测土壤会非常潮湿,基于这种预测,我们很可能决定不灌溉。但是为什么我们的土壤湿度模型预测在非常热的日子里不需要灌溉呢?我们的模型是根据过去的土壤湿度数据训练的,但在过去,土壤是在一些预定的政策下灌溉的(例如,基于规则的决策还是农民的直觉)。如果这个政策总是在非常热的日子灌溉田地,那么我们的预测模型将了解到在非常热的日子里,土壤湿度很高。预测模型将非常准确,因为在过去这种相关性总是成立的。然而,如果我们根据我们的模型预测决定在非常热的日子里不给田地浇水,我们将会做出完全错误的决定!
因为模型只是捕捉到了炎热天气和农民过去灌溉决策之间的相关性。预测模型不关心底层机制,它只是认识到热天气意味着土壤潮湿的模式。但是一旦我们开始使用这种预测模型来驱使我们的灌溉决策,我们就打破了模型已经学会的模式。
Applications of Causal Reasoning
Making better decisions
Building robust machine learning models
Four steps of Causal Reasoning
Model and assumptions因果推理的第一个重要步骤是建立一个清晰的因果假设模型。这包括写下已知的数据生成过程和机制。总的来说,有许多机制可以潜在地解释一组数据,这些自洽的机制中的每一个都会给我们提供我们所关心的因果效应的不同解决方案。所以,如果我们想得到因果问题的正确答案,我们必须清楚我们已经知道的东西…给定这个模型,我们将能够正式地指定效果A→→A;B我们要计算的。
Identify使用模型来决定是否可以回答因果问题,并提供计算所需要的表达式。
Estimate一旦我们有了识别因果效应的一般策略,我们就可以从几种不同的统计估计方法中选择来回答我们的因果问题。评估是一个分析数据的过程。
Refute一旦我们有了答案,我们想尽一切可能来测试我们的潜在假设。我们的模型与数据一致吗?对所做假设的回答有多敏感?如果模型有一点错误,那会改变我们的答案一点还是很多?
Modeling and assumptions
为了估计因果效应,需要一种准确的表达形式来表达我们对治疗变量也好干预变量也好喝反事实推理。可以用图表或函数方程的形式来表示。至关重要的是,这个模型没有规定连接变量的确切函数形式,而是传达了因果关系的结构——谁影响谁。这种结构模型体现了我们对世界做出的所有领域知识或因果假设,因此也被称为结构因果模型——结构图因果模型(structural causal model)。考虑一个简单的例子,冰激凌销量的增加是否会导致游泳人数增加。图1显示了游泳人数和冰激凌销量的相关性。
结构因果图模型的力量来自于能够精确定义干预和反事实。然而,很难用传统的概率来表达这些概念。正如我们在上面看到的,区分干预和观察是很重要的,但不幸的是,概率演算缺乏一种语言来区分观察人们使用某个功能和将他们分配给该功能(两者都表示为。鉴于这些缺点,我们需要一类新的变量和对这些变量进行运算的微积分。干预是由一个特殊的“do”操作符定义的,这意味着删除变量的所有入度,对应的图模型变为图2。这对应于图1所示的介入图。因此,将人员分配给功能表示为。任何反事实值都可以通过改变介入图中的变量来生成,去除入站边意味着改变变量与改变除结果之外的其他变量无关,因此保持其他一切不变。干预的因果效应可以精确地定义为两个干预分布的差异:
Identification
这一步骤表示模型是否可以从数据中估计因果效应,需要确定因果效应等式是否可以写成仅与观测数据相关的函数。正如我们将看到的,给定因果结构图,可以检查因果效应是否可以从数据中估计,如果可以,则提供估计公式。例如,回到我们的冰淇淋图表,因果关系是通过调节温度来确定的,然后分别估计每个温度范围内冰淇淋和游泳之间的关联。当我们这样做时,我们看到治疗和结果不再相关,因此表明观察到的相关性是由于温度,而不是由于吃冰淇淋的任何因果关系。温度变量被称为混杂因素,即使没有因果关系,也会导致治疗和结果之间的相关性。
Estimation
一旦确定了因果关系,我们就可以用统计方法来估计它。
Refute
以上三个步骤将给出我们因果问题的答案,但是我们应该在多大程度上相信这个估计呢?如上所述,因果解释来自识别,而识别又从建模假设中获得其有效性。因此,最后也可能是最重要的是检查导致认同的假设。此外,估计步骤还对数据的统计特性进行假设,以得出估计值,这也需要验证。虽然结构模型无法通过数据进行验证,但我们将讨论在某些情况下,观察到的数据如何帮助我们消除与数据不一致的因果模型,并检查我们的估计对因果假设的稳健性。