论文标题 | Anomaly Detection in Streams with Extreme Value Theory
论文来源 | KDD 2017
论文链接 | https://dl.acm.org/doi/10.1145/3097983.3098144
源码链接 | Ref: https://github.com/DawnsonLi/EVT

TL;DR

论文首次提出基于极值优化理论来检测单变量时间序列中的异常点,不依赖于手工设定阈值和假设数据的分布情况,唯一的参数是 risk 来控制负阳例的数量;论文中提出的 SPOT 方法不仅可以用于离群点异常检测,更适用于自动设定阈值,此外针对数据漂移情况提出改良的 DSPOT 模型;实验部分在真实数据集中验证了其有效性。

Algorithm/Model

Background

其背景知识较为复杂,包括:

  • 极值理论(EVT,Extreme value theory)
  • 极值分布函数 (EVD,Extreme value distributions)
  • POT(Peaks-Over-Threshold)方法
  • 参数最大似然估计及其优化技巧

以下简单介绍下推导流程,详细介绍参考原文。

真实世界的数据很难用一种已知的分布来概括,例如对于某些极端事件(异常),概率模型(例如高斯分布)往往会给出其概率为 0。极值理论是在不基于原始数据的任何分布假设下,通过推断我们可能会观察到的极端事件的分布,这就是极值分布(EVD)。其数学表达式如下:

Gγ:xexp((1+γx)1γ),γR,1+γx>0G_{\gamma}: x \mapsto \exp \left(-(1+\gamma x)^{-\frac{1}{\gamma}}\right), \quad \gamma \in \mathbb{R}, \quad 1+\gamma x>0

其中γ\gamma 表示极值指数,取决于不同分布的极值数据情况。

不同参数γ\gamma 对应的长尾分布形状不太一样,如下图所示,

不同长尾分布情况

为了拟合长尾分布的极值事件概率P(X>zq)<q\mathbb{P}\left(X>z_{q}\right)<q,需要估计参数γ\gamma 的值,有很多参数估计的方法,

论文中用到的就是基于极值理论的 Peaks-Over-Threshold (POT) 方法,推导后可以拟合一个 帕累托分布 (GPD, Generalized Pareto Distribution) 最后优化得到阈值计算公式如下:

zqt+σ^γ^((qnNt)γ^1)z_{q} \simeq t+\frac{\hat{\sigma}}{\hat{\gamma}}\left(\left(\frac{q n}{N_{t}}\right)^{-\hat{\gamma}}-1\right)

其中tt 是初始阈值,经验值是 98% 分位数;qq 是极值事件概率(我理解的应该就是上文提到的参数 risk 系数);nn 是所有观测点的数量;NtN_t 是峰值数量即Xi>tX_i>t

因此上式中我们需要估计两个参数σ^  γ^{\hat{\sigma}}~~{\hat{\gamma}}。参数估计的方法有很多,矩估计 Method of Moments (MOM) 或者概率加权矩估计 Probability Weigted Moments (PWM) 但是都没有最大似然估计有效?所以本文中使用的最大参数估计的方法。

值得一提的是,论文中的最大似然估计中使用到了 Grimshaw’s trick,可以将两个变量的优化问题等价于单变量优化问题。👍

后续 WSDM 2021 有篇论文基于 MOM 进行优化的模型 FluxEv: 快速有效的无监督时间序列异常检测框架,运行效率比较高。

SPOT

论文中提出模型思想非常简单,就是基于极值理论检测时间序列中的极值,如下图所示:

模型概览

算法首先需要给定nn 个观测点和风险概率qq,我们来估计阈值zqz_q 使得P(X>zq)\mathbb{P}\left(X>z_{q}\right)。POT 算法流程如下所示:

POT

POT 算法仅能给定一个粗糙的阈值,把它扩充到流式异常检测流程来优化当前异常阈值,算法流程如下所示:

SPOT 算法流程

为了解决时间序列数据漂移的情况,文章中还提出了 DSPOT 算法,流程如下图所示:

DSPOT 算法流程

论文后续还讲了一些数据和参数优化的方法,此处参考原文不再细述。

Experiments

SPOT 实验效果

SPOT 检测效果 SPOT

DSPOT 实验效果

DSPOT DSPOT

Thoughts

  • 可以考虑在生产系统上使用;
  • 从实验中可以看出仅对极值较为敏感但是对于局部抖动不敏感;
  • 采用数据预处理和其它参数估计方法优化效率;

联系作者