Drift doesn’t Matter: Dynamic Decomposition with Diffusion Reconstruction for Unstable Multivariate

系列文章目录

漂移无关紧要:不稳定多元时间序列异常检测的动态分解与扩散重建 NeurIPS 2023


https://github.com/ForestsKing/D3R.


摘要

近年来,人们提出了许多用于多变量时间序列异常检测的无监督方法。然而,现有的工作主要集中在稳定的数据上,而往往忽略了非平稳环境产生的漂移,这可能导致大量的误报。我们提出了动态分解扩散重建(D3R),一种新的针对现实世界不稳定数据的异常检测网络来填补这一空白。D3R通过分解和重建来处理漂移。在分解过程中,我们利用数据-时间混合关注对长周期多变量时间序列进行动态分解,克服了局部滑动窗口的局限性。在重建过程中,信息瓶颈是一个关键而又难以确定的问题。为了避免瓶颈发生变化后的再训练,我们通过噪声扩散对瓶颈进行外部控制,直接对污染数据进行重构。整个模型可以端到端进行训练。在各种真实数据集上进行的大量实验表明,D3R显著优于现有方法,比以前的SOTA模型平均相对提高11%。代码可从https://github.com/ForestsKing/D3R获得。


提示:以下是本篇文章正文内容

一、引言

由于异常的稀缺性,多变量时间序列的无监督异常检测是数据挖掘和工业应用中的一个重要领域。基于重构的模型通常用于无监督异常检测。正常序列重构误差小,异常序列重构误差大。基于这一原理,大多数异常可以在没有标签的情况下检测到。在现实世界中,时间模式通常会随着时间的推移而变化,因为它们是由非固定环境产生的。例如,服务的普及程度的增长会导致客户指标(例如,请求计数)随着时间的推移而上升。忽略这些因素会导致异常检测器的性能下降。尽管之前的研究取得了巨大的进步,但大多数研究都集中在稳定的数据上。图1说明了当数据不稳定时,现有方法提供的异常分数如何倾向于在红色区域增加,从而导致假警报。

为了处理不稳定数据,我们尝试将其分解为稳定分量和趋势分量,在重建过程中更关注稳定部分。然而,趋势部分不能完全忽略,因为漂移可能是异常的。在这种情况下仍然存在两个挑战:挑战1:长周期时间序列分解的局限性。大多数经典的分解算法[2,17,27]都是静态的,很难应用于实时更新数据的现实世界。对于深度学习,已经提出了一些动态算法;然而,它们主要基于在局部滑动窗口内平均[29]或傅里叶变换[28,26]。从根本上说,它们不能应用于周期大于滑动窗口大小的数据。挑战二:重构过程中调整信息瓶颈的培训成本高。信息瓶颈是基于重构的模型的关键问题,并且难以调整。如果太小,正常数据的重构效果会很差;如果数据太大,将导致异常数据重构成功。以前的方法大多依赖于内部信息瓶颈,如潜在空间大小。由于信息瓶颈是模型本身的一个属性,因此对瓶颈的任何更改都需要对模型进行重新训练。

在这里插入图片描述
图1:现有方法在SMD和SWaT数据集上的异常分数。所有时刻都是正常的。垂直漂移发生在红色区域。异常得分越高的时刻越容易被识别为异常。

在分析了大量的数据序列后,我们系统地将分布转移分为两类。垂直漂移是指平均值随时间的变化等统计特征,水平漂移是指在不同时期的相似时间值向左或向右移动。针对上述挑战,我们提出了基于动态分解与扩散重建(D3R)的长周期不稳定多元时间序列异常检测方法。为了解决挑战1,我们利用时间戳作为外部信息来克服局部滑动窗口的限制。具体来说,利用数据时间混合注意和偏移量减法分别解决垂直和水平漂移问题。此外,我们在训练中引入了干扰策略以增加模型的鲁棒性。为了解决挑战2,我们提出了一种新的外部控制信息瓶颈的方法——噪声扩散方法。扩散[6]提供了一种新的信息瓶颈观点,将噪声作为瓶颈,将未受污染的信息作为条件。由于瓶颈不再是模型本身的属性,因此可以在修订期间设置不同的大小,而无需重新训练模型。

本文的贡献总结如下:

•提出了一种新的长周期多元时间序列动态分解方法。它有效地利用了外部信息,克服了局部滑动窗口的局限性。
•提出了一种通过噪声扩散控制外部信息瓶颈的新方法。避免了调整信息瓶颈所带来的高昂的培训成本。
•基于对不稳定数据进行无监督异常检测的发现,我们提出了一种新的异常检测网络D3R。D3R在各种真实数据集上实现了新的SOTA结果,并且在不稳定数据集上显著优于基线。

二、相关工作

作为一个重要的现实问题,多元时间序列的无监督异常检测受到了广泛的关注。根据异常检测的标准,范式大致分为基于概率的方法、基于线性变换的方法、基于接近度的方法、基于异常值的方法和基于神经网络的方法。
在这里插入图片描述

