连续区间多类型KPI异常检测

Title

《ALSR: An Adaptive Label Screening and Relearning Approach for Interval-Oriented Anomaly Detection》
——Expert Systems With Applications期刊

Summary

本文提出了一种针对连续区间KPI异常检测的机器学习方案(文中称为ALSR),利用连续异常区间内异常点的不同特性对异常检测方案进行了优化,使其具有更好的检测准确率。本文的实验数据来自于清华大学主办的第一届AIOps竞赛[1]数据集。在三种典型KPI上进行的实验表明,该方法取得了F-score达到0.965,AUCPR达到0.978的良好表现。

Research Objective

提高异常检测算法在多类型KPI上的准确性

Problem Statement

在运维过程中,KPI(Key Performance Indicator,关键性能指标)是衡量网络服务工作状态的重要指标,而KPI异常检测也是AIOPs的一个重要方向。

  • 多类型kpi
    KPI时间序列数据可以从页面访问流量、在线人数、点击量等不同指标中获得。服务和指标的特性不同,获得的KPI也就具有不同的变化模式。本文所讨论的KPI主要具有如图2所示三种典型的变化模式,其中的异常由红色标出
  1. 强周期型KPI:这一类KPI具有非常明显的周期性,而噪声相对于周期性变化来说比较小。
  2. 稳定型KPI:这一类KPI大多数时候保持不变或者存在很小的噪声。
  3. 波动型KPI:这一类KPI的值处于明显的不断波动中,噪声对值的影响很大。
    在这里插入图片描述
    在这几种类型的KPI中,发生的异常具有一定的相似性,比如:
    a. 当异常出现时,KPI值的大小、变化率等特征发生了明显的变化。
    b. 异常是以连续区间的形式出现的,这也与实际运维中发生的异常通常持续一段时间相符合。
  • 面向区间的异常检测
    在实际的异常报警中,运维人员可能更加关注每一个异常事件(连续异常区间)的检出,而非每一个异常点的检出。在这种需求下,衍生出了一种对于面向区间的异常检测标准,使用如下方式计算异常检测中的TP、TN、FP和FN:
    a. 对于一段标记的连续异常区间:如果异常检测算法在该连续异常区间开始后的不晚于T 个时间点内检测到了该连续异常区间,则认为此异常检测算法成功地检测到了整段连续异常区间,因此该异常区间内的每一个异常点都算作一次true positive(TP);否则,该连续异常区间内的每一个异常点都算作一次false negative(FN)。
    b. 对于一个没有标记异常的时间点:如果异常检测算法输出了异常,计做一次false positive (FP);否则,计做一次true negative (TN)。
    而异常检测的效果分数可以使用F-score来计算:
    在这里插入图片描述
    公式中的下标io表示面向区间的(interval-oriented)评价指标。

Method(s)

  • 传统方案
    传统的使用时间序列预测的异常检测方案中,存在两种常见的训练方式,一种是孤立使用每一个时间点或时间窗口进行训练,另一种是变点异常检测,即尝试检出一段异常的起点和终点。变点异常检测完全忽略了异常区间内部的点,当应用到机器学习中时,会由于人工标注的成本原因而导致能够使用的训练样本过少。因此,对于使用机器学习的AIOps来说,一般的做法仍是使用孤立的时间点或时间窗口进行训练,这种做法缺少针对异常区间内不同点的特点进行的进一步处理,对于异常区间标签的利用率不够高。
  • 论文方案ALSR
    ALSR是一种分阶段的异常检测方案,它的训练和检测过程主要分三个部分:标签筛选模型、基础DNN模型以及再学习模型。其中,标签筛选模型主要针对连续异常区间的特点,将异常区间中少部分不能展现出异常特征的点移除,使得后续模型对于区间内的异常特征有更准确的识别。基础DNN模型则使用基于深度神经网络设计的全连接结构,负责进行正常/异常点的分类工作。最后的再学习模型则是在小范围内对上一步被检出的异常做进一步的筛查,以便去除可能存在的少量假正例。
  1. 特征提取
    文章使用长度为W的滑动窗口进行特征提取。并主要提取以下四类特征:
    值:KPI的原始值
    统计特征:均值、方差、一阶差分等
    时间序列预测特征:EWMA,AR预测
    小波分析特征:DB2小波
  2. 基础DNN模型
    基础DNN模型是一个三层的全连接网络,它是文章中的基本分类器,位置处于三个分类阶段的中间。该模型具有适当和深度和较好的泛化性能。在上文所述的特征集上能够取得较好的分类效果
  3. 标签筛选模型
    文章中提出了一种基于分类的标签筛选模型,该模型主要针对连续异常区间的特点,对同一个异常区间内具有不同特点的数据点进行区分处理。
    标签筛选是ALSR分类器的第一个步骤。它利用提取的特征集先进行一次训练和分类,并在训练集上将分类结果分为TPpo、FPpo、TNpo、FNpo四类。下标”po”代表这种对结果分类是面向点的而非面区间的。
    在标签筛选模型的训练之后,被认为是区间中非必要的异常点将会被从训练集中移除
    作为一个实际的正常/异常分类器,它本身具有不错的分类能力,只会误分类一些本身比较模糊的异常点。文章采取了以下两种措施来处理这种误分类。
    a. 只有FNpo,afT点被认为是异常区间中非必要的点并将被从原始的训练集中移除。这是因为在异常区间的前T个点之内的点对于判断异常区间的开始比较重要。
    b. 筛选过的训练集将会被用于基础DNN模型的训练。但是标签筛选模型的分类结果也同样会被保留。两项结果被综合在一起,以保证标签筛选的有效性、并且尽量有效利用有限的异常点。
  4. 再学习模型
    标签筛选模型和基础DNN模型都是正常/异常分类器。与此不同,再学习的对象是基础DNN模型检出的异常点。这些检出的异常大部分都对应真实的异常,但其中仍然有一些不应该出现的假正例点,这就为使用再学习算法提供了可能。
    ALSR中的再学习主要使用基础DNN模型分类之后获得的TPpo和FPpo点进行学习,也就是说它是一个假正例/真正例的分类器。理想情况下,再学习模型应该能够检出所有的FNpo点,并且不影响任何的TPpo点。但是实际上,这种再分类仍然会导致一定的错误,即FNpo点的增加。这个问题在面向区间的异常检测中是被最小化的,因为除了FNpo,inT,fnT点之外,其他的FNpo点并不影响对于连续异常区间的判断。事实上,FNpo,inT,tpI和FNpo,afT,tpI点在面向区间的异常检测中都被分类为TPio点。
    对于再学习模型使用的训练集的获取,存在关于数据量的问题,因为对于不同的KPI,基础DNN分类得到的TPpo和FPpo的数量和比例都不确定。为了解决这个问题,文章将再学习模型训练集采样到一个特定的数组,并且在其中加入少量的TNpo点作为辅助类,以获得更好的表现效果。再学习模型的训练集按照以下进行采样。
    经过实验,再学习模型使用随机森林(random forest, RF)算法,这种算法在实验中具有运算速度快,准确度高的优点

