基于注意力机制的服务器异常检测方法及异常检测模型与流程

未命名 08-29 阅读:90 评论:0


1.本发明涉及服务器异常检测技术领域,特别是一种基于注意力机制的cnn-lstm服务器异常检测方法及cnn-lstm异常检测模型。


背景技术:

2.全球信息化的快速发展,网络规模变得日益庞大,企业的it系统也变得越来越复杂。在该环境下,对于部署服务器集群的运维人员提出了更高的要求和挑战。传统的人工运维方式已经难以满足企业的智能化管理要求,随着机器学习、深度学习等技术的飞速发展,人们提出了智能运维的概念,将人工智能与运维结合,利用人工智能技术自动监控it业务,检测服务器运行过程中的异常情况,提升运维效率。
3.大量应用场景对快速有效检测异常的需求以及异常检测场景相较于其他场景的特殊性,使得异常检测问题的研究具有极大的应用和研究价值,促使很多异常检测算法被提出和实践。智能化的异常检测算法主要分为三大类,基于统计的异常检测算法、无监督异常检测算法和有监督异常检测算法。
4.基于统计的异常检测算法,统计学思想,通过对历史数据计算统计特征,然后判断待检测的数据是否符合历史数据的统计特征,如果是则认为是正常,如果不是则认为是异常。基于统计的异常检测算法的特点是简单易用,可解释性强,但无法处理复杂的场景。无监督异常检测算法,通过对数据进行计算分析,识别出那些相对孤立的点,把这些孤立点就看作为异常点。无监督异常检测算法的特点是无需打标数据,在特征选取合理情况下准确性高,能处理大规模复杂场景等,但也存在特征选取难,可解释性差等问题。对于有监督异常检测,首先需要一大批带有标签的数据作为训练数据,将训练数据作为有监督算法的输入,对算法模型进行训练后得到模型,然后将待检测的数据作为模型的输入,最终模型给出待检测是正常还是异常类别。通过有监督学习方法,在时间序列数据中可以得到比较好的异常分类效果。
5.对于时间序列来说,rnn网络可以利用之前的信息影响后面结点的输出,但缺乏对较长时间片特征信息的记忆。相比于rnn,lstm网络引入了门机制用于控制特征的流通和损失。在较多的数据特征时,网络模型也会有较多的参数,模型存储的信息量也就会越大,会导致信息过载的问题,通过引入注意力机制,在众多的输入信息和数据特征中,注意力分配模型分配给不同特征的注意力大小不同,这会降低无用信息的关注度,甚至过滤掉无关信息,可以解决信息过载问题,并提任务处理的效率和准确性。


技术实现要素:

