【技术实现步骤摘要】
一种基于双重十字耦合关联的无监督KPI异常检测方法
[0001]本专利技术涉及信息技术系统智能运维
,具体涉及一种基于双重十字耦合关联的无监督KPI(Key Performance Indicator,关键性能指标)异常检测方法。
技术介绍
[0002]随着云计算技术、并行与分布式计算技术、存储技术、网络和通信技术的发展,互联网企业、运营商、金融机构内部信息技术系统(统称为IT系统)的服务器、存储设备和网络设备的数量不断增长,组成架构也愈加复杂。为保障IT系统稳定性和可持续服务能力,IT系统运维至关重要。传统的人力运维充当了“救火队员”的角色,采取事后处置的方式在出现故障后由运维人员手动检查系统内软硬件设备从而发现和处置故障。然而,IT系统的发展导致传统人力运维方式的准确率和效率不断降低、成本不断升高。因此,运维领域提出智能运维(Artificial Intelligence for IT Operations,AIOps)的概念,即利用数据分析技术和人工智能技术赋能IT系统运维场景,从而实现自动化和智能化运维。
[0003]KPI(Key Performance Indicator,关键性能指标)异常检测是智能运维的首要和关键环节。KPI是记录IT系统状态的关键数据,包括业务级KPI(即IT系统上层承载业务的关键性能,如服务等待时延、访问量、用户数等)和机器资源级KPI(即IT系统底层硬件设备、基础软件和应用软件的关键性能,如服务器负载、存储容量、网络吞吐率等)。对KPI进行异常检测可通过识别KPI中 ...
【技术保护点】
【技术特征摘要】
1.一种基于双重十字耦合关联的无监督KPI异常检测方法,其特征在于包括以下步骤:第一步:构建基于双重十字耦合关联的无监督KPI异常检测系统,简称KPI异常检测系统,KPI异常检测系统由历史KPI序列数据库、预处理模块、输入模块、基于双重十字耦合关联的KPI片段特征提取模型、特征转换模块、特征空间距离计算模块、训练优化模块和在线异常检测模块构成;历史KPI序列数据库与预处理模块相连,该数据库存储历史等时间间隔采集的D个KPI变量的值,用于训练KPI片段特征提取模型;历史KPI序列数据库的每一条历史KPI记录为一个二元组t为该记录的记录时间,向量是维度为D的向量,表示t时刻D个KPI变量的值;令历史KPI序列数据库包含的记录总数为T
train
,T
train
和D均为正整数;预处理模块与历史KPI序列数据库、目标IT系统和输入模块相连;目标IT系统是基于双重十字耦合关联的无监督KPI异常检测系统的检测对象,目标IT系统自动记录D个KPI变量的实时KPI值,每条在线KPI记录为一个二元组t和向量的含义与历史KPI序列数据库的含义相同;训练时,预处理模块读取历史KPI序列数据库T
train
条历史KPI记录,将读取的T
train
条历史KPI记录切分为历史KPI片段,每个KPI片段长度为l,l为正整数,得到历史KPI片段集合,将历史KPI片段集合发送给输入模块;在对目标IT系统进行在线检测时,预处理模块读取目标IT系统记录的待检测KPI序列,将所有待检测KPI记录与其前l
‑
1个时间点的KPI记录组成待检测KPI片段集合,将待检测KPI片段集合发送给输入模块;输入模块与预处理模块和KPI片段特征提取模型相连;训练时,输入模块从预处理模块接收历史KPI片段集合,随机选取历史KPI片段集合的子集作为历史KPI片段训练集,发送给KPI片段特征提取模型;在对目标IT系统记录的待检测KPI片段集合进行异常检测时,输入模块从预处理模块接收待检测KPI片段集合,将接收的待检测KPI片段集合发送给KPI片段特征提取模型;KPI片段特征提取模型与输入模块和特征转换模块相连;训练时,KPI片段特征提取模型从输入模块接收历史KPI片段训练集,生成历史KPI片段标准特征矩阵;在对目标IT系统记录的待检测KPI片段集合进行异常检测时,KPI片段特征提取模型从输入模块接收待检测KPI片段集合,生成待检测KPI片段标准特征矩阵;KPI片段特征提取模型由KPI片段编码网络、第一十字注意力网络、第二十字注意力网络、前向神经网络、第一残差连接的特征归一化层、第二残差连接的特征归一化层构成;KPI片段编码网络与输入模块和第一十字注意力网络相连,由一个Positional Encoding层、一个一维卷积层和一个编码聚合层组成;Positional Encoding层与输入模块和编码聚合层相连,Positional Encoding层对从输入模块接收的历史KPI片段训练集进行位置编码,得到历史位置编码矩阵Z
pe
,将Z
pe
发送给编码聚合层;一维卷积层与输入模块和编码聚合层相连,一维卷积层对从输入模块接收的历史KPI片段训练集进行卷积编码,得到历史卷积编码矩阵Z
conv
,将Z
conv
发送给编码聚合层;编码聚合层与Positional Encoding层、一维卷积层、第一十字注意力网络相连;编码聚合层对从Positional Encoding层得到的历史位置编码矩阵Z
pe
和从一维卷积层得到的历史卷积编码矩阵Z
conv
进行聚合,得到历史编码矩阵Z
encode
,将Z
encode
发送给第一十字注意力
网络;第一十字注意力网络与KPI片段编码网络的编码聚合层、第二十字注意力网络相连,由第一线性层、第二线性层、第三线性层、第一十字注意力提取层、第一Softmax层和第一十字注意力引导层组成;第一线性层与编码聚合层和第一十字注意力提取层相连,第二线性层与编码聚合层和第一十字注意力提取层相连,第三线性层与编码聚合层和第一十字注意力引导层相连;第一线性层、第二线性层、第三线性层并行地从编码聚合层接收Z
encode
,并行地对Z
encode
进行线性转换和维度变换;第一线性层生成第一线性转换矩阵Q1,将Q1发送给第一十字注意力提取层;第二线性层生成第二线性转换矩阵K1,将K1发送给第一十字注意力提取层;第三线性层生成第三线性转换矩阵V1,将V1发送给第一十字注意力引导层;第一十字注意力提取层与第一线性层、第二线性层和第一Sofimax层相连,对从第一线性层接收的Q1和从第二线性层接收的K1中的行列向量分别进行矩阵乘计算,然后进行矩阵串联得到第一串联后矩阵C1,将C1发送给第一Softmax层;第一Softmax层与第一十字注意力提取层和第一十字注意力引导层相连,对从第一十字注意力提取层得到的C1进行归一化处理,得到历史十字注意力权重矩阵A1,将A1发送给第一十字注意力引导层;第一十字注意力引导层与第一Softmax层、第三线性层和第二十字注意力网络相连,采用矩阵乘的方式利用从第一Softmax层得到的A1对从第三线性层接收的V1进行加权,得到历史十字注意力引导的特征矩阵Z
attn1
,将Z
attn1
发送给第二十字注意力网络;第二十字注意力网络与第一十字注意力网络的第一十字注意力引导层和第一残差连接的特征归一化层相连,由第四线性层、第五线性层、第六线性层、第二十字注意力提取层、第二Softmax层和第二十字注意力引导层组成;第四线性层与第一十字注意力引导层和第二十字注意力提取层相连,第五线性层与第一十字注意力引导层和第二十字注意力提取层相连,第六线性层与第一十字注意力引导层和第二十字注意力引导层相连;第四线性层、第五线性层、第六线性层并行地从第一十字注意力引导层接收Z
attn1
,并行地对Z
attn1
进行线性转换和维度变换;第四线性层生成第四线性转换矩阵Q2,将Q2发送给第二十字注意力提取层;第五线性层生成第五线性转换矩阵K2,将K2发送给第二十字注意力提取层;第六线性层生成第六线性转换矩阵V2,将V2发送给第二十字注意力引导层;第二十字注意力提取层与第四线性层、第五线性层和第二Softmax层相连,对从第四线性层接收的Q2和从第二线性层接收的K2中的行列向量分别进行矩阵乘计算,然后进行矩阵串联得到第二串联后矩阵C2,将C2发送给第二Softmax层;第二Softmax层与第二十字注意力提取层和第二十字注意力引导层相连,对从第二十字注意力提取层得到的C2进行归一化处理,得到历史双重十字注意力权重矩阵A2,将A2发送给第二十字注意力引导层;第二十字注意力引导层与第二Softmax层、第六线性层和第一残差连接的特征归一化层相连,利用从第二Softmax层得到的A2对从第三线性层接收的V2矩阵进行加权,得到历史双重十字注意力引导的特征矩阵Z
attn2
,将Z
attn2
发送给第一残差连接的特征归一化层;第一残差连接的特征归一化层与第二十字注意力网络的第二十字注意力引导层、KPI
片段编码网络的编码聚合层、前向神经网络和第二残差连接的特征归一化层相连,从第二十字注意力引导层接收Z
attn2
,从编码聚合层接收Z
encode
,对Z
attn2
和Z
encode
进行残差连接,然后利用LayerNorm标准化得到历史双重十字注意力引导的标准特征矩阵Z
′
attn2
,将Z
′
attn2
发送给前向神经网络和第二残差连接的特征归一化层;前向神经网络与第一残差连接的特征归一化层和第二残差连接的特征归一化层相连,由第七线性层、第八线性层组成;第七线性层与第一残差连接的特征归一化层和第八线性层相连,对从第一残差连接的特征归一化层接收的Z
′
attn2
进行线性转换、非线性激活和Dropout随机失活,得到第七线性转换矩阵Z
f1
,将Z
f1
发送给第八线性层;第八线性层与第七线性层和第二残差连接的特征归一化层相连,对从第七线性层接收的Z
f1
进行线性转换、非线性激活和Dropout随机失活,得到历史KPI片段特征矩阵Z
f2
,将Z
f2
发送给第二残差连接的特征归一化层;第二残差连接的特征归一化层与前向神经网络的第八线性层、第一残差连接的特征归一化层和特征转换模块相连,从第八线性层接收Z
f2
,从第一残差连接的特征归一化层接收Z
′
attn2
,对Z
f2
和Z
′
attn2
进行残差连接,然后利用LayerNorm标准化得到历史KPI片段标准特征矩阵Z
′
f2
,将Z
′
f2
发送给特征转换模块;KPI片段特征提取模型中的KPI片段编码网络、第一十字注意力网络、第二十字注意力网络、第一残差连接的特征归一化层、第二残差连接的特征归一化层和前向神经网络组成KPI异常检测系统的网络结构,该网络结构统称为TSNet;在对目标IT系统记录的待检测KPI片段集合进行异常检测时,KPI片段特征提取模型从输入模块接收待检测KPI片段集合,生成待检测KPI片段标准特征矩阵将发送给特征转换模块;特征转换模块与KPI片段特征提取模型的第二残差连接的特征归一化层和特征空间距离计算模块相连,训练时从第二残差连接的特征归一化层接收Z
′
f2
,将Z
′
f2
转换为历史KPI片段特征向量集合将发送给特征空间距离计算模块;在对目标IT系统记录的待检测KPI片段集合进行异常检测时,从第二残差连接的特征归一化层接收将转换为待检测KPI片段特征向量集合将发送给特征空间距离计算模块;特征空间距离计算模块与特征转换模块、训练优化模块和在线异常检测模块相连,训练时从特征转换模块接收计算中的向量与随机指定的特征空间中心点的距离,得到历史特征空间距离集合将发送给训练优化模块;在对目标IT系统记录的待检测KPI片段集合进行异常检测时,从特征转换模块接收计算中的向量与随机指定的特征空间中心点的距离,得到待检测特征空间距离集合将发送给在线异常检测模块;训练优化模块与特征空间距离计算模块和在线异常检测模块相连,训练时从特征空间距离计算模块接收计算中距离的平均值,将该平均值作为损失值Loss进行反向传播,更新TSNet的模型参数,在训练最后一个训练轮次将损失值作为异常阈值threshold,将threshold发送给在线异常检测模块;在线异常检测模块与特征空间距离计算模块和训练优化模块相连,训练时,从训练优化模块接收异常阈值threshold,将threshold存储;在对目标IT系统记录的待检测KPI片段
集合进行异常检测时,在线异常检测模块从特征空间距离计算模块接收中的距离指示了待检测KPI片段的异常程度,当中的距离超过threshold时,向运维人员发送异常告警信息,运维人员即可根据异常告警信息进行处理;第二步:预处理模块访问历史KPI序列数据库,读取T
train
条历史KPI记录的KPI变量的值,记为历史KPI值集合值,记为历史KPI值集合表示第i个时间点D个KPI值组成的向量,i为正整数,且1≤i≤T
train
;预处理模块采用序列数据切分方法对进行切分,得到由长度为l的KPI片段组成的历史KPI片段集合度为l的KPI片段组成的历史KPI片段集合将发送给输入模块;第三步:使用Adam优化方法对KPI异常检测系统的网络结构TSNet进行训练,得到KPI片段特征提取模型的最佳权重参数,方法是:3.1初始化TSNet的权重参数,包括初始化TSNet中的一维卷积层和所有线性层参数;初始化一个d
model
维的向量作为设定的特征空间中心点,d
model
为正整数数;3.2设置网络训练参数,包括设置学习率learning_rate,令批处理大小batch_size记为b,b表示第num_batch批包含的KPI片段个数,训练迭代轮数E;3.3初始化训练迭代参数为num_epoch=1,初始化批次迭代参数num_batch=1,初始化训练最大批次大小max_batch为正整数,num_batch满足1≤num_batch≤max_batch;3.4训练KPI异常检测系统,方法是:应用KPI异常检测系统进行历史KPI片段特征提取,计算提取的特征向量与的欧式距离作为损失值,不断最小化损失值并更新TSNet权重参数,直到满足迭代轮数E,终止训练;具体方法是:3.4.1输入模块从预处理模块接收随机选取中b个KPI片段作为第num_batch批训练数据,记为历史KPI片段训练集将发送给KPI片段特征提取模型;3.4.2KPI片段特征提取模型采用特征提取方法对从输入模块接收的进行特征提取,得到历史KPI片段标准特征矩阵Z
′
f2
,方法是:3.4.2.1KPI片段编码网络从输入模块接收采用KPI片段编码法对进行编码,得到历史编码矩阵Z
encode
,方法是:3.4.2.1.1 Positional Encoding层从输入模块接收对进行位置编码,得到历史位置编码矩阵Z
pe
,Z
pe
的维度为b
×
l
×
d
model
,将Z
pe
发送给编码聚合层;3.4.2.1.2一维卷积层从输入模块接收对进行一维卷积,得到历史卷积编码矩阵Z
conv
,Z
conv
的维度为b
×
l
×
d
model
,将Z
conv
发送给编码聚合层;3.4.2.1.3编码聚合层将Z
pe
和Z
conv
进行聚合,得到历史编码矩阵Z
encode
,聚合方法为:Z
encode
=Z
pe
+Z
conv
;将Z
encode
发送给第一十字注意力网络;3.4.2.2第一十字注意力网络从编码聚合层接收Z
encode
,采用十字注意力方法提取Z
encode
矩阵内部元素与其行列所形成的十字位置对应元素的耦合关联性,生成历史十字注意力引导的特征矩阵Z
attn1
,方法是:3.4.2.2.1第一线性层从编码聚合层接收Z
encode
,对Z
encode
进行线性转换和维度变换得到Q1;同时,第二线性层从编码聚合层接收Z
encode
,对Z
encode
进行线性转换和维度变换得到K1;同时,第三线性层从编码聚合层接收Z
encode
,对Z
encode
进行线性转换和维度变换得到V1:
其中表示对Z
encode
进行线性转换,其输入、输出维度均设置为d
model
,表示利用Python第三方开源库PyTorch的unsqueeze函数在第2维度位置增加矩阵的维度,线性转换后的矩阵维度为b
×
l
×
d
model
,增加维度后得到的Q1、K1、V1的维度为b
×1×
l
×
d
model
,将Q1发送给第一十字注意力提取层,将K1发送给第一十字注意力提取层,将V1发送给第一十字注意力引导层;3.4.2.2.2第一十字注意力提取层从第一线性层接收Q1,从第二线性层接收K1,计算Q1中每个元素和K1对应行列位置元素的耦合关联性,生成第一串联后矩阵C1,C1的维度为b
×
l
×
d
model
×
(l+d
model
),C1的元素表示Q1矩阵每个元素和K1中对应行列元素的耦合关联性,将C1发送给第一Softmax层;3.4.2.2.3第一Softmax层从第一十字注意力提取层接收C1,利用Softmax函数对C1的第4维度进行归一化处理,得到历史十字注意力权重矩阵A1,A1的维度为b
×
l
×
d
model
×
(l+d
model
),将A1发送给第一十字注意力引导层;3.4.2.2.4第一十字注意力引导层从第一Softmax层接收A1,从第三线性层接收V1,利用A1对V1矩阵进行加权,得到历史十字注意力引导的特征矩阵Z
attn1
,Z
attn1
的维度为b
×1×
l
×
d
model
,将Z
attnl
发送给第二十字注意力网络;3.4.2.3第二十字注意力网络从第一十字注意力引导层接收Z
attn1
,采用双重十字注意力方法进一步提取Z
attn1
内部元素与其行列所形成的十字位置对应元素的耦合关联性,生成历史双重十字注意力引导的特征矩阵Z
attn2
,方法是:3.4.2.3.1第四线性层从第一十字注意力引导层接收Z
attn1
,对Z
attn1
进行线性转换和维度变换得到Q2;同时,第五线性层从第一十字注意力引导层接收Z
attn1
,对Z
attn1
进行线性转换和维度变换得到K2;同时,第六线性层从第一十字注意力引导层接收Z
attn1
,对Z
attn1
进行线性转换和维度变换得到V2:::其中表示对Z
attn1
线性转换,其输入、输出维度均设置为d
model
,表示利用Python第三方开源库PyTorch的unsqueeze函数在第2维度位置增加矩阵的维度,linea维度为b
×
l
×
d
model
,增加维度后,Q2矩阵、K2矩阵、V2矩阵的维度为b
×1×
l
×
d
model
,将Q2发送给第二十字注意力提取层,将K2发送给第二十字注意力提取层,将V2发送给第二十字注意力引导层;
3.4.2.3.2第二十字注意力提取层从第四线性层接收Q2,从第五线性层接收K2,计算Q2中每个元素和K2对应行列位置元素的关联性,生成第二串联后矩阵C2,C2的元素表示Q2每个元素和K2中对应行列元素的耦合关联性,将C2发送给第二Softmax层;3.4.2.3.3第二Softmax层从第二十字注意力提取层接收C2,利用Softmax函数对C2的第4维度进行归一化处理,得到历史双重十字注意力权重矩阵A2,A2的维度为b
×
l
×
d
model
×
(l+d
model
),将A2发送给第二十字注意力引导层;3.4.2.3.4第二十字注意力引导层从第二Softmax层接收A2,从第六线性层接收V2,利用A2对V2矩阵进行加权,得到历史双重十字注意力引导的特征矩阵Z
attn2
,Z
attn2
的维度为b
×1×
l
×
d
model
,将Z
attn2
发送给第一残差连接的特征归一化层;3.4.2.4第一残差连接的特征归一化层从第二十字注意力网络的第二十字注意力引导层接收Z
attn2
,从KPI片段编码网络的编码聚合层接收Z
encode
,对Z
attn2
进行维度变换,对Z
attn2
和Z
encode
进行残差连接,再进行标准化得到历史双重十字注意力引导的标准特征矩阵Z
′
attn2
:Z
′
attn2
=LayerNorm(squeeze2(Z
attn2
)+Z
encode
)其中squeeze2(Z
attn2
)表示利用Python第三方开源库PyTorch的squeeze函数删除Z
attn2
第2维度,LayerNorm(squeeze2(Z
attn2
)+Z
encode
)表示利用LayerNorm对squeeze2(Z
attn2
)+Z
encode
标准化;将Z
′
attn2
发送给前向神经网络的第七线性层和第二残差连接的特征归一化层;3.4.2.5前向神经网络从第一残差连接的特征归一化层接收Z
′
attn2
,采用两层特征映射法对Z
′
attn2
进行转换,得到历史KPI片段特征矩阵Z
f2
,方法是:3.4.2.5.1第七线性层从第一残差连接的特征归一化层接收Z
′
attn2
,对Z
′
attn2
进行线性转换、非线性激活和Dropout随机失活后得到第七线性转换矩阵Z
f1
:其中表示Z
′
attn2
线性转换,其输入维度设置为d
model
,输出维度设置为2048,为采用神经网络激活函数GELU对进行激活,δ(
·
)表示对进行Dropout随机失活,drop概率为0.1;将Z
f1
发送给第八线性层;3.4.2.5.2第八线性层从第七线性层接收Z
f1
,对Z
f1
进行线性映射、Dropout随机失活后得到历史KPI片段特征矩阵Z
f2
:其中表示对Z
f1
线性转换,输入维度设置为2048,输出维度设置为d
model
,表示对进行Dropout随机失活,drop概率为0.1;将Z
f2
发送给第二残差连接的特征归一化层;3.4.2.6第二残差连接的特征归一化层从第八线性层接收Z
f2
,从第一残差连接的特征归一化层接收Z
′
attn2
,对Z
f2
和Z
′
attn2
进行残差连接,再进行标准化,得到历史KPI片段标准特征矩阵Z
′
f2
,Z
′
f2
矩阵的维度是b
×
l
×
d
model
:Z
′
f2
=LayerNorm(Z
f2
+Z
′
attn2
)
其中LayerNorm(Z
f2
+Z
′
attn2
)表示利用LayerNorm对Z
f2
+Z
′
attn2
进行标准化;将Z
′
f2
发送给特征转换模块;3.4.3特征转换模块从KPI片段特征提取模型的第二残差连接的特征归一化层接收Z
′
f2
,采用矩阵
‑
集合转换法将Z
′
f2
转换为历史KPI片段特征向量集合将发送给特征空间距离计算模块;3.4.4特征空间距离计算模块从特征转换模块接收采用欧式距离计算法计算中的历史KPI片段特征向量与3.1步定义的的距离,得到历史特征空间距离集合将发送给训练优化模块;3.4.5训练优化模块从特征空间距离计...
【专利技术属性】
技术研发人员:王意洁,徐鸿祚,刘铭宇,周小晖,包涵,王勇军,李一舟,胡小雨,李彬,张如意,阚浚晖,张凯鑫,
申请(专利权)人:中国人民解放军国防科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。