因果学习
一、核心洞见:相关不是因果
当今机器学习的绝大多数方法,本质上都在做同一件事:从数据中发现统计相关性。给定足够多的数据,模型能够精确地估计 \(P(Y|X)\),即"看到X时,Y出现的概率是多少"。但这里有一个根本性的问题:
相关性不等于因果性(Correlation does not imply causation)。
这个问题并非学术上的吹毛求疵。冰淇淋销量和溺水人数高度正相关,但禁止卖冰淇淋不会减少溺水。一个只学到统计相关性的模型,在面对分布偏移、新环境、需要干预决策的场景时,会系统性地犯错。
因果学习(Causal Learning) 的目标,正是让AI系统学习变量之间的因果关系,而不仅仅是统计关联。这一领域的思想根基来自 Judea Pearl,他因对因果推断的形式化贡献获得了2011年图灵奖。
二、因果层级:看、做、想
Pearl提出了一个深刻的分类框架,将对世界的认知分为三个层级,称为因果层级(Causal Hierarchy):
| 层级 | 名称 | 典型问题 | 数学形式 |
|---|---|---|---|
| 第一层 | 关联(Association) | 看到X,Y会怎样? | \(P(Y \mid X)\) |
| 第二层 | 干预(Intervention) | 如果我主动改变X,Y会怎样? | \(P(Y \mid do(X))\) |
| 第三层 | 反事实(Counterfactual) | 如果当时X不同,Y会怎样? | \(P(Y_x \mid X', Y')\) |
第一层:关联(看)
这是纯粹的观察层面。"看到病人吃了药,病好了",\(P(\text{康复} \mid \text{吃药})\) 可能很高。但这并不意味着药有效——也许只有轻症病人才会选择吃药,重症病人直接住院了。观察数据中的相关性被混杂因子(Confounders, 混杂因子) 污染了。
当前绝大多数机器学习模型,包括大语言模型,都工作在这一层。它们极其擅长捕捉数据中的统计模式,但无法区分真正的因果机制和虚假的相关性。
第二层:干预(做)
干预层面回答的是:如果我主动改变某个变量,结果会怎样?这里的关键符号是 \(do(X)\),它表示的不是"观察到X发生了",而是"我强制让X发生"。
\(P(Y \mid X)\) 和 \(P(Y \mid do(X))\) 可以是完全不同的。
经典例子:观察数据中,带雨伞的人遇到雨天的概率很高——\(P(\text{下雨} \mid \text{带伞})\) 很大。但如果你强制每个人都带伞(\(do(\text{带伞})\)),天气不会因此改变。带伞和下雨有共同原因(天气预报说要下雨),但带伞不会导致下雨。
干预推理是医学、经济政策、工程控制等领域的核心需求。随机对照实验(RCT)正是人类用来获取干预层面知识的黄金方法。
第三层:反事实(想)
这是因果推理的最高层级。反事实问的是:在已经发生的事实基础上,如果某个条件不同,结果会怎样?
"这个病人吃了药后康复了。如果他当时没吃药,他还会康复吗?"
反事实推理要求我们不仅理解因果机制,还能在心中"回退"到某个时间点,改变条件,然后重新"推演"整个过程。这是人类日常思维中极为常见的能力——后悔、规划、归责、学习教训,都依赖反事实推理。
Pearl的核心论断是:
当前的机器学习基本停留在第一层。人类智能在三个层级上都能运作。要实现类人智能,必须攀升因果层级。
三、结构因果模型:因果推理的形式语言
结构因果模型(Structural Causal Model, SCM, 结构因果模型) 是Pearl提出的因果推理的数学框架。一个SCM由三部分组成:
- 有向无环图(DAG):节点代表变量,有向边代表因果关系(\(X \rightarrow Y\) 表示X是Y的直接原因)
- 结构方程:每个变量由其父节点和噪声项决定,\(Y = f(X, U)\)
- 外生变量的分布:噪声项 \(U\) 的概率分布
SCM的强大之处在于,它能统一处理因果层级的三个层面:
- 关联:从DAG导出的条件独立性关系
- 干预:通过 do-calculus 和图手术(graph surgery)来计算干预效果
- 反事实:通过结构方程的"溯因-干预-预测"三步法
关键技术概念
混杂因子(Confounders):同时影响原因变量和结果变量的第三方变量。混杂因子是因果推断最主要的障碍——它让观察到的相关性不等于因果效应。
后门准则(Backdoor Criterion):Pearl给出的判断标准——如果我们能找到一组变量Z来"阻断"从X到Y的所有后门路径(即混杂路径),那么在Z上进行条件化就能从观察数据中恢复因果效应。
前门准则(Frontdoor Criterion):当混杂因子无法直接测量时的替代策略。通过一个中间变量M(X影响M,M影响Y,且M不受混杂因子直接影响),仍然可以识别因果效应。
do-calculus:Pearl发明的一组推理规则,可以系统性地将包含 \(do\) 算子的表达式转化为可从观察数据中估计的表达式。do-calculus是完备的——如果一个因果效应在理论上可以从观察数据中识别,do-calculus一定能推导出来。
四、因果学习为何对类人智能至关重要
鲁棒泛化
统计模型在训练分布上表现很好,但一旦分布偏移,性能就会骤降。因果模型不同:
因果机制是模块化的,跨环境保持不变。
如果模型学到的是"按下开关导致灯亮"这个因果机制,那么不管房间的颜色、时间、天气怎么变,这个机制都成立。而一个只学到统计相关性的模型,可能把"天黑了"和"灯亮了"关联起来,换一个白天按开关的场景就会失效。
样本效率
知道因果结构,极大地缩小了假设空间。如果你知道温度只取决于加热功率和散热条件,你就不需要考虑房间颜色、背景音乐等无关变量。这正是人类学习如此高效的原因之一——我们天生倾向于寻找因果解释,而非记忆所有的统计规律。
反事实推理
规划和想象的本质就是反事实推理:"如果我走这条路会怎样?如果我选择另一个方案呢?" 没有反事实推理能力,智能体就只能靠试错,无法在心中预演不同的行动方案。
可迁移性
因果机制具有模块性(Modularity):改变一个机制不影响其他机制。这意味着因果知识可以在不同环境之间迁移和复用,而统计模型在新环境中往往需要重新训练。
五、因果表示学习:连接深度学习与因果推断
传统因果推断有一个默认假设:因果变量是已知的、可直接观测的。但在现实中,我们面对的往往是原始的像素、音频波形、文本序列——高级因果变量(如"物体位置"、"光照条件"、"用户意图")隐藏在低级数据之中。
因果表示学习(Causal Representation Learning) 正是 Yoshua Bengio 和 Bernhard Scholkopf 等人推动的方向,旨在解决这个桥接问题:
如何从低级观测数据中自动发现高级因果变量及其因果关系?
这个问题的核心困难在于可识别性(Identifiability):仅从观测数据中,我们能在多大程度上唯一地恢复出真正的因果结构?无约束的情况下,答案通常是悲观的——存在无穷多个等价的因果模型可以解释同一份数据。
近年来的关键进展是发现,在适当的假设下(如数据来自多个不同的环境、或存在时间结构、或满足特定的独立性条件),因果结构是可以被识别的。这为"从数据中学习因果结构"提供了理论基础。
六、GFlowNets:将因果图搜索变成生成问题
GFlowNets(Generative Flow Networks, 生成流网络) 是 Yoshua Bengio 团队提出的一类新型生成模型,它在因果学习中扮演着独特的角色。
传统的因果结构学习面临一个组合爆炸问题:\(n\) 个变量可能形成的DAG数量随 \(n\) 超指数增长。贪心搜索容易陷入局部最优,MCMC采样效率低下。
GFlowNets的核心思想是把DAG的搜索问题转化为一个序列生成问题:
- 把构建一个DAG看作一系列"添加边"的动作
- 训练一个生成模型,使其按照与后验概率(或奖励)成正比的概率来生成DAG
- 生成过程满足"流守恒"条件,确保采样的正确性
GFlowNets的独特之处在于它同时连接了三个领域:
| 领域 | 连接方式 |
|---|---|
| 强化学习 | 将DAG生成看作序列决策问题 |
| 生成模型 | 学习一个DAG上的生成分布 |
| 能量基概率建模 | 目标分布可以用能量函数定义 |
这种方法的优势在于:它不只给出一个"最优"的因果图,而是给出因果图上的完整后验分布——这对于表达因果结构的不确定性至关重要。
七、与其他类人智能方向的连接
因果学习与世界模型
一个真正的世界模型,必须支持干预推理:
"如果我做了X,世界会怎样变化?"
这正是因果层级第二层的核心能力。仅仅能预测"下一步会发生什么"是不够的——世界模型还需要能回答"如果我改变了某个条件,下一步会怎样"。没有因果结构的世界模型,本质上只是一个高级的模式匹配器,无法支持规划和决策。
因果学习与伪因果问题
在前序笔记中我们讨论过捷径学习(Shortcut Learning) 和伪因果:模型把统计相关性误当作因果机制。因果学习正是对抗伪因果的根本途径——如果模型能区分"X和Y一起出现"与"X导致Y",它就不会被虚假相关性所欺骗。
因果学习与基础模型
2025年的前沿趋势是将因果方法与基础模型相结合。大语言模型拥有丰富的世界知识,但这些知识是以统计相关性的形式存储的。如何将因果推理能力注入基础模型,或者利用基础模型的知识来辅助因果发现,正成为一个活跃的研究方向。
八、关键挑战与开放问题
可识别性问题
仅从观察数据中,何时能唯一恢复因果结构?
这是因果表示学习的核心理论问题。没有可识别性保证的因果学习方法,可能学到的是错误的因果结构。近年来在非线性ICA、多环境学习等框架下取得了重要进展,但完全一般性的可识别性条件仍然是开放的。
规模化挑战
现实世界的因果系统可能涉及成千上万个变量,DAG空间的搜索代价极高。如何将因果发现算法扩展到大规模、高维数据,是实际应用的瓶颈。
与深度学习的深度整合
因果推断和深度学习目前在很大程度上仍是两个相对独立的社区。因果方法通常假设变量已知且有限,深度学习处理的是高维原始数据。真正打通两者,需要因果表示学习领域的进一步突破。
九、逻辑链
- 当前ML主要在因果层级的第一层(关联)工作,人类智能在三个层级上都运作。
- SCM提供了形式化的因果推理框架,统一处理关联、干预、反事实。
- 因果学习带来鲁棒泛化、样本效率、反事实推理和可迁移性——这些都是类人智能的关键能力。
- 因果表示学习试图从原始数据中发现因果变量,是连接深度学习与因果推断的桥梁。
- GFlowNets将因果图搜索转化为生成问题,同时连接了RL、生成模型和能量基建模。
- 真正的世界模型必须支持干预推理,因果结构是世界模型的核心组件。
- 可识别性是因果学习的根本理论挑战——不解决可识别性,因果发现就缺乏保证。