基于多任务的网络多元时间流量序列异常检测方法及装置

未命名 07-12 阅读:191 评论:0


1.本发明涉及深度学习领域,具体来说是一种基于多任务的网络多元时间流量序列异常检测方法及装置。


背景技术:

2.近年来,深度学习技术取得了突飞猛进的进展。本质上说,深度学习是多层的神经网络,对输入进行了层级的非线性表示,来自大量实验表明,深度网络的层级表示在语义上从底层到高层不断递进。尽管在过去几年中利用深度学习在异常检测上取得了丰硕的进展,但在无监督的情况下对多元或者高维数据进行异常检测仍然是一项具有挑战性的任务。网络多元时间流量序列异常检测是一个活跃的话题。监督学习方法需要标记数据用于模型训练,并且只能识别已知异常类型的异常数据。因此,有监督的方法用途有限,无监督的方法更能适用于当前复杂的系统应用中。近年来多元时间序列异常检测的最先进的无监督解决方案可分为以下类型:
3.一种传统类型是距离方法。例如,knn算法根据每个数据样本到其k个最近邻居的平均距离计算异常分数。类似地,聚类模型对不同的数据样本进行聚类,并通过预定义的异常值分数发现异常。此外,分类方法,例如one-class svm,对训练数据的密度分布进行建模,并将新数据分类为正常或异常。尽管这些方法已经在各种应用中证明了它们的有效性,但它们在多元时间序列上可能效果不佳,因为它们无法更好地捕获数据之间的时间依赖性。
4.除了传统方法之外,基于深度学习的无监督异常检测算法最近也获得了很多关注,主要有如下几种:首先是基于lstm的编码器-解码器方案,用于多传感器时间序列中的异常检测。编码器学习输入时间序列的矢量表示,解码器使用该表示来重建时间序列。经过训练的基于lstm的编码器-解码器可以重建“正常”时间序列的实例,而目标时间序列就是输入时间序列本身,然后,将使用任何将来时间实例的重建误差来计算该点出现异常的可能性。其次是还有人提出了一个多尺度卷积递归编译码器,通过构建多尺度特征矩阵,以表征不同时间步长上的多级系统状态,使用卷积编码器对时间序列相关模式进行编码,利用对传感器间相关性和时间信息进行编码的特征映射,使用卷积解码器来重构特征矩阵,并且进一步利用剩余特征矩阵来检测和诊断异常。此外,还有人提出了一种基于深度自动编码器的方法,以便联合学习降维和聚类组件。它通过一个称为估计网络的子网络,该子网络评估由其压缩网络产生的低维空间中的样本密度,它降低输入观测值的维数,得到潜在的表征,通过预测样本混合隶属度并利用gmm估计表征的密度。然而,这种方法是为多元变量而不是多元时间序列设计的,忽略了时间序列固有的时间依赖性。


技术实现要素:

5.为了克服上述问题,本发明公开了一种基于多任务的网络多元时间流量序列异常检测方法及装置,开发了一个多任务的异常检测模型,采用多任务训练模型,一部分是生成
网络,用来根据当前时间的多元时序数据进行数据的异常估计,另一部分是预测网络,根据当前时间点之前的一些信息,预测当前的数据状态,将两个网络的结果进行融合评估进而进行异常数据的判断。
6.为了实现上述目的,本发明的技术内容包括:
7.一种基于多任务的网络多元时间流量序列异常检测方法,其步骤包括:
8.对待测网络多元时间流量序列依据时间窗口进行切分,获取若干窗口序列w
t

9.分别编码窗口序列w
t-1
与窗口序列w
t
,得到潜在表示z
t-1
与潜在表示z
t

10.基于潜在表示z
t
与潜在表示z
t-1
分别进行重建与预测,得到重建序列w

t
与预测序列w

t

11.根据窗口序列w
t
与重建序列w

t
及窗口序列w
t
与预测序列w

t
在每一维度上的评分误差分数,获取异常检测结果。
12.进一步地,编码窗口序列w
t
之前,通过min-max归一化方法,对窗口序列w
t
中各维度数据进行预处理。
13.进一步地,通过以下步骤得到潜在表示z
t

14.1)将窗口序列w
t
输入lstm层,得到表示h
t

15.2)利用全连接层计算表示h
t
的均值与标准差;
16.3)基于所述均值与标准差,得到潜在表示z
t

17.进一步地,所述全连接层中的正太分布函数为后验分布。
18.进一步地,通过以下步骤得到重建序列w

t

19.1)将潜在表示z
t
与时间t-1处的变量d
t-1
输入lstm单元,得到变量d
t

