1.本发明实施例涉及计算机技术领域,尤其涉及一种单指标异常的检测方法、装置、电子设备及可读存储介质。
背景技术:
2.目前,对单指标异常检测是运维领域的一个十分普遍的问题。在业务运维的过程中,为了保证服务质量的可靠性,运维人员常常通过监控体系采集核心业务监测指标并对其进行密切监控以及时发现异常。当前的监控体系大多数已部署监控工具,可以进行指标数据采集,根据运维人员经验设定阈值或配置一定规则以实现异常检测。
3.随着服务器的数量以及采集指标的增加,指标数量在呈爆炸式的增长,海量的指标具有不同的特征,现有的监控运维不能满足对大量指标的异常检测需求,检测效率低、易产生误报和漏报。
技术实现要素:
4.本发明实施例提供一种单指标异常的检测方法、装置、电子设备及可读存储介质,以解决现有的监控运维不能满足对大量指标的异常检测需求,检测效率低、易产生误报和漏报问题。
5.为了解决上述技术问题,本发明是这样实现的:第一方面,本发明实施例提供了一种单指标异常的检测方法,包括:获取到被检测对象的历史监测指标数据集合之后,对所述历史监测指标数据集合中的历史监测指标数据进行周期性验证;若所述周期性验证的验证结果为所述历史监测指标数据具有非周期性,采用预设的第一检测算法对获取到的所述被检测对象的当前监测指标数据进行第一检测,所述第一检测用于指示所述当前监测指标数据是否异常;若所述周期性验证的验证结果为所述历史监测指标数据具有周期性,采用至少两种预设的检测算法对所述历史监测指标数据进行第一验证,所述第一验证用于指示至少两种所述预设的检测算法中的一算法为最优算法;采用所述最优算法对所述当前监测指标数据进行所述第一检测。
6.可选地,对所述历史监测指标数据集合中的历史监测指标数据进行周期性验证,包括:采用预设的周期性判断算法对所述历史监测指标数据进行周期性计算,得到周期性计算值;若所述周期性计算值小于预设的周期性阈值,确定所述历史监测指标数据具有周期性;若所述周期性计算值大于所述周期性阈值,确定所述历史监测指标数据具有非周期性。
7.可选地,采用预设的第一检测算法对获取到的所述被检测对象的当前监测指标数据进行第一检测,包括:采用分布拟合方式对所述历史监测指标数据进行拟合,得到拟合参数;根据所述拟合参数以及预设的异常判定阈值计算式,得到异常判定阈值;根据所述第一检测算法以及异常判定阈值对所述当前检测指标数据进行第一检测,若所述当前检测指标数据超出所述异常判定阈值,判定所述当前检测指标数据异常。
8.可选地,采用分布拟合方式对所述历史监测指标数据进行拟合,得到拟合参数,之前包括:对所述历史监测指标数据进行预处理,所述预处理至少包括以下一项:数据去重、缺失值填充以及数据归一化。
9.可选地,对所述历史监测指标数据进行第一验证,包括:从所述历史监测指标数据中提取第一数据,所述第一数据具有标注,所述标注用于指示所述第一数据是否异常;采用所述预设的检测算法对所述第一数据进行检测,得到与所述检测算法一一对应的评估值;根据所述评估值,确定所述最优算法。
10.可选地,采用所述最优算法对所述当前检测指标数据进行第一检测,之后包括:若所述第一检测的检测结果为所述当前检测指标数据异常,根据所述当前检测指标数据、获取所述当前检测指标数据的时间间隔值以及所述时间间隔值的数量,对所述当前检测指标数据进行第二检测;所述第二检测用于指示所述当前检测指标数据的异常方向;若所述第二检测的检测结果为上增方向异常,发送上增方向异常告警至与用户关联的交互端;若所述第二检测的检测结果为下降方向异常,发送下降方向异常告警至所述交互端。
11.可选地,若所述当前检测指标数据超出所述异常判定阈值,判定所述当前检测指标数据异常,之后包括:若所述当前检测指标数据大于所述异常判定阈值,判定所述当前检测指标数据为上增方向异常,发送上增方向异常告警至与用户关联的交互端;若所述当前检测指标数据小于所述异常判定阈值,判定所述当前检测指标数据为下降方向异常,发送下降方向异常告警至所述交互端。
12.第二方面,本发明实施例提供了一种单指标异常的检测装置,包括:验证模块,用于获取到被检测对象的历史监测指标数据集合之后,对所述历史监测指标数据集合中的历史监测指标数据进行周期性验证;第一执行模块,用于若所述周期性验证的验证结果为所述历史监测指标数据具有
非周期性,采用预设的第一检测算法对获取到的所述被检测对象的当前监测指标数据进行第一检测,所述第一检测用于指示所述当前监测指标数据是否异常;第二执行模块,用于若所述周期性验证的验证结果为所述历史监测指标数据具有周期性,采用至少两种预设的检测算法对所述历史监测指标数据进行第一验证,所述第一验证用于指示至少两种所述预设的检测算法中的一算法为最优算法;采用所述最优算法对所述当前监测指标数据进行所述第一检测。
13.第三方面,本发明实施例提供了一种电子设备,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面中任一项所述的单指标异常的检测方法中的步骤。
14.第四方面,本发明实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面中任一项所述的单指标异常的检测方法中的步骤。
15.在本发明实施例中,通过对历史监测指标数据进行周期性验证,实现了对监测指标的周期性分类;针对验证结果为非周期性,采用第一检测算法对被检测对象的当前监测指标数据进行第一检测;针对验证结果为周期性,采用至少两种预设的检测算法对所述历史监测指标数据进行第一验证,采用第一验证得出的最优算法对所述当前检测指标数据进行第一检测。本发明实施例根据周期性与非周期性进行分类,并对不同分类采用相适应的检测,能够满足对大量指标的异常检测需求,检测效率高、检测准确性高。
附图说明
16.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1为本发明实施例单指标异常的检测方法的流程示意图之一;图2为本发明实施例单指标异常的检测方法的流程示意图之二;图3为本发明实施例单指标异常的检测方法的流程示意图之三;图4为本发明实施例单指标异常的检测方法的流程示意图之四;图5为本发明实施例单指标异常的检测方法的流程示意图之五;图6为应用本发明实施例单指标异常的检测方法的流程示意图;图7为应用本发明实施例单指标异常的检测方法对非周期性历史监测指标数据进行检测的流程示意图;图8为应用本发明实施例单指标异常的检测方法对周期性历史监测指标数据进行检测的流程示意图;图9为采用本发明实施例单指标异常的检测方法对周期性历史监测指标数据进行检测时的时间信息编码示例;图10为采用本发明实施例单指标异常的检测方法对周期性历史监测指标数据进行检测时待训练检测模型的网络框架示意图;图11为采用本发明实施例单指标异常的检测方法对周期性历史监测指标数据进行检测时mcmc填补的示例示意图;
图12为本发明实施例单指标异常的检测装置的内部结构示意图;图13为本发明实施例电子设备的内部结构示意图。
具体实施方式
17.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
18.本发明实施例提供了一种单指标异常的检测方法,参见图1所示,图1为本发明实施例单指标异常的检测方法的流程示意图之一,包括:步骤11:获取到被检测对象的历史监测指标数据集合之后,对历史监测指标数据集合中的历史监测指标数据进行周期性验证;步骤12:若周期性验证的验证结果为历史监测指标数据具有非周期性,采用预设的第一检测算法对获取到的被检测对象的当前监测指标数据进行第一检测,第一检测用于指示当前监测指标数据是否异常;步骤13:若周期性验证的验证结果为历史监测指标数据具有周期性,采用至少两种预设的检测算法对历史监测指标数据进行第一验证,第一验证用于指示至少两种预设的检测算法中的一算法为最优算法;采用最优算法对当前检测指标数据进行第一检测。
19.本发明的一些实施例中,可选地,监测指标数据为关键性能指标(key performance indicator,kpi)数据,kpi数据是时间序列数据(例如:cpu利用率、页面访问量、网络吞吐量等),它可以从简单网络管理协议(snmp)、系统日志、网络跟踪、web访问日志和其他数据源中得到,它由值和时间戳组成,可以表示为x=(x1,x2,x3,...,xn)。其中,xj表示在时间j时刻的值,其中j∈(1,2,3,...,n)。每一条kpi时间序列都有固定的时间间隔(例如:十秒钟、一分钟、五分钟等)。
20.在本发明实施例中,通过对历史监测指标数据进行周期性验证,实现了对监测指标的周期性分类;针对验证结果为非周期性,采用第一检测算法对被检测对象的当前监测指标数据进行第一检测;针对验证结果为周期性,采用至少两种预设的检测算法对所述历史监测指标数据进行第一验证,采用第一验证得出的最优算法对所述当前检测指标数据进行第一检测。本发明实施例根据周期性与非周期性进行分类,并对不同分类采用相适应的检测,能够满足对大量指标的异常检测需求,检测效率高、检测准确性高。
21.本发明的一些实施例中,可选地,参见图2所示,图2为本发明实施例单指标异常的检测方法的流程示意图之二,对历史监测指标数据集合中的历史监测指标数据进行周期性验证,包括:步骤21:采用预设的周期性判断算法对历史监测指标数据进行周期性计算,得到周期性计算值;步骤22:若周期性计算值小于预设的周期性阈值,确定历史监测指标数据具有周期性;步骤23:若周期性计算值大于周期性阈值,确定历史监测指标数据具有非周期性。
22.本发明的一些实施例中,可选地,预设的周期性判断算法为yin算法。
23.示例性的,根据真实场景中真实数据的情况,选择到了yin周期性判断算法,该算法公式(difference function)如下:其中:且ρ∈{hour, day, week}在公式中,表示在t=k时刻时间序列所对应的值,ρ表示周期的可能取值范围(小时、天、周),h表示该段时间序列的总长度(点的总数目)。下面公式的d(ρ)计算的是所有t=k ρ时刻与t=k时刻时间序列值之差的平方和,可以想象成将曲线右移ρ个单位后与曲线本身进行的一个差分对比。可以预见的是,若曲线确实具有周期t且ρ为t的整数倍,d(ρ)的值一定将接近于0。(可以理解成右移ρ个单位后的曲线将与曲线本身重合)d’(ρ)为周期性计算值。它在给d(ρ)除去了一个分母,该分母是取k=1至k=ρ计算的d(k)的平均值。由之前的讨论可知,d(ρ)的值越小时间序列周期性越强,而d(ρ)为d’(ρ)的分子,同理d’(ρ)的值越小时间序列周期性越强。
24.若d’(ρ)小于预设的周期性阈值,确定历史监测指标数据具有周期性;若d’(ρ)大于预设的周期性阈值,确定历史监测指标数据具有非周期性。
25.本发明的一些实施例中,可选地,预设的周期性阈值为大于或者等于0.1,并且小于或者等于0.3。
26.本发明的一些实施例中,可选地,预设的周期性阈值为0.15。
27.本发明的一些实施例中,可选地,参见图3所示,图3为本发明实施例单指标异常的检测方法的流程示意图之三,采用预设的第一检测算法对获取到的被检测对象的当前监测指标数据进行第一检测,包括:步骤31:采用分布拟合方式对历史监测指标数据进行拟合,得到拟合参数;步骤32:根据拟合参数以及预设的异常判定阈值计算式,得到异常判定阈值;步骤33:根据第一检测算法以及异常判定阈值对当前检测指标数据进行第一检测,若当前检测指标数据超出异常判定阈值,判定当前检测指标数据异常。
28.本发明的一些实施例中,可选地,采用分布拟合方式对历史监测指标数据进行拟合,得到拟合参数,包括:采用极值分布方式对历史监测指标数据进行拟合,得到拟合参数。
29.示例性的,peaks-over-threshold(pot)也被称为第二极值理论,它依赖于pickands balkema-de haan理论,其分布函数如下:进一步可以得到如下结果:
这个结果表明,超过阈值t,写成x-t,遵循广义帕累托分布(gpd),参数为γ,σ。pot方法不是对x极值进行evd拟合,而是试图对超阈值x-t进行gpd拟合。其中参数γ,σ的评估计算采用了最大似然估计方法,最优解的寻找是一个经典的数值问题,使用grimshaw来辅助完成。利用得到的参数γ,σ来计算得到异常判定阈值,该公式如下:其中t是初始阈值,q是假定概率,n是不包含异常值的历史数据的个数,n
t
是不包含异常值超阈值部分的个数。
30.使用最大似然估计方法得到参数γ,σ在使用grimshaw来寻找最优解。
31.最大似然估计是一种重要而普遍的求估计量的方法。如果x1, . . .xn是随机变量x的n个独立实现,其中密度由θ参数化,似然函数则定义为:它表示这n个观测值的联合密度。此方法尝试找到参数θ使联合密度最大化。实际上,此方法研究对数似然,所以在该例子中(gpd拟合)此方法必须最大化下面的公式:其中,yi》0是xi超过t的部分(yi=x
i-t for xi》t)。为了得到最优解,使用grimshaw方法,它是把将两个变量优化问题简化为一个变量方程问题。
32.利用得到的参数γ,σ来计算得到异常判定阈值,公式如下:其中t是初始阈值,q是假定概率,n是不包含异常值的历史数据的个数,n
t
是不包含异常值超阈值部分的个数。
33.本发明的一些实施例中,可选地,采用分布拟合方式对历史监测指标数据进行拟合,得到拟合参数,之前包括:对历史监测指标数据进行预处理,预处理至少包括以下一项:数据去重、缺失值填充以及数据归一化。
34.数据去重,去掉重复的时间戳和对应的值;缺失值填充,使用历史平均值进行填充;
数据归一化,其公式为, x
max
为历史数据最大值,x
min
为历史数据最小值。
35.本发明的一些实施例中,可选地,参见图4所示,图4为本发明实施例单指标异常的检测方法的流程示意图之四,对历史监测指标数据进行第一验证,包括:步骤41:从历史监测指标数据中提取第一数据,第一数据具有标注,标注用于指示第一数据是否异常;步骤42:采用预设的检测算法对第一数据进行检测,得到与检测算法一一对应的评估值;步骤43:根据评估值,确定最优算法。
36.本发明的一些实施例中,可选地,至少两种预设的检测算法为dspot算法和bagel dspot算法。
37.示例性的,a)判断为周期性的指标会同时使用dspot算法和bagel dspot算法进行异常检测。进行异常检测时,使用的是一段历史数据,历史数据被划分为训练集和验证集,训练集被用来训练各个算法模型。验证集则用来验证各效果,以用于最终算法选择。
38.b)验证集需要具有从线上得到的真实标注信息(表示数据是否为异常,用ground_truth表示)。当各算法对验证集进行了异常检测后,得到经过算法预测的异常标注信息(用predict表示)。
39.c)依据ground_truth和predict,进行模型评估,计算各算法的准确率(precision)、召回率(recall)和f1_score。根据评估结果进行对比,选取评估结果较好的一个算法作为该关键性能指标的异常检测算法(f1_score较高代表该算法异常检测结果较好)。
40.本发明的一些实施例中,可选地,参见图5所示,图5为本发明实施例单指标异常的检测方法的流程示意图之五,采用最优算法对当前检测指标数据进行第一检测,之后包括:步骤51:若第一检测的检测结果为当前检测指标数据异常,根据当前检测指标数据、获取当前检测指标数据的时间间隔值以及时间间隔值的数量,对当前检测指标数据进行第二检测;第二检测用于指示当前检测指标数据的异常方向;步骤52:若第二检测的检测结果为上增方向异常,发送上增方向异常告警至与用户关联的交互端;步骤53:若第二检测的检测结果为下降方向异常,发送下降方向异常告警至交互端。
41.本发明的一些实施例中,可选地,使用dspot算法对异常分数进行异常检测,若当前检测数据点的异常分数大于计算出的阈值,即:则认为当前检测点的重构概率低于了正常重构概率的阈值,则被认为异常。
42.判断为异常后,进一步进行异常方向性自动识别,采用的方法是计算当前检测数据点和历史若干周期内相同时刻前后三个非异常点的平均值的斜率α,如下列公式所示:
其中,x
t
是t时刻监测数据所对的值,ρ是一个周期的长度,h是选取历史数据中周期的个数。
43.若α大于0,则方向识别为数据突增引起的告警,若α小于0,则方向识别为数据下跌引起的告警。
44.本发明的一些实施例中,可选地,所述预设的异常分数阈值算法为dspot算法。
45.本发明的一些实施例中,可选地,若当前检测指标数据超出异常判定阈值,判定当前检测指标数据异常,之后包括:若当前检测指标数据大于异常判定阈值,判定当前检测指标数据为上增方向异常,发送上增方向异常告警至与用户关联的交互端;若当前检测指标数据小于异常判定阈值,判定当前检测指标数据为下降方向异常,发送下降方向异常告警至交互端。
46.示例性的,异常判定阈值包括上下阈值,即对于当前待检测点会生成上下两个阈值即z
q下
和z
q上
。进行异常判断时,将当前检测数据点x
t
与上下阈值进行比较,若x
t
》z
q上
或x
t
《z
q下
时,则认为当前检测点为异常。若x
t
》z
q上
,则方向性识别发出数据突增引起的告警,若x
t
《z
q下
,则方向性识别发出数据下跌引起的告警,以便运维人员及时判断和修复故障。
47.参加图6所示,图6为应用本发明实施例单指标异常的检测方法的流程示意图,其中:时间序列数据(原始kpi,即为历史监测指标数据)先进行周期性判断,目的为指标自动选取更适合的异常检测算法:周期性判断算法结果值大于0.15表明指标被判断为非周期性指标使用dspot算法进行检测;小于等于0.15时表明指标被判断为周期性指标同时使用dspot和bagel dspot算法,进一步得出检测结果后,若为异常则进行方向性自动识别后发出告警。相应的周期性判断算法(yin)、非周期异常检测算法(dspot)、周期性异常检测算法(bagel)和方向性自动识别。
48.示例性的,参加图7所示,图7为应用本发明实施例单指标异常的检测方法对非周期性历史监测指标数据进行检测的流程示意图,其中:1)预设定参数此算法中有根据先验知识预先设定的几个参数q、d、t、abundan,其中q代表的是期望的异常概率,一般经验下取10-4
,d是滑动窗口,一般取10、60和120;t是预先设定的阈值,上阈值一般取0.98*升序排序后的历史数据或0.99*升序排序后的历史数据,相应的下阈值取0.02*升序排序后的历史数据或0.01*升序排序后的历史数据;abundan是初始时抛弃历史数据中的极值数据的比例(因为该算法要求历史数据中不包含异常数据),一般情况下为10-3
至10-5
。
49.2)数据预处理数据预处理有三个步骤:第一,数据去重,去掉重复的时间戳和对应的值;第二,缺失值填充,使用历史平均值进行填充;第三,数据归一化,以使得各指标数据处于同一数量
级,数据压缩在[0,1]内,其公式为,x
max
为历史数据最大值,x
min
为历史数据最小值。
[0050]
3)数据分布拟合使用pot方法对超阈值x-t部分进行帕累托分布(gpd)拟合,以上有介绍。然后使用最大似然估计方法得到参数γ,σ在使用grimshaw来寻找最优解。
[0051]
最大似然估计是一种重要而普遍的求估计量的方法。如果x1, . . .xn是随机变量x的n个独立实现,其中密度由θ参数化,似然函数则定义为:它表示这n个观测值的联合密度。此方法尝试找到参数θ使联合密度最大化。实际上,此方法研究对数似然,所以在该例子中(gpd拟合)此方法必须最大化下面的公式:其中,yi》0是xi超过t的部分(yi=x
i-t for xi》t)。为了得到最优解,使用grimshaw方法,它是把将两个变量优化问题简化为一个变量方程问题。
[0052]
4)阈值计算利用得到的参数γ,σ来计算阈值zq,该公式如下:其中t是初始阈值,q是假定概率,n是不包含异常值的历史数据的个数,n
t
是不包含异常值超阈值部分的个数。
[0053]
5)异常方向性自动识别告警利用以上过程对监测指标同时进行上下阈值的计算,即对于当前待检测点会生成上下两个阈值即z
q下
和z
q上
。进行异常判断时,将当前检测数据点x
t
与上下阈值进行比较,若x
t
》z
q上
或x
t
《z
q下
时,则认为当前检测点为异常。若x
t
》z
q上
,则方向性识别发出数据突增引起的告警,若x
t
《z
q下
,则方向性识别发出数据下跌引起的告警,以便运维人员及时判断和修复故障。
[0054]
示例性的,参加图8所示,图8为应用本发明实施例单指标异常的检测方法对周期性历史监测指标数据进行检测的流程示意图,其中:1)数据预处理数据来源不同,数据大小不同,为了让它们具备可比性,需要采用标准化方法消除由此带来的偏差。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。数据标准化的原理是数值减去平均值,再除以其标准差,得到均值为0,标准差为1的服从标准正态分布的数据。其中平均值和标准差从历史数据中得出。
[0055]
在真实的场景中,会不可避免地在采集或存储的过程中丢失部分数据——这种点
称为“缺失点”。由于滑动窗口要求在每个时刻t得到一个定长的窗口,即缺失点必须被填补一个数值以构成完整的窗口。该方法在缺失点处填补了0,而非通过一些现有的算法填补这些缺失点,这是因为vae本身就是一个生成模型,它自身就能产生数据、填补空缺。
[0056]
为了在vae中处理kpi时序数据,该方法采用滑动窗口对kpi序列进行预处理:参见图9所示,图9为采用本发明实施例单指标异常的检测方法对周期性历史监测指标数据进行检测时的时间信息编码示例,对于每一个时刻t,子序列x
t-w 1
,x
t-w 2
,
…
,x
t
被当做该时刻数据的向量x。额外信息指的是时间信息,在滑动窗口添加时间信息的one hot编码,选取的时间信息为星期,小时和分钟,模型不考虑年份、月份等信息是因为周期性kpi曲线的周期跨度通常小于一个月,考虑年月等信息意义不大。时间的one-hot编码即将数字转为二进制形式,由于星期数最多为7,小时数最多为24,分钟数最多可为59,所以星期数选取7位表示。例如,用one-hot编码表示星期二,则七位的第二位设置为1,其余为0,小时数选取24位表示,分钟数选取60位表示。
[0057]
3)训练参见图10所示,图10为采用本发明实施例单指标异常的检测方法对周期性历史监测指标数据进行检测时待训练检测模型的网络框架示意图。隐变量z被指定了一个先验分布(prior,通常是多维高斯分布n(0,i))。在z的基础上,x被假设为服从概率分布p
θ
(x|z,y),这一概率分布是通过一个神经网络(其可学习参数为)导出的。p
θ
(x|z,y)的后验分布p
θ
(z|x,y)通过使用另一个独立的神经网络来拟合,拟合得到的近似后验概率被记作q
φ
(z|x,y)。q
φ
(z|x,y)可以被假设为服从高斯分布,其中和分别表示分布的期望和方差,通过x得到。
[0058]
p
θ
(x|z,y)的具体形式和实际任务相关,考虑到所研究的kpi数据具有明显的周期性,并且kpi序列中的噪声相对于整体模式较小、各个时刻的噪声没有明显的关联性,因此p
θ
(x|z,y)被假设为服从各维独立的多维高斯分布,其中和是由p
θ
(x|z,y)的神经网络导出的分布参数,分别表示分布的期望和方差,通过得到。模型采用全连接层作为隐藏层,输入x进入隐藏层,分别通过线性变化和softplus得到和,从而得到q
φ
(z|y,x),具体公式如下:其中,和通过神经网络学习得到,为正实数。
[0059]
生成网络同理,隐变量进入隐藏层,通过线性变化得到,通过softplus得到,具体公式如下:
其中,,和通过神经网络学习得到,为正实数。
[0060]
由于时间信息的one-hot编码比kpi要简单的多。具体而言,如果同时处理时间信息与kpi数据会出现过拟合现象,所以为了防止时间信息的过拟合,bagel添加了dropout层,对额外信息y做了dropout处理。
[0061]
数据中的异常点和缺失点会影响后续点的检测。事实上,这些异常点和缺失点也会影响模型的训练,毕竟vae需要学习正常的数据模式,异常点和缺失点的存在会让vae学习到错误的模式。该算法分别提出了不同的方法来降低这些点在训练和测试时影响。主要有三个创新点,即m-elbo(modified elbo),缺失值注入,在训练的时候并没有把带有异常点和缺失点的窗口完全抛弃,在朴素vae基础上,修改了vae的elbo(evidence lower bound objective,证据下界):其中是长度为w的窗口x中某一时刻是否正常的标识,=1表示w时刻没有发生异常、也没有缺失的值,而=0则相反。通过,x可以从目标函数中去除所有非正常点的直接贡献。定义为表示在x中有多少比例的时刻是正常的。q
φ
(z|x,z)对应于异常x的可信度是降低的,因此根据q
φ
(z|x,y)找出的对先验p
θ
(z|y)的贡献也应该依据β按比例减少。
[0062]
该算法没有缩放第三项,主要有两个因素:其一,第三项不属于“生成模型”的主体,只是一个从x到z的映射,因此概念上并没有缩放的必要。其二,第三项logq
θ
(z|x,y)在用来解释重建概率的理论中有特殊的作用。该算法将这一被修改过的l
(x,y)
称之为m-elbo,模型通过随机梯度下降算法训练参数,使证据下界尽量大,以此来使得p
θ
(z|x,y)与q
φ
(z|x,y)尽量接近,式子通过设置变量来抛弃异常点,模型实际上重建的是kpi的正常模式。
[0063]
4)检测马尔科夫蒙特卡洛(markov chain monte carlo,mcmc)方法(含随机游走蒙特卡洛方法)是一组用马氏链从随机分布取样的算法,之前步骤的作为底本。步数越多,结果越好。创建一个具有期望属性的马氏链并非难事,难的是如何决定通过多少步可以达到在许可误差内的稳定分布。一个好的马氏链具有快速混合,从开始阶段迅速获得的一个稳定状态。
[0064]
mcmc是一种利用已经训练好的深度贝叶斯模型进行数据填补的技术,即输入x经过模型多次重建,将最终的重建样本x'作为异常检测的输入。该方法的目的是填补输入中
的缺失值,方法充分利用vae模型对数据的拟合能力,而非诉诸于弱于vae算法的其他模型。
[0065]
参见图11所示,图11为采用本发明实施例单指标异常的检测方法对周期性历史监测指标数据进行检测时mcmc填补的示例示意图,其中,滑动窗口x被分解为(xo,xm),其中xo为非缺失点,xm是缺失点,输入x经过模型重建后从(xo,xm)转为(xo,x'm),即重建样本,将x'作为下一次mcmc迭代的输入,或作为迭代结束后异常检测时的输入。
[0066]
5)异常方向性自动识别告警若当前检测数据点的异常分数大于计算出的阈值,即:则认为当前检测点的重构概率低于了正常重构概率的阈值,则被认为异常。
[0067]
判断为异常后,进一步进行异常方向性自动识别,采用的方法是计算当前检测数据点和历史若干周期内相同时刻前后三个非异常点的平均值的斜率α,如下列公式所示:其中,x
t
是t时刻监测数据所对的值,ρ是一个周期的长度,h是选取历史数据中周期的个数。
[0068]
若α大于0,则方向识别为数据突增引起的告警,若α小于0,则方向识别为数据下跌引起的告警。
[0069]
本发明实施例提供了一种单指标异常的检测装置,参见图12所示,图12位本发明实施例单指标异常的检测装置120的内部结构示意图,单指标异常的检测装置120包括:验证模块121,用于获取到被检测对象的历史监测指标数据集合之后,对历史监测指标数据集合中的历史监测指标数据进行周期性验证;第一执行模块122,用于若周期性验证的验证结果为历史监测指标数据具有非周期性,采用预设的第一检测算法对获取到的被检测对象的当前监测指标数据进行第一检测,第一检测用于指示当前监测指标数据是否异常;第二执行模块123,用于若周期性验证的验证结果为历史监测指标数据具有周期性,采用至少两种预设的检测算法对历史监测指标数据进行第一验证,第一验证用于指示至少两种预设的检测算法中的一算法为最优算法;采用最优算法对当前检测指标数据进行第一检测。
[0070]
本发明的一些实施例中,可选地,验证模块121,用于采用预设的周期性判断算法对所述历史监测指标数据进行周期性计算,得到周期性计算值;验证模块121,用于若所述周期性计算值小于预设的周期性阈值,确定所述历史监测指标数据具有周期性;验证模块121,用于若所述周期性计算值大于所述周期性阈值,确定所述历史监测指标数据具有非周期性。
[0071]
本发明的一些实施例中,可选地,第一执行模块122,用于采用分布拟合方式对所述历史监测指标数据进行拟合,得到拟合参数;
第一执行模块122,用于根据所述拟合参数以及预设的异常判定阈值计算式,得到异常判定阈值;第一执行模块122,用于根据所述第一检测算法以及异常判定阈值对所述当前检测指标数据进行第一检测,若所述当前检测指标数据超出所述异常判定阈值,判定所述当前检测指标数据异常。
[0072]
本发明的一些实施例中,可选地,第一执行模块122,用于对所述历史监测指标数据进行预处理,所述预处理至少包括以下一项:数据去重、缺失值填充以及数据归一化。
[0073]
本发明的一些实施例中,可选地,第二执行模块123,用于从所述历史监测指标数据中提取第一数据,所述第一数据具有标注,所述标注用于指示所述第一数据是否异常;第二执行模块123,用于采用所述预设的检测算法对所述第一数据进行检测,得到与所述检测算法一一对应的评估值;第二执行模块123,用于根据所述评估值,确定所述最优算法。
[0074]
本发明的一些实施例中,可选地,单指标异常的检测装置120还包括:告警模块124,用于若所述第一检测的检测结果为所述当前检测指标数据异常,根据所述当前检测指标数据、获取所述当前检测指标数据的时间间隔值以及所述时间间隔值的数量,对所述当前检测指标数据进行第二检测;所述第二检测用于指示所述当前检测指标数据的异常方向;告警模块124,用于若所述第二检测的检测结果为上增方向异常,发送上增方向异常告警至与用户关联的交互端;告警模块124,用于若所述第二检测的检测结果为下降方向异常,发送下降方向异常告警至所述交互端。
[0075]
本发明的一些实施例中,可选地,告警模块124,用于若所述当前检测指标数据大于所述异常判定阈值,判定所述当前检测指标数据为上增方向异常,发送上增方向异常告警至与用户关联的交互端;告警模块124,用于若所述当前检测指标数据小于所述异常判定阈值,判定所述当前检测指标数据为下降方向异常,发送下降方向异常告警至所述交互端。
[0076]
本技术实施例提供的单指标异常的检测装置能够实现图1至图11的方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。
[0077]
本发明实施例提供了一种电子设备130,参见图13所示,图13为本发明实施例电子设备130的内部结构示意图,包括处理器131,存储器132及存储在存储器132上并可在处理器131上运行的程序或指令,程序或指令被处理器执行时实现本发明的任一项单指标异常的检测方法中的步骤。
[0078]
本发明实施例提供了一种可读存储介质,可读存储介质上存储程序或指令,程序或指令被处理器执行时实现如上述任一项的单指标异常的检测方法的实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0079]
其中,所述的可读存储介质,如只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等。
[0080]
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
技术特征:
1.一种单指标异常的检测方法,其特征在于,包括:获取到被检测对象的历史监测指标数据集合之后,对所述历史监测指标数据集合中的历史监测指标数据进行周期性验证;若所述周期性验证的验证结果为所述历史监测指标数据具有非周期性,采用预设的第一检测算法对获取到的所述被检测对象的当前监测指标数据进行第一检测,所述第一检测用于指示所述当前监测指标数据是否异常;若所述周期性验证的验证结果为所述历史监测指标数据具有周期性,采用至少两种预设的检测算法对所述历史监测指标数据进行第一验证,所述第一验证用于指示至少两种所述预设的检测算法中的一算法为最优算法;采用所述最优算法对所述当前监测指标数据进行所述第一检测。2.根据权利要求1所述的单指标异常的检测方法,其特征在于:对所述历史监测指标数据集合中的历史监测指标数据进行周期性验证,包括:采用预设的周期性判断算法对所述历史监测指标数据进行周期性计算,得到周期性计算值;若所述周期性计算值小于预设的周期性阈值,确定所述历史监测指标数据具有周期性;若所述周期性计算值大于所述周期性阈值,确定所述历史监测指标数据具有非周期性。3.根据权利要求1所述的单指标异常的检测方法,其特征在于:采用预设的第一检测算法对获取到的所述被检测对象的当前监测指标数据进行第一检测,包括:采用分布拟合方式对所述历史监测指标数据进行拟合,得到拟合参数;根据所述拟合参数以及预设的异常判定阈值计算式,得到异常判定阈值;根据所述第一检测算法以及异常判定阈值对所述当前检测指标数据进行第一检测,若所述当前检测指标数据超出所述异常判定阈值,判定所述当前检测指标数据异常。4.根据权利要求3所述的单指标异常的检测方法,其特征在于:采用分布拟合方式对所述历史监测指标数据进行拟合,得到拟合参数,之前包括:对所述历史监测指标数据进行预处理,所述预处理至少包括以下一项:数据去重、缺失值填充以及数据归一化。5.根据权利要求1所述的单指标异常的检测方法,其特征在于:对所述历史监测指标数据进行第一验证,包括:从所述历史监测指标数据中提取第一数据,所述第一数据具有标注,所述标注用于指示所述第一数据是否异常;采用所述预设的检测算法对所述第一数据进行检测,得到与所述检测算法一一对应的评估值;根据所述评估值,确定所述最优算法。6.根据权利要求1所述的单指标异常的检测方法,其特征在于:采用所述最优算法对所述当前检测指标数据进行第一检测,之后包括:若所述第一检测的检测结果为所述当前检测指标数据异常,根据所述当前检测指标数
据、获取所述当前检测指标数据的时间间隔值以及所述时间间隔值的数量,对所述当前检测指标数据进行第二检测;所述第二检测用于指示所述当前检测指标数据的异常方向;若所述第二检测的检测结果为上增方向异常,发送上增方向异常告警至与用户关联的交互端;若所述第二检测的检测结果为下降方向异常,发送下降方向异常告警至所述交互端。7.根据权利要求3所述的单指标异常的检测方法,其特征在于:若所述当前检测指标数据超出所述异常判定阈值,判定所述当前检测指标数据异常,之后包括:若所述当前检测指标数据大于所述异常判定阈值,判定所述当前检测指标数据为上增方向异常,发送上增方向异常告警至与用户关联的交互端;若所述当前检测指标数据小于所述异常判定阈值,判定所述当前检测指标数据为下降方向异常,发送下降方向异常告警至所述交互端。8.一种单指标异常的检测装置,其特征在于,包括:验证模块,用于获取到被检测对象的历史监测指标数据集合之后,对所述历史监测指标数据集合中的历史监测指标数据进行周期性验证;第一执行模块,用于若所述周期性验证的验证结果为所述历史监测指标数据具有非周期性,采用预设的第一检测算法对获取到的所述被检测对象的当前监测指标数据进行第一检测,所述第一检测用于指示所述当前监测指标数据是否异常;第二执行模块,用于若所述周期性验证的验证结果为所述历史监测指标数据具有周期性,采用至少两种预设的检测算法对所述历史监测指标数据进行第一验证,所述第一验证用于指示至少两种所述预设的检测算法中的一算法为最优算法;采用所述最优算法对所述当前监测指标数据进行所述第一检测。9.一种电子设备,其特征在于:包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至7中任一项所述的单指标异常的检测方法中的步骤。10.一种可读存储介质,其特征在于:所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1至7中任一项所述的单指标异常的检测方法中的步骤。
技术总结
本发明提供一种单指标异常的检测方法、装置、电子设备及可读存储介质,其中方法包括:获取到被检测对象的历史监测指标数据集合之后,对历史监测指标数据集合中的历史监测指标数据进行周期性验证;若周期性验证的验证结果为历史监测指标数据具有非周期性,采用预设的第一检测算法对获取到的被检测对象的当前监测指标数据进行第一检测,第一检测用于指示当前监测指标数据是否异常;若周期性验证的验证结果为历史监测指标数据具有周期性,采用至少两种预设的检测算法对历史监测指标数据进行第一验证,第一验证用于指示至少两种预设的检测算法中的一算法为最优算法;采用最优算法对当前检测指标数据进行第一检测。本发明检测效率高、准确性高。准确性高。准确性高。
技术研发人员:邹永强 杨晖 李筱沛 于洪建 李晓桐 孙永谦 张茹茹 张圣林 谭智元 文雨晨
受保护的技术使用者:南开大学
技术研发日:2022.04.21
技术公布日:2022/5/25
转载请注明原文地址:https://tc.8miu.com/read-9681.html