查看原文
其他

CausalML:如何将因果推断与机器学习结合?

The following article is from 集智俱乐部 Author 李可

图片(封面图)来源:

https://mp.weixin.qq.com/s/_W3cJB_PdNiqTAPLkkS7Vw


导语


因果推断和机器学习(ML)这两个领域长期以来各自发展壮大。然而,随着机器学习的发展越来越快,逐渐遇到用单纯的统计去捕捉相关性的不足之处,表明机器学习模型其实并没有学到人类做同类判断时的因果推断过程。将因果推断与机器学习结合,通过探究变量间的因果关系,能够帮助机器学习获得泛化分布外的场景的能力。




研究领域:因果推断,机器学习,NLP

李可 | 作者

邓一雪 | 编辑



在集智俱乐部「因果科学读书会第三季第十五期」,来自马普所和 ETH 的金致静博士 从 Bernhard Schoelkopf 和 Yoshua Bengio 对因果推断和机器学习结合的蓝图 “Towards Causal Representation Learning” 和 “Causality for Machine Learning” 出发,介绍了因果推断和机器学习结合的潜力,并具体探讨了因果模型在自然语言处理(NLP)上的应用场景和未来方向。本文是此次分享的文字整理。


图片来源:
https://mp.weixin.qq.com/s/_W3cJB_PdNiqTAPLkkS7Vw

论文题目:Towards Causal Representation Learning

论文链接:https://arxiv.org/abs/2102.11107

 

图片来源:https://mp.weixin.qq.com/s/_W3cJB_PdNiqTAPLkkS7Vw

论文题目:Causality for Machine Learning

论文链接:https://arxiv.org/abs/1911.10500

 



Part 1 

因果与机器学习Causal-ML




1. 为什么机器学习需要结合因果?


机器学习正在众多领域取得惊人进展,但如果我们想要使人工智能达到人类水平,则不仅仅需要机器在某一任务上表现良好,还希望机器能够理解世界如何运行,能够以我们的目标为导向做出决定,并且解释它如何看待世界以及如何做出决定,能够泛化到新的分布外(out-of-distribution)的场景。脱离因果的机器学习或许也能够表现出理解决定解释的能力,但在泛化能力上却表现不佳,而这正是因果学习的长处。通过探究变量间的因果关系,能够帮助机器学习获得泛化分布外的场景的能力。


图片来源:

https://mp.weixin.qq.com/s/_W3cJB_PdNiqTAPLkkS7Vw


如上图所示,一般的因果学习关注两个问题:(1)如何从一系列变量中发掘变量间的因果连接关系,也就是:X1, X2,…, Xn之间的边有哪些?(2)当Xi存在通向Xj的因果连接时,因果效应有多强?

在机器学习的设定中,我们会有一个特别的变量Y,通常是模型的输出,其他变量是输入的特征。传统机器学习关注如何估计给定输入X时Y的条件分布,也就是P(Y|X)。

将因果学习与机器学习结合,我们是想回答这两个问题:(1)Y是输入特征的因还是果?有哪些输入变量和Y连接,因果方向是怎样的?(2)如果我们获得了表示变量间因果关系的因果图的一些信息,如何利用这些信息更稳健地估计P(Y|X)?

2. 因果学习与反因果学习

对于问题(1)Y是输入特征的因还是果,我们可以通过因果学习和反因果学习来区分因果,也就是数据生成(收集)的不同方向。当Y是由X生成,也就是因果从X->Y时,我们称这样的机器学习过程为因果学习。

比如说,我们想建立一个中文向英文翻译的语言模型,在收集语料时,我们首先获取了一些中文语料比如《红楼梦》,然后再获取了它的翻译,并用这样的双语语料去训练中译英的模型,模型的输入输出方向和学习数据生成的方向一致,这就是因果学习。而相对的,如果我们是由Y生成X时,也就是因果从Y->X时,我们称之为反因果学习。当我们用同样的语料,去训练一个反方向的英译中的模型,这就是反因果学习。

为什么因果的方向很重要呢?我们可以通过独立因果机制看到。

图片来源:
https://mp.weixin.qq.com/s/_W3cJB_PdNiqTAPLkkS7Vw


3. 独立因果机制与因果方向识别