20.2)将变量d
t
输入一全连接层,得到重建序列w

t

21.进一步地,得到预测序列w

t
的方法包括:使用一个基于rnn改进的lstm神经网络。
22.进一步地,基于生成器的损失函数lossa、预测器的损失函数lossb与整体任务损失函数l进行训练,其中所述生成器用以重建,所述预测器用以预测,所述损失函数函数l进行训练,其中所述生成器用以重建,所述预测器用以预测,所述损失函数所述损失函数所述损失函数所述损失函数l=∑i′
wi′
·
li′
,n为训练流量序列的长度,wi为真实数据,w
′i为重建数据,θ函数代表欧氏距离的聚类算法,表示h
t
基于该训练流量与一lstm层得到,w
″i为预测数据,wi′
为权重参数,li′
为每个任务i

的损失。
23.进一步地,通过以下步骤得到异常检测结果:
24.1)根据窗口序列w
t
与重建序列w

t
及窗口序列w
t
与预测序列w

t
在每一维度上的评分误差分数,获取各维度评分误差分数;
25.2)将各维度评分误差分数与一阈值进行比较,基于差值获取各维度数据的异常贡献度;
26.3)将各维度数据的异常贡献度作为异常检测结果。
27.一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行以上所述方法。
28.一种电子装置,包括存储器和处理器,其中存储器存储执行以上所述方法的程序。
29.与现有技术相比,本发明具有以下优点:
30.(1)采用多任务多结构的训练模型,减少由于单任务检测的不确定性因素导致的检测误报,同时解决了许多异常检测场景中固有的可解释性、规模、精度和复杂性等关键挑战。
31.(2)与通常的异常检测方法相比,该模型具有异常诊断的功能,即给出检测结果,识别最有可能在时间序列中导致异常的维度。
32.(3)由于异常多样性和缺乏训练标签,本发明的方法是一种无监督的方法。并且是对整体维度检测实体异常,因为为每个维度指标训练和维护单独的异常检测模型是一项劳动密集型的工作,会耗费大量人力和计算资源。
附图说明
33.图1为网络多元时间流量序列异常检测的流程图。
34.图2为模型训练阶段总体示意图。
35.图3为任务一训练示意图。
36.图4为任务二训练示意图。
37.图5为异常分数检测示意图。
38.图6为ind数据集实验结果图。
39.图7为pfd数据集实验结果。
40.图8为消融实验结果图。
具体实施方式
41.下面将结合本发明实施方式,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明特定实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
42.网络多元时间流量序列通常是指在网络中连续观察的相等时间间隔收集的多个维度的kpi数据。在本发明中,定义原始时间序列t中每一维度下的数据x={x1,x2,...,xn},其中n是x的长度,x
t
是一个观测值(其中x
t
∈rm),即在t(t≤n)时间点的m维向量:
43.考虑一个无监督的学习问题,原始时间序列t作为训练输入。异常检测是指通过测量未知样本和正常过滤器的标准p计算异常分数,然后将异常分数与阈值进行比较,以获得异常标签。
44.将原始时间序列t转换为窗口序列w
t
={x
t-k+1
,

,x
t-1
,x
t
}用作训练输入,k为给定时间长度。给定一个二元变量y∈[0,1],异常检测的目标是计算一个未知窗口w
t
(t》t)的标签y
t
来指示在时间点t检测到的异常,即通过y
t
=1或y
t
=0判断窗口的异常情况。
[0045]
本发明整体结构由两部分组成:离线训练和在线检测。数据预处理是离线训练和在线检测共享的模块。在数据预处理过程中,数据集通过数据标准化进行转换,然后将多元时间序列分割成长度为k的滑动窗口。经过预处理后,训练一个多元时间序列,通常跨越一段时间(例如,一周或者一个月),被发送到模型训练模块以学习一个模型,该模型捕获多元
时间序列的正常模式并为每个观察输出异常分数。阈值选择模块使用这些异常分数来按照阈值选择方法自动选择异常阈值。该离线培训程序可以定期进行,例如每周或每月一次。具体流程如图1所示。
[0046]
本发明提出的网络整体结构如图2所示,它由编码器(encoder),生成器和预测器三部分组成,encoder利用vae模型将一个高维输入w
t
表示为一个降维的潜在表示z
t
,生成器通过将t时刻的压缩潜在变量和先前的一些信息进行重建得到w

t
,预测器通过利用t-1时刻的压缩潜在变量来预测t时刻的序列得到w

