ICML24麻省理工提出使用更少的条件独立性测试来发现因果关系新方法

【摘要】众多科学领域的核心问题围绕着理解因果关系这一基本问题。然而,大多数基于约束的因果发现算法,包括广受欢迎的PC算法,通常会进行指数级数量的条件独立性(CI)测试,在各种应用中造成局限。为解决这一问题,我们的工作重点是表征在减少CI测试数量的情况下,可以了解潜在因果图的哪些信息。我们证明,学习一个隐藏因果图的更粗糙表示只需多项式数量的测试。该更粗糙表示,称为因果一致分区图(CCPG),包括顶点的分区和在其组件上定义的有向图。CCPG满足方向的一致性以及倾向于更细分区的附加约束。此外,当因果图是可识别的时,它会退化为潜在的因果图。因此,我们的结果提供了第一个有效的算法,可在特殊情况下仅用多项式数量的测试恢复真实的因果图,其中因果图完全可通过观察数据识别,并可能包含额外的干预。

原文:Causal Discovery with Fewer Conditional Independence Tests
地址:未知
代码:https://github.com/uhlerlab/CCPG
出版:2024 ICML
机构: 布罗德研究所、麻省理工学院
欢迎关注“码农的科研笔记”公众号

1 研究问题

本文研究的核心问题是: 如何在减少条件独立性测试数量的情况下,还原隐藏的因果关系图结构。
::: block-1
在医疗健康领域,人们希望理解各种生物标志物、环境因素、治疗手段等之间的因果关系。传统方法如PC算法,虽然能够还原因果图,但需要进行海量的条件独立性测试,计算开销巨大。假设有1000个变量,即便平均每个变量只与其他10个变量有联系,PC算法也可能需要进行2^10量级的测试。这使得它在处理大规模因果发现问题时捉襟见肘。
:::
本文研究问题的特点和现有方法面临的挑战主要体现在以下几个方面:

  • 条件独立性测试的数量通常随节点度数的增长呈指数爆炸,严重制约了现有因果发现算法的计算效率和可扩展性。
  • 因果方向的确定往往需要借助额外的干预实验数据,进一步增加了算法的数据成本。仅利用观测数据通常只能得到马尔可夫等价类。
  • 在样本量不足的情况下,条件独立性测试的结果容易出现偏差,导致因果图的学习产生错误。测试次数越多,总体的错误风险也就越高。

针对这些挑战,本文提出了一种高效且鲁棒的"因果一致分区图(CCPG)"思路:
::: block-1
CCPG通过适当放松学习目标,用多项式数量的测试还原一个因果图的粗粒度近似。它将变量划分为若干个不相交的组,并学习这些组之间的因果关系。组内部的因果结构则暂时忽略。这种做法就像先画出国家之间的关系图,而将省市内部的连接抽象掉。通过聚焦组层面的因果关系,CCPG 极大地减少了所需的条件独立性测试数量。同时,CCPG 中的每个组仍保留了一定的因果方向信息,避免完全退化为无向图。这些性质使得 CCPG 在计算效率和信息丰富性之间取得了很好的平衡。此外,当真实的因果图能够从观测数据中唯一确定时,CCPG 会自动退化为它,确保了结果的准确性。若再辅以适当的干预数据,CCPG 同样能用多项式数量的测试学得完整的因果图。CCPG 巧妙地利用因果图的稀疏性进行化简,同时又能充分利用干预数据的信息,为大规模因果结构学习开辟了一条新的道路。
:::

2 研究方法

本文提出了一种通过学习因果一致性划分图(Causally Consistent Partition Graph, CCPG)表示来揭示因果结构的方法。该方法能够在进行较少的条件独立性检验的情况下,有效地发现因果关系。下面将详细介绍构造CCPG表示的整个过程。

2.1 前缀顶点集的构造

要构造CCPG表示,首先需要找到图中的前缀顶点集。直观上,前缀顶点集是图中排在前面的一些节点的集合,这些节点不能被后面的节点所指向。形式化地,节点集 S S S是前缀顶点集,当且仅当对于任意 v ∈ S v\in S vS,都有 Anc ( v ) ∩ S ‾ = ∅ \text{Anc}(v)\cap\overline{S}=\emptyset Anc(v)S=,其中 S ‾ \overline{S} S表示节点集 V ∖ S V\setminus S VS

