当前位置: 首页 > article >正文

使用多尺度C-LSTM进行单变量时间序列异常检测

使用多尺度C-LSTM进行单变量时间序列异常检测

Anomaly Detection Using Multiscale C-LSTM for Univariate Time-Series

From: Security and Communication Networks Volume 2023, 6597623, pp.12.
DOI: https://doi.org/10.1155/2023/6597623

摘要

计算机在用户上网时生成网络流量数据,设备在相互通信时生成传感器数据。当发生网络入侵或设备故障等事件时,相应的时间序列会表现出异常趋势。通过检测这些时间序列,可以即时发现异常事件,从而确保网络通信的安全。然而,现有的时间序列异常检测方法在处理复杂场景中不同相关度的序列时往往困难重重。本文提出了三种多尺度C-LSTM深度学习模型来高效检测异常时间序列:独立多尺度C-LSTM(IMC-LSTM),其中每个LSTM拥有一个独立的尺度CNN;组合多尺度C-LSTM(CMC-LSTM),即多个尺度CNN的输出被组合成LSTM输入;共享多尺度C-LSTM(SMC-LSTM),即多个尺度CNN的输出共享一个LSTM模型。在多个数据集上的对比实验表明,所提出的三种模型在著名的Yahoo Webscope S5数据集和Numenta Anomaly Benchmark数据集上表现出色,甚至优于现有的基于C-LSTM的最新模型。

1. 引言

在自然界中,有许多与时间相关的统计数据,如人数、动物数量、环境温度等。由这些统计数据形成的序列称为时间序列。类似地,人类社会的许多领域中也存在重要的时间序列,例如:互联网领域的网络流量[ 1 1 1],金融领域的信用卡交易[ 2 2 2],医学领域的心电图[ 3 3 3],交通领域的运输车辆监测数据[ 4 4 4],以及物联网(IoT)领域的设备通信数据[ 5 5 5]。随着科学技术的发展,许多领域生成的时间序列数据与人们的生产和生活越来越紧密相关。
Figure 1: Abnormal time-series is caused by some reason, where the red point is the abnormal point.
图1:由于某种原因导致的时间序列出现异常,其中红点即为异常点。
Figure 1: Abnormal time-series is caused by some reason, where the red point is the abnormal point.

通常,时间序列数据在每个时间段都有其对应的内在规律。如图1所示,当时间序列的固有规律被打破时,该时间序列会变得异常。异常是由不同领域的异常行为造成的数据模式[ 6 6 6]。例如,在互联网领域,这种行为可能表现为非法黑客攻击服务器[ 7 7 7];在医学领域,它可能表现为健康问题[ 8 8 8];在IoT领域,它可能是由于非法攻击或错误配置造成的设备故障[ 9 9 9]。这些行为或事件会破坏时间序列的规律性,导致异常时间序列。因此,时间序列异常分析和检测在网络和设备的稳定运行中发挥着重要作用,减少个人和社会财产损失,促进社会稳定和发展。

自上世纪以来,研究人员提出了许多时间序列异常检测方法,包括各种时间序列统计方法和基于机器学习的方法。随着人工智能技术的快速发展,深度学习算法引起了越来越多的关注。由于深度学习方法可以学习数据的复杂特征,而不对数据的潜在模式做任何假设,因此深度学习已成为时间序列分析的最具吸引力的选择[ 10 10 10]。时间序列异常检测的主要研究方向逐渐从传统的统计机器学习方法转向更强大的深度学习方法。

目前,有两种最具代表性的深度学习算法。一种是卷积神经网络(CNN)[ 11 11 11],在图像领域取得了重大突破。除了可以应用于2D图像数据的2D-CNN外,CNN还包括用于1D序列数据的1D-CNN[ 12 12 12]和用于3D张量数据的3D-CNN[ 13 13 13]。另一种是循环神经网络(RNN)[ 14 14 14],在自然语言处理领域表现出色。RNN有两个变体:长短期记忆(LSTM)[ 15 15 15]和门控循环单元(GRU)[ 16 16 16]。对于时间序列数据,CNN和RNN可以分别有效地提取空间和时间特征[ 17 17 17],从而揭示时间序列中的复杂内部规律。因此,越来越多的研究人员将这两种深度学习算法应用于时间序列异常检测。尽管CNN的卷积层和池化层可以减少时间序列中高频噪声造成的一些干扰,但CNN在提取空间信息时会丢失一些时间信息。类似地,RNN可以有效地提取时间序列的时间信息,但如果序列数据过长或存在一些噪声,RNN无法提取序列元素之间的依赖关系。

近年来,一些研究人员将这两种算法结合起来,使用C-LSTM[ 18 18 18]模型来解决异常检测任务。该模型能够弥补CNN和RNN模型的不足,从而同时提取时间序列的时空信息。它比其他深度学习模型具有更好的异常检测能力,并且目前是时间序列异常检测中最有效的模型之一。然而,现实环境中的时间序列可能在不同阶段具有不同的模式,而现有的固定卷积核大小的模型无法从序列中提取不同的空间信息以处理各种真实场景。因此,构建更加灵活的深度学习模型以检测时间序列异常尤为重要。

基于C-LSTM模型,本文使用不同大小的卷积核替代固定大小的卷积核,以充分提取空间信息。同时,为了探索在包含不同空间信息的时间序列中更合适的时间特征提取方法,我们提出了三种多尺度C-LSTM模型,它们分别构建不同的LSTM结构。每个模型使用具有多个不同卷积核的CNN来提取时间序列特征。第一个模型使用与CNN相同数量的LSTM来从其输出中提取时间特征,称为独立多尺度C-LSTM(IMC-LSTM)。第二个模型只使用一个LSTM来提取不同CNN的组合输出,称为组合多尺度C-LSTM(CMC-LSTM)。最后一个模型使用一个LSTM依次从多个CNN输出的数据中提取时间特征,即这些CNN共享一个LSTM,称为共享多尺度C-LSTM(SMC-LSTM)。为了验证所提三种模型的有效性,我们在多个真实数据集上进行实验,如Yahoo Webscope S5和Numenta Anomaly Benchmark。实验结果表明,三种提出的模型在每个数据集上的表现良好,并且三种模型的整体性能优于现有的基于C-LSTM的模型。

