游乐游手机版
首页/AI热点日报/热点详情

ChatGPT因果推理能力评估与分析

类型:热点整理2026-05-29
ChatGPT在因果推理任务中表现平平,但因果解释能力接近人类水平。它存在严重的因果幻觉,倾向于将非因果事件误判为因果对,且版本升级后幻觉更突出。因果推理表现对提示方式、事件间词汇距离和事件密度敏感,识别显式因果关系优于隐式。

因果推理能力是衡量NLP系统智能水平的核心指标之一。过去一段时间,主流方案依赖经过微调的预训练语言模型(如BERT、RoBERTa),通过大量标注数据的监督训练来获得因果推理能力。然而,ChatGPT的出现打破了这一范式——它能在完全不依赖标注数据的情况下,在众多NLP任务中交出亮眼的答卷。

这就引出了一个关键问题:ChatGPT的因果推理能力到底如何?在本文中,我们做了一次全面的摸底测试,覆盖了四个最先进的版本:text-da vinci-002、text-da vinci-003、gpt-3.5-turbo和gpt-4。测试从三个维度展开。

1. 背景和动机

首先,我们设计了事件因果关系识别(ECI)任务作为核心基准。如图1所示,ECI任务的目标是判断一个句子中两个事件之间是否存在因果关系。这要求ChatGPT不仅要通晓常识,还要能够理解由多个实体和事件构成的复杂上下文,最终综合所有信息作出判断。

其次,我们引入了因果发现(CD)任务,这个任务对知识广度和专业深度要求更高,但不涉及太复杂的上下文。如图1所示,CD任务分两种格式:一种是多项选择,要求从两个选项中选出事件的原因或结果;另一种是二分类,直接判断两个事件之间是否存在因果关系。二分类的设置方式是将每个多项选择示例拆成两个二分类示例——把输入事件分别与两个选项配对。实验表明,二分类才是评估ChatGPT更可靠的方式。

最后,我们还尝试了因果解释生成(CEG)任务,测试ChatGPT能否为事件间的因果关系生成解释。这通常是检验机器是否真正理解因果逻辑的关键标尺,对构建可信的因果推理系统至关重要。

图1: 三种因果推理任务的形式和所用提示。需要ChatGPT回复的内容用红色标记。多项选择CD任务中有些样本要求选择输入事件的可能后果,对这些样本,我们将问题中的“cause”修改为“result”。

先抛几个核心判断:

  • ChatGPT在因果推理上表现平平,但因果解释能力相当靠谱。
  • ChatGPT存在严重的因果幻觉——它倾向于默认事件之间存在因果关系,不管事实是不是如此。
  • 因果幻觉的根源,很可能是自然语言中因果关系与非因果关系之间的报告偏差。有意思的是,ICL(上下文学习)和CoT(思维链)等技术反而会加剧这种幻觉,而随着ChatGPT版本升级,幻觉问题变得更加突出。
  • ChatGPT的因果推理能力对提示中因果概念的表达方式非常敏感。
  • 句子中事件数量增加、事件之间的词汇距离拉大时,ChatGPT的表现会走低。此外,它识别显式因果关系的能力明显强于识别隐式因果关系。
  • 开放式生成提示无法提升ChatGPT的因果推理水平。

2 数据集、评估指标及相关设置

2.1 数据集和评估指标

事件因果关系识别

我们在三个广泛使用的ECI数据集上做了实验:1) EventStoryLine v0.9(ESC),包含22个主题、258份文档、5,334个事件和1,770对因果事件对;2) Causal-TimeBank(CTB),包含184份文档、6,813个事件和318对因果事件对;3) MA VEN-ERE,包含90个主题、4,480份文档、103,193个事件和57,992对因果事件对。按照惯例,ESC只使用前20个主题进行评估。由于MA VEN-ERE没有发布测试集,我们在其开发集上评估。评价指标包括准确度、精确度(P)、召回率(R)和F1分数。

因果发现

实验在两个广泛使用的CD数据集上展开:1) COPA,包含1,000个以日常生活场景为主的多项选择题;2) e-CARE,包含21,324道覆盖广泛领域的选择题。采用准确率作为评价指标。

因果解释生成