为了构造前缀顶点集,文中提出了一种启发式的方法。具体来说,就是先找到一个前缀顶点集 S S S(初始时可以为空集),然后通过排除以下三类节点来得到一个更大的前缀顶点集 S ′ S' S

  1. D S D_S DS:通过条件独立性检验 u ⊥ v ∣ S u\perp v|S uvS u ⊥̸ v ∣ S ∪ { w } u\not\perp v|S\cup\{w\} uvS{w}可以推断 v v v不是 w w w的后代。 D S D_S DS就是所有这样的节点 w w w的集合。直观上, D S D_S DS中的节点有可能是 S ‾ \overline{S} S中某个节点的后代,因此将其排除。
  2. E S E_S ES:类似地,通过条件独立性检验 u ⊥ v ′ ∣ S ∪ { v } u\perp v'|S\cup\{v\} uvS{v} u ⊥̸ v ′ ∣ S ∪ { v , w } u\not\perp v'|S\cup\{v,w\} uvS{v,w}可以推断 w w w在学习因果关系时可能引入错误。 E S E_S ES就是所有这样的节点 w w w的集合。
  3. F S F_S FS:通过条件独立性检验 u ⊥̸ v ∣ S u\not\perp v|S uvS u ⊥ w ∣ S ∪ { v } u\perp w|S\cup\{v\} uwS{v} v ⊥̸ w ∣ S v\not\perp w|S vwS可以推断 v v v不是 w w w的后代。 F S F_S FS就是所有这样的节点 w w w的集合。排除 F S F_S FS是为了避免 S ′ S' S中包含太多节点。

通过排除上述三类节点,就可以得到一个更大的前缀顶点集 S ′ S' S。此外,文中还证明了 S ′ S' S中包含了 S ‾ \overline{S} S中所有的源节点(即入度为0的节点)。排除法这个可以借鉴。

2.2 CCPG表示的构造

有了前缀顶点集的构造方法,我们就可以进一步地构造CCPG表示了。CCPG表示由两部分组成:

  1. 将节点划分为若干个不相交的组件 V 1 , … , V k V_1,\dots,V_k V1,,Vk
  2. 构造组件之间的有向无环图 D D D,其中 D D D中的边 V i → V j V_i\rightarrow V_j ViVj表示 V i V_i Vi中存在节点指向 V j V_j Vj中某个节点。

构造CCPG表示的过程如下。首先,从空集开始,通过前缀顶点集的构造方法来不断扩大前缀顶点集,直到其为整个节点集 V V V。这样,我们就得到了一个前缀顶点集序列 ∅ ⊊ S 1 ⊊ S 2 ⊊ ⋯ ⊊ S m = V \emptyset\subsetneq S_1\subsetneq S_2\subsetneq \dots \subsetneq S_m=V S1S2Sm=V

接下来,对于每个 S i ∖ S i − 1 S_i\setminus S_{i-1} SiSi1,我们将其进一步划分为几个不相交的组件。直观上,如果 S i ∖ S i − 1 S_i\setminus S_{i-1} SiSi1中的两个节点在给定 S 1 ∪ ⋯ ∪ S i − 1 S_1\cup\dots\cup S_{i-1} S1Si1的条件下不独立,那么它们就属于同一个组件。通过这种方式,我们就得到了节点的一个划分 V 1 , … , V k V_1,\dots,V_k V1,,Vk。可以证明,每个组件要么只包含一个节点,要么包含一条需要通过干预才能确定方向的边。

最后,我们再来构造组件之间的有向无环图 D D D。对于两个组件 V i V_i Vi V j V_j Vj i < j i<j i<j),如果 V i ⊥̸ V j ∣ V 1 ∪ ⋯ ∪ V j − 1 V_i\not\perp V_j|V_1\cup\dots\cup V_{j-1} ViVjV1Vj1,那么我们就在 D D D中连一条边 i → j i\rightarrow j ij。可以证明,通过这种方式构造出的 D D D是一个有向无环图,且与原图的因果关系是一致的。

