暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

论文解读 | 时序数据异常检测综述

数据库应用创新实验室 2025-01-20
328

本文对时序数据异常检测综述论文《A review on outlier/anomaly detection in time series data》进行解读,全文共4066字,预计阅读需要15至20分钟。



近年来随着科技不断进步,业界能够以时间序列的形式收集大量数据。时间序列挖掘旨在从这些随时间变化的数据中提取有用的知识,如分类、聚类、预测和异常检测等任务。异常检测已经成为时间序列数据挖掘的一个重要领域,例如,在工业监控系统中,异常可能指示机器故障;在金融交易中,异常可能是欺诈行为的标志;而在医疗健康监测中,异常则可能预示着病人的病情恶化。


然而,准确且有效地检测时间序列中的异常仍然是一项挑战主要是由于时间序列固有的复杂性以及它们的动态特性。此外,不同领域的异常具有不同的特点,因此需要特定的方法来处理。为了应对这些挑战,研究者们提出了许多用于时间序列异常检测的技术。这些技术可以大致分为基于统计的方法、基于机器学习的方法、基于深度学习的方法以及其他混合方法。


该论文综述了时间序列异常检测领域的最新进展,并为该领域提供了一个全面的视角。文章首先介绍了一种新的分类法,根据输入数据类型、异常类型和方法性质对现有的异常检测技术进行了分类。接着,详细探讨了几种主要的时间序列异常检测技术,包括点异常检测、子序列异常检测和整个时间序列的异常检测。最后,本文总结了当前的研究状况,并讨论了未来的研究方向。



时间序列异常检测概述


研究背景:随着时间序列数据大量涌现,异常检测成为时间序列数据挖掘的关键任务,在多领域广泛应用,但相关术语尚未统一。


异常定义:从经典角度,异常是偏离其他观测值且引发对其生成机制怀疑的数据;在时间序列中,异常可能是噪声等无用数据,也可能是有研究价值的事件,本文聚焦无监督框架下的异常识别。



异常检测技术分类法


时间性的重要性:一些方法使用时间窗口来捕捉时间序列中的模式,确保即使是在时间窗口内打乱观测值的顺序也不会影响结果,但打乱整个时间序列则会改变结果。


流式与非流式检测:对于流式时间序列,某些技术可以在新数据到达时立即判断其是否为异堂,而不需要等待更多数据。这类方法中有的使田周定模型进行持续评估,有的则通过重新训练或增量学习来更新模型以适应数据流的变化。而非流式方法则无法在新数据到达时立刻做出决策。


单变量时间序列中的点异常检测:用于检测单变量时间序列中点异常的技术可以是基于模型、密度估计、直方图化、预测等。例如,基于预测的方法只用过去的数据来拟合模型并预测当前点,如果实际观测值与其预测值相差很大,则认为是一个异常点。


残差分析:一些单变量异常检测方法通过分析不同模型得到的所有残差来识别异常。Hochenbaum等人(2017年)使用STL分解法,Akouemo和Povinelli(2014,2016,2017年)使用ARIMA樘型、线性回归或人工神经网络(ANN)。这些方法通常假设残差分布已知,并通过假设检验来确定极端值是否为异常点。


稳健统计量的应用:在异常检测过程中,为了提高鲁棒性,有时会使用中位数和绝对偏差(MAD)代替均值和标准差,如Hochenbaum等人(2017年)的研究中所做的一样


流式处理能力:虽然很多技术理论上能够处理流式时间序列,但实际上只有少数几种能增量地适应数据流的演变。


阈值选择:确定一个合适的阈值对于区分正常值和异常值至关重要,但是很少有技术提供自动确定阈值的方法。因此,未来的研究方向之一可能是探索如何动态和自适应地选择阈值,特别是在单变量和多变量时间序列中。



点异常检测技术


1.单变量时间序列中的点异常检测

·基于模型的方法:这些方法通常涉及对时间序列建立一个数学或统计模型,然后使用这个模型来预测未来值。当观测到的数据点与预测值相差很大时,就可能被认为是异常点。例如,Hochenbaum等人(2017年)使用了STL分解法,而Akouemo和Povineli(2014,2016,2017年)则采用了带有夕生输入的ARIMA模型、线性回归或人工神经网络(ANN)。

