随着数据尺度和维度的增加,离群点检测技术对服务器 CPU、IO 的吞吐都是严峻的考验,不论是处理速度、存储空间、容错性,还是在访问速度等方面,传统的技术架构和仅靠单台计算机基于串行的方式越来越不适应当前大数据处理的要求。2003 年 Google 推出了 MapReduce 并行计算编程模型,随后,越来越多的学者提出了基于分布式架构的离群点检测方法。 文献[32]利用 MapReduce 架构设计了一种在分类数据集上 快 速 检 测 离 群 点 的 方 法 MR-AVF(MapReduce-attribute value frequency)。假设数据一共有 m 个属性,则对象 O 的AVF 值通过下列方式计算:分别求出对象 O 每个属性在数据集中出现的次数并求和,最后除以属性个数 m 得到 AVF。显然,AVF 值越小,则说明对象 O 的属性在数据集中出现的平均次数越少。就分类数据本身的特点而言,这说明了 O 应该判定为离群点。首先通过编写 map 和 reduce 函数,实现计算AVF 第一阶段的任务:抽取属性值;再编写第二对 map 和reduce 函数,计算 AVF。最后实验证明了经与集中式环境比较,性能有很大提升。 He 等人[33]提出了一种基于 MapReduce 框架的结合 kd-tree 算法的离群点挖掘方法 PKDTree(parallel KD-tree)。实验证明了其在大尺寸,高维度数据集中的有效性。Otey 等人[34]提出了一种混合了类标号属性以及连续属性的数据的离群点定义,然后设计出一种分布式方法挖掘离群点。该方法的第一步是首先定义一个离群度,然后计算每个对象的局部离群度;第二步,使用基于全局考虑的机制重新计算那些局部离群度大于阈值的对象的离群度,判定出离群点。其方法的特点是扩展性好,也能应用在动态的流式数据中。Angiulli 等人[35]提出了一种分布式环境下的 Top-n 离群点检测方法。在第一次迭代中,每个 salve 节点随机选择 n 个元组并将其传递给主节点。在主节点中,计算这些元组的邻域,并选择 top-n 元组过滤出 salve 节点中的局部元组。在第二次迭代中,每个 salve 节点中的另外 n 个元组被随机选择并转移到主节点。主节点重新计算 top-n 元组并使用它们对局部元组进行剪枝。此过程将重复进行,直到所有局部元组都被剪枝完。该方法比较复杂,需要多次迭代。此外,大多数计算都发生在主节点上,这将成为大尺度数据计算时的瓶颈。文献[36]他们采用主从(master–slave)结构实现了 LOF[25]方法的并行计算。在从节点中,独立计算每个元组的局部邻域。然后将所有元组及其邻域转移到主节点,并在主节点上计算最终结果。因为最终所有的元组被转移到主节点,主节点上的工作负载相当繁重。因此,当数据尺度较大时,这种方法性能急剧下降。在[36] 基 础 上 , Bai 等 人 [37] 提 出 了 一 种 采 用 一 个 协 调 器(coordinator)和多个计算节点(datanode)架构。协调器负责整个分配安排。每个计算节点存储多个数据子集,并计算数据子集中数据点的 LOF。经过比较,该架构中的协调器只负责调度,所有的实际计算都分配给数据节点。因此,如果数据规模很大,协调器就不会成为瓶颈,如图 2 所示。
本文从离群点算法挖掘效率作为落脚点,综述了各类经典方法及其变种算法,总结了各方法的优势和局限性,并介绍了离群点检测算法在分布式架构下的实现方法,最后对离群点检测领域近年来的研究重点特别是深度学习领域做了介绍。 未来离群点检测研究的重点主要集中于提高算法的时间效率和准确率上,典型的如处理流数据,数据即时到达,需要快速有效的模型以应对。若单一使用传统的方法,其检测的时间效率和准确率都普遍低于基于深度学习的方法。但是在分布式环境中,传统的方法仍能获得良好的时间效率,近年来将各种经典离群点检测算法布置在分布式环境中的研究也是热点之一。但由于各类离群点检测算法在原理和方法上有很大差异,目前,没有一种通用模型可以将各类经典算法迅速布置到分布式环境中。此外,采用深度学习与传统技术相结合的方法,也是当前研究的热点之一。因此对于传统方法的扩展以及改进算法的研究也是未来关注领域之一。基于深度学习的离群点检测方法是当前运用最广泛的方法,近年来的研究以及相关文献众多,但都集中于具体的应用领域,且根据所处理的数据类型不同,需要巧妙选择甚至订制模型,增加了通用性模型应用的难度,因此扩展和更新更多成熟的技术尤其是研究更具可用性的通用模型也是离群点检测关注的研究内容之一。感谢在本文工作中给与支持与建议的老师和同学。
参考文献:
[1] Han Jiawei, Kamber M, Pei Jian, 等. 数据挖掘: 概念与技术 [M]. 范明, 孟小峰, 译. 3 版. 北京: 机械工业出版社, 2012: 186-188. (Han Jiawei, Kamber M, Pei Jian, et al. Data mining: concepts and techniques [M]. Fan Ming, Meng Xiaofeng, 3nd ed. Beijing: China Machine Press, , 2012: 186-188.)
[2] 薛安荣, 姚林, 鞠时光, 等. 离群点挖掘方法综述 [J]. 计算机科学, 2008, 35 (11): 13-18. (Xue Anrong, Yao lin, Ju Shiguang, et al. Survey of Outlier Mining [J]. Computer Science, 2008, 35 (11): 13-18.)
[3] 吴镜锋, 金炜东, 唐鹏. 数据异常的监测技术综述 [J]. 计算机科学, 2017 (S2): 34-38. (Wu Jingfeng, Jin Weidong, Tang Peng. Survey on Monitoring Techniques for Data Abnormalities [J]. Computer Science, 2017 (S2): 34-38.)
[4] Barnett V, Lewis T, Abeles F. Outliers in Statistical Data [M]. Outliers in statistical data. 3nd ed. New York: John Wiley and Sons, 1994 [5] Eskin E. Anomaly Detection over Noisy Data using Learned Probability Distributions [C]// Proc of the Seventeenth International Conference on Machine Learning (ICML 2000) , Stanford, CA, USA: Stanford University, 2000.
[6] Fawcett T, Provost F. Adaptive Fraud Detection [J]. Data Mining & Knowledge Discovery, 1997, 1 (3): 291-316.