我们在e-CARE上进行实验,该数据集包含21,324个人工标注的因果解释。自动评估采用BLEU(n=4)和ROUGE-L指标。此外,我们从每个版本的ChatGPT生成的解释中抽取100个进行人工评估,标注其是否能真正解释给定的因果事实,从而获得准确率。

2.2 实验设置

ChatGPT的提示格式如图1所示,所有评估都在zero-shot设置下进行。其他提示形式和设置在第四节中讨论。

我们通过OpenAI官方API进行实验,涵盖四个版本:text-da vinci-002通过RLHF训练得到text-da vinci-003,后者再利用对话数据训练得到gpt-3.5-turbo。虽然OpenAI未公开gpt-4的具体细节,但它已经在各类NLP任务中展现出更强大的推理能力。gpt-4的评估从每个数据集中抽取1,000个实例,temperature参数设置为0以尽量降低随机性。

2.3 基线方法

所有基线方法都基于在完整训练集上微调的预训练语言模型。ECI和CD任务中,我们将ChatGPT与基于BERT-Base和RoBERTa-Base的分类模型进行对比。此外,还引入了两种SOTA的ECI方法:基于BERT-Base的KEPT,融合背景和关系信息;以及基于RoBERTa-Base的DPJL,引入了因果线索词和事件间关系信息。CEG任务中,基线包括基于GRU的Seq2Seq模型、GPT2,以及经过微调的LLaMA 7B和FLAN-T5 11B。

3 实验

3.1 事件因果关系识别

表1展示了三个ECI数据集上的结果。

表1: ECI任务实验结果(%)。P、R、F1分别代表精确率、召回率和F1分数。Pos、Neg、Full分别对应因果对、非因果对和所有测试样例上的准确率。

几个关键发现:

即使是最新的gpt-4,也被基于微调的小型PLMs全面超越。这说明在复杂的ECI任务中,ChatGPT确实算不上优秀的因果推理器。

ChatGPT的召回率高但精确率低——大量非因果事件对被误判为因果对。这在CTB数据集上表现得尤为明显,因为该数据集中非因果对的比例更高。原因可能在于:自然语言中充满了由“导致”、“因此”等因果线索词标识的因果描述,但很少明确提及“哪些事件不是因果关系”。ChatGPT从海量自然语言文本中学习,这种报告偏差导致它擅长识别因果对,却不擅长识别非因果对。

相比之下,经过微调的小型PLMs在识别非因果对上表现更好,因为ECI训练集中非因果示例远比因果示例多,模型学到了这种数据分布。

3.2 因果关系发现

表2展示了两个CD数据集上的结果。

表2: CD任务实验结果(%)。Pos、Neg、Full分别对应因果对、非因果对和所有测试样例上的准确率。

值得注意的地方:

ChatGPT在多项选择设置中表现不错,但在二分类中却明显拉胯。原因在于多项选择时,ChatGPT只需要识别出与输入事件因果关联更明显的选项,而可以忽略那个更难分析的选项。之前一些研究只用多项选择来评估,导致误以为ChatGPT因果推理能力很强。

与ECI任务相比,ChatGPT在CD任务中识别非因果对的准确率更高。这是因为e-CARE和COPA中的非因果对是手动生成的,结构简单、与输入事件关联弱,容易识别。这也是为什么微调后的PLMs在识别非因果对上反而比因果对表现更好。

与COPA相比,ChatGPT在e-CARE中识别因果对的准确率略低。e-CARE要求的知识面更广,不仅涉及多场景的常识,还包括生物学等领域的专业知识。

更值得警惕的是:从text-da vinci-003到gpt-3.5-turbo再到gpt-4,ChatGPT越来越倾向于把所有事件都归类为有因果关系,不管事实如何。这很可能是RLHF带来的“对齐税”所致。虽然OpenAI提到升级减少了其他任务中的幻觉,但在因果关系上,模型反而更擅长“编造”因果关联了。

3.3 因果解释生成

表3展示了CEG任务的结果。

表3: CEG任务实验结果(%)。

从人工评估来看,ChatGPT生成的因果解释准确率已经接近人类水平,说明它确实是个不错的因果解释器。

与人类生成相比,ChatGPT在ROUGE-L指标上表现更好——这是一个类似“召回率”的文本生成指标。原因在于ChatGPT倾向于生成比人工标注更完整、更详细的解释。这一点在人工评估中得到了一致认可。而它在A VG-BLEU上得分偏低,正好说明这个问题:A VG-BLEU更像“精确率”,越简洁越容易得分。

