用于时间序列异常检测的深度学习:一项调查 Deep Learning for Time Series Anomaly Detection: A Survey


论文名称:Deep Learning for Time Series Anomaly Detection: A Survey

时间序列异常检测对于许多研究领域和应用至关重要,包括制造业和医疗保健。异常的存在可能表明新颖或意外事件,如生产故障、系统缺陷、心跳异常等,因此具有特殊的重要性。时间序列数据中的大规模和复杂模式促使研究人员开发了专门的深度学习模型来检测异常模式。本调查对时间序列异常检测的深度学习最新技术进行了结构化和全面的概述。它提供了基于异常检测策略和深度学习模型的分类法。除了描述每个类别中的基本异常检测技术外,还讨论了它们的优势和局限性。此外,本研究还包括了近年来各个应用领域中时间序列深度异常检测的示例。最后,总结了在将深度异常检测模型应用于时间序列数据时面临的研究开放问题和挑战。

CCS概念: ∙ \bullet 计算方法 → \rightarrow 异常检测; ∙ \bullet 一般和参考 → \rightarrow 调查和概述。

附加关键词和短语:异常检测、离群值检测、时间序列、深度学习、多变量时间序列、单变量时间序列

1 引言

自60年代以来,异常检测,也称为离群值或新奇检测,在许多应用领域一直是一个活跃的研究领域[71]。随着计算过程的发展,大数据的收集及其在人工智能(AI)中的应用得到了更好的支持,有助于时间序列分析,包括异常检测。随着数据的更加丰富和算法效率/计算能力的增加,时间序列分析越来越多地被用于通过预测、分类和异常检测来解决业务应用问题[57],[23]。在城市管理、入侵检测、医疗风险和自然灾害等各种领域对时间序列异常检测的需求不断增长,因此其重要性也日益凸显。[^0]

随着深度学习在过去几年取得了显著进展,它越来越能够学习复杂时间序列的表达,如具有空间(跨度)和时间特征的多维数据。在深度异常检测中,神经网络被用于学习特征表示或异常分数,以便检测异常。许多深度异常检测模型已经被开发,相较于传统时间序列异常检测任务,在不同的实际应用中提供了显著更高的性能。

尽管异常检测领域已经在几篇文献调查中进行了探讨[26],[137],[24],[17],[20],并且一些评估审查论文也存在[152],[99],但关于时间序列数据的深度异常检测方法只有一项调查[38]。然而,这项调查并未涵盖近年出现的诸如DAEMON [34]、TranAD [171]、DCT-GAN [113]和Interfusion [116]等时间序列异常检测方法的广泛范围。因此,有必要进行一项调查,以帮助研究人员确定时间序列异常检测研究的重要未来方向以及适用于各种应用场景的方法。具体来说,本文做出了以下贡献:

  • 提出了时间序列深度异常检测模型的新分类法。通常,深度时间序列异常检测模型分为三类,对应于基于预测、基于重构和混合方法。每个类别进一步分为子类别,这些子类别根据模型中使用的深度神经网络架构进行定义。模型具有各种不同的结构特征,有助于提高其检测能力。
  • 本研究全面审查了当前的最新技术。可以清晰地了解这一领域的发展方向和趋势。
  • 收集、描述并提供了当前在该领域中使用的主要基准和数据集,并提供了超链接。
  • 提供了关于时间序列中不同异常发生可能的基本原则的讨论。

本文的其余部分组织如下:第2节从时间序列的初步定义开始。然后概述了用于对时间序列数据中的异常进行分类的分类法。第3节讨论了如何将深度异常检测模型应用于时间序列数据。然后根据主要方法(基于预测、基于重构、混合)和深度神经网络的主要架构介绍了不同的深度模型及其能力。在第4节中,可以找到用于考虑的异常检测模型的公开可用和常用数据集的概述。此外,第5节探讨了不同领域中时间序列深度异常检测模型的应用领域。最后,第6节提供了该领域的几个挑战,这些挑战可以作为未来的机遇。

2 背景

时间序列是随时间顺序索引的一系列数据点。时间序列的最常见形式是随时间记录的一系列观测值[74]。时间序列通常分为单变量(一维)和多变量(多维)。这两种类型在以下小节中进行了定义。然后,我们提供了时间序列的可分解组件。随后,我们根据时间序列的组件和特征提供了异常类型的分类法。

2.1 单变量时间序列

顾名思义,单变量时间序列(UTS)是基于随时间变化的单个变量的数据系列,如图1所示。例如,每小时记录湿度水平就是一个例子。 X X X,具有 t t t个时间戳,可以表示为以下方式的有序数据点序列:

X = ( x 1 , x 2 , … , x t ) \begin{equation*} X=\left(x_{1}, x_{2}, \ldots, x_{t}\right) \tag{1} \end{equation*} X=(x1,x2,,xt)(1)

其中, x i x_{i} xi表示时间戳 i ∈ T i \in T iT处的数据, T = { 1 , 2 , … , t } T=\{1,2, \ldots, t\} T={1,2,,t}

2.2 多变量时间序列

此外,多变量时间序列(MTS)表示受时间影响的多个变量,每个变量受过去值(称为“时间”依赖性)和其他变量(维度)的影响。文献中不同变量之间的相关性称为空间或跨度依赖性,它们可以互换使用。在同一个例子中,除了湿度水平外,还会每小时记录气压和温度。

图2展示了一个具有两个维度的MTS示例。考虑一个多维时间序列 X t X_{t} Xt,具有 d d d个维度,表示如下:

X t = ( x t 1 , x t 2 , … , x t d ) \begin{equation*} X_{t}=\left(x_{t}^{1}, x_{t}^{2}, \ldots, x_{t}^{d}\right) \tag{2} \end{equation*} Xt=(xt1,xt2,,xtd)(2)

其中, X t X_{t} Xt的第 j j j行是 x t j x_{t}^{j} xtj,表示第 t t t个时间戳的第 j j j个维度的数据, j = { 1 , 2 , … , d } j=\{1,2, \ldots, d\} j={1,2,,d},其中 d d d是维度数量。

2.3 时间序列分解

可以将时间序列 X X X分解为四个组件,每个组件都表达其运动的特定方面[52]。这些组件如下:

  • 趋势:数据趋势发生在长期向上或向下的运动时。事实上,趋势代表数据随时间的一般模式,它不一定是线性的。某个地区几年来人口的变化就是非线性增长或衰减的例子,取决于各种动态因素。
  • 季节性变化:根据月份、工作日或持续时间,时间序列可能表现出季节性模式。季节性总是以固定频率发生。例如,对气体/电力消费的研究显示,消费曲线在一年中并不始终遵循相似的模式。根据季节和地点的不同,模式也不同。
  • 循环波动:周期被定义为数据的上升或下降而没有固定频率。也被称为时间序列的形状。由于自然事件,如每日温度变化,时间序列中可能会出现循环波动。
  • 不规则变化:指随机、不规则事件。这是在去除所有其他组件后的剩余部分。地震或洪水等灾难可能导致不规则变化。

通过分别估计时间序列的四个组件来对时间序列进行数学描述,每个组件可能与正常行为有所偏离。

图1. 从NeurIPS-TS数据集[105]绘制的不同时间异常的概述。全局和上下文异常发生在一个点(蓝色标记),而其他类型,包括季节性、趋势和形状,可能发生在一个子序列(红色标记)。

图2. 多变量时间序列中的跨度和时间跨度异常。在此图中,度量1是功耗,度量2是CPU使用率。

2.4 时间序列中的异常

2.4.1 异常类型

UTS 和 MTS 中的异常可以分为时间异常、度量间异常或时间-度量间异常 [116]。在时间序列中,时间异常可以与其邻居(局部)或整个时间序列(全局)进行比较,根据其行为不同呈现不同形式 [105]。有几种常见的单变量时间序列中经常发生的时间异常类型,所有这些类型都在图1中展示。时间异常也可能发生在 MTS 中,并影响多个维度或所有维度。当出现异常行为的不寻常模式随时间出现时,可能会出现后续异常;然而,每个观察结果本身可能不被视为异常值。由于点异常,一个意外事件发生在某个时间点,被假定为一个短序列。以下是不同类型的时间异常:

  • 全局:它们是系列中的尖峰,即与系列其余部分相比具有极端值的点。例如,全局异常是客户在典型日子上进行异常大额支付。考虑一个阈值,可以用以下公式描述:

∣ x t − x ^ t ∣ >  threshold  \begin{equation*} \left|x_{t}-\hat{x}_{t}\right|>\text { threshold } \tag{3} \end{equation*} xtx^t> threshold (3)

其中 x ^ \hat{x} x^ 是模型的输出。如果输出与实际点值之间的差异大于阈值,则被识别为异常。全局异常的示例显示在图1的左侧,其中 -6 与时间序列有很大偏差。

  • 上下文:从给定上下文的偏离将被定义为与相邻时间点的偏离,这里定义为位于一定接近范围内的时间点。这些类型的异常值是顺序数据中的小故障,即与其邻居的偏离值。一个点在一个上下文中可能是正常的,而在另一个上下文中是异常的。例如,大型互动,比如圣诞节,被认为是正常的,但在其他日子不是。公式与全局异常相同,但用于查找异常的阈值不同。阈值是通过考虑邻居的上下文来确定的:

 threshold  ≈ λ ∗ var ⁡ ( X t − w : t + w ) \begin{equation*} \text { threshold } \approx \lambda * \operatorname{var}\left(X_{t-w}:_{t+w}\right) \tag{4} \end{equation*}  threshold λvar(Xtw:t+w)(4)

其中 X t − w : t + w X_{t-w}:_{t+w} Xtw:t+w 指的是具有窗口大小 w w w 的数据点 x t x_{t} xt 的上下文,var 是数据点上下文的方差, λ \lambda λ 是控制阈值的系数。图1的第二个蓝色标记是在特定上下文中局部发生的上下文异常。

  • 季节性:尽管时间序列的形状和趋势相似,但其季节性与整体季节性相比是不寻常的。一个例子是一周内餐厅顾客的数量。这样的系列具有明显的每周季节性,因此有意义查找这种季节性的偏差并单独处理异常期间。

diss ⁡ S ( S , S ^ ) >  threshold  \begin{equation*} \operatorname{diss}_{S}(S, \hat{S})>\text { threshold } \tag{5} \end{equation*} dissS(S,S^)> threshold (5)

其中 diss S _{S} S 是衡量两个子序列之间不相似性的函数, S ^ \hat{S} S^ 表示预期子序列的季节性。正如图1的第一个红色标记所示,季节性异常改变了特定部分数据的上升和下降频率。

  • 趋势:导致数据向其均值发生永久性转变并在时间序列趋势中产生转变的事件。虽然这种异常保留其正常性的周期和季节性,但它大幅改变了其斜率。趋势有时可能改变方向,也就是说,它们可能从增加到减少,反之亦然。例如,当一首新歌发布时,它会在一段时间内变得流行,然后从排行榜上消失,就像图1中的部分,趋势发生变化并被视为趋势异常。未来可能会重新开始趋势。

diss ⁡ t ( T , T ^ ) >  threshold  \begin{equation*} \operatorname{diss}_{t}(T, \hat{T})>\text { threshold } \tag{6} \end{equation*} disst(T,T^)> threshold (6)

其中 T ^ \hat{T} T^ 是正常趋势。

  • 形状:存在一个子序列,其形状或周期与序列的正常形状组件不同。经济条件的变化,如生产率或商品和服务的总需求和供应的变化,经常是这些波动的原因。在短期内,这些变化导致扩张和衰退期。

diss ⁡ c ( C , C ^ ) >  threshold  \begin{equation*} \operatorname{diss}_{c}(C, \hat{C})>\text { threshold } \tag{7} \end{equation*} dissc(C,C^)> threshold (7)

其中 C ^ \hat{C} C^ 指定了预期子序列的周期或形状。例如,图1中的最后一个标记,由于一些波动,段的形状发生了变化。