本文的主要贡献包括以下三点:
(1) 使用不同大小的卷积核代替固定大小的卷积核,提高了C-LSTM模型的空间特征提取能力,为互联网等领域生成的时间序列数据提供了更合适的特征提取思路。
(2) 通过创建三种多尺度C-LSTM模型进行时间序列异常检测,并寻找其对应的合适参数,为互联网或IoT设备故障等问题提供了可行的时间序列异常检测方法。
(3) 我们提出的三种模型在多个数据集上的检测能力超过了现有的C-LSTM模型,并且比现有最佳模型运行速度更快,参数更少,使其更适合实际应用。

本文的其余部分组织如下:第2节,我们对各种时间序列异常检测方法进行了分类和讨论。第3节,我们详细描述了三种提出的模型。第4节,我们描述了实验过程的细节,并讨论了实验结果。最后,我们在最后一节总结了本文的内容。

2. 相关工作

时间序列异常检测问题的研究历史悠久。异常检测的方法有很多,Braei 和 Wagner[ 19 19 19] 根据模型的特点将这些方法分为三类:统计模型、机器学习模型和深度学习模型。此外,Kim 和 Cho[ 20 20 20] 根据不同的建模方法将这些方法分类为三类:统计建模、空间特征建模和时间特征建模,其中统计建模使用机器学习模型,而空间特征建模和时间特征建模采用深度学习模型。基于上述考虑,我们将现有的时间序列异常检测模型根据不同的模型类型和建模方法细分为五类:时间序列统计模型、机器学习模型、空间深度学习模型、时间深度学习模型和时空深度学习模型。

时间序列统计模型是根据时间序列数据的统计特征设计的,这些模型可以直观且快速地发现时间异常。一些研究人员使用这些模型解决互联网领域的时间序列异常检测问题。Wu 和 Shao[ 21 21 21] 采用自回归(AR)模型对时间序列数据中的突变进行建模,并通过比较两个相邻的非重叠时间序列窗口来检测异常。Qi 等[ 22 22 22] 使用自回归滑动平均(ARMA)模型分析时间序列的历史特征,其中预测值反映了当前网络状况,预测值与实际值之间的偏差被识别为网络异常。尽管这些模型具有较低的时间复杂度,但它们仅适用于平稳时间序列,不能直接用于分析周期性或非平稳时间序列。

对于非平稳时间序列,建模时需要对时间序列进行差分操作,将其转换为平稳序列,然后使用ARMA模型分析转换后的时间序列。结合差分操作的ARMA模型称为自回归积分滑动平均(ARIMA)[ 23 23 23],并广泛用于时间序列分析。Moayedi 和 Masnadi-Shirazi[ 24 24 24] 使用ARIMA模拟和预测网络流量序列,验证了正常序列和异常序列的预测结果不同。Yaacob 等[ 25 25 25] 将ARIMA预测的网络流量序列与原始序列进行比较,然后将与预测序列距离较大的实际序列视为异常序列。Yu 等[ 26 26 26] 改进了现有的ARIMA,通过滑动窗口建模时间序列的历史数据,然后使用短步长的指数加权平均法进行网页流量预测,以检测与预测流量距离较大的异常流量。这些模型可以应用于差分操作后变为平稳的非平稳时间序列,但对于波动较大的非平稳时间序列,模型的适应性相对较差。此外,差分操作可能破坏原始数据的特征,并且在不同时间段的时间序列的统计特征可能会丧失。因此,统计模型很难捕捉时间序列的内在规律,并将其应用于更复杂的场景。

机器学习模型用于解决许多实际问题,通常被转换为分类、聚类或回归问题。这些模型也广泛应用于各种领域的时间序列数据,但通常需要将序列划分为多个等长的子序列。Ma 和 Perkins[ 27 27 27] 将时间序列异常检测问题转化为一类分类问题,并将一类支持向量机(OC-SVM)的输出结果在不同的相位空间中进行组合,以提高异常检测的鲁棒性。为了解决拒绝服务(DoS)攻击,Ahmed 和 Mahmood[ 28 28 28, 29 29 29] 使用x-means(k-means的变体)和改进的共同聚类算法分别对网络流量进行聚类。实验结果表明,这两种算法优于其他聚类算法。Anton 等[ 30 30 30] 通过主成分分析(PCA)提取网络流量中的特征,然后使用支持向量机和随机森林分类器解决网络入侵问题。这两种分类器都取得了良好的检测结果。Zhou 等[ 31 31 31] 提出了一种称为KSM的异常检测方法,该方法结合了三种模型:k近邻、符号聚合近似和马尔可夫模型。与其他方法相比,该方法能够准确处理大量数据。机器学习模型可以有效提取时间序列特征以处理更复杂的数据,但在建模时,每个时间序列样本仅被视为高维空间中的一个点,每个点的坐标元素彼此独立。然而,时间序列中的正常数据通常与相邻数据具有时间相关性,前一个序列可以影响后一个序列的趋势。因此,机器学习模型难以提取时间序列的高层特征。

空间深度学习模型使用卷积算法等算法捕捉相邻数据之间的相关信息,从而提取数据的空间特征。一些研究人员已经将它们应用于时间序列异常检测。Wen 和 Keyes[ 32 32 32] 采用图像分割中的U-Net模型进行时间序列的异常分割和检测,取得了令人满意的效果。Hwang 等[ 33 33 33] 将CNN和无监督学习相结合,提出了一种称为D-PACK的异常流量检测机制,该机制可以在尽可能少的包和每个包的字节中进行初步检测。其准确率与全面检测没有太大差异,但检测速度大大提高。虽然空间深度学习模型可以提取时间序列数据中相邻数据的相关特征,但它们没有充分利用数据点的时间相关性,因此时间特征的提取仍然是一个值得探索的方向。

时间深度学习模型
时间深度学习模型使用算法如RNN算法来提取数据之间的时间特征。RNN算法及其变体通过记忆之前的数据来提取时间特征,这吸引了许多时间序列研究人员的关注。Cheng 等[ 34 34 34] 将时间序列异常检测问题转化为分类问题,并使用滑动窗口和多尺度LSTM模型提取时间特征,以确定序列是否异常。一些研究人员使用LSTM从历史时间序列数据中预测未来序列,并通过预测序列与实际序列之间的误差[ 35 35 35 37 37 37]来判断序列是否异常。此外,一些研究人员使用重建RNN算法重建时间序列数据,并通过重建序列与原始序列之间的误差[ 38 38 38 40 40 40]来检测异常序列。尽管时间深度学习模型可以有效提取数据的时间特征,但当序列过长或数据噪声较大时,提取完整的时间信息仍然困难。

