基于机器学习的KPI自动化异常检测系统

2017 年 8 月 16 日 运维帮
基于机器学习的KPI自动化异常检测系统

作者:刘平

转自:「智能运维前沿」订阅号


导读
 

今天给大家介绍Netman实验室在异常检测领域的研究成果:基于机器学习的KPI自动化异常检测系统(Opprentice)。在实际生产环境中,异常检测系统的痛点就是异常检测算法的选择以及算法参数的调整,这个过程往往耗费大量的人力和时间,但是往往效果无法达到预期,Opprentice主要针对这类难题设计,通过将异常检测问题转换为监督式的机器学习问题,实现了异常检测算法的自动选择和算法参数的自动调整。

如何构建一个异常检测系统?

在实际的运维场景中,构建一个异常检测系统往往需要两个角色共同参与:领域专家算法开发人员。领域专家也就是我们的运维人员,他们对KPI曲线的行为很熟悉,可以通过观察KPI曲线并结合自己的领域知识,判断KPI曲线是否出现异常;算法开发人员负责构建异常检测系统,他们熟悉异常检测器(算法),但是实际中有各种不同类型的KPI曲线需要维护,所以需要为不同类型的KPI曲线选择合适的异常检测器以及合适的算法参数。


在实际构建异常检测系统时,首先需要运维人员结合自己的领域知识向算法开发人员描述异常,然后开发人员根据这些描述来为KPI曲线选择合适的检测器和算法参数,接着领域专家根据这些检测器的检测结果向开发人员反馈,来进一步优化检测器。所以实际中经常需要经过多次迭代才能开发出可用的异常检测系统,有时还会出现最终开发失败的例子,这是因为:

  1. 运维人员难以事先给出准确、量化的异常定义

  2. 选择和综合不同的检测器需要很多人力

  3. 检测器算法复杂,参数调节不直观

实际中经常需要经过多次迭代才能开发出可用的异常检测系统,有时还会出现最终开发失败的例子。因此,我们就会问,有没有一个可以自动选择异常检测器和自动调节算法参数的系统呢?答案是有!,我们实验室的研究成果:基于机器学习的KPI自动化异常检测系统(Opprentice)就是针对它设计的,下文将主要介绍Opprentice 的设计思想以及设计框架。


设计思想

