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

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


                 而成. 下面就相关概念和基本知识予以介绍.
                  2.1   符号定义

                           n                                                                  l  T  中起始
                    记   T ∈ R  为长度为  n 的时间序列, 即  n 个随时间有序排列的实数值          T = (T 1 ,T 2 ,...,T n ). 记  T i,l ∈ R  为
                           l
                 点为  i 长度为   的子序列, 即  T i,l = (T i ,T i+1 ,...,T i+l−1 ).
                                                        T
                    记   A 为一个时间序列异常检测算法. 对于输入  , 算法           A 输出长度为    n 的异常分数序列, 表示时间序列         T  中每
                                                                                   n
                 个数据点的异常分数, 记为        S T = A(T) = (S T,1 ,S T,2 ,...,S T,n ), 其中  S T,i ∈ [0,1]. 记   L ∈ {0,1}  为  T  的真实异常标记序列,
                 其中  0  和  1  分别表示对应的数据点为正常和异常. 记         Acc(A(T),L) 为异常检测算法    A 在时间序列    T  上的异常检测
                                                                                  [1]
                 准确率 (通过精度-召回率曲线下的面积            AUC-PR  [28] 、精度-召回率调和均值   F1-score 等指标度量), 用于度量算法
                 检测的异常分数      S T  与真实异常  L 的接近程度 (越接近则检测准确率越高).
                    表  1  对本文使用的主要符号进行了说明.

                                                     表 1 主要符号说明

                      符号                    说明                      符号                   说明
                       ,
                      T L          时间序列及对应的真实异常标签                   x T,i,l          T i,l 的时序表征
                      T i,l      序列  T  中起始点为  i 长度为  l 的子序列         p i       预测为  T i,l  选择各个算法的概率
                      S T              序列  T  的异常分数                 s(·)              Softmax函数
                                                                     (
                       A              时间序列异常检测算法                 p hard,i p soft,i )  T i,l 的算法选择硬 (软) 标签
                       B            时间序列异常检测算法候选集                   t soft           软标签温度系数
                   Acc(A(T),L)     算法   A 在序列  T  上的检测准确率           x K,i,l         T i,l 对应的知识表征
                                                                     (
                       f            时间序列异常检测算法选择器                  g T g K )    时序 (知识) 表征的映射函数
                                                                     (
                       T l      序列  T  的长度为  l 的不重叠子序列集合          z T,i,l z K,i,l )  共享空间上的时序 (知识) 表征
                      O(T)         序列  T  的真实最佳异常检测算法                τ              对比损失温度系数
                                        时序特征提取器                   D T /D K /D  时序表征/知识表征/共享空间维度
                      E T
                       P                  线性分类器                     α λ ( )     软硬标签 (知识融入) 重要性

                  2.2   时间序列异常检测算法自动选择问题的定义
                    时间序列异常检测算法自动选择问题的定义如下.
                    定义  1. 时间序列异常检测算法自动选择. 给定时间序列异常检测算法的候选集合                        B = {A 1 ,A 2 ,...,A m }, 时间序
                                                                         T
                 列异常检测算法自动选择的目标是构建一个映射函数                   f , 输入时间序列  , 返回    B  中具有最高准确率的异常检测
                 算法. 表示为:

                                                  f(T) = argmax{Acc(A(T),L)}                          (1)
                                                          A∈B
                 其中,   L 为  T  的真实异常标签.
                    当前主流方法     [4] 基于时间序列分类技术求解定义          1  中的时间序列异常检测算法自动选择问题, 其方法流程将
                 在第  2.3  节中详细介绍.
                  2.3   基于历史经验和时间序列分类技术的问题求解框架
                    根据定义    1, 算法选择函数    f  可以视作一类特殊的时间序列分类           [11,12] 模型, 能够将输入时间序列映射为具有最
                 高准确率的异常检测算法所对应的类别. 因此, 基于元学习                 [9] 思想, 可以将历史积累的时间序列及相应的异常检测
                 算法的准确率作为训练数据, 通过时间序列分类技术来学习                   f , 从而为未知时间序列预测最佳异常检测算法.
                    为了应对真实场景中时间序列长短不一且直接对长序列建模的计算复杂度过高的问题, Sylligardos 等人                            [4] 提
                 出一种通用的异常检测算法自动选择流水线, 将所有时间序列分割为固定长度的子序列. 具体来说, 对于任意时间
                         n
                                                                                                   l
                 序列   T ∈ R , 给定子序列长度   l (l ⩽ n), 将  T  分割为彼此相邻但不重叠的子序列集合  . 特别地, 若        T  无法被   等分,
                                                                                 T l
                 则最前序的两个子序列间有一定重叠.             T l  的数学表示如下:
   318   319   320   321   322   323   324   325   326   327   328