6.本发明针对现有技术中存在的上述不足,提供一种基于注意力机制的cnn-lstm服务器异常检测方法及cnn-lstm异常检测模型。
7.第一方面,本发明实施例提供一种基于注意力机制的cnn-lstm服务器异常检测方法,其特征在于,包括:
8.根据服务器的关键性能指标kpi数据曲线,提取时序特征;
9.搭建基于注意力机制的卷积神经网络-长短期记忆网络cnn-lstm异常检测模型;
10.训练基于注意力机制的cnn-lstm异常检测模型。
11.在一些实施例中,根据服务器的kpi数据曲线,提取时序特征,包括:
12.将一个单条时序kpi提取出55个特征。
13.在一些实施例中,将一个单条时序kpi提取出55个特征,包括:
14.根据公式(1)将s
t
时间序列变为d
t
差分序列,其他条件不变,得到反映kpi序列变化剧烈强度的16个维度的特征:
[0015][0016]
其中,d
t
=s
t-s
t-1
,holt-winters|
α,β,γ
(t0)表示holt-winters预测器;stddev|
win
(t0)表示以t0为终点,窗口大小为win的时间序列的均值;α,β,γ=0.35,0.7,win分别取一小时,一天;
[0017]
根据公式(2),得到n
t
,n
t
为将kpi做时间序列,解(tsd)所得到的噪声分量,窗口大小win取一小时,一天得到2个维度的特征:
[0018][0019]
提取作为时间序列所固有的属性,窗口期分别取一个小时、一天、一周,得到时间序列在指定窗口下的均值、均方根值、标准差共9个时序属性。
[0020]
在一些实施例中,构建基于注意力机制的cnn-lstm异常检测模型,包括:
[0021]
构建cnn卷积层,通过所述cnn卷积层得到卷积层输出的结果;
[0022]
将所述卷积层输出的结果作为lstm网络的输入,得到lstm的输出结果;
[0023]
根据所述lstm的输出结果和注意力机制得到所述基于注意力机制的cnn-lstm异常检测模型。
[0024]
在一些实施例中,构建cnn卷积层,通过所述cnn卷积层得到卷积层输出的结果,包括:
[0025]
构建一维卷积模块;设置一维卷积核,其中卷积核大小为1
×
1,步长stride=1,偏置bias=true,输入通道为55,输出通道为48;
[0026]
提取kpi数据的空间特征,然后在cnn卷积层之后对数据进行归一化处理,得到一维卷积得到的结果;
[0027]
将一维卷积得到的结果,经过relu激活函数,再通过dropout层以防止过拟合现象的发生,得到卷积层输出的结果。
[0028]
在一些实施例中,根据所述lstm的输出结果和注意力机制得到所述基于注意力机制的cnn-lstm异常检测模型,包括:
[0029]
设置两个可以训练的初始变量u,w,当输入数据为h时,使用公式(3)计算出w和数据h中每一个向量的相似度;
[0030]fit
=tanh(wh
it
+bw)式(3);
[0031]
通过公式(4)让f
it
的转置和u相乘,经过softmax归一化得到权重α
it