图2:D3R的架构主要由两个模块组成:动态分解和扩散重建。分解块的详细架构显示在右侧面板上。重建骨干网络的详细架构如左图所示。

对于基于概率的方法,[12, 13]通过多元累积分布上的统计概率函数进行建模,根据样本发生的概率提供异常分数。在基于线性变换的方法中,[20, 22]首先映射多元数据,然后从映射空间确定边界。基于邻近度的算法,例如[18, 5],寻求基于相似性对数据进行聚类,然后计算簇内和簇间距离。在基于离群值的方法中,[14, 16]通过比较测试样本与训练样本的离群程度来识别异常。

上面提到的大多数方法都没有考虑序列的时间连续性。近年来,基于神经网络的方法变得越来越重要。当前基于神经网络的方法可以分为基于预测和基于重建的。尽管基于预测的方法 [21, 8] 对于下一个时间戳的建模是有效的,但它们容易受到历史信息的干扰。基于重建的方法 [32, 11] 在捕获整个系列的分布方面做得很好。然而,他们对信息瓶颈的大小很敏感。

此外,现有的工作主要关注稳定的数据,在漂移频繁的现实世界中,它们的性能可能会受到严重影响。

三、方法

多元时间序列异常检测的输入用 X ∈ R n × k \mathbf{X}\in\mathbb{R}^{n\times k} XRn×k表示,其中 n 是时间戳的长度,k 是变量的数量。任务是产生一个输出向量 y ∈ R n \mathbf{y}\in\mathbb{R}^{n} yRn,其中 y i ∈ { 0 , 1 } y_{i}\in\{0,1\} yi{0,1} 表示第 i 个时间戳是否异常。

3.1 Overview概述

D3R的整体架构如图2所示。动态分解模块首先通过数据编码器和时间编码器对数据和时间戳特征进行建模。接下来,它使用堆叠分解块来提取稳定分量。最后,我们通过偏移减法得到趋势分量。扩散重建模块利用噪声扩散在外部构建信息瓶颈,然后通过主干网络直接重建污染数据。重建误差是异常分数。为了对时间依赖性和维度依赖性进行建模,数据编码器和重建骨干网络均由堆叠的时空变换器块组成。为了提高模型的鲁棒性,我们还在训练期间提出了干扰策略。

3.2 数据预处理

我们对输入执行时间戳硬嵌入、标记稳定组件构建和干扰策略。时间戳硬嵌入应用于训练集和测试集,而标记稳定组件构建和扰动策略仅应用于训练集。

Timestamp hard embedding 为了在异常检测中更好地利用时间戳,我们将 R n × 1 \mathbb{R}^{n\times1} Rn×1的时间戳硬编码为一个嵌入的 X t i m e ∈ R n × 5 \mathbf{X}_{\mathrm{time}}\in\mathbb{R}^{n\times5} XtimeRn×5,如[34,29],每个维度分别表示小时的分钟、一天的小时、一周的星期、月份的星期、一年的月份。

Labeled stable component construction 通过移动平均提取趋势 T ∈ R n × k \mathbf{T}\in\mathbb{R}^{n\times k} TRn×k,得到标记稳定分量 S = X − T , S ∈ R n × k \mathbf{S}=\mathbf{X}-\mathbf{T},\mathbf{S}\in\mathbb{R}^{n\times k} S=XT,SRn×k。当训练数据不稳定时,标记稳定分量的构造可以防止我们的模型受到干扰。

Disturbance strategy干扰策略 为了增加模型的鲁棒性,我们在训练数据的每个变量中加入一个从 [ − p , p ] [-p,p] [p,p]均匀分布中采样的垂直漂移 d ∈ R k \mathbf{d}\in\mathbb{R}^k dRk。动态分解模块的最终输入为 X d = X + d , X d ∈ R n × k 。 \mathbf{X_d}=\mathbf{X}+\mathbf{d},\mathbf{X_d}\in\mathbb{R}^{n\times k}。 Xd=X+d,XdRn×k

3.3动态分解

动态分解模块由数据编码器、时间编码器、堆叠分解块和偏移减法组成。数据编码器是基于时空转换块实现的,它捕获了时间和维度依赖关系。数据编码器的输出为 H d a t a ∈ R n × d m o d e l \mathbf{H}_{\mathrm{data}}\in\mathbb{R}^{n\times d_{\mathrm{model}}} HdataRn×dmodel,其中 d m o d e l d_{\mathrm{model}} dmodel为模型中的隐藏状态维。时间编码器仅由时间转换器块组成,时间转换器块对时间戳的时间相关性进行建模,得到 H t i m e ∈ R n × d m o d e l \mathbf{H}_{\mathrm{time}}\in\mathbb{R}^{n\times d_{\mathrm{model}}} HtimeRn×dmodel。数据-时间混合注意构成了堆叠分解块的主体,用于提取稳定分量: S ^ ∈ R n × k \hat{\mathbf{S}}\in\mathbb{R}^{n\times k} S^Rn×k。最后,为了解决水平漂移的挑战,我们通过偏移量减法得到趋势分量 T d ^ ∈ R n × k \hat{\mathbf{T}_d}\in\mathbb{R}^{n\times k} Td^Rn×k