时空深度学习模型结合了空间深度学习模型和时间深度学习模型,可以全面提取数据的时空信息,更适合于时间序列异常检测。目前,只有少数研究采用了这些模型。Kim 和 Cho[ 20 20 20] 将时间序列异常检测问题转化为二分类问题。他们应用了结合了1D-CNN和LSTM的C-LSTM模型来解决网络流量的异常检测任务。该模型通过CNN减少时间序列的频率,然后通过LSTM从CNN的输出序列中提取时间特征。实验表明,该模型优于其他深度学习模型和机器学习模型。基于C-LSTM模型,Yin 等[ 41 41 41] 提出了一个结合了LSTM编码器-解码器的C-LSTM-AE模型,以解决物联网的时间序列异常检测。实验表明,该模型的异常检测能力超过了其他C-LSTM深度学习模型。

总之,时空深度学习模型是提取时间序列特征的最有效模型之一。然而,现有的基于C-LSTM的模型在提取空间特征方面仍然存在一个缺陷,即这些模型中的卷积核大小是固定的。如果固定的卷积核过小,时间序列的频率和噪声不能有效减少,从而空间信息不能被充分保留。如果固定的卷积核过大,则会丧失更多的时间信息。对于现实场景中的时间序列,不同场景或不同阶段的序列包含的固有规律是不一致的。因此,设计一个具有固定卷积核大小的模型来从时间序列的所有阶段提取特征是困难的。为此,我们计划构建一个多尺度C-LSTM模型,使用不同大小的多个卷积核,以确保在现实场景中对复杂异常序列进行更准确的检测。

3. 提出的模型

在本节中,我们提出了三种多尺度C-LSTM模型,用于时间序列异常检测的二分类问题。我们首先介绍基本模型C-LSTM,然后详细描述三种提出的多尺度C-LSTM模型的构建。

3.1 C-LSTM模型

C-LSTM模型最初由Zhou等[ 18 18 18] 提出,用于文本分类任务。Kim 和 Cho[ 20 20 20] 首次将该模型用于时间序列异常检测任务,并取得了良好的效果。如图2所示,C-LSTM模型主要由CNN层和LSTM层组成。当C-LSTM模型用于提取时间序列特征时,数据将依次进入CNN层和LSTM层。
Figure 2: The architecture of the C-LSTM model: the LSTM layer follows the CNN layer for extracting time-series features.
图2:C-LSTM 模型的架构:LSTM 层跟在 CNN 层之后,用于提取时间序列特征。
Figure 2: The architecture of the C-LSTM model: the LSTM layer follows the CNN layer for extracting time-series features.

CNN层主要由卷积层和池化层组成,在C-LSTM模型中用于提取空间特征,并将输出序列提供给下一层。CNN通过卷积层对数据进行卷积,然后通过池化层提取特征。对于单变量时间序列数据,卷积层使用多个相同大小的卷积核按照步幅对序列进行卷积。卷积操作本质上是线性计算,使得拟合具有更复杂关系的数据变得困难。

因此,卷积操作后通常会添加非线性激活函数(如tanh),以增强卷积层的非线性拟合能力。此外,池化层用于卷积操作后的时间序列特征提取。为了减少重复特征的提取,池化层通常采用相同宽度和步幅的最大池化。

CNN的卷积层和池化层可以充分提取复杂数据的空间信息,并具有平移不变性,这可以在保持原始时间顺序的同时减少时间序列的频率,从而方便后续LSTM层提取时间序列信息。
Figure 3: The internal structure of LSTM cell including input gate it, forget gate ft and output gate ot.
图3:LSTM单元的内部结构,包括输入门 i t i^t it、遗忘门 f t f^t ft和输出门 o t o^t ot
Figure 3: The internal structure of LSTM cell including input gate i t i^t it, forget gate f t f^t ft and output gate o t o^t ot.

LSTM是C-LSTM模型中用于提取CNN输出序列时间特征的RNN变体。与RNN不同,LSTM可以从长期序列中提取信息。在C-LSTM模型中,CNN层输出一个高维序列 x x x。然后,序列 x x x会依次输入到LSTM层的LSTM单元中。如图3所示,LSTM单元由遗忘门 f f f、输入门 i i i、输出门 o o o、细胞状态 c c c和隐藏状态 h h h组成。其中,遗忘门确定在前一个细胞状态中哪些信息可以被遗忘并保留重要的记忆信息,输入门确定哪些输入信息可以保留在当前细胞状态中,输出门确定当前细胞状态中的哪些信息可以存储在隐藏状态中。在时间 t t t,LSTM的输出计算如下:
f t = σ ( W f h t − 1 , x t ) + b f , i t = σ ( W i h t − 1 , x t ) + b i , c ~ t = tanh ⁡ ( W c h t − 1 , x t ) + b c , c t = f t ⊙ c t − 1 + i t ⊙ c ~ t , o t = σ ( W o h t − 1 , x t ) + b o , h t = o t ⊙ tanh ⁡ ( c t ) , (1) f_t = \sigma(W_f h_{t-1}, x_t) + b_f,\\ i_t = \sigma(W_i h_{t-1}, x_t) + b_i,\\ \tilde{c}_t = \tanh(W_c h_{t-1}, x_t) + b_c,\\ c_t = f_t \odot c_{t-1} + i_t \odot \tilde{c}_t,\\ o_t = \sigma(W_o h_{t-1}, x_t) + b_o,\\ h_t = o_t \odot \tanh(c_t),\\ \tag{1} ft=σ(Wfht1,xt)+bf,it=σ(Wiht1,xt)+bi,c~t=tanh(Wcht1,xt)+bc,ct=ftct1+itc~t,ot=σ(Woht1,xt)+bo,ht=ottanh(ct),(1)

其中 f t f_t ft i t i_t it o t o_t ot 分别表示遗忘门、输入门和输出门,这些门通过 sigmoid 函数计算; c t c_t ct 表示当前时间的细胞状态值; h t h_t ht 表示隐藏状态的输出值;星号 ⊙ \odot 表示向量之间的 Hadamard 积;其他矩阵 W W W 和向量 b b b 表示向量的线性变换。

