Page 145 - 《软件学报》2026年第2期
P. 145
624 软件学报 2026 年第 37 卷第 2 期
1.1 根因分析
根因分析指的是通过结合系统异常前后的数据, 揭示系统异常行为的过程 [1] . 迄今为止, 根因分析主要的流派
可以归纳为两类, 即先验知识完备的领域根因分析 [23−27] 和基于因果发现的根因定位 [1,3,4,10,11] . 其中先验完备的领域
根因分析主要针对在先验的因果结构已知的情况下, 如何定位引起异常故障的根因变量. 这一系列的研究内容大
都面向具体的任务领域, 例如云服务系统 [26] 或者智能办公楼系统 [24] . 然而, 并不是所有的领域, 或者一个领域内的
所有子任务都可以获取到先验的因果图知识, 而上述领域根因方法在这样的应用场景中往往都会立即失效. 因此,
基于因果发现的根因定位通过两阶段的学习, 旨在先验因果知识不完备的时候学习相应的因果结构, 进而基于学
习到的因果结构进行根因变量的识别和定位. 例如, 一种基于递归划分的 PC 拓展算法被提出 [3] , 其结合异常发生
的前后数据, 通过进行节点增广和经典 PC 算法 [13] 的推广, 实现了高效的根因变量识别. 又如, 研究者在文献 [10]
中提出通过识别先验的结构因果模型 (structural causal model, SCM) 和结构不变的外源噪声干预操作, 来实现根因
变量的识别. 最近, 面向实时增量数据流的根因分析 [11] 和面向跨模态数据的根因分析 [1] 相继被提出, 其通过深度学
习的策略进行因果图的搜索, 并结合具体的下游任务场景上下文信息来实现具体的根因变量识别. 综上所述, 截至
目前的根因分析的基础思路是一致的, 即先进行因果图的获取 (先验知识或者因果发现), 再实现对应根因变量的
识别定位. 然而, 本文注意到, 这一思路在实际应用会存在非常大的问题. 首先, 因果发现这一任务本身和根因分析
的目标是不一致的, 前者的目标是在给定节点的情况下识别边的方向 (或者强度 [28] ), 而后者旨在识别因果图节点
集合的一个子集 (因果图本身不是必需的). 这一技术路线的设计既不符合最小化的原则, 同样也会引入因果发现
任务本身带来的误差传播. 其次, 因果发现这一前置任务本身仍处于探索的阶段, 无论从先验的可信赖假设到识别
图的完备性 (马尔可夫等价类 [13] ) 再到验证评估难以实施这一问题 [13] , 其任何的误差都会传播到第 2 阶段, 即基于
因果图的根因定位 (随机游走 [4] 或者马尔可夫链 [11] ) 本身严重依赖于上游因果图学习的精度. 综合上述两点缺陷,
本文旨在提出首个不依赖于因果发现的根因分析方法.
1.2 干预识别
干预识别指的是因果推断中的一类子任务, 其旨在结合干预前后的数据, 跨环境实现被干预节点集合的识
别 [14,17,18,20,29,30] . 其中, 贪婪搜索算法 (greedy equivalence search, GES) [13] 被改进到干预-观测数据结合的多环境下 [29] ,
而基于约束的因果发现框架在文献 [14] 中被推广到干预-观测联合数据的场景中, 并给出了干预变量识别的完备
性理论. 然而, 基于约束的方法在面向高维数据以及样本量增加的场景下, 其性能表现会受制于条件独立性测试这
一技术瓶颈 [13] . 近两年, 部分工作尝试通过构造特定的统计量来识别变量是否被干预 [14,18,20] . 具体来说, 在线性
SCM 模型的假设下, 一种基于精度矩阵 (变量协方差矩阵的逆) 变化的策略被提出 [17] . 进而, 这一方法被推广到潜
在混杂存在的情况下 [30] . 为了克服线性数据这一假设的限制, iSCAN 方法在文献 [20] 中被提出, 其通过构建得分
函数一阶导方差这一统计量, 用于识别变量是否跨环境被干预. 然而, iSCAN 方法的主要缺陷在于通过经典的斯
坦等式 (Stein identify) [21] 和基于核方法的斯坦估计 [22] 对于数据得分函数的估计. 这一方法缺乏对于复杂非线性数
据的估计能力, 且由于具备样本量平方复杂度, 难以泛化到真实的大型数据集上. 本文面向得分函数一阶导方差这
一统计量, 基于扩散模型的得分函数估计, 实现面向大规模数据的根因分析.
2 背景知识
2.1 结构因果模型
本节引入符号并正式定义问题设定. 我们使用 [d] 来表示整数集合 1,...,d. 此外, 本文用 G =< [d],E > 来表示
有向无环图 (directed acyclic graph, DAG), 其中 [d] 表示节点集合, E ⊂ [d]×[d] 表示有向边的集合, 且 (i, j) ∈ E 表示
j
从节点 i 到节点 的一条边. 此外, 本文令 X = (X 1 ,...,X d ) 表示一个 d 维度的随机向量. 基于上述符号, 一个作用于
X = (X 1 ,...,X d ) 上的结构因果模型 (SCM) M = (X, f,P U ) 通常可以被定义为由以下形式的 d 个结构方程组成的集
合 (对 ∀j ∈ [d]):
(
)
X j = f j Pa j ,U j ,

