NLP中的因果推断(综述)
Causal Inference in Natural Language Processing Estimation, Prediction, Interpretation and Beyond
1 Introduction
NLP helps causality
NLP在建模语言方面的发展,给我们提供了很多方法来从文本中提取信息,用于estimate causal effect
Causality can help NLP
为了解决NLP中的鲁棒性和可解释性问题,我们需要新的标准来学习模型,并且进一步挖掘相关性。
2 Background
2.1 Counterfactual Queries
counterfactual 问题在Section 4中有进一步的解释
2.2 Causal graphical models
2.3 Assumptions for causal inference
Ignorability, Positivity, Consistency
3 Estimating Causal Effects with Text
3.1 Text as Outcome
主要的挑战是:从高纬的文本数据中蒸馏(distill)出相关的低维的特征。
比如:
text是作为outcome的。
我们可以设计RCT,一组学生受教育,一组学生不接受教育,收集他们的文章。
为了确保满足consistency: 1. 需要确保学习的时候,学生之间不受影响(no interference)2.需要创造出”可读性“的测量方式
3.2 Text as Confounder
挑战:我们需要condition on在文本数据上,去block confouding
一种方法是使用无监督降维算法去减少文本数据的高维度,比如:topic model, embedding methods, auto-encoder等等。
另一种是使用监督方法。使用预训练的语言模型和有监督的topic model,预测treatment和outcome,通过预测treatment和outcome(也就是把treatment和outcome当作监督目标),他们表示confounding properties可以在文本数据中被挖掘出来。
text as confounder只有在已观测数据中可行。这样我们就需要比较强的ignorability:所有方面的confoudning都必须被模型观测出来。这样做也是很具有挑战性的,因为文本数据的维度高,我们condition on的变量变多,就越来越难以满足positivity。而且我们可能condition on在collider变量上,导致一些原本block的backdoor反而被打开了。
3.3 Text as Treatment
-
一种学习文本的“效应“(effects)的方法是:treatment discovery treatment discovery:得到文本的具有可解释性的特征:话题(topics)和其他隐藏维度(latent dimensions)的影响。这些特征与outcome有因果关联。
-
另一种学习文本效应的方法:estimate从文本中提取出来的特定属性的因果效应。
(这俩有啥区别?不都是从文本中提取feature么?)
text as treatment带来的一些挑战:
-
需要保证ignorability。人们选择阅读文本的原因和结果相关,ignorability就违背了。为了克服这个困难,研究者随机分配文本给读者,去estimate effect。(也就是需要做RCT实验)
-
需要保证positivity。礼貌的邮件->回复次数,研究这个因果效应。就算文本中包含了所有confounder(topic,tone,writing style),也很难确定一个礼貌的邮件就包含了一种特定的writing style。
-
需要保证consistency。就像text as outcome里的例子一样,我们需要在estimate causal effect 前就开发出测量不同数据中treatment的方法,保证这些treatment是满足consistency的。
比如候选人的传记会影响投票结果、超市广告写作风格会影响销量。
3.4 Opportunities
Heterogeneous effects:由于不同的人阅读同一段文本会有不同的理解。这也就导致了一些问题:解释因果效应、沟通研究发现。
比如:用一段文本作为treatment,会在不同的人身上产生不同的causal effect。formulate和identify这些heterogeneous causal effect,就需要新的反事实问题,假设,和方法。
Benchmarks:有benchmark数据集已经帮助推动了机器学习的发展,有统一的benchmark、统一的标准,这些模型就能被统一地衡量。
在causal explanation有一些benchmark已经发展出来,但是缺少NLP datasets。这是因为潜在outcome是反事实的。任何benchmark(它假设反事实的知识是必须做一个强的假设)是无法核实的(unverifiable)。
虽然我们能够把聚合的结果和实验作比较,但我们永远也无观测到一个benchmark的真实causal effect。
4 Robust and Explainable Predictions from Causality
到目前为止(Thus far),我们一直专注于使用NLP工具来衡量存在于文本中的因果效应。我们现在来考虑一个相反的关系:用因果推理来帮助解决传统的NLP任务,比如:understanding、manipulating 和generating 自然语言。
乍一看,NLP可能不太需要因果的idea。近几年有很多high-capacity的NLP框架做出了巨大的进步(比如BERT)。这些框架没有区分cause、effect、confounder这些概念。也没有尝试去识别出因果关系。这些模型认为:一个feature可以很有用,就算这个feature和结果没有因果关系。
然而,尽管取得了SOTA的结果,基于相关性的预测型模型是不值得信任的(untrustworthy):他们可能会去捕捉虚假的相关性,导致OOD问题(out-of-distribution)。他们可能会在不同的用户群体中表现出不可接受的性能差异。他们也会因为太难以捉摸,以至于不能去进行高风险决策。
任何一个问题都可以潜在地通过因果的视角解决:因果关系的(先验)知识可以用于formalize虚假的相关性,并且减轻对他们的预测依赖性。因果也可以提供一种语言,用于明确和推理出公平条件(fairness conditions)。解释预测的任务也可以很自然地用反事实来描述。(啥意思?)
基于这些原因,越来越多的(a growing line of research)研究围绕因果研究中的发现,尝试去重定向机器学习的目标。到目前位置(Thus far),应用大部分集中于其他领域,比如:生物医学数据(需要可信度高),计算机视觉(非常需要跨领域(cross-domain)的学习)(这个比较经典的例子是,colored MNIST,color channel用于创建更有挑战性的分布偏移),还有那些比较容易构造有人为的虚假相关性的数据集。(人为构造虚假相关性,是为了容易检验causal的方法更robust么?)
总结:在这一节中,我们回顾了把causal应用于NLP的工作,专注于一些独特的problem和涌现出的机会。下一节,在4.1中,我们会讨论虚假相关性对于泛化带来的不利影响、分布偏移(distributional shift)、因果驱动的方法,来达到更好的鲁棒性。4.2中,简单回顾在公平和偏见相关的问题中,使用因果进行规范化(formalization)的尝试。4.3中,总结因果方法用于解释复杂机器学习模型的行为。
插播英语知识:explain和interpret的区别:
explain:把别人不懂的知识,解释给他
interpret:区别就是,我们谁都不懂这个知识,我们需要去理解它,interpret它,洞悉它的本质。(interpret的知识更加难理解)
4.1 Learning Robust Predictors
NLP中已经有不少的对于虚假相关性的担忧。虚假相关性在以下两种情况下会发生:
-
必须有一个Z,对于feature X和label Y是都能够提供信息的(informative)。
-
Y和Z必须依赖于训练数据(以一种总体来说不被保证成立的方式)(什么鬼??)
这里问题就是,一个预测器:,会去学习使用X的一部分,这一部分的信息与Z有关(因为Z对Y也是有信息提供的,也就是学习到的这一部分内容,是Z提供给Y的,而不是X提供给Y的,但是我们在最后的模型中不需要这一部分),但是最后用于部署的模型中,X和Y之间的这一部分关系(Z提供的)是不需要的。
举一个例子:通过病人的文本记录,来预测医疗效果,使用的训练集来自不同的医院。假设:有一个医院,(a)病人更容易被诊断为这一种病,(b)医生倾向于使用一种独特的写作方法(比如,因为医院的训练,当地的方言)。一个predictor用这些数据集去训练,会去使用一些文本特征(带有医院的相关信息,这些信息可能对诊断没有一点用处)。这会导致很差的OOD(out-of-distribution)表现,就因为写作风格和医疗效果之间的虚假相关性。
为了确保predictor不会“由于错误的原因而正确“,一些评估方法主要有两种形式:
-
不变性测试(invariance tests):评估预测的结果是否会 由于因果无关的扰动而 受影响。
-
敏感性测试(sensitivity tests):它应用的扰动在某种意义上应该是翻转真标签所需的最小变化。
不变性测试可以由因果直觉驱动:目的是测试如果以反事实输入,Z表示是文本的cause,但和Y因果不相关,predictor会不会表现的不一样。一个模型的预测结果在这些反事实中不变,可以被看作在测试集上如果Y和Z由不一样的关系,也能有更好的表现。
敏感性测试可以看作是评估反事实,这里的label改变了,但是所有的其他在X上的因果影响都是不变的。
(没看懂这个不变性测试和敏感性测试)
很多方法被应用于训练能够通过sensitivity tests和invariance test的predictor。许多这些方法不是显式地就是隐式地使用了因果的视角。现在我们研究这些方法,这些方法主要分为两大类:反事实数据增广(counterfactual data augmentation)和因果驱动的分布标准(causally-motivated distributional criteria)
4.1.1 Data augmentaion
为了学习出能够通过敏感性和不变性测试的predictor,data augmentaion是一种比较流行的方法。得到、或者构造反事实数据,并且把他们合并到训练数据。
对于不变性测试: 对于敏感性测试:没看懂这啥意思。。,是造出使得预测结果y改变的那些X?
反事实数据可以通过以下几个方式生成:
-
人工后期编辑:最靠谱,流畅并准确,但最贵
-
启发式地对关键词进行替换:通过同义词替换,不能保证流畅性
-
自动文本重写:不成熟
反事实数据是个十分有用的资源,因为他们直接标出了missing data。但这十分困难。以上这些方法还有可能引入新的虚假相关。
4.1.2 Distributional Criteria
数据增广比较困难,因此我们考虑直接对已观测的数据进行操作。
在不变性测试中,一种策略是导出不变的预测器的分布特征,并且确保这些特性是满足已训练的模型。(?)
(前两种看不懂。。)
第三种就是那个经典的因果结构图,X: Treatment,Y: Outcome,Z: Confounder,用backdoor,把换成。这种方法对于虚假相关性在domain shift的时候有很强的鲁棒性。
总体来说,这些方法都比典型的监督学习需要更多的训练数据。还有就是,distributional方法目前为止只能用于classification任务(Debiased那篇文章就是文本生成任务?),数据增广可以使用于更多的复杂的任务,比如机器翻译。
未来的工作中,distributional方法必须解决结构性的预测(structured prediction)。(机器翻译就是一个structured problem)
未来的工作中,还要考虑使用不完整的因果模型的结果,因为不是所有的confouding 都可以被观测。在NLP中,不被观测的confounding是很普遍的。
4.2 Fairness and bias
NLP有时候会放大训练数据中的bias。causality可以提供一种识别出公平性问题的语言。公平性问题:种族、性别。
然而,将种族等属性作为受干预或反事实推理影响的变量,存在一些重要的合法性问题。
causality和unfair bias之间的链接主要在相对低维的数据上会展现出来,而不是在文本数据中。但是,有一些在反事实数据增广方面的方法在这一领域有应用,比如:
-
construct counterfactuals by swapping lists of “identity terms”, with the goal of reducing bias in text classification,
-
swap gender markers such as pronouns and names for coreference resolution.
反事实数据增广也被用于减少 预训练的word embedding模型中的 bias。但是预训练word embedding模型中的偏差会以多大程度传到下游应用中,还不清楚。
在公平问题中使用distributional criteria的应用还比较少。但是一些研究者show: invariant risk minimization,(尝试去学习一个不变的predictor,在多环境中),可以减少在公民评论数据集中(Civil Comments dataset)种族的虚假相关性。
4.3 Causal Model Interpretations
NLP 模型是出了名的难以解释。但尽管如此,这对于诊断错误,以及和决策者之间建立信任是非常重要的。 一个生成解释的非常重要的方法,是挖掘网络的部件,比如attention的权重。另外,还有一些尝试去估计更简单、更有解释性的模型:使用test样例中的扰动(?),或者其他隐表达。
然而,基于attention和基于扰动(perturbation-based)方法都有很大的局限,attention-based解释可能有误导性,而且可能只对某些独特的token有效。他们可能对于更抽象的语言概念没法解释预测结果。目前存在的perturbation-based方法经常产生一些难以置信的反事实,而且还不能对一些句子级别的概念进行估计。
把这看作一个因果推断问题,一个自然的方法去解释就是生成反事实样例(4.1.1),并把每个样例的预测结果和它的反事实进行比较。这样一个受控制的设定比较像随机对照试验(section 2中描述的),这比较可行地去计算一个真实观察到的文本和某个概念不存在于其中的文本之间的区别(也就是counterfactual)。确实在一些例子中,counterfactual文本是可以被生成的,我们可以使用一些基于文本的模型去估计因果效应。但是生成自然语言的counterfactual有时候比较难以自动生成,而且人工做起来比较费劲,特别是对一些抽象概念,比如:语言风格,话题,情感。
为了克服反事实生成的问题,另一类方法提出:去操纵文本的表达方式(representation)(...列出了一堆文献),而不是文本本身。这些研究的结果和一些鲁棒性文献中的结果有一些相似性。但是这些研究结果更专注于识别一个训练模型中的invariance,而且并不是在训练的过程中强迫他们(指模型)。一个研究者计算反事实representation(通过预训练附加的.... 当控制confouding concepts的时候,设计了一个对抗性的组件,去”忘记“某一个被选择的概念)。另一个研究者提供了一种方法:从神经表达中remove掉信息,通过迭代地训练线性分类器,并把representation映射到null spaces。(这样做也相当于”忘记“)。
相较于使用counterfactual来确认(identify)invariances,一个补充的方法是使用使得模型改变预测的最小change,来生成counterfactual。这样的例子被当作解释,因为他们能让我们观察到一个模型发生改变所需要的change。
最后,因果的视角在attention-based解释中,是去把内部节点当作mediator,在input到output的过程中影响因果效应。通过人工制造的counterfactual,我们可以观察到信息是如何在不同的模型组件中流动的,并且识别(identify)出他们编码在模型的什么地方。
5 Conclusion
我们在这项研究中的主要目标是收集不同的causal和NLP的结合点,我们把这些问题细分为统计因果推断和传统的NLP任务。这些研究的不同分支有共同的目标,intuitions,并且开始去表现出方法之间的协同性。Section 3中,我们展示出最近的使用NLP建模,来帮助研究者作因果结论的进展。Section 4中,我们展示出,这些因果推断中的idea是怎么被用于让NLP模型更加可信(trustworthy)和透明(transparent)。所有的这些领域都还是新生的,有很多的挑战。
因果的方法论迫使研究者解释他们的假设。为了改善科学标准,我们相信计算语言社区应该对这些假设更加清晰,并且使用因果推理分析这些数据。在这个方向推动我们的NLP方法论,能够引导出对语言和我们创建的模型有一个更好的理解