机器学习在预测任务上取得了巨大成功,但传统的监督学习方法主要关注相关性而非因果性。当我们需要理解干预效果、进行反事实推理或确保模型在分布偏移下的鲁棒性时,将因果推断与机器学习相结合变得至关重要。本章将探讨如何将因果思维融入现代机器学习方法,包括因果正则化、因果表示学习、因果强化学习以及算法公平性的因果视角。
传统机器学习模型往往过度依赖虚假相关性(spurious correlations),导致在分布偏移(distribution shift)下性能大幅下降。因果正则化通过将因果结构知识编码到学习算法中,引导模型学习真正的因果关系而非表面相关性。
考虑一个图像分类任务:识别奶牛。传统模型可能学习到”绿色草地”与”奶牛”的强相关性,因为训练数据中大部分奶牛照片都有草地背景。但这种相关性是虚假的——奶牛在沙滩上依然是奶牛。因果正则化帮助模型关注真正的因果特征。
更严重的例子出现在医疗诊断中。某医院的肺炎检测模型在本院数据上表现优异(AUC > 0.95),但部署到其他医院后性能骤降(AUC < 0.70)。调查发现,模型学习到了扫描仪型号、医院标记等与疾病无关的特征。这些虚假相关在训练集中存在,但不具有因果关系,因此无法泛化。
在机器学习中,我们经常遇到以下类型的分布偏移:
| 协变量偏移(Covariate Shift):$P_{train}(X) \neq P_{test}(X)$,但 $P(Y | X)$ 保持不变 |
| 标签偏移(Label Shift):$P_{train}(Y) \neq P_{test}(Y)$,但 $P(X | Y)$ 保持不变 |
| 概念偏移(Concept Shift):$P_{train}(Y | X) \neq P_{test}(Y | X)$ |
因果正则化特别适合处理概念偏移,因为它识别并利用不变的因果关系。
因果正则化基于一个关键观察:因果关系比统计相关性更稳定。具体而言:
| 数学上,如果 $X$ 是 $Y$ 的因果父节点,那么机制 $P(Y | X)$ 应该在不同环境下保持不变(除非有明确的机制变化)。这个性质称为自主性(autonomy)或模块性(modularity)。 |
因果不变性原则(Causal Invariance Principle)是因果正则化的核心思想:
| 定义:如果特征 $X$ 对结果 $Y$ 有因果效应,那么条件分布 $P(Y | X)$ 在不同环境下应该保持不变。 |
数学表述: \(P_e(Y|X_{causal}) = P_{e'}(Y|X_{causal}), \forall e, e' \in \mathcal{E}\)
其中 $\mathcal{E}$ 是所有可能环境的集合,$X_{causal}$ 是具有因果效应的特征。
因果不变性原则基于独立因果机制(ICM)假设:
| 因果方向的不对称性:$P(Y | X)$ 比 $P(X | Y)$ 更稳定 |
这些原则解释了为什么因果方向的条件分布更加稳定。考虑海拔($X$)与温度($Y$)的关系:
| 因果方向:$P(温度 | 海拔)$ 由物理定律决定,非常稳定 |
| 反因果方向:$P(海拔 | 温度)$ 依赖于地理分布,容易变化 |
环境 $e \in \mathcal{E}$ 可以理解为:
如何检验特征集合 $S$ 是否满足不变性?
统计检验方法:
对于特征子集 S:
1. 在每个环境 e 中,拟合模型:f_e: S → Y
2. 计算环境间的一致性:
- 参数一致性:||θ_e - θ_e'||₂ < ε
- 预测一致性:E[|f_e(S) - f_e'(S)|] < ε
- 梯度一致性:||∇_θ L_e - ∇_θ L_e'||₂ < ε
3. 选择最大的满足不变性的特征集
基于假设检验的方法:
| 零假设 $H_0$:$P_e(Y | S) = P_{e’}(Y | S)$ 对所有环境对 $(e, e’)$ 成立 |
检验统计量(以线性模型为例): \(T = \sum_{e \in \mathcal{E}} n_e ||\beta_e - \bar{\beta}||^2\)
| 其中 $\bar{\beta} = \frac{1}{ | \mathcal{E} | } \sum_e \beta_e$,$n_e$ 是环境 $e$ 的样本量。 |
IRM是实现因果正则化的一种重要方法,由Arjovsky等人在2019年提出。其核心思想是学习一个在所有环境中都是最优的预测器。
IRM寻找这样的表示:
考虑一个简化场景:
环境1:狗主要在草地上,猫主要在沙发上
环境2:狗主要在沙发上,猫主要在草地上
传统ERM:可能学习背景特征
IRM:强制学习动物本身的特征(因为只有这些特征在两个环境中都预测准确)
IRM的理想目标(难以直接优化): \(\min_{\Phi} \sum_{e \in \mathcal{E}} R^e(\Phi) \quad \text{s.t.} \quad w^* \in \arg\min_{w} R^e(w \circ \Phi), \forall e\)
意思是:找到表示 $\Phi$,使得存在一个分类器 $w^*$ 在所有环境中都是最优的。
IRM的实用形式(IRMv1): \(\min_{\Phi, w} \sum_{e \in \mathcal{E}_{tr}} R^e(w \circ \Phi) + \lambda \cdot ||\nabla_{w|w=1.0} R^e(w \cdot \Phi)||^2\)
其中:
| 梯度惩罚 $ | \nabla_{w | w=1.0} R^e(w \cdot \Phi) | ^2$ 的含义: |
详细实现步骤:
算法:IRM训练过程
输入:多环境数据 {(X^e, Y^e)}_{e∈E},超参数 λ
1. 初始化:
- 特征提取器 Φ(深度网络)
- 线性分类器 w(初始化为1.0)
2. 对每个训练批次:
a. 采样小批量数据
b. 对每个环境 e:
- 计算特征:Z^e = Φ(X^e)
- 计算预测:Ŷ^e = w · Z^e
- 计算损失:L^e = CrossEntropy(Ŷ^e, Y^e)
c. 计算梯度惩罚:
- 固定 w_dummy = 1.0
- 对每个环境计算:grad^e = ∇_{w_dummy} L^e(w_dummy · Φ(X^e))
- penalty = Σ_e ||grad^e||^2
d. 总损失:
- loss_total = (1/|E|) Σ_e L^e + λ · penalty
e. 更新参数:
- 通过反向传播更新 Φ 和 w
3. 返回:训练好的模型 (Φ, w)
Risk Extrapolation (REx): \(\min_{\theta} \sum_e R^e(\theta) + \lambda \cdot \text{Var}_e[R^e(\theta)]\) 直接最小化环境间风险的方差,更简单但可能过于保守。
当我们对系统的因果结构有先验知识时,可以将这些知识编码为正则化约束,引导模型学习符合因果关系的表示。
如果我们知道变量间的因果图 $G$,可以通过约束模型参数来强制因果结构:
稀疏性约束: \(\mathcal{L}_{struct} = \sum_{(i,j) \notin E(G)} |\theta_{ij}| + \lambda_{dag} \cdot h(\Theta)\)
其中:
无环性约束(NOTEARS方法): \(h(\Theta) = \text{tr}(e^{\Theta \odot \Theta}) - d = 0\)
这个连续可微的约束确保学习到的结构是DAG。
根据因果图的d-分离准则,我们知道某些变量在给定其他变量时应该条件独立:
基于互信息的约束: \(\mathcal{L}_{indep} = \sum_{(X,Y,Z): X \perp\!\!\!\perp_G Y | Z} \text{MI}(X; Y | Z)\)
| 其中 $X \perp!!!\perp_G Y | Z$ 表示根据因果图 $G$,$X$ 和 $Y$ 在给定 $Z$ 时d-分离。 |
实际计算方法:
对每个独立性约束 X ⊥ Y | Z:
1. 估计条件分布 P(X|Z) 和 P(Y|Z)
2. 计算条件互信息:
MI(X;Y|Z) = E_{p(x,y,z)}[log(p(x,y|z)/(p(x|z)p(y|z)))]
3. 使用神经网络估计互信息(如MINE方法)
4. 将MI(X;Y|Z)作为损失项最小化
当我们知道变量的因果顺序(拓扑排序)时:
层次化网络结构:
如果因果顺序为 X₁ → X₂ → ... → Xₙ:
- 第i层只能接收第1到i-1层的输入
- 通过掩码矩阵实现:M[i,j] = 1 if j < i else 0
- 参数矩阵:Θ_effective = Θ ⊙ M
时间因果约束: 对于时序数据,未来不能影响过去: \(\mathcal{L}_{temporal} = \sum_{t<t'} ||\theta_{X_t \leftarrow X_{t'}}||^2\)
有时我们知道某些因果路径应该存在或不存在:
直接效应约束: 如果 $X$ 对 $Y$ 没有直接效应(只有通过中介变量的间接效应): \(\mathcal{L}_{no\_direct} = ||\frac{\partial f_Y}{\partial X} \Big|_{M=\text{const}}||^2\)
路径强度约束: 限制特定路径的效应强度: \(\mathcal{L}_{path} = \sum_{\pi \in \Pi} w_\pi \cdot |\text{PathEffect}(\pi) - \tau_\pi|^2\)
其中 $\Pi$ 是关注的路径集合,$\tau_\pi$ 是期望的路径效应。
因果表示学习旨在从高维观测数据中学习低维的因果因子(causal factors),这些因子反映数据的生成机制而非仅仅是统计规律。
因果表示应该满足以下关键性质:
| 数学上:$p(z_1, …, z_n) = \prod_i p(z_i | PA_i)$,其中 $PA_i$ 是稀疏的 |
传统表示学习:
因果表示学习:
ICM原则假设: \(P(X_1, ..., X_n) = \prod_{i=1}^n P(X_i | PA_i)\)
| 其中 $PA_i$ 是 $X_i$ 的因果父节点,且每个条件分布 $P(X_i | PA_i)$ 独立变化。 |
关键性质:
因果VAE架构:
观测 x → 编码器 q(z|x) → 因果潜变量 z → 因果图 G → 解码器 p(x|z)
损失函数: \(\mathcal{L} = \mathbb{E}_{q(z|x)}[\log p(x|z)] - \beta \cdot KL[q(z|x)||p(z)] + \gamma \cdot \mathcal{L}_{causal}\)
其中因果损失项 $\mathcal{L}_{causal}$ 强制潜变量遵循因果结构: \(\mathcal{L}_{causal} = \sum_{i,j} \mathbb{1}_{(i,j) \notin G} \cdot |\text{Cov}(z_i, z_j)|\)
利用对比学习识别因果特征:
因果对比损失: \(\mathcal{L}_{CCL} = -\log \frac{\exp(\text{sim}(z_i, z_i^+)/\tau)}{\sum_{k} \exp(\text{sim}(z_i, z_k)/\tau)}\)
其中:
多环境对比学习: 利用多环境数据识别不变特征:
对每个批次:
1. 从不同环境采样:x_e1, x_e2, ..., x_eK
2. 提取特征:z_e1 = f(x_e1), ...
3. 最大化环境间因果特征的一致性
4. 最小化环境间虚假特征的相似性
解耦度量:
MIG (Mutual Information Gap): \(MIG = \frac{1}{K} \sum_{k=1}^K \frac{1}{H(v_k)} (I(z_{j^*}; v_k) - \max_{j \neq j^*} I(z_j; v_k))\)
SAP (Separated Attribute Predictability): 评估每个潜变量对单一生成因子的预测能力
因果性度量:
传统强化学习面临的因果挑战:
因果视角提供的解决方案:
因果MDP定义: 扩展标准MDP为 $\mathcal{M} = (S, A, P, R, \gamma, G)$,其中:
| 转移函数分解:$P(s’ | s,a) = \prod_i P(s’_i | PA_i^G)$ |
结构化状态表示: 将状态分解为因果相关的组件: \(S = S_{agent} \times S_{env} \times S_{confound}\)
其中:
离线策略评估问题: 给定历史数据 $\mathcal{D} = {(s_t, a_t, r_t, s_{t+1})}$ 由行为策略 $\pi_b$ 生成,评估目标策略 $\pi_e$ 的性能。
反事实推理方法:
构建因果模型: \(M: S \times A \rightarrow S' \times R\)
反事实查询: “如果在状态 $s_t$ 采取动作 $\pi_e(s_t)$ 而非 $a_t$,会得到什么奖励?” \(r_{CF} = R(s_t, \pi_e(s_t); U_t)\) 其中 $U_t$ 是从观测数据推断的潜在混杂因素
重要性采样修正: \(V^{\pi_e} = \mathbb{E}_{\tau \sim \pi_b}\left[\sum_t \gamma^t r_t \prod_{k=0}^t \frac{\pi_e(a_k|s_k)}{\pi_b(a_k|s_k)}\right]\)
因果好奇心驱动探索: 定义内在奖励基于因果不确定性: \(r_{intrinsic} = H(G | \mathcal{D}) - H(G | \mathcal{D} \cup \{(s,a,s',r)\})\)
这鼓励智能体采取能最大程度减少因果图不确定性的动作。
主动介入学习:
算法:因果主动学习
1. 初始化:因果假设集 H = {G_1, ..., G_k}
2. 对每个时间步:
a. 计算每个动作的信息增益:
IG(a) = H(H) - E[H(H|s',r)|s,a]
b. 选择动作:a* = argmax_a [IG(a) + ε·Q(s,a)]
c. 执行动作,观测结果
d. 更新因果假设的后验概率
3. 返回:最可能的因果图 G*
世界模型与因果推理: 利用学习到的因果模型进行规划:
前向模拟: \(s_{t+k} = f_{causal}(s_t, a_t, ..., a_{t+k-1})\)
反事实规划: 在规划时考虑”如果不这样做会怎样”: \(Q_{CF}(s,a) = R(s,a) + \gamma \max_{a'} V(f(s,a)) - \lambda \cdot \text{Regret}(s,a)\)
其中遗憾项: \(\text{Regret}(s,a) = \max_{a' \neq a} Q_{CF}(s,a') - Q_{CF}(s,a)\)
因果层次规划:
传统公平性定义的局限性:
| 统计平等(Statistical Parity):$P(\hat{Y}=1 | A=0) = P(\hat{Y}=1 | A=1)$ |
| 机会平等(Equal Opportunity):$P(\hat{Y}=1 | Y=1,A=0) = P(\hat{Y}=1 | Y=1,A=1)$ |
这些定义忽略了因果路径,可能导致:
因果图表示:
A (敏感属性)
├── 直接路径 → Y (结果)
└── 间接路径 → M (中介变量) → Y
路径特定效应:
直接效应(DE):$A$ 对 $Y$ 的直接因果效应 \(DE = \mathbb{E}[Y(a=1, M(a=0)) - Y(a=0, M(a=0))]\)
间接效应(IE):通过中介变量 $M$ 的效应 \(IE = \mathbb{E}[Y(a=1, M(a=1)) - Y(a=1, M(a=0))]\)
总效应(TE):$TE = DE + IE$
定义:如果在反事实世界中,改变个体的敏感属性不会改变决策结果,则称决策是反事实公平的。
数学表述: \(P(\hat{Y}_{A \leftarrow a}(u) = \hat{Y}_{A \leftarrow a'}(u)) = 1, \forall u, a, a'\)
其中 $u$ 表示个体的所有外生变量。
实现方法:
# 伪代码
def fair_prediction(x, sensitive_attr):
# 1. 预测中介变量(在反事实世界中)
m_cf = predict_mediator(x, sensitive_attr=baseline)
# 2. 基于反事实中介变量预测
y_pred = predict_outcome(x, m_cf)
return y_pred
个体公平性解释: 对于被拒绝的申请者,提供因果解释:
算法审计流程:
1. 构建决策系统的因果图
2. 识别所有从敏感属性到决策的因果路径
3. 量化每条路径的因果效应
4. 判断哪些路径是合理的,哪些构成歧视
5. 评估整体公平性水平
多目标优化框架: \(\min_{f} \mathcal{L}_{utility}(f) + \sum_{i} \lambda_i \cdot \mathcal{L}_{fairness}^i(f)\)
其中不同的公平性约束:
帕累托前沿分析: 找出效用和公平性之间的帕累托最优解集,让决策者根据具体场景选择合适的权衡点。