南京大学学报(自然科学), 2023, 59(2): 256-262 doi: 10.13232/j.cnki.jnju.2023.02.008

基于生成式对抗网络的自监督多元时间序列异常检测方法

周业瀚1,2, 沈子钰1,2, 周清1,2, 李云,1,2

1.南京邮电大学计算机学院,南京,210023

2.江苏省大数据安全与智能处理重点实验室,南京,210023

Self⁃supervised multivariate time series anomaly detection based on GAN

Zhou Yehan1,2, Shen Ziyu1,2, Zhou Qing1,2, Li Yun,1,2

1.College of Computer Science, Nanjing University of Posts and Telecommunications, Nanjing, 210023, China

2.Jiangsu Key Laboratory of Big Data Security & Intelligent Processing, Nanjing, 210023, China

通讯作者: E⁃mail:liyun@njupt.edu.cn

收稿日期: 2022-07-18  

基金资助: 江苏省研究生科研创新计划.  KYCX_0760

Received: 2022-07-18  

摘要

异常检测是数据挖掘的重要研究方向之一.工业设备的各项指标以多元时间序列的形式被传感器监测,多元时间序列的异常检测对保障安全和提高服务质量至关重要,但是异常的定义相对模糊,具有异常标签的数据很稀少.此外,多元时间序列具有复杂的时间依赖性和随机性,使异常检测存在许多问题.提出CPCGAN模型,使用自监督学习的方法对多元时序数据进行异常检测.首先使用对比学习的方法得到多元时序数据的表示向量,再将具有先验信息的表示向量作为输入用来训练生成式对抗网络,通过生成式对抗网络的重构误差来确定异常.在五个数据集上与五种无监督异常检测方法进行对比,实验结果证明提出的方法能有效地检测两类异常,并且,在大多数数据集上的表现更好.

关键词: 异常检测 ; 多元时间序列 ; 自监督学习 ; 对比学习 ; 生成式对抗网络

Abstract

Anomaly detection is one of the important research directions of data mining. The indicators of industrial devices are monitored by sensors in the form of multivariate time series. Anomaly detection of multivariate time series is critical for security and improving service quality. However,the definition of anomalies is relatively vague and the data with anomalous labels is rare. Also,multivariate time series have complex time dependence and stochasticity which makes anomaly detection many issues to be settled. In this paper,we propose CPCGAN,a self⁃supervised learning method,to perform anomaly detection on multivariate time series data. Our main idea is to obtain the representation vector of multivariate time series data by using the contrastive learning method. We use the representation vector with prior information as input when training the generative adversarial network. The reconstruction error of the generative adversarial network is used to determine anomalies. We compare our method with five unsupervised anomaly detection methods on five datasets. Experimental results show that our method is effective at detecting both types of anomalies and performs better on most datasets compared with other methods.

Keywords: anomaly detection ; multivariate time series ; self⁃supervised learning ; contrastive learning ; Generative Adversarial Network

PDF (515KB) 元数据 多维度评价 相关文章 导出 EndNote| Ris| Bibtex  收藏本文

本文引用格式

周业瀚, 沈子钰, 周清, 李云. 基于生成式对抗网络的自监督多元时间序列异常检测方法. 南京大学学报(自然科学)[J], 2023, 59(2): 256-262 doi:10.13232/j.cnki.jnju.2023.02.008

Zhou Yehan, Shen Ziyu, Zhou Qing, Li Yun. Self⁃supervised multivariate time series anomaly detection based on GAN. Journal of nanjing University[J], 2023, 59(2): 256-262 doi:10.13232/j.cnki.jnju.2023.02.008

异常检测是时间序列分析中的重要研究方向之一,旨在发掘时间序列中某一时间点或时间段的异常.传感器采集的多元时间序列数据充分反映了系统的运行状态,所以对采集的多元时间序列数据异常的检测可以及时察觉系统的非正常行为,对已发生的故障进行定位和分析,具有重要的现实意义.异常检测有广泛的应用,例如网络流量异常检测、心电图分析1、信用卡欺诈检测2和数据中心的监测等.时间序列异常分两种:点异常和段异常.在某个时间点数据达到一个不正常的值,称为点异常;段异常是指在一个连续时间序列段中,虽然有许多时间点的数据是正常的,但整体时序数据段存在异常.