在这种情况下,两个时间序列的最佳对齐在动态时间规整(DTW)[132] 中用于确定它们之间的不相似性,因此,DTW 已被应用于异常检测 [15],[160]。此外,MTS 由多个维度(也称为度量)组成,每个维度描述复杂实体的不同方面。实体内度量之间的空间依赖性(相关性)也被称为度量间依赖性,可以是线性的或非线性的。如果这些相关性被破坏,MTS 将展示出各种异常行为。图2的左侧展示了一个例子,功耗(度量1)和 CPU 使用率(度量2)之间的相关性是正的,但在开始约100分之一秒后就中断了。这种异常在本研究中被称为度量间异常。

diss ⁡ corr  ( corr ⁡ ( X j , X k ) , corr ⁡ ( X t : t + w j , X t : t + w k ) ) >  threshold  \begin{equation*} \operatorname{diss}_{\text {corr }}\left(\operatorname{corr}\left(X^{j}, X^{k}\right), \operatorname{corr}\left(X_{t: t+w}^{j}, X_{t: t+w}^{k}\right)\right)>\text { threshold } \tag{8} \end{equation*} disscorr (corr(Xj,Xk),corr(Xt:t+wj,Xt:t+wk))> threshold (8)

其中 X j X^{j} Xj X k X^{k} Xk 是 MTS 的两个不同度量,corr 衡量两个度量之间的相关性。当这种相关性在窗口 t : t + w t: t+w t:t+w 中恶化时,意味着系数与正常系数相比偏离超过阈值。

度量间-时间异常更容易从时间或度量的角度检测,因为它们违反了度量间和时间依赖性,如图2的右侧所示。

3 深度异常检测方法

在具有复杂结构的数据中,深度神经网络是建模依赖关系的强大方法。许多学者已经研究了其在异常检测中的应用,使用了各种深度学习架构,如图3所示。

3.1 时间序列异常检测

图4展示了时间序列中深度异常检测模型的概述。在我们的研究中,用于时间序列异常检测的深度模型根据其主要方法和架构进行分类。时间序列异常检测文献中有两种主要方法(图4中的学习组件):基于预测和基于重构。基于预测的模型可以训练以预测下一个时间戳,而基于重构的模型可以捕获时间序列数据的嵌入。时间序列异常检测中的深度学习架构分类如图3所示。

图4. 时间序列中深度异常检测模型的一般组件

根据处理的输入维度(单变量和多变量时间序列),表1和表2总结了时间序列异常检测模型。这些表格概述了模型的以下方面:1)时间/空间,2)学习方案,3)输入,4)可解释性,5)点/子序列异常,6)随机性和7)增量。

3.1.1 时间/空间

使用单变量时间序列作为输入,模型可以捕获时间信息(即模式),而使用多变量时间序列作为输入,则可以通过时间和空间依赖性学习正常性。此外,如果模型输入是捕获空间依赖性的多变量时间序列,则模型还可以检测度量间异常(如图2所示)。

3.1.2 学习方案.

3.1.3 输入。

模型可以将单个数据点(即时间步)或窗口(即包含历史信息的一系列时间步的序列)作为输入。窗口可以按顺序使用,也称为滑动窗口,或者根据应用程序而无需考虑顺序进行洗牌。为了克服比较子序列而不是数据点的挑战,许多模型使用子序列(窗口)的表示而不是原始数据,并使用包含先前时间步历史的滑动窗口,依赖于时间序列数据中子序列顺序的模型。在预处理阶段执行滑动窗口提取,其他操作已经实施,例如填充缺失值、对数据进行下采样或上采样以及数据归一化。

3.1.4 可解释性。

在解释中,会说明为什么一个观察结果异常。当异常检测用作诊断工具时,解释性是至关重要的,因为它有助于故障排除和分析异常。多变量时间序列具有挑战性,而随机深度学习进一步复杂化了这一过程。排查实体异常的典型过程涉及搜索与先前观察到的行为最不同的顶级指标。因此,通过分析具有最高异常分数的多个指标,可以解释检测到的实体异常。在缺乏用于评估异常可解释性的标准化指标的研究中,根据推荐系统中的HitRate@K概念,[162]中定义了一种修订的度量标准称为HitRate@P%。在这方面,从HitRate@K调整而来的解释分数(IPS)被概述,以评估分段级别的异常解释准确性[116]。

3.1.5 点/子序列异常。

模型可以检测点异常或子序列异常。点异常是与数据集中其余部分不同寻常的点。子序列异常发生在连续的观察结果具有异常的协同行为时,尽管每个观察结果本身不一定是异常值。在第2.4节中描述了不同类型的异常,并在图1和图2中进行了说明。

3.1.6 随机性。

如表1和表2所示,我们还调查了异常检测模型的随机性。确定性模型可以准确预测未来事件,而无需依赖随机性。预测确定性事件很容易,因为您手头上有所有必要的数据。在这种情况下,对于给定的一组输入,模型将产生完全相同的结果。随机模型可以处理输入中的不确定性。通过使用随机组件作为输入,可以考虑到一定程度的不可预测性或随机性。

3.1.7 增量。

增量学习是一种机器学习范式,当出现一个或多个新观察结果时,模型的知识会扩展。如果训练数据逐渐可用,它指定了一种动态学习策略。增量学习的目标是在保留过去知识的同时,使模型适应新数据。

此外,深度模型以逐步或端到端的方式处理输入(见图4)。在第一类(逐步)中,有一个学习模块,后面跟着一个异常评分模块。在第二类中,可以将这两个模块结合起来,使用神经网络学习异常分数作为端到端过程。这些模型的输出可能是输入的异常分数或二进制标签。与旨在改进表示的算法相反,例如DevNet[138],引入偏差网络来通过利用少量标记的异常实现端到端学习,以优化异常分数。端到端模型的输出是异常子序列/点,例如点的标签,而逐步模型的输出是子序列/点的异常分数。请注意,在逐步模型中,这些模型的输出是一个分数,应进行后处理以确定相关输入是否是异常。然后使用不同的方法基于训练或验证集来确定阈值,例如非参数动态阈值(NDT)[91]和阈值上的峰值(POT)[157]。

表1. 时间序列中的单变量深度异常检测模型

大多数情况下,异常分数主要基于定义的损失函数。在大多数基于重建的方法中,使用重建概率,在基于预测的方法中,使用预测误差来定义异常分数。异常分数表示每个数据点中异常的程度。通过根据异常分数 ( A S ) \left(A_{S}\right) (AS)对数据实例进行排名,并根据阈值值计算决策分数,可以完成数据异常的检测:

∣ A S ∣ >  threshold  \begin{equation*} \left|A_{S}\right|>\text { threshold } \tag{9} \end{equation*} AS> threshold (9)

用于评估的指标是机器学习中的现有指标,例如AUC ROC(接收者操作特征曲线下面积)、精确度、召回率或F1分数。近年来,提出了一种称为点调整(PA)或基于段的评估的评估技术[184],用于评估大多数当前时间序列异常检测模型以测量F1分数。该评估技术认为,如果在该段中识别了一个点为异常,则整个段被视为异常。Schlegel等人[151]证明了现有方法的F1分数在使用PA时被大大高估,并且在没有PA的情况下几乎没有改进。他们提出了一种用于严格评估时间序列异常检测的PA%K协议,该协议可与当前的评估指标一起使用,仅在每个单位长度至少有K个正确检测到的异常时才使用PA。通过对精确度/召回率对的扩展,关联度指标评估时间序列异常检测任务以改进经典指标[90]。它可应用于点异常和后续异常。主要区别在于它是非参数的,同时是局部的,这意味着每个地面真实事件都会单独分析。因此,局部性使最终得分易于解释,并显示为单独的段。

表2. 时间序列中的多变量深度异常检测模型