当我们将因果关系简化为两个变量时,可以用上图表示因和果的关系,原因C噪声NE通过某种因果机制生成了某种结果E,f( · ,NE)用来数学化地表示该因果机制。独立因果机制即是说,对于某个任务,因果机制 f( · ,NE) 和原因C是独立的。相反,当我们从结果生成原因时,刻画这一生成过程的反因果机制,往往和结果不独立。

在传统机器学习中,我们并没有去关注因果的方向。但可以想见,如果我们的模型建模方式是反因果学习的,模型学习到的是反因果机制,它将和输出,也就是结果不独立,那模型将非常依赖于输入数据,难以获得稳健的泛化到分布外场景的能力也就可以理解了。

所以第一步,我们要去识别出模型输入和输出间的因果方向。在一些场景下,因果的方向是显然的,比如前面提到的翻译的例子。但很多时候,模型中有很多变量甚至是高维变量,我们无法通过尝试去判别因果关系和方向。但幸运的是,因果的有向性会留下一些痕迹,反映在信息量(复杂度)上:

图片来源:

https://mp.weixin.qq.com/s/_W3cJB_PdNiqTAPLkkS7Vw


在这个式子中,我们用 Kolmogorov 复杂度 K( · ) 来表示信息量。无论是变量还是机制,都可以被表征为字符串。一个很长的字符串不一定具有很大的信息量,比如“0101010101010101010101010101010101010101010101010101010101010101”,它仅仅是“01重复32次”(它比前一个字符串要短很多),因此 Kolmogorov 复杂度将字符串x的信息量定义为“能够计算或输出x的最短程序的长度”。我们暂时不去关心程序怎样被编写和执行,而只是借助“程序”来定义信息量,所以这是一种“算法信息量”。

而上述式子的含义就是,因-果 PC,E可以被独立地分解为原因 PC 和因果机制 PE|C,因为两者是独立的,并不共享信息,所以式子的上面是等号;而将因-果 PC,E 分解为结果 PE 和反因果机制 PC|E 时,两者非独立、信息共享,因此将它们的信息量加和得到的结果大于 K(PC,E)。

4. 独立因果机制在机器学习实践中的体现

一个关于机器翻译的实验参考文献验证了上述的不等关系。实验中,研究者用最小描述长度(Minimum Description Length,MDL)来近似Kolmogorov 复杂度。研究者获取了英语-西班牙语、英语-法语、西班牙语-法语,共三对六向的翻译数据集,分别计算了因、果、因果机制、反因果机制的最小描述长度,比较了因果分解和反因果分解下的信息量,实验结果大体与算法信息量不等式吻合。

图片来源:

https://mp.weixin.qq.com/s/_W3cJB_PdNiqTAPLkkS7Vw


对于半监督学习来说,我们希望通过无标签样本中的信息来帮助模型学习,而这是适用于反因果学习任务的。此时无标签样本是“果”,模型要学习的是反因果机制,两者之间并不独立,有共享的信息,所以半监督学习在反因果学习的任务中更能提高模型的表现(1.70% vs 0.04%,反因果 vs 因果)

而对于领域迁移来说,我们希望模型学到的机制能够尽可能独立于模型的输入(不同的领域),而因果机制和“因”正是独立的。因此因果学习的任务在领域迁移时会有更好的表现(5.18%vs1.26%,反因果vs因果)

此外,无论是数据收集过程还是模型建模过程,将因果关系纳入考虑,都能够帮助机器更好地学习。比如在收集数据时标注输入输出何为因何为果,或是标注因果和反因果的任务并在模型中触发不同的模型行为等,都是可以加以改进的方向。





Part 2  

因果与自然语言处理Causal-NLP




具体到自然语言处理的任务上,可以有这三种结合因果的模式:

  • 变量层面:从文本中获得因果变量

  • 训练层面:探究特定机器学习模型设置的因果效应

  • 模型层面:让NLP模型拥有推理因果的能力

以下我们将分别用一个例子说明不同层面上因果与NLP怎样结合起来。但必须指出的是,在模型层面,让语言模型学会因果推理是一件非常困难的事情,现有工作还仅仅是基础性的准备工作,还需要研究者的更多思考与尝试。

1. 从文本中获得因果变量——建模美国新冠政策受社交媒体的影响