许多基于阈值选择的统计学方法对数据点进行假设检验,以此来检测异常点,但这些方法无法处理复杂的多元时序数据,并且这些方法的统计特征经常是未知的或者变动性很大.

由于对多元时序数据集进行专家标记的成本很高,因此含有异常标签的数据集很稀少,很多研究开始使用无监督的机器学习方法来解决异常检测问题.常见的方法是将时间序列划分为定长的子序列,使用聚类方法来找到离群点;或通过建模来预测或重构时间序列,计算预测值或重构值与真实值的误差,将过高的预测误差与重构误差作为检测异常的依据.但还有些问题没有很好地解决,例如,在时间序列具有时间依赖性和随机性的前提下如何学习健壮的特征表示、没有比较好的方法对不同类型的异常进行检测等.

本文的主要贡献:

(1)提出一种基于自监督学习的异常检测模型CPCGAN,通过重构多元时序数据,分析与原始数据的误差来判断是否存在异常.

(2)针对多元时序数据缺少异常值标签的情况,将基于自监督的对比学习方法用于时序数据的预训练,提取具有鲁棒性的数据表示.

1 相关工作

传统的异常检测方法是基于统计过程控制(Statistical Process Control)的,如CUSUM,EWMA和萧华特管制图3等,然而,使用统计量来寻找异常点的做法难以处理多元时间序列这种复杂的数据.随着数据量的快速增加,许多基于机器学习的研究相继展开,由于带有异常值标签的时序数据很难得到,人工打标签成本高昂,因此无监督学习的异常检测方法吸引了很多学者.

当前,无监督机器学习异常检测主要分为基于预测的方法和基于重构的方法.Hundman et al4使用LSTM (Long Short⁃Term Memory)5对多元时序数据进行预测,针对预测误差进行异常检测.Li et al6使用原始GAN (Generative Adversarial Networks)模型拟合多元时序数据分布,通过重构时序数据误差和判别器来检测异常.Geiger et al7提出TadGAN模型,通过训练生成器来重构时序数据,并使用评价器来计算异常得分.Su et al8使用变分自动编码器和平面标准化流来学习多元时序数据的鲁棒性表征,并重构数据概率分布来进行异常检测.

本文提出基于自监督学习的GAN模型,将异常检测分为两阶段:在预训练阶段,使用对比学习的方法对多元时序数据进行表示学习;使用预训练模型输出的具有先验信息的表示向量作为GAN的输入来进行训练,使用重构误差来检测异常数据.这样的训练方法首先解决了数据标签难以获取的问题,其次,可以通过微调模型在不同目标任务上获得更好的效果.

2 多元时序数据的表示学习

2.1 多元时间序列定义

多元时间序列可以定义为X=x1,x2,,xN,其中N为时间序列长度,xtMttN时间点的一个M维变量.xt=xt1,xt2,,xtM,因此多元时间序列X

M×N可以看作是由M个互相关联的一维时间序列组成.

2.2 对多元时序数据进行对比预测编码

对比预测编码9可以对高维度的数据进行特征提取,是自监督学习中的一个通用方法,而针对时序数据,需要考虑其时间依赖性等特点.对比预测编码的总体结构如图1所示.

图1

图1   对比预测编码

Fig.1   Contrastive predicting coding


首先,一段多元时序数据xt-n:t+mn,m>0通过非线性编码器genc被映射为潜在表示Z=gencX.考虑时序数据的时间依赖性,选定时间点t,将t时刻及之前的潜在向量zt作为输入,将其输入自回归模型gar,产生一个具有t时刻之前时间点信息的潜在表示ct=garzt.为了使得到的表示变量 Z 具有上下文信息,需要考虑未来第k个时间点的数据,使ctxt+k之间的互信息Ix;c=x,cpx,clgpxcpx最大化.此时令fkxt+k,ctpxt+kctpxt+k.由于难以直接对高维数据xtk的概率分布建模,因此使用自动编码器和双线性模型来计算fkxt+k,ct=expzt+kWkTct.其中,WkTct表示未来第k步时对ct的线性变换,将c变换成与z相同的维度.

