Time Series Anomaly Detection Using Transformer-Based GAN With Two-Step Masking

系列文章目录

IEEE 2023 基于双步屏蔽变压器的GAN时间序列异常检测



摘要

时间序列异常检测是一项确定未见信号是正常还是异常的任务,是各种实际应用中的关键功能。典型的方法是使用生成模型,如生成对抗网络(GAN)来学习正常的数据表示,以区分正常和异常信号。近年来,一些研究积极采用Transformer对时间序列数据进行建模,但目前还没有一个纯粹的基于Transformer的GAN框架用于时间序列异常检测。作为一项开创性的工作,我们提出了一个新的纯基于transformer的GAN框架,称为AnoFormer,以及它的有效训练策略,以实现更好的表示学习。具体来说,我们通过引入两步掩蔽策略来提高模型的检测能力。第一步是随机掩码:我们设计一个随机掩码池来随机隐藏部分信号。这允许我们的模型学习正常数据的表示。第二步是基于排他性和熵的重掩模:我们提出了一种新的改进步骤来提供反馈,以准确地建模第一步中的排他性和不确定部分。我们的经验证明了重掩蔽步骤的有效性,它可以鲁棒地产生更多的类正态信号。在各种数据集上的大量实验表明,AnoFormer在时间序列异常检测方面明显优于最先进的方法。

INDEX TERMS Anomaly detection, masking, self-attention, signal reconstruction, transformer, time series
analysis.


提示:以下是本篇文章正文内容,下面案例可供参考

一、介绍

时间序列异常检测是预防各种领域潜在风险和经济损失的关键技术,如大型工厂传感器数据异常检测[1]、心电监测[2]、网络流量分析[3]等。为了处理这一任务,从统计方法[4]、[5]、[6]、[7]到最近基于深度学习的方法[2]、[8]、[9]、[10]、[11]、[12]、[13]、[14]、[15],由于缺乏标记异常和高度非线性的时间依赖性,许多研究都集中在无监督学习方法上。

对于统计方法,[4]提出了局部离群因子(local outlier factor, LOF)来为每个对象分配离群程度。[5]和[6]将正常数据表示为一个紧凑的聚类,异常分数表示为每个样本到其聚类中心的距离。[7]利用递归图识别异常局部结构,并通过计算任意两个子序列的不相似度来检测异常。得益于强大的非线性建模,许多研究都提出了基于深度学习的方法。基于深度学习的无监督学习方法之一是基于重构的方法。它通常使用自动编码器(AE)或生成对抗网络(GAN)来学习正常数据的表示,并从任意输入重建类似正常的信号。作为骨干网络,现有研究广泛使用CNN(卷积神经网络)[2]、RNN(循环神经网络)[10]、[11]或LSTM(长短期记忆)[9]、[15]。[2]提出了一个基于GAN重建的网络,并产生可解释的结果,从重建输出中精确定位异常时间刻度。[9]利用基于lstm的GAN,提出周期一致性损失,实现有效的数据重构。[10]提出了稀疏连接循环单元的自编码器,并将多个自编码器集成在一起。[11]提出了具有不同解码长度的多个解码器的循环自编码器,并引入了形状强制重构损失来捕获多分辨率下的时间特征。[15]结合了统计方法和深度学习模型。它计算投影空间中两个相邻子序列之间的不相似度,并使用基于lstm的模型进行处理。利用统计策略对异常子序列进行识别。最近,人们尝试将Transformer[16]应用于时间序列异常检测,它们表现出[12]、[17]、[18]的优异性能,能够从注意机制中发现时间关联。在这项工作中,我们还采用了Transformer架构来嵌入正常的时间序列表示。我们设计了一个基于纯Transformer的对抗框架来重建真实的合成时间序列数据,并利用真实数据与真实生成数据之间的差异来可视化异常点。

如果我们使用变压器编码器设计GAN,我们期望模型学习正常时间序列数据并最终生成真正的类正常信号。然而,与现有的自编码器结构不同,纯基于Transformer编码器的生成器没有压缩的潜在空间,也就是说,它使模型找到平凡的解,只是复制输入并粘贴到输出以进行重建。因此,我们需要一种新的训练方法来学习基于变压器的发电机的正态时间序列数据的分布。为了解决复制粘贴问题,我们采用了屏蔽策略。根据这种方法,下一个问题是在哪里屏蔽输入信号以有效地检测异常。直观地说,为了产生类正态输出,最佳掩蔽位置是输入信号中的异常点。由于我们事先不知道异常部位在哪里,因此有选择地掩盖异常区域是一项挑战。

在本文中,我们提出了AnoFormer,这是一种新颖的基于变压器的GAN,利用纯变压器编码器来设计发生器和鉴别器。此外,为了有效地学习正常数据表示,我们提出了一种新的两步屏蔽策略。我们首先使用随机掩蔽(步骤1)训练基于transformer的GAN,用于正常时间序列数据的表示学习。在第1步填充输入的随机屏蔽部分时,模型有效地学习了正态数据的分布。然而,由于步骤1中的随机屏蔽,我们的模型不能完全考虑输入信号的所有部分,这种随机性是异常检测中的一个大问题。因此,我们通过重新屏蔽步骤1的排他部分来解决这个问题。此外,为了找到最佳掩蔽位置,我们从Transformer块的注意图中计算熵,并对具有高不确定性的可能异常点的高熵部分进行重新掩蔽。这种排他性和基于熵的重屏蔽(步骤2)为更好的表示学习提供了反馈,最终提高了异常检测性能。实验证明,两步掩模是AnoFormer成功解决异常检测问题的关键。

