SPOT:基于极值优化理论的流式单变量时间序列异常检测模型
论文标题 | 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)。其数学表达式如下:
其中 表示极值指数,取决于不同分布的极值数据情况。
不同参数 对应的长尾分布形状不太一样,如下图所示,
为了拟合长尾分布的极值事件概率,需要估计参数 的值,有很多参数估计的方法,
论文中用到的就是基于极值理论的 Peaks-Over-Threshold (POT) 方法,推导后可以拟合一个 帕累托分布 (GPD, Generalized Pareto Distribution) 最后优化得到阈值计算公式如下:
其中 是初始阈值,经验值是 98% 分位数; 是极值事件概率(我理解的应该就是上文提到的参数 risk 系数); 是所有观测点的数量; 是峰值数量即。
因此上式中我们需要估计两个参数。参数估计的方法有很多,矩估计 Method of Moments (MOM) 或者概率加权矩估计 Probability Weigted Moments (PWM) 但是都没有最大似然估计有效?所以本文中使用的最大参数估计的方法。
值得一提的是,论文中的最大似然估计中使用到了 Grimshaw’s trick,可以将两个变量的优化问题等价于单变量优化问题。👍
后续 WSDM 2021 有篇论文基于 MOM 进行优化的模型 FluxEv: 快速有效的无监督时间序列异常检测框架,运行效率比较高。
SPOT
论文中提出模型思想非常简单,就是基于极值理论检测时间序列中的极值,如下图所示:
算法首先需要给定 个观测点和风险概率,我们来估计阈值 使得。POT 算法流程如下所示:
POT 算法仅能给定一个粗糙的阈值,把它扩充到流式异常检测流程来优化当前异常阈值,算法流程如下所示:
为了解决时间序列数据漂移的情况,文章中还提出了 DSPOT 算法,流程如下图所示:
论文后续还讲了一些数据和参数优化的方法,此处参考原文不再细述。
Experiments
SPOT 实验效果
DSPOT 实验效果
Thoughts
- 可以考虑在生产系统上使用;
- 从实验中可以看出仅对极值较为敏感但是对于局部抖动不敏感;
- 采用数据预处理和其它参数估计方法优化效率;