Evaluation

文章使用F-score和AUCPR两种标准来衡量检测效果,并使用如下的分类器作为对比:

  1. 分类表现
    支持向量机模型(Support Vector Machine, SVM),长短期记忆网络(Long Short-Term Memory, LSTM),随机森林算法,以及Opprentice[2],一种使用14类基础分类器提取特征并使用随机森林进行分类的算法
    在这里插入图片描述
    可以看到,ALSR在强周期型和稳定型KPI上的PR曲线更接近右上角,而LSTM和RF在波动型KPI上的表现稍微占优。这证明了ALSR与对比实验相比,通常能够达到更好或至少接近相等的表现效果,考虑到多类别KPI的检测,ALSR具有更好的稳定性。
    F-score和AUCPR的对比。ALSR在总体数据集上的F-score是0.965,AUCPR是0.978,均优于其他几种算法
    在这里插入图片描述
  2. 特征提取
    ALSR中使用的12项特征被作为特征集3,与滑动窗口直接获得的值(特征集1)和[3]中使用的特征集(特征集2)进行了对比。其中A、B、C分别代表强周期型、稳定型和波动型KPI。可以看到,特征集1和2对于某些KPI不能起到很好的提取特征效果,并且获得了很低的F-score,而ALSR则在全部KPI上有比较稳定的表现效果。三个特征集在SVM,RF,LSTM和ALSR上的表现也在表1中进行了对比
    在这里插入图片描述
  3. 标签筛选和再学习技术的效果
    在这里插入图片描述
    其中,标签筛选技术获得了更多的表现提升,而稳定型KPI是受到影响最大,可能因为其中存在着更多的较长KPI区间,而标签筛选自然地去除了长异常中大量无用的异常点,因而获得了更好的表现效果。
    再学习模型的表现提升稍少,这是由于它工作在更小的范围上,从而影响的范围也更小。但是这种轻量级的增强方案能够使用很小的开销在存在TPio和FPio的环境中稳定提供一定的效果提升。
    两种技术能够在ALSR中被有效结合在一起使用
  4. 滑动窗口长度W和时延T的选择
    在这里插入图片描述
    合适的滑动窗口长度对于提取特征有重要的作用。图10展示了F-score随着滑动窗口长度W的变化。可以看到ALSR方案在强周期型KPI上受到W的影响最大,文章中最后选择了W=11。

异常检测准许时延T是文中的另一项重要参数,它的影响如图11所示。按照猜测,越长的准许时延T应该能够获得越好的表现效果。但实际上只在T比较小的时候是这样。按照实验结果,当T>12之后算法的F-score值就不再变化。这是由于有一些异常是实际上完全未被检出的,与检测准许的时延没有关系。本文推荐使用不低于5的T值以获得更好的表现,本文的实验中使用的T=12

Conclusion

实际应用中往往需求高准确度的异常检测算法。基于大部分异常检测主要关注连续异常区间的现实,ALSR算法被用于对异常相关的标签进行进一步的利用,以求获得效果上的提升。为了达到这种目的,ALSR使用标签筛选从异常区间中移除非必要的点,并且通过对检出异常的再分类提升总体表现。

除此之外,ALSR也仔细选择了具有典型性的特征和泛化性能比较好的网络结构。为了避免只在特定的KPI上达到好的表现效果,ALSR只使用了泛化性能比较好的DNN网络和随机森林算法,并且在方案中避免了对于周期性特征的使用。因而它的良好表现没有被限制在一类特定的KPI上,而是使用一种自适应和自动的方式,在三种典型的KPI上得到F-score为0.965的总体表现

发布了78 篇原创文章 · 获赞 8 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_34219959/article/details/101779795
今日推荐