Spatial-temporal transformer block 时空变压器块结构如图2左面板实线框所示。假设第l层的输入为 H l ∈ R n × d m o d e l \mathbf{H}^l\in\mathbb{R}^n\times d_{\mathrm{model}} HlRn×dmodel,具有n个时间戳和模型维度。在时间转换器中,我们直接对维度大小为 d m o d e l d_{\mathrm{model}} dmodel的n个时间步向量应用多头自注意(multiple -head self-attention, MSA),得到时间关系 H t e m p o r a l l ∈ R n × d m o d e l \mathbf{H}_{\mathrm{temporal}}^l\in\mathbb{R}^{n\times d_{\mathrm{model}}} HtemporallRn×dmodel:
在这里插入图片描述

其中 H ^ t e m p o r a l l \hat{\mathbf{H}}_{\mathrm{temporal}}^l H^temporall时间是中间变量。 LayerNorm(·)表示[25,34,29]中广泛采用的层归一化,FeedForward(·)表示多层前馈网络,MSA(Q,K,V)表示多头自注意力[25]其中 Q、K、V 用作查询、键和值。在空间变换器中,我们通过将 MSA 应用于大小为 n 的 d m o d e l d_{\mathrm{model}} dmodel向量来获得维度关系 H s p a t i a l l ∈ R n × d m o d e l \mathbf{H}_{\mathrm{spatial}}^{l}\in\mathbb{R}^{n\times d_{\mathrm{model}}} HspatiallRn×dmodel

在这里插入图片描述
其中 H ^ s p a t i a l l \hat{\mathbf{H}}_{\mathrm{spatial}}^l H^spatiall 空间是中间变量。 ( ⋅ ) T (\cdot)^{\mathrm{T}} ()T表示矩阵转置。最后,我们通过以下方式获得第l + 1层 H l + 1 ∈ R n × d m o d e l \mathbf{H}^{l+1}\in\mathbb{R}^{n\times d_{\mathrm{model}}} Hl+1Rn×dmodel模型的输入:

在这里插入图片描述

其中 H ^ l + 1 ∈ R n × 2 d m o d e l \hat{\mathbf{H}}^{l+1}\in\mathbb{R}^{n\times2d_{\mathrm{model}}} H^l+1Rn×2dmodel为中间变量,⊕ 表示串联。

Data-time mix-attention数据时间混合注意力 原始的自注意力Ao(Q,K,V)[25]仅对数据信息进行建模,忽略了时间戳的作用。我们将数据时间混合注意力定义为:
在这里插入图片描述
其中Softmax(·)像[25,34,29]一样逐行进行, Q d , K d ∈ R n × d k \mathbf{Q_d},\mathbf{K_d}\in\mathbb{R}^{n\times d_k} Qd,KdRn×dk 是长度n的数据查询,分别是从 H d a t a H_{data} Hdata映射的 d k d_{\mathrm{k}} dk维度的数据键。 Q t , K t , V t ∈ R n × d k \mathbf{Q_t},\mathbf{K_t},\mathbf{V_t}\in\mathbb{R}^{n\times d_k} Qt,Kt,VtRn×dk分别是从 H t i m e , \mathbf{H}_{\mathrm{time}}, Htime, 映射的 d k d_{\mathrm{k}} dk维度的时间查询、时间键和时间值。 D3R 通过将数据和时间信息映射到注意力空间来学习自动合并数据和时间信息。

Decomposition block 堆叠分解块的结构如图 2 右侧所示。假设第 l 层的输入为 H d a t a l \mathbf{H}_{\mathrm{data}}^{l} Hdatal H t i m e l \mathbf{H}_{\mathrm{time}}^{l} Htimel,我们可以通过以下方式获得亚稳定分量 S ^ l ∈ R n × k \hat{\mathbf{S}}^l\in\mathbb{R}^{n\times k} S^lRn×k

在这里插入图片描述
其中 H ~ l , H ^ l , S ~ l ∈ R n × d m o d e l \widetilde{\mathbf{H}}^l,\hat{\mathbf{H}}^l,\widetilde{\mathbf{S}}^l\in\mathbb{R}^{n\times d_{\mathrm{model}}} H l,H^l,S lRn×dmodel 是中间变量。 Out(·) 是单个线性层。然后我们可以得到第l + 1层的输入 H d a t a l + 1 = H d a t a l − S ~ l   a n d   H t i m e l + 1 = H t i m e l . \mathbf{H}_{\mathrm{data}}^{l+1}=\mathbf{H}_{\mathrm{data}}^{l}-\widetilde{\mathbf{S}}^{l}\mathrm{~and~}\mathbf{H}_{\mathrm{time}}^{l+1}=\mathbf{H}_{\mathrm{time}}^{l}. Hdatal+1=HdatalS l and Htimel+1=Htimel.。最后,将所有堆叠分解块的亚稳定分量 S ^ l \hat{\mathbf{S}}^{l} S^l相加,得到该级数的稳定分量 S ^ \hat{\mathbf{S}} S^