细胞状态以循环的方式保留每一时刻的数据信息,而隐藏状态选择细胞状态记忆中的信息来输出最终结果。因此,LSTM 使用细胞状态和隐藏状态来存储和选择数据信息,这可以有效提取时间序列的时间特征。

C-LSTM 模型结合了 CNN 和 LSTM,从时间序列数据中提取更高层次的特征,为时间序列问题指明了发展方向,并为时空深度学习模型的发展奠定了基础。

3.2 提出的多尺度 C-LSTM 模型

为了更有效地提取时间序列信息,考虑到时间序列数据中存在不同的空间信息,我们将在 C-LSTM 模型的 CNN 层中将固定大小的卷积核更改为各种不同大小的卷积核。同时,为了探索适合提取包含不同空间信息的时间序列的时间信息的方法,我们构建了三种不同 LSTM 层的多尺度 C-LSTM 分类模型,用于时间序列异常检测:独立多尺度 C-LSTM(IMC-LSTM)、组合多尺度 C-LSTM(CMC-LSTM)和共享多尺度 C-LSTM(SMC-LSTM)。

3.2.1 IMC-LSTM 模型

IMC-LSTM 模型的结构如图4 所示,该模型由三个模型层组成:CNN、LSTM 和深度神经网络(DNN)。CNN 层使用各种不同大小的卷积核对序列数据进行卷积操作。为了避免信息丢失并便于后续操作,这些卷积核的大小设置为奇数。设不同大小的卷积核的种类数为 K K K,则第 k k k 种( 1 ≤ k ≤ K 1 \leq k \leq K 1kK)卷积核的大小为 2 k − 1 2k - 1 2k1。每种卷积核的数量设置为 N N N,步幅固定为 1,以充分提取空间信息。为了保持卷积核输出的序列长度一致,在卷积操作之前,需要在输入序列的两端填充零。然后,使用 K K K 个 tanh 激活函数和 K K K 个大小和步幅为 M M M 的最大池化层分别对由 K K K 个卷积核输出的 N N N 维序列进行空间特征提取。
Figure 4: .e architecture of IMC-LSTM model, where each scale of CNN is connected to an independent LSTM.
图 4:IMC-LSTM 模型的架构,其中 CNN 的每个尺度都连接到一个独立的 LSTM。
Figure 4: .e architecture of IMC-LSTM model, where each scale of CNN is connected to an independent LSTM.

在 LSTM 层中,使用 K K K 个隐藏层大小为 N N N 的 LSTM 分别提取不同 CNN 输出序列的时间特征。然后,将 K K K 个 LSTM 的输出数据连接成一个大小为 K × N K \times N K×N 的向量,并送入 DNN 层。

在 DNN 层中,使用 dropout 算法在训练过程中随机丢弃 LSTM 层输出的 20% 神经元,以减少数据过拟合。同时,将神经元映射到一个 N N N 维的向量。然后,使用 tanh 激活函数来提高拟合能力。最后,将 N N N 维神经元的向量完全连接,以输出二分类结果。

3.2.2 CMC-LSTM 模型

CMC-LSTM 模型的结构如图5 所示。该模型同样由 CNN、LSTM 和 DNN 层组成。其中,CNN 和 DNN 层与 IMC-LSTM 模型完全相同。考虑到 CNN 层输出的 K K K N N N 维序列中,每个序列的相同时间步包含相同瞬间的信息。
Figure 5: The architecture of the CMC-LSTM model, where the combination of the output of multiple scale CNN is used as the input of LSTM.
图 5:CMC-LSTM 模型的架构,其中多尺度 CNN 的输出组合作为 LSTM 的输入。
Figure 5: The architecture of the CMC-LSTM model, where the combination of the output of multiple scale CNN is used as the input of LSTM.

因此,将这些序列在相同时间步连接成一个 K × N K \times N K×N 维的序列,可能有助于 LSTM 层更好地提取时间信息。在 LSTM 层中,与 IMC-LSTM 模型不同的是,该模型使用一个隐藏层大小为 K × N K \times N K×N 的单个 LSTM,并输出一个大小为 K × N K \times N K×N 的向量。

3.2.3 SMC-LSTM 模型

SMC-LSTM 模型的结构如图6 所示,该模型同样包含 CNN、LSTM 和 DNN 层。与前两个模型不同的是,LSTM 层的设计有所不同。在 IMC-LSTM 模型中,三个 LSTM 分别与三个 CNN 相连接。在 CMC-LSTM 模型中,使用一个单一的 LSTM 来接收 CNN 层输出的合并序列。虽然前两个模型有效,但它们都需要构建参数较多的 LSTM 层,且模型占用较大的空间。
Figure 6: The architecture of SMC-LSTM model, where CNNs of multiple scales share an LSTM.
图 6:SMC-LSTM 模型的架构,其中多个尺度的 CNN 共享一个 LSTM。
Figure 6: The architecture of SMC-LSTM model, where CNNs of multiple scales share an LSTM.

为了减少 LSTM 层的参数,SMC-LSTM 模型采用了一个隐藏层大小为 N N N 的单一 LSTM。该模型仅使用一个 LSTM 来共享权重,并依次从不同 CNN 输出的序列中提取特征。其权重还结合了来自不同 CNN 输出序列的特征,这使得该模型同样适用于像前两个模型那样的复杂序列特征提取。

4. 实验

在本节中,我们使用公开可用的时间序列数据集对提出的模型进行实验,并与其他深度学习模型进行比较。所有实验均在一个由 Intel® Core™ i5-8250U CPU、GeForce MX150 GPU 和 8 GB RAM 组成的设备上进行。在软件方面,我们使用 Python 3.7.11 编程环境、深度学习框架 PyTorch 1.7.1、数值计算包 NumPy 1.21.2 和 Pandas 1.3.4。

4.1 数据集