t
。其主要作用是对历史链路流量进行有损压缩和有损恢复,进而获得输入数据中最重要和最稳定的信息。
[0047]
步骤1:数据的特征提取。首先会将异常检测的数据流按照时间点转化成长度为k的滑动窗口,即w
t
={x
t-k+1
,

,x
t-1
,x
t
},这些滑动窗口会批量进行训练,但是因为数据集中所有维度的数值较大,且不同维度间的数据的数量级不同,这会造成某些指标被忽视,模型在收敛过程中不易找到全局最优解。为了使所有不同维度的特征处于同一量纲,因此对数据进行操作之前,本发明需要对数据集中的数据进行特征缩放,特征缩放会使得模型在寻优过程中变得平缓,最后更容易收敛到模型的最优解。本发明使用的是min-max归一化也叫离差归一化,具体公式见公式(1),max和min分别指该维度下的最大值和最小值,newx代表新的数据特征:
[0048][0049]
步骤2:特征压缩。任务一对时间序列的重建主要利用vae模型,vae是一种深度贝叶斯模型,它已成功应用于时间序列的异常检测中。vae将一个高维输入w
t
表示为一个降维的潜在表示z
t
,然后通过z
t
重构w
t
。在整个vae模型中,本发明并没有去使用p
θ
(w
t
|z
t
)(先验分布)是正态分布的假设,而用的是假设p
θ
(z
t
|w
t
)(后验分布)是正态分布。w
t
从后验分布p
θ
(z
t
|w
t
)中采样,此外,为了防止噪声为零,同时保证模型具有生成能力,vae还让所有的p
θ
(z
t
|w
t
)都向标准正态分布看齐,所有的p
θ
(z
t
|w
t
)都向着标准正态分布接近,如式(2)所示。
[0050][0051]
在vae中,它的encoder有两个,一个用来计算均值,一个用来计算标准差,它本质上就是在常规的自编码器的基础上,对encoder的结果(在vae中对应着计算均值的网络)加上了“高斯噪声”,使得结果decoder能够对噪声有鲁棒性,而另外一个encoder(对应着计算标准差的网络)的作用是用来动态调节噪声的强度的。
[0052]
在encoder的过程中,h
t
是经过lstm层输出的结果,相比于gru,虽然结构上较为复杂,但具有更为强大的记忆功能。表示具有relu激活函数的全连接层,n
μ
表示一个计算正太分布的函数,代表通过一个全连接层计算均值,学习非高斯后验分布。通过全连接层后计算出一个标准差和均值,通过变化得到压缩的潜在变量,如式(3)所示:
[0053]
[0054]
步骤3:生成器对多元流量序列重建,具体过程见图3所示。在生成器中,用encoder输出的对角高斯分布z
t
重构w

t
。本发明利用线性高斯ssm来“连接”压缩空间产的空间变量并使它们在时间上依赖。在时间t处,z
t
与时间t-1处的变量d
t-1
一起通过lstm单元后产生确定性变量d
t
。然后通过一个全连接层进一步处理d
t
,对产生的结果同样计算其标准差和均值从而恢复重建的序列,如式(4)所示。
[0055][0056]
步骤4:预测器对多元流量序列进行预测,具体过程见图4所示。在预测器中,基于rnn改进的lstm神经网络模型在处理时间序列数据时具有比较好的效果,并且被广泛使用。lstm神经网络模型的输出信息由当前时刻的输入信息、当前时刻的短期记忆和当前时刻的细胞状态(长期记忆)决定,因此在序列预测问题上得到了广泛的应用,同时也被应用于多元时序的预测。
[0057]
用z
t-1
预测时间t时刻的多元序列,利用双层的lstm进行数据的预测,lstm网络层的主要作用是在已构建的数据特征之上,完成对网络流量的预测,把输入通过修改后的网络前向传播,得到的损失结果再通过修改的网络反向传播。为了有效缓解过拟合现象的发生,会添加dropout层,在一定程度上达到正则化的效果。采用dropout层的网络计算公式如式(5-6)。
[0058]rt
=bernoulli(p)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0059][0060]
上面公式中bernoulli函数是为了生成概率向量,也就是随机生成一个0、1的向量r
t
,意味着随机删掉网络中一半的隐藏神经元,输入输出神经元保持不变,代表t-1时刻神经元的状态,代表待训练的参数,代表偏置项,f函数即为激活函数,最后通过一个全连接层进行t时刻输入维度的序列w