Offset subtraction 虽然不同时期的相同时段通常会有相似的波动,但并不是严格的一一对应。在这里,我们采用一种简单的方法来处理水平漂移,考虑向量 a 减去向量 b,最大水平偏移量 d:

在这里插入图片描述
其中 a i \mathbf{a}_i ai b i \mathbf{b}_i bi 分别是 a 和 b 中的第 i 个元素。 Min(·)表示取最小值。基于偏移减法,我们获得预测趋势分量为 T d ^ = M ( X d , S ^ ) \hat{\mathbf{T_d}}=\mathcal{M}(\mathbf{X_d},\hat{\mathbf{S}}) Td^=M(Xd,S^)

3.4 Diffusion reconstruction

扩散重建模块主要由噪声扩散和重建骨干网络组成。噪声扩散通过对输入数据进行噪声污染来在外部构建信息瓶颈,并使用骨干网络直接重建污染数据。

Noise diffusion 给定原始数据 x 0 , x_{0}, x0,,通过添加T步高斯噪声得到污染数据 x 1 , x 2 , ⋯   , x T x_1,x_2,\cdots,x_T x1,x2,,xT。噪声添加过程中的每个时刻t仅与t-1时刻相关。超参数β控制添加噪声的比率。我们在 DDPM 中添加了趋势保留,以便模型可以专注于更关键的稳定组件。 t步噪声污染后的数据 x t x_{t} xt为:

在这里插入图片描述
其中 α ˉ t = ∏ i = 1 t α i , α i = 1 − β i , z ˉ t ∼ N ( 0 , 1 ) \bar{\alpha}_t=\prod_{i=1}^t\alpha_i,\alpha_i=1-\beta_i,\bar{z}_t\sim\mathcal{N}(0,1) αˉt=i=1tαi,αi=1βi,zˉtN(0,1)是噪声,b 是保留信息。证明在附录A中给出。因此我们可以得到噪声数据:

在这里插入图片描述
在这里插入图片描述

表 1:数据集统计。 ADF 检验统计量越小,表明数据集越平稳。
在这里插入图片描述
Backbone network 如图 2 左图所示,主干网络由堆叠的时空转换器块组成。提取的趋势 T ^ d , \hat{\mathbf{T}}_{\mathrm{d}}, T^d,、噪声数据 X d ′ , \mathbf{X_d^{\prime}}, Xd,和时间戳 X t i m e \mathbf{X}_{\mathrm{time}} Xtime 首先由嵌入层编码。为了使网络更加关注稳定部分而不完全忽略趋势部分,我们制作隐藏向量:

H = embed ( X d ′ ) − embed ( T d ^ ) + embed ( X t i m e ) \mathbf{H}=\text{embed}(\mathbf{X_d^{\prime}})-\text{embed}(\hat{\mathbf{T_d}})+\text{embed}(\mathbf{X_{time}}) H=embed(Xd)embed(Td^)+embed(Xtime)

其中 H ∈ R n × d m o d e l \mathbf{H}\in\mathbb{R}n\times d_{\mathrm{model}} HRn×dmodel ,embed(·)是嵌入网络。然后,我们通过将 H 输入堆叠的时空 Transformer 块来对时间和维度关系进行建模。之后,我们将堆叠块的输出与 T ^ d \hat{\mathbf{T}}_{\mathrm{d}} T^d 相加,并将结果发送到输出层。最后,我们直接获得 X d \mathbf{X}_{\mathrm{d}} Xd的重构结果 X d ^ \hat{\mathbf{X}_{\mathrm{d}}} Xd^而不是预测噪声。

3.5 联合优化

如上一节所述,动态分解和扩散重建是相互关联的。动态分解模块学习长周期不稳定多元时间序列的固有特征,即稳定分量。我们使用 S \mathbf{S} S S ^ \hat{\mathbf{S}} S^ 之间的均方误差(MSE)作为该模块的损失。扩散重建模块直接重建受噪声扩散污染的数据。值得注意的是,该模块的输出是Xd的重建。因为漂移 d 是在 D3R 内部添加的,而计算损失的外部只知道 X,所以我们通过 X ^ = X ^ d − d , X ^ ∈ R n × k \hat{\mathbf{X}}=\hat{\mathbf{X}}_{\mathrm{d}}-\mathbf{d},\hat{\mathbf{X}}\in\mathbb{R}^{n\times k} X^=X^dd,X^Rn×k 得到 X 的重构。与动态分解模块类似,直接使用 X \mathbf{X} X X ^ \hat{\mathbf{X}} X^的MSE作为该模块的损失。