[0032]
[0033]
通过公式(5)让α
it
和h
it
相乘并求和得到加权后的向量表示si;
[0034]
si=∑
t
α
ithit
式(5);
[0035]
将引入注意力机制之后的输出结果输出到全连接层,得到异常检测二分类的结果。
[0036]
在一些实施例中,训练基于注意力机制的cnn-lstm异常检测模型,包括:
[0037]
对55个特征的数据提取出48个特征的数据;
[0038]
将所述48个特征的数据作为lstm层的输入,使用随机梯度下降算法来更新基于注意力机制的cnn-lstm异常检测模型的参数。
[0039]
在一些实施例中,对55个特征的数据提取出48个特征的数据,包括:
[0040]
根据原始kpi数据曲线,为每个时间戳结点提取出55个特征,并将数据分批次进行训练,一个批次数据的batch size为64,最终得到模型输入的数据大小为[64,55]维度的向量;
[0041]
convld的输入通常是三维,为了对数据进行一维卷积,在传入cnn前应该手动增加一个维度以满足cnn要求,使特征维数为1;
[0042]
卷积操作后得到[64,48,1]形状的数据,将数据形状转换为[1,64,48],表示输入序列长度为1,一批训练64个样本,输入数据维度为48。
[0043]
在一些实施例中,使用随机梯度下降算法来更新基于注意力机制的cnn-lstm异常检测模型,包括:
[0044]
确定损失函数为:
[0045][0046]
其中,为样本的预测值,y为样本的实际标签值,对于属于0类的样本,标签y为0,那么第一项就等于0了,最终损失函数变为网络的输出y越靠近0,loss函数越小;
[0047]
确定参数更新公式如下:w
i+1
=w
i-α
·gi
式(7)
[0048]
其中,学习率α初始化为0.01,gi为反向传播的梯度,w为权重。
[0049]
第二方面,本发明实施例提供一种基于注意力机制的cnn-lstm异常检测模型,包括:cnn卷积层、lstm、注意力层、全连接层,时序特征通过所述cnn卷积层得到卷积层输出的结果;将所述卷积层输出的结果作为lstm网络的输入,得到lstm的输出结果;所述lstm的输出结果作为所述注意力层的输入,得到引入注意力机制之后的输出结果,将引入注意力机制之后的输出结果输出到全连接层,实现异常检测二分类的结果。
[0050]
本发明实施例中,为了更好地在实际服务器运维场景中完成异常检测的任务,提出了一种基于注意力机制的cnn-lstm服务器异常检测方法。混合使用cnn与双向lstm网络,并创造性的添加了注意力机制,提高了异常检测性能,使得模型能及时发现服务器发生的异常。
附图说明
[0051]
图1为本发明实施例提供的一种基于注意力机制的cnn-lstm服务器异常检测方法的流程图;
[0052]
图2为本发明实施例提供的一种基于注意力机制的cnn-lstm服务器异常检测方法
的另一流程图;
[0053]
图3为本发明实施例提供的基于注意力机制的cnn-lstm异常检测模型结构图;
[0054]
图4为现有技术中基于rnn的异常检测实验结果;
[0055]
图5为现有技术中基于lstm的异常检测的实验结果;
[0056]
图6为本发明实施例提供的一种基于注意力机制的cnn-lstm服务器异常检测方法的实验结果。
具体实施方式
[0057]
在下文中将参考附图更充分地描述示例实施例,但是所述示例实施例可以以不同形式来体现且不应当被理解为限于本文阐述的实施例。反之,提供这些实施例的目的在于使本发明透彻且完整,并将使本领域技术人员充分理解本发明的范围。
[0058]
在不冲突的情况下,本发明实施例及实施例中的各特征可相互组合。
[0059]
如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
[0060]
在本文所使用的术语仅用于描述特定实施例,且不意欲限制本发明。本发明所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由......制成”时,制定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。
[0061]
除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被理解为具有与其在相关技术以及本发明的背景下的含义一致的含义,且将不理解为具有理想化或过度形式上的含义,除非本文明确如此限定。
[0062]
为了提高异常检测性能,本发明实施例提供一种基于注意力机制的cnn-lstm服务器异常检测方法及cnn-lstm异常检测模型。
[0063]
为使本领域的技术人员更好的理解技术方案,下面结合附图对本发明提供的一种基于注意力机制的cnn-lstm服务器异常检测方法及cnn-lstm异常检测模型进行详细描述。
[0064]
第一方面,如图1所示,本发明实施例提供一种基于注意力机制的cnn-lstm服务器异常检测方法,包括:
[0065]
步骤s101,根据服务器的kpi数据曲线,提取时序特征;
[0066]
步骤s102,搭建基于注意力机制的cnn-lstm异常检测模型;
[0067]
步骤s103,训练基于注意力机制的cnn-lstm异常检测模型。
[0068]
本发明实施例中,为了更好地在实际服务器运维场景中完成异常检测的任务,提出了一种基于注意力机制的cnn-lstm服务器异常检测方法。混合使用cnn与双向lstm网络,并创造性的添加了注意力机制,提高了异常检测性能,使得模型能及时发现服务器发生的异常。
[0069]
在一种优选的实施方式中,如图2所示,搭建基于注意力机制的cnn-lstm异常检测模型包括搭建深度学习环境和搭建基于注意力机制的cnn-lstm异常检测模型。
[0070]
在一些实施例中,根据服务器的kpi数据曲线,提取时序特征(即步骤s101),包括:
[0071]
将一个单条时序kpi提取出55个特征。
[0072]
对于机器学习,特征提取是十分关键的环节,从原始的kpi数据序列构造出新的特征属性能让异常检测模型拥有更好的性能。
[0073]
在一些实施例中,将一个单条时序kpi提取出55个特征,包括:
[0074]
根据公式(1)将s
t
时间序列变为d
t
差分序列,其他条件不变,得到反映kpi序列变化剧烈强度的16个维度的特征:
[0075][0076]
其中,d
t
=s
t-s
t-1
,holt-winters|
a,β,γ
(t0)表示holt-winters预测器;stddev|
win
(t0)表示以t0为终点,窗口大小为win的时间序列的均值;α,β,γ=0.35,0.7,win分别取一小时,一天;
[0077]
根据公式(2),得到n
t
,n
t
为将kpi做时间序列,解(tsd)所得到的噪声分量,窗口大小win取一小时,一天得到2个维度的特征:
[0078][0079]
提取作为时间序列所固有的属性,窗口期分别取一个小时、一天、一周,得到时间序列在指定窗口下的均值、均方根值、标准差共9个时序属性。
[0080]
本发明实施例中,根据服务器的kpi数据曲线,以及运维经验,进行特征提取。
[0081]
在传统运维中,为了反映出kpi变化的剧烈程度,我们通常将kpi在t时刻的值与t1时刻的值作为类似于环比的指标。本发明使用t时刻与过去10s、30s、60s窗口期指标平均值的比值生成3个维度的特征。此外,根据环比仅能计算出指标值之间的比例关系,我们有时还需要知道指标值之间的差值关系,也能反映指标值变化的剧烈程度,我们称之为环差。本发明使用t时刻与过去10s、30s、60s窗口期指标平均值的差值生成3个维度的特征。企业服务器的kpi因为业务性质的影响,很多都具有周期性,通常以天数和周数的周期性最强,根据此特点,提取了当前t时刻指标值与昨天和上周指标值的比值作为2个维度的特征。与前面的环比和环差类似,本发明还提取了2个维度的同差特征。通常情况下,一天24小时中服务器的负载情况会有较大的差异,周末和工作日的服务器状态也会不一样,本发明还提取了关于小时和星期数2个维度的特征。
[0082]
关于异常检测方式,我们可以根据历史数据构建出检测器,将当前时刻的值与检测器预测的值相比较,判断偏离程度是否超过一定的值,若超过一定的值判断为异常数据。我们根据这个原理,设置了表现偏离程度的属性。我们使用holt-winters预测器,其中它的三个参数:数据平滑因子α、趋势平滑因子β、季节性平滑因子γ,我们分别取0.35,0.7。
[0083]
除了根据公式(2),得到n
t
之外,本发明还提取了作为时间序列所固有的属性,窗口期分别取一个小时、一天、一周,得到了时间序列在指定窗口下的均值、均方根值、标准差共9个时序属性。至此,本发明将一个单条时序kpi提取出了55个特征,然后将这些特征运用到机器学习模型中进行学习。
[0084]
在一些实施例中,构建基于注意力机制的cnn-lstm异常检测模型(即步骤s102),包括:
[0085]
构建cnn卷积层,通过所述cnn卷积层得到卷积层输出的结果;
[0086]
将所述卷积层输出的结果作为lstm网络的输入,得到lstm的输出结果;
[0087]
根据所述lstm的输出结果和注意力机制得到所述基于注意力机制的cnn-lstm异
常检测模型。
[0088]
本发明实施例的整个网络模型使用lstm作为主干特征提取网络,对输入数据进行短期或者长期依赖的数据进行精确的建模。相比于传统的循环神经网络rnn,lstm网络能够有效的克服rnn中存在的梯度消失问题,lstm网络能够存储更多的记忆,在长距离依赖的任务中往往具有更优秀的表现。本发明致力于解决服务器kpi异常检测,kpi指标往往具有周期性和依赖性,使用lstm网络使得模型能够捕获更多的隐藏特征和全局特性。
[0089]
在一些实施例中,构建cnn卷积层,通过所述cnn卷积层得到卷积层输出的结果,包括:
[0090]
构建一维卷积模块;设置一维卷积核,其中卷积核大小为1
×
1,步长stride=1,偏置bias=true,输入通道为55,输出通道为48;
[0091]
提取kpi数据的空间特征,然后在cnn卷积层之后对数据进行归一化处理,得到一维卷积得到的结果;
[0092]
将一维卷积得到的结果,经过relu激活函数,再通过dropout层以防止过拟合现象的发生,得到卷积层输出的结果。
[0093]
在一些实施例中,根据所述lstm的输出结果和注意力机制得到所述基于注意力机制的cnn-lstm异常检测模型,包括:
[0094]
设置两个可以训练的初始变量u,w,当输入数据为h时,使用公式(3)计算出w和数据h中每一个向量的相似度;
[0095]fit
=tanh(wh
it
+bw)式(3);
[0096]
通过公式(4)让f
it
的转置和u相乘,经过softmax归一化得到权重α
it