我们的主要贡献可以概括如下:
1.我们提出了一个简单而有效的纯基于transformer的GAN框架,该框架具有用于无监督时间序列异常检测的生成器和鉴别器,称为AnoFormer。此外,我们还提出了框架的预处理和嵌入方法,以有效地处理时间序列数据。
2.提出了一种新的两步掩码方法来对正态时间序列数据的分布进行编码。一种新提出的基于熵的重掩蔽方法帮助我们的模型基于熵向不确定部分提供反馈。从大量的实验中,我们经验验证了我们的两步掩蔽使我们的模型鲁棒性强,并成功地嵌入了正常时间序列数据的表示。
3.AnoFormer在各种无监督时间序列异常检测数据集(NeurIPS-TS, MIT-BIH, 2D-Gesture和Power-Demand)上取得了新的最先进的结果。

二、相关工作

A.无监督时间序列异常检测

时间序列异常检测在许多应用中都是一个关键问题,并得到了广泛的研究。以往的研究大多是在无监督的情况下进行的。传统的方法包括密度估计和基于聚类的方法。密度估计方法[4],[19],[20]计算局部密度以确定离群值。[4]提出了局部离群因子(LOF)来为每个对象分配离群程度。[19]提出了一种基于连通性的离群因子(COF),当模式本身具有与离群值相似的邻域密度时,该离群因子提高了LOF的有效性。[20]利用深度自编码器生成低维表示,并以端到端方式与自编码器共同优化混合模型。在基于聚类的方法[6],[8],[21],[22]中,异常得分被表示为每个样本到其聚类中心的距离。[6]和[21]将普通数据的表示收集到一个紧凑的簇。[8]引入了一个带跳跃连接的扩张型RNN来捕捉时间动态。此外,还鼓励超球中心彼此正交,以便更好地进行表示学习。[22]对分解张量进行聚类,目标是最小化假阳性。

相反,最近的大部分工作都集中在基于深度学习的方法上。基于预测的方法[23]、[24]从预测误差中检测异常。[23]利用长短期记忆(LSTM)实现高预测性能,同时保持可解释性。[24]提出了一种基于多元卷积LSTM和混合概率主成分分析仪(CL-MPPCA)的数据驱动异常检测器,用于有效预测正常和异常遥测序列。[25]提出了由多个Transformer编码器层和一个解码器组成的预测模型,该解码器包括一个1D卷积层,用于模拟时间序列数据的时间结构。基于重建的方法[2],[26],[27],[28],[29]找到用于重建的正常时间序列数据的潜在表示。[26]引入了一种基于lstm的变分自编码器(VAE)来融合信号并重建其期望分布。[27]提出了一种随机RNN来捕获多变量时间序列的正常模式,并通过学习其鲁棒表示来重建输入数据。[28]用分层VAE对多变量时间序列的度量间和时间依赖性进行建模。[29]提出了一种基于GAN的网络,利用LSTM-RNN来捕获多变量时间序列的时间相关性。[2]提出了一个基于GAN重建的网络,并产生可解释的结果,从重建输出中精确定位异常时间刻度。最近,[12]、[17]、[18]提出了一种基于transformer的重构架构,并且表现出了更好的性能。[12]引入了一种异常注意机制来计算关联差异并考虑邻接集中偏差。[17]提出了一种基于变压器的异常检测模型,该模型具有自调节和对抗训练过程。[18]利用多个基于扩展卷积变压器的发生器和单个鉴别器来缓解模态崩溃问题。[30]提出了一个内存增强的U-Transformer框架,以改进特征表示和记录原型模式。[3]引入了图卷积和多尺度展开卷积来模拟异常影响流动过程。[31]提出了一种基于变压器的网络,具有渐近虚警率分析和检测阈值的闭式表达式。

然而,[12]、[31]没有使用对抗性框架,[3]、[18]、[30]将CNN或U-Net与Transformer架构结合在一起,使得结构更加复杂。[17]使用重构损失来修改第二阶段的关注权值,这并不适合异常检测。为了更好地表征学习基于重构的方法,我们提出了一种新的纯基于transformer的对抗框架和两步掩蔽方法。结果表明,基于熵的方法优于基于重构损失的方法。

B.生成模型Transformer

使用Transformer的生成模型已被提出并应用于多个领域,如计算机视觉[32],[33],[34],[35],自然语言处理[36],[37]和序列建模[38],[39]。特别是,这些模型用于解决图像域的各种任务,如场景生成[32]、[33]、[40]、显著性预测[35]、语义分割[41]和草图合成[42]。在此基础上,提出了Transformer来解决基于图神经网络的图到序列转换任务[43]、文本生成任务[44]和基于改进自注意机制[45]的时间序列预测任务。我们还使用Transformer来构建生成框架,即同时具有生成器和鉴别器。在此框架下,基于基于变压器的GAN,提出了合适的嵌入方法和损失形式,有效解决了异常检测问题。

C.MASKING WITH TRANSFORMER

许多研究将屏蔽策略应用到Transformer架构中,以实现有效的表示学习。包括BERT[46]提出了屏蔽语言模型(mask Language Model, MLM)技术来预训练语言表征在内,许多研究也采用了屏蔽方法,如[47]用于动作识别,[47]用于文本分类任务,[48]用于文本日志异常检测,[49]、[50]用于视觉表征学习。在[51]中,基于cnn的模型通过在整个图像上使用不同尺度的多尺度掩码来学习语义上下文特征,在图像域进行异常检测。我们还在基于变压器的GAN中使用掩蔽进行时间序列异常检测,但与上述研究不同的是,我们提出了两步掩蔽策略用于训练和测试,以提供反馈,从而增强模型成功生成不确定部分。