我们使用了 Yahoo 和 Numenta 提供的时间序列数据集:Yahoo Webscope S5 数据集 [42] 和 Numenta Anomaly Benchmark (NAB) [43]。Yahoo Webscope S5 数据集包含四个子数据集:A1、A2、A3 和 A4,其中 A1 是实际场景数据集,其余为人工数据集。NAB 包含七个数据集,包括两个人工数据集和五个真实数据集。由于真实数据集更适合实际场景,我们选择了总共六个真实数据集进行实验,分别是 Yahoo 中的 A1 和 NAB 中的 Ad、AWS、Known、Traffic 和 Tweets。这些数据集标注了正常和异常点,如下所述:

  • A1:该数据集包含来自 Yahoo 的 67 个网络流量时间序列,其中大多数包含约 1,400 个观测值,少数序列包含不到 1,000 个观测值。
  • Ad:该数据集包含 6 个在线广告点击率序列,每个序列包含约 1,600 个观测值。
  • AWS:该数据集包含来自 Amazon Services 的 CPU 利用率、网络字节和磁盘读取字节等数据。共有 17 个序列,大多数包含超过 4,000 个观测值,少数序列包含超过 1,000 个观测值。
  • Known:该数据集包含 7 个已知异常原因的序列,包括温度传感器数据、CPU 使用率和出租车乘客数量等数据。每个序列包含从几千到几万个观测值不等。
  • Traffic:该数据集包含明尼苏达州双子城地区的实时交通流量数据,包括车辆传感器占用、速度和旅行时间,共有 7 个序列。每个序列包含 1,000 到 2,000 个观测值。
  • Tweet:该数据集包含 Twitter 统计的 10 个代码提及序列,每个序列包含超过 10,000 个观测值。

4.2 数据预处理

由于每个时间序列的数值范围不同,我们在进一步处理之前对每个时间序列的每个维度进行标准化。设时间序列为 x = ( x 1 , x 2 , … , x T ) x = (x_1, x_2, \ldots, x_T) x=(x1,x2,,xT),我们计算每个序列的均值和标准差,然后使用以下公式对序列进行标准化:
x ′ = x − x ˉ s = ( x 1 ′ , x 2 ′ , … , x T ′ ) (2) x' = \frac{x - \bar{x}}{s} = (x_1', x_2', \ldots, x_T') \tag{2} x=sxxˉ=(x1,x2,,xT)(2)
其中 x ˉ \bar{x} xˉ s s s 分别是时间序列 x x x 的均值和标准差。

考虑到真实数据集中异常数据的比例较小,使用序列中的每个个体数据作为样本进行训练模型较为困难。因此,我们需要使用滑动窗口来选择子序列,将异常检测转换为对异常子序列的检测。这一过程可以增加用于分类训练的样本维度,同时提高异常数据的比例。我们将滑动窗口中的子序列作为数据样本。如果子序列中存在异常数据,则将样本标记为异常,其他样本标记为正常。对于每个序列,我们将滑动窗口的大小设为 n n n,步长设为 1,那么每个样本为 X i = ( x i ′ , x i + 1 ′ , … , x i + n − 1 ′ ) X_i = (x_i', x_{i+1}', \ldots, x_{i+n-1}') Xi=(xi,xi+1,,xi+n1) 1 ≤ i ≤ T − n + 1 1 \leq i \leq T - n + 1 1iTn+1。由于每个数据集包含多个序列,对于每个数据集,我们将所有序列的样本合并成一个可以直接用于分类训练的数据集。

4.3 评估指标

我们采用多种传统评估指标来全面评估各种模型的异常检测性能。由于数据集中异常样本的比例较小,为了突出模型的异常检测能力,我们关注异常样本,将异常样本设为正样本,将正常样本设为负样本。真阳性 (TP)、假阳性 (FP)、假阴性 (FN) 和真阴性 (TN) 分别表示正确预测的异常样本数、将正常样本预测为异常样本的数量(即假警报数量)、将异常样本预测为正常样本的数量(即漏检数量)以及正确预测的正常样本数。

基于上述设置,我们使用分类评估指标,如准确率、精确率、召回率和 F1 值来评估模型的实验结果。

  • 准确率 (A):如公式 (3) 所示,该评估指标表示正确预测的比例,其值范围在 [ 0 , 1 ] [ 0,1 ] [0,1]之间。然而,该评估指标在标签不平衡的数据集上表现不佳,仅作为实验中的补充评估。
    Accuracy = T P + T N T P + F P + F N + T N (3) \text{Accuracy} = \frac{TP + TN}{TP + FP + FN + TN} \tag{3} Accuracy=TP+FP+FN+TNTP+TN(3)
  • 精确率 (P):如公式 (4) 所示,该评估指标表示预测为异常的数据中异常数据的比例。其值范围在 [ 0 , 1 ] [0, 1] [0,1]之间,值越高,异常假阳性率越低。
    Precision = T P T P + F P (4) \text{Precision} = \frac{TP}{TP + FP} \tag{4} Precision=TP+FPTP(4)
  • ** 召回率 (R) **:如公式 (5) 所示,该评估指标表示预测为异常的异常数据的比例。其值范围在 [ 0 , 1 ] [0, 1] [0,1] 之间,值越高,异常漏检率越低。
    Recall = T P T P + F N (5) \text{Recall} = \frac{TP}{TP + FN} \tag{5} Recall=TP+FNTP(5)
  • F1 值:如公式 (6) 所示,该评估指标是精确率和召回率的调和平均值,其值范围在 [ 0 , 1 ] [0, 1] [0,1] 之间。只有当精确率和召回率都很高时,F1 值才会很高,即 F1 结合了上述两个指标的性能,更适合对模型性能进行综合评估。
    F 1 = 2 × Precision × Recall Precision + Recall (6) F1 = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}} \tag{6} F1=2×Precision+RecallPrecision×Recall(6)

4.4 结果与分析

在训练模型之前,我们根据原始序列和异常率随机分层抽取了每个数据集的样本,训练集、验证集和测试集的比例为 6 : 2 : 2。最终,我们获得了三个异常数据比例相同的子集,每个子集包含原始序列的数据。表 1 显示了不同滑动窗口下每个数据集的样本大小和异常比例。

对于实验中的每个模型,我们使用 Adam 优化器和相同的训练参数,如表 2 所示。在选择训练好的模型进行测试时,我们根据验证集的 F1 分数从高到低选择最佳模型。如果验证集中有多个相同的 F1 分数,我们基于训练集选择训练模型。最终实验评估使用了在测试集上选定模型的评估结果。

基于上述考虑,我们设置了多个实验来从不同角度充分说明所提模型的合理性和优越性,并将实验代码上传到 GitHub 以供同行评审和实验复现,代码链接为: https://github.com/lyx199504/mc-lstm-time-series。

4.4.1 不同大小卷积核的有效性