[0097][0098]
通过公式(5)让α
it
和h
it
相乘并求和得到加权后的向量表示si;
[0099]
si=∑
t
α
ithit
式(5);
[0100]
将引入注意力机制之后的输出结果输出到全连接层,实现异常检测二分类的结果。
[0101]
需要说明的是,异常检测二分类的结果包括输出1是异常,0是正常。
[0102]
基于注意力机制的cnn-lstm异常检测模型可以建立序列内部的长距离依赖,虽然通过全连接神经网络也可以做到,但是全连接网络的连接边数是固定不变的,因而无法处理长度可变的序列。而基于注意力机制的cnn-lstm异常检测模型可以动态生成不同连接的权重,即基于注意力机制的cnn-lstm异常检测模型生成多少个权重,权重的大小是多少,都是可变,可以训练的。
[0103]
本发明通过结合卷积神经网络和lstm网络各自的优点和特性,一维卷积层用来提取多维数据的空间特征,lstm提取数据的时间依赖性,本发明提出了注意力机制来关注不同特征对结果影响程度的大小,赋予了每个特征的注意力权重系数,本方法充分考虑了kpi时间序列数据的特性,对深度学习网络进行改进与探索,为服务器异常检测提供了技术支持,从而提高了运维人员的工作效率,降低其维护成本。
[0104]
在一些实施例中,训练基于注意力机制的cnn-lstm异常检测模型(即步骤s103),包括:
[0105]
对55个特征的数据提取出48个特征的数据;
[0106]
将所述48个特征的数据作为lstm层的输入,使用随机梯度下降算法来更新基于注意力机制的cnn-lstm异常检测模型的参数。
[0107]
本发明实施例中,图3即为基于注意力机制的cnn-lstm异常检测模型。
[0108]
在一些实施例中,对55个特征的数据提取出48个特征的数据,包括:
[0109]
根据原始kpi数据曲线,为每个时间戳结点提取出55个特征,并将数据分批次进行训练,一个批次数据的batch size为64,最终得到模型输入的数据大小为[64,55]维度的向量;
[0110]
convld的输入通常是三维,为了对数据进行一维卷积,在传入cnn前应该手动增加一个维度以满足cnn要求,使特征维数为1;
[0111]
卷积操作后得到[64,48,1]形状的数据,将数据形状转换为[1,64,48],表示输入序列长度为1,一批训练64个样本,输入数据维度为48。
[0112]
本发明实施例中,基于注意力机制的cnn-lstm异常检测,一个给定的时间序列需要先经过特征数据预处理,然后将得到的特征数据放入模型中,先对数据进行一维卷积提取空间特征,通过lstm提取数据的长短期依赖,将原本的55维度的特征提取成48个维度的数据,最后使用注意力机制分配权值,经过全连接操作得出最后的分类信息。
[0113]
数据之间的前后关系依赖,提取数据间的联系由lstm层负责,通过更新遗忘门(f)、输入门(i)、输出门(o)相关参数,挖掘时序数据内在的联系。经过lstm层的处理以及变换,得到了具有长短期依赖的数据,输出结果为[64,1,48]维度。初始化注意力机制所需要用到的变量u,w,在训练过程中,u,w的值会不断更新优化,根据注意力机制选取和任务相关信息的思想,网络模型会将较大的权重分给那些与任务关系较为密切的信息。经过过滤无关信息,最后经过全连接层将数据特征空间映射到样本标记空间,得到最后的预测结果。
[0114]
在一些实施例中,使用随机梯度下降算法来更新基于注意力机制的cnn-lstm异常检测模型,包括:
[0115]
确定损失函数为:
[0116][0117]
其中,为样本的预测值,y为样本的实际标签值,对于属于0类的样本,标签y为0,那么第一项就等于0了,最终损失函数变为网络的输出y越靠近0,loss函数越小;
[0118]
确定参数更新公式如下:w
i+1
=w
i-α
·gi
式(7)
[0119]
其中,学习率α初始化为0.01,gi为反向传播的梯度,w为权重。
[0120]
本发明采用的是交叉熵损失函数,公式如式(6),交叉熵主要是用来判定实际的输出与期望的输出的接近程度,用它来衡量网络的输出与标签的差异,利用这种差异经过反向传播去更新网络参数。模型构建完成后,在整个网络的训练过程中,损失主要为最后的二分类预测任务的损失。
[0121]
随机梯度下降算法(stochastic gradient descent,sgd)每次选择一个mini-batch,而不是全部样本,使用梯度下降来更新模型参数。损失函数里一般会有两种参数,一种是控制输入信号量的权重(weight,简称ω),另一种是调整函数与真实值距离的偏差
(bias,简称b)。优化器所做的工作就是梯度下降方法,不断地调整权重ω和偏差b,使得损失函数越来越小。通过计算梯度,我们可以不断的调整更新参数以到达最优。
[0122]
基于注意力机制的cnn-lstm网络模型使用随机梯度下降算法进行优化,批处理大小batch size为64,学习率α初始化为0.01,整个数据集训练100次。优化器不断调整损失函数(目标函数)的各个参数,使得损失函数的值变得越来越小,不断的逼近全局最优值。
[0123]
第二方面,本发明实施例提供一种基于注意力机制的cnn-lstm异常检测模型,包括:cnn卷积层、lstm、注意力层、全连接层,时序特征通过所述cnn卷积层得到卷积层输出的结果;将所述卷积层输出的结果作为lstm网络的输入,得到lstm的输出结果;所述lstm的输出结果作为所述注意力层的输入,得到引入注意力机制之后的输出结果,将引入注意力机制之后的输出结果输出到全连接层,实现异常检测二分类的结果。
[0124]
下面简要描述实验配置以及分析,进行服务器kpi异常检测,通过实验结果比较分析实际检测效果得到了提高。
[0125]
1.实验条件
[0126]
本发明的硬件测试平台为处理器intel(r)core(tm)i5-8300h cpu,主频为2.30ghz,内存为16gb,显卡为nvidia geforce gtx 1050ti。软件平台为windows 10操作系统,开发环境为pycharm。编程语言为python,深度学习网络架构为pytorch。
[0127]
2.实验数据
[0128]
本发明的性能评价主要使用aiops2018挑战赛的数据集:是2018年由国际aiops挑战赛提供的异常检测数据集。
[0129]
aiops2018挑战赛的数据集包含多种类型的kpi时间序列曲线,有的为周期性的,有的为稳定性的,旨在通过算法分析kpi的时间序列数据,判断其是否出现异常行为。本专利选择80000个数据指标作为训练集,38452个数据指标作为测试集进行实验验证和对比。
[0130]
3.性能比较
[0131]
本发明用到的现有技术对比分类的方法如下:
[0132]
(1)基于rnn的异常检测方法,是一种以序列数据为输入,在序列演进方向进行递归且所有节点(循环单元)按链式连接的递归神经网络。
[0133]
(2)基于lstm的异常检测方法,解决了数据的长期依赖问题,能够处理较长的序列数据。
[0134]
对于服务器指标进行异常检测,把样本点划分为异常、正常两种类别;由于异常检测的数据集是非平衡数据集,所以并不适合用正确率作为衡量算法效果的指标。
[0135]
在异常检测中,我们通常过把异常样本设为正样本(positive),把正常样本设为负样本(negative)。本发明使用精确率(precision)和召回率(recall)作为kpi异常检测模型的评价指标。精确率指系统预测为异常的样本中确实为异常的样本所占的百分比;召回率指系统预测正确的异常占所有异常的百分比。有四个变量tp、fp、tn、fn可以直观地用分类混淆矩阵表示,见表1。
[0136]
表1
[0137][0138]
精确率定义为
[0139][0140]
精确率越高表示系统越不容易产生误报。
[0141]
召回率定义为:
[0142][0143]
召回率越高表示系统越不容易产生漏报。
[0144]
f1值是精确率和召回率的调和均值,值越大越好,定义为
[0145][0146]
表2是本发明以及另外两种方法在aiops2018挑战赛的数据集下的精确率、召回率、f1值。
[0147][0148]
从表2可以看出,在aiops2018挑战赛的数据集下,本发明提出的检测方法基于注意力机制的cnn-lstm服务器异常检测方法,无论是精确率,召回率,f1值,都是要优于其它检测方法。所述精确率越大,表示检测越正确。所述召回率越大,越不容易产生漏报。
[0149]
实验效果对比如图4-图6。由效果图所呈现的数据来看,由于rnn(如图4)和单独的lstm(如图5)对于数据捕获的信息相对较少,召回率相对来说较低。基于注意力机制的cnn-lstm异常检测模型(如图6)通过cnn对数据特征进行提取,并且使用了注意力机制,把握关键信息,过滤掉了无用的信息,大幅提高了异常检测的召回率,大大减少了服务器异常漏报的可能。
[0150]
通过上述实验数据分析,本发明所提出的方法能够有效提升异常检测的f1值。
[0151]
本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实施例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特征和/或元素,或可与其他实施例相结合描述的特征、特征和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐述的本发明的范围的情况下,可进行各种形式和细节上的改变。

