最近一直在做异常检测相关的工作,也在阅读相关的论文。 一直在找一种异常检测方法,这种方法可以提供实时的、流式的,无监督的,基于时间,空间属性的异常检测。
今天看到文章在这方面有所涉及, 写篇读书笔记,记录一下简要信息
第一点: 实时异常检测的挑战
随着实时数据源的大量增加, 流式时序数据海量增加,但是这些数据不但带来了技术的挑战,也带来了新的机会。 掌握这种新机会的核心能力之一,就是实时低、通过流式分析,无监督学习方式,发现不常见的,异常的行为模式。
第二点: 目前的局限性
实践中尽管可靠的执行比较困难,但是越早发现异常越有价值。但是具有如下的局限:
-
- 业务模式需要系统采用实时的方式处理数据, 而不是批处理模式 。
- 流式数据具有内在特性- 概念漂移(即:数据流中的潜在数据分布随时间发生不可预测的变化,使原有的分类器分类不准确或决策系统无法正确决策)。因此,更加有利于可以持续学习的算法。
- 此外,在实践中大量的独立数据序列(即:需要监控的指标)需要异常检测器可以完全自动化运行。
- 本论文提出了一种全新的异常检测算法,该算法可以满足上述的限制
第三点: 新技术介绍
-
- 这项技术是基于一种叫做层次结构的在线序列记忆算法(Hierarchical Temporal Memory HTM).
- 异常检测结果的性能采用了NAB(Numenta Anomaly Benchmark) 进行基准比较测试。NAB基准测试是流式数据的异常检测性能基准,用于测试各种算法的。
测试结果
数据集:22,695条
测试机器:Intel I7 8核, 2.6G. 内存没有说。不过数据量这么小,2-4个G内存应该就可以Hold住。
从图中可以看出,HTM算法可以在11ms内完成测试,速度不算快。不过空间异常,时间异常,概念偏移,无参检测等可以检出。 NAB 测试分支70.1分,排名第一
论文网址:
Unsupervised real-time anomaly detection for streaming datawww.sciencedirect.com注:
- https://github.com/numenta/NAB NAB 测试结果的GITHUB 网站
- 除了上文提到的,NAB 上面排名第二的算法是Contextual Anomaly Detector。 分值接近HTM法,而且得分比较稳定。 不过没有什么文档。 smirmik/CAD