使用噪声对比估计(Noise Contrastive Estimation,NCE)10-12和重要性采样13来比较目标值和随机采样得到的负值,训练编码器genc和自回归模型gar来优化基于NCE的InfoNCE9损失.定义损失为:

LN=-EXlgfkxt+k,ctxjXfkxj,ct

定义一个批量的N个时序数据Xbatch=X(1),

X2,,XN],随机选择一个时间点t,对其中某一条时序数据Xi=x1,x2,,xN进行编码后得到的ct,这条数据t时刻后k个时间点的数据xt+k符合概率分布pxt+k,ct,与ct关联度高,将其作为正样本.同一批量剩余的N-1条数据t时刻后k个时间点的数据服从概率分布pxt+k,与ct关联度低,将其作为负样本.

3 生成式对抗网络(GAN)

GAN通过对抗过程训练生成模型的架构14,架构包括两部分:一个生成器G学习真实数据分布,并模拟真实数据来生成可以欺骗判别器的假样本;一个判别器D判别当前数据的真伪,并输出当前为真实数据的概率.两个模型同时进行训练,其结构如图2所示.

图2

图2   生成式对抗网络(GAN)

Fig.2   Generative Adversarial Network (GAN)


普通的GAN模型会遭遇模式坍塌的问题.模式坍塌指生成器始终生成固定少量种类的、甚至是同样的假样本,这些样本可以很好地欺骗判别器,结果是无论模型输入什么,判别器都不能促进生成器学习到有用的变量信息,生成器始终无法学习到样本的真实分布.

在拟合数据分布时,WGAN15通过将KL散度或JS散度替换为Wasserstein距离来解决模式坍塌的问题.KL散度和JS散度衡量两个概率分布之间的相似程度,而Wasserstein距离衡量的是将该分布的函数图形调整为待拟合的分布时产生的最低消耗.GAN模型的Wasserstein距离损失定义为:

WPr,Pq=supfL1Ex~Prfx-Ex~Pqfx

其中,Pr是真实样本分布,Pθ是生成器产生的样本分布.最小上界覆盖所有的K⁃lipschitz函数,这里将K设为1,因此总体优化目标为:

maxwWEx~Prfwx-Ex~Pqfwgqz

其中,fx为生成器,gx为判别器.判别器损失为Ex~Prfwx-Ex~Pqfwx,生成器损失为-Ex~Pqfwgqz.

GAN模型的输入为随机高斯噪声z,通过对z的编码和对抗训练来使生成器生成近似真实样本的假样本.本研究为了避免模式坍塌问题,选择WGAN模型,将上游模型输出的具有先验信息的表示向量作为GAN模型的输入,这样不仅可以有效地包含时序数据的时序特征和上下文信息,而且在训练时可以加速模型收敛.

4 模型结构与异常检测算法

4.1 模型总体结构

模型的总体结构如图3所示.模型分两部分:第一部分是基于对比学习提取时序特征;第二部分是训练生成式对抗网络,计算异常得分.

图3

图3   CPCGAN的总体结构

Fig.3   The overall structure of CPCGAN


4.2 多元时间序列异常检测算法

设置一个长度为W的滑动窗口,按步长为1滑动取值,将原始数据集X1:N=x1,x2,,xN,xtM划分为N-W+1个长度为W的时间序列子数据段x1:w,x2:w+1,,xN-W+1:N,记为X=X1,X2,

,XN-W+1,XtM×W.将滑动取值后的数据段作为算法的输入.

通过自监督方法预训练对比预测编码模型.将原始多元时序数据xm:m+w通过编码器变换为隐空间表示向量zm:m+w.选取一个随机时间点tm,m+w,将zm:m+w作为输入,使用自回归模型,计算包含时间依赖性特征的上下文向量ct,然后计算InfoNCE损失,更新模型参数.具体如算法1所示.

算法1 对比预测编码预训练

输入:时间序列子数据段

X=X1,X2,,XN-W+1batch=n

预测步长time_steps=K

输出:训练完成的对比预测编码模型

ContrastivePredictingCoding

1.While θ has not converged do

2. Sample Xii=1m a batch from input data

3. Z=gencX

4. Choose a random time step t

5. Ct=garZ1:t

6. InfoNCELosszt:t+k,ct=-Elgfkzt+k,ctJfkzj,ct

7. fθ-θ1mi=1mInfoNCELossZi,Ci

