一种面向时序KPI数据的异常检测方法与流程

文档序号:24165205发布日期:2021-03-05 17:06阅读:237来源:国知局
一种面向时序KPI数据的异常检测方法与流程
一种面向时序kpi数据的异常检测方法
技术领域
1.本发明属于数据挖掘技术领域,特别是涉及一种时序kpi数据的异常检测方法。


背景技术:

2.现代互联网应用的交互特性要求提供的服务具有低且稳定的延迟。然而,爆发性工作负载和资源竞争等因素往往会导致系统异常的发生,进而影响服务质量。因此,准确地检测系统异常变得越来越重要。除了现存的解决方案(例如日志诊断、领域知识驱动型检测),异常检测的一个主要方法是通过kpi数据(关键性能指标)检测系统异常,即实时测量一些重要的关键性能指标(例如用户访问负载、资源利用率和订单数量)并从中检测系统相关异常。
3.kpi数据反映了系统的时序状态,往往表现出周期性的特征。由于不确定噪声总是与周期模式相混合,使得kpi异常的检测是一个挑战性工作。特别是当kpi数据中的噪声不服从高斯分布时,异常与正常数据的识别难度增加。为了检测kpi异常,现有文献主要采用传统方法或深度学习方法。传统方法包括统计学方法和集成学习方法。它们无法处理高维数据,因为过于简单的模型难以提取到高维复杂的特征。尽管用于特征工程和异常识别的深度监督模型可以处理高维数据,但由于数据集的不平衡性,监督学习方法存在数据标注困难和模型收敛到次优的问题。
4.而目前还没有专门对时序数据高鲁棒的异常检测模型。


技术实现要素:

5.本发明旨在提出一种面向时序kpi数据的异常检测方法,实现了基于深度学习的时序kpi数据异常检测。
6.本发明的一种面向时序kpi数据的异常检测方法,该方法具体包括以下步骤:
7.步骤1、对一个极大极小二元博弈过程模型进行训练,通过交替训练使模型收敛;训练分为两个阶段即kpi识别器训练和重构器训练:
8.步骤1-1、识别器训练过程为:首先从数据集中抽取在正常系统状态下采集的真实kpi数据和通过重构器重构异常kpi数据;
9.令正常数据标签为1、异常数据标签为0,通过最小化预测标签和真实标签的交叉熵来训练识别器,公式如下:
[0010][0011]
其中,x
i
是一条真实kpi数据,d(x
i
)是识别器对其真实性的评价,r(x
i
)是重构器对x
i
的重构结果,
[0012]
利用公式(1)使识别器最大化区分正常数据和异常数据;
[0013]
步骤1-2、重构器训练过程为最小化识别器的识别损失,公式如下:
[0014][0015]
其中,d(
·
)表示识别器对数据异常的判定,0表示数据正常,1表示数据异常;
[0016]
步骤1-3、交替训练识别器和重构器,重复执行上述步骤1-1至步骤1-2直至模型收敛;当模型收敛时,通过重构器生成较为真实的数据;通过识别器识别正常数据的模式;
[0017]
步骤2、进行在线检测,把待检测数据x输入给识别器d,然后d输出对数据x异常性的判定结果,用训练完成的识别器来判定数据正常/异常,如下式所示:
[0018][0019]
进行异常kpi数据识别的过程,具体包括以下步骤:
[0020]
首先利用一维卷积神经网络提取时序kpi数据特征,然后利用一维卷积神经网络提取二次特征,最后把所有提取到的特征利用全连接神经网络进行分类:分析kpi数据的非高斯噪声特性,利用非平滑激活函数激活识别器来解决非高斯噪声问题,以便高效识别混有非高斯噪声的kpi异常;分析过程如下:
[0021]
假设x={x1,x2,...,x
w
}是一个正常的kpi数据序列,φ(
·
)是一个可学习的神经网络分类器,φ(x)=1表示数据x正常,反之φ(x)=0表示数据x异常;用ε={ε1,ε2,...,ε
w
}表示非高斯分布噪声,接下来衡量φ(x+ε)异常与否,ε表示边界;理想的异常检测器应满足以下标准之一:
[0022][0023]
当ε趋近无穷小的时候,得到如下关系式:
[0024][0025]
假设在识别器d中有n层神经网络,用h
j
(
·
)表示将j-1
th
层映射到j
th
层中的函数,并将σ
j
(
·
)作为j
th
层中的激活函数;
[0026]
φ(x)表示如下:
[0027][0028]
其中,σ
j
(
·
)是非光滑函数;当σ'
j
(
·
)是不连续时,使得公式(7)成立。
[0029]
与现有技术相比,本发明具有以下有益效果:
[0030]
1)本发明的模型是基于异常检测目标,因为检测结果更精确;
[0031]
2)相比较于传统统计学方法,本发明提出的基于深度学习模型在处理高维数据时更高效;
[0032]
3)不同于集成学习方法,本发明提出的模型无需在原始数据上做特征工程,使得模型的应用范围更广;
[0033]
4)本发明的模型以无监督的方式训练,免去上述数据比例不平衡导致的次优问题。不仅如此,监督模型需要大量数据标签,而大规模系统中标记数据是一个极具挑战性的任务,而无监督模型由于不需要数据,因此可以有效解决这个问题。
附图说明
[0034]
图1为本发明的一种面向时序kpi数据的异常检测方法整体流程图;
[0035]
图2为本发明的一种面向时序kpi数据的异常检测模型实施例架构图。
具体实施方式
[0036]
以下结合附图及具体实施方式,进一步详述本发明技术方案。
[0037]
如图1所示,为本发明的一种面向时序kpi数据的异常检测方法整体流程图。该流程具体包括以下步骤:
[0038]
步骤1、对一个极大极小二元博弈过程模型进行训练,通过交替训练使模型收敛;训练分为两个阶段即kpi识别器训练和重构器训练:
[0039]
1-1、识别器训练过程为:首先从数据集中抽取在正常系统状态下采集的真实kpi数据和通过重构器重构异常kpi数据(由于重构器在训练初期重构的数据和原始数据偏差较大,因此认为是异常数据);
[0040]
令正常数据标签为1、异常数据标签为0,通过最小化预测标签(包括正常和异常标签)和真实标签(包括正常和异常标签)的交叉熵来训练识别器,公式如下:
[0041][0042]
公式(1)中,x
i
是一条真实kpi数据,d(x
i
)是识别器对其真实性的评价,r(x
i
)是重构器对x
i
的重构结果;
[0043]
最小化公式(1)可以使识别器最大化区分正常数据和异常数据:对于正常数据,识别器输出1,异常数据识别器输出0。
[0044]
1-2、重构器训练过程为最小化识别器的识别损失,公式如下:
[0045][0046]
其中,d(
·
)表示识别器对数据异常的判定,0表示正常,1表示异常。
[0047]
最小化公式(7)可以使重构器生成的数据越来越真实,直至识别器的输出为1;
[0048]
1-3、交替训练识别器和重构器,(重复执行上述步骤1-1至步骤1-2)直至模型收敛。当模型收敛时,通过重构器生成较为真实的数据;通过识别器识别正常数据的模式。
[0049]
步骤2、进行在线检测。当模型训练完成时,模型中的识别器有辨别真伪数据的能力,因此本发明直接用训练完成的识别器来判定数据正常/异常。具体地,把待检测数据x输入给识别器d,然后d输出对数据x异常性的判定结果:
[0050][0051]
本发明为了高效、高精度地识别异常kpi数据,首先利用一维卷积神经网络提取时
序kpi数据特征,然后利用一维卷积神经网络提取二次特征,最后把所有提取到的特征利用全连接神经网络进行分类:分析kpi数据的非高斯噪声特性,利用非平滑激活函数激活识别器来解决非高斯噪声问题,以便高效识别混有非高斯噪声的kpi异常。分析过程如下:
[0052]
假设x={x1,x2,...,x
w
}是一个正常的kpi数据序列,φ(
·
)是一个可学习的神经网络分类器,φ(x)=1表示数据x正常,反之φ(x)=0表示数据x异常;用ε={ε1,ε2,...,ε
w
}表示非高斯分布噪声,接下来衡量φ(x+ε)异常与否。由于噪声是非对称的,因此一定存在一个ε边界,其中x+ε为正态,x-ε为异常。反之亦然。因此,一个理想的异常检测器应满足以下标准之一:
[0053][0054]
情况一为了简单起见,本发明只考虑第一种情况。根据公式(4),一定存在一个临界噪声ε
1:i
={ε1,...,ε
i
,0,0,...0},使得如下公式(2)成立,数据x加上和减去噪声ε
1:i-1
都为正常,而数据x减去ε
1:i
为异常;
[0055][0056]
左右两侧同时除以ε
i
,得到下式:
[0057][0058]
当ε趋近无穷小的时候,对公式(6)求导,得到φ(x)的导数:
[0059][0060]
因此当公式(7)成立的时候,是不连续的。假设在识别器d中有n层神经网络,用h
j
(
·
)表示将j-1
th
层映射到j
th
层中的函数,并将σ
j
(
·
)作为j
th
层中的激活函数。φ(x)表示如下,其中σ
j
(
·
)是非光滑函数:
[0061][0062]
分析完毕。
[0063]
本模型专门针对kpi数据中非高斯噪声做了设计,在检测非高斯异常更加精确。利用识别器识别正常/异常数据时,会因为数据类别的不平衡导致模型收敛到次优解。
[0064]
如图2所示,为本发明的一种面向时序kpi数据的异常检测模型实施例架构图。该模型包括两个部分:重构器和识别器。所述重构器为一个基于时序kpi数据的自编码器(即由多层全连接神经网络构成的编码器和解码器),其用于提供异常kpi数据的样本,训练目标是当给定一个kpi数据时,通过编码以及解码过程近似重现该kpi数据,生成供识别器训
练的负类数据(数据标签为0)。所述识别器用于识别异常kpi数据,由卷积神经网络实现。
[0065]
相比于生成器,本发明选择kpi重构器的原因如下:
[0066]
原因一、对于序列预测任务生成模型,进而迭代生成序列,生成器导致了近似误差的累积。
[0067]
原因二、kpi数据中存在大量噪声,生成模型的预测精度容易受到影响;
[0068]
原因三、已经获得了kpi数据的完整视图而不只是部分数据,因此不需要生成模型的生成过程。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1