在训练过程中,D3R需要进行端到端的训练,因此损失函数定义为两个优化目标之和:

在这里插入图片描述
其中 S i , j , S ^ i , j , X i , j , X ^ i , j \mathbf{S}_{i,j},\hat{\mathbf{S}}_{i,j},\mathbf{X}_{i,j},\hat{\mathbf{X}}_{i,j} Si,j,S^i,j,Xi,j,X^i,j分别表示第 i 个时间戳处第 j 个变量的标记稳定分量、预测稳定分量、原始输入和重构输出。

3.6 Model inference模型推理

在线检测(推理)不需要在数据预处理阶段构建带标记的稳定组件和扰动策略。当前时间戳的异常分数仅由原始输入 X 和重构输出的 MSE 组成。然后,我们运行 SPOT [23](一种基于极值理论的流算法)来标记每个时间戳。

四、实验

4.1 Experimental settings

数据集 我们在三个真实数据集上广泛评估 D3R:PSM(池化服务器指标)[1]、SMD(服务器机器数据集)[24] 和 SWaT(安全水处理)[15]。对于每个数据集,我们只保留连续变量。这就是为什么我们不采用 MSL(火星科学实验室漫游车)和 SMAP(土壤湿度主动被动卫星)[8],它们除了第一维之外都是离散的。正常数据分为训练数据(80%)和验证数据(20%)。异常仅存在于测试数据中。表 1 显示了数据集的更多描述。附录 B.1 提供了有关数据集的更多详细信息。

表 2:三个真实数据集的结果。所有指标的值越高表示性能越好,最佳 F1 分数以粗体突出显示。
在这里插入图片描述
基线 我们广泛地将我们的模型与 15 个基线进行比较,包括基于概率的方法:采样、COPOD [12]、ECOD [13];基于线性变换的方法:OCSVM [20]、PCA [22];基于邻近度的方法:kNN [18]、CBLOF [5]、HBOS [4];基于异常值的方法:IForest [14]、LODA [16];基于神经网络的方法:VAE [11]、DeepSVDD [19]、Lstm-AE [9]、MTAD-GAT [33]、TFAD [31]、Anomaly Transformer [30]。此外,我们还建立了一种实现简单的对手算法。如果时间戳的顺序 id 可以被 n 整除,则时间戳将被标记为异常,否则将被标记为正常。在我们的实验中,n 设置为 40。该对手算法充当定时检测器,并且不提供有关异常位置的信息。所有基线均基于我们使用相同硬件的运行。我们采用 GitHub 上发布的官方或开源实现,并遵循他们论文中推荐的配置。有关基线的更多详细信息请参阅附录 B.2。

指标 对于性能评估,我们使用精确率、召回率和 F1 分数。经典指标对于样本粒度的任务是合理的,但不适用于连续时间序列,异常现象经常是连续的。大多数先前的工作[30,33,3,21]都采用点调整方法:如果正确检测到连续异常段中的一个点,则同一段中的所有异常也被认为已被正确检测到。然而,正如[10]所指出的那样,点的调整是不合理的,并且造成了进步的假象。假设groundtruth和预测事件如图3所示,虽然真实预测事件只是定时检测,但经过点调整后仍然达到了0.91的F1分数。点调整可能会显着增加 TP 并降低 FN [10]。我们通过点调整测试所有数据集的所有基线指标。详细的实验结果可以在附录C中找到。实验结果表明,对手算法的平均F1分数令人惊讶地优于所有基线,尽管它不能提供异常位置信息。出现这种现象的原因是点调整不公平地为长期异常事件分配了更高的权重。此外,该算法没有考虑时间序列的邻接性[7]。为了解决上述挑战,我们采用基于隶属关系的 F1 分数 [7]。该分数考虑了预测的异常事件和地面真实事件之间的平均有向距离来计算精度,以及地面真实事件和预测的异常事件之间的平均有向距离来确定召回率。

在这里插入图片描述
图 3:点调整策略示例。红色区域代表异常事件的基本事实。调整前(Real)的精度/召回率/f1为0.20/0.05/0.08,调整后(Adjusted)为0.84/1.00/0.91。在这里插入图片描述
图 4:有效性分析结果。 (a)是动态分解的可视化。 (b)为扩散重建模块中敏感性分析的统计结果。

D3R的详细实现可以参见附录B.3。所有实验重复 5 次,我们报告每个指标的平均值。

4.2 检测结果

在所有三个真实数据集上,如表 2 所示,D3R 均优于对手算法并实现了最佳 F1 性能,证实了其有效性和优越性。具体来说,我们在 PSM、SMD 和 SWaT 数据集上比之前的 SOTA 方法分别实现了 0.61% (0.7548→0.7609)、11.11% (0.7571→0.8682) 和 5.68% (0.7244→0.7812) 的绝对改进。