三、AnoFormer

在本节中,我们提出了用于无监督时间序列异常检测的AnoFormer。我们首先在第III-A节中简要定义目标任务。然后,我们在第III-B节中描述了如何基于纯Transformer编码器构建基于Transformer的GAN框架。接下来,在第III-C节中,我们为我们的模型引入了两个不同的屏蔽步骤,以有效地编码时间序列数据。最后,在第III-D节中给出了AnoFormer的整个培训方案。图1显示了AnoFormer的整体架构。

A.问题定义

X = { x 1 , x 2 , ⋯   , x T } ∈ R T × n X=\{x_{1},x_{2},\cdots,x_{T}\}\in\mathbb{R}^{T\times n} X={x1,x2,,xT}RT×n是一个长度为T的输入信号,其中 x t = { x t 1 , x t 2 , ⋯   , x t n } ∈ R n x_{t}=\left\{x_{t}^{1},x_{t}^{2},\cdots,x_{t}^{n}\right\}\in\mathbb{R}^{n} xt={xt1,xt2,,xtn}Rn在时间步长T处是一个维数为n的向量。本文主要研究n = 1和n = 2的情况。由于正常时间序列数据比异常时间序列数据更容易获得,因此我们只使用正常数据训练生成器G和鉴别器D。经过训练后,对于每一个不可见的信号X,可以是正常的,也可以是异常的,发生器G产生一个类正态信号 X ^ \hat{X} X^。从生成的信号中,我们可以根据给定信号X与生成信号 X ^ \hat{X} X^的重构误差来判断观测信号X是否正常。

在这里插入图片描述
图1。提出的AnoFormer概述。在步骤1(随机掩码)中,预处理的输入 X ~ \tilde{X} X~用预定义掩码池中随机选择的掩码进行掩码。在将屏蔽输入 x ~ m 1 \boldsymbol{\tilde{x}}_{\boldsymbol{m}}^{\boldsymbol{1}} x~m1传递给发生器后,通过嵌入层、变压器编码器层和反嵌入层产生 X ^ 1 \boldsymbol{\hat{X}}_{\boldsymbol{1}} X^1作为输出。在步骤2(排他性和基于熵的重掩码)中,基于步骤1中所有层的注意图计算的熵, X ~ \tilde{X} X~被重新掩码,并且从生成器再次生成 X ^ 2 \hat{\boldsymbol{X}}_{2} X^2。最终输出X是通过步骤1和步骤2的遮罩部分的组合来构造的。在批评家的帮助下,发生器能够产生更多类似于正常的信号。这里, L a d v \mathcal{L}_{\boldsymbol{a}dv} Ladv是对抗性损失,包括 L a d v g \mathcal{L}_{\boldsymbol{adv}}^{\boldsymbol{g}} Ladvg L a d v C \mathcal{L}_{adv}^{\mathsf{C}} LadvC。注意,批评家只用于火车时间。为简单起见,省略了通道维度n。

B.基于Transformer的时间序列数据Gan

1)预处理

为了处理Transformer编码器的输入信号,我们需要一个适当的预处理步骤,使输入信号离散。为此,我们使用极小值缩放对-1到1之间的每个时间序列输入X进行归一化。然后,我们在特定范围[0,K)内量化归一化实值,其中整数K是控制量化分辨率的超参数,并使用相应的整数值作为标记。设X˜∈RT×n为预处理后的信号。我们为所有实验设置K = 200,其中预处理信号 X ~ \tilde{X} X~看起来几乎像输入X。总共有K个令牌(量化水平),我们添加了一个[MASK]令牌用于训练和测试。综上所述,输入信号X通过顺序缩放和量化预处理为 X ~ \tilde{X} X~

2) EMBEDDING

嵌入步骤将离散标记嵌入到嵌入向量中。这里我们使用令牌嵌入层将每个令牌映射到嵌入权 W e ∈ R ( K + 1 ) × d W^{e}\in\mathbb{R}^{(K+1)\times d} WeR(K+1)×d中的相应条目。这里,K + 1表示量化分辨率和[Mask]令牌。我们记 z ′ ∈ R T × d z^{\prime}\in\mathbb{R}^{T\times d} zRT×d为输出令牌嵌入,其中d为嵌入维数。我们使用正弦位置嵌入p '来允许模型参与如下的相对位置:
p t , 2 i ′ = s i n ( t / 1000 0 2 i / d ) , ( 1 ) p t , 2 i + 1 ′ = c o s ( t / 1000 0 2 i / d ) , ( 2 ) \begin{aligned}p_{t,2i}^{\prime}&=sin(t/10000^{2i/d}),\quad&(1)\\p_{t,2i+1}^{\prime}&=cos(t/10000^{2i/d}),\quad&(2)\end{aligned} pt,2ipt,2i+1=sin(t/100002i/d),=cos(t/100002i/d),(1)(2)

其中t为时间步长,i为维数指标。我们将位置嵌入添加到标记嵌入中为 z = z ′ + p ′ z=z^{\prime}+p^{\prime} z=z+p

3) TRANSFORMER ENCODER

Transformer编码器使用嵌入的 z ∈ R T × d z\in\mathbb{R}^{T\times d} zRT×d作为输入,输出 z ^ ∈ R T × d \hat{z}\in\mathbb{R}^{T\times d} z^RT×d。每个Transformer编码器块包含一个多头自关注层和一个前馈网络,然后是一个剩余连接和一个层归一化。通过自注意机制,可以同时关注每个时间步长的相关信息,而多个注意头可以考虑时间序列数据[52]的不同周期性。

