所有文章 > 正文

阿里巴巴在用什么算法进行KPI异常检测?

作者: 学术君 学术咖

时间: 2019-01-04 12:10

​这是一篇被收录在2018年WWW大会第18次会议中的论文,它介绍了如何利用基于VAE的无监督检测算法来进行KPI异常检测的问题。作者分别来自清华大学与阿里巴巴。

Unsupervised Anomaly Detection via Variational Auto-Encoder for Seasonal KPIs in Web Applications

为了确保主要业务不受干扰,大型互联网公司都需要密切监视其网页应用的KPI,以便于及时发现问题并排除故障。

这些KPI受用户行为及其时间安排的严重影响,因此大致有规律地按季度发生(例如每日或每周)。

然而,此处存在一个很大的挑战,那就是这些季度KPI的异常检测具有不同的模式和数据质量。在没有标签的情况下进行异常检测会更为困难。

Donut是一种基于VAE的无监督异常检测算法,它使用了三种技术:M-ELBO、缺失的数据注入和MCMC的归算,这些技术加起来就可以达到最先进的异常检测性能。

一个响指就开始整理数据

● ● ●

令作者感兴趣的是由于用户行为及其时间安排,从而受到影响的时间序列KPI与季度模式。

他表示,由于用户的行为可能会在不同的时间发生变化,因此每个周期的KPI曲线的精确形状并不是完全相同的。

作者在论文终还假设在测量中存在一些噪音。

将不遵循正常模式的点(例如尖峰或凹陷)作为异常的数据点,然而在其他异常情况下,可能还缺少监测系统未收到任何数据的数据点。

总之,他将这些点被记录为“null”,缺失的数据点则不被视为异常。

作者在论文中还表示:“我们想给每个数据点提供一个实值的分数,以表示它是反常的概率。之后便可以使用阈值来标记异常。”

作为训练集的一部分,论文中也有一些诸如操作员标记的临时标签。而这些标签的覆盖范围远远超过了典型的监督学习算法所需要的。

深层生成模型:VAE与Donut

● ● ●

变分自动编码器提供了一个很好的起点,但它们并不是为基于序列的输入设计的。

一个简单的解决方案是在时间序列上使用滑动窗口来创建输入向量。

Donut的网络结构如下:

还记得文章开头提到的三个技术吗?

M-ELBO,注入缺失数据,以及MCMC imputation。

在训练M-ELBO时,由于我们想学习正常的模式,因此需要尽可能避免学习异常模式。训练数据中出现的异常和缺失值都可能会把这个问题弄得一团糟。

而在注入缺失数据的处理中,除了自然丢失的点之外,正常点的比例也会像丢失了一样,被故意设置为零。

关于MCMC imputation的具体操作,在此暂不赘述,仅列举一张作者在论文中的图表进行说明:


在此过程之后,将L样本从z中提取出来,通过蒙特卡罗积分计算重构概率。

综上所述,整个Donut网络应该是这样的:

评估

● ● ●

接下来,我们将看到以上三种技术与VAE和Donut的不同组合的对比图。A、B、C是“全球最大互联网公司”的三个KPI系列。

图中可以看出,M-ELBO的影响最大。

而缺少数据注入并没有在测试中显示出更多的改进,但这与训练的额外随机性需要更长的训练时间这一事实相抵消。

MCMC归算在某些情况下有显著的改善,但在其他情况下则没有那么多。然而由于它从不损害性能,因此作者建议通常可以采用这种方法。

解释:为何它如此优秀

● ● ●

作者在第5节解释了Donut在幕后所做的工作,“通过坚实的理论基础,使之成为第一个基于VAE的异常检测算法。”

如果设置K=2,使编码之后的z变量有两个维度,然后在一个图上绘制曲线,会如以下(a)所示。

图表中各点的颜色是代表样本一天时间的叠加。

我们能够看到,原始序列中的点在z空间中被映射到一起,导致了平滑的颜色梯度。作者称之为“时间梯度”。

严格地说,它不是由相对时间造成的,因为时间不作为输入。相反,它是由随着时间的推移而形成的x的转换引起的。

减少维度使得Donut能够从x中捕捉到少量的信息,因此只能对整个形状进行编码,在这个过程中可能会丢失异常信息。

Donut的重建概率可以被看作是一个密度估计器,表明输入x是如何跟踪学习的。

如果你想阅读论文原文,可以访问这里:

http://delivery.acm.org/10.1145/3190000/3185996/p187-xu.pdf

[关于转载]:本文为AMiner唯一官方微信公众号“学术头条”原创文章。转载仅限全文转载并保留文章标题及内容,不得删改、添加内容绕开原创保护,且文章开头必须注明:转自“SciTouTiao”微信公众号。谢谢您的合作。

二维码 扫码微信阅读
推荐阅读 更多