人类推理能力的基石在于我们能够想象从未存在过的世界。当我们回顾一个决定时,我们会问: “如果我当时接受了在伦敦的那份工作会怎样?”或者“如果我们早一周开始治疗,病人还能活下来吗?”
这些就是反事实 (Counterfactuals) 。 它们代表了因果阶梯的最高层级。不同于处理观察数据相关性的标准统计学,甚至不同于处理干预 (“如果我做 X 会发生什么?”) 的基础因果推理,反事实要求我们将观察到的现实与一个假设的替代方案进行对比。
对于因果推理领域的研究人员和学生来说,在数学上处理这些“假设 (what if) ”查询一直是一个挑战。当你拥有的是来自一个确实存在的世界的证据时,你该如何计算一个不存在的世界中某事件的概率?
在这篇文章中,我们将深入探讨研究论文 《Counterfactual Graphical Models: Constraints and Inference》 (反事实图模型: 约束与推理) 。这项工作引入了一个强大的新图形工具——祖先多世界网络 (Ancestral Multi-World Network, AMWN) ——以及一个形式化的逻辑系统,称为反事实演算 (ctf-calculus) 。 它们共同提供了一种可靠且完备的方法来进行反事实推理,推广了 Pearl 著名的 do-calculus。
平行世界的问题
要理解这篇论文的重要性,我们首先需要定义背景。因果推理通常使用因果图 (有向无环图,即 DAGs) 来可视化。

