本发明专利技术涉及一种基于Transformer的多变量时间序列异常检测方法,包括:针对多变量时间序列数据集,在特征维度对时间序列数据进行归一化处理;对归一化后的时间序列数据应用滑动窗口,将原始时间序列数据分割成一系列滑动窗口,得到多个滑动窗口时序数据;通过时间戳编码和数据编码,对滑动窗口时序数据进行编码;采用基于Transformer模型的异常检测方式,求解所有滑动窗口对应的时间序列的重构取值;根据重构误差和历史误差因素,确定出各个时间序列对应的动态异常阈值;根据对应的动态异常阈值,求解各个时间序列的异常分数,得到时序数据的异常检测结果。与现有技术相比,本发明专利技术能够准确且具有鲁棒性地针对多变量时间序列进行异常检测。行异常检测。行异常检测。
【技术实现步骤摘要】
一种基于Transformer的多变量时间序列异常检测方法
[0001]本专利技术涉及时间序列异常检测
,尤其是涉及一种基于Transformer的多变量时间序列异常检测方法。
技术介绍
[0002]随着工业化进程不断的完善,在此过程中会产生和存储大量的数据,在各类数据类型中,时间序列数据是其中重要的数据类型之一。时间序列数据是指随着时间的推移,在某些指标上每隔一定时间进行采集,并将采集到的结果按顺序排列从而形成的序列数据。时间序列数据描述了系统各个维度随时间的变化情况,对于捕捉前后数据间的关联,分析系统的发展情况具有重要意义。
[0003]因此,时间序列异常检测一直以来都是工业界的重要课题,其通过对连续的时间序列数据进行分析,以确定哪些实例与其他实例不同,即发掘出其中存在的异常。时间序列数据在很多领域都有实际应用,比如金融市场,生物数据,用户行为,工业设备等,分析时间序列数据的异常情况,对于保障系统正常运转、及时做出预判以免造成经济损失等均具有重要意义。
[0004]传统的异常检测任务由数据挖掘专家完成,他们通过人工分析不遵循正常趋势的数据来报告错误。然而,在监测工业设备的系统中,随着部署的传感器数量的不断增加,数据模式的复杂度不断提高,人工识别故障面临的挑战也越来越大。在人工智能的发展下,大数据分析和深度学习的出现,可以有效帮助专家解决这一问题。目前,时间序列异常检测技术所采用的方法主要包括基于聚类或分类的方式、基于深度学习的方式这两种,但是这些方法依然存在着相应的问题:
[0005]第一,基于聚类的异常检测方法难以确定聚类的类别数K。基于聚类的方法中较为经典的方法是K
‑
Means聚类算法,该方法也被称为子序列时间序列聚类。给定某个时间序列数据,根据定义的滑动窗口长度,可以将时间序列数据转换成一系列的子序列。在定义了聚类的个数K后,K
‑
Means聚类算法将作用在子序列上,直到该子序列可以收敛到K个类别。为了进行时间序列异常检测,需要计算每个子序列到最近的类别的距离,通常采用欧式距离进行计算,将该距离和阈值相比,若大于阈值,则对应的时间序列为异常。然而提前假设K的取值,对于现实的系统操作是比较困难的。
[0006]第二,基于分类的异常检测方法是将异常检测问题看成分类问题。先用训练数据集对模型进行优化训练,然后使用根据训练过程学习到的模型对测试集中的数据进行检测。根据训练集中异常被标记的情况,可以将基于分类的异常检测方法分为多分类异常检测和单分类异常检测。最初的支持向量机算法是单分类异常检测方法,它是一种线性监督方法。通过引入内核技巧来扩展算法,该技巧使SVM能够进行非线性分类。之后,引入了一种新的使用SVM(Support Vector Machine,支持向量机)检测异常的方法,称为一类SVM(One
‑
Class Support Vector Machine,OC
‑
SVM)。OC
‑
SVM是一种半监督的方法,其中训练集仅包含一个类别:正常数据。在训练集中拟合模型后,测试数据被归类为是否与普通数据相似,
这样能够检测异常。但是现实中的系统通常标签极不平衡,分类方法在标签极不平衡的数据集上准确率不高,且多数现实数据集的训练集通常也会包含异常数据。
[0007]第三,基于循环神经网络的异常检测方法依赖于一个循环神经网络的深度神经网络模型,它使用输入序列作为训练数据,对于每个输入的时间戳,预测下一个时间戳的数据,将预测误差作为异常检测的依据。例如LSTM(Long Short
‑
Term Memory,长短期记忆网络)是一种学习顺序数据中顺序依赖性的自回归神经网络,其中每个时间戳的预测使用来自前一个时间戳输出的反馈。然而,由于这类模型是一个循环模型,在输入的时间序列较长的情况下,训练速度较慢,特别是当输入数据有噪声时,这种表现更为明显。此外,但这类系统没有考虑不同时间序列之间的相关性。因此,这类在具有序列相关性的数据集中的效果并不理想。
[0008]第四,基于图神经网络的异常检测方法是近年来最受关注的系统方法之一,但是它依赖于图结构的构建。图神经网络主要关注以图形式存在的数据,挖掘图中不同节点之间的关系、以及边的关系。此类方法无法直接用于时序数据下的异常检测问题,需要提前构建显式的图结构。基于图神经网络的异常检测系统有效地利用了时间序列之间的相关信息,提高了异常检测的准确率。但是这种方法依赖显式地构建出图数据结构,在处理维数较少或序列间关系不够密切的多变量时间序列时,图神经网络构造的特征关系图太小或太稀疏。这使得图神经网络模型能从数据中提取的信息有限,从而导致系统的性能瓶颈。
技术实现思路
[0009]本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种基于Transformer的多变量时间序列异常检测方法,能够准确且具有鲁棒性地针对多变量时间序列进行异常检测。
[0010]本专利技术的目的可以通过以下技术方案来实现:一种基于Transformer的多变量时间序列异常检测方法,包括以下步骤:
[0011]S1、针对多变量时间序列数据集,在特征维度对时间序列数据进行归一化处理;
[0012]S2、对归一化后的时间序列数据应用滑动窗口,将原始时间序列数据分割成一系列滑动窗口,得到多个滑动窗口时序数据;
[0013]S3、通过时间戳编码和数据编码,对滑动窗口时序数据进行编码;
[0014]S4、采用基于Transformer模型的异常检测方式,求解所有滑动窗口对应的时间序列的重构取值;
[0015]S5、根据重构误差和历史误差因素,确定出各个时间序列对应的动态异常阈值;
[0016]S6、根据对应的动态异常阈值,求解各个时间序列的异常分数,得到时序数据的异常检测结果。
[0017]进一步地,所述步骤S3具体包括以下步骤:
[0018]S31、将时间戳包含的时序信息分解为对应的时间戳数据,并进行时间戳编码,得到时间戳编码向量;
[0019]S32、采用傅里叶变换的方式,对时间序列数据的周期性进行分析,并对时间戳数据进行周期性编码,得到周期性编码向量;
[0020]S33、对周期性编码向量和时间戳编码向量进行嵌入和投影,得到全局时间序列编
码;
[0021]S34、对滑动窗口内的时序数据进行局部时间序列编码;
[0022]S35、将全局时间序列编码与局部时间序列编码附加到输入的时序数据中,得到Transformer模型的输入数据。
[0023]进一步地,所述步骤S33具体是通过可学习的嵌入层,以对周期性编码向量和时间戳编码向量进行嵌入和投影操作。
[0024]进一步地,所述步骤S4中Transformer模型包括编码器、特征融合模块、第一判别器、解码器、第二判别器,所述编码器包括特征注意力模块和时序注意力模块,所述编码器用于将输入数据中的子序列转换成本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于Transformer的多变量时间序列异常检测方法,其特征在于,包括以下步骤:S1、针对多变量时间序列数据集,在特征维度对时间序列数据进行归一化处理;S2、对归一化后的时间序列数据应用滑动窗口,将原始时间序列数据分割成一系列滑动窗口,得到多个滑动窗口时序数据;S3、通过时间戳编码和数据编码,对滑动窗口时序数据进行编码;S4、采用基于Transformer模型的异常检测方式,求解所有滑动窗口对应的时间序列的重构取值;S5、根据重构误差和历史误差因素,确定出各个时间序列对应的动态异常阈值;S6、根据对应的动态异常阈值,求解各个时间序列的异常分数,得到时序数据的异常检测结果。2.根据权利要求1所述的一种基于Transformer的多变量时间序列异常检测方法,其特征在于,所述步骤S3具体包括以下步骤:S31、将时间戳包含的时序信息分解为对应的时间戳数据,并进行时间戳编码,得到时间戳编码向量;S32、采用傅里叶变换的方式,对时间序列数据的周期性进行分析,并对时间戳数据进行周期性编码,得到周期性编码向量;S33、对周期性编码向量和时间戳编码向量进行嵌入和投影,得到全局时间序列编码;S34、对滑动窗口内的时序数据进行局部时间序列编码;S35、将全局时间序列编码与局部时间序列编码附加到输入的时序数据中,得到Transformer模型的输入数据。3.根据权利要求1所述的一种基于Transformer的多变量时间序列异常检测方法,其特征在于,所述步骤S4中Transformer模型包括编码器、特征融合模块、第一判别器、解码器、第二判别器,所述编码器包括特征注意力模块和时序注意力模块,所述编码器用于将输入数据中的子序列转换成对应的隐变量;所述特征融合模块用于将编码器输出的多个隐变量组合成一个向量表示;所述第一判别器与编码器之间构成第一对抗网络,通过对隐变量施加先验分布,采用对抗训练策略引导隐变量的先验分布和后验分布达到近似;所述解码器用于重构原始输入,得到重构结果;所述第二判别器与解码器之间构成第二对抗网络,用于对重构结果和原始输入之间施加对抗训练。4.根据权利要求3所述的一种基于Transformer的多变量时间序列异常检测方法,其特征在于,所述步骤S4的具体过程为:S41、将原始输入数据传输到编码器中,应用多维注意力机制,分别运行特征注意力模块和时序注意力模块,将原始时间序列输入X转换成隐变量Y;S42、对T个不重叠的子序列重复步骤S41的操作,得到对应的T个隐变量Y;S43、通过线性插值的方式,将T个实例、即T个隐变量Y进行特征融合操作,形成新的隐变量编码Z;S44、对于隐变量施加先验分布,采用对抗训练策略引导隐变量的先验分布和后验分布
达到近似;S45、将隐变量输入到解码器中,重构模型的原始输入,得到重构结果X
’
;S46、对重构结果X
’
和原始输入X之间施加对抗训练,得到训练好的异常检测模型,将当前输入数据传输给异常检测模型,输出得到所有滑动窗口对应的时间序列的重构取值。5.根据权利要求4所述的一种基于Transformer的多变量时间序列异常检测方法,其特征在于,所述步骤S41中,特征注意力模块用于学习时间序列的不同特征之间的相关性,时序注意力模块用于学习时间序列内部的长短期依赖关系;所述步骤S...
【专利技术属性】
技术研发人员:赵进,谢梦玮,
申请(专利权)人:复旦大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。