雾都面包店最近生意好得反常,店员们异口同声:门口那口铜铃一响,顾客就涌进来,销量就蹭蹭上涨。可林探长捏着下巴摇头——铃响和销量同时发生,就一定是铃声带来了顾客吗?如果每天早晨八点,面包师傅端出新出炉的面包,同时顺手摇响铜铃,那么铃响和销量其实都在追随同一个“幕后推手”。分清“同时发生”与“真的造成”,正是因果推理的本领。本文像跟拍林探长破案一样,带你读懂 AI 评测中的因果推理能力:从基本概念、因果图、干预实验,到反事实推理、混杂控制与标准化评测。看完你会明白,为什么说因果推理是 AI 从“模式识别”走向“理解世界”的分水岭。
因果推理是 AI 从“模式识别”迈向“理解世界”的试金石。掌握因果逻辑与评测方法,你就能看懂模型能力报告中分数背后的含金量,也能为 AI 设计出真正考察“理解”的考题。
可视化演示
三步展示因果推理评测:SCM结构因果模型DAG表示、因果方向判断(与相关性区分)、以及反事实推理(干预do(X)预测结果)。
本节配有交互动效(进入视口后自动加载,约 3KB)。
SCM-DAG因果图 节点:变量 有向边:因果作用 SCM: 结构方程 X→Z→Y 表示因果依赖关系。
因果基本概念
警局来了个实习生,看到厨房里猫和面包屑同时出现,就断言“猫偷吃了面包”。林探长把他拉到窗边:“每天早上太阳升起,街上的人就变多,难道太阳升起是人群变多的原因?”两件事一起发生、一起变化,只说明它们“相关”,不代表一件事“造成”了另一件事。
在数据世界里,“相关”就是变量们步调一致地变动,比如铃响次数和销量曲线几乎重合。但“因果”要求的是:如果我强行改变其中一个,另一个是否会跟着变。统计学家用两个记号区分——“看见 X 取 x”记为 P(Y|X=x),“人为把 X 设成 x”记为 P(Y|do(X=x)),两者通常不相等。
AI 若只会学“相关”,就会把“猫在厨房”当作“猫偷吃”的铁证。因果推理评测的第一关,就是考察模型能否区分这两个概率。一个只会背诵文本共现的模型,会把“铜铃”和“销量”绑死;而具备因果机制的模型会追问:改变铜铃,销量真的会变吗?这种“干预效果预测”能力,决定了模型是鹦鹉还是侦探。
1. 观察概率:表示在自然数据中“看到”X 等于 x 时 Y 出现的概率,它混杂了背景因素,比如铃响时恰好面包出炉。
2. 干预概率:表示“动手”把 X 强制设定为 x 后 Y 出现的概率,此时 X 不再被动跟随其他因素。
3. 不相等:两个概率在存在混杂或反向因果时必然不同,相等只在完全随机实验等特殊场景下偶然成立。
林探长给实习生立下第一条侦探守则:“同时出现只是嫌疑,你动手改变它,才能拿到口供。”因果推理评测,考的就是 AI 会不会主动“动手”。
因果图模型
林探长办案第一步,从来不是对着零散线索瞎猜,而是画一张“案情关系图”:谁可能影响谁,箭头从原因指向结果。小猫、铜铃、面包、客流,全部落进这张图。有了它,破案就有了图纸。
在因果推理里,这张图叫“因果图”:一种有向无环图(DAG),节点是变量,箭头表示直接的因果作用。关键规则是:每个变量只由它的“父节点”(直接原因)决定。图结构把“世界如何运转”压缩成一张可计算的图纸,AI 模型可以用它编码因果知识。
因果图最有用的地方,在于它给出联合概率的分解方式:所有事件同时发生的概率,等于每个变量在父节点条件下的概率之积。这种分解让模型从“背下所有组合”变成“按因果结构逐层计算”。我们因此能看清:铃响和销量之间根本没有箭头,它们的同步只是共同祖先“出炉”造成的。
1. 联合概率:所有变量同时取到某个组合的概率,例如“出炉=开、铃响=开、销量=高”同时出现。
2. 连乘符号:对图中全部 n 个变量逐一相乘,把复杂联合概率拆成小块。
3. 父节点条件:每个变量只依赖它的直接原因集合;没有箭头相连的变量之间条件独立。
林探长把案情关系图挂上黑板,所有警员都看到:铜铃和销量之间没有连线,那种“同步”只是错觉。因果图让误导无处遁形。
干预与Do算子
光有图还不够,林探长要验证。他挑了个没有面包出炉的下午,故意摇响铜铃。结果顾客头也不抬,销量纹丝不动。第二天面包出炉却不摇铃,店里照样排起长队。这就是“干预”——人为改变一个变量,看世界会不会跟着变。
干预在数学上写作 do(X=x):把 X 的值强行设定为 x,同时切断所有指向 X 的箭头。普通条件概率只看“观察”,而干预是在“改写”。AI 评测里常这样出题:给你观察数据,要你预测“如果平台把价格改成 9.9 元,销量会是多少”——考的就是 do 算子。
当存在混杂变量 Z(比如时间早晚同时影响铃响与销量)时,干预效果不能直接看 P(Y|X=x),而要沿“后门路径”调整:按 Z 的分布逐层加权平均。这个公式叫后门调整,它把观察数据变成能够估计因果效应的数据,正是 AI 从“看”走向“做”的桥梁。
1. 干预目标:左边是干预后的目标概率,即强行设定 X 后 Y 的分布。
2. 分层求和:把混杂变量 Z 的所有取值逐层枚举累加,权重为 Z 出现的概率。
3. 权重归一:乘上 P(Z=z) 使结果成为混合分布,相当于把被混杂扭曲的样本“掰回”自然比例。
林探长在报告里写道:“下午摇铃,销量不动;清晨出炉,销量照涨。”实验是侦探最硬的证据,也是因果评测中最有分量的一类题目。
反事实推理
考官最后抛来一个刁钻问题:“假设那天根本没有新鲜面包出炉,只有铜铃在响,销量还会涨吗?”林探长闭上眼,在脑海“重播”当天:铃响了,面包没有出现,顾客路过店门口没有停留,销量平平。他在一个平行世界里完成了推理。
这种“假如当初不一样”的推理,就是反事实推理。它的标准形态是:保持其他条件不变,把某个原因 X 换成另一个值,问结果 Y 会怎样。这类问题在已发生的数据里找不到答案——你无法同时观测“铃响但没出炉”和“铃响且出炉”两个版本。
因果推理用“潜在结果”刻画反事实:Y_i(1) 表示第 i 个样本在 X=1 世界的结果,Y_i(0) 表示 X=0 世界的结果,两者之差就是该样本的个体因果效应(ITE)。现实只能观测到其中一个,必须借助因果图和干预公式“补齐”另一个世界。评测中,模型能否答对反事实题,是区分“真懂”与“背答案”的试金石。
1. 干预结果:第 i 个样本在 X=1(如铃响)这一平行世界中的结果。
2. 对照结果:同一个样本在 X=0(如铃不响)平行世界中的结果。
3. 两者之差:两个世界的结果差,就是该个体独有的因果效应。
“好侦探必须能在脑子里做实验。”林探长合上卷宗,把这句话写进办案手册——不会反事实推理的 AI,永远只是数据的录像机。
混杂与偏差
案件出现反转。林探长翻查记录,发现“早高峰”这个隐形角色:早上八点,上班族路过、面包出炉、铜铃响起,三件事叠在一起。铃响之所以“看起来”带动销量,是因为它总和真正的原因——新鲜面包——同时出现。这个藏在背后的第三变量,就是“混杂变量”。
混杂变量同时影响原因 X 和结果 Y,会制造虚假关联。如果 AI 只看聚合数据,就会得出“铃响导致销量”的错误结论,甚至出现辛普森悖论:整体上 A 方案更好,分组后却是 B 方案更好。偏差的本质是:观察到的差异,并不等于因果效应。
我们可以把观测差异拆成“真实因果效应”和“混杂偏差”两项。消除混杂的常用手段有三类:随机化(让混杂在组间均匀分布)、分层/回归调整(在每层混杂内比较)、匹配(为每个处理样本找相似对照)。因果推理评测专门设计带混杂的考题,检验模型会不会被“早高峰”这类因素骗到。
1. 观测差异:数据里 X=1 组与 X=0 组结果的平均差,是肉眼可见的原始对比。
2. 真实效应:只有通过干预或调整才能获得的因果部分,是评测要考察的核心。
3. 混杂偏差:由共同原因 Z 造成的虚假部分,它让“铃响”看起来很有说服力。
林探长在报告上重重画了个圈——早高峰,然后笑道:“每个看似确凿的证据背后,都可能躲着一个没说出口的第三个人。”
评测方法
侦探协会出了一套标准卷宗:同一桩案件,先给观察线索,再问探员“你会怎么干预验证”“假如没有某个线索会怎样”“这里面有没有第三变量”。所有人用同一套题、同一套评分标准,分数一出,谁在瞎猜、谁真会推理,一目了然。这就是基准测试。
AI 的因果推理评测同理。评测机构把任务分成三类:因果发现(从数据中找出箭头)、效应估计(预测干预后的结果)、反事实问答(回答“假如”问题)。同时植入混杂、设置干预与对照,防止模型用词汇关联等捷径得分。
评估指标上,分类任务用准确率:模型预测与标准答案一致的比例;效应估计任务则比较模型给出的因果效应与真实效应的误差。基准数据集像标准化考卷,例如构造因果问答对与模拟环境数据,让不同模型在同样条件下对比。能力报告中“因果推理得分”这一栏,反映的正是模型理解世界运行机制的程度。
1. 总题数:N 表示测评集中的题目总数,作为分母。
2. 指示函数:模型预测 ŷᵢ 与标准答案 yᵢ 一致时取 1,否则取 0。
3. 平均得分:对所有题目求和后除以 N,得到 0 到 1 之间的准确率。
协会会长说:“一套好卷宗,胜过一百次口头表扬。”标准化的因果评测,就是给 AI 的推理能力颁发“侦探执照”。
应用价值
林探长功成名就,案件却源源不断:药厂请他判断“新药是否真的能降血压”,电商平台问他“打折券是否真的带动复购”,市政府问他“限行是否真的缓解拥堵”。这些问题的共同点,是都要回答“如果干预,结果会怎样”。
这些问题统一用“平均因果效应”(ATE)来回答:对全体对象分别取“被干预”与“未被干预”两个平行世界的结果期望,再做差。ATE 把个体因果效应对人群求平均,医学上用来评估药效,商业上用来评估策略。
在 AI 应用层面,大模型正被要求具备因果能力:写摘要时区分“相关报道”与“因果关系”,做决策前先问“如果我改用另一方案会怎样”。这一切的前提,是有可靠的评测让模型可用、可比、可迭代。因果推理因此成为 AI 从模式识别迈向真正理解世界的关键一环。
1. 期望符号:E 表示对整个人群求平均,把个体差异抹平。
2. 干预结果:Y(1) 表示每个人在接受干预(如服药)后的结果。
3. 对照结果:Y(0) 表示同一人群不干预时的结果,两者之差即平均因果效应。
林探长擦亮徽章,对年轻探员说:“客户花的每一分钱,买的都是'我改变它会怎样',而不是'它俩碰巧凑在一起'。”因果推理,正是 AI 对人类这份期待的回答。
AI 应用场景
医疗:药物疗效的因果评估
阶段:模型评估与上线验证阶段
解决的问题:传统方式直接用电子病历做回顾性分析时,患者年龄、病情严重度等混杂变量会扭曲“吃药—康复”的关联,使疗效被高估或低估。AI 因果模型用后门调整、倾向得分匹配从观察数据中还原真实药效,还能回答“如果换用另一种药会怎样”的反事实问题。
具体案例:某药企评估降糖新药,朴素统计显示用药组血糖改善显著;因果模型按年龄与并发症分层调整后,发现真实效果比朴素统计低约 18%,及时避免了营销误判。
大模型因果能力基准评测
阶段:能力评测与模型选型阶段
解决的问题:传统问答基准只测知识记忆,无法区分“背答案”与“真因果”。因果评测通过构造干预/对照与反事实题,让模型在“假如”场景下作答,量化其理解世界机制的程度。
具体案例:某评测团队构建“因果推理考卷”,给模型一段产品文案后追问“如果删掉优惠标语,转化率会怎样”。结果发现,擅长知识问答的模型在因果题上的得分落差超过 30%,暴露了表面聪明、实则模式拼接的问题。
推荐系统归因与决策
阶段:策略上线与效果归因阶段
解决的问题:广告点击量高未必是广告的功劳,可能是用户本来就打算购买。因果归因用“干预+反事实”测算广告的真实增量,避免把“相关性”当成“业绩”。
具体案例:电商平台评估“满减券”活动,朴素对比显示发券用户回购率高 25%;因果模型按历史购买意图分层后,发现真实增量只有 9%,于是优化投放人群,把预算转向真正敏感的消费者。
Python 演示
import numpy as np def simulate(n=2000, seed=42, intervene=False): # 模拟雾都面包店: 出炉 F 决定销量 S, 铃响 B 只是跟随出炉 rng = np.random.RandomState(seed) F = rng.binomial(1, 0.5, n) if intervene: # 干预模式: 随机拨动铃铛, 与出炉无关 B = rng.binomial(1, 0.5, n) else: # 观察模式: 铃响以 90% 概率跟随出炉, 制造虚假相关 B = np.where(rng.rand(n) < 0.9, F, rng.binomial(1, 0.5, n)) # 销量只由出炉决定, 铃响对销量没有因果作用 S = 10 + 5 * F + rng.normal(0, 1, n) return F, B, S def naive_effect(B, S): # 朴素估计: 直接比较铃响组与不响组的销量均值差 return S[B == 1].mean() - S[B == 0].mean() def adjusted_effect(F, B, S): # 分层调整: 在出炉/未出炉层内比较, 再按出炉比例加权 effect = 0.0 for f in (0, 1): mask = F == f s1 = S[(B == 1) & mask].mean() s0 = S[(B == 0) & mask].mean() effect += (s1 - s0) * mask.mean() return effect def main(): F, B, S = simulate(intervene=False) print("观察模式 朴素效应:", round(naive_effect(B, S), 3)) print("观察模式 分层调整后:", round(adjusted_effect(F, B, S), 3)) F2, B2, S2 = simulate(intervene=True) print("干预模式 朴素效应:", round(naive_effect(B2, S2), 3)) if __name__ == "__main__": main()
B = np.where(rng.rand(n) < 0.9, F, rng.binomial(1, 0.5, n))观察模式下铃响以 90% 概率跟随出炉,人为制造虚假相关。S = 10 + 5 * F + rng.normal(0, 1, n)销量只由出炉真实决定,铃响对销量没有任何因果作用。return S[B == 1].mean() - S[B == 0].mean()朴素估计直接比较两组均值差,会混入混杂偏差。for f in (0, 1):分层开始:分别在出炉与未出炉两个子层内比较。effect += (s1 - s0) * mask.mean()按出炉比例加权汇总各层效应,等价于做了一次后门调整。print("干预模式 朴素效应:", round(naive_effect(B2, S2), 3))干预后铃响被随机化,朴素估计也回归接近 0 的真实效应。
常见误区
误区“GPT 什么书都读过,铃响和销量一起出现它肯定知道是面包的功劳吧?数据里都有答案,它怎么会不懂因果?”
正解大模型学到的是词与词的统计共现,不是世界变量间的因果机制。相关模式可以从文本里抄,但“干预铃响、销量不变”这种反事实知识在文本中并没有直接样本。评测里专门设计干预题与反事实题,就是为了戳穿“背得多等于懂得多”的幻觉。
为何常见:人类靠大量经验就能归纳因果,因此容易把“数据量多”和“理解深入”混为一谈。
误区“我在模型里控制了时间、天气这些变量,不就是把铃响单独拎出来看了吗?这就是干预了吧。”
正解统计控制(分层、加协变量)仍然是在“观察”已经发生的数据,变量间原有箭头并没有被切断;干预要求主动改变 X 并切断其父路径(do 操作)。两者结构不同,结果也常常不同——控制是“看”,干预是“做”。
为何常见:因为无论是控制变量还是做实验,表面上都让 X“看起来独立”了,容易混淆操作对象。
误区“P(销量|铃响) 不就是'如果铃响了,销量会怎样'吗?条件概率不就是反事实?”
正解条件概率 P(Y|X=x) 的样本都来自 X 确实等于 x 的世界,而反事实问的是“如果 X 被改成 x”且其余条件保持原样。后者在观测数据中不存在直接样本,必须借助结构假设推算。语言上都是“如果”,但一个是筛选已有样本,一个是改写世界。
为何常见:中文里“如果/假如”和“给定/在……条件下”都可以译成 if,造成语义混淆。
误区“反正都是让模型读一段话回答问题,因果推理题和普通语文题有什么区别?一起考不就行了?”
正解因果评测题必须构造干预对照、反事实情境和混杂陷阱,评分聚焦“改变原因后结果是否变化”,与背诵事实的阅读理解有本质区别。不设防的题目会被模型用词汇捷径蒙对,测不出真实能力。
为何常见:因为表面上都是“读文本、给答案”,看不到题目内在的结构差异。
面试题
Q1. 下列哪项最能区分“相关性”与“因果关系”?
- A.两个变量变化趋势相同
- B.干预一个变量改变另一个← 正确答案
- C.两个变量在同一事件出现
- D.数据量足够大时必然因果
答案:B。相关只要求共同变化(A、C),数据量大也不能保证因果(D);只有干预(B)能验证因果——动手改变一个变量,观察另一个是否真的跟着变,这正是 do 操作的核心思想。
Q2. 雾都面包店中,铃响与销量同步出现的真正原因是什么?
- A.铃声会把顾客吸引进店门
- B.新出炉面包是两者共同原因← 正确答案
- C.销量走高导致店员去摇铃
- D.铃响与销量之间毫无关联
答案:B。共同祖先“出炉”同时驱动铃响和销量,形成 Y 型(fork)结构,制造了虚假相关。B 正确;A 把果当因,C 方向反了,D 忽略了共同原因的存在。
Q3. do(X=x) 与观察 X=x 的本质区别是什么?
- A.前者表示人为设定 X 的取值← 正确答案
- B.前者表示数据中 X 的出现次数
- C.前者表示 X 与 Y 完全无关
- D.前者表示 X 在所有样本中相同
答案:A。do(X=x) 表示切断指向 X 的箭头后人为设定其值,是干预;观察 X=x 只是筛选已有样本。其余选项混淆了 do 算子的含义。
Q4. 后门调整公式中,混杂变量 Z 的作用是什么?
- A.阻断混杂路径的干扰← 正确答案
- B.让数据分布更均匀
- C.增加样本数量的技巧
- D.替代反事实推理
答案:A。Z 是同时影响 X 与 Y 的混杂变量,公式在每个 Z 层内比较再按 P(Z) 加权,从而阻断后门路径,剥离虚假关联。B、C、D 均未涉及 Z 的因果角色。
Q5. 反事实问题“如果没有出炉,铃响还能带动销量吗”在数据中的特点是?
- A.可直接查到对应历史记录
- B.等价于条件概率的计算
- C.不存在两个版本同时观测← 正确答案
- D.可以由增加样本量解决
答案:C。同一时刻只能观测到“铃响+出炉”或“铃响+未出炉”中的一个版本,另一个平行世界的结果不可观测,必须借助结构假设补全。增加样本量也无法观测反事实分支。
Q6. 辛普森悖论给因果推理最重要的启示是什么?
- A.分组后效应方向必然改变
- B.聚合结论可能掩盖分层真相← 正确答案
- C.样本越大结论越可靠
- D.随机实验的结果不可信
答案:B。整体上 A 优于 B,分组后却可能反转,说明聚合数据中藏着混杂变量,必须分层审视。A 过于绝对,C、D 与悖论无关。
Q7. ATE = E[Y(1)] - E[Y(0)] 描述的是什么?
- A.全体人群的平均因果效应← 正确答案
- B.单个样本的干预前后值差
- C.观察数据中的组间均值差
- D.干预后数据的方差大小
答案:A。ATE 是潜在结果期望之差,代表群体层面的平均因果效应。B 是个体因果效应(ITE),C 是未调整的观测差异(含混杂),D 与因果效应无关。
Q8. 因果推理评测任务一般包括哪些?(多选)
- A.因果发现,识别变量箭头← 正确答案
- B.效应估计,预测干预结果← 正确答案
- C.反事实问答,假如场景推理← 正确答案
- D.文本翻译,语法结构分析
答案:ABC。标准因果评测覆盖三类任务:从数据中发现因果结构(A)、估计干预后的效应量(B)、回答反事实问题(C)。D 属于自然语言处理任务,不涉及因果机制。
Q9. 控制混杂变量的常用方法有哪些?(多选)
- A.随机化分组进行实验← 正确答案
- B.按混杂变量分层调整← 正确答案
- C.匹配处理组与对照组← 正确答案
- D.直接删除异常值样本
答案:ABC。随机化让混杂在组间均匀分布;分层调整在各层内比较再加权;匹配为每个处理样本找相似对照——三者都能削弱混杂。D 删除异常值不能解决混杂问题。
Q10. 关于大模型的因果推理评测,下列做法正确的是?(多选)
- A.设计干预对照题防捷径← 正确答案
- B.加入高质量反事实题← 正确答案
- C.与知识问答分别评分← 正确答案
- D.依据词汇共现打分
答案:ABC。因果评测需通过干预对照与反事实题防止模型走词汇捷径,并应与知识问答独立评分。D 恰好是评测要避免的方式——词汇共现只能反映相关性,测不出因果能力。