Opprentice (Operator's Apprentice)的主要思想就是跟着运维人员从历史数据中学习,运维人员就像是一个“师傅”,将自己的领域知识“教“给Opprentice,然后Opprentice根据“学”到的知识来自动选择合适的异常检测器和算法参数。如下图所示,运维人员首先在历史的KPI曲线上标记出异常,接着Opprentice 使用十几种不同类型的检测器提取出上百个异常特征,此时有了人工标记的数据和异常特征,我们就可以将异常检测问题转化成机器学习中监督式的分类问题,将提取出的特征作为机器学习算法的输入,通过分类算法将KPI曲线上的点分为正常和异常,从而实现了异常检测。

设计框架

Opprentice主要由两部分组成:离线训练分类器在线检测,在离线训练分类器部分,首先运维人员使用我们开发的异常标注工具,方便快速的标注出KPI曲线上的异常数据,并且设置期望Opprentice达到的准确率(precision)和召回率(recall),然后Opprentice会使用十几种不同类型的检测器提取出KPI曲线的特征,其中每种检测器都有多种不同的参数配置,因此最终会提取出上百个异常特征。因为提取出的上百个异常特征中会存在无关特征和冗余特征,一些机器学习算法使用包含有这些特征的数据训练模型时准确度会降低,为了解决这个问题,我们选择了一种集成学习算法(ensemble learning algorithm)来训练分类器:随机森林,随机森林算法使用了多棵决策树,最终的结果是由每棵决策树的结果投票决定的,并且训练决策树的特征和数据都只是采样了整体特征和数据的一部分,因此使用随机森林训练模型时,无关特征和冗余特征不会影响算法的性能。最后,将提取出的异常特征,运维人员的标注数据和准确性倾向作为输入,训练出异常分类器。

在线检测部分中,首先对于新的数据点进行特征提取,然后用训练出的分类器判断数据点是否异常。在实际中,新的KPI数据中往往会出现一些历史数据中没有出现过的异常类型,为了让分类器可以适应新出现的异常,就需要运维人员定期的对最新的KPI数据进行异常标记,Opprentice会定期训练新的模型来更新分类器。

我们使用了来自百度和清华校园网的数个月的真实数据对系统的性能进行了验证,下面四幅图是在四个不同类型的KPI数据上,Opprentice使用的随机森林模型跟其它检测器的性能对比,可以看出Opprentice均取得了优异的结果。

总结

Opprentice将异常检测问题转换成了机器学习中的监督式分类问题,使用运维人员的标注数据,在历史数据中训练出分类模型来自动构建异常检测系统,从而解决了异常检测器的选择和算法参数调整的难题,为复杂检测器的实际应用提供了自动化的框架。

由于篇幅有限,没有介绍Opprentice的更多细节,特此附上论文链接,请点击阅读原文获取。

商务合作,请加微信yunweibang555

登录查看更多
8

相关内容

在数据挖掘中,异常检测(英语:anomaly detection)对不符合预期模式或数据集中其他项目的项目、事件或观测值的识别。通常异常项目会转变成银行欺诈、结构缺陷、医疗问题、文本错误等类型的问题。异常也被称为离群值、新奇、噪声、偏差和例外。 特别是在检测滥用与网络入侵时,有趣性对象往往不是罕见对象,但却是超出预料的突发活动。这种模式不遵循通常统计定义中把异常点看作是罕见对象,于是许多异常检测方法(特别是无监督的方法)将对此类数据失效,除非进行了合适的聚集。相反,聚类分析算法可能可以检测出这些模式形成的微聚类。 有三大类异常检测方法。[1] 在假设数据集中大多数实例都是正常的前提下,无监督异常检测方法能通过寻找与其他数据最不匹配的实例来检测出未标记测试数据的异常。监督式异常检测方法需要一个已经被标记“正常”与“异常”的数据集,并涉及到训练分类器(与许多其他的统计分类问题的关键区别是异常检测的内在不均衡性)。半监督式异常检测方法根据一个给定的正常训练数据集创建一个表示正常行为的模型,然后检测由学习模型生成的测试实例的可能性。

【导读】这本书对自动化机器学习(AutoML)的一般化方法进行了全面的阐述,并且收集了以这些方法为基础的系统的描述和一系列关于自动化机器学习系统领域的挑战。最近,机器学习在商业领域取得的成就和该领域的快速增长对机器学习产生了大量的需求,尤其是可以很容易地使用,并且不需要专家知识的机器学习方法。然而,当前许多表现优异的机器学习方法的大多都依赖人类专家去手动选择适当的机器学习架构以及模型的超参数(深度学习架构或者更加传统的机器学习方法)。为了克服这个问题,AutoML基于优化原理和机器学习本身去逐步实现机器学习的自动化。这本书可以为为研究人员和高年级学生提供一个进入这个快速发展的领域的切入点,同时也为打算在工作中使用AutoML的从业者提供参考。

第一部分 自动机器学习方法

每个机器学习系统都有超参数,而自动化机器学习最基本的任务就是自动设置这些超参数来优化性能。尤其是最近的深度神经网络严重依赖对于神经网络的结构、正则化和优化等超参数的选择。自动优化超参数(HPO)有几个重要的用例:​

  • 减少机器学习应用过程中所需的人力。这在自动化机器学习(AutoML)的上下文中尤其重要。
  • 提高机器学习算法的性能(根据实际问题调整算法);这已经在一些研究中对重要的机器学习基准方法产生了效果。
  • 提高科学研究的再现性和公平性。自动化的HPO显然比手工搜索更具可重复性。它使得不同的方法可以公平的比较,因为不同的方法只有在它们在相同级别的问题上调优时才能公平地进行比较。

第二部分 自动化机器学习系统

越来越多的非领域专家开始学习使用机器学习工具,他们需要非独立的解决方案。机器学习社区通过开源代码为这些用户提供了大量复杂的学习算法和特征选择方法,比如WEKA和mlr。这些开源包需要使用者做出两种选择:选择一种学习算法,并通过设置超参数对其进行定制。然而想要一次性做出正确的选择是非常具有挑战性的,这使得许多用户不得不通过算法的声誉或直觉来进行选择,并将超参数设置为默认值。当然,采用这种方法所获得的性能要比最佳方法进行超参数设置差得多。

第三部分 自动化机器学习面临的挑战

直到十年之前,机器学习还是一门鲜为人知的学科。对于机器学习领域的科学家们来说,这是一个“卖方市场”:他们研究产出了大量的算法,并不断地寻找新的有趣的数据集。大的互联网公司积累了大量的数据,如谷歌,Facebook,微软和亚马逊已经上线了基于机器学习的应用,数据科学竞赛也吸引了新一代的年轻科学家。如今,随着开放性数据的增加,政府和企业不断发掘机器学习的新的应用领域。然而,不幸的是机器学习并不是全自动的:依旧很难确定哪个算法一定适用于哪种问题和如何选择超参数。完全自动化是一个无界的问题,因为总是有一些从未遇到过的新设置。AutoML面临的挑战包括但不限于:

  • 监督学习问题(分类和回归)
  • 特征向量表示问题
  • 数据集特征分布问题(训练集,验证集和测试集分布相同)
  • 小于200兆字节的中型数据集
  • 有限的计算资源
成为VIP会员查看完整内容
0
94
小贴士
相关资讯
【机器学习】基于TensorFlow搭建一套通用机器学习平台
【深度学习】基于深度学习的电商交易欺诈检测系统
基于深度学习的电商交易欺诈检测系统
AI研习社
7+阅读 · 2017年9月26日
干货|用机器学习检测异常点击流
全球人工智能
5+阅读 · 2017年7月30日
侦测欺诈交易(异常点检测)
GBASE数据工程部数据团队
17+阅读 · 2017年5月10日
相关论文
Teacher-Student Training for Robust Tacotron-based TTS
Rui Liu,Berrak Sisman,Jingdong Li,Feilong Bao,Guanglai Gao,Haizhou Li
4+阅读 · 2019年11月7日
Lu Liu,Tianyi Zhou,Guodong Long,Jing Jiang,Chengqi Zhang
13+阅读 · 2019年9月11日
Bryan Wilder,Eric Ewing,Bistra Dilkina,Milind Tambe
4+阅读 · 2019年5月31日
Marvin Teichmann,Andre Araujo,Menglong Zhu,Jack Sim
5+阅读 · 2019年5月14日
Tao Kong,Fuchun Sun,Huaping Liu,Yuning Jiang,Jianbo Shi
5+阅读 · 2019年4月8日
Yu Cheng,Mo Yu,Xiaoxiao Guo,Bowen Zhou
11+阅读 · 2019年1月26日
Fuming Fang,Junichi Yamagishi,Isao Echizen,Jaime Lorenzo-Trueba
4+阅读 · 2018年4月2日
Ignasi Clavera,Anusha Nagabandi,Ronald S. Fearing,Pieter Abbeel,Sergey Levine,Chelsea Finn
7+阅读 · 2018年3月30日
Pengkai Zhu,Hanxiao Wang,Tolga Bolukbasi,Venkatesh Saligrama
5+阅读 · 2018年3月19日
Top