为了测试不同大小卷积核的特征提取能力,我们比较了不同大小卷积核的 CNN 和多尺度 CNN(MS-CNN)。与参考文献 [20] 一致,我们将时间序列的滑动窗口大小 n n n 设置为 60 60 60

实验结果如图7 所示。MS-CNN 模型在六个数据集中的五个数据集上 F 1 F1 F1 分数优于 CNN 模型。可以看出,将 CNN 中的固定大小卷积核更换为各种不同大小的卷积核可以更有效地提取时间序列信息。
Figure 7: The F1 score (%) of CNN and MS-CNN.
图 7:CNN 和 MS-CNN 的 F1 分数(%)。
Figure 7: The F1 score (%) of CNN and MS-CNN.

4.4.2 我们模型的参数探索

我们对卷积核类型数 K K K 和每种类型卷积核数 N N N 的参数组合进行了对比实验,以选择合适的参数。在本实验中,我们将时间序列的滑动窗口大小 n n n 设置为 60 60 60,将最大池化大小和步长 M M M 设置为 3 3 3,以平衡训练效率和空间特征的完整性。参数 K K K N N N 将从 2 , 3 , 4 {2, 3, 4} 2,3,4 和$ {16, 32, 48, 64} $的范围中选择。

图8 显示了三种提出的模型在不同参数组合下的实验结果。根据 IMC-LSTM 模型的实验结果,当卷积核的类型和数量都较大时,该模型的性能更好。SMC-LSTM 模型的结果在卷积核数量较多时表现更好。与上述两个模型不同,CMC-LSTM 模型的实验结果与参数组合没有明显的相关性。然而,其实验分数波动较小,整体表现优于其他两个模型。
Figure 8: The F1 scores for di9erent parameter combinations of the three proposed models. Each block represents the experimental F1 score for each parameter combination.
图 8:三个提出的模型的不同参数组合的 F1 分数。每个块代表每个参数组合的实验 F1 分数。
Figure 8: The F1 scores for di9erent parameter combinations of the three proposed models. Each block represents the experimental F1 score for each parameter combination.

在选择每个提出模型的最佳参数组合时,首先考虑 F1 分数较高的模型,当 F1 分数接近时则考虑参数较少的模型。最终,我们获得的最佳参数组合如表 3 所示。

表3:三个模型的最优参数组合:K为卷积核类型数,N为每种类型的卷积核数量。

模型名称K 值N 值
IMC-LSTM464
CMC-LSTM432
SMC-LSTM364
4.4.3 我们模型与基线模型的比较

我们将选定参数的模型与基线模型 C-LSTM 进行了比较。为了确保实验的公平性,我们继续将滑动窗口大小 n n n 设置为 60 60 60,如文献 [20] 所示。

图9 显示了三种提出的模型和 C-LSTM 在每个数据集上的各项评估指标分数,而表 4 显示了每个评估指标的平均分数。这些结果表明,在检测能力方面,三种提出的模型在几乎所有数据集上的评估指标都高于 C-LSTM 模型,且提出模型在六个数据集上的平均分数也远高于 C-LSTM 模型。因此,三种提出的模型在检测能力上优于 C-LSTM 模型,用不同大小的卷积核替代固定大小的卷积核是有效的。
Figure 9: Scores (%) for each evaluation metric for the four models. F1, R, P and A represent the F1, recall, precision, recall and accuracy scores of each model on each dataset, respectively.
图 9:四个模型的每个评估指标的得分(%)。F1、R、P 和 A 分别代表每个模型在每个数据集上的 F1、召回率、精确度、召回率和准确度得分。
Figure 9: Scores (%) for each evaluation metric for the four models. F1, R, P and A represent the F1, recall, precision, recall and accuracy scores of each model on each dataset, respectively.

此外,我们比较了每对模型(例如,模型 A 与模型 B)在每个数据集上的 F1 分数,并在表 5 中列出了每个模型的统计数据:单元值表示行中模型在列中模型的表现更好的数据集数量。可以看出,IMC-LSTM 和 CMC-LSTM 模型在超过一半的数据集上 F1 分数优于其他模型,而 CMC-LSTM 模型的 F1 分数在大多数数据集上优于其他模型。这些结果表明,CMC-LSTM 模型的结构可能比其他两个模型更适合提取时间序列特征。

4.4.4 不同序列长度下的模型比较

为了展示滑动窗口大小对模型性能的影响,我们设置了不同大小的滑动窗口( n = 20 , 40 , 60 , 80 n = 20, 40, 60, 80 n=20,40,60,80 100 100 100),并将提出的模型与 C-LSTM 模型进行了比较。

在此实验中,图10 显示了三种提出的模型和 C-LSTM 模型在不同滑动窗口下的 F1 分数比较。可以看出,四种模型的 F1 分数都随着滑动窗口的增加而提高。这可能是由于滑动窗口的增大导致异常序列比例的增加,这更有利于模型的训练。然而,无论滑动窗口大小如何,三种提出的模型始终优于 C-LSTM 模型。这一观察结果表明,所有三种提出的模型都比 C-LSTM 模型更适合时间序列异常检测问题。

4.4.5 我们的模型与 C-LSTM-AE 的比较

为了全面评价三种提出模型的综合性能,我们进行了额外的比较实验,即与现有最优 C-LSTM 基础模型 C-LSTM-AE 进行比较。如文献 [41] 所示,我们将滑动窗口大小设置为 60,并在检测能力、训练效率和参数数量方面进行了比较。

表 6 显示了每个评估指标的平均分数、每种模型在 A1 数据集上的训练时间以及四种模型在六个数据集上的参数数量。这表明,三种提出的模型在检测能力上略优于 C-LSTM-AE 模型,且所有提出的模型在训练效率上都快于 C-LSTM-AE 模型。在模型参数方面,三种提出的模型的参数数量都少于 C-LSTM-AE 模型,这意味着空间复杂度较低。综上所述,提出的模型在检测性能、时间复杂度和空间复杂度等综合性能上均优于其他基于 C-LSTM 的模型,更适合用于时间序列异常检测应用。

5 结论