4) INVERSE EMBEDDING 逆嵌入

我们需要将嵌入 z ^ \hat{z} z^的输出转化为时间序列的原始形式, X ^ ∈ R T × n \hat{X}\in\mathbb{R}^{T\times n} X^RT×n。为此,我们在模型中引入了一个逆嵌入层。我们计算从令牌嵌入层取的输出嵌入 z ^ \hat{z} z^与嵌入权重We之间的余弦相似度,并应用softmax操作如下:

在这里插入图片描述

Soft-argmax操作如下:由上式,我们得到概率分布, p ^ ∈ R T × K \hat{\boldsymbol{p}}\in\mathbb{R}^{T\times K} p^RT×K,其中, p ^ t , k \hat{\boldsymbol{p}}_{t,k} p^t,k表示在[0,k)范围内,除位置t上的[MASK]令牌外,k被选中的概率。然后,我们使用soft-argmax运算,提取每个时间步 t ∈ [ 1 , 2 , ⋯   , T ] t\in[1,2,\cdots,T] t[1,2,,T]的最大概率索引 x ^ t \hat{x}_{t} x^t,如下所示:

在这里插入图片描述

其中β是一个足够大的值,例如1000。然后,将所有时间步长的指标串联起来,重建量化后的输出 X ^ \hat{\boldsymbol{X}} X^,如下:
X ^ = { x ^ 1 , x ^ 2 , ⋯   , x ^ T } . ( 5 ) \hat{\boldsymbol{X}}=\left\{\hat{\boldsymbol{x}}_1,\hat{\boldsymbol{x}}_2,\cdots,\hat{\boldsymbol{x}}_T\right\}.\quad\quad\quad\quad\quad(5) X^={x^1,x^2,,x^T}.(5)

5) TRANSFORMER-BASED GAN FRAMEWORK

为了提高 X ^ \hat{\boldsymbol{X}} X^的生成质量,我们设计了一个使用Transformer编码器的对抗性框架。按照WGAN-GP[53]的表示法,从现在开始,我们使用术语评论家C而不是鉴别器d。与生成器G相同,我们使用Transformer编码器构造评论家C,但在评论家C中,在输入令牌前面添加了一个[CLS]令牌用于分类。在通过Transformer编码器之后,线性分类器仅使用[CLS]令牌输出批评评分。在对真实输入 X ~ \tilde{\boldsymbol{X}} X~和假输出 X ^ \hat{\boldsymbol{X}} X^进行分类时,批评家C引导发生器G重建更类似于正常的信号 X ~ \tilde{\boldsymbol{X}} X~。因此,我们的模型可以根据测试时输入信号 X ~ \tilde{\boldsymbol{X}} X~与发生器G重构信号 X ^ \hat{\boldsymbol{X}} X^的差值来区分 X ~ \tilde{\boldsymbol{X}} X~是正常还是异常。

C.用于时间序列编码的两步屏蔽

在上一节中,我们介绍了用于时间序列数据的基于transformer的GAN框架。然而,我们经验地发现,所提出的基于变压器的GAN的表示学习是不可能的,因为生成器G只是将输入复制为输出。受最近在Transformer中通过掩蔽有效学习表征的研究[49],[50],[52]的启发,我们在训练和测试期间提出了两种不同的掩蔽步骤:1)随机掩蔽和2)排他性和基于熵的重新掩蔽。我们的实验证明,所提出的两步屏蔽对于我们的框架成功学习正态时间序列数据的分布是必不可少的。在下面的内容中,我们将详细描述如何在每个步骤中有效地屏蔽输入。

1) 步骤1:随机屏蔽

作为第一步,我们使用从掩码池中随机选择的掩码部分隐藏输入信号 X ~ \tilde{X} X~。为了构造掩码池,我们首先设计了一个单二进制掩码,其中掩码部分和非掩码部分交替出现。我们将屏蔽部分和非屏蔽部分的大小设置为相同,以便屏蔽一半的输入信号。然后,我们通过对单个蒙版应用滑动窗口来生成多个蒙版,并将它们分组为蒙版池。掩码池的组成取决于单个掩码/非掩码部分的长度 l m l_{m} lm和滑动窗口的跨距 S m S_{m} Sm。当我们应用滑动窗口直到它覆盖信号的所有部分时,预定义掩码池中的掩码数nm确定为
n m = ⌈ 2 × l m s m ⌉ n_{m}=\left\lceil\frac{2\times l_{m}}{s_{m}}\right\rceil nm=sm2×lm
在训练和测试期间,每个信号在预定义的掩码池中随机选择掩码,发生器G从掩码输入 X ~ m 1 \tilde{X}_{m}^{1} X~m1重构 X ^ 1 \hat{\boldsymbol{X}}_{1} X^1

在这里插入图片描述

2)步骤2:排他性和基于熵的重掩码

在步骤1生成 X ^ 1 \hat{X}_{1} X^1后,我们再次屏蔽步骤1中未涵盖的排他性部分,以便我们的模型考虑输入的所有部分。为了避免误差累积,这里我们重新屏蔽输入 X ~ \tilde{\mathbf{X}} X~,而不是第一个输出 X ^ 1 \hat{X}_{1} X^1。此外,我们通过重新屏蔽步骤1中被认为不确定的部分来为我们的模型提供反馈。为此,我们从生成器的每一层得到如下的注意图:
A l = 1 H ∑ h = 1 H s o f t m a x ( Q l , h K l , h T d ) , ( 6 ) A^l=\frac1H\sum_{h=1}^H\mathrm{softmax}{\left(\frac{Q^{l,h}K^{l,h^T}}{\sqrt{d}}\right)},\quad(6) Al=H1h=1Hsoftmax(d Ql,hKl,hT),(6)

