想象你是一家侦探事务所的所长,手下有一位“天才实习生”——大语言模型。这个实习生读过天下所有卷宗,记忆力惊人,任何档案都能倒背如流。可有一天,法官在庭上问它:“为什么保险柜会被打开?”“要是当晚保安没睡过头,失窃案还会发生吗?”实习生愣住了——它能背出所有“发生了什么”的资料,却答不上“为什么”和“如果”。 这正是当下大语言模型面临的拷问。普通问答只需搜索记忆,而因果问答(Causal QA)要求模型从错综复杂的线索里分辨:哪些是真正的因果,哪些只是巧合的相关。本文就是用这位实习侦探的成长故事,带你理解因果问答是什么、如何评估、怎样提升,以及它在真实世界里能破哪些案子。

岗位关联

掌握因果问答的设计与评估思路,是构建可靠智能助手与决策支持系统的关键能力,能帮你突破“只会找相关、说不出因果”的模型瓶颈。

目录
  1. 可视化演示
  2. 神探入门课:什么是因果问答
  3. 第一课:相关不等于因果
  4. 法庭考题:三类因果问题
  5. 神探考核表:评估基准测试
  6. 破案手册:因果推理方法
  7. 神探的软肋:模型能力边界
  8. 接案实战:应用落地场景
  9. 未来之路:因果推理新方向
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

展示相关与因果的本质差异、反事实推理的因果阶梯及因果图方向约束,支持三模式交互切换。

本节配有交互动效(进入视口后自动加载,约 3KB)。

相关与因果的本质差异 混杂变量(温度)同时影响冰淇淋销量与溺水率 二者正相关但无因果关系,为伪关联 下雨导致地面湿为真因果 P(Y|X)≠P(Y|do(X)) 统计相关不等于因果。

神探入门课:什么是因果问答

侦探所所长给实习生出了一道考题:“请回答,为什么昨天凌晨仓库的警报器响了?”实习生能背出完整的事故报告,却答不出“为什么”。因为它擅长检索记忆,不擅长因果推理。在AI领域,这同样是一道难题:因果问答要求模型面对“为什么”和“怎么办”的问题,给出基于因果机制而非表面词频的回答。它不只问“发生了什么”,更追问“是什么引起了它”以及“如果改变了它,会产生什么不同”。

从技术上说,因果问答通常建模为:给定问题 \(q\)、上下文 \(C\),有时还有一张可选的因果图,要求模型输出答案 \(a\)。问题的答案必须反映干预或反事实的语义,而不能只是从语料中找一句最像的话。它是衡量LLM“理解因果机制”的试金石,也是从“会说话”走向“会判断”的关键一环。

因果问答的数学核心,是这个“干预”记号:

回到侦探实习生:掌握了do算子,它才分得清“看着嫌疑人走进咖啡馆”和“把嫌疑人推进咖啡馆”是两回事——前者是观察相关,后者才可能验证因果。一个只背卷宗的模型,永远无法回答“如果”类问题。

P(Y=y∣do(X=x))\displaystyle P(Y = y \mid do(X = x))
这个式子读作:“当我们主动把X设定为x时,Y等于y的概率。”它区分了“观察”与“干预”。
  1. 概率函数 P表示某个事件在给定条件下的发生概率,例如“明天下雨的概率”。
    P(⋅)P(\cdot)
  2. 结果事件 Y = y我们关心的被解释事件,比如“失窃案发生”或“用户流失”。
    Y=yY = y
  3. do 算子 do(X = x)英文 do(做)取名的运算符,表示主动干预,把X强制置为x,如同实验里人为控制变量。而普通条件概率中的“看到X=x”不做任何干预。
    do(X=x)do(X = x)

第一课:相关不等于因果

侦探发现嫌疑人每天都出现在案发地附近的咖啡馆,看起来“高度相关”。但真实原因可能是:嫌疑人是这家咖啡馆的咖啡师。相关只是两个变量在数据中共同变化的倾向,而因果要求改变一个变量会直接带来另一个的改变。混淆变量是制造伪相关的元凶:一个隐藏因素同时推动两个变量,让它们看起来同步。

