Page 322 - 《软件学报》2026年第2期
P. 322
梁志宇 等: 知识增强的时间序列异常检测算法自动选择 801
(2) 提出一种能灵活融入各类外部知识的时间序列异常检测知识融合模块, 将知识映射为统一的表征, 并通过
对比学习最大化知识表征与时间序列表征间的互信息, 从而将时间序列异常检测相关的外部知识融入时间序列分
类模型中.
(3) 本文的方法被设计为插件的形式, 使其能够无缝集成到任意时间序列分类网络模型的训练中, 提高模型选
择最优异常检测算法的能力, 且带来的额外计算时间可以忽略不计.
(4) 多组对比实验验证了本文所提方法在时间序列异常检测算法自动选择问题上的有效性.
本文第 1 节介绍时间序列异常检测算法自动选择的相关方法和研究现状. 第 2 节介绍本文所需的基础知识,
包括本文用到的主要符号、时间序列异常检测算法自动选择问题的形式化定义, 以及基于时间序列分类的时间序
列异常检测算法自动选择求解流程. 第 3 节介绍本文构建的知识增强的时间序列异常检测算法自动选择方法. 第
4 节通过对比实验验证了所提方法的有效性. 最后, 第 5 节总结全文.
1 时间序列异常检测算法自动选择相关工作
时间序列异常检测技术在数据库监控运维 [2,14] 、故障实时预警 [15] 等众多领域具有广泛应用. 针对不同场景中
时间序列数据的特点, 研究者提出了多种类型的时间序列异常检测算法 [1,3] . 例如, 基于距离的算法 [16–19] 检索时间
序列中与近邻子序列具有较低相似度的子序列. 这些子序列代表了时间序列中“不和谐”的异常片段. 基于邻近性
(proximity) 的方法 [20–22] 针对数据空间中正常模式分布紧凑而异常模式较为稀疏的场景, 通过密度估计或空间划分
等策略区分正常模式与异常模式. 基于预测的方法通过循环神经网络 [23] 等时间序列预测模型, 根据过去一段时间
的数据预测当前时间段内的数据, 并以预测值作为当前时间段的正常值, 通过真实观测值与预测值之间的误差大
小来判断是否发生异常. 基于重建的方法通过自编码器 [24] 、生成对抗网络 [25] 等生成模型学习正常时间序列的重
构方式, 并假定异常模式难以通过学习到的生成模型进行重构, 因而能通过重构误差的大小来判断输入序列是否
为异常.
在真实应用中, 由于时间序列数据特征和异常模式复杂多样, 目前尚未存在一种时间序列异常检测算法能在
所有数据上表现良好 [1,3,4] . 尽管通过集成学习 [5] 组合多种异常检测算法可以弥补单一算法准确率不足的缺陷, 但该
方案需要运行所有候选的算法, 计算代价会随着异常检测算法数量的增加而显著增大. 此外, 许多场景下, 集成多
种异常检测算法所取得的准确率往往低于单独执行这些算法所能达到的最佳水平 [4] . 因此, 如何根据时间序列数
据的特点自动选择最优异常检测算法, 从而提高检测准确率, 是当前一项重要研究课题.
现有的时间序列异常检测算法自动选择方法主要包含两类: 基于代理指标的方法 [26] 和基于历史经验的方法 [4,7,8] .
基于代理指标的方法根据时间序列异常检测的特点, 设计无监督的代理指标来评估异常检测结果的准确性,
并以代理指标为依据选择最准确的算法. 与集成方法一样, 这类方法通常需要运行所有候选的异常检测算法, 并利
用相应的检测结果来计算代理指标, 因而面临严重的效率问题. 不仅如此, 通过代理指标估计异常检测算法的真实
准确率具有较大误差, 影响算法选择的效果.
基于历史经验的方法利用元学习的思想, 通过构建机器学习模型, 从已有的时间序列异常检测任务中学习有
关知识, 指导新任务上的算法选择. 该过程被抽象为一类特殊的时间序列分类 [10] 问题, 即构建一个映射函数, 将输
入时间序列映射到相应的最佳时间序列异常检测算法上. 由此, 任何时间序列分类技术, 如现有的基于时间序列相
似度 [12,27] 、基于特征 [12] 和深度学习方法 [11] , 都能用来解决时间序列异常检测算法的自动选择问题. 相较于基于代
理指标的方法, 利用历史经验构建的时间序列分类模型能直接为给定时间序列选择最佳异常检测算法, 无需通过
运行候选算法来评估其检测准确率, 因而具有更高计算效率. 且以异常检测算法在历史任务上的真实准确率为依
据, 有利于识别并选择更准确的异常检测算法, 从而提高目标任务上的异常检测准确率. 因此, 该类方法是当前及
未来时间序列异常检测算法自动选择方法的主流 [4] .
2 基础知识
本文所提的时间序列异常检测算法自动选择方法在基于历史经验和时间序列分类技术的方法框架之上构建