其中, A l A^{l} Al是第1层的注意图,由每个人头的平均值计算得出。 Q l , h Q^{l,h} Ql,h K l , h K^{l,h} Kl,h是第l层中第h个头部的查询和键。这种分层注意图决定了特定时间步对每个信号输入的其他部分的关注程度。在这种情况下,均匀分布的注意力意味着模型不知道哪些连接是有价值的[54],即预测是不确定的。为了量化不确定性,我们计算第一个输出 X ^ 1 \hat{\boldsymbol{X}}_{1} X^1的熵 H X ^ 1 H_{\hat{X}_1} HX^1如下:

H ( t ) = − 1 L ∑ l = 1 L ∑ j = 1 T A t , j l log ⁡ A t , j l , ( 7 ) H X ^ 1 = { H ( 1 ) , H ( 2 ) , ⋯   , H ( T ) } , ( 8 ) \begin{aligned}H(t)&=-\frac{1}{L}\sum_{l=1}^{L}\sum_{j=1}^{T}A_{t,j}^{l}\log A_{t,j}^{l},&(7)\\H_{\hat{X}_1}&=\{H(1),H(2),\cdots,H(T)\},&(8)\end{aligned} H(t)HX^1=L1l=1Lj=1TAt,jllogAt,jl,={H(1),H(2),,H(T)},(7)(8)

式中T为输入信号的长度,L为层数。 A t , j l A_{t,j}^{l} At,jl表示注意图 A l A^{l} Al中第t行第j列的值。为了提供对高熵部分的反馈,我们对步骤1中已经屏蔽的部分进行了p%的重新屏蔽。我们通过实验确定重掩蔽比p为50%。实证研究将在实验部分提供。然后发生器G从被屏蔽信号 X ~ 2 \tilde{X}_{2} X~2重新产生第二个输出 X ^ 2 \hat{X}_2 X^2。最后,我们将步骤1和步骤2生成的遮罩部分结合起来,构造最终的输出 X ^ \hat{X} X^。对于基于熵的重掩模部分,使用步骤2的结果。从这个重屏蔽步骤中,我们通过实验证明,即使在输入信号高度复杂的情况下,我们的模型也具有良好的鲁棒性。我们还在测试时使用了相同的随机屏蔽和重新屏蔽策略。
在这里插入图片描述

D. TRAINING AnoFormer

为了训练AnoFormer,我们应用交叉熵损失将最终输出 X ^ \hat{\boldsymbol{X}} X^重构为输入 X ~ \tilde{X} X~,如下所示:
L r e c = − ∑ i = 1 T ∑ j = 1 K X ~ i , j ⋅ log ⁡ ( p ^ i , j ) , ( 9 ) \mathcal{L}_{rec}=-\sum_{i=1}^T\sum_{j=1}^K\tilde{X}_{i,j}\cdot\log(\hat{\boldsymbol{p}}_{i,j}),\quad(9) Lrec=i=1Tj=1KX~i,jlog(p^i,j),(9)

其中, X ~ i , j \tilde{X}_{i,j} X~i,j表示来自输入的单热标签向量, p ^ i , j \hat{p}_{i,j} p^i,j表示最终输出 X ^ \hat{\boldsymbol{X}} X^的概率分布。使用来自生成器G的X,批评家C试图最小化以下损失函数:

X ′ = ϵ X ~ + ( 1 − ϵ ) X ^ , ( 10 ) L a d ν c = ( E [ C ( X ^ ) ] − E [ C ( X ~ ) ] ) + λ E X ′ ∼ P X ′ [ ( ∥ ∇ X ′ C ( X ′ ) ∥ 2 − 1 ) 2 ] , ( 11 ) \begin{aligned} \boldsymbol{X}^{\prime}& =\epsilon\tilde{X}+(1-\epsilon)\hat{\boldsymbol{X}}, && \left(10\right) \\ \mathcal{L}_{ad\nu}^{c}& =\left(\mathbb{E}\left[C\left(\hat{\boldsymbol{X}}\right)\right]-\mathbb{E}\left[C\left(\tilde{\boldsymbol{X}}\right)\right]\right) \\ &+\lambda\mathbb{E}_{X^{\prime}\sim P_{X^{\prime}}}\left[(\left\|\nabla_{X^{\prime}}C\left(X^{\prime}\right)\right\|_{2}-1)^{2}\right],&& \left.\left(\begin{matrix}{11}\\\end{matrix}\right.\right) \end{aligned} XLadνc=ϵX~+(1ϵ)X^,=(E[C(X^)]E[C(X~)])+λEXPX[(XC(X)21)2],(10)(11)

其中,在这里插入图片描述在0和1之间随机选择。第一项测量Wasserstein距离,第二项是梯度惩罚,其中 X ′ \mathbf{X}^{\prime} X是来自 P X ′ P_{X^{\prime}} PX的随机样本,以强制执行Lipschitz约束。系数λ是一个谐波参数,用于平衡Wasserstein距离和梯度惩罚,其中我们使用10的值。发电机G的损失函数为:

L a d v g = − E [ C ( X ^ ) ] , ( 12 ) \mathcal{L}_{adv}^g=-\mathbb{E}\Big[C\left(\hat{X}\right)\Big],\quad(12) Ladvg=E[C(X^)],(12)