典型例子就是可视化里的冰淇淋与溺水:两者在夏天同时上升,共同原因却是高气温。这类问题在LLM应用中大量出现——比如“网站访问量上升”和“Bug出现次数上升”同步发生,背后可能是版本发布这个共同原因。如果模型只凭相关性回答“访问量大导致Bug多”,就犯了侦探的错误。

从统计上,相关系数是衡量线性关联的常用指标:

侦探不会被“出现在现场附近”这个表象迷惑。它要找到证据链证明:真正改变案件走向的是哪个变量。因果问答的使命,就是让模型也学会这一步——看见同步,更要追问同步背后的机制。

r=∑i=1n(Xi−Xˉ)(Yi−Yˉ)∑i=1n(Xi−Xˉ)2⋅∑i=1n(Yi−Yˉ)2\displaystyle r = \frac{\sum_{i=1}^{n}(X_i - \bar{X})(Y_i - \bar{Y})}{\sqrt{\sum_{i=1}^{n}(X_i - \bar{X})^2} \cdot \sqrt{\sum_{i=1}^{n}(Y_i - \bar{Y})^2}}
这个式子衡量两个变量的线性关联强度,取值范围是 -1 到 1。1 表示完全正相关,-1 表示完全负相关,0 表示无线性关联。但它不回答“谁引起了谁”。
  1. 样本对 (X_i, Y_i)第 i 个观测到的两个变量取值,比如第 i 天的冰淇淋销量和溺水人数。
    Xi, YiX_i,\ Y_i
  2. 均值 \bar{X}, \bar{Y}两个变量的平均值,用来衡量中心位置。
    Xˉ=1n∑i=1nXi\bar{X} = \frac{1}{n}\sum_{i=1}^{n}X_i
  3. 乘积之和当 X_i 高于均值时 Y_i 也高于均值,乘积为正,说明两者同步变动。
    ∑i=1n(Xi−Xˉ)(Yi−Yˉ)\sum_{i=1}^{n}(X_i - \bar{X})(Y_i - \bar{Y})
  4. 归一化分母把量纲和波动幅度抵消,让 r 落在 [-1, 1] 区间。
    ∑(Xi−Xˉ)2⋅∑(Yi−Yˉ)2\sqrt{\sum(X_i-\bar{X})^2} \cdot \sqrt{\sum(Y_i-\bar{Y})^2}

法庭考题:三类因果问题

侦探在法庭上会遭遇三连问。第一问:“证人看到被告出现在现场,这与案发有什么关系?”——这是关联。第二问:“如果案发当晚实施了新的安保程序,结果会怎样?”——这是干预。第三问:“要是被告当时没有离开家,案件还会发生吗?”——这是反事实。

图灵奖得主 Pearl 把推理分为三个层级:关联、干预、反事实。LLM 要良好地完成因果问答,就必须在这三个层级上给出正确回答,而不仅仅停留在关联层。关联层只需统计规律,干预层涉及改变系统,反事实层则要在已知事实之上做“平行世界”推断。

三者的形式化区别是:

侦探在脑中搭建“平行世界”:假如凶手当时没拿到钥匙,现场会不会不同?这种推理无法从已发生的数据中直接统计到,却恰恰是决策与问责的核心。法官问的永远是“如果”,而不是“已经”。