·残差分析:在上述基于模型的方法中,一旦选择了适当的模型,就会应用假设检验来检测残差中的异常值。Akouemo和Povineli的研究中,在每次迭代算法时同时检査最小值和最大值,并假设极端值是否为异常点。相比之下,Hochenbaum等人使用ESD测试,并为了提高鲁棒性,采用中位数和绝对中位差(MAD)而非均值和标准差。

·预测模型:不同于估计模型,基于预测模型的技术只用过去的数据来拟合模型并预测当前点。如果实际观测值与其预测值有显著差异,则认为是一个异常点。这类方法可以处理流式时间序列,因为它们不需要未来的数据来进行预测。


2.检测技术的实现与工具

·多种编程语言和工具:本文列举了一系列用于点异常检测的具体工具和软件包,涵盖了R、Matlab、Java、C++Python等不同编程语言。例如,tsoutliers R包实现了Chen和Liu于1993年提出的方法;Anomalypetection R包由Hochenbaum等人于2017年开发;还有如 upic Python库实现了Ahmad等人在2017年提出的HTM算法等。

·阈值选择问题:确定一个合适的阈值对于区分正常值和异常值至关重要。然而,很少有技术能够自动地决定这一阈值。未来研究的一个重要方向是探索如何动态和自适应地选择阈值,以更好地适应单变量和多变量时间序列的特点。



子序列异常检测技术


子序列异常(subsequence outiers)的检测方法是时间序列中一种特殊的异常类型,它指的是在连续的时间点上,虽然单个数据点可能不明显是异常值,但当它们作为一个整体来看时显示出异常行为。


1.子序列异常的定义与特性

·定义:子序列异常是指那些单独看来可能并不异常,但联合起来却表现出不同寻常模式的一系列连续数据点。

·全局 vs局部:子席列异常可以进一步分为全局子席列异常和局部子席列异常。前者在整个时间席列中显得与众不同,而后者仅在其附近的上下文中显得异常。


2.子序列异常检测的技术分类

·基于距离的方法:这类方法通过计算子序列之间的相似度或距离来识别异常。例如,Ren等人于2017年提出了一种分段聚合模式表示方法,用于时间序列中的异常检测;Papadimitriou等人在2005年开发了用于多个时间序列流中模式发现的技术。

·基于模型的方法:这些方法首先建立一个能描述正常行为的模型,然后利用该模型评估新出现的子序列是否符合预期。如果一个子序列显著偏离了模型预测的行为,则被认为是异常。例如,Sakurada和Yairi于2014年使用自编码器结合非线性降维来进行异常检测。

·基于统计的方法:这类技术通常依赖于统计假设检验,以确定特定子序列是否异常。Rebbapragada等人在2009年的工作展示了如何在周期性变化的时间序列中寻找异常,这涉及到对周期性的识别以及对偏离这些周期性模式的检测。

·基于压缩的方法:Senin等人在2015年引入了一种基于语法的压缩方法,用于发现时间序列中的异常。这种方法试图找到最短的数据描述方式,并认为需要额外信息才能压缩的子序列可能是异常的。

·基于形状的方法:一些研究关注于捕捉时间序列中的形状特征,以此作为检测异常的基础。例如,Senin等人在2018年介绍了GrammarViz 3.0工具,这是一个交互式平台,用于发现变长的时间序列模式,它可以有效地捕捉到形状上的异常。


3.实现与工具

实现子序列异常检测的具体工具和技术,包括但不限于jotifR包、saxpy Python库等。这些工具提供了不同的算法实现,适用于各种应用场景。


4.流式处理能力

许多子序列异常检测方法理论上能够处理流式时间序列,即可以在新数据到达时实时地进行异常检测。然而,实际上只有少数方法真正具备这样的流式处理能力,如Sanchez和Bustos在2014年提出的基于边界框的流式时间序列异常检测方法。


5.挑战与未来方向

当前子序列异常检测面临一些挑战,比如选择适当的阈值来区分正常和异常行为。此外,随着数据量的增长和技术的进步,未来的研究可能会更加注重发展高效的、适应性强的子序列异常检测算法,尤其是在大规模和高维度时间序列环境中。