表1。四个数据集的统计细节。我们给出了维度(Dim.)、长度(Len.)和样本数量。在NeurIPS-TS中,有(A)点-全局,(B)点-上下文,©模式-形状,(D)模式-季节,(E)模式-趋势。
在这里插入图片描述
这使得批评家C无法对生成的 X ^ \hat{X} X^进行分类。综上所述,所提出的AnoFormer是通过以下生成器G和批评家C的损失函数来训练的:
L G = λ r e c L r e c + λ a d ν L a d ν g , ( 13 ) L C = L a d ν c , ( 14 ) \begin{array}{ll}\mathcal{L}_G=\lambda_{rec}\mathcal{L}_{rec}+\lambda_{ad\nu}\mathcal{L}_{ad\nu}^g,&(13)\\\mathcal{L}_C=\mathcal{L}_{ad\nu}^c,&(14)\end{array} LG=λrecLrec+λadνLadνg,LC=Ladνc,(13)(14)
我们设 λ r e c \lambda_{rec} λrec λ a d v \lambda_{adv} λadv为1。

四、实验

数据集。我们在四个基准上对AnoFormer进行了评估。在训练集中,所有数据集只包含正常数据。表1显示了每个数据集的详细信息。

  1. NeurIPS-TS[55]:该数据集为时间序列异常值引入了新的分类方法。它包括点-全局、点-上下文、模式-形状、模式-季节和模式-趋势五种不同的时间序列异常情景。为了确保公平的比较,我们使用开源代码在[12]中生成了一个具有相似数据量的基准测试。
  2. MIT-BIH心律失常数据库2:该数据库包含Beth Israel医院48例受试者的心电图记录。根据医疗器械进步协会(AAMI)[56]的推荐,有五个类别:正常(N),室上异位拍(S),心室异位拍(V),融合(F)和未知拍(Q)。
    3)2D-Gesture3:该数据集包含演员右手的x和Y坐标的时间序列。演员从臀部的枪套里抓起一把枪,然后向目标射击。最后,演员把枪放回枪套。异常区域是演员在归还枪支时错过了枪套。
    4)电力需求3:这是测量荷兰研究机构1997年全年电力消耗的数据集。

基线。我们将我们的模型与各种基线进行了比较,包括CNN、RNN和基于transformer的重建模型。BeatGAN[2]和TadGAN[9]分别是基于CNN和lstm的gan模型。RAE-ensemble[10]是自编码器中具有稀疏跳跃连接的rnn的集合。

表2。四个数据集的定量比较。对于所有指标,值越高表示性能越好。在这里插入图片描述
RAMED[11]还采用了基于rae集成的多分辨率解码。Anomaly Transformer[12]开发了Transformer架构来利用关联信息。我们还比较了基于变压器的时间序列分析方法。[57]引入了金字塔注意力模块来探索时间序列的多分辨率表示。[58]设计了一个FiLM架构,通过结合傅里叶分析和低秩矩阵近似来降低维数,以最大限度地减少时间序列中噪声信号的影响。[59]提出了一种局部-全局结构来实现时间序列的信息聚合和长期依赖建模。[60]明确地探索并利用了跨维度依赖关系。[61]介绍了一组简单的单层线性模型,并将其与现有的基于transformer的解决方案进行了比较。[62]将一维时间序列转换为二维空间,并嵌入周期内和周期间的变化。

实现细节。对于生成器G和评论家C,我们对所有数据集使用了9层和6层的纯Transformer编码器。嵌入维数d为128,正面个数H为8。对于所提出的AnoFormer,我们将量化分辨率K设置为200。在步骤1中,我们随机屏蔽了一半的输入信号。对于基于熵的重掩模,我们将重掩模率p设置为步骤1中已掩模部分的50%。我们根据实验结果确定了这些值。此外,我们将掩码长度lm设置为序列长度T的10%,将滑动窗口的步幅设置为lm的一半,以使用多个适当长度的掩码部分掩码输入的各个部分。对于通道维数为n = 2的数据集,为了简单起见,我们简单地将两个信号扁平化并作为单变量信号处理。我们使用Adam优化器,初始学习率、动量β1和β2分别为0.0001、0.5和0.999。我们使用PyTorch实现我们的模型,并在NVIDIA RTX 3090 GPU上进行训练。

A.定量结果
表2和表3显示了每个基线在三个不同的真实数据集(即MIT-BIH, 2D-gesture和Power-demand)和一个合成数据集(即NeurIPS-TS[55])上的异常检测性能。总体而言,除了MIT-BIH模型外,RNN或基于transformer的模型表现出较高的性能。在麻省理工学院-波黑学院,BeatGAN在所有基准测试中表现第二好。在提出的AnoFormer的情况下,它在四个不同的数据集中优于所有基线。特别是,我们的模型在包含五种异常值的NeurIPS-TS上表现良好,这意味着AnoFormer对各种类型的异常值具有鲁棒性。AnoFormer从大约1000个训练集的小型数据集(例如2D-gesture和Power-demand)到大约数万个训练集的大型数据集(例如NeurIPSTS和MIT-BIH),实现了最先进的结果。此外,我们的模型不仅在真实数据集上实现了最先进的性能,而且在包含各种类型异常的合成数据集上也实现了最先进的性能。根据之前的工作[62],我们将本文提出的方法与最近基于transformer的时间序列分析方法[57],[58],[59],[60],[61],[62]进行了比较。为了保证公平的比较,我们修改了重建任务的基本模型,并将重建误差作为所有实验的异常判据。如表4所示,我们提出的AnoFormer优于最新的时间序列模型。实验结果表明,基于变压器的GAN框架和两步掩蔽策略能够有效地重建正常时间序列数据进行异常检测。