8. θθ-α·Adamθ,fθ

9.end while

将对比预测编码输出的表示向量作为下游任务的输入来训练GAN模型,得到输入序列的重构误差序列aseqi,i=1,2,,W,将其作为得分.具体如算法2所示.

算法2 多元时序数据异常检测算法

输入:时间序列子数据段

X=X1,X2,,XN-W+1

判别器训练次数ncritic,参数截断常数c;

输出:重构误差序列Ascore=aseqi,i=1,2,,W

1.While θ has not converged do

2. for t=0,,ncritic do

3. Sample Xii=1m~Pr a batch from the real data.

4. Z=ContrastivePredictingCodingX

5. gww1mi=1mfwxi-1mi=1mfwgqzi

6. ww+α·RMSPropw,gw

7. wclipw,-c,c

8. end for

9. gq-q1mi=1mfwgqzi

10. θθ-α·RMSPropθ,gθ

11.end while

12. X=Xii=1m

13.for i=0,,m do

14. X˜i=gXi

15. Ascore=ConstractiveErrorXi,X˜i

16.end for

5 实验及结果

5.1 实验数据集

使用五个公开数据集作为实验数据,数据集的概况描述如表1所示.

表1   实验使用的数据集

Table 1  Datasets used in experiments

数据集训练集样本数测试集样本数时序数据维度

异常点

占比

SWaT4968004499195111.98%
WADI10485711728011235.99%
SMD70840570842028×384.16%
SMAP13518342761755×2513.13%
MSL583177372927×5510.72%

新窗口打开| 下载CSV


安全水处理(SWaT)数据集是生产过滤水的真实工业水处理厂数据的缩小版本,包括连续运行11天采集的数据16,其中正常操作下采集七天,系统异常场景下采集四天.

水分配(WADI)数据集是从WADI测试平台收集的,WADI测试平台是SWaT tesbed的扩展16,包括16天连续运行的数据,其中正常操作下采集14天,系统异常场景下采集两天.

服务器数据集(SMD)是一个持续时长为五周的由一家大型互联网公司收集并公开8的数据集,包含28台服务器的数据,每台服务器反映运行状态的33个监测指标都受到监控.SMD分为两个大小相等的子集,前半部分是训练集,后半部分是测试集.

土壤水分观测数据集(SMAP)、卫星和火星科学实验室(MSL)火星车数据集是两个现实世界的公共数据集4,由NASA专家标注数据标签,分别包含55/27个实体的数据,每个实体含有25/55个监测指标.

5.2 评价指标

选择精确度(Precision,P)、召回率(Recall,R)和F1得分来评估异常检测的效果:

P=TPTP+FP
R=TPTP+FN
F1=2×P×RP+R

其中,TP表示真正例,FP表示假正例,FN表示假负例.

训练集采用不含异常点的正常数据进行自监督学习;由于需要对比算法效果,验证集采用含有异常点标签的测试集.由于测试集的标签体现的是某个时间点是否异常,因此在判断段异常的场景下要对测试集标签进行一定的改动,若输入序列中异常点个数占比超过某个阈值,则将这个时间段标签设为异常.

首先对输入的时序数据Xt:T=xt,xt+1,,xT进行重构,计算每个点的重构误差作为异常点得分aseqi,i=1,2,,T-t+1;然后,计算重构误差序列的 Z 分数,偏离序列平均值2.5个标准差的数据作为异常点.对于段异常检测,需要考虑输入的整段时间序列是否异常,设定默认阈值为0.2,若输入序列中异常点个数占比超过阈值,则认为是段异常.

5.3 实验结果

设置一个长度为w=20的滑动窗口,按步长为1来滑动取值,将原始数据集X1:N=

x1,x2,,xN,xtM划分为N-W+1个时序数据段x1:w,x2:w+1,,xN-W+1:N,将滑动取值后的数据段作为算法的输入.

模型中的编码器genc选用多层线性模型与卷积神经网络的混合模型,本文使用网格搜索法对超参数进行选择,最终设置隐空间变量z维度为36.自回归模型gar采用双层GRU17模型,GAN使用双层LSTM模型,其中判别器更新次数为ncritic=5batch=64,学习率α=0.00005.

