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

梁志宇 等: 知识增强的时间序列异常检测算法自动选择                                                       809


                 操作系统的服务器上运行, 并使用单个英伟达               GTX 3090 GPU. 与  Sylligardos 等人  [4] 的设置一致, 实验采用  12  个
                 不同类型的时间序列异常检测算法作为候选, 包括                8  个完全无监督方法: IForest、IForest1、LOF、MP、NormA、
                 PCA、HBOS、POLY    和  4  个半监督方法: OC-SVM、AE、LSTM-AD、CNN. 算法简介见表           4.

                                              表 4 候选的时间序列异常检测算法

                    异常检测算法                                         描述
                       IForest       基于随机空间分裂构造二叉树, 到根的路径较短的节点 (即输入的子序列) 有更大概率为异常
                       IForest1        与IForest使用相同算法, 但输入子序列的长度为1, 即以单个时间步的值为输入进行检测
                        LOF                            通过相邻密度与局部密度的比例判断异常
                        MP                             检测具有最大近邻距离的子序列作为异常
                       NormA                                利用聚类来识别正常模式
                        PCA             利用主成分分析将数据投影到低维超平面, 并将距离超平面较远的数据点判断为异常
                       HBOS                 构建数据的直方图, 并使用组距 (Bin) 高度的倒数作为数据点的异常分数
                       POLY                 用历史数据拟合多项式模型来预测当前子序列, 基于预测误差判断异常值
                      OC-SVM           通过One-Class SVM拟合正常数据找到正常数据的边界, 将边界之外的数据判断为异常
                        AE            利用自编码器学习正常数据的低维特征表示和重构方法, 并假设重建误差大的序列为异常
                      LSTM-AD          在历史数据训练长短时记忆网络 (LSTM) 来预测当前子序列, 基于预测误差判断异常值
                       CNN              在历史数据训练卷积神经网络 (CNN) 来预测当前子序列, 基于预测误差判断异常值

                    依第  2.3  节所述流程, 计算各个异常检测算法在所有时间序列上的检测准确率, 其中训练数据的准确率用来
                 生成算法选择器训练所需的标签. 测试数据上的检测准确率用来评估算法选择器的最优算法选择能力.
                    为了公平比较, 时间序列异常检测算法及算法自动选择基准方法的超参数设置与                           Sylligardos 等人  [4] 的研究一

                 致. 每个基准方法均使用子序列长度           l ∈ {16,32,64,128,256,512,768,1024} 分别测试准确率并报告最佳结果.
                    对于本文所提方法, 使用基准方法中的残差网络                ResNet 作为算法选择器. 子序列长度        l 固定为  128. 大语言模
                 型使用预训练的      BERT [32] , 模型通过开源工具   Hugging Face (https://huggingface.co/) 实现, 版本为基础版 (BERT-
                 Base).   g T  和  g K  分别由两个单隐层的多层感知机 (MLP) [31] 实现, 隐藏层维度为  256, 激活函数为   ReLU, 输出层维度
                 从{64, 256}中选择.  τ 的值设置为   0.1.  α 的值从{0.2, 0.4, 1.0}中选择, 分别表示软标签相较硬标签具有较低、适中
                 和较高重要性. 对本文方法在          t soft  和  λ  不同取值下的验证准确率进行实验探究. 结果显示,         t soft  取值区间为  [0.2,
                 0.25] 时, 本文方法整体表现较好, 且准确率相对          t soft  波动较明显 (见后文图  5(a)). 因此, 后续实验中  t soft  从{0.2, 0.22,
                 0.25}中选择. 类似地, 如后文图     5(b) 所示,  λ 取值在  [0.78, 1] 时, 本文方法整体具有较高准确率, 且其相较        λ 波动平
                 缓, 故  λ 取值仅从区间端点{0.78, 1.0}中选择, 从而实现超参数寻优空间规模与算法选择效果的平衡. 为提高效率,
                 通过随机搜索     [44] 策略优化超参数. 其他设置与基准方法一致.
                  4.4   实验结果分析

                    本文方法与基准方法所选定的时间序列异常检测算法在各数据集上的准确率 (AUC-PR) 结果如表                              5  所示. 每
                 个数据集上的最高准确率用粗体展示. 为了进行全面比较, 在准确率结果基础上统计了几项关键指标. 其中, “最佳
                 次数”表示每个方法在所有数据集上取得最高准确率的次数. “平均排名” 计算每个方法在各个数据集上准确率排
                 名的平均值. “Wilcoxon p  值” 表示用   Wilcoxon  符号秩检验的  p  值 (p-value) 度量的本文方法与每个基准方法在各
                 个数据集上准确率排名的差异, 其中下划线标示了小于                  0.05  的  p  值, 表示在  95%  的置信区间内, 两种方法的准确
                 率具有统计显著性差异. “一对一比较” 将本文方法与各个基线方法单独比较, 并统计本文方法的准确率胜/平/负
                 于被比较对象的数据集个数.
                    实验结果显示, 本文方法 (Ours) 在      14  个数据集的   8  个子集中达到当前最高的检测准确率. 在余下             6  个数据集
                 上, 本文方法的准确率相较于         9  个基准方法仍具有较高的准确率排名: Daphnet 排名第             4、GHL  排名第   2、NAB
                 排名第   2、OPP  排名第  4、SMD  排名第   5、YAHOO   排名第   2. 所有数据集上准确率排名的平均值为            2.43, 超过了
                 全部基准方法. 在此基础之上, 结合本文方法与基准算法在各个数据集上平均排名的                           Wilcoxon  符号秩检验结果,
   325   326   327   328   329   330   331   332   333   334   335