手动评估中还发现,LLaMA和FLAN-T5生成的解释与输入事件高度相关,但本质上可能只是对事件的复述,或者提供了相关但无法用于因果解释的描述。这也是它们在人工评估中表现不佳的主要原因。

此外,LLaMA和FLAN-T5提供的解释明显更短,因为e-CARE训练集中的标注本身就非常简洁。而ChatGPT在提供全面、详细的解释方面优势明显,这展示了它在因果解释上的独特价值。

最后一点:虽然微调后的LLaMA、FLAN-T5和ChatGPT在ROUGE-L分数上很接近,但两个微调模型在人工评估中表现明显更差。因为ChatGPT生成的解释比测试集中的标注更全面、更详细,反而拉低了ROUGE-L数值。实际上,ChatGPT的解释质量非常靠谱。

4 分析

4.1 上下文学习

如表4和表5所示,我们分析了ChatGPT在不同ICL设置下的表现:1)“x pos + y neg”——随机选择x个因果训练样例和y个非因果训练样例作为上下文示例,所有测试样例共享相同示例;2)“top k similar”——对每个测试样例检索最相似的k个训练样例作为上下文。论文还额外分析了ICL示例顺序和标签分布的影响。

表4: ChatGPT在ECI任务中使用上下文学习的表现。“none”表示未使用上下文学习的ChatGPT。

表5: ChatGPT在二分类CD任务中使用上下文学习的表现。“none”表示未使用上下文学习的ChatGPT。

观察结果如下:

当x和y都不超过4时,ICL主要提升了因果对的准确率,却降低了非因果对的准确率。虽然ICL能激发ChatGPT的能力,但因为它本身更擅长识别因果对,所以ICL实际上加剧了两者之间的不平衡。

“4 pos + 48 neg”的设置获得了更高的整体准确率,但这其实是牺牲Pos Acc换来的Neg Acc提升。而ESC数据集中非因果对更多,导致表面上的Full Acc被拉高了。真正的性能提升应该是Pos Acc和Neg Acc同时提升,而不是拆东墙补西墙。

4.2 思维链提示

表6展示了ChatGPT在不同CoT设置下的表现:1)“-w/ CoT zero-shot”——在提示后加一句“Let’s think step by step”;2)“-w/ CoT x pos + y neg”——手动给x个因果训练样例和y个非因果训练样例标注推理链,所有测试样例共享相同的上下文示例。论文还展示了ChatGPT的错误类型和推理链条样例。

表6: ChatGPT在ECI和二分类CD任务中使用CoT的表现。“none”表示未使用上下文学习的ChatGPT。

结论很清晰:

“-w/ CoT zero-shot”在ECI任务上没什么效果,说明零样本生成的推理链质量不够好。

“-w/ CoT x pos + y neg”提高了因果对的准确率,但降低了非因果对的准确率。查看生成的推理链可以发现,ChatGPT为非因果对生成的链条质量明显低于因果对,这种差异进一步拉大了两者之间的不平衡。

4.3 表达因果关系的方式

如图2所示,我们测试了提示中使用不同方式表达因果概念时ChatGPT的表现变化:

1)“counterfactual”——基于反事实因果观点的提示;

2)“one-step”——添加“one-step”这样的限定词,尝试降低将非因果对误判为因果的倾向;

3)“trigger()”——使用不同的因果提示词(如“lead to”)来构建提示。

图2: 各种表达因果概念的提示。需要ChatGPT回复的内容用红色标记。

实验结果在表7中。

表7: 不同因果表达方式在ECI任务上的表现。

值得关注的点:

“counterfactual”提示导致几乎所有非因果对都被判成因果对。人工检查后发现,主要是因为ChatGPT的反事实推理不够准确。

“one-step”提高了非因果对的准确率,但降低了因果对的准确率。这意味着像“one-step”这样的限定词只是让模型更倾向于判为非因果,并没有真正增强它的因果推理能力。

“trigger()”在不同提示词下的表现差异很大。很可能是ChatGPT在预训练阶段主要通过因果提示词学习因果知识,但每个提示词触发的因果分布不同。对人类来说含义相同的因果提示词,对ChatGPT来说可能代表完全不同的因果概念。这说明通过提示精准地向ChatGPT传达因果含义,本身就是一件很有挑战性的事。