为了解决异常检测中时间序列空间特征提取不足的问题,我们将 C-LSTM 中的固定大小卷积核替换为多尺度不同大小的卷积核,得到了三种多尺度 C-LSTM 模型:IMC-LSTM(独立多尺度 C-LSTM)、CMC-LSTM(组合多尺度 C-LSTM)和 SMC-LSTM(共享多尺度 C-LSTM)。在大量实际数据集上的实验表明,三种提出的模型的检测能力高于 C-LSTM 模型,并且 CMC-LSTM 在实际数据集上的 F1 分数比 C-LSTM 模型高 2.1 % 2.1\% 2.1%。此外,三种提出的模型的检测能力甚至略优于最先进的 C-LSTM-AE 模型,并且与 C-LSTM-AE 模型相比,它们的运行速度更快,空间存储更低。在未来的工作中,我们将进一步探索其他多尺度时间序列组合,以构建更适合实际场景的异常检测框架。

数据可用性

我们用于研究的数据集可在以下链接:https://webscope.sandbox.yahoo.com/catalog.php?datatype=s&did=70 和 https://github.com/numenta/NAB 处获得。

参考文献

  1. Laptev, N.; Amizadeh, S.; Flint, I. Generic and scalable framework for automated time-series anomaly detection. In Proceedings of the 21th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, pp. 1939–1947, Sydney, NSW, Australia, August 2015.

  2. Seyedhossein, L.; Hashemi, M.R. Mining information from credit card time series for timelier fraud detection. In Proceedings of the 2010 5th International Symposium on Telecommunications, pp. 619–624, IEEE, Tehran, Iran, December 2010.

  3. Sivaraks, H.; Ratanamahatana, C.A. Robust and accurate anomaly detection in ECG artifacts using time series motif discovery. Computational and Mathematical Methods in Medicine 2015, Article ID 453214, 20 pages.

  4. Zhang, X.; Wang, T. Elastic and reliable bandwidth reservation based on distributed traffic monitoring and control. IEEE Transactions on Parallel and Distributed Systems 2022, 33, no. 12, pp. 4563–4580.

  5. Cook, A.A.; Mısırlı, G.; Fan, Z. Anomaly detection for IoT time-series data: A survey. IEEE Internet of Things Journal 2020, 7, no. 7, pp. 6481–6494.

  6. Chandola, V.; Banerjee, A.; Kumar, V. Anomaly detection: A survey. ACM Computing Surveys 2009, 41, no. 3, pp. 1–58.

  7. Ahmed, M.; Naser Mahmood, A.; Hu, J. A survey of network anomaly detection techniques. Journal of Network and Computer Applications 2016, 60, pp. 19–31.

  8. Fernando, T.; Gammulle, H.; Denman, S.; Sridharan, S.; Fookes, C. Deep learning for medical anomaly detection – A survey. ACM Computing Surveys 2021, 54, no. 7, pp. 1–37.

  9. Pacheco, J.; Hariri, S. Anomaly behavior analysis for IoT sensors. Transactions on Emerging Telecommunications Technologies 2018, 29, no. 4, p. e3188.

  10. Choi, K.; Yi, J.; Park, C.; Yoon, S. Deep learning for anomaly detection in time-series data: Review, analysis, and guidelines. IEEE Access 2021, 9, pp. 120043–120065.

  11. Krizhevsky, A.; Sutskever, I.; Hinton, G.E. ImageNet classification with deep convolutional neural networks. Communications of the ACM 2017, 60, no. 6, pp. 84–90.

  12. Li, D.; Zhang, J.; Zhang, Q.; Wei, X. Classification of ECG signals based on 1D convolutional neural network. In Proceedings of the 2017 IEEE 19th International Conference on E-Health Networking, Applications and Services (Healthcom), pp. 1–6, IEEE, Dalian, China, October 2017.

  13. Alakwaa, W.; Nassef, M.; Badr, A. Lung cancer detection and classification with 3D convolutional neural network (3D-CNN). International Journal of Advanced Computer Science and Applications 2017, 8, no. 8, p. 409.

  14. Zaremba, W.; Sutskever, I.; Vinyals, O. Recurrent neural network regularization. 2014, https://arxiv.org/abs/1409.2329.

  15. Hochreiter, S.; Schmidhuber, J. Long short-term memory. Neural Computation 1997, 9, no. 8, pp. 1735–1780.

  16. Chung, J.; Gulcehre, C.; Cho, K.; Bengio, Y. Empirical evaluation of gated recurrent neural networks on sequence modeling. 2014, https://arxiv.org/abs/1412.3555.

  17. Jin, X.; Yu, X.; Wang, X.; Bai, Y.; Su, T.; Kong, J. Prediction for time series with CNN and LSTM. In Proceedings of the 11th International Conference on Modelling, Identification and Control (ICMIC2019), pp. 631–641, Springer, Singapore, 2020.

  18. Zhou, C.; Sun, C.; Liu, Z.; Lau, F. A C-LSTM neural network for text classification. 2015, https://arxiv.org/abs/1511.08630.

  19. Braei, M.; Wagner, S. Anomaly detection in univariate time-series: A survey on the state-of-the-art. 2020, https://arxiv.org/abs/2004.00433.

  20. Kim, T.-Y.; Cho, S.-B. Web traffic anomaly detection using C-LSTM neural networks. Expert Systems with Applications 2018, 106, pp. 66–76.

  21. Wu, Q.; Shao, Z. Network anomaly detection using time series analysis. In Proceedings of the Joint International Conference on Autonomic and Autonomous Systems and International Conference on Networking and Services-(ICAS-ISNS’05), p. 42, October 2005.

  22. Qi, J.; Chu, Y.; He, L. Iterative anomaly detection algorithm based on time series analysis. In Proceedings of the 2018 IEEE 15th International Conference on Mobile Ad Hoc and Sensor Systems (MASS), pp. 548–552, IEEE, Chengdu, China, October 2018.

  23. Nelson, B.K. Time series analysis using autoregressive integrated moving average (ARIMA) models. Academic Emergency Medicine 1998, 5, no. 7, pp. 739–744.

  24. Moayedi, H.Z.; Masnadi-Shirazi, M. ARIMA model for network traffic prediction and anomaly detection. In Proceedings of the 2008 International Symposium on Information Technology, vol. 4, pp. 1–6, IEEE, Lumpur, Malaysia, August 2008.

  25. Yaacob, A.H.; Tan, I.K.; Chien, S.F.; Tan, H.K. ARIMA based network anomaly detection. In Proceedings of the Second International Conference on Communication Software and Networks, pp. 205–209, IEEE, Singapore, February 2010.

  26. Yu, Q.; Jibin, L.; Jiang, L. An improved ARIMA-based traffic anomaly detection algorithm for wireless sensor networks. International Journal of Distributed Sensor Networks 2016, 12, no. 1, Article ID 9653230.

  27. Ma, J.; Perkins, S. Time-series novelty detection using one-class support vector machines. In Proceedings of the International Joint Conference on Neural Networks, vol. 3, pp. 1741–1745, IEEE, Portland, OR, USA, July 2003.

  28. Ahmed, M.; Mahmood, A.N. Network traffic analysis based on collective anomaly detection. In Proceedings of the 2014 9th IEEE Conference on Industrial Electronics and Applications, pp. 1141–1146, IEEE, Hangzhou, China, June 2014.

  29. Ahmed, M.; Mahmood, A.N. Network traffic pattern analysis using improved information theoretic co-clustering based collective anomaly detection. In Proceedings of the International Conference on Security and Privacy in Communication Networks, pp. 204–219, Springer, Berlin, Germany, September 2014.

  30. Anton, S.D.D.; Sinha, S.; Schotten, H.D. Anomaly-based intrusion detection in industrial data with SVM and random forests. In Proceedings of the 2019 International Conference on Software Telecommunications and Computer Networks (SoftCOM), pp. 1–6, Split, Croatia, September 2019.

  31. Zhou, Y.; Ren, H.; Li, Z.; Wu, N.; Al-Ahmari, A.M. Anomaly detection via a combination model in time series data. Applied Intelligence 2021, 51, no. 7, pp. 4874–4887.

  32. Wen, T.; Keyes, R. Time series anomaly detection using convolutional neural networks and transfer learning. 2019, https://arxiv.org/abs/1905.13628.

  33. Hwang, R.-H.; Peng, M.-C.; Huang, C.-W.; Lin, P.-C.; Nguyen, V.-L. An unsupervised deep learning model for early network traffic anomaly detection. IEEE Access 2020, 8, pp. 30387–30399.

  34. Cheng, M.; Xu, Q.; Jianming, L.; Liu, W.; Li, Q.; Wang, J. MS-LSTM: A multi-scale LSTM model for BGP anomaly detection. In Proceedings of the 2016 IEEE 24th International Conference on Network Protocols (ICNP), pp. 1–6, IEEE, Singapore, November 2016.

  35. Zhang, R.; Zou, Q. Time series prediction and anomaly detection of light curve using LSTM neural network. Journal of Physics: Conference Series 2018, 1061, Article ID 012012.

  36. Malhotra, P.; Vig, L.; Shroff, G.; Agarwal, P. Long short-term memory networks for anomaly detection in time series. 23rd European Symposium on Artificial Neural Networks, Computational Intelligence and Machine Learning ESANN 2015, pp. 89–94.

  37. Wang, Y.; Du, X.; Lu, Z.; Duan, Q.; Wu, J. Improved LSTM-based time-series anomaly detection in rail transit operation environments. IEEE Transactions on Industrial Informatics 2022, 18, no. 12, pp. 9027–9036.

  38. Malhotra, P.; Ramakrishnan, A.; Anand, G.; Vig, L.; Agarwal, P.; Shroff, G. LSTM-based encoder-decoder for multi-sensor anomaly detection. 2016, https://arxiv.org/abs/1607.00148.

  39. Kieu, T.; Yang, B.; Guo, C.; Jensen, C.S. Outlier detection for time series with recurrent autoencoder ensembles. In Proceedings of the Twenty-Eighth International Joint Conference on Artificial Intelligence (IJCAI-19), pp. 2725–2732, IJCAI, Macau, China, August 2019.

  40. Gao, H.; Qiu, B.; Duran Barroso, R.J.; Hussain, W.; Xu, Y.; Wang, X. TSMAE: A novel anomaly detection approach for Internet of Things time series data using memory-augmented autoencoder. IEEE Transactions on Network Science and Engineering 2022, 1–1, p. 1.

  41. Yin, C.; Zhang, S.; Wang, J.; Xiong, N.N. Anomaly detection based on convolutional recurrent autoencoder for IoT time series. IEEE Transactions on Systems, Man, and Cybernetics: Systems 2022, 52, no. 1, pp. 112–122.

  42. Laptev, N.; Amizadeh, S. A labeled anomaly detection dataset S5 Yahoo Research, v1. 2019, https://webscope.sandbox.yahoo.com/catalog.php?datatype=sdid=70.

  43. Numenta. Numenta anomaly benchmark. 2015, https://github.com/numenta/NAB.