统计和机器学习方法在泛化方面经常表现不佳,因为它们没有考虑时间序列的连续性。它们可能在部分数据集上表现良好,而在另一个数据集上表现不佳甚至失败(例如 OCSVM 和 CBLOF)。相反,基于神经网络的方法通常在各种数据集上表现得更加平衡。而且,之前的作品很多都是通过调分来评价的,导致了虚假的热潮。基于隶属关系的指标为各种方法提供了更客观、更合理的评估,尽管它们的分数会下降。

值得注意的是,D3R 在 SMD 和 SWaT 数据集上的性能显着优于其他方法,这些数据集通常具有高度非平稳性,这表明以前的工作在不稳定的现实世界数据上存在局限性。在我们的模型中,动态分解和扩散重建模块相辅相成。前者动态地消除了原始数据中的不稳定干扰。后者根据更关键的组件对该系列进行建模。这些设计解决了之前工作的缺点,并在复杂的现实数据中保持了出色的鲁棒性。

除了隶属度评估指标外,我们还使用AUC评分将D3R与所有数据集中的其他基线进行了比较。详细的实验结果见附录d。为了更直观的对比,我们将D3R和部分基线的异常得分可视化,见附录e。定量和定性实验结果均显示D3R优于其他基线。此外,为了验证D3R在实际生产环境中的实用性,我们比较了SMD中不同基于神经网络的算法的运行时间,并在附录f中给出了总结。我们的模型的训练时间和推理时间都是可以接受的。

4.3有效性验证

Dynamic decomposition module 我们提出一个动态分解模块来解决挑战1。为了更直观地验证动态分解模块的性能,我们在高度不稳定的数据集(SMD和SWaT)上提供了分解结果的可视化。图4(a)表明,尽管现实世界的多变量数据是长周期和复杂的,但我们的模型可以稳健地提取基本稳定成分。

Diffusion reconstruction module 我们提出了一个扩散重建模块来解决挑战2。为了验证外部控制信息瓶颈的优越性,我们将整个扩散重建模块替换为VAE模块,并对VAE模块和扩散重建模块进行敏感性分析。影响VAE模块性能的超参数是潜在空间大小z。影响扩散重建模块性能的超参数是隐藏状态维dmodel、噪声比β和污染步长t。我们将每个超参数按{0.2,0.4,0.6,0.8,1.0, 1.2, 1.4, 1.6, 1.8, 2.0}, SMD的统计结果如图4(b)所示。扩散重构模块在无需再训练即可调整信息瓶颈的同时,其有效性(即F1分数更高)和鲁棒性(即F1分数更集中)均显著高于VAE模块。在超参数变化过程中,VAE模块的F1评分跨度为8.96%(0.7496→0.8392),扩散重建模块(β)的最大跨度为3.30%(0.8381→0.8711)。

表3:消融研究结果。报告F1分数,数值越高意味着性能越好。最好的分数以粗体突出显示。在这里插入图片描述

4.4消融研究

为了验证我们设计的有效性和必要性,我们分别对D3R的动态分解和扩散重建模块进行了烧蚀研究。

Dynamic decomposition module在这个模块中,我们的主要设计是时空转换器,数据-时间混合注意,偏移减法和干扰策略。其烧蚀结果见表3。w/o时间、w/o空间、w/o时间、w/o数据、w/o偏移量和w/o扰动分别代表D3R去除时间变压器、空间变压器、时间注意力、数据注意力、偏移量减法和扰动策略的变体。时间变压器和空间变压器的平均绝对改善率分别为5.41%(0.7493→0.8034)和3.61%(0.7673→0.8034)。与空间变压器相比,时间变压器更为关键。当数据集的序列数较小(PSM和SWaT)时,空间变压器的性能更差。当串联数较大(SMD)时,量纲依赖性较强,空间变压器性能较好。数据-时间混合注意中的时间注意和数据注意分别带来了6.87%(0.7347→0.8034)和6.31%(0.7403→0.8034)的绝对提升。虽然数据关注更适合短周期数据(SWaT),但时间关注更适合长周期数据(PSM和SMD)。偏移量减法可以进一步改善我们的模型3.27%(0.7690→0.8034)。最后,扰动策略带来了7.85%(0.7249→0.8034)的显著改进,特别是对于具有高度非平稳特征的SMD和SWaT数据集。

Diffusion reconstruction module 该模块采用噪声扩散技术对外控制信息瓶颈。为了验证噪声扩散的优越性,我们将整个扩散重建模块替换为VAE模块,烧蚀结果如表3 (w/o扩散)所示。除了允许在不进行再训练的情况下调整信息瓶颈外,噪声扩散也提供了3.57%(0.7677→0.8034)的绝对改进。下一节将讨论扩散重建模块的更多优点。该模块的另一项创新是趋势保持,烧蚀结果如表3所示(w/o保持)。去除趋势保留后,D3R的性能显著下降,特别是在高度非平稳的SMD数据集(0.8682→0.8006)和SWaT数据集(0.7812→0.7109)中。趋势保持使模型能够专注于关键的稳定组件,避免被无关的信息分散注意力。