为了验证CPCGAN对异常点检测的总体表现,选取五种无监督异常检测方法进行多元时序数据异常检测,分别是Autoencoders (AE),MAD⁃GAN6,LSTM⁃VAE18,DAGMM19和TadGAN7.各算法在所选数据集上的具体表现如表2所示,表中黑体字表示结果最优.

表2   CPCGAN与其他五种对比方法异常点检测的评价指标情况

Table 2  Performanceof CPCGAN and five baseline approaches on anomalous points detection

SWaTWADISMDSMAPMSL
PRF1PRF1PRF1PRF1PRF1
CPCGAN0.98150.6610.78990.9910.13160.23230.95110.94840.94970.75810.98220.85570.8820.96860.9232
AE0.93240.57340.71010.30740.1790.22620.56840.78940.66090.56330.62230.59150.5710.66410.614
MAD⁃GAN0.95850.61660.75040.98420.13510.23750.87220.80750.83860.71060.95210.81380.84570.95460.8968
LSTM⁃VAE0.96550.62180.75640.98450.13340.23490.85920.80120.82910.70560.97520.81870.86010.96630.9101
DAGMM0.45760.6710.54410.08510.91170.15560.65730.85490.74310.62340.97760.76130.74670.98170.8482
TadGAN0.95250.64810.77130.95610.12460.22040.91410.93620.9250.74130.98670.84650.90520.89320.8991

新窗口打开| 下载CSV


由于在建模时考虑了时序数据的时间依赖性,MAD⁃GAN,LSTM⁃VAE,TadGAN和CPCGAN模型在分类精确度和F1得分上比较有优势.五个数据集中,CPCGAN在四个数据集上的精确度都是最高,F1得分在其中四个数据集上也是最高.

对CPC自监督学习模块进行消融实验,将其替换为一般的LSTM模型,使用CPCGAN模型在相同数据集上进行自监督学习模块的有效性验证.去除自监督模块的算法在所选数据集上的表现如表3所示,表中黑体字表示结果最优,“with”表示模型包含CPC模块,“without”表示去掉CPC模块.由表可见,在所选的五个数据集上,将对比自监督模块去除后,模型的性能指标有明显下降.

表3   包含(不包含)自监督模块的CPCGAN模型评价指标情况

Table 3  Performance of CPCGAN with and without self⁃supervised module

SWaTWADISMDSMAPMSL
PRF1PRF1PRF1PRF1PRF1
CPCGAN (with)0.98150.6610.78990.9910.13160.23230.95110.94840.94970.75810.98220.85570.8820.96860.9232
CPCGAN (without)0.8420.59120.70140.8710.14160.19920.88330.90260.8370.65180.88720.7850.79660.91810.8395

新窗口打开| 下载CSV


对于SWaT和WADI数据集,由于采集场景的原因,异常状态持续时间较长且多在连续时间点发生异常,因此需要对原始数据集的标签进行预处理,并针对异常段的检测效果进行实验.五个对比算法和CPCGAN的评价指标如表4所示,表中黑体字表示结果最优.由表可见,在一定场景下,CPCGAN对于段异常也能有效检测.在标签处理后的SWaT和WADI数据集上,CPCGAN取得了最高的F1得分和较高的精确度.

表4   CPCGAN与其他五种对比方法异常段检测的评价指标情况

Table 4  Performance of CPCGAN and five baseline approaches on anomalous segment detection

SWaT (segment)WADI (segment)
PRF1PRF1
CPCGAN0.81420.80100.80750.76910.78270.7758
AE0.75130.73340.74220.54230.57370.5575
MAD⁃GAN0.72250.68660.70400.60220.67140.6349
LSTM⁃VAE0.74680.79180.76860.76210.70010.7297
DAGMM0.62210.75100.68050.63660.87820.7381
TadGAN0.73920.85810.79420.77820.70750.7411

新窗口打开| 下载CSV


6 结论

本文提出一种基于自监督学习和生成式对抗网络的架构CPCGAN,针对多元时间序列数据进行异常检测,基于重构误差探究了该架构应用于异常点和异常段两种不同类型的异常检测上的表现.未来的工作包括:(1)深入对异常的可解释性研究,对异常发生的原因进行分析;(2)探究多种场景下更多的异常种类;(3)研究更合适的阈值选择方法,如自动调整阈值使模型的健壮性更强.