技术特征:
1.一种基于注意力机制的cnn-lstm服务器异常检测方法,其特征在于,包括:根据服务器的关键性能指标kpi数据曲线,提取时序特征;搭建基于注意力机制的卷积神经网络-长短期记忆网络cnn-lstm异常检测模型;训练基于注意力机制的cnn-lstm异常检测模型。2.根据权利要求1所述的基于注意力机制的cnn-lstm服务器异常检测方法,其特征在于,根据服务器的kpi数据曲线,提取时序特征,包括:将一个单条时序kpi提取出55个特征。3.根据权利要求1所述的基于注意力机制的cnn-lstm服务器异常检测方法,其特征在于,将一个单条时序kpi提取出55个特征,包括:根据公式(1)将s
t
时间序列变为d
t
差分序列,其他条件不变,得到反映kpi序列变化剧烈强度的16个维度的特征:其中,d
t
=s
t-s
t-1
,holt-winters|
α,β,γ
(t0)表示holt-winters预测器;stddev|
win
(t0)表示以t0为终点,窗口大小为win的时间序列的均值;α,β,γ=0.35,0.7,win分别取一小时,一天;根据公式(2),得到n
t
,n
t
为将kpi做时间序列分解(tsd)所得到的噪声分量,窗口大小win取一小时,一天得到2个维度的特征:提取作为时间序列所固有的属性,窗口期分别取一个小时、一天、一周,得到时间序列在指定窗口下的均值、均方根值、标准差共9个时序属性。4.根据权利要求1所述的基于注意力机制的cnn-lstm服务器异常检测方法,其特征在于,构建基于注意力机制的cnn-lstm异常检测模型,包括:构建cnn卷积层,通过所述cnn卷积层得到卷积层输出的结果;将所述卷积层输出的结果作为lstm网络的输入,得到lstm的输出结果;根据所述lstm的输出结果和注意力机制得到所述基于注意力机制的cnn-lstm异常检测模型。5.根据权利要求4所述的基于注意力机制的cnn-lstm服务器异常检测方法,其特征在于,构建cnn卷积层,通过所述cnn卷积层得到卷积层输出的结果,包括:构建一维卷积模块;设置一维卷积核,其中卷积核大小为1
×
1,步长stride=1,偏置bias=true,输入通道为55,输出通道为48;提取kpi数据的空间特征,然后在cnn卷积层之后对数据进行归一化处理,得到一维卷积得到的结果;将一维卷积得到的结果,经过relu激活函数,再通过dropout层以防止过拟合现象的发生,得到卷积层输出的结果。6.根据权利要求4所述的基于注意力机制的cnn-lstm服务器异常检测方法,其特征在于,根据所述lstm的输出结果和注意力机制得到所述基于注意力机制的cnn-lstm异常检测模型,包括:
设置两个可以训练的初始变量u,w,当输入数据为h时,使用公式(3)计算出w和数据h中每一个向量的相似度;f
it
=tanh(wh
it
+b
w
)式(3);通过公式(4)让f
it
的转置和u相乘,经过softmax归一化得到权重α
it
;通过公式(5)让α
it
和h
it
相乘并求和得到加权后的向量表示s
i
;s
i
=σ
t
α
it
h
it
式(5);将引入注意力机制之后的输出结果输出到全连接层,得到异常检测二分类的结果。7.根据权利要求2所述的基于注意力机制的cnn-lstm服务器异常检测方法,其特征在于,训练基于注意力机制的cnn-lstm异常检测模型,包括:对55个特征的数据提取出48个特征的数据;将所述48个特征的数据作为lstm层的输入,使用随机梯度下降算法来更新基于注意力机制的cnn-lstm异常检测模型的参数。8.根据权利要求7所述的基于注意力机制的cnn-lstm服务器异常检测方法,其特征在于,对55个特征的数据提取出48个特征的数据,包括:根据原始kpi数据曲线,为每个时间戳结点提取出55个特征,并将数据分批次进行训练,一个批次数据的batch size为64,最终得到模型输入的数据大小为[64,55]维度的向量;conv1d的输入通常是三维,为了对数据进行一维卷积,在传入cnn前应该手动增加一个维度以满足cnn要求,使特征维数为1;卷积操作后得到[64,48,1]形状的数据,将数据形状转换为[1,64,48],表示输入序列长度为1,一批训练64个样本,输入数据维度为48。9.根据权利要求7所述的基于注意力机制的cnn-lstm服务器异常检测方法,其特征在于,使用随机梯度下降算法来更新基于注意力机制的cnn-lstm异常检测模型,包括:确定损失函数为:其中,为样本的预测值,y为样本的实际标签值,对于属于0类的样本,标签y为0,那么第一项就等于0了,最终损失函数变为网络的输出y越靠近0,loss函数越小;确定参数更新公式如下:w
i+1
=w
i-α
·
g
o
式(7)其中,学习率α初始化为0.01,g
i
为反向传播的梯度,w为权重。10.一种基于注意力机制的cnn-lstm异常检测模型,其特征在于,包括:cnn卷积层、lstm、注意力层、全连接层,时序特征通过所述cnn卷积层得到卷积层输出的结果;将所述卷积层输出的结果作为lstm网络的输入,得到lstm的输出结果;所述lstm的输出结果作为所述注意力层的输入,得到引入注意力机制之后的输出结果,将引入注意力机制之后的输出结果输出到全连接层,实现异常检测二分类的结果。。

技术总结
本发明公开了一种基于注意力机制的CNN-LSTM服务器异常检测方法及CNN-LSTM异常检测模型,所述方法包括:根据服务器的关键性能指标KPI数据曲线,提取时序特征;搭建基于注意力机制的卷积神经网络-长短期记忆网络CNN-LSTM异常检测模型;训练基于注意力机制的CNN-LSTM异常检测模型。本发明中,为了更好地在实际服务器运维场景中完成异常检测的任务,提出了一种基于注意力机制的CNN-LSTM服务器异常检测方法。混合使用CNN与双向LSTM网络,并创造性的添加了注意力机制,提高了异常检测性能,使得模型能及时发现服务器发生的异常。模型能及时发现服务器发生的异常。模型能及时发现服务器发生的异常。


技术研发人员:沈夏闰 同磊
受保护的技术使用者:北京航天情报与信息研究所
技术研发日:2022.12.26
技术公布日:2023/8/28
版权声明

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

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

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

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

分享:

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

相关推荐