4.5超参数分析

影响VAE模块性能的超参数为潜空间大小z,影响D3R性能的超参数为附加漂移边界p、最大水平偏移量d、隐藏状态维数dmodel、噪声比β、为了分析它们对异常检测的影响,我们在SMD中进行了超参数灵敏度分析。我们将每个超参数按因子{0.2,0.4,0.6,0.8,1.0,1.2,1.4,1.6,1.8,2.0}进行缩放,结果如图5所示。

图5:敏感性分析结果。F1得分越高,性能越好。黑线表示5次实验的平均值,亮区表示范围。

在这里插入图片描述
基于重构的异常检测方法需要构造信息瓶颈来重构正常数据,有效抑制异常。传统的自编码器通过潜在空间大小从内部控制信息瓶颈,而我们的方法通过噪声扩散从外部控制信息瓶颈。实验结果表明,随着瓶颈由严到松(潜在空间大小z、噪声比β、污染步长T由小到大),模型的性能由高到低。如果信息瓶颈太紧,则无法重构正常数据,精度较低。如果信息瓶颈过于松散,异常重构效果较好,召回率较低。一方面,我们外部控制信息瓶颈的方法更健壮(变化范围更小)。另一方面,由于信息瓶颈不是模型本身的属性,我们可以在推理时尝试不同的瓶颈大小,而无需再次训练模型。

由于不再是信息瓶颈,D3R对隐藏状态维dmodel不敏感。更大的隐藏空间往往会带来更好的结果,但也会带来更大的计算成本。对于增加的漂移边界p和最大水平偏移量d,一旦超过一定阈值,对我们模型的影响就会变小。总体而言,D3R对我们测试的所有超参数都具有鲁棒性。

五、结论

本文提出了基于Dynamic Decomposition with Diffusion Reconstruction动态分解与扩散重建(D3R)的长周期不稳定多元时间序列异常检测方法,以弥补以往工作的不足。我们首先对长周期不稳定多元时间序列进行动态分解,然后直接重建受噪声扩散污染的数据。大量的实验证明,D3R显著优于现有的工作。我们提出的方法打破了局部滑动窗口的限制,对其他长周期多变量时间序列分析任务,如预测和imputation也有意义。同时,外部控制信息瓶颈的方法也可用于其他模态数据的异常检测,如图片、视频、日志数据等。

在这里插入图片描述
B Detailed experimental settings
B.1 Datasets

The datasets can be downloaded from the following:
• PSM: https://github.com/eBay/RANSynCoders/tree/main/data.
• SMD: https://github.com/NetManAIOps/OmniAnomaly/tree/master/ServerMachineDataset.
• SWaT: https://itrust.sutd.edu.sg/testbeds/secure-water-treatment-swat/.
B.2 Baselines
All baselines are based on our runs, using the identical hardware. We employ official or open-source
implementations published in GitHub and follow the configurations recommended in their papers.
The baselines can be downloaded from the following:
• Sampling: https://github.com/yzhao062/pyod.
• COPOD: https://github.com/yzhao062/pyod.
• ECOD: https://github.com/yzhao062/pyod.
• OCSVM: https://github.com/yzhao062/pyod.
• PCA: https://github.com/yzhao062/pyod.
• kNN: https://github.com/yzhao062/pyod.
• CBLOF: https://github.com/yzhao062/pyod.
• HBOS: https://github.com/yzhao062/pyod.
• IForest: https://github.com/yzhao062/pyod.
• LODA: https://github.com/yzhao062/pyod.
• VAE: https://github.com/yzhao062/pyod.
• DeepSVDD: https://github.com/yzhao062/pyod.
• LSTM-AE: https://github.com/matanle51/LSTM_AutoEncoder.
• MTAD-GAT: https://github.com/ML4ITS/mtad-gat-pytorch.
• TFAD: https://github.com/DAMO-DI-ML/CIKM22-TFAD.
• Anomaly Transformer: https://github.com/thuml/Anomaly-Transformer.

在这里插入图片描述

在我们的实验中,滑动窗口对所有数据集都有固定大小的64。我们设置隐藏状态维数为512,注意维数为64,注意头数为8,网络层数为2,dropout为0.6。我们使用网格搜索来获得每个数据集的最佳SPOT参数,并记录F1得分最高的结果。扩散模型的β值像DDPM一样在1000步内从0.0001变化到0.02,无需调整。我们添加了500步长的噪声(从{100,300,500,700,900}中选择)作为噪声扩散时的外部信息瓶颈。扰动策略中添加漂移的边界为10(从{1,2.5,5,10,20}中选择)。偏移量减法的最大偏移量为30(从{5,10,20,30,40}中选择)。我们使用初始学习率为10−4的Adam优化器。训练过程在8个epoch内提前停止,批大小为8。D3R的实现使用Python 3.9.13和PyTorch 1.11.0进行。所有实验都是在Ubuntu服务器上进行的,该服务器配备了第12代Intel® Core™ i9-12900K @ 3.60GHz处理器和NVIDIA GeForce RTX 3090显卡。