1 { }^{1} 1 A: 方法, 2 { }^{2} 2 MA: 主体系结构, 3 { }^{3} 3 T/S: 时间/空间 ∣ \mid 值: [S:空间, T:时间, ST:时空], 4 { }^{4} 4 Su/Un: 监督/无监督 ∣ \mid 值: [ [ [ Su: 监督, Un: 无监督, Semi: 半监督, Self: 自监督], 5 { }^{5} 5 Int: 可解释性, 6 P / S { }^{6} \mathrm{P} / \mathrm{S} 6P/S : 点/子序列, 7 { }^{7} 7 Stc: 随机性, 8 { }^{8} 8 Inc: 增量, ∗ { }^{*} 具有多个主体系结构的模型。

(a) RNN

(b) LSTM

© GRU

图5. (a) 循环神经网络(RNN),(b) 长短期记忆单元(LSTM),以及© 门控循环单元(GRU)概览。这些模型可以通过捕获 x t x_{t} xt之前 w w w个样本的时间窗口的时间信息来预测 x t ′ x_{t}^{\prime} xt。通过误差 ∣ x t − x t ′ ∣ \left|x_{t}-x_{t}^{\prime}\right| xtxt,可以计算异常分数。

3.2 基于预测的模型

基于预测的方法使用学习模型根据点或最近窗口来预测点或子序列。为了确定传入值的异常程度,将预测值与实际值进行比较。它们与实际值的偏差被视为异常值。大多数预测方法使用滑动窗口逐点预测。为了识别异常行为,它们使用预测器来建模正常行为。这在现实世界的异常检测情况中特别有帮助,其中正常行为很常见,但异常行为很少见。

值得一提的是,一些先前的作品,如[123],将预测误差用作新颖性量化,而不是异常分数。在接下来的小节中,将解释不同的基于预测的架构。

3.2.1 循环神经网络(RNN)。

由于RNN具有内部记忆,它们可以处理长度可变的输入序列并展现时间动态性[167],[2]。简单RNN架构的示例如图5a所示。循环单元获取输入窗口 X t − w : t − 1 X_{t-w: t-1} Xtw:t1的点,并预测下一个时间戳作为输出, x t ′ x_{t}^{\prime} xt。迭代地,输入序列被逐个时间戳地馈送到网络中。使用输入 x t − 1 x_{t-1} xt1到循环单元 o t − 2 o_{t-2} ot2,以及像tanh这样的激活函数,使用以下方程计算输出向量 x t ′ x_{t}^{\prime} xt

x t ′ = σ ( W x ′ ⋅ o t − 1 + b x ′ ) , o t − 1 = tanh ⁡ ( W o ⋅ x t − 1 + U o ⋅ o t − 2 + b h ) (10) \begin{array}{r} x_{t}^{\prime}=\sigma\left(W_{x^{\prime}} \cdot o_{t-1}+b_{x^{\prime}}\right), \\ o_{t-1}=\tanh \left(W_{o} \cdot x_{t-1}+U_{o} \cdot o_{t-2}+b_{h}\right) \tag{10} \end{array} xt=σ(Wxot1+bx),ot1=tanh(Woxt1+Uoot2+bh)(10)
长短期记忆(Long-short-term memory,LSTM)承诺为循环神经网络(RNNs)提供可持续数千步的记忆[81]。由于具有LSTM单元的RNN架构(如图5所示),深度神经网络可以实现卓越的预测,因为它们融入了长期依赖关系。LSTM单元的四个主要组成部分如图5b所示:细胞、输入门、输出门和遗忘门。在可变时间段内,细胞记住数值,而其他门控制信息的流动。在内部LSTM中处理时间戳的过程可以用以下方程式解释。首先,遗忘门 f t − 1 f_{t-1} ft1 计算为一个具有两个输入 x t − 1 x_{t-1} xt1 o t − 2 o_{t-2} ot2 的Sigmoid函数的输出:

f t − 1 = σ ( W f ⋅ x t − 1 + U f ⋅ o t − 2 ) \begin{equation*} f_{t-1}=\sigma\left(W_{f} \cdot x_{t-1}+U_{f} \cdot o_{t-2}\right) \tag{11} \end{equation*} ft1=σ(Wfxt1+Ufot2)(11)

输入门 i t − 1 i_{t-1} it1 和输出门 s t − 1 s_{t-1} st1 可以得到如下:

i t − 1 = σ ( W i ⋅ x t − 1 + U i ⋅ o t − 2 ) s t − 1 = σ ( W s ⋅ x t − 1 + U s ⋅ o t − 2 ) \begin{align*} & i_{t-1}=\sigma\left(W_{i} \cdot x_{t-1}+U_{i} \cdot o_{t-2}\right) \tag{12}\\ & s_{t-1}=\sigma\left(W_{s} \cdot x_{t-1}+U_{s} \cdot o_{t-2}\right) \tag{13} \end{align*} it1=σ(Wixt1+Uiot2)st1=σ(Wsxt1+Usot2)(12)(13)

接下来,除了隐藏状态 o t o_{t} ot,LSTM 还有一个名为 c t − 1 c_{t-1} ct1 的记忆细胞。为了从数据中学习并更新 c t − 1 c_{t-1} ct1,应计算包含新候选值的 c t − 1 ~ \tilde{c_{t-1}} ct1~,其作为 tanh 函数的输出。之后,将 c t ~ \tilde{c_{t}} ct~ 加到 c t − 1 c_{t-1} ct1 中以更新记忆细胞状态。

c t − 1 ~ = tanh ⁡ ( W c ⋅ x t − 1 + U c ⋅ o t − 2 ) c t − 1 = i t − 1 ⋅ c t − 1 + f t − 1 ⋅ c t − 2 (14) \begin{array}{r} \tilde{c_{t-1}}=\tanh \left(W_{c} \cdot x_{t-1}+U_{c} \cdot o_{t-2}\right) \tag{14}\\ c_{t-1}=i_{t-1} \cdot c_{t-1}+f_{t-1} \cdot c_{t-2} \end{array} ct1~=tanh(Wcxt1+Ucot2)ct1=it1ct1+ft1ct2(14)

具体来说,由于它是 Sigmoid 函数的输出, f t − 1 ∈ ( 0 , 1 ) f_{t-1} \in(0,1) ft1(0,1)。当接近零时, f t − 1 f_{t-1} ft1 会完全擦除 c t − 2 c_{t-2} ct2,而当接近一时,会完全保留 c t − 2 c_{t-2} ct2。因此, f t − 1 f_{t-1} ft1 被称为遗忘门。最后,隐藏状态 o t − 1 o_{t-1} ot1 或输出通过以下方式获得:

o t − 1 = tanh ⁡ ( c t − 1 ) ⋅ s t − 1 \begin{equation*} o_{t-1}=\tanh \left(c_{t-1}\right) \cdot s_{t-1} \tag{15} \end{equation*} ot1=tanh(ct1)st1(15)

其中 W   s W \mathrm{~s} W s U   s U \mathrm{~s} U s 是 LSTM 单元的参数。最终使用方程式10计算 x t ′ x_{t}^{\prime} xt

LSTM 的经验表明,在网络中堆叠具有 Sigmoid 激活单元的循环隐藏层可以捕捉时间序列的结构,并允许处理不同时间尺度的时间序列,相较于其他深度学习架构[79]。LSTM-AD [125] 具有长期记忆能力,首次将分层循环处理层结合起来,用于在无需使用标签进行训练的单变量时间序列中检测异常。堆叠循环隐藏层还有助于学习高阶时间模式,而无需事先了解它们的持续时间。该网络预测多个未来时间步,以确保捕捉序列的时间结构。因此,序列中的每个点都有多个对应的预测值,来自过去的不同点,导致多个误差值。为了评估异常行为的可能性,将预测误差建模为多变量高斯分布。LSTM-AD 通过建模长期和短期时间关系,提供了令人期待的结果。来自 LSTM-AD 的结果表明,当无法确定正常行为是否涉及长期依赖性时,基于 LSTM 的预测模型比基于 RNN 的模型更有效。与 LSTM-AD 中使用的堆叠 LSTM 相反,Bontemps 等人 [19] 使用简单的 LSTM RNN 提出了一个基于 LSTM RNN 预测能力的集体异常检测模型,用于单变量时间序列[81]。在第一步中,使用正常时间序列对 LSTM RNN 进行训练,然后进行预测。当前事件的预测取决于它们的当前状态和历史。通过引入循环数组,模型将被配置为检测集体异常,其中包含子序列的错误。如果在循环数组中的预测误差超过阈值,将识别集体异常。

受 LSTM 模型在 UTS 异常检测中的良好结果启发,许多方法尝试基于 LSTM 架构检测 MTS 中的异常。在 DeepLSTM [28] 训练中,使用堆叠 LSTM 循环网络对正常时间序列进行训练。之后,使用最大似然估计,将预测误差向量拟合为多变量高斯分布。然后将该模型应用于预测混合的异常和正常验证数据,并记录相关错误的概率密度函数(PDF)值。该方法的优点在于不需要预处理,直接在原始时间序列上工作。LSTM-PRED [65] 基于三个具有 100 个隐藏单元的 LSTM 堆栈,使用 100 秒的数据输入序列作为学习时间依赖性的预测模型。使用 Cumulative Sum(CUMSUM)方法检测异常,而不是为每个传感器计算阈值。CUMSUM 计算序列预测的累积和,以检测轻微偏差,减少误报。在计算预测值与实际数据之间的正负差异后,从验证数据集中确定上限控制限(UCL)和下限控制限(LCL),作为边界控制以决定是否发生异常。此外,该模型可以定位表现异常行为的传感器。

在上述三种模型中,都使用了堆叠 LSTM;然而,LSTM-NDT [91] 结合了各种技术。通过从 MTS 中提取历史信息,LSTM 和 RNN 实现了高预测性能。文章中提出了一种非参数、动态和无监督的阈值查找技术,可用于评估残差。通过应用这种方法,可以自动为不断变化的数据设置阈值,以解决多样性、不稳定性和噪声问题。[50] 提出了一种名为 LSTM-BP 的方法,基于 LTSM 并改进 LSTM 的内部结构,用于检测时间序列异常。本文提出了一种名为 LGMAD 的用于复杂系统的实时异常检测算法,结合了 LSTM 和高斯混合模型(GMM)。第一步是使用 LSTM 检测单变量时间序列数据中的异常,然后采用高斯混合模型,以提供潜在异常的多维联合检测。除此之外,为了提高模型的性能,引入了健康因子 α \alpha α 的概念,用于描述系统的健康状态。该模型仅适用于低维应用。对于高维异常检测,可以使用降维技术,如主成分分析(PCA)来检测异常[87],[139]。

Ergen 和 Kozat [56] 在无监督框架中提出了基于 LSTM 的异常检测算法,以及半监督和全监督框架。为了检测异常,使用 One Class-SVM(OC-SVM)和支持向量数据描述(SVDD)算法实现的评分函数。在该框架中,LSTM 和 OC-SVM(或 SVDD)架构参数通过两种联合优化方法进行训练,利用明确定义的目标函数。基于梯度的联合优化方法使用修订的 OC-SVM 和 SVDD 公式,说明它们收敛到原始公式。由于基于 LSTM 的结构,这些方法能够处理可变长度的数据序列。此外,该模型在无需预处理的情况下,有效地检测时间序列数据中的异常。此外,由于该方法是通用的,因此该模型中的 LSTM 架构可以被 GRU(门控循环神经网络)架构替换[40]。

GRU 是由 Cho 等人 [37] 在 2014 年提出的,类似于 LSTM,但结构更简单,导致计算时间更短(见图5c)。LSTM 和 GRU 都使用门控架构来控制信息流。然而,GRU 具有膨胀信息流的门控单元,而不像 LSTM 那样有单独的记忆单元,没有输出门,而是有更新门和重置门。图5c 显示了 GRU 单元,它使用其重置门将新输入与先前记忆集成。更新门定义了要保留多少上一个记忆。问题在于,LSTM 和 GRU 在学习多季节时间序列中的复杂季节模式方面存在局限性。通过堆叠更多隐藏层并增加反向传播距离(通过时间),可以提高准确性。然而,训练可能成本高昂。在这方面,建议使用 AD-LTI [183]。这是一个预测模型,它使用一种名为 Prophet 的时间序列分解方法,将 GRU 网络整合在一起,以便在没有标签的季节性时间序列数据上进行稳健学习。在运行预测模型之前进行时间序列分解,将输入数据的季节特征明确地输入到 GRU 网络中。在推断过程中,除了其季节特征(如周和日项)外,时间序列还提供给模型。此外,由于预测是基于先前数据进行的,可能包含异常点,因此可能不可靠。为了估计异常的可能性,提出了一种名为本地趋势不一致性(LTI)的新度量。通过将基于最近时间点的帧进行的预测与其正常概率加权,LTI 克服了历史中可能存在异常帧的问题。
传统的单类分类器是为具有固定维度的输入数据开发的,无法充分捕捉时间序列数据中的潜在时间依赖关系 [148]。最近的一个模型使用循环网络来解决这个问题。THOC [155] 是一个自监督的时间分层单类网络,由多层扩张 RNN 和分层 SVDD [164] 组成。利用带有跳跃连接的扩张 RNN [27] 捕获多尺度的时间特征。采用分层聚类机制来合并扩张 RNN 中间层的输出,而不仅仅使用顶部的最低分辨率特征。在每个分辨率中展现出几个超球体表现出正常行为,这比深度 SVDD 更好地捕捉了真实世界的时间序列复杂性。这使得模型能够进行端到端训练,并且使用一个分数来检测异常,该分数衡量当前值与正常行为的超球体表示之间的差异。尽管 RNN 取得了一些成就,但由于受限于窗口大小,它们在处理长序列时可能效率低下。

3.2.2 卷积神经网络 (CNN)。

卷积神经网络 (CNNs) 是多层感知器的改进版本,以不同的方式进行正则化。数据中的分层模式使它们能够使用更小、更简单的模式构建日益复杂的模式。CNN 包括多个层,包括卷积层、池化层和全连接层,如图 6 所示。卷积层由一组可学习的核组成,延伸到整个输入。通过对输入数据集进行卷积操作,生成一个 2D 激活图,方法是计算它们的条目与输入之间的点积。池化操作对卷积输出进行统计总结。基于 CNN 的 DeepAnt [133] 模型在训练阶段不需要大量数据,因此效率很高。该模型可以检测时间序列中即使是小的偏差,并且可以以无监督的方式处理低水平的数据污染(少于 5%)。异常检测模型可以应用于单变量和多变量时间序列,并且可以识别诸如点异常、上下文异常和不一致性等异常。

在结构数据分析中,卷积网络已被证明对提取高级特征非常有价值。由于传统 CNN 无法处理时间序列等顺序数据的特征,因此它们通常不用于这种类型的数据,因此通过开发时间卷积网络 (TCN) [11],利用扩张卷积使其能够适应顺序数据。大多数基于 CNN 的模型使用 TCN 进行时间序列异常检测。基本上,TCN 包括两个原则:它产生与输入相同长度的输出,并且不使用未来信息到过去。对于第一个点,TCN 使用一个 1D 全卷积网络,其隐藏层与输入层大小相同。第二点也可以通过扩张卷积实现,其中时间 t t t 的输出仅与时间 t t t 及之前的点进行卷积。扩张卷积的输出基于以下方程:

x ′ ( t ) = ( x ∗ l f ) ( t ) = ∑ i = 0 k − 1 f ( i ) ⋅ x t − l . i \begin{equation*} x^{\prime}(t)=(x * l f)(t)=\sum_{i=0}^{k-1} f(i) \cdot x_{t-l . i} \tag{16} \end{equation*} x(t)=(xlf)(t)=i=0k1f(i)xtl.i(16)

其中 f f f 是大小为 k k k 的滤波器,* 表示使用扩张因子 l l l 进行卷积, x t − l . i x_{t-l . i} xtl.i 提供过去的信息。

[77] 使用了 TCN,该模型在正常序列上进行训练,并能够预测随时间变化的趋势。通过拟合到预测误差的多元高斯分布来计算点的异常分数。采用跳跃连接实现多尺度特征混合预测,以适应不同尺度模式。

Ren 等人 [144] 将光谱残差 (SR) 模型与 CNN 结合起来,实现了更高的准确性,因为 SR 模型源自视觉显著性检测 [82]。超过 200 个微软团队使用了这种单变量时间序列异常检测服务,包括微软必应、Office 和 Azure。该模型非常快速,每分钟可以检测 400 万个时间序列的异常。TCN-AE [169] 使用了一个卷积架构结合自动编码器框架。与标准自动编码器不同,它用更强大的 CNN 架构替换了密集层架构,而且在输入尺寸方面更加灵活。TCN 自动编码器使用两个时间卷积神经网络 (TCNs) [11] 进行编码和解码。此外,编码器中的下采样层和解码器中的上采样层也被使用。

在许多实际应用中,准周期时间序列 (QTS) 经常被生成。例如,一些生理信号如心电图 (ECG) 就是 QTS。文献 [117] 中提出了一个自动 QTS 异常检测框架 (AQADF)。它包括一个基于聚类的两级 QTS 分割算法 (TCQSA) 和一个基于注意力的混合 LSTM-CNN 模型 (HALCM)。具体而言,TCQSA 旨在准确自动地将 QTS 划分为连续的准周期。TCQSA 中包括两级聚类过程。首先,TCQSA 使用一种层次聚类技术,自动对 QTS 的候选点进行聚类,无需手动干预,使其通用化。第二个聚类方法消除了 QTS 中由异常值引起的簇,使 TCQSA 具有抗噪性。HALCM 应用了堆叠的双向 LSTM (SB-LSTMs) 与 CNNs (TD-CNNs) 混合,以提取 QTS 的整体变化趋势和局部特征。因此,QTS 的波动模式可以更准确地表征。此外,HALCM 还通过三种注意力机制进一步增强。具体地,标签注意力机制 (TAGs) 被嵌入到 LSTMs 中,以微调从 QTS 不同部分提取的变化。特征注意力机制 (FAM) 和位置注意力机制 (LAM) 被嵌入到 CNN 中,以增强从 QTS 中提取的关键特征的效果。因此,HALCM 能够更准确地获取 QTS 波动模式的特征表示。

3.2.3 图神经网络 (GNN)。

在过去几年中,研究人员提出从多维时间序列 (MTS) 中提取空间信息并形成图结构。然后,将时间序列异常检测问题转化为根据其图结构检测时间序列的异常,并且已经使用 GNN 来建模这些图。GNN 的结构如图 7 所示。在 GNN 中,成对消息传递是关键方法,使得图节点通过彼此交换信息来迭代更新它们的表示。在用于 MTS 异常检测的模型中,每个维度(度量)被表示为图中的单个节点,我们将节点集表示为 V = 1 , … , d V=1, \ldots, d V=1,,d。E 表示图中的边,它们表示从 MTS 中学习到的相关性。对于节点 u / i n V u / i n V u/inV,消息传递层对迭代 k + 1 k+1 k+1 输出如下:

h u k + 1 = U P D A T E k ( h u k , m N ( u ) k ) , m N ( u ) k = AGGREGATE ⁡ k ( h i k , ∀ i ∈ N ( u ) ) (17) \begin{array}{r} h_{u}^{k+1}=U P D A T E^{k}\left(h_{u}^{k}, m_{N(u)}^{k}\right), \\ m_{N(u)}^{k}=\operatorname{AGGREGATE}^{k}\left(h_{i}^{k}, \forall i \in N(u)\right) \tag{17} \end{array} huk+1=UPDATEk(huk,mN(u)k),mN(u)k=AGGREGATEk(hik,iN(u))(17)

其中 h u k h_{u}^{k} huk 是与每个节点对应的嵌入, N ( u ) N(u) N(u) 是节点 u u u 的邻域集合。

图 7. 用于多变量时间序列异常检测的图神经网络 (GNN) 的基本结构,可以学习度量之间的关系(相关性)并预测时间序列的预期行为。

GNN 学习空间结构的能力增强了包含相关性的多变量时间序列数据的建模。通常,GNN 假设每个节点的状态受其邻居状态的影响 [150]。已经提出了各种各样的 GNN 架构,实现了不同类型的消息传递。图卷积网络 (GCN) [102] 通过聚合其一步邻居来建模节点的特征表示。图注意力网络 (GATs) [173] 基于这种方法,但是不同于为每个邻居使用简单的权重函数,它们使用注意力函数为每个邻居计算不同的权重。

(a) 使用 HTM 进行异常检测的组件

(b) HTM 细胞的结构

图 8. (a) 基于 HTM 的异常检测系统的组件。根据 HTM 系统的输出,计算预测误差和异常可能性度量。 (b) HTM 细胞的内部结构。在 HTM 细胞中,树突被建模为具有它们之间的突触的重叠探测器。上下文树突从层中的其他神经元接收侧向输入。如果上下文树突上的侧向活动足够,细胞将进入预测状态。

在总结 GNN 模型之前,我们想要强调从时间序列中提取图结构并使用 GNN 对其进行建模,使异常检测模型能够学习随时间变化的空间信息的变化,这是一个有前途的未来研究方向。

3.2.4 分层时间记忆(HTM)。

使用分层时间处理进行异常检测的一个显著实例是试图模仿新皮层中神经元细胞、区域和层次的分层时间记忆(HTM)系统 [64]。如图 8a 所示,HTM 算法的典型组件。输入 x t x_{t} xt 被馈送到编码器,然后进行稀疏空间汇聚过程 [41]。因此, a ( x t ) a\left(x_{t}\right) a(xt) 将当前输入表示为稀疏二进制向量。序列记忆构成了系统的核心,模拟了 a ( x t ) a\left(x_{t}\right) a(xt) 中的时间模式,并以稀疏向量 π ( x t ) \pi\left(x_{t}\right) π(xt) 的形式返回预测。因此,预测误差可以定义如下:

e r r t = 1 − π ( x t − 1 ) ⋅ a ( x t ) ∣ a ( x t ) ∣ \begin{equation*} e r r_{t}=1-\frac{\pi\left(x_{t-1}\right) \cdot a\left(x_{t}\right)}{\left|a\left(x_{t}\right)\right|} \tag{18} \end{equation*} errt=1a(xt)π(xt1)a(xt)(18)

其中 ∣ a ( x t ) ∣ \left|a\left(x_{t}\right)\right| a(xt) a ( x t ) a\left(x_{t}\right) a(xt) 中 1 的总数。

根据模型的预测历史和错误的分布,异常可能性是一个概率度量,指示当前状态是否异常,如图 8a 所示。在 HTM 序列记忆中,一列 HTM 神经元排列在一个层中(图 8b)。在层次结构的单个级别内可能有几个区域。在较高的层次中,涉及的区域较少,并且在较低层次学习的模式被组合以召回更复杂的模式。HTM 区域都有相同的目的。感觉数据在学习阶段进入较低级别区域,较低级别区域在生成模式中输出特定概念的结果模式。在顶层,最一般和持久的概念存储在单个区域中。在推理模式下,区域将来自其子节点的信息解释为概率。除了对噪声具有鲁棒性外,HTM 具有很高的容量,可以同时学习多个模式。HTM 区域中的空间模式是通过识别和记忆输入位的频繁集合来学习的。在接下来的阶段,它识别可能随时间相继发生的空间模式序列。

图 9. 用于异常检测的变压器网络结构。变压器通过使用编码器-解码器结构模拟神经序列模型。编码器和解码器中都有多个相同的块。每个编码器块包括一个多头自注意力模块和一个位置感知前馈网络。在解码过程中,交叉注意力模块插入到多头自注意力模块和位置感知前馈网络之间。与循环神经网络不同,变压器不包含任何循环或卷积,而是利用添加到输入嵌入中的位置编码来建模序列信息。

Numenta HTM [5] 使用 HTM 在可预测和嘈杂领域中检测单变量时间序列的时间异常。因此,该系统高效,能够处理极其嘈杂的数据,持续适应数据统计的变化,并在不产生误报的情况下检测到小的异常。Multi-HTM [182] 是一个学习模型,随时间学习上下文,因此对噪声具有容忍性。数据模式持续学习,并实时进行预测,因此可用于自适应模型。通过它,可以解决各种异常检测问题,而不仅仅是某些类型。特别是,它用于单变量问题,并有效应用于多变量时间序列。RADM [49] 的目的是提出一个用于多变量时间序列的实时无监督异常检测框架,将 HTM 与朴素贝叶斯网络(BN)结合在一起。最初,HTM 算法用于检测 UTS 中的异常,结果在检测和响应时间方面表现出色。第二步是将 HTM 算法与 BN 结合,以尽可能有效地检测 MTS 中的异常,而不减少维度。因此,可以检测到一些在 UTS 中被忽略的异常,并提高检测准确性。由于 BN 在指定后验概率和自适应性方面易于使用,因此用于细化新观测。此外,本文定义了一个健康因子 α \alpha α(系统运行状况的衡量标准),以描述系统的健康状况并提高检测效率。

3.2.5 变压器。

变压器 [172] 是一种深度学习模型,根据不同部分的重要性对输入数据进行加权。与 RNN 不同,变压器同时处理整个数据。由于其完全基于注意机制的架构,如图 9 所示,它能够捕获长期依赖关系,同时具有高效的计算能力。最近的研究利用它们来检测时间序列异常,因为它们处理顺序数据以进行文本数据翻译。

(a) 可预测的

(b) 不可预测的

图 10. 一个时间序列可能在任何给定时刻是未知的,或者可能像 (b) 中所示,快速变化,展示了手动控制的传感器读数 [124]。这样的时间序列无法提前预测,使基于预测的异常检测无效。

原始的变压器架构是基于编码器-解码器的。变压器功能的一个重要部分是其多头自注意机制,如下方程所述:

Q , K , V = softmax ⁡ ( Q K T d k ) V \begin{equation*} Q, K, V=\operatorname{softmax}\left(\frac{Q K^{\mathrm{T}}}{\sqrt{d_{k}}}\right) V \tag{19} \end{equation*} Q,K,V=softmax(dk QKT)V(19)

其中 Q , K Q, K Q,K V V V 被定义为矩阵, d k d_{k} dk 用于注意力映射的归一化。

在长序列中检测语义相关性,并从不相关元素中过滤出重要元素。由于变压器没有循环或卷积,因此需要指定序列中令牌的相对或绝对位置,这称为位置编码。GTA [35] 从变压器的序列建模能力中获益,采用双向图结构来学习多个物联网传感器之间的关系。提出了一种新颖的影响传播(IP)图卷积作为自动半监督学习策略,用于传感器之间依赖关系的图结构。作为发现隐藏关系的训练过程的一部分,每个节点的邻域字段受到限制以进一步提高推理效率。随后,它们被馈送到图卷积层以建模信息传播。作为下一步,多尺度扩张卷积和图卷积被融合以提供分层时间上下文编码。他们使用基于变压器的架构来建模和预测序列,因为其并行性和捕获上下文信息的能力。作者还提出了一种使用多分支注意力来减少多头注意力的二次复杂度的替代方法。在另一项最近的工作中,他们使用仅由注意机制组成的堆叠编码器-解码器结构的变压器。SAnD(Simply Attend and Diagnose)[159] 使用注意模型来建模临床时间序列,消除了对循环的需求。该架构利用了自注意力模块,并捕获并设计了邻域内的依赖关系,具有多个头部。此外,使用位置编码技术和密集插值嵌入技术来表示时间顺序。这也被扩展以处理多个诊断,创建多任务变体。

3.3 基于重建的模型

正常行为模型是通过在潜在空间(低维空间)中对正常训练数据的子序列进行编码而构建的。模型的输入是滑动窗口(见第3节),它提供了重构过程的时间上下文。由于模型仅在正常数据上进行训练(半监督),因此在测试阶段无法重构异常子序列。因此,通过重构测试数据中的一个点/滑动窗口并将其与实际值进行比较,即所谓的重构误差,来检测异常。在某些模型中,当重构概率低于指定阈值时,会触发异常检测,因为异常点/子序列具有较低的重构概率。

3.3.1 自编码器(AE)。

自编码器(AE),也称为自联想神经网络[104],在MTS异常检测中以非线性降维能力的神经网络形式得到了广泛研究[149],[199]。最近的深度学习发展强调使用AE学习低维表示(编码)[80],[16]。自编码器由两个组件组成(见图11a):一个将输入转换为编码的编码器和一个从编码重构输入的解码器。如果自编码器能够执行准确的重构并最小化重构误差,那将是理想的。这种方法可以总结如下:

Z t − w : t = Enc ⁡ ( X t − w : t , ϕ ) , X ^ t − w : t = Dec ⁡ ( Z t − w : t , θ ) \begin{equation*} Z_{t-w: t}=\operatorname{Enc}\left(X_{t-w: t}, \phi\right), \hat{X}_{t-w: t}=\operatorname{Dec}\left(Z_{t-w: t}, \theta\right) \tag{20} \end{equation*} Ztw:t=Enc(Xtw:t,ϕ),X^tw:t=Dec(Ztw:t,θ)(20)

其中 X t − w X_{t-w} Xtw是如图11a所示的滑动窗口, x t ∈ R d . E x_{t} \in R^{d} . E xtRd.E是具有 ϕ \phi ϕ参数的编码器网络,因此 Z Z Z是AE瓶颈中称为潜在空间的表示。然后,将这个编码窗口馈送到解码器网络,命名为 D D D,具有 θ \theta θ参数,并给出 X ^ t − w \hat{X}_{t-w} X^tw作为 X X X的重构。在训练阶段,根据以下更新编码器和解码器参数:

( ϕ ∗ , θ ∗ ) = arg ⁡ min ⁡ ϕ , θ Err ⁡ ( X t − w : t , Dec ⁡ ( Enc ⁡ ( X t − w : t , ϕ ) , θ ) ) \begin{equation*} \left(\phi^{*}, \theta^{*}\right)=\arg \min _{\phi, \theta} \operatorname{Err}\left(X_{t-w: t}, \operatorname{Dec}\left(\operatorname{Enc}\left(X_{t-w: t}, \phi\right), \theta\right)\right) \tag{21} \end{equation*} (ϕ,θ)=argϕ,θminErr(Xtw:t,Dec(Enc(Xtw:t,ϕ),θ))(21)

为了捕获更多信息并更好地表示主要信息,提供了各种技术,如稀疏自编码器(SAE)[134],去噪自编码器(DAE)[174]和卷积自编码器(CAE)[136]。基于AE的模型中窗口的异常分数可以根据以下基本函数的重构误差来定义:

A S w = ∥ X t − w : t − Dec ⁡ ( Enc ⁡ ( X t − w : t , ϕ ) , θ ) ∥ 2 \begin{equation*} A S_{w}=\left\|X_{t-w: t}-\operatorname{Dec}\left(\operatorname{Enc}\left(X_{t-w: t}, \phi\right), \theta\right)\right\|^{2} \tag{22} \end{equation*} ASw=Xtw:tDec(Enc(Xtw:t,ϕ),θ)2(22)

在我们的研究中有几篇论文属于这一类。Sakurada和Yairi [149]展示了自编码器在MTS中进行降维以作为异常检测的预处理的应用,以及使用自编码器进行异常检测的机制。该方法通过将每个时间索引处的每个数据样本视为独立来忽略时间序列。尽管自编码器在没有时间信息的情况下已经表现良好,但通过提供当前和过去的样本,它们可以进一步提升。为了澄清自编码器的特性,他们比较了线性PCA、去噪自编码器(DAEs)和核PCA。结果,作者发现自编码器可以检测到线性PCA无法检测到的异常组件,并且通过包含去噪自编码器可以增强自编码器。此外,自编码器避免了核PCA所需的复杂计算,而不会影响质量和检测质量。DAGMM(深度自编码高斯混合模型)[199]在端到端框架中使用潜在空间中的高斯混合先验来估计MTS输入样本的概率。该模型由两个主要组件组成:一个压缩网络和一个估计网络。压缩网络使用随机深度自编码器对输入样本进行降维,基于减少的空间和重构误差特征产生低维表示。估计网络通过在低维表示中进行高斯混合建模来计算样本能量(下文定义)。样本能量用于确定重构错误;高样本能量意味着高度异常。尽管如此,仅考虑了空间依赖关系,没有包含时间信息。通过端到端训练,估计网络引入了一个正则化项,帮助压缩网络避免局部最优并产生低重构误差。

EncDec-AD [124]模型可以检测甚至来自不可预测的单变量时间序列的异常,与许多现有的异常检测模型相反。在这种方法中,多变量时间序列通过仅考虑第一个主成分而被降维为单变量。据称,它可以检测长度长达500的时间序列中的异常,表明LSTM编码器-解码器学习了正常行为的稳健模型。尽管如此,当必须解码长序列数据时,它会遇到错误累积问题。[96]提出了基于稀疏连接循环神经网络的两种自编码器集成框架。在一个框架中,多个自编码器被独立训练,而另一个框架通过使用共享特征空间同时训练多个自编码器。两种框架都使用多个自编码器的重构误差的中位数来衡量时间序列中异常值的可能性。Audibert等人[10]提出了使用自编码器进行多变量时间序列的无监督异常检测(USAD),其中利用对抗训练的自编码器来放大重构误差。用于训练或测试的输入是具有保留此信息的时间顺序的一系列观测。此外,对抗训练结合其架构,使系统能够在促进快速学习的同时区分异常。Goodge等人[69]通过检查各种对抗攻击的结果来确定自编码器在异常检测中是否容易受到攻击。提出了近似投影自编码器(APAE)来提高模型在对抗攻击下的性能和鲁棒性。通过在潜在表示上使用梯度下降,该方法产生更准确的重构并增加对对抗性威胁的鲁棒性。在这个过程中,特征加权归一化步骤考虑了不同特征之间重构误差的自然变化。

在MSCRED [189]中,基于注意力的ConvLSTM网络被设计用于捕获时间趋势,并且使用卷积自编码器来对签名矩阵(包含传感器之间的相关性)进行编码和重构,而不是仅依赖于时间序列。矩阵的长度为16,步长间隔为5。签名矩阵的重构误差可用于计算异常分数。除了检测异常外,它还突出了如何识别根本原因和解释异常持续时间。在CAE-Ensemble [22]中,提出了一种卷积序列到序列自编码器,它可以通过高训练并行性捕获时间依赖关系。除了将门控线性单元(GLU)与卷积层结合,还应用了注意力来捕获识别输入中重复出现的类似子序列的局部模式,如周期性。由于单独基本模型的输出可以通过集成来组合以提高准确性[29],因此提出了基于CAE的多样性驱动集成以及基于参数传递的训练策略,而不是分别训练每个CAE模型。为了确保多样性,目标函数还考虑了基本模型之间的差异,而不仅仅评估它们的准确性。使用集成和参数传递技术显著减少了训练时间和错误。

RANSysCoders [1]概述了eBay使用的实时异常检测方法。作者提出了一种架构,利用多个编码器和解码器以及随机特征选择来通过多数投票推断和定位异常,解码器确定重构的边界。在这方面,RANCoders是用于特征边界构建的引导自编码器。此外,建议对潜在空间表示进行谱分析[180],以提取多变量时间序列的先验信息以同步原始系列表示。改进的准确性归因于特征同步、引导、分位损失以及用于异常推断的多数投票。该方法克服了先前工作的一些限制,包括事后阈值识别、时间窗口选择、降采样以减少噪声以及对于大特征维度的不一致性性能。作者研究了现有广泛使用的评估方法的局限性,如点调整方法,并提出了一种替代方法,以更好地评估实践中异常检测模型的有效性。

(a) 自编码器

(b) 变分自编码器
一种新型的自适应记忆网络与自监督学习(AMSL)[194] 被提出,旨在增加无监督异常检测的泛化能力。使用卷积的自动编码器框架可以实现端到端的训练。AMSL将自监督学习和记忆网络整合在一起,以克服正常数据有限的挑战。作为第一步,编码器将原始时间序列及其六种变换映射到潜在特征空间。为了学习泛化的特征表示,必须构建一个多类分类器来对这些特征类型进行分类。在此过程中,特征也被输入到全局和局部记忆网络中,这些网络可以学习通用和特定特征以改善表示能力。最后,自适应融合模块通过融合这些特征得出新的重构表示。

3.3.2 变分自动编码器(VAE)。

图11b展示了变分自动编码器(VAE)的典型配置,它是一个将神经网络自动编码器与均场变分贝叶斯相结合的方向性概率图模型[101]。VAE的工作原理类似于自动编码器,但它不是将输入编码为单个点,而是使用推理网络 q ϕ ( Z t − w + 1 : t ∣ X t − w + 1 : t ) q_{\phi}\left(Z_{t-w+1: t} \mid X_{t-w+1: t}\right) qϕ(Ztw+1:tXtw+1:t) 将其编码为分布,其中 ϕ \phi ϕ 是其参数。它将一个 d d d 维输入 X t − w + 1 : t X_{t-w+1: t} Xtw+1:t 表示为一个低维度 k < d k<d k<d 的潜在表示 Z t − w + 1 : t Z_{t-w+1: t} Ztw+1:t。一个采样层从潜在分布中取样并将其馈送到生成网络 p θ ( X t − w + 1 : t ∣ Z t − w + 1 : t ) p_{\theta}\left(X_{t-w+1: t} \mid Z_{t-w+1: t}\right) pθ(Xtw+1:tZtw+1:t),其中 θ \theta θ 是其参数,其输出是 g ( Z t − w + 1 : t ) g\left(Z_{t-w+1: t}\right) g(Ztw+1:t),输入的重构。在 VAE 中有两个损失函数组成,如方程(23)所述,这两个损失在 VAE 中被最小化:一个旨在改善编码和解码过程的重构误差,以及一个旨在通过使编码器的分布尽可能接近首选分布来正则化潜在空间的正则化因子。

 loss  = ∥ X t − w + 1 : t − g ( Z t − w + 1 : t ) ∥ 2 + K L ( N ( μ x , σ x ) , N ( 0 , 1 ) ) \begin{equation*} \text { loss }=\left\|X_{t-w+1: t}-g\left(Z_{t-w+1: t}\right)\right\|^{2}+K L\left(N\left(\mu_{x}, \sigma_{x}\right), N(0,1)\right) \tag{23} \end{equation*}  loss =Xtw+1:tg(Ztw+1:t)2+KL(N(μx,σx),N(0,1))(23)

其中 K L K L KL 是 Kullback-Leibler 散度。通过使用正则化训练,它避免了过拟合,并确保潜在空间适合生成过程。

LSTM-VAE [140] 是一种基于 LSTM 的变分自动编码器,采用变分推断进行重构。在原始 VAE 中,前馈神经网络被 LSTM 取代,通过去噪自编码方法进行训练以提高表示能力。当给定数据点的对数似然低于阈值时,该模型会检测异常。阈值是动态的且基于状态的,表示一个随任务估计的状态而变化的阈值,以减少误报。Xu 等人[184] 发现,在 VAE 异常检测中,对正常和异常数据进行训练是必要的。所提出的名为 Donut 的模型是一种基于 VAE(一种代表性的深度生成模型)的无监督异常检测方法,从混洗的训练数据中训练。Donut 算法中的三个步骤,即修改 ELBO(证据下界)、用于训练的缺失数据注入,以及用于检测的 MCMC(马尔可夫链蒙特卡洛)插补[146],使其在季节性关键绩效指标(KPI)的异常检测方面远远优于其他方法。由于 VAE 的非顺序性质以及数据以滑动窗口格式输入而不考虑它们的关系,Donut 无法处理时间异常。随后,提出了 Bagel [114] 作为一种处理时间异常的无监督和稳健算法。Bagel 不使用 Donut 中的 VAE,而是采用条件变分自动编码器(CVAE)[107],[108] 并考虑时间信息。VAE 模型建模了两个随机变量 x x x z z z 之间的关系。CVAE 则在 x x x z z z 之间建模了条件关系,即它建模了 p ( x , z ∣ y ) p(x, z \mid y) p(x,zy)

STORNs [158],即随机循环网络,被用于使用变分推断(VI)学习高维时间序列数据的概率生成模型。该算法灵活通用,当应用于具有空间和时间结构的时间序列时不需要任何领域知识。实际上,OmniAnomaly [162] 是一个 VAE,其中使用随机循环神经网络学习多变量数据的稳健表示,并使用平面归一化流[145]描述潜在空间的非高斯分布。该方法基于重构概率进行异常检测,并根据其重构概率量化每个特征的可解释性。它实施 POT 方法来找到异常阈值。InterFusion [116] 提出使用分层变分自动编码器(HVAE)来学习互度量和时间表示;并依靠一个辅助的“重构输入”进行两视图嵌入,该输入将 MTS 与度量和时间方面压缩在一起。为了防止训练数据中的过拟合异常,InterFusion 采用了一种预过滤策略,通过重构过程消除时间异常以学习准确的互度量表示。本文提出了用于异常解释的 MCMC 插补多变量时间序列,并引入了 IPS,一种用于评估异常解释结果的分段度量。

在这一类别中,有一些关于嘈杂时间序列数据异常检测的研究。为了捕捉单变量 KPI 中的复杂模式,其中存在非高斯噪声和复杂数据分布,Buzz [33] 引入了基于分区分析的对抗训练方法。该模型提出了基于 Wasserstein 距离的主要训练目标形式,并描述了如何将其转化为贝叶斯模型。这是将贝叶斯网络与最优传输理论联系起来的一种新方法。对抗训练计算每个分区上的分布距离,全局距离是所有分区上分布距离的期望。SISVAE(平滑感应序列 VAE)[111] 通过在使用贝叶斯方法训练深度生成模型之前进行平滑处理,检测到点级异常。因此,它既受益于经典优化模型的效率,又能够利用深度生成模型来建模不确定性。在该模型中,均值和方差分别为每个时间戳参数化,这为根据噪声估计动态调整阈值提供了可能。考虑到时间序列可能随时间变化,这一特性至关重要。许多研究已经使用 VAE 进行异常检测,假设在生成过程中存在单峰高斯分布作为先验。由于时间序列数据的固有多模态分布,现有研究无法学习数据的复杂分布。这一挑战通过[73]中提出的基于 GRU 的高斯混合 VAE 得到解决。使用 GRU 单元,可以发现时间序列之间的相关性。随后,多模态数据的潜在空间由高斯混合表示。通过优化变分下界,VAE 推断出潜在嵌入和重构概率。

在[188]中,提出了一个带有两个额外模块的 VAE:重新编码器和潜在约束网络(VELC)。将重新编码器添加到 VAE 结构中以获得新的潜在向量。通过采用这种更复杂的架构,可以在原始空间和潜在空间中最大化异常分数(重构误差),以便可以准确地对正常样本进行建模。此外,在潜在空间应用 VELC,使模型不会重构未经训练的异常观测。因此,它生成类似于训练数据的新潜在变量,有助于区分正常数据和异常数据。VAE 和 LSTM 被集成为 PAD [31] 中的单个组件,以支持无监督异常检测和稳健预测。VAE 显著减少了噪声对预测单元的影响。至于 LSTM,它们帮助 VAE 保持窗口之外的长期序列。此外,谱残差(SR)[82] 被输入到管道中以增强性能。在每个子序列中,SR 为状态分配权重,显示正常程度的程度。

TopoMAD(面向拓扑的多变量时间序列异常检测器)[78] 结合了 GNN、LSTM 和 VAE,用于在具有时空学习的云系统中检测无监督异常。TopoMAD 是一个随机 seq2seq 模型,它从云系统中整合拓扑信息以生成基于图的异常表示。因此,两个代表性的图神经网络(GCN 和 GAT)被替换为 LSTM 单元的基本层,以捕获拓扑的空间依赖关系。检查部分标记信息变得更加重要,以便检测异常[100]。在半监督 VAE-GAN [135] 模型中,LSTM 被作为层集成到 VAE 中,以捕获长期模式。编码器、生成器和鉴别器同时训练,从而利用编码器的映射和鉴别器的能力。此外,通过将 VAE 重构差异与鉴别器结果相结合,可以更好地区分正常数据中的异常。
在[177]中,提出了一种变分Transformer作为多变量时间序列数据无监督异常检测的技术。该模型通过自注意力机制提取相关性,而不是构建特征关系图来捕获相关信息。由于多变量时间序列的降维和序列之间的稀疏相关性,模型的性能得到了改善。Transformer的位置编码,在该模型中称为全局时间编码,将时间序列和周期数据结合起来,以捕获长期依赖关系。多尺度特征融合使模型能够通过整合来自多个时间尺度的特征信息获得更稳健的特征表达。通过其残差变分自编码器模块,该模型使用具有规律性的稳健局部特征对隐藏空间进行编码。由于模块的残差结构,KL散度得到缓解,模型生成的下限得到改善。

3.3.3 生成对抗网络(GAN)。

生成对抗网络(GAN)是一种基于博弈论的生成建模的人工智能算法[68]。在生成模型中,探索训练样本,并学习生成这些样本的概率分布。通过估计的分布,生成对抗网络可以生成更多的示例,如图12所示。假设我们将生成器称为 G G G,鉴别器称为 D D D。为了训练生成器和鉴别器,使用以下极小极大博弈:

min ⁡ G max ⁡ D V ( D , G ) = E x ∼ p ( X ) [ log ⁡ D ( X t − w + 1 : t ) ] + E z ∼ p ( Z ) [ log ⁡ ( 1 − D ( Z t − w + 1 : t ) ) ] \begin{equation*} \min _{G} \max _{D} V(D, G)=\mathbb{E}_{x \sim p(X)}\left[\log D\left(X_{t-w+1: t}\right)\right]+\mathbb{E}_{z \sim p(Z)}\left[\log \left(1-D\left(Z_{t-w+1: t}\right)\right)\right] \tag{24} \end{equation*} GminDmaxV(D,G)=Exp(X)[logD(Xtw+1:t)]+Ezp(Z)[log(1D(Ztw+1:t))](24)

其中 p ( x ) p(x) p(x)是输入数据的概率分布, X t − w + 1 : t X_{t-w+1: t} Xtw+1:t是训练集中的滑动窗口,图12中称为真实输入。此外, p ( z ) p(z) p(z)是生成变量的先验概率分布, Z t − w + 1 : t Z_{t-w+1: t} Ztw+1:t是从具有相同窗口大小的随机空间中获取的生成输入窗口。

尽管GAN已被应用于各种目的(主要是研究),但由于依赖于博弈论,与大多数生成建模方法不同,它们仍然涉及独特的挑战和研究开放问题。通常,基于GAN的模型考虑到对抗学习使鉴别器对当前数据集之外的数据更敏感,使得对这些数据的重建更具挑战性。BeatGAN [196] 能够在没有标签的情况下,通过结合自编码器和GAN,在案例中稳健地规范其重建。此外,使用时间序列扭曲方法通过在训练数据集中进行速度增强,提高了检测准确性,并使BeatGAN对涉及时间序列数据中的时间扭曲的变化具有稳健性。研究表明,BeatGAN可以准确检测心电图和传感器数据中的异常。

然而,GAN的训练通常很困难,需要仔细平衡鉴别器和生成器[103]。基于对抗训练的系统由于不稳定性和难以收敛而不适合在线使用。通过Adversarial Autoencoder Anomaly Detection Interpretation(DAEMON)[34],可以基于对抗生成的时间序列检测异常。DAEMON自编码器的训练包括三个部分:首先,通过一维CNN对多变量时间序列进行编码。然后,将先验分布应用于潜在向量,而不是直接解码隐藏变量,并使用对抗策略将隐藏变量的后验分布拟合到先验分布。这是因为如果模型以前没有观察到相同的模式,直接解码潜在向量并使用重建误差将无法准确重建时间序列。随后,通过解码器生成重建的时间序列。另外,还并行使用另一种对抗训练程序,以减少原始值和重建值之间的差异。它通过计算每个度量的重建误差并根据一种称为重建折扣累积增益(RDCG@P%)的新度量选择具有最高重建误差的前k个度量来确定根本原因,RDCG@P%利用了归一化折扣累积增益(NDCG)。NDCG是与网络搜索引擎算法或相关应用程序相关的排名质量度量。

图12. 生成对抗网络(GAN)的概述,由两个主要组件组成:生成器和鉴别器。生成器构建与鉴别器输入直接相连的时间序列的虚假输入窗口。鉴别器通过使用生成的实例作为负训练示例来区分真实时间序列和虚假窗口。可以通过结合经过训练的鉴别器和生成器来计算综合异常分数。

MAD-GAN(具有GAN的多变量异常检测)[110]是基于通用对抗网络(GAN)的模型。它通过LSTM-RNN捕获时间序列分布之间的时间关系,LSTM-RNN既用作生成器又用作鉴别器,并同时考虑整个数据以捕获它们之间的潜在交互。为了检测异常,同时使用重建误差和鉴别损失。FGANomaly [54](Filter GAN)通过在训练之前使用伪标签筛选可能的异常样本,减少了传统基于AE和GAN的异常检测模型过拟合问题,从而更准确地捕获正常分布。生成器还具有自适应权重损失的目标,该目标在训练过程中根据重建误差动态分配不同点的权重。通过使用这种训练目标,模型可以更多地关注合理的正常数据,从而减轻过拟合问题。

3.3.4 Transformer。

提出了一种带有注意力机制的异常Transformer [185],用于捕获关联差异,通过同时对每个时间戳的先验关联和序列关联进行建模,使得罕见异常更易于区分。从这个角度来看,异常更难与整个系列连接,而正常性更容易与相邻时间戳连接。先验关联使用高斯核估计邻近集中归纳偏差,而序列关联使用从原始数据中学习的自注意力权重。除了重建损失外,还设计了一种MINIMAX方法,以增加关联差异的正常-异常判别程度。TranAD [171]是另一个基于Transformer的异常检测模型,具有自条件和对抗训练。由于其架构,它在处理大量输入时既高效又稳定。当偏差太小时,即数据接近正常时,基于Transformer的编码器-解码器网络可能无法检测异常。通过在TranAD中放大重建误差的对抗训练策略可以克服这个问题。此外,用于稳健多模态特征检索的自条件可以实现训练稳定性并促进泛化。

Li等人[113]提出了一种名为Dilated Convolutional Transformer GAN(DCT-GAN)的无监督方法。在这项研究中,他们使用Transformer处理时间序列数据,使用基于GAN的模型重建样本和检测异常,并使用扩张CNN结构从潜在空间提取时间信息。它结合了几个不同尺度的Transformer生成器,以在基于GAN的框架内获得粗粒度和细粒度信息,以提高其泛化能力。该模型通过基于权重的机制使多种异常兼容,并集成生成器。此外,MT-RVAE [177] 从Transformer的序列建模和VAE能力中受益,这两种能力都分类在这两种架构中。

3.4 混合模型

这些模型将基于预测的模型与基于重建的模型结合起来,以获得更好的时间序列表示。根据第3.2节和第3.3节,基于预测的模型使用下一个时间戳的预测,而基于重建的模型使用整个时间序列的潜在表示。通过使用联合目标函数,可以同时优化这两种模型。

3.4.1 自编码器(AE)。

3.4.2 循环神经网络 (RNN).

研究人员利用 TAnoGan [13] 开发了一种方法,可以在提供有限数量的示例时检测时间序列中的异常。TAnoGan 已经使用了涵盖各种主题的 46 个 NAB 时间序列数据集进行评估。实验证明,当通过对抗训练挑战时间序列数据时,基于 LSTM 的 GAN 可以胜过基于 LSTM 的 GAN。

3.4.3 图神经网络 (GNN).

在 [195] 中,提出了两个并行的图注意力 (GAT) 层,用于自监督多变量时间序列异常检测,这将提取不同时间序列之间的相关性(指标间的依赖关系),并学习时间戳之间的关系(时间依赖性)。该模型通过定义一个综合目标结合了基于预测和基于重构的模型。预测模型仅预测一个点,而重构模型学习整个时间序列的潜在表示。该模型可以诊断异常时间序列(可解释性)。融合稀疏自编码器和图网络 (FuSAGNet) [75] 是一个框架,将 SAE 重构和 GNN 预测融合在一起,以发现多变量数据中的复杂类型的异常。FuSAGNet 结合了 GDN [46],但在每个过程中嵌入传感器,然后跟随循环单元以捕获时间依赖性。通过学习循环传感器嵌入和输入的稀疏潜在表示,GNN 在测试时间预测预期行为。

表 3. 主要用于时间序列异常检测的公共数据集和基准。第一列的名称中有直接超链接到它们的名称。

1 MTS/UTS: 多变量/单变量, 2 { }^{2} 2 样本数: 样本总数, 3 { }^{3} 3 实体数: 不同时间序列的数量, 4 { }^{4} 4 维数: MTS 中指标的数量

4 数据集

本节总结了用于时间序列异常检测的数据集和基准,为时间序列异常检测研究人员提供了丰富的资源。其中一些数据集是专门用于异常检测的数据集,而一些是通用的时间序列数据集,我们可以在异常检测模型评估中使用,只需做一些假设或定制。我们可以根据多个方面和它们的自然特征对每个数据集或基准进行表征。在这里,我们收集了经典和最新深度模型用于时间序列异常检测的 48 个知名和/或高引用数据集。这些数据集根据以下属性进行表征:

  • 数据生成的性质,可以是真实的、合成的或组合的。
  • 实体数量,即每个数据集中独立时间序列的数量。
  • 每个数据集或基准的多样性类型,可以是多变量、单变量或两者的组合。
  • 维数,即数据集中实体的特征数量。
  • 数据集中所有实体的样本总数。
  • 数据集的应用领域。

请注意,一些数据集会不时由其作者和贡献者进行更新。我们考虑并报告了数据集及其属性的最新更新。表 3 显示了所有 48 个数据集及每个数据集的所有提及属性。它还包括超链接到下载数据集最新版本的主要来源。

有关这些数据集的更详细信息可以在此 Github 仓库找到:https://github.com/zamanzadeh/tsanomaly-benchmark。

5 深度时间序列异常检测的应用领域

一个应用通常通过一系列生成过程生成数据,进一步反映系统操作或提供关于实体的观察信息。生成过程的异常行为结果就是异常。换句话说,异常通常揭示了用于生成数据的系统和实体的异常特征。通过识别这些异常特征,我们可以从不同的应用中获得有用的见解。以下深度模型根据它们用于的应用进行分类。

5.1 物联网 (IoT)

作为智能世界的一部分,物联网 (IoT) 在监控用于电厂和处理紧急情况的各种工业设备中发挥着日益重要的作用 [142]。分析数据异常可以识别需要人类关注的环境情况,揭示在清理传感器数据时的异常值,或通过预过滤数据的不良部分来节省计算资源。Greenhouse [109] 在大量 IoT 时间序列上应用多步预测 LSTM。[36] 提出了一种半监督的分层堆叠 TCN,旨在检测智能家居通信中的异常。由于它们使用离线学习,这些方法对输入分布的变化不具有抵抗力。

在工业物联网 (IIOT) 中,产生了大量数据,这些数据对监控底层设备的状态和提升运行性能至关重要。[192] 提出了一种基于 LSTM 的模型,用于分析和预测来自 IIoT 设备的传感器数据,以捕获与故障周围时间跨度有关的信息。[97] 使用真实的工业 IIoT 时间序列执行无监督的异常检测,例如制造 CNC 和 UCI 时间序列,使用部署在边缘计算环境中的 Squeezed Convolutional Variational Autoencoder (SCVAE)。

5.2 服务器机器监控和维护

云系统推动了 IT 行业微服务架构的发展。这种架构有许多优势,包括独立部署、快速交付和灵活扩展性 [53]。在这种架构中的服务故障可能导致一系列故障,对客户体验和公司收入产生负面影响。发生故障后需要尽快进行故障排除。因此,持续监控在线系统中的任何异常是至关重要的。SLA-VAE [88] 使用半监督 VAE 来识别多变量时间序列中的异常,以增强鲁棒性。设计了一个框架,可以基于高度不确定数据的小样本量在线学习和更新检测模型。实验使用了来自两种不同类型游戏业务的云服务器数据。对于每个云服务器,采用了 11 个监控指标,如 CPU 使用率、CPU 负载、磁盘使用率和内存使用率。

在物联网 (IoT) 中,无线传感器网络 (WSNs) 扮演着关键角色。在这种情况下,检测异常是至关重要的,因为它可以揭示有关设备故障和以前未知事件的信息。[121] 提出了一种基于 AE 的模型,用于解决 WSN 中的异常检测问题。该算法旨在在本地检测传感器中的异常,而无需与其他传感器或云进行通信。它通过一个真实的 WSN 室内测试平台进行评估,该平台包括 8 个传感器,连续 4 个月收集的合成异常数据。

5.3 计算机网络

对计算机网络系统进行入侵检测如今已成为网络管理员最重要的任务之一。由于托管在计算机网络上的宝贵资源,入侵检测对组织、政府和我们的社会具有重要作用。传统的滥用检测策略无法检测新的和未知的入侵类型。相比之下,网络安全中的异常检测旨在区分网络系统的非法或恶意事件和正常行为。异常检测可用于构建正常网络行为并检测明显偏离正常模型的新模式。当前大部分关于异常检测的研究基于对正常和异常行为的学习。

内容传送网络 (CDNs) 为网站和云服务提供增强的用户体验和更短的响应时间。为了管理服务质量,CDN 运营商测量和收集诸如流量量、缓存命中率和服务器响应时间等关键绩效指标,以检查和诊断系统功能。SDFVAE (Static and Dynamic Factorised VAE) [43] 是一个噪声容忍的异常检测模型,通过将 KPI 显式分解为动态和静态特征,学习 KPI 的潜在表示。

保护公司计算机网络的一个重要部分是使用网络入侵检测系统 (NIDS) 来检测不同的安全漏洞。当需要增加人类互动并减少检测准确性时,当代网络的可行性和可持续性受到挑战。NIDS 可以监视和分析网络流量,并在检测到入侵时发出警报。在 [95] 中,他们使用深度学习技术从未标记的网络流量数据中获得高质量的特征表示。然后将这些特征应用于基于小型但标记数据集的正常和异常流量记录的监督分类。在这个模型中,通过使用自学习,一种基于稀疏自编码和 soft-max 回归的深度学习技术,开发了一个 NIDS。它依赖于源自网络流量的 KDD Cup 99 数据集 [163],包括正常流量和攻击流量,如 DoS、Probing 以及 User-to-Root (U2R) 和 Root-to-Local (R2L)。此外,[8],一种受限制的
随着移动数据流量和连接设备以及应用程序数量的快速增长,建立一个能够有效预测和检测异常的网络管理系统变得必不可少。在这些网络中,延迟的一个衡量标准是探针与监视无线电可用性的中央服务器之间的往返延迟(RTT)。RCAD [6] 提出了一个分布式架构,用于无监督检测 RTT 异常,特别是 RTT 的增加。它采用分层时间记忆(HTM)算法构建预测模型。

5.4 城市事件管理

交通异常,如交通事故和意外人群聚集,如果不能及时处理,可能会危及公共安全。在早期检测交通异常可以有益于市民的生活质量和城市规划。然而,交通异常检测面临两个主要挑战。首先,由于交通数据的复杂时空特征,对交通动态进行建模具有挑战性。其次,交通异常的标准可能会随着地点和时间的不同而变化。张等人 [190] 提出了一个时空分解框架,用于检测城市异常。使用图嵌入算法导出空间和时间特征,以适应不同的地点和时间。一个具有全连接核心的三层神经网络聚合空间和时间特征,并以半监督方式估计城市行为的正常成分。

[47] 提出了一个基于时空图卷积对抗网络(STGAN)的交通异常检测模型,其中包括一个时空生成器和一个时空鉴别器,用于评估输入序列是否真实。时空生成器可用于捕获交通数据的时空依赖关系。有三个独立模块:趋势、外部和最近。在趋势模块中,使用 LSTM 学习长期时间特征。外部模块将外部特征作为输入,并构建为全连接层。由于相邻数据之间存在强烈的空间和时间相关性,生成器和鉴别器的一个基本组成部分是最近模块,利用图卷积门控循环单元(GCGRU)帮助它们学习短期时空特征。三个模块的输出使用图卷积网络(GCN)层组合以获得最终预测结果。开发了一个位置感知和时间感知的异常分数。

为了有效建模动态多变量数据,提出了 CHAT [85]。在 CHAT 中,作者们基于分层注意力网络模型城市异常预测问题。事实上,他们的架构将双向循环层(BiLSTM)与时间注意力机制相结合,以捕获与预测未来异常相关的异常信息。此外,他们设计了一个交互式注意力机制,用于学习区域、异常类别和子序列之间的交互作用。Uber 使用端到端神经网络架构进行不确定性估计 [197]。为了提高异常检测的准确性,提出的不确定性估计用于衡量特殊事件(如假期)的不确定性。当将不确定性信息纳入异常检测模型时,在高不确定性事件期间减少了误报,从而提高了准确性。

智能交通系统中最具挑战性的任务之一是预测交通速度。在城市地区使用预测交通的导航系统可以帮助驾驶员避免潜在的拥堵,缩短出行时间。GTransformer [120] 的目标是研究如何将 GNN 与注意力机制结合以提高交通预测的准确性。此外,TH-GAT [86] 是专为此目的设计的时间分层图注意力网络。总的来说,该概念涉及将原始道路网络与能够模拟分层区域结构的区域增强网络相结合。

5.5 天文研究

随着天文观测和数据处理技术的进步,大量数据呈指数增长。通过对星图进行一系列处理步骤生成“光变曲线”。研究光变曲线有助于作为一种新方法来检测异常的天文事件 [115]。在 [191] 中,提出了一种用于预测光变曲线的 LSTM 神经网络。

5.6 航空航天

由于航天器的复杂性和成本,未能在飞行过程中检测到危险可能会导致严重甚至灾难性的破坏。在这种情况下,存在一个关键的异常检测系统,用于在没有足够措施时警示操作工程师。在 [129] 中,提出了一个基于变压器的模型,其中包括两个新颖组件,即同时更新时间戳的注意力机制和用于提前检测异常的屏蔽策略。在 NASA 遥测数据集上进行了测试。

监测和诊断液体火箭发动机(LREs)的健康状况是航天器和车辆安全的最重要关注点,特别是对于载人发射。发动机的故障将直接导致航天发射的失败,造成不可挽回的损失。为了为大型设备如 LREs 和多源数据实现可靠的自动异常检测,冯等人 [61] 建议使用一种用于 AD 的多模态无监督方法,其中包括几个深度 AE 和一个跳跃连接的 AE 构成的统一框架,所提出的方法集成了内部融合、外部融合和决策融合。

5.7 自然灾害检测

实时地震检测需要一个高密度网络,以充分利用廉价传感器。在过去几年中,低成本加速度传感器已被广泛用于地震检测。为了准确实时地检测地震波形,必须开发一种检测算法,能够分析和区分地震波形和非地震波形。因此,Petrol 等人 [141] 提出了使用 CNN 来检测地震并从俄克拉荷马州两个本地站记录的现有地震信号中定位地震。使用深度 CNN,Phasenet [198] 能够确定地震波在存档中的到达时间。在 CrowdQuake [89] 中,提出了一个卷积-循环神经网络(CRNN)模型作为核心检测算法。该方法依赖于数百到数千个低成本加速度传感器,这些传感器分散在大面积区域内,以实时检测地震。此外,过去的加速度数据可以存储在数据库中,并进行事后分析,以识别可能被实时检测遗漏的地震。在该模型中,可以定期识别异常传感器,这可能会影响地震事件。

地震预测在很大程度上依赖于地震前兆数据。与地震前兆相关的异常可以分为两大类:趋势变化和高频变异。当趋势不遵循其正常周期演变时,称为趋势变化。高频扰动指的是观测中突然发生的高频、大幅度的变化,通常呈现不规则模式。蔡等人 [21] 利用 LSTM 单元开发了一个用于正常数据的预测模型。此外,预测误差被用来确定行为是正常还是异常。LSTM 网络的进一步优势包括能够直接检测地震前兆数据,而无需详细的预处理。

5.8 医疗与健康

随着电子健康记录的广泛应用,对能够有效处理临床时间序列数据的预测模型的重视日益增加。随着医疗技术的不断改进,更加积极的方法被采用来在生病之前预测和减轻风险,从而进一步改进已经可靠的医疗系统。这些方法旨在分析生理时间序列,识别疾病风险,并确定需要采取的缓解措施。[176] 使用多个卷积层从输入中提取有用特征,然后将这些特征输入到多元高斯分布中以检测异常。

心电图(ECG)信号经常用于评估心脏健康,医疗专业人员会手动分析产生的时间序列信号,以检测是否发生任何心律失常。像心脏这样的复杂器官可能引起许多不同的心律失常。因此,采用一种用于分析 ECG 信号的异常检测方法将非常有益,这些方法在 [96]、[196] 和 [28] 中开发。

心血管疾病(CVDs)是世界上导致死亡的主要原因。检测异常心率可以帮助医生找到患者的心血管疾病。Rubin 等人 [147] 使用 CNN 开发了一个基于深度学习的异常心跳自动识别系统。与其他流行的深度模型如 CNN 相比,RNN 在捕获心跳序列的时间特征方面更有效。在 [147] 中提出了使用心音图信号进行异常心跳检测的研究。已经证明 RNN 能够在噪声环境中产生有希望的结果。此外,Latif 等人 [106] 使用 RNN,因为它们能够在嘈杂环境中模拟顺序和时间数据,从而自动检测异常心跳。[30] 提出了一种模型,使用经典的回声状态网络(ESN) [94] 在一个不平衡的单变量心率数据集上进行训练,这代表了两种经典的储备计算模型之一,其中循环神经网络作为储备。

5.9 能源

净化和精炼必然会影响各种石油产品。关于这一点,[63] 使用基于 LSTM 的方法来监测和检测包括来自气油厂加热回路(GHL)传感器和控制系统信号的多变量工业时间序列中的故障。该提出的网络架构中使用了两个堆叠的 LSTM 层以及一个线性输出层。LSTM 用于基于时间信息执行序列到序列的预测。同样,根据 Wen 和 Keyes [181],使用 CNN 来检测时间序列异常,采用迁移学习框架来解决数据稀疏问题。结果在包含针对公用事业系统的网络攻击数据的 GHL 数据集 [63] 上进行了演示。

公用事业公司使用相量测量单元(PMU)进行电力系统监测会增加网络攻击的可能性。在 [14] 中,通过 PMU 数据包生成的多变量时间序列数据中检测到与不同事件对应的异常,例如线路故障、跳闸、发电和负载等。在每个状态估计周期之前,CNN 基础的过滤器可以在状态估计之前去除虚假数据,提供额外的安全层。因此,这有助于运营商识别有针对性的网络攻击,并做出更好的决策以确保电网可靠性。

建筑物能源管理可以提高能源效率,延长设备寿命,减少能源消耗和运营成本。Fan 等人 [59] 提出了一种基于自动编码器的集成方法,用于分析建筑物中的能源时间序列,并检测意外消耗模式和过度浪费。该方法已在建筑物冷却负荷和制冷机组电力消耗上进行了测试。

5.10 工业控制系统

系统调用可能是由定期计划的任务生成的,这是给定过程事件的结果,有时是由事件触发的中断引起的。此外,如果过程是事件驱动的,它可能具有快速和慢速的特性,这使得难以对其正常行为进行建模。类似于此,当建模实时过程时,时间戳属性是模拟响应时间和执行时间约束的最佳方式。使用系统调用信息构建配置文件很困难,因为一些过程是时间驱动的、事件驱动的或两者兼有。

THREAT [58] 通过利用属性和系统调用深入探讨系统进程中的异常检测。在内核级别检测异常可以为更复杂的机器之间的交互提供新的见解。通过从系统调用中提取有用特征来扩大要检测的异常范围。随后,开发了一种 MIMO(多输入多输出)架构,以扩展模型的范围,并响应更深层次抽象可用的威胁范围。在这项研究中,基于 MIMO 的模型和扩展的特征集不仅有助于增加异常检测范围,还有助于理解一种类型的异常如何影响另一种旨在检测不同类型异常的模型的输出。

提出了基于 GAN 的异常检测和定位框架 [39],以及一种称为距离图像的多变量时间序列转换方法。多变量时间序列可以转换为 2D 图像以利用编码器和解码器。生成器可以学习距离图像之间的映射,从而可以通过卷积滤波器分析时间序列数据的时间关联以及多个变量之间的相关性。逐点卷积编码器确保了每个时间序列的时间信息被编码,以及设备传感器之间的相互关系。此外,残差 2D 图像可用于图像中的异常定位。

Hsieh 等人 [83] 实施了基于 LSTM 的自动编码器来检测生产设备组件中发生的多变量流的异常。在这种技术中,LSTM 网络用于对实际值进行编码和解码,并评估重建值与实际值之间的偏差。使用 C N N \mathrm{CNN} CNN 处理从半导体制造过程中生成的多变量时间序列是 [98] 模型的基础。此外,[84] 中提出了 MTS-CNN 来检测异常晶圆,并为半导体生产中的根本原因分析提供有用信息。生成不同长度的滑动窗口以提高多样性,并通过堆叠卷积池化层学习设备传感器的关键特征。

5.11 机器人技术

在现代制造业中,工业机器人发挥着越来越重要的作用,因为它们提高了生产效率和质量。随着生产线对机器人的依赖程度不断增加,任何机器人的故障都可能导致陷入灾难性境地,而有些故障很难识别。因此,必须对工业机器人进行维护,以确保高性能。为了在机器人完全停止工作之前检测到潜在故障,需要一种实时方法,通过从机器人收集时间序列来持续跟踪机器人。在 [32] 中提出了一种滑动窗口卷积变分自动编码器(SWCVAE),以无监督的方式在多变量时间序列中空间和时间上检测异常。

许多残疾人需要护理人员的身体帮助,尽管一些人类护理可以被机器人替代。机器人可以帮助进行日常生活活动,如喂食和刮胡子。此外,缺乏故障检测系统可能会导致机器人的使用减少,因为它们潜在的故障成本。通过检测和停止辅助任务中的异常执行,可以预防或减少潜在危险。LSTM-VAE 中的分析 [140] 包括来自 24 个个体的 1,555 次机器人喂食执行,包括 12 种异常类型。STORNs Sölch 等人 [158] 是基于 VAE 的模型,记录了 Rethink Robotics Baxter 机器人臂的七个关节的联合配置进行训练和测试。目标分布包括在拾取放置任务期间以 15   H z 15 \mathrm{~Hz} 15 Hz 收集的 1000 个无异常样本。通过手动发送随机命令来收集的 300 个样本用于测试目的。

5.12 环境管理

在海洋工程中,设计了在或靠近海洋中的结构和系统,例如海上平台、码头和港口、海洋波能转换以及水下生命支持系统。作为设计和选址阶段的一部分,需要分析长期历史海洋观测数据,并需要对周围海洋环境进行实时监测。海洋观测系统(OOS)通过在高湿度、盐雾和振动等恶劣条件下工作的传感器和设备提供海洋数据。为了防止由于机器总故障甚至自然灾害而造成巨大损失,有必要及早检测 OOS 异常。OceanWNN 模型 [178] 利用一种新颖的基于 WNN 的(小波神经网络)方法,在没有任何标记训练数据的情况下检测海洋固定观测时间序列中的异常。所提出的模型可以实时工作,使用检测新未知异常的两种方法(观测和预测)。通过中国国家海洋试验场对所提出方法进行验证。

污水处理厂(WWTPs)在保护环境方面发挥着至关重要的作用。然而,由于其高能耗,这些工厂需要最佳运行以最大化效率并最小化能源消耗。因此,早期故障检测和管理起着至关重要的作用。[126] 使用基于 LSTM 的方法监测过程并检测集体故障,优于先前的方法。此外,能源管理系统必须持续管理气体存储和运输,以减少费用并保护环境。[161] 使用基于 CNN 的端到端模型在管道中实现内部流噪声泄漏检测器。

6 讨论和结论

本节的目的是探讨我们在第 2.4 节中描述的时间序列中几种类型异常检测所面临的一些主要挑战。与大多数任务涉及大多数、规律模式不同,异常检测侧重于少数、不可预测和不寻常事件,这带来了一些挑战。以下是在使用深度学习模型检测时间序列数据中的异常时必须克服的一些挑战:

  • 现实世界中系统行为高度动态,并且取决于当时的环境。因此,由于时间序列数据的非平稳性和数据分布的变化,处理时间序列数据存在挑战。这意味着深度学习模型可以实时检测异常。
  • 在多变量时间序列数据中检测异常具有特殊挑战,因为它需要同时考虑时间依赖性和指标之间的关系。
  • 在没有标记异常的情况下,需要无监督或半监督方法。由于这一点,大量正常实例被错误地识别为异常。因此,一个关键挑战是找到一种机制来最小化误报并提高检测的召回率。这被认为是未能检测异常所带来的显著成本。
  • 除了在文献中很少被提及外,定期发生的异常使检测变得更具挑战性。周期子序列异常是随时间重复的子序列 [143]。与点异常检测相比,周期子序列异常检测技术可以在诸如欺诈检测之类的领域中得到应用,以识别随时间发生的周期性异常交易。
  • 在许多领域中,正常和异常行为之间的界限并不明确,并且不断发展演变。基于传统学习和深度学习的算法都面临着由于边界缺失而带来的挑战。
  • 随着时间序列数据长度的增加,学习时间序列数据的正常模式并检测异常变得更加复杂。

本研究的主要目标是探索和识别用于时间序列异常检测、工业应用和数据集的最新深度学习模型。在这方面,已经探讨了关于时间序列特征、时间序列中的异常类型以及用于时间序列异常检测的深度学习模型结构的各种观点。基于这些观点,对56个最近的深度模型进行了全面讨论和分类。此外,还讨论了跨多个领域的时间序列深度异常检测应用,以及在这一研究领域中常用的数据集。未来,有必要进行积极的研究工作,以克服我们在本调查中讨论的挑战。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
异常检测是指在大规模数据中发现异常或异常行为的过程。在传统的异常检测方法中,经常会使用基于统计学的方法,如基于阈值的技术或基于规则的技术,来找出与正常模式不一致的样本或事件。然而,这些方法存在一些局限性,比如无法处理非线性关系或隐含的模式,以及对数据的特征进行全面的抽取。 深度分布式时间序列模型则提供了一种创新和强大的方法来处理大规模数据的异常检测问题。这种模型将深度学习和概率建模相结合,能够对数据的分布进行建模,并以此来检测异常。在这种模型中,每个时间点的数据样本都被看作是从一个潜在分布中抽取的,而异常数据点则被认为是与这个分布不一致的。 深度分布式时间序列模型的一个优点是它能够从数据中自动学习分布的特征,而不需要手动提取特征。这使得模型更加灵活和适用于各种不同类型的数据。此外,这种模型还可以处理非线性关系和多变量时间序列数据,进一步提高了其异常检测的准确性和可靠性。 另外,深度分布式时间序列模型还可以处理大规模数据集,并且能够进行实时的异常检测。这是因为该模型可以在分布式系统中进行并行计算,并且具备较低的计算和存储需求。这样一来,无论是对于高速数据流还是对于历史数据集,深度分布式时间序列模型都能快速地进行异常检测。 总的来说,深度分布式时间序列模型在大规模数据的异常检测中具有很大的潜力。它能够自动提取数据分布的特征,适应各种类型的数据,处理非线性关系和多变量时间序列数据,并且能够处理大规模数据集并进行实时的检测。通过应用这种模型,我们可以更加准确地识别出异常行为,帮助我们提高数据安全性和业务运营效率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

数智笔记

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

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

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

打赏作者

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

抵扣说明:

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

余额充值