Multi-View Causal Representation Learning
一句话定位
多视图因果表示学习利用多个观测模态(如图像、文本、传感器数据)对应相同底层因果变量的特性,通过跨视图一致性约束来增强因果表示的可辨识性。
前置知识
- 因果表示学习基础:编码器、解码器、变分推断
- 可辨识性理论:为什么单视图CRL通常不可辨识
- 对比学习:InfoNCE、互信息估计
- 多视图学习:多模态融合、表示对齐
核心直觉
假设你同时看到一张图片的RGB版本和深度图版本。虽然这两种视图看起来非常不同,但它们应该编码相同的信息——例如,图片中的物体位置、形状、类别等。
在因果表示学习的框架下,这意味着:
- 视图1
是因果变量 的某种观测 - 视图2
是同一因果变量 的另一种观测 - 两个视图都通过各自的解码器从
生成: ,
关键洞察:如果
例如,如果单视图下
问题形式化
基本设置
给定两个视图的数据:
- 视图1:
- 视图2:
两个视图都由同一个因果变量
其中
配对 vs 非配对数据
配对数据(Paired Data):
- 我们观察到
对,其中两个视图对应相同的底层因果变量 - 这种配对提供了强监督信号
非配对数据(Unpaired Data):
- 我们观察到两组独立的数据
和 - 没有配对的监督,但可以利用跨视图的一致性
学习目标
对于配对数据,我们希望:
对于非配对数据,我们希望:
数学框架
生成模型
假设以下生成模型:
边际观测分布:
跨视图一致性约束
对于每个视图,我们有独立的编码器:
一致性约束:
这鼓励两个编码器对相同的底层因果变量产生相似的后验分布。
变分下界(ELBO)
对于配对数据
其中联合后验
(在一致性约束下,两个后验应该接近)
对比 CRL
对于非配对数据,我们使用对比学习来建立跨视图对应:
InfoNCE 损失:
其中:
是相似度函数(如点积) 是温度参数
可辨识性增强
多视图设置可以增强可辨识性。考虑以下定理:
定理(多视图可辨识性):在多视图设置下,如果满足以下条件,则
- 充分条件独立性:给定
, 和 条件独立 - 视图充分性:每个视图都包含足够的关于
的信息 - 非平凡连接:
和 不是退化的
证明思路:假设存在两组参数
如果两个视图的编码器和解码器不同但产生相同分布,可以利用条件独立性证明
训练与估计
配对数据训练
对于配对数据
# 配对数据训练循环
for x1, x2 in paired_data:
z1 = encoder1(x1)
z2 = encoder2(x2)
# 跨视图一致性损失
consistency_loss = kl_divergence(z1, z2) + kl_divergence(z2, z1)
# ELBO损失
elbo_loss = recon_loss1(x1, decoder1(z1)) + recon_loss2(x2, decoder2(z2))
# 总损失
total_loss = elbo_loss + lambda * consistency_loss
total_loss.backward()非配对数据训练
对于非配对数据:
# 非配对数据训练循环
for x1 in view1_data:
for x2 in view2_data:
z1 = encoder1(x1)
z2 = encoder2(x2)
# 对比损失
contrastive_loss = info_nce(z1, z2, all_z2)
# 重构损失
recon_loss = recon_loss1(x1, decoder1(z1)) + recon_loss2(x2, decoder2(z2))
total_loss = recon_loss + beta * contrastive_loss
total_loss.backward()架构设计
多视图CRL的架构通常包括:
- 视图特定编码器:
和 - 共享因果表示空间:两个编码器输出同一个
空间 - 视图特定解码器:
和 - 一致性正则化器:确保跨视图表示一致
推理与干预
跨视图推理
给定一个视图的观测,推断因果变量:
在一致性约束下,两个后验应该接近,因此可以取平均或选择其一。
跨视图生成
给定一个视图的观测,生成另一个视图:
这可以通过先从
干预操作
在多视图设置下,do操作仍然作用在
干预后的跨视图一致性应该保持。
反事实生成
反事实生成在多视图设置下更加丰富:
- 干预某个因果因素
- 保持其他因素不变
- 生成两个视图的反事实版本
优点与局限
优点
- 增强可辨识性:多视图提供了额外的约束,可以打破单视图下的不可辨识性
- 跨模态泛化:学习到的表示可以迁移到新的模态
- 鲁棒性:一个视图的噪声可以被另一个视图弥补
- 丰富的监督信号:即使没有标签,跨视图一致性也提供了学习信号
局限
- 配对数据难获取:高质量的配对数据通常需要大量人工标注
- 模态异构性:不同模态可能有非常不同的统计特性
- 计算成本:处理多个视图增加了计算成本
- 对齐假设:假设两个视图确实对应相同的
可能不总是成立
与其他笔记的联系
- 因果表示学习基础:多视图CRL是CRL的具体应用场景
- 可辨识性问题:多视图可以增强可辨识性
- 对比CRL:对比学习是非配对多视图CRL的核心技术
- 部分可观测CRL:多视图可以看作部分可观测的一种形式
- 解耦表示:跨视图一致性可以促进解耦
可重现性笔记
常用数据集
- Shapes3D:包含形状、颜色、材质等独立因素的3D图像
- MPI3D:包含多种独立因素的机器人操作数据
- VisionTouch:视觉-触觉配对数据
- CLEVR:组合视觉问答数据集
代码框架
class MultiViewCRL(nn.Module):
def __init__(self, dim_x1, dim_x2, dim_z):
self.encoder1 = Encoder(dim_x1, dim_z)
self.encoder2 = Encoder(dim_x2, dim_z)
self.decoder1 = Decoder(dim_z, dim_x1)
self.decoder2 = Decoder(dim_z, dim_x2)
def forward(self, x1, x2, paired=True):
z1 = self.encoder1(x1)
z2 = self.encoder2(x2)
if paired:
# 配对数据:强制一致性
consistency_loss = self.consistency_loss(z1, z2)
else:
# 非配对数据:对比学习
contrastive_loss = self.contrastive_loss(z1, z2)
x1_recon = self.decoder1(z1)
x2_recon = self.decoder2(z2)
return x1_recon, x2_recon, consistency_loss
def consistency_loss(self, z1, z2):
return 0.5 * (kl_divergence(z1, z2) + kl_divergence(z2, z1))章节总结
- 多视图CRL利用两个视图
对应同一因果变量 的特性 - 配对数据保证
,提供强监督信号 - 多视图设置可以打破单视图下的不可辨识性
- paired和unpaired数据需要不同的学习策略
- 跨模态一致性约束是多视图CRL的核心
- 对比CRL通过最大化互信息学习跨视图表示
- 多视图CRL的可辨识性比单视图更强
- 非配对视图需要使用无监督对比学习
- 一致性损失强制两个编码器对同一
产生相同表示 - 应用场景包括视觉-语言、传感器融合、跨域适应
关键词
multi-view causal representation learning, cross-modal consistency, contrastive learning, paired data, unpaired data, identifiability, variational CRL, InfoNCE, multi-modal fusion, cross-view generation