P(Y∣X),P(Y∣do(X)),P(Yx′∣X=x)\displaystyle P(Y \mid X), \quad P(Y \mid do(X)), \quad P(Y_{x'} \mid X = x)
从左到右分别读作:“看到 X 时 Y 的概率”、“干预 X 时 Y 的概率”、“在已知 X=x 的情况下假设 X=x' 时 Y 的概率”。层次越高,推理难度越大。
  1. 关联层 P(Y|X)被动观察到 X 后,Y 的分布。例如“看到吸烟者中,患肺癌的比例”。
    P(Y∣X)P(Y \mid X)
  2. 干预层 P(Y|do(X))主动设定 X 的取值,观察 Y。例如“强制所有人戒烟后,患癌比例如何变化”。
    P(Y∣do(X))P(Y \mid do(X))
  3. 反事实层 P(Y_{x'} \mid X = x)事实是 X=x,我们追问“若 X=x' 会怎样”,其中 x' 是一个未曾发生的假设值。
    P(Yx′∣X=x)P(Y_{x'} \mid X = x)

神探考核表:评估基准测试

只靠感觉无法知道实习生是否成为神探。评测机构设计了专门的考卷:一组经精心标注的因果问答数据集,比如 COPA(因果推理选择题)、CausalQA(开放问答)等。考卷里混入了大量“看起来相关”的干扰项,只有真正的因果推理能答对。

评估通常从三个维度看:答案准确率(答对题目占比)、方向判断(能否正确识别哪边是因、哪边是果)、理由质量(解释是否依赖正确的因果机制,而非凑巧的词面线索)。评测数据往往还标注了“干扰变量”,用来检查模型是否被相关性带偏。

准确率的定义很直接:

就像侦探考试卷里特意安排“红鲱鱼”(误导线索),好的因果评测也会在题目里埋下“高相关但无关因果”的选项。答对这些干扰题,才算没被表象欺骗。评估不是找茬,而是给模型的因果能力做X光。

Acc=1N∑i=1N1(y^i=yi)\displaystyle \text{Acc} = \frac{1}{N} \sum_{i=1}^{N} \mathbb{1}(\hat{y}_i = y_i)
意思是:在所有 N 道题中,模型答对的题目占比。但准确率高只是“及格”,真正的因果力要看干扰项上的表现。
  1. 求和与平均1/N 乘以求和符号,表示“对 N 个样本取平均”。
    1N∑i=1N\frac{1}{N}\sum_{i=1}^{N}
  2. 指示函数当预测答案与真实答案相等时取 1,否则取 0。
    1(y^i=yi)\mathbb{1}(\hat{y}_i = y_i)
  3. 整体含义答对题数除以总题数。若题目设计得好,高准确率意味着模型真的在做因果判断而不是背答案。
    Acc=答对数总题数\text{Acc} = \frac{\text{答对数}}{\text{总题数}}

破案手册:因果推理方法

有个身手好但经验浅的侦探并不够,还需要一本破案手册——如何提问、如何串联证据。对 LLM 而言,手册就是提示工程与解码策略。常用方法有四类:一是链式思考(Chain-of-Thought),让模型先把推理过程说出来再给结论;二是因果状语约束,在问题中显式提示“请先判断这是相关还是因果”“是否存在第三变量”;三是少样本示例,给模型展示几个已知的“相关 vs 因果”判别范例;四是因果图引导,让模型以图结构组织知识再推导,相当于给侦探一张案件关系图。

因果图是知识表示的关键:图中的节点是变量,有向边表示直接因果。联合概率分布的可分解性,是因果图模型被广泛应用的原因:

侦探把卷宗画成“嫌疑人关系图”,从图中一眼看出谁直接影响谁、谁只是间接牵连——这就是因果图在破案中的威力。提示工程负责把这份关系图“画进”模型的推理过程。

P(X1,X2,…,Xn)=∏i=1nP(Xi∣Pa(Xi))\displaystyle P(X_1, X_2, \dots, X_n) = \prod_{i=1}^{n} P(X_i \mid \text{Pa}(X_i))
这表示“整张因果图的联合概率,等于每个变量在其直接父节点条件下的概率之积”。它把复杂因果关系拆成了易于推理的小模块。
  1. 联合概率所有变量共同出现的概率分布,刻画全局关系。
    P(X1,X2,…,Xn)P(X_1, X_2, \dots, X_n)
  2. 连乘符号将多个条件概率相乘,表示把整体拆成部分再组合。
    ∏i=1n\prod_{i=1}^{n}
  3. 父节点 Pa(X_i)在因果图中直接指向 X_i 的变量,也就是 X_i 的直接原因。
    Pa(Xi)\text{Pa}(X_i)
  4. 结构含义每个变量只依赖其父节点,与更远的间接因素条件独立,因此可以从局部的因果信息重建全局分布。
    P(Xi∣Pa(Xi))P(X_i \mid \text{Pa}(X_i))

神探的软肋:模型能力边界

再聪明的实习生也有短板。第一块短板是相关性偏见:训练数据里大量共现信息,让模型默认“A 在 B 之前出现 = A 导致 B”。第二块短板是无法做实验:do 算子需要主动干预数据生成过程,而 LLM 只能被动读数据。第三块短板是分布外退化:遇到训练分布之外的新问题,模型容易胡编原因。

形式上有:

这说明从观察数据中得到的条件概率,通常不等于干预后的概率。LLM 若只记住“x 出现时 y 也出现”的词间关系,就相当于用左边的观察概率冒充右边的干预概率。

侦探虽然能把案发前的种种迹象背得滚瓜烂熟,但它从未真正改变过一次案发进程。背下案卷不等于有能力阻止案件——LLM 也需要在“不知道”时承认边界,而不是自信地编造答案。

P(y∣x)≠P(y∣do(x))\displaystyle P(y \mid x) \neq P(y \mid do(x))
左边是“看到 X 时 Y 的概率”,右边是“强行让 X 发生时 Y 的概率”。两者相等的情况很少,所以用观察替代实验会出错。
  1. P(y | x)观察到 x 后 y 的条件概率,来自历史数据。
    P(y∣x)P(y \mid x)
  2. P(y | do(x))通过干预实验得到的 y 概率,需要改变系统的生成方式。
    P(y∣do(x))P(y \mid do(x))
  3. 不等号提醒“观察 ≠ 干预”,模型必须意识到自己缺的是实验能力。
    ≠\neq

接案实战:应用落地场景

当侦探掌握了因果问答,就能真正接上案子。在医疗问诊辅助中,用户问“我最近总失眠,为什么呢?”系统不能只回答“失眠与压力相关”,而应指出“在控制作息、咖啡因等混杂因素后,长期焦虑是显著原因”,给出可干预的方向。在企业决策支持中,“如果下调价格 10%,销量会怎样”需要干预推断,而非简单地用历史相关数据外推。在智能运维中,“为什么服务突然变慢”需要把多个监控指标构建成因果图,定位根因。

决策系统常用一个简单规则:

侦探不再只会分析旧案,而是给警长出具行动建议:“如果派警力到 A 区,预计抢劫案下降 15%,因此建议执行。”——因果问答让 LLM 从解说员变成参谋。

Do(x)=1[E[Y∣do(X=x)]>τ]\displaystyle \text{Do}(x) = \mathbb{1}\left[ E[Y \mid do(X = x)] > \tau \right]
含义是:只有当“干预 X=x 之后,结果 Y 的期望收益超过阈值 τ”时,才选择执行该干预。这比“看到高相关就行动”可靠得多。
  1. 干预期望执行干预后,结果 Y 的平均水平,由因果模型估计。
    E[Y∣do(X=x)]E[Y \mid do(X = x)]
  2. 指示函数条件成立输出 1(执行),否则输出 0(不执行)。
    1[⋅]\mathbb{1}[\cdot]
  3. 阈值 τ行动门槛,由业务场景决定,比如成本与风险承受度。
    τ\tau

未来之路:因果推理新方向

神探体系还在进化。当前 LLM 的因果问答更多依靠语言先验打擦边球,真正的因果推断还需外部工具与结构化模型的支援。几个方向值得期待:因果外推——从观察数据估计干预效果,减少对随机实验的依赖;因果世界模型——让模型在内部显式构建环境因果图,而不是只记忆词序;人机协同——由人定义因果假设,由模型进行大规模计算验证;可解释性——让模型输出附带清晰的因果链条,使用户“知其所以然”。

训练一个更接近真正侦探的模型,可以在损失函数中加入因果先验:

侦探所的下一个纪元,不是记忆更全的实习生,而是能设计实验、构建因果模型,并敢于说“我不知道”的思考者。因果问答正是通往这个纪元的起点。

min⁡θE(q,a)∼D[L(fθ(q),a)]+λ⋅Rcausal(θ)\displaystyle \min_{\theta} \mathbb{E}_{(q,a) \sim \mathcal{D}} \left[ \mathcal{L}(f_{\theta}(q), a) \right] + \lambda \cdot \mathcal{R}_{causal}(\theta)
目标是在“答对问题”和“遵循因果结构约束”之间取平衡。λ 控制因果先验的权重。
  1. 期望与损失在数据分布中,模型预测与标准答案的平均偏差(损失)越小越好。
    E(q,a)∼D[L(fθ(q),a)]\mathbb{E}_{(q,a) \sim \mathcal{D}} \left[ \mathcal{L}(f_{\theta}(q), a) \right]
  2. 权重参数 λ控制后一项(因果先验)有多重要。
    λ\lambda
  3. 因果正则项约束模型的预测与合理因果图一致,例如禁止把纯混淆关系当因果。
    Rcausal(θ)\mathcal{R}_{causal}(\theta)

AI 应用场景

医疗问诊归因助手

阶段:推理与决策

解决的问题:传统问诊助手只会罗列与症状相关的疾病列表,无法回答“为什么我长期咳嗽”这类归因问题,容易把“相关但非病因”的信息也当作原因。引入因果问答后,助手可以控制年龄、吸烟史等混杂因素,给出因果层面的解释:“长期咳嗽的主要可能原因是慢性支气管炎,吸烟是主要诱因。”

具体案例:某在线问诊平台接入因果问答模块。用户描述症状后,系统先用因果图筛选嫌疑病因,再对每个候选病因计算干预后症状改善的概率,最后输出排序后的因果解释。结果显示,用户对答案的信任度相比传统列表式回答显著提升。

营销干预效果评估

阶段:策略优化与决策支持

解决的问题:业务方问“如果给老用户发 8 折券,复购率会提升多少?”传统分析只做相关性统计(领券的人复购率高),忽略了自选择偏差——本来就想买的人更可能领券。因果问答让模型区分“券带动复购”与“活跃用户自发复购”,给出干预层面的估计。

具体案例:某电商数据科学团队用 LLM 回答运营提出的因果类问题。模型提取对话中的因果意图,自动调用 uplift 模型估算干预效应,生成报告:“降价券对沉睡用户复购率提升 1.8%,对活跃用户效果不显著。”业务据此精准投放。

工业故障根因分析

阶段:诊断与解释

解决的问题:运维中告警指标高度相关,人类专家难以从数十个指标中判断根因。用因果问答让 LLM 综合监控数据构建因果图,识别“时延上升”的直接原因是磁盘队列堆积还是网络带宽抖动,避免误报与无效处置。

具体案例:某云厂商智能运维平台集成因果问答模块。当服务 SLO 抖动时,自动生成解释:“操作 X 在时间点 T 触发磁盘水位上升,进而导致时延。若回滚配置,指标预计 10 分钟内恢复。”平台据此自动触发止损预案。

Python 演示

python48 行
import numpy as np class CausalQADemo:    """迷你因果问答演示:展示"相关不等于因果"的统计事实。"""     def __init__(self, seed=42):        rng = np.random.default_rng(seed)        self.temp = rng.normal(20, 8, 300)          # 温度(混淆变量)        self.ice = 3.0 * self.temp + rng.normal(0, 8, 300)        self.drown = 0.5 * self.temp + rng.normal(0, 3, 300)     def naive_corr(self):        return np.corrcoef(self.ice, self.drown)[0, 1]     def partial_corr(self):        def residuals(a, b):            # 用 b 线性预测 a,返回残差            A = np.vstack([b, np.ones_like(b)]).T            coef, *_ = np.linalg.lstsq(A, a, rcond=None)            return a - A @ coef         rx = residuals(self.ice, self.temp)        ry = residuals(self.drown, self.temp)        return np.corrcoef(rx, ry)[0, 1]     def answer(self, question):        r = self.naive_corr()        rp = self.partial_corr()        if "为什么" in question:            if abs(rp) < 0.1:                return ("没有证据表明吃冰淇淋会直接导致溺水。"                        "观测到的强相关(r=%.2f)主要来自共同原因——高温;"                        "控制温度后偏相关仅为 r=%.2f。" % (r, rp))            return "存在可能直接因果效应,建议做受控实验(do 算子)验证。"        if "会怎样" in question:            return "若强行改变冰淇淋销量(do(ice)),预期溺水人数几乎不变。"        return "请提出为什么类或如果类问题。" if __name__ == "__main__":    demo = CausalQADemo()    print("整体相关系数 r  = %.3f" % demo.naive_corr())    print("控制温度后偏相关 r = %.3f" % demo.partial_corr())    print()    print("Q: 为什么冰淇淋销量越高,溺水人数越多?")    print("A:", demo.answer("为什么冰淇淋销量越高,溺水人数越多?"))    print()    print("Q: 如果禁止卖冰淇淋,溺水人数会怎样?")    print("A:", demo.answer("如果禁止卖冰淇淋,溺水人数会怎样?"))
目的:用模拟数据演示“整体高相关”如何被混淆变量解释——控制温度后,冰淇淋与溺水的偏相关趋近于零,从而回答“为什么”与“如果”两类因果问题。
  1. self.temp = rng.normal(20, 8, 300)生成 300 个温度样本,作为隐藏的“共同原因”。
  2. self.ice = 3.0 * self.temp + rng.normal(0, 8, 300)让冰淇淋销量受温度正向影响。
  3. self.drown = 0.5 * self.temp + rng.normal(0, 3, 300)让溺水人数同样受温度影响,但不受冰淇淋影响。
  4. def naive_corr朴素相关系数:直接看 X 与 Y 的关系,会得到很高的值。
  5. def partial_corr偏相关:先剔除温度的影响,再计算 X 与 Y 残余相关。
  6. rx = residuals(self.ice, self.temp)把销量中被温度解释的部分去掉。
  7. np.corrcoef(rx, ry)[0, 1]计算残差之间的相关系数。
  8. if "为什么" in question识别“为什么”型问题,返回因果层面的解释。
  9. if "会怎样" in question识别“如果”型问题,给出干预推断的结果。

常见误区

误区“我看到两个数值走势一模一样,肯定是一个导致了另一个,这不就是因果吗?”

正解相关系数只度量线性共变,不包含方向、不排除共同原因、更不代表干预会改变结果。就像“冰淇淋销量和溺水人数”高度相关,但禁止卖冰淇淋不会降低溺水人数。要验证因果,需借助 do 算子、受控实验,或对混淆变量的控制。

为何常见:人天生擅长从共变中推断因果,这是进化形成的快速启发式;而数据中共同趋势太常见,大脑默认“一起变就是有关系”。

误区“我的模型在因果问答基准上准确率 90%,它一定理解了因果关系。”

正解LLM 可能记住训练数据中的词间关联或答案模式,而不是进行干预推理。评测数据若存在语言偏差(例如“因为”后面常接“所以”),模型可无需理解机制就答对。需要设计干扰项、控制混淆变量的测试才能验证真伪。

为何常见:准确率是最直观的指标,但“答对”不等同于“理解”,尤其是语言模型擅长模式匹配。

误区“要是当时没下雨,比赛一定能赢——这问题肯定有一个标准答案。”

正解反事实推理依赖假设的因果模型和未观测变量。不同假设(如天气是否直接影响状态)会推出不同结论。因此优秀模型应该给出条件化回答:“如果天气只影响场地,那么……”,而不是断言唯一结论。

为何常见:非黑即白的直觉让学习者期待每个因果问题都有标准答案,而现实中因果推断本质是假设驱动的。

误区“我在 prompt 里写'请进行因果推理',模型就会 do 算子计算了。”

正解提示词能引导模型调用语言先验,但不会让它自动执行真正的干预或反事实计算。更可靠的做法是:少样本示例 + 因果图约束 + 对答案的结构化后处理。提示工程是“引导”而非“魔法开关”。

为何常见:LLM 输出的因果术语很流畅,让人误以为它在进行严格推理;但只要把问题换成分布外场景,模型往往立刻漏馅。

误区“我把所有变量都连上边,因果图肯定比其他图更准确。”

正解过拟合的因果图会造成伪精确:边数越多,越容易把噪声当作因果。正确做法是追求“最小充分图”,用简洁结构解释最多的观测规律,并通过干预实验验证关键边。

为何常见:人在信息不足时倾向于添加假设来“解释一切”,这恰好违背了奥卡姆剃刀原则——如无必要,勿增实体。

面试题

Q1. 因果问答与普通问答的核心区别是?

单选题 · easy

  • A.从数据中找出统计规律
  • B.回答为什么和如果类问题← 正确答案
  • C.只能处理英文问题
  • D.不需要理解上下文

答案:B。普通问答回答“是什么”,因果问答回答“为什么”“如果”,核心在因果层面。A 是所有数据任务都有的共性;C 与语种无关;D 明显错误——理解上下文是问答的基础。

Q2. 下列哪组关系最能说明“相关不等于因果”?

单选题 · easy

  • A.吸烟与肺癌关联
  • B.打雷与闪电相伴
  • C.冰激凌销量与溺水← 正确答案
  • D.训练量与成绩正相关

答案:C。冰激凌销量与溺水人数同受高温驱动,是经典伪相关案例。A 是公认的强因果;B 是同一自然现象的两个表现;D 通常有真实因果(练习促进成绩),都不如 C 典型。

Q3. 在 do 算子的语义中,do(X=x) 表示什么?

单选题 · mid

  • A.观察到 X 等于 x
  • B.主动将 X 设定为 x← 正确答案
  • C.X 与 x 做相关分析
  • D.删除变量 X 的取值

答案:B。do 表示干预——主动改变变量取值,对应受控实验。观察只是被动记录,二者有本质区别。C 是混淆了相关操作;D 是删除变量,不是干预。

Q4. Pearl 因果层次从低到高依次是?

单选题 · mid

  • A.关联、干预、反事实← 正确答案
  • B.干预、关联、反事实
  • C.反事实、干预、关联
  • D.关联、反事实、干预

答案:A。精确的三层结构是“看到(关联)→ 做到(干预)→ 假设(反事实)”。B 顺序错误;C 完全颠倒;D 把反事实和干预调换了位置。

Q5. 反事实问题“要是当时没下雨,比赛会赢吗”属于哪个层次?

单选题 · mid

  • A.属于关联层级
  • B.属于干预层级
  • C.属于反事实层级← 正确答案
  • D.属于描述层级

答案:C。该问题在事实(下了雨)之上做假设性改变,追问“如果没下雨会怎样”,正是反事实层级的定义。关联层只观察事实,干预层是主动改变,而这里是对已成事实的假设性改写。

Q6. 评估因果问答模型时,哪项最能防止“答对靠语言巧合”?

单选题 · mid

  • A.增加选择题的数量
  • B.加入高相关非因果干扰项← 正确答案
  • C.缩短问题的文本长度
  • D.只保留记忆型问题

答案:B。干扰项专门测试模型能否抵抗“高相关但非因果”的陷阱。若模型在干扰题上答错率高,说明它依赖共现模式而非因果机制。单纯加题量不改变评测质量;缩短问题或只留记忆题反而降低区分度。

Q7. 下列哪项最能说明模型把关联当成了因果?

单选题 · hard

  • A.训练集准确率高
  • B.删除混淆变量结论翻转
  • C.干扰题答错率很高← 正确答案
  • D.模型回答十分迅速

答案:C。干扰题正是“高相关但非因果”的陷阱。模型在干扰题上答错率高,说明它把共现关系当成了因果关系。A 只说明记忆好;B 是数据层面的现象,不是模型行为;D 与因果能力无关。

Q8. 因果问答在工业界的典型应用包括哪些?

多选题 · easy

  • A.医疗问诊归因解释← 正确答案
  • B.营销干预效果评估← 正确答案
  • C.拼写纠错任务
  • D.工业故障根因分析← 正确答案

答案:ABD。医疗问诊需要归因与干预建议,营销需要干预效果估计,工业运维需要根因定位——三者都需要因果层面的回答。拼写纠错是序列标注问题,不涉及因果推理。

Q9. 下列哪些方法能增强 LLM 的因果推理能力?

多选题 · mid

  • A.因果图引导提示词← 正确答案
  • B.少样本相关因果对照← 正确答案
  • C.链式思考逐步推理← 正确答案
  • D.增大语料库容量

答案:ABC。因果图提示、少样本对照、链式思考都是业界常用的因果问答增强手段。增大语料库只能增加词汇与常识覆盖,并不能让模型获得因果机制,反而可能固化相关性偏见。

Q10. 关于 LLM 在因果问答上的能力边界,正确的说法有哪些?

多选题 · hard

  • A.语料里的相关被当因果← 正确答案
  • B.do算子需要主动干预← 正确答案
  • C.分布外问题容易退化← 正确答案
  • D.完全无法进行因果推理

答案:ABC。A 是相关性偏见,B 是干预能力缺失,C 是分布外退化,三者都是已知边界。D 过于绝对——借助精心设计的提示、因果图工具与外部实验数据,LLM 可以完成部分因果推断,只是不能等同于真正的因果理解。