表3。NeurIPS-TS数据集的定量比较细节。有全局点、上下文点、形状点、季节点和趋势点。

在这里插入图片描述

表4。与最近基于变压器的时间序列分析方法的定量比较。
在这里插入图片描述

B.定性结果

图2显示了AnoFormer的定性示例。第一行(图2(a)和图2(b))分别显示了NeurIPS-TS和MIT-BIH数据集点上下文的异常示例。其他行表明,所提出的随机屏蔽和重新屏蔽策略实际上为我们的框架提供了反馈。例如,步骤1中错误复制的部件通过基于熵的重新屏蔽来改进(请参见图2(e)和图2(f)中的黑色圆圈)。如第III-C节所述,为了构造最终输出,我们将每一步生成的掩码部分组合在一起。对于基于熵的重掩模部分,使用第2步的结果。从图中可以看出,将每一步的结果结合起来可以得到一个自然的类正态信号。因此,AnoFormer可以通过输入和输出的差值来检测异常点。

C.消融研究
我们进行了各种烧蚀研究,以分析所提出的嵌入方法、基于变压器的GAN框架和两步掩蔽的有效性。所有消融研究都是在NeurIPS-TS的点上下文数据集上进行的,因为从五种异常值中检测异常值是最困难的任务。

  1. EMBEDDING METHOD
    现有的基于transformer的时间序列处理方法采用简单的线性层进行令牌嵌入,采用均方误差重构时间序列数据。与这些研究不同的是,我们采用嵌入矩阵来处理时间序列数据。为此,我们还将传统的重构损失替换为交叉熵损失。换句话说,我们把回归问题变成了简单的分类问题。我们进一步检验了所提出的嵌入方法的有效性。如图3所示,与现有的线性层方法相比,使用嵌入矩阵获得了更好的性能,裕度大,收敛速度快。实验结果表明,所提出的嵌入策略能够有效地处理时间序列数据,并且优于基于重构的异常检测问题。
    在这里插入图片描述
    图2。点上下文(NeurIPS-TS)和MIT-BIH数据集的输出可视化。上图:异常输入和类似正常输出的可视化。中间:随机掩蔽的重构结果(蓝色)。下图:独占(绿色)和基于熵(红色)的重构结果。请参考黑色圆圈来查看每个遮罩步骤的效果。

在这里插入图片描述
图3。不同嵌入方法的性能比较。

2)基于变压器的gan框架

我们在模型中研究了基于transformer的对抗框架的有效性。在这个实验中,我们使用BeatGAN作为基于cnn的基线。表5显示了发生器和批评家使用不同骨干网(如CNN和Transformer)时的烧蚀结果。如表所示,基于transformer的生成器在所有指标上都比基于cnn的生成器表现出更高的性能,并且具有较大的边际。有趣的是,我们根据经验发现,当使用基于cnn的评论家和基于transformer的生成器时,没有协同作用。这意味着对于基于transformer的生成器来说,使用不合适的基线来构建批评家是没有帮助的。另一方面,基于transformer的评论家表现出比没有评论家的基线更好的性能,这意味着它鼓励生成的输出接近正常信号。通过设计一个带有Transformer的对抗性框架,添加基于Transformer的评论家有助于生成比没有评论家时更真实的信号。从这些结果中,我们证明了我们基于transformer的GAN框架可以有效地重建正常时间序列数据以进行异常检测。

在这里插入图片描述

3)两步掩模

在表6中,我们研究了两步掩蔽方法的有效性。第一行表示没有任何掩蔽的基于变压器的GAN的原始形式。结果是AUROC的0.5,这意味着基于变压器的原始gan根本无法区分正常和异常信号。为了克服这个关键问题,我们采用了各种掩蔽策略。首先,我们研究了步骤1的掩蔽。这里,随机是指完全随机的掩码,没有任何预定义的掩码池。掩码池是指我们在Section III-C1中定义的预定义掩码池。结果表明,无论掩蔽策略如何,在训练和测试过程中,掩蔽本身都使基于transformer的GAN能够有效地学习正常时间序列数据的分布。此外,我们确认Mask Pool比Random Mask要好得多,因为Mask Pool中的每个Mask在每次迭代中都覆盖了不同的部分,提供了互补的效果。

接下来,我们进行了深入的实验来评估和比较步骤2中不同的重屏蔽策略。步骤1中的掩码池方法也适用于重新掩码。Exclusive方法对步骤1中选择的随机掩码的独占部分进行掩码。结果表明,重新掩蔽提高了模型的检测能力,特别是独占掩蔽策略确实有效。这是因为该模型可以考虑两步掩模过程中整个信号的特性。为了给我们的模型提供更多的反馈,我们在步骤1中额外地重新屏蔽了被屏蔽的部分。我们实验了以下三种情况:1)随机方法对信号进行随机屏蔽,2)异常分值法对异常分值高的部分进行屏蔽,3)熵值法对熵值高的部分进行屏蔽。结果表明,掩盖不确定部分为我们的模型提供了适当的反馈,在所有基线中得分最高。因此,我们证实了基于熵的重掩蔽比其他掩蔽方法更有效。
在这里插入图片描述
图4。MIT-BIH数据集中每个K的可视化:(a)原始信号,(b) K = 50, © K = 100, (d) K = 200, (e) K = 300, (f) K = 400。当K小于200时,信号看起来是离散的。
在这里插入图片描述
表7。选择层来计算熵。

在这里插入图片描述

表8。对量化分辨率的灵敏度。

4)基于熵重掩码的层选择