综上,通过上述过程,我们就构造出了图 G G G的CCPG表示 ( V 1 , … , V k , D ) (V_1,\dots,V_k,D) (V1,,Vk,D)

举个例子,假设有一个5个节点的有向无环图,其中节点1,2,3为源节点。通过前缀顶点集的构造过程,我们可以依次找到前缀顶点集 { 1 } , { 1 , 2 } , { 1 , 2 , 3 } , { 1 , 2 , 3 , 4 } , { 1 , 2 , 3 , 4 , 5 } \{1\},\{1,2\},\{1,2,3\},\{1,2,3,4\},\{1,2,3,4,5\} {1},{1,2},{1,2,3},{1,2,3,4},{1,2,3,4,5}。然后我们对每个 S i ∖ S i − 1 S_i\setminus S_{i-1} SiSi1进行划分,可以得到 { { 1 } , { 2 } , { 3 } , { 4 } , { 5 } } \{\{1\},\{2\},\{3\},\{4\},\{5\}\} {{1},{2},{3},{4},{5}}。最后,通过条件独立性检验,我们得到 D D D中的边 { 1 , 2 , 3 } → 4 \{1,2,3\}\rightarrow 4 {1,2,3}4 { 1 , 2 , 3 } → 5 \{1,2,3\}\rightarrow 5 {1,2,3}5。这就是该图的CCPG表示。

2.3 引入干预的扩展

