本发明涉及计算机应用于互联网安全,具体是一种联合预测与重构的无监督kpi异常检测方法。
背景技术:
1、为了保证网络服务的质量和可靠性,网络运营商需要监控各种关键性能指标(keyperformance indicator,kpi),如cpu利用率、网络吞吐量、响应时间等。kpi异常数据模式意味着系统的潜在故障。因此,准确、及时地检测kpi的异常情况对于故障诊断、重新配置或迁移都至关重要。目前常用的kpi异常检测方法包括:基于预测的方法、基于重构的方法和基于组合的方法。基于预测的方法使用预测误差来检测异常情况。这种方法通常通过深度学习模型来预测与原始数据尽可能相似的数据。基于重构的方法可以最小化时间序列隐藏表示的重构误差。基于组合的方法同时对预测误差和重建误差进行联合优化。
2、然而,现有的方法仍然存在以下几个问题。第一,许多研究使用循环神经网络(recurrent neural network,rnn)来捕获长期依赖关系。但是,rnn需要更长的计算时间和更多的内存来存储部分结果。第二,由于异常标签的稀缺性,监督学习技术不太适合当前的需求。基于无监督重建的方法可以有效地拟合输入数据,但是当异常与正常数据无法区分时,这些方法同样也可以很好地拟合异常现象。过度拟合现象降低了异常检测方法的准确性。因此,如何在异常标签稀缺、时间序列高度动态甚至存在某些未见过的数据模式下,构建一个高效准确的异常检测模型是一项相当具有挑战性的任务。
技术实现思路
1、本发明的目的是提供一种联合预测与重构的无监督kpi异常检测方法,包括以下步骤:
2、1)获取kpi的多元时间序列χ。
3、所述多元时间序列χ如下所示:
4、χ={x1,...,xt,...,xt} (1)
5、式中,xt是在t时刻的一个m维向量矩阵。t是时间戳长度。
6、2)对多元时间序列χ进行归一化处理,得到归一化序列χ。所述归一化处理采用的方法包括最小-最大归一化方法。
7、3)对归一化序列χ进行数据清洗,去除异常数据,得到干净序列s(χ)。
8、所述对归一化序列χ进行数据清洗去除异常数据采用的方法是光谱残差算法,包括以下步骤:
9、3.1)获取归一化序列χ的对数振幅频谱的傅里叶变换,计算公式如下所示:
10、
11、式中,amplitude()为振幅频谱计算公式。表示傅里叶变换。f表示频率。l(f)表示对数光谱。
12、3.2)计算频谱残差r(f),计算公式如下所示:
13、r(f)=l(f)-h(f)l(f) (3)
14、式中,h(f)是局部平均滤波器。
15、3.3)通过反傅里叶变换,得到去除异常数据的干净序列s(χ),计算公式如下所示:
16、
17、式中,表示反傅里叶变换。phrase为相位频谱计算公式。||·||表示范数。
18、4)通过滑动窗口对干净序列s(χ)进行划分,得到滑动窗口数据wt。
19、所述滑动窗口的长度为l,滑动窗口数据wt如下所示:
20、wt={xt-l+1,...,xt} (5)
21、5)通过一维卷积提取滑动窗口数据wt的高级特征ct。
22、所述高级特征ct如下所示:
23、
24、式中,为滑动窗口数据wt的第m个特征。
25、6)建立特征指向的图注意力网络和时间指向的图注意力网络,将高级特征ct输入到特征指向的图注意力网络和时间指向的图注意力网络中进行处理,分别捕获特征指向的依赖关系ft和时间指向的依赖关系
26、所述对高级特征ct进行特征指向的图注意力网络和时间指向的图注意力网络处理,包括以下步骤:
27、6.1)初始化特征指向的图注意力网络和时间指向的图注意力网络,特征指向的图注意力网络的输入计算公式如下所示:
28、
29、式中,代表节点。代表边。
30、时间指向的图注意力网络的输入计算公式如下所示:
31、
32、式中,代表节点。代表边。
33、代表高级特征ct的转置。
34、6.2)计算特征指向的图注意力网络的节点和节点之间的注意力系数∈ij,计算公式如下所示:
35、
36、式中,a是参数向量。w是权重矩阵。||表示连接操作,leakyrelu是激活函数。
37、计算时间指向的图注意力网络的节点和节点之间的注意力系数计算公式如下所示:
38、
39、式中,a1是参数向量。w1是权重矩阵。
40、6.3)归一化注意力系数∈ij和计算特征指向的图注意力网络的节点与节点的注意力分数αij,计算公式如下所示:
41、
42、式中,softmax是归一化函数,表示节点的邻居节点,eij表示节点和节点之间的边。
43、计算时间指向的图注意力网络的节点和节点的注意力分数计算公式如下所示:
44、
45、式中,表示节点的邻居节点,e′ij表示节点和节点之间的边。
46、6.4)输出特征指向的依赖关系ft和时间指向的依赖关系计算公式如下所示:
47、
48、
49、式中,sigmoid是激活函数。
50、7)聚合高级特征ct、捕获特征指向的依赖关系ft和时间指向的依赖关系获取聚合信息ht。
51、8)建立基于预测的模块和基于重建的模块,将聚合信息ht并行输入到基于预测的模块和基于重建的模块中进行训练,计算基于预测的模块损失基于重建的模块损失和复合目标损失
52、所述将聚合信息ht并行输入到基于预测的模块和基于重建的模块中进行训练,包括以下步骤:
53、8.1.1)在残差块中应用跳跃连接来加快训练过程ot,训练过程ot的计算公式如下所示:
54、
55、式中,表示残差块。
56、8.1.2)将训练过程ot转化为查询矩阵qt、键矩阵kt和值矩阵vt,获得三个不同的权重矩阵和计算公式如下所示:
57、
58、
59、
60、8.1.3)利用权重矩阵和来定义缩放点积注意力at,计算公式如下所示:
61、
62、式中,n是缩放比例因子。
63、8.1.4)将缩放点积注意力at输入到全连接层,得到预测值
64、所述基于预测的模块损失基于重建的模块损失和复合目标损失的计算包括以下步骤:
65、8.2.1)计算基于预测的模块损失计算公式如下所示:
66、
67、式中,xt为原始值,为预测值。
68、8.2.2)计算基于重建的模块损失计算公式如下所示:
69、
70、式中,w1,w2和w3是控制损失函数重要性的超参数。ξ是一个小数,且ξ<1。e是总的训练轮数。为重构损失,为潜在空间损失,为对抗性损失。
71、8.2.3)计算复合目标损失计算公式如下所示:
72、
73、式中,∝1和∝2是超参数。
74、所述基于重构的模块包括编码器ge1、编码器ge2、解码器gd和判别器d。
75、所述编码器ge1和解码器gd共同组成变分自动编码器。
76、所述编码器ge1和ge2具有相同的参数。
77、所述计算重构损失潜在空间损失和对抗性损失的方法包括以下步骤:
78、8.3.1)计算重构损失计算公式如下所示:
79、
80、式中,kl·表示kl散度。zt是隐藏表示。p(·)表示真实分布;q(·)是用于拟合p(·)的近似分布;ht是重构模型的输入。
81、8.3.2)考虑到训练的稳定性和重构效果,更新重构损失得到的计算公式如下所示:
82、
83、8.3.3)计算潜在空间损失计算公式如下所示:
84、
85、8.3.4)计算对抗性损失计算公式如下所示:
86、
87、式中,e1表示编码器,d表示解码器,gd表示鉴别器。
88、9)采用动态阈值计算方法来设置阈值τ。
89、所述动态阈值计算方法包括以下步骤:
90、1)建立损失集并通过指数加权平均得到平滑损失集
91、2)计算阈值τ,计算公式如下所示:
92、
93、式中,β是超参数,μ(·)和σ(·)分别表示均值和方差。
94、10)把复合目标损失作为异常得分,根据阈值判断是否存在异常事件。若异常得分大于阈值τ,则输出异常标签yt=1。若异常得分小于等于阈值τ,则输出异常标签yt=0。
95、本发明的技术效果是毋庸置疑的,本发明解决了网络服务异常检测问题。本发明提出了一种联合预测与重构的无监督kpi异常检测方法。具体来说,本发明使用特征指向的图注意力网络和时间指向的图注意力网络分别学习特征指向依赖关系和时间指向依赖关系。利用时间卷积注意力网络捕获复杂的长时间依赖关系。此外,为解决变分自动编码器过拟合问题,本发明将变分自动编码器与生成式对抗网络结合起来作为基于重构的模块。