1. 引言
自20世纪60年代以来,异常点检测(也称离群点或新奇点检测)一直是众多应用领域的活跃研究领域[1]。随着计算过程的发展,大数据的收集及其在人工智能中的应用得到了更好的实现,从而促进了包括异常点检测在内的时间序列分析。时间序列异常检测(TSAD)在城市管理、入侵检测、医疗风险和自然灾害等多个领域的应用日益广泛[2] [3]。近年来,深度学习在学习高维数据、时序数据、空间数据和图数据等复杂数据的表达式表示方面展现出巨大的能力,突破了不同学习任务的界限。目前,已推出了大量深度异常检测方法,在解决各种实际应用中具有挑战性的检测问题时,表现出明显优于传统异常检测的性能。
基于深度学习的异常检测主要包括两种方法,即基于预测的方法和基于重建的方法。基于预测的方法使用深度学习模型,将其预测值与实际值进行比较,根据其偏差确定是否为异常值。Ding等[4]提出了一种基于长短期记忆(LSTM)和高斯混合模型(GMM)的实时异常检测算法LGMAD。Shen等[5]提出了一种名为时序分层单类(Temporal Hierarchical One-Class, THOC)网络的时序单类分类模型用于时序异常检测。该模型通过使用带跳跃连接的扩张递归神经网络,能够在多个尺度上捕捉时序动态。Chen等[6]提出了一种名为GTA (Graph Learning with Transformer for Anomaly Detection)的新型多变量时间序列异常检测框架,该框架通过自动学习图结构、图卷积以及基于Transformer架构建模时间依赖性来实现。Zheng等[7]提出了一种基于关联感知时空图学习的时间序列异常检测模型。该模型通过基于关联学习模块捕获时间序列的成对关联,利用单跳和多跳邻居信息的图卷积网络捕获变量之间的空间依赖关系,并借助膨胀卷积进一步捕获序列在时间上的长程依赖关系。Liu等[8]提出了一种基于增强型图注意力网络模型用于多变量时间序列异常检测,该模型引入多尺度时空卷积模块和增强图注意力模型,实验结果表明该模型能够很好识别时间序列的异常。
基于重构的方法通常是通过学习时间序列特征,构建一个编码–解码器网络对样本数据进行重构,如果是异常样本由于其分布差异性,会导致重构效果差,通过重构误差作为判断序列是否为异常的标准。Li等[9]提出了一种基于扩张卷积变换器的生成对抗网络(DCT-GAN)用于时间序列异常检测。Wang和Kim等[10] [11]提出了一种基于Transformer的无监督多维时间序列异常检测模型。Wang等[12]通过分解与重建方法解决了时间序列漂移问题。他们采用数据–时间混合注意力机制克服局部滑动窗口方法的局限性。Wen等[13]提出了一种名为LGAT的新型无监督模型用于时间序列异常检测。该模型能够自动学习图结构,并利用增强的异常变换器架构捕获时间依赖关系。
迄今为止,已提出多种多维时间序列异常检测方法,基于神经网络的异常检测方法比传统统计方法表现更好[14]。然而,大多数现有建模方法只考虑时间序列时空依赖关系,没有充分考虑多维时间序列空间依赖关系。针对多维时间序列的时空相关性特征,本文提出了一种基于图嵌入GRU变分自编码器的多维时间序列异常检测模型(Graph Embedding-Gated Recurrent Unit Based on Variational Auto Encoders, GE-GRU-VAE)。该模型是将注意力机制、图嵌入技术、GRU和VAE相结合的一个混合深度学习模型,模型通过多个单元协同工作捕获序列的关键特征,能够有效识别多维时间序列的异常。
2. 多维时间序列异常检测模型GE-GRU-VAE
2.1. 模型框架
本文提出的异常检测模型框架如图1所示。首先,多维时间序列通过滑动窗口的方式输入模型,经过GE-GRU-VAE编码器中MLP和多头注意力结构进行局部特征提取,获得输入数据内在特征的分布参数。其次,重参数化Gumbel-Softmax得到其低维图嵌入。然后,将得到的图嵌入和原始序列输入到解码器中改进的GRU,并通过一个全连接层进行重构,得到与原始数据相同的形式重构结果。通过损失函数优化模型参数,最终得到最优模型。最后,基于最优模型,将测试数据集输入到该模型,得到原始序列嵌入图结构,计算其异常得分,并根据双阈值异常判定方法判断序列是否异常。下面是对模型各个模块的详细阐述。
Figure 1. The framework of GE-GRU-VAE model
图1. GE-GRU-VAE模型框架图
2.2. 编码器
GE-GRU-VAE模型将MLP和注意力机制作为VAE的推断网络(编码器)。编码器的输入是样本序列
,编码器的目标是学习随机变量(即潜在变量)
的近似后验分布
,从而得到数据的潜在分布。假设分布
的参数化表示为
。
在编码器部分,MLP和多头注意力结构进行局部特征提取,获得输入数据内在特征的分布参数。其中,两层的MLP可描述为:
(1)
其中,
为输入序列,
为激活函数,
为权重矩阵,
为偏置。
编码器中自注意力机制学习多维时间序列的依赖关系并提高潜在变量的表示能力。注意力机制是把分块操作后的数据通过不同的线性变换分别得到查询矩阵
和键矩阵
:
(2)
其中,
和
是可学习参数。通过点积计算注意力值:
(3)
通过多头注意力机制获得潜在变量的分布参数[15]:
(4)
其中,
,
,
,
和
是第
个头的可学习参数,使用Softmax函数保证所有分布参数
的概率之和等于1。
2.3. 图嵌入
上述编码器构建了分布
,生成潜在变量
,该变量应是一个表示其所属依赖类型的one-het向量。然而
的离散化阻碍了反向传播,并在训练过程中带来了额外的麻烦,为此使用Gumbel-Softmax分类重参数化技巧:
(5)
使得反向传播成为可能,其中
是从Gumbel(0, 1)分布中抽取的i.i.d.个样本的
维向量,当参数
时,连续分布收敛于预期的one-het样本。我们已经得到了一组连续化的
,对其做聚合操作防止信息流失。同时,可以构造如下矩阵:
(6)
则
为邻接矩阵元素,
为邻接矩阵。
2.4. 解码器
解码器将潜在空间变量映射回输入空间,得到数据输入的重构数据。本文的解码器由一个改进的GRU (Improved GRU)和线性层(FC)构成,本文提出一种混合卷积
对原始GRU进行改进,混合其计算公式为:
(7)
其中,
为权重矩阵,
和
分别代表特征矩阵和邻接矩阵。
混合卷积运算能够聚合不同阶邻居的信息,以学习到节点的高层表示。改进GRU模块的结构如图2所示,具体计算公式见(8)~(10)。
(8)
(9)
(10)
其中,
是前一时刻隐状态,
为输入时间序列,
是
时刻学习到的邻接矩阵,
是将聚合信息经过
变换后的在最后一个特征维度上平均切分形成的更新门和重置门,
是残差连接的参数矩阵。
Figure 2. Improved GRU module
图2. Improved GRU模块
2.5. 联合优化
我们的模型是基于VAE的框架,模型损失函数由两部分构成:KL散度和重构损失,其中KL散度用于度量VAE潜在变量分布与目标分布之间的偏离程度。重构损失度量输入与重构输出之间的差异。模型重建损失的计算公式为:
(11)
其中,
和
分别为原始序列和重构序列。
KL散度损失的计算公式为:
(12)
其中,是时间序列
和时间序列
之间的学习依赖关系属于类型k的概率之和。
在训练过程中,模型的损失函数包含两个优化目标,模型整体的损失函数可以表示为:
(13)
3. 异常检测
多维时间序列之间存在一定耦合关系,这种关系可用于图结构刻画[15] [16]。当时间序列没有异常时,其间的耦合关系保持稳定状态;当序列异常时,系统中节点间的耦合关系发生变化,图结构特征也发生明显变化。故本文通过多维时间序列嵌入图的连接强度的变化判断时间序列是否发生异常。
通过训练集训练得到GE-GRU-VAE模型,再将验证集输入该模型得到输入序列的嵌入图,本文采用图的度的变化来衡量嵌入图连接强度的变化。因此,根据图的度计算异常得分,若异常得分大于阈值,则认定该序列为异常。异常检测的步骤为:
1) 将测试数据集输入到已经训练好的模型GE-GRU-VAE得到嵌入图邻接矩阵
。
2) 计算图中节点
在
时刻的平均入度连接强度:
(14)
3) 计算节点
在
时刻的异常得分:
(15)
其中,
为移动平均平滑,其计算公式为:
(16)
4) 计算
时刻所有节点的异常得分:
(17)
5) 采用双阈值异常判定方法判断
时刻多维序列
是否异常,如果
则序列为异常序列,
的计算公式为:
(18)
其中,
和
是根据设定的百分位数得到阈值。设百分位数分别为
和
,则
(19)
其中,
是计算百分位数的函数。
4. 实验结果及分析
4.1. 数据集
本文采用两个真实数据集验证模型有效性,数据集SWaT (Secure Water Treatment) [17]和WADI (Water Distribution Testbed) [18]由新加坡科技设计大学的iTrust机构采集并开源。数据集的基本特征如表1所示。两个数据集的训练集只包含正常数据,测试数据集则包含正常和异常两种状态的数据。本文将训练集分为训练数据(80%)和验证数据(20%),其中训练数据用于模型训练,验证数据用于模型选择,测试数据集用于检验模型有效性。
Table 1. Basic characteristics of the dataset
表1. 数据集的基本特征
数据集 |
SWaT |
WADI |
训练集 |
496,800 |
1,048,571 |
测试集 |
449,919 |
172,801 |
传感器数量 |
51 |
122 |
续表
攻击次数 |
41 (36) |
15 |
异常持续时间 |
100~34,208 |
87~1740 |
异常率(%) |
11.97 |
5.99 |
4.2. 基线模型及评估指标
本文的基线模型为GDN [19]、LSTM-VAE [20]、MAD-GAN [21]、Omni Anomaly [22]、Topo GDN [8]和GRELEN [15]。采用的性能评估指标包括精确率(Precision)、召回率(Recall)和F1值(F1)。
4.3. 实验设置
在实验中,我们设定了
,
,GRU的所有隐藏层维度均为64,且其层数为3层。批量大小设定为32。该方法使用PyTorch框架实现,采用Adam优化器,学习率为
。所有样本均通过滑动窗口
生成。训练过程共进行了300个周期。
,
。本文使用Python 3.8作为编程基础,PyTorch 1.11.0、cuda 11.3实现和测试。使用16 vCPU Intel(R) Xeon(R) Gold 6430、RTX 4090、24 GB内存的计算机运行程序。
4.4. 实验结果
本实验在GRELEN基础上对模型进行了改进,表1为改进前后两个模型复杂度的对比。评价复杂度性能参数包括参数量Params、浮点运算次数/秒FLOPs、模型运行时间time和每个epoch运行时间Avgtime/epoch。由表2可知,在SWaT和WADI两个数据集上,本文提出的模型GE-GRU-VAE的复杂度的各个指标值均明显低于GRELEN模型的值,尤其是刻画时间复杂度的指标time和Avgtime/epoch下降最明显。该结果表明模型GE-GRU-VAE在时间和空间复杂度上均优于模型GRELEN。
Table 2. Comparison of model complexity
表2. 模型复杂度比较
数据集 |
SWaT |
WADI |
参数 |
Params |
FLOPs |
Time |
Avgtime/Epoch |
Params |
FLOPs |
Time |
Avgtime/Epoch |
GRELEN |
0.47 M |
21.70 G |
2.65 h |
31.76 s |
0.47 M |
51.91 G |
7.78 h |
93.40 s |
GE-GRU-VAE |
0.44 M |
18.78 G |
0.85 h |
10.21 s |
0.44 M |
44.93 G |
1.72 h |
20.60 s |
Table 3. Model performance comparison on different datasets
表3. 在不同数据集上模型的性能比较
数据集 |
SWaT |
WADI |
性能评价指标 |
Pre |
Rec |
F1 |
Pre |
Rec |
F1 |
GDN |
85.46 |
59.31 |
70.02 |
60.8 |
31.64 |
41.62 |
LSTM-VAE |
80.78 |
55.32 |
65.67 |
69.19 |
23.55 |
35.14 |
MAD-GAN |
75.62 |
52.87 |
62.23 |
25.33 |
39.52 |
30.88 |
Omnianomaly |
60.57 |
74.50 |
66.82 |
31.58 |
61.02 |
41.62 |
TopoGDN |
82.92 |
76.74 |
79.71 |
54.08 |
45.79 |
49.59 |
续表
GRELEN |
71 |
99 |
82 |
81 |
76 |
78 |
GE-GRU-VAE |
85.28 |
81.35 |
83.27 |
70.12 |
64.25 |
67.06 |
表3为GE-GRU-VAE与基准模型性能比较。由表3可知,首先,在SWaT和WADI两个数据集上,基线模型包括LSTM-VAE、MAD-GAN、Omni Anomaly和Topo GDN的三个性能指标的值都比较小,说明这些模型性能较差。其次,在SWaT数据集上,与其他基线模型相比较,GE-GRU-VAE的F1值最高,其精确率Precision和召回率Recall排在次优位置,精确率和召回率最高的模型分别是GDN和GRELEN。在WADI数据集上,GRELEN的三个性能最大,说明该模型在该数据集上性能最优,GE-GRU-VAE在该数据集上的三个性能指标都是次优。虽然在WADI数据集上,本文提出的GE-GRU-VAE是次优模型,但是与最优模型GRELEN的较高时间和空间复杂度相比较,GE-GRU-VAE仍属于性能优良的异常检测模型。最后,结合模型在两个数据集检测精度的性能指标值和复杂度指标值,可知本文提出的模型GE-GRU-VAE对多维时间序列异常检测具有一定优势。
5. 结论
在工业应用中,时间序列的无监督异常检测至关重要,因为它能显著减少人工干预的需求。但多变量时间序列因其特征维度和时间维度而构成复杂挑战。本文提出了名为GE-GRU-VAE的多维时间序列异常检测模型,该模型结合注意力机制、图嵌入技术和VAE的无监督深度学习模型。在编码器中采用MLP和多头注意力结构进行局部特征提取,在解码器中采用图嵌入GRU进行时间序列重构,通过训练集优化训练得到最优模型,并根据双阈值异常判定方法判断序列是否异常。在两个真实数据集上的实验表明,GE-GRU-VAE具有较低的时间与空间复杂度,且具有良好的异常检测精度。未来我们不仅需要在更多数据集上检验模型的有效性,而且要改进模型,在降低复杂度的基础上,提高多维时间序列异常检测的精度。
基金项目
国家自然科学基金(72461030)。