时间序列异常检测技术


1.动态和自适应阈值选择

·阈值的重要性:在异常检测中,确定一个合适的阈值对于区分正常值和异常值至关重要。然而,现有的大多数技术并没有提供自动确定这一阈值的方法。章节强调了阈值选择对结果的影响,并指出这是异常检测中的一个关键问题。

·现有方法的局限性:尽管一些文献提供了静态或基于经验设定的阈值,但这些方法难以适应不断变化的数据环境。例如,Hundman等人(2018年)、Lu等人(2018年)、Siffer等人(2017年)和Su等人(2019年)的研究都涉及到了阈值的选择问题,但通常依赖于预设值或手动调整。

·未来研究方向:为了更好地应对实际应用中的动态性和不确定性,未来的研究应更深入地探索动态和自适应國值选择.的方法。这包括开发能够根据时间序列特性自动调整阈值的技术,以确保检测结果的准确性和可靠性。


2.流式数据处理能力

·流式数据的挑战:流式数据意味着数据是连续到达的,因此要求异常检测算法能够在新数据到来时迅速做出反应,而.不需要等待所有数据收集完毕。这对算法的实时性和效率提出了很高的要求。

·当前进展:虽然许多技术理论上可以处理流式时间序列,但实际上只有少数几种方法真正实现了这一点。例如,Sanchez和Bustos在2014年提出的基于边界框的方法能够在流式环境中有效工作:Laptev等人在2015年开发的EGADS系统也展示了良好的流式处理能力。

·增量学习的需求:为了保持模型的有效性,需要不断地更新模型以适应数据流的变化。这就涉及到增量学习的问题,即如何在不重新训练整个模型的情况下有效地更新模型参数。


3.多变量时间序列

·复杂性增加:当考虑多个相关的时间序列时,异常检测变得更加复杂。每个变量不仅可能依赖于其过去的值,还可能与其他时间相关的变量相互作用。这种情况下,异常可能是由于某个变量内部的变化引起的,也可能是由不同变量之间的关系变化导致的。

·现有方法的不足:目前大多数异常检测方法主要集中在单变量时间序列上,而对于多变量时间序列的支持相对较少。这限制了它们在实际应用中的广泛使用,特别是在工业监控、金融市场等领域,那里往往需要同时分析多个关联的时间序列。

·未来研究方向:未来的研究应该更加关注多变量时间序列的异常检测,发展能够捕捉变量间复杂关系的方法,并且要考虑到计算效率和可扩展性。此外,还需要解决跨变量间的因果关系识别问题,以便更好地理解异常的根本原因。



研究总结与未来工作


时间序列异常检测术语多样,多数研究关注有价值的异常,方法基于检测与预期值的偏差,但获取预期值的外部参考集可能存在异常。阈值确定对结果影响大,多数技术需手动设置阈值。


研究动态自适应阈值选择、不规则采样时间序列的异常检测;改进子序列和时间序列异常检测技术(如检测周期性异常、优化聚类等);探索不同不相似性度量对检测结果的影响;检测多变量时间序列中跨变量传播的异常;改进多变量检测技术以考虑变量间复杂相关性。


联系人:

刘思源

13691032906(微信同号)

liusiyuan@caict.ac.cn

刘蔚

13661023626(微信同号)

liuwei11@caict.ac.cn





数据库应用创新实验室简介




数据库是基础软件的重要一员,是支撑全球数字经济蓬勃发展的核心技术产品。为推动我国数据库产业国际地位从跟跑、并跑到领跑,多家数据库企业、应用单位、系统集成商、数据库服务企业、硬件制造商,共同成立公益性免费社群数据库应用创新实验室(以下简称“实验室”),打造了中国数据库产业的“联合舰队”。实验室持续致力于推动我国数据库产业创新发展,以实际问题为导向,以合作共赢为目标,联合政、产、学、研、用等多方力量,协同推进数据库领域应用创新的相关工作。实验室将一直秉承开放理念,持续欢迎数据库领域各企业、各机构、各组织申请加入。





实验室联系人




刘老师
13691032906
liusiyuan@caict.ac.cn

齐老师
17801071990
qidanyang@caict.ac.cn





实验室成员单位



文章转载自数据库应用创新实验室,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论