t
预测,建立全连接层的主要是通过降维的方式输出预测结果。
[0061]
步骤5:计算损失函数和异常分数。在损失函数方面也需要同时设置两个不同的loss function,通过损失值的大小对自身的网络进行局部的优化。
[0062]
在生成器中,损失函数可以表示为式(7),训练数据集中每个输入序列数据的长度为n,前一项是均方误差,后一项则是高斯分布的标准差,其中h
t
代表t时刻的向量,θ函数代表欧氏距离的聚类算法,m代表维度:
[0063][0064]
在预测器中,损失函数可以表示为式(8),均方误差是真实值与预测值之间的误差平方的期望值,其中wi是真实数据,w
′i、w
″i是拟合数据,n为样本个数。
[0065]
[0066]
模型中的生成器和预测器通过调整网络参数同时进行训练,在网络结构优化上,因为是多任务训练的网络结构,会有多个输出,所以需要设置不同输出loss的权重来决定训练过程,整体的loss来源于不同任务loss之和。这种loss计算方式的不合理之处是显而易见的,不同任务loss的量级很有可能不一样,loss直接相加的方式有可能会导致多任务的学习被某个任务所主导或学偏。当模型倾向于去拟合某个任务时,其他任务的效果往往可能受到负面影响,效果会相对变差,所以本发明对loss函数进行简单的调整,对每个任务的损失li配置一个固定的权重参数wi,那么总的loss函数变为式(9)所示:
[0067][0068]
系统的性能强烈依赖于每个任务损失之间的相对权重,为此提出了一个原则的方法,结合多个损失函数,同时学习多个目标利用损失的不确定性。本发明将损失的不确定性解释为任务相关的加权,针对异常分数,本发明通过设置不同的输出的权重来计算异常分数,见图5,总的异常分数score可表示为式(10):
[0069]
score=αscorea+βscorebꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)
[0070]
其中α和β代表两个损失函数值的权重,前后两个部分分别对应着重建序列、预测序列与原始序列的评分误差分数,其中scorea和scoreb的计算方式如式(11),函数u和j代表损失值的计算函数。
[0071][0072][0073]
此外,在训练中需要对自身的局部结构自适应调整的其权重和loss weight。随着学习的进行,这两个损失函数减小的速度很可能不一致,往往是一项减小的非常快,另一项减小的超级快,针对该问题,可以自适应的对不用的损失项设置不同的学习率,对于更新快的方向,使用小一点的学习率,对于更新慢的方向,使用大一点的学习率,事实证明,这样可以使神经网络有更好的映射效果。
[0074]
步骤6:阈值计算。为了获得更准确的阈值设定,本发明在测试阶段将最小异常分数e
min
与最大异常分数e
max
的差值划分成k组,对每组设定的异常分数计算相关结果,与实际结果进行比较保存最佳阈值e设定。
[0075]
e=argmax(p(e
min
+kδe))
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(13)
[0076][0077]
其中,公式(13)代表根据不同的k计算阈值差获取最佳结果的阈值,p(e
min
+kδe)是根据阈值计算其f1分数。公式(14)用来计算分阶阈值,m代表划分阶级的数量,
[0078]
步骤7:异常诊断。针对异常时刻的序列x
t
,本发明通过估计x
t
每个维度贡献的异常分数来解释它,对重建的阈值差即代表每个维度的异常分数与阈值的差,按降序排序形成列表l
t
。对于在l
t
中排名越高,对t时间内造成的贡献越大,因此该维度序列造成异常原因的可能性就越大。
[0079]
实验数据
[0080]
本发明使用的数据主要分为两种。一种数据是来自某研究所的网络科研流量数据
集(institute network flow dataset ind)。这是一个检测网络流量数据包指标的数据集。它主要统计的是由snmp-exporter工具监控的多个维度的网络流量数据包的指标信息,这些信息表示总共m=9的连续变量。为了获得我们的训练集,选择了连续几天没有发生任何重大事件的时期,因此,我们能够获得的训练集,基本上是正常的。测试集是选择了一段有异常事件发生的时期,经专业运维人员和专家一起标记的数据集。另一类数据集是网络公开的数据集(public flow dataset pfd),同样也是由snmp-exporter工具监控的多维度网络流量数据包序列,它包含了m=22的连续变量,其异常包含了多种洪泛攻击的情况,具有已标注好的标签。两种类型的数据集的主要特征见表1。
[0081]
表1基准数据集
[0082][0083][0084]
为了证明本发明的整体性能,将其与检测多元时间序列异常的五种无监督方法进行了比较。这些是:usad、自动编码器(ae)、lstm-vae、dagmm、mscred。由于并非所有用于比较的异常检测方法都提供了选择异常阈值的机制,发明人测试了每个模型的可能异常阈值。通过两类不同的数据集,可以进行全面的可行性评估。实验结果如图6和图7所示,可以看到在实际的数据集上,本发明的网络结构有较好的检测效果,在两类数据集上,其精确度,召回率和f1分数上都有着不错地表现结果。总体而言,这些实验结果证明了,与现有的算法相比,基于多任务的异常检测方法的优越性。
[0085]
消融实验
[0086]
使用ind和pfd两个数据集,调查了两个部分的训练的效果。图8显示了使用组合、仅进行生成器训练和仅进行预测器训练时f1分数的性能比较。可以看到,将两个任务相融合的情况下,性能方面都有所提高,例如使用ind数据集上,多任务处理后的性能达到了97.06%,而在仅仅使用任务一阶段的情况下相比,性能提高了1.48%,相比之下,仅仅使用任务二的情况下,f1分数提高了0.38%。
[0087]
以上所述仅为本发明的较佳实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术特征:
1.一种基于多任务的网络多元时间流量序列异常检测方法,其步骤包括:对待测网络多元时间流量序列依据时间窗口进行切分,获取若干窗口序列w
t
;分别编码窗口序列w
t-1
与窗口序列w
t
,得到潜在表示z
t-1
与潜在表示z
t
;基于潜在表示z
t
与潜在表示z
t-1
分别进行重建与预测,得到重建序列w