在这个研究中,研究者关心的问题是:政客在制订政策时,是否过于迎合短期公众意见?比如说,当有很多人在社交媒体上点赞关于解封的推文时,是否会对政策制订有因果影响?我们可以将问题建模为如下的因果模型:

图片来源:

https://mp.weixin.qq.com/s/_W3cJB_PdNiqTAPLkkS7Vw


推文的情绪作为“因”,指向“果”:防疫政策严格性,然后还存在一些混杂因子同时影响这两个变量,比如日新增确诊病例数、失业率等等。我们可以爬取那些对政策表达意见的推文,并用语言模型去量化这些推文中的情绪,获得我们所需的变量。在这个因果模型中,我们无法去干预推文的情绪,但可以通过后门调整的方法,计算图中的因果效应。以下是研究得到的一些结果:不同州的政策受推文情绪的影响程度。


图片来源:

https://mp.weixin.qq.com/s/_W3cJB_PdNiqTAPLkkS7Vw


这个模式的研究比较容易理解,除了会涉及到从文本中抽取的变量之外,和常规的因果学习没有太大差别。

2. 探究特定机器学习模型设置的因果效应——以机器翻译为例

要探究特定机器学习模型设置的因果效应,则要比变量层面去结合因果更复杂一些,因为这要求研究者去抽象出模型训练中的因果图,而这往往需要更深的机器学习领域的知识。

以机器翻译为例,在文章前面已经提到,数据收集的方向是很重要的。那它会如何影响机器翻译模型的表现呢?在机器翻译的任务中,除了数据收集的方向,还有句子的长度、翻译的内容等,都会影响翻译的结果。再考虑到混杂因子,研究者建立了如下的因果图,其中Data-Model Alignment 被用来描述数据收集的方向是否和模型生成数据的方向一致,i.e., 因果学习/反因果学习。

图片来源:

https://mp.weixin.qq.com/s/_W3cJB_PdNiqTAPLkkS7Vw


以往的研究关注到了“翻译腔”对机器翻译模型的影响。这具体是说,一句被翻译成中文的英文文本,比如“噢,我的老天爷”,在模型测试阶段被翻译回英文时,对机器来说是很容易的。但这些研究没有注意到,在模型训练时,“翻译腔”同时也提示了反因果学习的训练设置,即影响了Data-Model Alignment。下表反映了因果/反因果学习两种设置下的BLUE得分的差距。

图片来源:

https://mp.weixin.qq.com/s/_W3cJB_PdNiqTAPLkkS7Vw


3. 让NLP模型拥有推理因果的能力——从让机器学会辨别逻辑谬误开始

目前的语言模型并不具有真正的推理能力,更不用说推理出因果的结论。研究者面临的一个重大挑战是,我们仍没有办法将自然语言中的因果推断,用一种机器可以执行的方式转化为Pearl的用数学描述因果的语言。

举例来说,“我认为太阳每天都在为地球升起,因为地球是宇宙的中心”,人类懂得去反驳这句话,但机器呢?当这句话被当作训练样本“喂”给机器时,机器是不加分辨地将它全然消化了。句中出现了“因为”这个因果的提示词,但它指向了一个虚假的因果关系。人类在面对文本时,是带着整个世界与文本打交道的,带着人对世界的理解,对物理规律、对常识的认知,而这是机器所匮乏的。

好在如今语言模型可以学习非常丰富的文本,以远超人类的速度“阅读”书籍和文章。或许这提示了让模型学会推理的方法:在大量的阅读中去伪存真。而要完成这个惊人的工作,机器首先需要学会辨别逻辑谬误;更基础地,需要先去学习逻辑推理的形式。下图显示了如何从一句话中抽取推理形式。

图片来源:

https://mp.weixin.qq.com/s/_W3cJB_PdNiqTAPLkkS7Vw


从这个例子中也可以发现,并非所有推理形式都能得到正确的推理,一些推理形式明显包含着谬误。但至少形式推理能够让机器建立起(哪怕是错误的)因果连接。在Logical Fallacy Dataset (LoFa) 数据集中,研究者收集了循环论证、虚假因果等谬误,希望机器能够识别这些谬误。机器在该数据集上的表现仍有很大的提升空间,研究者还需要进行更多工作。




往期回顾



编辑/刘晋国

审核/范    杰

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存