http://www.kler.cn/news/293393.html

相关文章:

  • 细胞因子系列
  • 92. UE5 GAS RPG 使用C++创建GE实现灼烧的负面效果
  • 嵌入式学习(链式栈和链式队列)
  • yolov8目标检测pyside6可视化图形界面+检测源码ui文件——用于计数统计
  • Docker基本使用:创建clickhouse容器
  • OKRs-E 目标管理上手指南
  • 电脑错误mfc140.dll丢失怎么办?mfc140.dll丢失如何修复?
  • 使用docker调试odoo
  • 并行编程实战——TBB的安装
  • Go语言实战 pdf
  • 2、硬件工程师笔试面试汇总
  • 实时渲染技术的崛起:游戏与实时交互的新篇章
  • ISO26262和Aspice之间的关联
  • OpenCV结构分析与形状描述符(7)计算轮廓的面积的函数contourArea()的使用
  • Qt/QML学习-Calendar
  • 探秘DevSecOps黄金管道,安全与效率的完美融合
  • Golang | Leetcode Golang题解之第391题完美矩形
  • 实战docker第一天——windows安装docker,测试,并解决被墙办法
  • 【最后一轮征稿】第三届人工智能、物联网和云计算技术国际会议(AIoTC 2024)
  • Oracle同一台服务器创建多个数据库
  • 计算机毕业设计选题推荐-中华诗词文化交流平台-Java/Python项目实战
  • cmd常用指令举例说明使用方法
  • Redis从入门再再到入门(下)
  • Opencv中的直方图(5)计算EMD距离的函数EMD()的使用
  • 面经学习(hbkj实习)
  • WPF 点在控件内 判断
  • 时序预测 | 基于DLinear+PatchTST多变量时间序列预测模型(pytorch)
  • 把iconfont 图标导出为json
  • rsync搭建全网备份
  • 奥威让您更懂现金流情况