参考文献

Jiang B CYang W HYang C Y.

An SPC⁃based forward⁃backward algorithm for arrhythmic beat detection and classification

Industrial Engineering & Management Systems,201312(4):380-388.

[本文引用: 1]

Beutel AFaloutsos C.

User behavior modeling and fraud detection

IEEE Intelligent Systems,201631(2):84-86.

[本文引用: 1]

Sun BLuh P BJia Q Set al.

Building energy doctors:An SPC and Kalman filter⁃based method for system⁃level fault detection in HVAC systems

IEEE Transactions on Automation Science and Engineering,201411(1):215-229.

[本文引用: 1]

Hundman KConstantinou VLaporte Cet al.

Detecting spacecraft anomalies using LSTMs and nonparametric dynamic thresholding

Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. London,UKACM2018387-395.

[本文引用: 2]

Hochreiter SSchmidhuber J.

Long short⁃term memory

Neural Computation,19979(8):1735-1780.

[本文引用: 1]

Li DChen D CJin B Let al.

Mad⁃GAN:Multivariate anomaly detection for time series data with generative adversarial networks

The 28th International Conference on Artificial Neural Networks. Springer Berlin Heidelberg,2019703-716.

[本文引用: 2]

Geiger ALiu D YAlnegheimish Set al.

TadGAN:Time series anomaly detection using generative adversarial networks

2020 IEEE International Conference on Big Data. Atlanta,GA,USAIEEE202033-43DOI:10.1109/BigData50022.2020. 9378139 .

[本文引用: 2]

Su YZhao Y JNiu C Het al.

Robust anomaly detection for multivariate time series through stochastic recurrent neural network

Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. Anchorage,AK,USAACM20192828-2837.

[本文引用: 2]

Van Den Oord ALi Y ZVinyals O.

Representation learning with contrastive Predictive coding

2018,arXiv:.

[本文引用: 2]

Gutmann MHyvärinen A.

Noise⁃contrastive estimation:A new estimation principle for unnormalized statistical models

Proceedings of the 13th International Conference on Artificial Intelligence and Statistics. Chia Laguna Resort,SardiniaJMLR.org2010297-304.

[本文引用: 1]

Mnih ATeh Y W.

A fast and simple algorithm for training neural probabilistic language models

Proceedings of the 29th International Coference on International Conference on Machine Learning. Edinburgh,ScotlandOmnipress2012419-426.

Jozefowicz RVinyals OSchuster Met al.

Exploring the limits of language modeling

2016,arXiv:.

[本文引用: 1]

Bengio YSenecal Y S.

Adaptive importance sampling to accelerate training of a neural probabilistic language model

IEEE Transactions on Neural Networks,200819(4):713-722.

[本文引用: 1]

Goodfellow I JPouget⁃Abadie JMirza Met al.

Generative adversarial nets

Proceedings of the 27th International Conference on Neural Information Processing Systems. Montreal,CanadaMIT Press20142672-2680.

[本文引用: 1]

Arjovsky MChintala SBottou L.

Wasserstein generative adversarial networks

Proceedings of the 34th International Conference on Machine Learning. Sydney,AustraliaJMLR.org2017214-223.

[本文引用: 1]

Mathur A PTippenhauer N O.

SWaT:A water treatment testbed for research and training on ICS security

2016 International Workshop on Cyber⁃physical Systems for Smart Water Networks. Vienna,AustriaIEEE201631-36.

[本文引用: 2]

Cho BVan Merrienboer DBahdanau Det al.

On the properties of neural machine translation:Encoder⁃decoder approaches

Proceedings of the 8th Workshop on Syntax,Semantics and Structure in Statistical Translation. Doha,QatarAssociation for Computational Linguistics2014103-111.

[本文引用: 1]

Park DHoshi YKemp C C.

A multimodal anomaly detector for robot⁃assisted feeding using an LSTM⁃based variational autoencoder

IEEE Robotics and Automation Letters,20183(3):1544-1551.

[本文引用: 1]

Zong BSong QMin M Ret al.

Deep autoencoding Gaussian mixture model for unsupervised anomaly detection

The 6th International Conference on Learning Representations. Toulon,FranceICLR20181-19.

[本文引用: 1]

/