Page 153 - 《软件学报》2026年第2期
P. 153

632                                                        软件学报  2026  年第  37  卷第  2  期


                 of variation (COV) 属性变化来检测根因变量集合.
                    ● 第  2  类是基于因果发现的根因分析方法, 其包括: CIRCA           方法  [4] , 其通过回归的方式, 结合干预前后的数据,
                 对预先给定好的因果图做根因分析;            Ψ-PC 算法  [3] , 其改进了文献  [14] 中提出的面向观测-干预数据结合的马尔可
                 夫等价类理论, 并针对根因分析问题做了递归式的加速                  (原文中的方法名是      RCD, 但是本文采用     Ψ-PC 以表明其采
                                                          [1]
                 用了  Ψ-马尔可夫等价理论来实现根因分析); MULAN 方法, 其结合了系统运行时的文本日志输出, 通过语言大模
                 型来辅助构建相应的因果图和根因分析; UT-IGSP            [29] 方法, 其通过贪婪策略来搜索最稀疏的排列, 进而识别对应的
                 根因集合.
                    ● 第  3  类是无需因果发现的干预检测方法, 其包括: iSCAN           方法  [20] , 其利用得分函数方差的变化来识别干预
                 变量集合; LinearEST  方法  [17] , 其在全线性  SCM  的假设下, 通过观测精度矩阵的变化来识别被干预元素的集合.
                    特别地, 对于    CIRCA  方法, 鉴于本文所测试的数据集没有先验的因果图知识, 本文通过预部署一个基于                          PC
                 算法的因果发现模块来支持其输入条件. 此外, 对于                MULAN  方法, 鉴于本文提供的数据不能够支持其通过大模
                 型进行的文本分析, 本文将其多模态输入改为单模态输入.
                  4.4   评估指标
                    对于方法在根因分析上的表现, 本文通过              F1  分数  (F1 score, %) 来评价估计的根因集合    Inv
                                                                                         c  和真实的根因集
                 合  Inv 之间的差异:

                                                          ∑     (     )
                                                                   Inv
                                                               1 j ∈ c
                                         
                                                            j∈Inv
                                         
                                         
                                          Precision = ∑  (     ) ∑     (     )
                                         
                                                             Inv
                                         
                                                        1 j ∈ c +         Inv
                                                                      1 j ∈ c
                                         
                                                     j∈Inv         j<Inv
                                         
                                         
                                         
                                                       ∑      (    )
                                         
                                         
                                                                 Inv
                                                             1 j ∈ c            .
                                                          j∈Inv
                                         
                                         
                                          Recall = ∑  (     ) ∑      (    )
                                         
                                         
                                                           Inv
                                                     1 j ∈ c +          Inv
                                                                    1 j < c
                                         
                                                   j∈Inv         j∈Inv
                                         
                                         
                                         
                                         
                                         
                                                Precision×Recall
                                         
                                          F1 = 2×
                                         
                                         
                                                 Precision+Recall
                    对于各个基线方法在开放环境下的根因分析表现                  (真实的根因变量个数未知, 因此需要通过推荐前                k 个最可
                                              k 个推荐根因变量的精度       (Precision@k) 来衡量其表现  (这里默认变量已经被
                 能的变量作为根因变量), 本节通过前
                 算法排序过):

                                                            ∑     (    )
                                                                     Inv
                                                                1 j ∈ c
                                                               j ⩽k
                                                Precision@k =           .
                                                                  k
                    注意对于本文所提方法, 其         Top-K  推荐通过对于算法中      J [d]\T  s θ (x) j,j  的大小进行排序从而得到相应的  Top-K
                                                                 x
                 个根因变量. 对于方法在根因分析数据上的效率, 本文通过计算平均每次训练+测试的运行时间                             (min) 来测量.
                  4.5   实验设置
                    对于所有的基线方法, 本文遵循其在相应开源代码中的实现以及超参数选择方式. 对于所有条件独立性, 测
                 试, 本文采用基于核方法的条件独立性测试              (KCI [43] ). 对于本文方法用到的扩散模型, 其时间步骤        T = 100, 扩散模
                                       [0.000 1,0.002] 之间线性增长. 在采样的时候,   从一个均匀分布中被采样. 对于扩散
                                                                           t
                 型方差的控制超参数在区间
                 模型内部的架构, 整个神经网络是具备            5  层线性  MLP  的全连接网络, 激活函数为       LeakyReLU, 同时在第一层配备
                 了层归一化和     Dropout 机制  [37] . 所有的实验都基于一块  NVIDIA A100  显卡进行.
                  4.6   RQ1: 各个方法的根因分析性能表现分析
                    如图  3  和图  4  所示, 本节在改变邻接密度, 即图本身结构的稀疏度的情况下, 分别测试了邻接密度为                        5  和  10
                 下各个基线方法的表现情况.
                    ● 基于相关性的根因分析方法          ϵ-Diagnosis 表现较差. 其根本原因和本文在第        1  节中引入因果根因分析的动机
                 相吻合, 即相关性的方法非常容易定位到直接原因而非引起故障的上游根本原因.
                    ● 基于条件独立性测试的        CIRCA  和  Ψ-PC 表现同样不理想. 背后的原因主要是条件独立性测试这一工具目前
   148   149   150   151   152   153   154   155   156   157   158