4.4 事件之间的词汇距离

如图3所示,我们分析了ChatGPT处理不同词汇距离事件对的表现。“词汇距离”指的是句子中两个事件之间间隔的单词数。

图3: ChatGPT在ESC数据集中处理不同词汇距离事件对的表现。

实验结果:

随着事件间距增大,ChatGPT更倾向于将事件对判为非因果。自然语言中的规律是事件距离越远,因果关系越弱,ChatGPT学到了这个模式。

F1分数随着间距增大而下降,说明ChatGPT不擅长识别长距离因果关系。有个异常值是gpt-4在[25,30)区间的F1分数,这是因为在这个区间内gpt-4的1,000个测试样例中只有35个,样本太少导致结果随机性较大。但其他所有数据点都指向同一个结论:事件距离越大,表现越差。

4.5 事件密度

如图4所示,我们分析了ChatGPT处理不同事件数量句子的表现。

图4: ChatGPT在ESC数据集中处理不同事件数量句子的表现。

观察结果:

随着事件密度增大,大多数版本的ChatGPT倾向于判为非因果。原因很简单:事件越多、上下文越复杂,捕捉事件间关联就越困难。

F1分数随着事件密度增加而下降,说明ChatGPT不擅长处理涉及多个事件的复杂场景。

4.6 因果关系类型

如图5所示,我们分析了ChatGPT处理不同类型因果关系事件对的准确性:1)显式因果——由因果提示词(如“lead to”)明确触发的因果关系;2)隐式因果——没有因果提示词表达的因果关系。

图5: ChatGPT在ESC数据集中处理不同类型因果关系事件对的表现。

结果很直观:

识别显式因果关系明显好于隐式因果关系。因为显式因果只需要识别因果提示词,而隐式因果需要结合上下文信息和常识进行推理。

4.7 开放式提示

最近有研究发现,对ChatGPT来说,开放式提示(如“谁去了公园?”)往往比限制性提示(如“约翰去了公园。对还是错?”)效果更好。表8分析了ChatGPT在开放式提示下的表现:

1)“open-ended A.1/2/3”——要求ChatGPT生成输入句子中的所有因果事件对,设计了三种不同提示进行综合评估。

2)“open-ended B”——给定输入句子中的目标事件,要求ChatGPT生成与目标事件有因果关系的事件。

这些提示的格式在图6中展示。

图6: 开放式提示。红色标记为需要ChatGPT回复的内容。

我们对开放式提示采用了边界宽松的P、R、F1计算方法:当预测的结果事件与标注的结果事件共享至少一个单词,同时预测的原因事件与标注的原因事件也共享至少一个单词,就算正确。

表8: ChatGPT使用开放式提示在ECI任务上的表现。“close-ended”表示图1中的原始ECI提示。虽然“close-ended”提示并未明确要求输出“yes”或“no”,但它的句法结构已经引导ChatGPT几乎总是输出“yes”或“no”。

观察结论:

开放式提示反而降低了ChatGPT的性能。原因是开放式提示要求ChatGPT同时完成事件提取和ECI任务,而之前的研究已经表明,ChatGPT不擅长事件提取。

5 结论

通过这次全面的评估,我们对ChatGPT的因果推理能力有了清晰的认知:

  • 在因果推理这件事上,ChatGPT更像是一个会讲故事的作家,而不是严谨的逻辑学家。它不擅长因果推理,但因果解释能力确实出色。
  • ChatGPT存在严重的因果幻觉,根源很可能是因果关系的报告偏差。
  • 随着版本升级以及ICL、CoT等技术的引入,这种幻觉反而越来越严重。
  • ChatGPT对提示中因果概念的表达方式非常敏感,开放式提示不适合它。
  • 在处理事件时,ChatGPT擅长捕捉明确的因果关系,在事件密度低、事件距离小的句子中表现更好。

当然,也许存在更精细的提示能进一步提升ChatGPT的表现。但我们的判断是:仅靠提示,无法从根本上解决ChatGPT在因果推理中面临的问题。我们希望这项研究能推动后续工作——比如如何解决ChatGPT的因果幻觉,或者在多因素、多模态的因果推理场景中做更深入的探索。

来源:https://m.elecfans.com/article/2353882.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。