上面介绍的方法都是在没有干预的情况下,即只根据观测数据来构造CCPG表示。而在引入干预的情况下,我们其实可以进一步细化CCPG表示。这是因为一个干预操作会切断某些因果边,使得一些原本不确定方向的边变得确定。(干预方法带来更好的因果发现

为了将CCPG表示的构造方法扩展到引入干预的情况,文中对前缀顶点集的构造方法进行了一些改进。除了排除 D S , E S , F S D_S,E_S,F_S DS,ES,FS这三类节点外,文中还引入了第四类节点 J S I J_S^I JSI。直观上, J S I J_S^I JSI中的节点要么是干预集 I I I中节点的后代,要么虽然是 I I I中某个节点 v v v但存在某个不属于 S S S的节点 u u u使得 u u u v v v在给定 V ∖ Des ( I ∖ S ) V\setminus \text{Des}(I\setminus S) VDes(IS)的条件下不独立。通过排除这四类节点,我们就得到了引入干预情况下的前缀顶点集 S ′ S' S

有了新的前缀顶点集构造方法,我们就可以类似地构造引入干预情况下的CCPG表示了,记为I-CCPG。与CCPG表示类似,I-CCPG表示也由节点的一个划分 V 1 , … , V k V_1,\dots,V_k V1,,Vk和组件之间的有向无环图 D D D组成,且满足每个组件要么只包含一个节点,要么包含一条不受干预影响的需要通过干预才能确定方向的边。此外,图 D D D也与原图的因果关系是一致的。

继续上面的例子,假设我们在节点4上进行干预。根据新的前缀顶点集构造方法,我们可以依次找到前缀顶点集 { 1 } , { 1 , 2 } , { 1 , 2 , 3 } , { 1 , 2 , 3 , 4 } , { 1 , 2 , 3 , 4 , 5 } \{1\},\{1,2\},\{1,2,3\},\{1,2,3,4\},\{1,2,3,4,5\} {1},{1,2},{1,2,3},{1,2,3,4},{1,2,3,4,5}。与未引入干预的情形不同的是,节点5不再属于 J { 1 , 2 , 3 } I J_{\{1,2,3\}}^I J{1,2,3}I,因此 S 4 S_4 S4 { 1 , 2 , 3 , 5 } \{1,2,3,5\} {1,2,3,5}。然后我们对每个 S i ∖ S i − 1 S_i\setminus S_{i-1} SiSi1进行划分,可以得到 { { 1 } , { 2 } , { 3 } , { 5 } , { 4 } } \{\{1\},\{2\},\{3\},\{5\},\{4\}\} {{1},{2},{3},{5},{4}}。最后在 D D D中连边,得到 { 1 , 2 , 3 } → { 5 } , { 5 } → { 4 } , { 1 , 2 , 3 } → { 4 } \{1,2,3\}\rightarrow\{5\},\{5\}\rightarrow\{4\},\{1,2,3\}\rightarrow\{4\} {1,2,3}{5},{5}{4},{1,2,3}{4}。这就是引入干预情况下的I-CCPG表示,可以看到其比未引入干预情况下的CCPG表示更加精细。

以上就是本文提出的在较少条件独立性检验情况下构造CCPG表示的方法,以及将其扩展到引入干预情况下的I-CCPG表示的方法。通过CCPG表示,我们可以揭示原因果图的很多结构信息。当原因果图可以被观测数据或额外的干预完全确定时,所构造的CCPG表示将退化为原因果图本身。此外,所提出的构造方法的样本复杂度和计算复杂度都是原因果图规模的多项式,远低于已有的因果结构学习方法。

3 实验

3.1 实验场景介绍

该论文提出了一个高效的因果发现算法CCPG,可以用多项式数量级的条件独立性检验来恢复因果图的一个粗粒度表示。实验部分主要验证CCPG在合成和实际数据集上的运行效率和性能。

3.2 实验设置

  • Datasets:
    • 合成数据:线性高斯加性噪声模型生成的可识别因果图,特别是星形DAG,节点数10到100
    • 实际数据:6变量Airfoil数据集
  • Baseline: 基于条件独立性检验的因果发现方法PC、FCI、RFCI(约束)、GSP(混合)
  • Implementation details:
    • PC、GSP用Python实现,FCI、RFCI用R和C++加速实现
    • 合成数据上对比实验中,每个规模运行5次取平均
  • metric:
    • 运行时间
    • 恢复真实因果图所需的最少样本数

3.3 实验结果

3.3.1 实验一、不同图规模下运行时间对比

目的:评估CCPG在不同规模因果图上相比其他方法的计算效率优势
涉及图表:图6
实验细节概述:在节点数从20到100的星形DAG上,用10万样本对比CCPG与基线方法的运行时间
结果:

  • CCPG与混合方法GSP速度相当,远快于约束方法PC、FCI等
  • 约束方法在节点数超过20时耗时剧增,难以应用于更大规模

3.3.2 实验二、样本复杂度对比

目的:评估CCPG恢复真实因果图所需的样本数与其他方法的优劣
涉及图表:图7
实验细节概述:在10节点星形DAG上,计算每个方法需要的最少样本数才能恢复出真实图,重复5次
结果:

  • CCPG所需样本数最少,约束方法次之,混合方法最多
  • CCPG在保证多项式数量级条件独立性检验的同时,样本复杂度和计算复杂度均优于其他方法

3.3.3 实验三、实际数据集上CCPG与PC学习因果图的对比

目的:在Airfoil实际数据集上对比CCPG学到的粗粒度因果表示与PC学到的更细粒度但不完整的因果图
涉及图表:图8、图9
实验细节概述:在6变量Airfoil数据集上运行CCPG和PC,并对比学到的因果图
结果:

  • 尽管CCPG学到的是更粗粒度的因果表示,但更符合已知的部分因果关系
  • PC学到的因果图包含更多细节,但缺失了一些重要的因果边

4 总结后记

本论文针对因果结构学习中条件独立性测试开销过高的问题,提出了一种高效的算法,通过多项式数量级的条件独立性测试,学习一个因果图的粗粒度表示(CCPG)。该表示由顶点的一个划分以及定义在划分组件上的有向无环图组成,并满足一定的一致性和优先更细粒度划分的性质。论文证明了在特定情况下,所提算法能够通过多项式数量级的条件独立性测试准确恢复真实的因果图。
::: block-2
疑惑和想法:

  1. CCPG表示在一般情况下能在多大程度上近似真实的因果图?是否存在理论上的近似界?
  2. 除了文中考虑的干预数据,是否可以将算法拓展至存在隐变量、选择偏差等更一般的假设?
  3. 在样本数量有限的情况下,如何权衡条件独立性测试的数量和CCPG表示的细粒度,以达到最优的学习效果?
    :::
    ::: block-2
    可借鉴的方法点:
  4. 通过牺牲表示的细粒度来换取计算开销的降低,这一思想可以应用于其他需要进行组合优化的统计学习问题。
  5. 利用顶点划分得到粗粒度的图表示,并在划分的组件之间定义合理的关系,这一技术可以推广至一般的图学习任务。
  6. 巧妙利用问题的特殊结构(如文中的可识别因果图),设计出理论保证的高效算法,这一思路值得借鉴。
    :::

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/713608.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

POC EXP | woodpecker插件编写

woodpecker插件编写 目录 woodpecker介绍woodpecker使用插件编写 安装环境 woodpecker-sdkwoodpecker-request 创建Maven项目 Confluence OGNL表达式注入漏洞插件编写 创建Package包和Class类编写POC 漏洞POC代码编写导出jar包将jar包放入woodpecker的plugin目录运行woodpeck…

UML与设计模式

1、关联关系 关联关系用于描述不同类的对象之间的结构关系&#xff0c;它在一段时间内将多个类的实例连接在一起。关联关系是一种静态关系&#xff0c;通常与运行状态无关&#xff0c;而是由“常识”、“规则”、“法律”等因素决定的&#xff0c;因此关联关系是一种强关联的关…

MPC质心跟随控制(CoM Tracking Control)

MPC质心跟随 在人形机器人中,质心(CoM)的跟随控制是保持机器人稳定和协调运动的关键技术之一。模型预测控制(MPC)是一种先进的控制方法,通过解决在线优化问题来控制机器人质心的位置和速度。下面我们详细介绍如何使用MPC实现质心跟随控制。 MPC基本原理 模型预测控制是…

Iptables深入浅出

1、iptables的基本概念 众所周知iptables是Linux系统下自带免费的包过滤防火墙。其实不然&#xff0c;iptables其实不是真正的防火墙&#xff0c;我们可以把它理解成一个客户端代理&#xff0c;用户通过iptables这个代理&#xff0c;将用户的安全设定执行到对应的”安全框架”…

微软正在推动 OpenAI 转变为营利性公司!Sam Altman 或拥有更多股权 股东也“逼宫”保时捷

目前&#xff0c;OpenAI估值为860亿美元&#xff0c;转型为营利性公司或加速OpenAI IPO&#xff0c;微软及其他投资者认为&#xff0c;若 Altman拥有更多股权&#xff0c;可能就不会那么有动力专注于其他项目和投资其他AI公司。 根据The Information最新报道&#xff0c;Sam A…

C# TextBox模糊查询及输入提示

在程序中&#xff0c;我们经常会遇到文本框中不知道输入什么内容&#xff0c;这时我们可以在文本框中显示提示词提示用户&#xff1b;或者需要查询某个内容却记不清完整信息&#xff0c;通常可以通过文本框列出与输入词相匹配的信息&#xff0c;帮助用户快速索引信息。 文本框…

java打印helloworld

源代码 public class Function1 {public static void main(String[] args) {System.out.println("hello world");}} 打印结果

llama3-70B体验

NVIDIA LLAMA3-70B大模型体验地址&#xff1a; NVIDIA NIM | llama3-70b 问题几个关于宇宙的问题&#xff0c;答案挺有意思的&#xff0c;很有启发性&#xff0c;记录一下&#xff1a; 问题1&#xff1a;既然相对论认为时间是相对的&#xff0c;为何却说宇宙寿命有137亿年&a…

Luma AI如何注册:文生视频领域的新星

文章目录 Luma AI如何注册&#xff1a;文生视频领域的新星一、Luma 注册方式二、Luma 的效果三、Luma 的优势四、Luma 的功能总结 Luma AI如何注册&#xff1a;文生视频领域的新星 近年来&#xff0c;Luma AI 凭借其在文生视频领域的创新技术&#xff0c;逐渐成为行业的新星。…

如何设计网站

设计网站是一个复杂而又有趣的过程。一个好的网站设计不仅可以吸引用户的注意力&#xff0c;还能提供良好的用户体验。下面我将分享一些关于如何设计网站的基本原则。 首先&#xff0c;需要明确网站的目标和受众。在设计网站之前&#xff0c;你应该明确你的网站的目标是什么。你…

MacOS之Rosetta技术的引入

提示&#xff1a;宝子们&#xff0c;希望文章对你们有所帮助&#xff0c; 请一键三连支持博主下吧&#xff5e; 文章目录 前言一、Rosetta 是什么&#xff1f;二、关于安装Rosetta三、关于Rosetta的问题分享总结 前言 博主的个人开发环境和配置说明&#xff1a; MacOS Montere…

模仿qsort实现一个通用的冒泡排序

目录 前言 模仿 排序整型数组 排序结构体数组 排序字符数组 前言 qsort在前面我们讲到底层逻辑是快速排序的方式&#xff0c;是不是可以发现有了qsort来进行排序的话&#xff0c;就更加的方便快捷&#xff0c;我们在使用的时候 一方面&#xff0c;代码量会大大的减少 另一…

目标检测数据集 - 零售食品LOGO检测数据集下载「包含VOC、COCO、YOLO三种格式」

数据集介绍&#xff1a;零售食品 LOGO 检测数据集&#xff0c;真实零售食品 LOGO 高质量商品图片数据&#xff0c;数据集含常见零售食品 LOGO 图片&#xff0c;包括饮料类、酒类、调味品类、膨化饼干类、巧克力类、常见零食类等等。数据集类别丰富&#xff0c;标注标签包含 150…

DC/AC电源模块:为电动车充电基础设施提供高效能源转换

BOSHIDA DC/AC电源模块&#xff1a;为电动车充电基础设施提供高效能源转换 DC/AC电源模块是一种用于电动车充电基础设施的重要组件&#xff0c;它能够实现高效能源转换。在电动车的普及和推广过程中&#xff0c;DC/AC电源模块的重要性日益凸显。本文将从DC/AC电源模块的基本原…

Mybatis调用存储过程

在mysql数据库中创建一个存储过程 DELIMITER $$ CREATEPROCEDURE mybatisdemo1.pgetallusers(IN sid INT,IN eid INT)BEGINSELECT * FROM sb_users WHERE id>sid AND id<eid;END$$ DELIMITER ; 在Mapper接口里创建方法&#xff0c;和普通的查询数据方法没区别 在Mybati…

注册中心理论学习

注册中心介绍 注册中心&#xff08;也称为服务注册中心或服务发现服务&#xff09;是微服务架构中的一个关键组件&#xff0c;它负责服务的注册与发现。在微服务体系中&#xff0c;服务实例的数量和位置是动态变化的&#xff0c;注册中心提供了一个集中的地方来存储这些信息&a…

IDEA 设置主题、背景图片、背景颜色

一、设置主题 1、点击菜单 File -> Settings : 点击 Settings 菜单 2、点击 Editor -> Color Scheme -> Scheme, 小哈的 IDEA 版本号为 2022.2.3 , 官方默认提供了 4 种主题&#xff1a; Classic Light &#xff08;经典白&#xff09; ;Darcula &#xff08;暗黑主…

springboot景区寄存管理系统(源码+sql+论文报告)

针对传统人工行李寄存效率低和安全性不足等问题&#xff0c;设计并实现了一种由网页控制器组成的智能行李寄存系统。首先能够实现行李的寄存管理和行李柜管理以及记录查询和通知公告以及管理员等灵活控制菜单显示权限。经过研究和测试结果显示&#xff0c;该行李寄存系统实现了…

网页右键不能审查元素解决办法

网页右键不能审查元素解决办法 1.问题复现2.解决方法 1.问题复现 有的网站右键不能审查元素 这时是javascript 中的onselectstart"return false" 被禁止右键了。 2.解决方法 隐私和安全--->网络设置 网络设置--->javascript 然后回到不能审查元素的网页 …

数据结构01 栈及其相关问题讲解【C++实现】

栈是一种线性数据结构&#xff0c;栈的特征是数据的插入和删除只能通过一端来实现&#xff0c;这一端称为“栈顶”&#xff0c;相应的另一端称为“栈底”。 栈及其特点 用一个简单的例子来说&#xff0c;栈就像一个放乒乓球的圆筒&#xff0c;底部是封住的&#xff0c;如果你想…