t
与预测序列w

t
;根据窗口序列w
t
与重建序列w

t
及窗口序列w
t
与预测序列w

t
在每一维度上的评分误差分数,获取异常检测结果。2.如权利要求1所述的方法,其特征在于,编码窗口序列w
t
之前,通过min-max归一化方法,对窗口序列w
t
中各维度数据进行预处理。3.如权利要求1所述的方法,其特征在于,通过以下步骤得到潜在表示z
t
:1)将窗口序列w
t
输入lstm层,得到表示h
t
;2)利用全连接层计算表示h
t
的均值与标准差;3)基于所述均值与标准差,得到潜在表示z
t
。4.如权利要求3所述的方法,其特征在于,所述全连接层中的正太分布函数为后验分布。5.如权利要求1所述的方法,其特征在于,通过以下步骤得到重建序列w

t
:1)将潜在表示z
t
与时间t-1处的变量d
t-1
输入lstm单元,得到变量d
t
;2)将变量d
t
输入一全连接层,得到重建序列w

t
。6.如权利要求1所述的方法,其特征在于,得到预测序列w

t
的方法包括:使用一个基于rnn改进的lstm神经网络。7.如权利要求1所述的方法,其特征在于,基于生成器的损失函数loss
a
、预测器的损失函数loss
b
与整体任务损失函数l进行训练,其中所述生成器用以重建,所述预测器用以预测,所述损失函数所述损失函数所述损失函数l=∑
i

w
i

·
l
i

,n为训练流量序列的长度,w
i
为真实数据,w
i

为重建数据,θ函数代表欧氏距离的聚类算法,表示h
t
基于该训练流量与一lstm层得到,w

i
为预测数据,w
i

为权重参数,l
i

为每个任务i

的损失。8.如权利要求1所述的方法,其特征在于,通过以下步骤得到异常检测结果:1)根据窗口序列w
t
与重建序列w

t
及窗口序列w
t
与预测序列w

t
在每一维度上的评分误差分数,获取各维度评分误差分数;2)将各维度评分误差分数与一阈值进行比较,基于差值获取各维度数据的异常贡献度;3)将各维度数据的异常贡献度作为异常检测结果。9.一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行如权利要求1-8中任一所述方法。10.一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行如权利要求1-8中任一所述方法。

技术总结
本发明公开一种基于多任务的网络多元时间流量序列异常检测方法及装置,包括:对待测网络多元时间流量序列依据时间窗口进行切分,获取若干窗口序列;分别编码窗口序列与,得到潜在表示;基于潜在表示分别进行重建与预测,得到重建序列与预测序列;根据窗口序列与重建序列及窗口序列与预测序列在每一维度上的评分误差分数,获取异常检测结果。本发明采用多任务多结构的训练模型,减少由于单任务检测的不确定性因素导致的检测误报,解决了许多异常检测场景中固有的可解释性、规模、精度和复杂性等关键挑战,可识别最有可能在时间序列中导致异常的维度,减少了大量人力和计算资源。减少了大量人力和计算资源。减少了大量人力和计算资源。


技术研发人员:刘琦 游军玲 葛敬国 李佟 吴炳臻 李辉
受保护的技术使用者:中国科学院信息工程研究所
技术研发日:2021.12.22
技术公布日:2023/7/11
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