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

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


                                                           n
                                           {       {     ⌈ ⌉}}            ⌈ ⌉  n
                                                                           n
                                           T 1+i×l,l |i ∈ 0,1,...,  ,        =
                                          
                                          
                                                          l                l   l
                                          
                                          
                                       T l =                                                         (2)
                                                                   n
                                                                            n
                                                {          {     ⌈ ⌉   }} ⌈ ⌉  n
                                           {  }
                                          
                                           T 1,l ∪ T    |i ∈ 0,1,...,  −1  ,  >
                                          
                                                     n
                                                   n−⌈ l ⌉ +i×l,l
                                                                   l        l   l
                    上述划分有     3  个优势. 第一, 当前的时间序列分类方法大多面向固定长度时间序列而设计. 将原始时间序列划
                 分为固定长度子序列, 便于与现有时间序列分类方法兼容. 第二, 固定序列的长度有利于                           GPU  等硬件分批并行处
                 理, 从而提高计算效率. 第三, 将超长时间序列分割为较短的子序列能降低序列建模的计算复杂度.
                    在上述划分基础上, 利用标准的时间序列分类技术, 以历史积累的时间序列数据及对应的类别标签作为训练
                                                                                 Acc(A 1 (T),L), Acc(A 2 (T),L),...,
                 数据来学习函数     f . 具体地, 给定候选异常检测算法在历史时间序列            T  上的检测准确率
                 Acc(A m (T),L), 其类别标签对应具有最高准确率的异常检测算法, 表示为:

                                                 O(T) = arg max {Acc(A i (T),L)}                      (3)
                                                         i=1,...,m
                    时间序列    T  分割出的所有固定长度子序列         T l  与  T  具有相同类别标记. 即:

                                                                                                      (4)
                                                    O(T i,l ) = O(T), ∀T i,l ∈ T l
                    经上述预处理的训练数据可以与任意时间序列分类方法相结合来构建分类函数                             f , 即时间序列异常检测算法
                                                T test , 首先根据公式                                 f  分别预测
                 选择器. 在测试阶段, 对于未知时间序列                          (2) 将其分割为同样长度的子序列; 再通过
                                                                                                T test  进行异
                 每个子序列的类别; 最后通过多数表决的方式进行投票, 选择得票最多的类别对应的异常检测算法对
                 常检测. 图  1  展示了基于时间序列分类的时间序列异常检测算法自动选择的流程.

                                                       时间序列 T
                                                                              异
                                              T 1,l    T 2,l  ···     T k,l   常
                                                                              检
                                                               f (T 1,l )     测
                                                                        A 1  A 2 (T)
                                                             时  f (T 2,l )
                                                             间      多   A 2
                                                             序      数
                                                             列      投
                                          T 1,l                 ···      ···
                                            T 2,l            分  f (T k,l ) 票
                                                                        A m
                                             ···             类         异常检测
                                                                       算法集合
                                               T k,l
                                                                         
                                             子序列集合  l
                                    图 1 基于时间序列分类的时间序列异常检测算法自动选择流程

                  3   知识增强的时间序列异常检测算法自动选择方法
                  3.1   方法概述
                    本文所提的知识增强的时间序列异常检测算法自动选择方法总体框架如图                           2  所示. 与现有方法    [4] 一样, 本文
                 方法的核心目标是构建面向异常检测的时间序列分类函数 (即算法选择器)                        f . 算法选择器由两部分组成.
                                                                           D T
                    时序特征提取器      E T  从时间序列  T i,l  中提取时序表征 (特征向量)   x T,i,l ∈ R , 表示为:

                                                        x T,i,l = E T (T i,l )                        (5)
                                                                                                    [30]
                                                                                        [29]
                 其中,  E T  可以是任意面向时间序列分类的网络架构, 如被广泛验证具有优越性能的卷积神经网络 和                        Transformer 等.
                                                                                                       m
                    线性分类器     P 以时序表征    x T,i,l  为输入, 预测  T i,l  属于每个类别 (即选择相应的异常检测算法) 的概率        p i ∈ R ,
                 表示为:

                                         p i = (Pr(A 1 ),Pr(A 2 ),...,Pr(A m )) = P(x T,i,l ) = s(x T,i,l ·W)  (6)
                                                e x i
                 其中,  W ∈ R D T ×m  为权重系数.  ∀i, s(x) = ∑   为  Softmax  函数  [31] .  Pr(A k ) 表示选择异常检测算法  A k  的概率.
                                                  x j
                                                 j
   319   320   321   322   323   324   325   326   327   328   329