对于基于熵的重掩模,我们取所有层的熵的平均值。注意力通常均匀分布在变压器[54]的第一层,最后一层通常最能反映数据的特征。因此,我们分析了使用最后一层和整个层计算熵时的性能。如表7所示,使用所有层进行重新屏蔽可以获得最佳性能。结果表明,前一层的低层特征和后一层的高层特征都包含了重构正常信号的有意义信息。

D.超参数灵敏度
1)嵌入超参数
对所提出的嵌入方法进行了超参数敏感性分析。我们在表8和图4中给出了不同量化分辨率K下的性能和可视化结果。我们发现我们的模型对K的不同值不敏感,我们在所有实验中都一致地设置K = 200,因为这在视觉上与原始信号相似。
2)两步掩模的超参数

我们分析了所提出的两步掩模的超参数的灵敏度。表9显示了当将掩模段长度lm固定为t的10%时,滑动窗口sm在不同步长下的性能。我们设置此值以使用多个适当长度的掩模段来掩膜输入的各个部分。如III-C所述,掩码池中的掩码数nm是由sm和lm的值自动确定的。当步幅为5时,我们的模型表现得更好,这是lm的一半。我们还在表10中给出了不同重掩蔽比的比较结果。当我们对步骤1中被屏蔽部分的一半进行基于熵的重新屏蔽时,性能是其中最高的。综上所述,AnoFormer对超参数的变化具有鲁棒性。

在这里插入图片描述
图5。(a)预定义掩码池中所有掩码的AUROC平均值和标准差。(b)基于熵的重新掩蔽策略分析(正常情况下)。©基于熵的重屏蔽策略分析(异常情况)。

表9。对滑动窗口跨步的敏感性。
在这里插入图片描述
表10。基于熵的重掩蔽比的灵敏度。比率是指在步骤1中被屏蔽的部分中,被重新屏蔽的部分所占的比例。
在这里插入图片描述

五、分析

我们进一步进行了分析,以证明所提出的两步掩蔽策略的有效性。为了确认步骤2的重要性,我们将我们的方法与没有步骤2的方法进行了比较。在这里,我们还使用了NeurIPS-TS中的点上下文数据集进行分析。

A.重新遮盖的有效性

首先,我们考察了重掩蔽步骤的有效性。我们在图5(a)中报告了预定义掩码池中所有掩码的平均AUROC和标准偏差(std)。在步骤1中,由于训练和测试时间在选择掩模部分时都具有随机性,导致std过高。通过第2步对排他性部分进行重新屏蔽,消除了被屏蔽部分的随机性,显著降低了标准差。通过参考整个信号,异常检测的性能也有很大的提高。

B.基于熵的重掩模分析

直观地说,向模型提供反馈的一种有效方法是在训练过程中对重构损失高的部分(即异常分数)进行正则化。为了证明基于熵的重屏蔽比基于异常分数的重屏蔽更有效,我们将图5(b)中正常输入和图5©中异常输入两种情况下的熵与异常分数之间的关系可视化。由于基于熵的方法重新掩盖了步骤1中选择的部件,因此我们只测量步骤1对应的部件的异常分数。

通过分析,我们发现了两个有意义的见解。首先,熵越高,模型产生的错误信号越多。在训练阶段,由于只使用正常数据,异常得分高意味着模型产生的输出不正确。从图5(b)的结果来看,熵也呈现出与异常分数相似的趋势,在异常分数高的部分,熵值更高,说明模型在这些部分难以生成准确的信号(参见蓝色条)。这是因为注意力均匀地分布在高熵部分,没有学习到有意义的连接。通过在步骤2中重新屏蔽这些部分,异常得分明显降低,这意味着模型在训练过程中很好地重构了正常数据(参见红色条)。

其次,基于熵的重掩蔽提高了测试时间内正常与异常的判别能力。如图5©所示,与正常情况类似,异常信号也表现出熵值越高异常得分越高的趋势。但是,这种趋势并不像正常信号那样明显,也存在熵高时异常得分低的情况(参见蓝条)。这些部分意味着模型复制了异常输入,而不使其像正常输出一样。因此,基于高异常分数的重掩码是无效的,因为它像正常信号一样重新生成已经生成好的部分。然而,可以通过基于熵的重新屏蔽为这些部分提供反馈。通过对高熵的部分进行重屏蔽,异常评分显著提高,这意味着在步骤1中由于复制而不能很好地生成的部分得到了很好的重新生成(参见红色条)。这使得通过异常评分进一步区分正常与异常成为可能。事实上,大的异常分数并不总是意味着更接近正常数据。我们使用了一个NeurIPS-TS数据集,看看通过重新屏蔽,输出是否更接近正常数据的真实值。由于我们以加性的方式注入异常值来合成异常数据集,因此我们可以很容易地得到异常数据的原始正常版本。由此,我们通过步骤2确认输出正确接近原始正常信号,异常评分较低(参见黄色条)。

六、结论

本文介绍了一种新型的纯变压器GAN,用于时间序列异常检测。为了利用该模型有效地学习时间序列数据,我们提出了适合时间序列数据的预处理和嵌入方法。一种新的基于两步掩模的训练方案使AnoFormer能够嵌入正常信号的表示。特别是,排他性和基于熵的重屏蔽方法显著提高了在多个基准数据集上的异常检测性能。从大量的实验中,我们经验地证明了我们的模型是真正有效的解决时间序列异常检测。作为未来的工作,我们计划研究更短的推理时间和处理更长的时间序列数据的新技术。

在这里插入图片描述

https://github.com/datamllab/tods/tree/benchmark


  • 24
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萧宛亦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值