我们使用点调整评价指标对所有数据集上的所有基线进行测试,详细的定量结果如表4所示。由于数据处理和硬件与原论文不一样,所以我们实验的基线结果与原论文略有不同。尽管如此,误差仍在合理范围内。点平差法不合理。尽管对手算法没有提供有用的信息,但其平均性能仍然比其他SOTA方法高出相对F1分数的2%。其中,攻击算法在PSM和SWaT数据集上的绝对改进率分别为2.14%(0.9431→0.9645)和2.01%(0.8103→0.8304)。仅在SMD数据集上,对手算法略弱于最佳基线(0.9898→0.9191)。如果我们进一步调整对手算法中的n,它也可以优于SMD数据集中的所有基线。

在这里插入图片描述

为了避免SPOT参数和阈值对结果的影响,我们从原始异常评分的角度对两种方法进行比较。如果一个异常持续的时间太长,将分配更多的权重,导致不准确的度量。因此,我们汇总每个异常事件。聚合后的异常事件只相当于一个时间戳,标记为异常,并以原始异常范围的最大值评分。我们使用曲线下面积(Area Under Curve, AUC)来评价每种方法的异常分数。AUC的取值范围为0.5 ~ 1,越接近1.0的方法越好。实验结果如表5所示。D3R显着优于现有方法,比其他SOTA方法平均相对改进9%。具体来说,我们在PSM、SMD和SWaT数据集上的最佳SOTA性能分别获得了1.30%(0.9093→0.9223)、0.61%(0.9698→0.9759)和4.69%(0.8085→0.8554)的绝对提升。本实验再次证明了D3R的优越性。

我们将部分基线和D3R的异常分数可视化,以便进行更直观的比较,如图6所示。D3R在所有三个真实数据集中始终提供最可区分的异常分数。在PSM数据集中,垂直漂移不显著。在这种情况下,一些基线(MTAD-GAT)可以获得正确的检测结果,但仍然存在漏检(异常变压器)和误检(VAE)的情况。在SMD和SWaT数据集中,数据的垂直漂移是显著的。正常区域基线的异常分数已经与训练数据相差甚远。不稳定的正常数据有可能被误认为是异常。一旦出现异常,即使基线的异常得分有所提高,但由于基数大,异常得分也不够显著。

我们综合比较了SMD数据集上基于神经网络的模型的训练时间、推理时间和模型大小,以验证D3R在生产环境中的实用性。结果如表6所示。在这里插入图片描述
在这里插入图片描述
图6:三个真实数据集中异常得分的可视化。红色区域表示异常事件的真实情况。在第一行中,我们将原始数据可视化。在剩下的六行中,我们将不同方法提供的异常分数可视化。异常得分越高的时刻越容易被识别为异常。绿色方框代表成功案例。我们根据训练集的统计特征对数据进行归一化。Test表示归一化后测试集的实际值,Train表示归一化后训练集的平均值,其值始终为0。在这里插入图片描述

SMD的训练集和测试集都有大约16天的数据。统计上,这些模型的训练时间保持在10分钟以下,这对于实际部署和维护是可以接受的。我们的模型在骨干网络中对注意力及其变体的利用导致其比以前的算法更大。由于注意机制的高度并行性,我们的模型的训练时间和推理时间都是竞争性的。16天的数据推断过程仅需104.12秒,满足在线实时检测标准。与我们已经实现的检测精度的大幅提高(11%)相比,109.35MB的模型大小在当前时代不断扩展的硬件资源的背景下仍然是可以承受的。此外,最近有大量关于变压器线性化的工作(如Flowformer),这可能有助于减轻我们模型的负担。我们计划在未来的研究中对这方面进行探索。

近年来,深度学习在异常检测中的应用越来越广泛。它通过检测医疗保健、工业制造和自动驾驶中的异常情况,提高了安全性,防止了潜在的风险和经济损失。然而,由于实时数据是不断变化的,随着时间的积累,数据特征可能会发生巨大变化。由于训练数据的陈旧,我们的模型不能适应这种情况,可能会提供不正确的判断。在未来,我们考虑设计采用在线更新的算法来解决这个缺点。

由于骨干网使用了Transformer架构,因此我们的模型的计算成本很大。在未来的工作中,我们计划用更轻量、更高效的基础结构来取代它,比如扩展卷积和图神经网络。此外,由于点差评价指标的不足,为了证明D3R的优越性,我们必须对其他各种指标进行比较,并提供丰富的可视化。我们计划在未来的工作中设计一个更加直观有效的异常检测评价指标。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值