异常检测 (又称outlier detection、anomaly detection、离群值检测) 是一种重要的数据挖掘或机器学习方法 , 可以找到与“主体数据分布”不同的异常值 (deviant from the general data distribution),比如从信用卡交易中找出诈骗案例,从正常的网络数据流中找出入侵,在正常案例中找到罕见病患者,有非常广泛的商业应用价值。同时它可以被用于机器学习任务中的预处理(preprocessing),防止因为少量异常点存在而导致的训练或预测失败。
当然,每年各大会议和期刊都少不了异常检测的论文,少则几篇,多则几十篇。 但是,我们真的看到异常检测领域的发展了吗?新提出的算法真的更好嘛?为了回答这个问题,这两年我参与发表了三篇NeurIPS分别研究了:
- 图数据上的异常检测(
Benchmarking Node Outlier Detection on Graphs
- )
- 网格数据上的异常检测 (
ADBench: Anomaly Detection Benchmark
- )
- 时间序列上的异常检测(
Revisiting Time Series Outlier Detection: Definitions and Benchmarks
- )
在我们最新的45页论文 ADBench:Anomaly Detection Benchmark 中,我们(@芝士确实是热量@局关THU)尝试通过10万个实验来定量分析网格数据(tabular data)中的这个问题。你会在这篇论文中看到:
- 30个异常检测算法在57个基准数据上的表现(
- ,其中有10个我们设计的新数据)
- 不同变量下的异常检测算法表现:(i)比如当我们有一定的标签时(supervision)(ii)比如我们遇到不同类型的异常时(iii)以及当我们的数据中存在噪音(noise)或者损坏时(corruption)
- 我们认为的新的重要的异常检测研究方向:
无监督异常检测的评估、模型选择和设计 :我们的实验结果说明了自动机器学习(automl)和自监督学习、迁移学习对于无监督异常检测的重要性。
半监督学习在极少标签的优异效果指明了它可能是最适合我们继续探索的方向
当我们知道(数据的)异常类型时,它可以被用作重要的先验知识
面对数据中的噪音和问题,设计抗噪(noise-resilient)异常检测算法是很重要的方向
2. 如何设计一个好的benchmark?
这些年来很多人都做过异常检测的benchmark,我们不是最早的,也肯定不是最后一个,但我们的角度是最实际的,囊括的算法和数据也是最全面的。
首先我们根据异常检测的实际应用设计了三个角度 :
- 从完全无监督异常检测到完全监督的异常检测,标签的数量有多重要?
- 对于不同种类的异常,如何分析算法的优劣?
- 对于数据质量中面临的问题,比如噪音、重复、错误等,哪些算法更加鲁棒?
而我们所有的实验都是在57个数据上进行的综合分析 ,包括使用统计检验等。对于有随机性的算法也进行了多次重复取平均,因此结果应该是稳健的。具体的实验过程欢迎查看我们的GitHub(并star):
1. 标签对于异常检测的重要性
我们最惊人的发现在于, 没有任何一个无监督异常检测算法比其他的在统计意义上更好(见下图) 。那为什幺每年还有各种新算法被提出来了?因为大家都只在少量小数据进行试验,稍微多点数据,你就知道无监督上的异常检测其实没有太大进展,综合来看(准确度和效率)isolation forest和ECOD是最推荐的。
而对于半监督和全监督模型而言,效果自然会比纯无监督学习要好的多。此处特别要夸奖一下半监督算法(左图),大部分算法只要1%的数据就比最好的无监督算法要好。
而半监督算法其实这些年的进展其实还是显着的,它的效率是远比监督模型要高的。所以我们基本认为未来的发展发现还是在半监督模型上,它既不像无监督那幺“缺少指导”,又远比监督算法节约标签。值得大家特别关注。
2. 异常的类型可以被用于当做强先验知识
另一个有趣的发现是虽然标签重要,但其实对于数据的理解同样重要。当我们知道不同数据中主要的异常类型时,选择合适的算法比监督学习的效果还要好。比如LOF在检测局部异常上遥遥领先其他算法,比如kNN在检测全局异常是显着的最强。
这样的发现告诉我们,无监督算法不是没用,只是没有被用对地方。
3. 噪音下的模型鲁棒性
在我们设计的三种噪音、错误和数据损失下, 我们发现无监督学习受到重复类型错误的影响最大 ,核心原因在于无监督异常更加依赖于对于数据分布的假设,和数据重复会把分布带偏。而监督学习不太受到类似情况的影响。
同时,半监督和监督学习对于无关特征的鲁棒性都比较好,原因也在于标签会自动帮助模型进行特征选择,避免由于噪音所造成的的错误。
总体来看,无监督学习在数据质量变差时(X-轴向右)受到的影响最大,而监督模型的鲁棒性最好。
未来的研究发展方向
综上我们提出了异常检测未来的重要发展方向,包括:
- 既然无监督检测模型效果上没有统计上的区别,那幺我们不该轻信随便选择一个模型就用的结果 。未来的研究发展应该着力于自动化机器学习来辅助异常检测模型的选择和调参,其中的代表工作可能是我去年的NeurIPS文章(
Automatic Unsupervised Outlier Model Selection
- )。同时,我们应该更加关注自监督学习(self-supervised learning)、迁移学习在异常检测中的应用,随便套个已有的模型,跟摸彩票一样不靠谱。
- 半监督异常检测(semi-supervised learning)在我们的实验中体现出了惊人的好效果,这也是我们认为未来异常检测需要继续发力的方向 。纯无监督太随机,而全监督又不现实,如何既利用无监督的数据作为支持,又高效使用标签信息,是未来的重要发展方向。
- 如何把异常类型作为先验知识融入模型设计 ?我们认为这个方法是有效提升模型效果,降低标签依赖的好方法。
- 如何抵抗数据质量低下所造成的模型效果变差 ?未来的工作可以考虑从半监督模型入手,融入弱监督学习的方法。我们在最近的一个工作里也有所使用(
ADMoE: Anomaly Detection with Mixture-of-Experts from Noisy Labels
- )。对于这样的研究较少的领域,大家不妨来填坑。
当然,一篇知乎文章不足以介绍我们接近十万个实验所带来的理解,感兴趣的小伙伴欢迎移步我们的文章 ADBench:Anomaly Detection Benchmark , 算法和数据 。
在下篇文章中,我会和大家介绍我们的另一篇NeurIPS‘22 文章,带你走入图异常检测的世界。
All you need for anomaly detection is __.
Be First to Comment