在图 1 中,我们看到一个简单的系统: 年龄 (\(Z\)) 同时影响治疗 (\(X\)) 和存活 (\(Y\)) ,而治疗 (\(X\)) 也影响存活 (\(Y\)) 。
我们可以很容易地提出概率问题,如 \(P(Y|X)\) (观察) ,或因果问题,如 \(P(Y|do(X))\) (干预) 。但反事实是不同的。一个典型的反事实查询看起来像这样: \(P(Y_{x} = 1 | X = x')\)。
翻译成自然语言就是: “鉴于我们要观察到病人实际上没有接受治疗 (\(X=x'\)) ,如果他们当时接受了治疗 (\(x\)) ,存活 (\(Y=1\)) 的概率是多少?”
这是一个跨世界 (cross-world) 查询。我们在以“真实”世界 (\(X=x'\)) 的证据为条件,询问关于“反事实”世界 (\(X=x\)) 的情况。标准的因果图在这里很难发挥作用,因为它们通常一次只表示一个世界。这篇论文提供了连接这些世界的桥梁。
结构因果模型 (SCM)
这种推理的基础是结构因果模型 (SCM) 。SCM 由一组变量和函数定义。每个可观察变量都由其在图中的父节点和一些未观察到的噪声 (外生变量) 决定,表示为 \(U\)。

当我们谈论“干预” (\(do\) 算子) 时,我们本质上是在打破一个变量的自然函数,并用一个常数取而代之。这这就创造了一个子模型 (\(\mathcal{M}_x\)) ,如上所示。
SCM 框架的精妙之处在于它统一了三个推理层级,通常称为 Pearl 因果层级 (PCH) 。

如图 2 所示:
- \(\mathcal{L}_1\): 关联 (观察 Seeing) - \(P(y|x)\)
- \(\mathcal{L}_2\): 干预 (行动 Doing) - \(P(y_{x})\)
- \(\mathcal{L}_3\): 反事实 (想象 Imagining) - \(P(y_{x}|x')\)
这篇论文的主要贡献是提供了高效的算法和规则来在 \(\mathcal{L}_3\) 中进行导航。
反事实约束的三大支柱
为了在不同世界之间进行代数运算,我们需要规则。作者确定了三种基本的约束类型,它们支配着反事实变量之间的关系: 一致性 (Consistency) 、排除性 (Exclusion) 和独立性 (Independence) 。
1. 一致性约束
一致性是连接假设与现实的锚点。它指出,如果一个变量自然地取值为 \(x\),那么通过干预将该变量设置为 \(x\) 不会改变结果。“我们强迫 X 为 x”的世界和“X 恰好为 x”的世界,对于那些特定的个体来说看起来是一模一样的。

图 3(a) 将其可视化。灰色框代表世界的机制。如果 \(X(\mathbf{u}) = x\) 自然发生,那么潜在结果 \(Y_x\) 与观察到的 \(Y\) 完全相同。
在数学上,这引出了一个至关重要的恒等式:

这条规则允许我们在观察概率和反事实概率之间切换,前提是观察结果与干预相匹配。
2. 排除性约束
排除性关于无关性。如果我们干预变量 \(X\),它应该只改变位于从 \(X\) 出发的因果路径上的结果。
考虑下面图 4(a) 中的链式结构。\(X \to Z \to Y\)。 如果我们干预 \(Z\),我们就切断了来自 \(X\) 的连接。因此,对 \(X\) 的额外干预对 \(Y\) 变得无关紧要。

在图 4(a) 的链式结构背景下,\(Y_{zx} = Y_z\)。对 \(x\) 的干预从下标中被“排除”了,因为 \(Z\) 有效地阻断了 \(X\) 对 \(Y\) 的影响。这通过移除多余的干预简化了复杂的反事实表达式。
3. 独立性约束
这是最复杂也最强大的约束。它告诉我们一个世界中的变量何时与另一个世界中的变量相互独立。
在标准的因果图中,我们使用 d-分离 (d-separation) 来读取独立性。但 d-分离作用于单个图。我们如何测试 \(Y_{xw}\) (一个我们干预了 X 和 W 的世界中的变量) 和 \(X\) (观察世界中的变量) 之间的独立性?
历史上,研究人员使用“孪生网络 (Twin Networks) ”——基本上是为涉及的每个世界复制图,并通过共享的误差项 (\(U\)) 连接它们。然而,孪生网络的扩展性很差。如果你有涉及 3 个或 4 个不同假设世界的复杂查询,图会变得巨大且难以阅读。
核心方法: 祖先多世界网络 (AMWN)
作者引入了祖先多世界网络 (Ancestral Multi-World Network, AMWN) 。 这是一种简化的图形结构,对于使用 d-分离读取反事实独立性是可靠且完备 (sound and complete) 的。
关键的洞见在于祖先 (Ancestors) 的概念。在评估特定的反事实查询时,我们不需要整个孪生网络。我们只需要查询中变量的相关祖先。
构建 AMWN
让我们看一个具体的例子。假设我们有图 4(b) (显示在上面的“排除性”部分) ,我们要检查在给定 \(Z\) 和 \(W\) 的情况下,\(Y_{xw}\) 是否独立于 \(X\)。
该算法的工作原理如下:
- 识别祖先: 我们查看查询中的变量 (\(Y_{xw}, X, Z, W\)) ,并在各自的子模型中回溯它们的祖先。
- 合并节点: 如果由于一致性或排除性,变量在确定性上是相同的,我们将它们合并。
- 添加潜变量: 我们显式添加跨世界共享的未观察到的父节点 (\(U\)) 。
让我们直观地比较这些方法。

在图 6 中,我们看到了转换。
- 左 (a): 原始因果图。
- 右 (b): AMWN。
注意图 6(b) 有多紧凑。它显式地包含了连接不同版本变量的共享潜变量 (\(U_z, U_{zx}\)) 。
- 我们可以看到 \(U_{zx}\) 连接了 \(X\) 和 \(Z\)。
- 我们看到 \(Z_w\) 影响 \(Y_{xw}\)。
在图 6(b) 上使用标准的 d-分离,我们可以检查 \(Y_{xw}\) 和 \(X\) 之间的路径。存在一条活跃路径 \(X \leftarrow U_{zx} \to Z \to Z_w \to Y_{xw}\)。因为这条路径是连通的,我们得出结论: 独立性不成立 。
效率
AMWN 比以前的方法 (如孪生网络或多重网络) 效率高得多。

如表所示,AMWN 支持任何分离查询,并且是完备的 (意味着如果图说它们是独立的,它们确实是;如果图说它们不是,则存在反例) 。至关重要的是,时间复杂度是多项式的,随世界数量 (\(z\)) 线性增长,而不是指数级增长。
反事实演算 (ctf-calculus)
有一个图来检查独立性很棒,但我们也需要执行代数变换来求解特定值。这就是反事实演算 (ctf-calculus) 的用武之地。
正如 Pearl 的 do-calculus 提供了三条转换干预表达式 (\(P(y|do(x))\)) 的规则一样, ctf-calculus 为反事实提供了三条类似的规则。
规则 1: 一致性 (观察/干预交换)
这条规则允许我们在数值匹配时将反事实干预视为观察。

如果我们观察到 \(X=x\),那么反事实的“如果 \(X=x\) 会怎样?”就是我们看到的现实。这将我们的假设数学锚定在真实数据中。
规则 2: 独立性 (添加/移除证据)
这条规则允许我们在概率表达式中添加或移除条件。

如果 AMWN 显示 \(Y_r\) 与 \(X_t\) 是 d-分离的,我们可以从条件集中移除观察 \(X_t\)。这是演算的“引擎”,允许我们简化复杂的条件概率。
规则 3: 排除性 (添加/移除干预)
这条规则允许我们修改反事实的下标。

如果在切断 \(Z\) 的图中 \(X\) 不是 \(Y\) 的祖先,我们可以从 \(Y_{xz}\) 中移除干预 \(x\)。本质上,如果做 \(x\) 在因果上无法到达 \(Y\),我们可以将其从表达式中删去。
综合应用: 确定因果关系
当我们使用该框架来识别 (identify) 因果效应时,它的真正威力就显现出来了。识别意味着将理论上的反事实量纯粹用我们可以实际收集的数据 (观察或实验数据) 来表达。
论文证明了 ctf-calculus 是完备的 。 如果一个反事实量是可识别的,它就可以用这三条规则推导出来。
让我们通过论文中提供的两个例子来演示。
示例 1: 受试者处理效应 (ETT)
我们回到“后门”图 (图 1) 。我们想找到 \(P(y_x | x')\)。 这是在我们观察到没有治疗 (\(x'\)) 的情况下,如果我们进行了治疗 (\(x\)) ,结果 \(y\) 的概率。
我们为这个查询构建 AMWN:

使用图 7(a) 中的 AMWN 和 ctf-calculus,推导步骤如下:
- 调节 (Conditioning) : 我们使用标准概率论引入 \(Z\)。 \[= \sum_{z} P(y_{x} | z, x')P(z|x')\]
- 规则 3 (排除性) : 在图中,治疗 \(X\) 不会改变 \(Z\)。所以 \(Z_x = Z\)。 \[= \sum_{z} P(y_{x} | z_x, x')P(z|x')\]
- 规则 1 (一致性) : 既然我们以 \(Z_x = z\) 为条件,我们可以将 \(Y_x\) 重写为 \(Y_{xz}\)。

- 规则 2 (独立性) : AMWN 显示 \(Y_{xz}\) 在给定 \(Z\) 的情况下独立于 \(X\)。
- 最终结果: 我们将反事实查询完全简化为观察项: \[= \sum_z P(y|z,x)P(z|x')\] 我们成功地将一个“假设”问题转化为了一个可以在标准数据集上执行的计算!
示例 2: 自然直接效应 (NDE)
考虑图 7(b) (上图) 。假设 \(X\) 是运动,\(W\) 是胆固醇,\(Y\) 是心脏病。我们想知道运动对心脏病的自然直接效应——即不通过降低胆固醇这一途径带来的益处。
这需要计算一个嵌套反事实: \(P(y_{x', W_x})\)。这问的是: “如果我们把 \(X\) 设为 \(x'\) (不运动) ,但我们保持 \(W\) (胆固醇) 在如果我们确实运动时本应达到的水平 (\(W_x\)) ,\(Y\) 的概率是多少?”
这看起来非常抽象,但 ctf-calculus 将其分解了。

使用图 8 所示的 AMWN,作者利用演算分解了这个问题。
- 他们使用全概率公式解开反事实的嵌套。
- 他们使用规则 2 (独立性) 移除冲突的干预 \(X\)。
- 他们使用规则 1 (一致性) 将反事实转回观察。
推导得出了这个优雅的公式:

这个公式允许研究人员仅使用观察到的数据概率 (\(P(y|w, x')\) 和 \(P(w_x)\)) 来解耦直接和间接机制,前提是图结构成立。
结论: 因果层级的完整工具包
《Counterfactual Graphical Models》中提出的研究标志着因果 AI 领域的重大成熟。长期以来,第 3 层 (反事实) 一直是一个困难的领域,通常需要限制性的假设或低效的计算方法。
通过引入祖先多世界网络 (AMWN) , 作者提供了一种可扩展的方式来可视化和测试平行世界之间的关系。通过形式化反事实演算 (ctf-calculus) , 他们给了我们在代数上操作这些关系的严谨语言。
对于学生和从业者来说,最重要的收获是完备性这一属性。我们不再需要想知道某个具体的“假设”问题是否可解。如果 ctf-calculus 无法将查询简化为数据,那么在没有更强假设的情况下,该查询在数学上就是无法回答的。这种确定性是无价的。
随着 AI 从简单的预测转向复杂的推理和决策,像 AMWN 和 ctf-calculus 这样的工具将成为我们构建系统的基石,这些系统不仅能理解发生了什么,还能理解本可能发生什么。
](https://deep-paper.org/en/paper/8764_counterfactual_graphical_-1694/images/cover.png)