【时间序列异常检测】Anomaly Detection for IoT Time-Series Data: A Survey

原始题目:Anomaly Detection for IoT Time-Series Data: A Survey

中文翻译:物联网时序数据的异常检测:综述

发表时间:2019

平台:IEEE

来源:The University of Keele, United Kingdom

文章链接:https://eprints.keele.ac.uk/7576/1/08926446.pdf

开源代码:

摘要

        异常检测是一个应用领域广泛的问题,它涉及到识别新的或意外的观测数据或序列被捕获的数据。目前的大多数异常检测方法都是针对个别用例的,需要专家对该方法以及应用该方法的情况有一定的了解。物联网作为一个快速发展的领域,为实施这类数据分析提供了许多机会,然而,由于物联网的性质,这可能是困难的。本文介绍了将异常检测技术应用于物联网数据时可能遇到的挑战的背景,并列举了文献中物联网异常检测应用的例子。我们讨论了在不同领域开发的一系列方法,而不限于物联网(由于该应用的相对新颖性)。最后,我们总结了当前在异常检测领域面临的挑战,以期识别未来潜在的研究机会。

5. 现行方法

        由于物联网技术的发展相对较晚,目前只有少数几种方法可以在纯物联网环境中运行,然而,对来自广泛领域的时间序列和非时间数据的异常检测有着悠久的历史,这些技术可以用于物联网特定应用的研究。

        有许多调查研究了异常检测的一般问题,通常有一小部分讨论时间序列数据中的异常检测。早期作品包括Hawkins [4], Abraham和Chang[49]。Markou和Singh[50],[51]提供了一个全面的两部分调查,调查统计和神经网络方法直到2003年。Chandola等人[6]对2009年可用的方法进行了深入研究,Zhang等人[52]讨论了适用于早期物联网的方法。最近,Chalapathy和Chawla[42]研究了深度学习方法在更广泛的异常检测领域的应用,并给出了一些时间序列情况,如物联网和工业物联网的空间。本综述的研究范围较窄,只调查那些最适用于物联网时间序列领域中预期的数据类型和结构的技术。

        有广泛的算法和方法提出的目的,以检测时间序列数据中的异常。虽然有些技术可能结合多种方法的元素,但一般方法可以分为以下几组:

  • 统计和概率:这些方法利用历史数据来模拟系统的预期行为。当接收到新的观测数据时,将其与该系统的当前模型进行比较,如果它不符合该模型,则将其登记为异常[51]。
  • 模式匹配:这种方法使用时间序列的直接建模。在对预期的异常子序列具有已知特征的监督设置中,检测器将把每一个新的观测结果与标有标签的异常事件数据库进行比较,并标记出最相似的异常。在缺乏预先标记的异常的情况下,检测器可以学习正常数据中最常见的历史模式,并将那些与历史语料库不匹配的新子序列标记为异常。
  • 基于距离:定义了距离度量,以便将新接收到的观测结果与之前的观测结果进行比较,假设类似的机制最有可能出现较低的距离,因此将被标记为正常。相反,较大的距离将表明观测是由不同的机制产生的,因此将被标记为异常[6]。
  • 聚类:这种方法将数据投射到多维空间,并利用结果聚类的密度。在密度的聚类点中出现的近聚类点被列为正常观测,而在远离或不属于这些聚类点的聚类点被报告为[6]异常。
  • 预测:一个回归模型是根据系统的近期和长期趋势生成的,预测未来某个时间的期望值。当接收到新的观测数据时,将其与预测值进行比较,并评估预测的准确性,如果观测值和预测值差异较大,则将观测数据标记为异常[15]。
  • 集成:集成方法使用许多不同的算法来观察每个数据点,并对每种方法的输出采用某种形式的投票机制。集成可以由一组相似的检测器(如一系列预测模型)构建,也可以由一组不同的检测器(如概率检测器、聚类检测器和统计检测器的组合)构建。通常使用集成技术可以提高检测套件的整体成功率,但可能会增加设置的复杂性和计算时间。

        方法的选择在很大程度上取决于所监测数据中的一些因素以及将部署异常检测器的环境。

A.单变量时间序列数据的异常检测

        单变量时间序列表示与观测时间相关联的单个源的数据输出。这可能是股票或股票的当前交易价格、脑电图(EEG)中单个轨迹的电信号、特定时间步的总网络流量或单个物联网传感器产生的价值。被监测底层系统的结构对任何单变量异常检测方法的准确性都具有重要意义。

        1)非回归方法:对于平稳时间序列,最简单的检测方法是手动设置高和低阈值,这样当在这些边界之外接收到观测时,就会报告异常。

        一种更先进的方法是对历史数据产生平均值和方差,并根据这些措施定义一个阈值,报告超出这个范围[53]的异常。与此类似的是box-plot方法,该方法将数据分布划分为一系列较小的类别,并将新的观察结果与这些范围[54]进行比较,该方法可以通过更多次的划分进行扩展,从而形成直方图方法。这些技术在计算上非常高效,只需要占用很小的处理器时间和内存需求,但是这些方法不适用于大多数时间序列,因为它们大多忽略了数据的时间方面,并将其视为单变量数据上的简单分布,因此它们无法检测大多数上下文和集体异常

        人工神经网络也被应用于这个问题。自动编码器神经网络的工作原理是将输入层的值传递到一些神经元较少的隐藏层,然后向输出层对称扩展该网络。经过训练的自动编码器重建任何给定输入向量的能力让我们对输入向量的正常程度有了一些了解。较高的重构误差表明,输入数据中存在一些用于训练该网络的数据所不期望的信息。自动编码器被放置在[55]中资源受限的传感器设备上,每个设备负责在一段时间内收集连续数据,并根据其浅层自动编码器网络产生的重构错误检测异常。使用每个传感器生成的输入和输出向量,在中心云位置以每日批处理的方式进行训练。这将昂贵的训练需求从受限的设备转移到一个更合适的位置,同时也减少了每天多次通信造成的电力需求。

        循环神经网络(RNNs)利用神经网络隐藏层中的反馈回路,允许某些神经元受到以前时间步输出的影响,从而在网络本身提供某种程度的记忆。这使得该网络能够捕捉一段时间内观测结果之间的关系。早期的 RNN 存在消失梯度的问题,难以在大数据集上进行训练,但随着长短时记忆(LSTM)和门控循环单元(gru)等新的门控安排的发展,这一问题得到了缓解。

        在[56]中,采用一种基于LSTM的编码器-解码器神经网络对各种单变量时间序列进行编码,利用自编码器的重构误差识别数据中的异常序列,其方法是一种半监督方法,初始网络仅用正常数据进行训练。他们提供了一个阈值机制在其计算的异常评分,允许在监督或人在回路设置中调整系统基于最大化 f_{\beta } 评分。

        2)基于回归的方法:另一种识别异常值的流行方法是应用某种形式的时间序列预测模型。将新接收到的观测结果与预测值进行比较,并根据预测值与实际值[15]之间的差异进行评估。

        有各种各样的方法可以用于这种方法的预测部分。自回归移动平均(ARMA)[57]建立了时间序列的参数化模型。ARMA已经在许多领域得到了广泛的应用,但是这种方法在非平稳数据集上有困难,尤其是那些显示出显著季节性或平均漂移的数据集。自回归综合移动平均(ARIMA)允许通过在处理阶段添加一些差分步骤来管理非平稳性,将数据移动到更平稳的分布[58],[59],[60],[61],[62],[63]。季节性ARMA (SARMA)方法通过在不同的季节性滞后上生成多个模型,并应用相同的技术,来解释数据中不同的季节性水平[64]。

        预测方法的另一种方法使用人工神经网络来捕捉时间序列的动力学,早期的多层感知器(MLP)方法显示出了与ARMA导数模型[65]对平稳和非季节性时间序列的预测能力相似。

        将ARIMA模型与[29]中的MLPs相结合进行预测分析在误差值上采用简单的2σ阈值来识别异常观测。他们利用从大学办公室每分钟收集的用电量数据来演示他们的方法。他们使用了一个非常大的窗口大小来生成模型(4周和8周),但是基于这些数据进行了整整一周的预测。他们指出,这种方法对某些偶尔的使用情况非常敏感,例如当一台打印机在使用中自动超过他们选择的2σ阈值时,因此他们在检测引擎中引入了一些额外的规则来补偿这些活动。

        随着RNNs[66]、[67]如LSTM和GRU的发展,神经网络方法能够更好地建模复杂单变量系统中存在的可变性已在[68]中得到证实。

        [69]提出了一种在线时间序列预测方法,其中基于LSTM的神经网络的在线更新由每个新数据点的损失值加权。在这种损失显著的地方,算法减少了它对网络更新的影响,从而最大限度地减少了点异常对网络预测能力的影响,同时允许网络优雅地处理变化点。虽然在本文中没有提到,但有可能开发一条管道,以便将这些异常情况报告给系统运营商。

        [70]在自动编码器中使用了基于注意力的RNNs,以更准确地预测数据中的复杂长期模式。
        Malhotra等人[71]提出了两种方法,使用 Recurrent Sigmoid Units (RSUs) 和LSTMs 的叠加层来捕获各种单变量系统的长期动力学。他们的网络预测一些时间步前的期望值,并使用产生的误差值来计算一个概率分数,即该时间点的观测结果在预期的正常范围内,为这个概率分数计算一个阈值,而低于这个阈值的观测结果被报告为异常。他们指出,对于具有长期时间依赖性的系统,LSTM方法明显优于RSU方法。[72]将类似的Deep LSTM网络应用于ECG信号,再次使用多个时间步前概率误差测量来识别各种不同的异常信号。这两种方法都使用半监督的离线训练方法。

        在[73]中,RNNs 被用于回归,两种方法被用于原始输出和二进制标签之间的转换。他们的第一种方法使用阈值法,然后传入一个累加器,每次观测被认为是异常时计数,每次正常观测时计数一个更大的因子,从而检测由于较长呈现周期的集体异常。第二种方法使用概率方法计算最近观测的异常可能性。

        在[38]中使用深度 RNNs 进行在线时间序列异常检测,同时对输入数据进行局部归一化,并对神经网络进行增量再训练,以允许网络适应跨各种数据集的概念漂移,这表明了该方法对各种领域的适用性。他们的方法利用网络在多个时间步上的预测误差,以一种评分风格的方式量化异常观测的存在。

        虽然 RNNs 在时间序列的预测方面已经显示出了希望,但基于这些预测的异常观测的检测和报告仍然是一个挑战。Xie等人[74]提出了一种分析预测误差的方法,使用高斯朴素贝叶斯模型来处理基于RNN模型的输出。

        Greenhouse方法[75]使用多步提前预测RNN计算每个观测的矢量。他们的方法使用了一种三相训练方法,初始阶段以一种典型的半监督方法拟合RNN到正常数据,第二阶段拟合生成的误差向量到一个分布,最后阶段计算这些误差向量之间的马氏距离,产生一个评分方法,根据用户提供的阈值来识别异常值。当给出一个新的时间序列时,该算法可以根据后处理的误差向量将每个新的观测标记为正常或异常。这种方法目前是一种脱机方法,因此很容易受到输入数据分布变化的影响。

        Bontemps等人[76]提出的RNN模型侧重于检测集体异常,方法是定义集体异常的最小周期,并随着时间的推移计算误差测量,在异常被识别的一段时间内,平均误差高于给定的阈值。

        在[77]中研究了贝叶斯神经网络,通过使用基于LSTM的自编码器对前面的一些步骤进行预测,然后使用MLP来执行最后的预测步骤,这种结构不仅提供了对后面的值的预测,而且在预测中提供了一定程度的确定性,当一个新的观测值超出了定义的预测区间,它将被标记为异常。

        在人工神经网络领域的一个最新发展是一个被称为分层时态记忆(HTM)的过程[78],这个过程是一个基于新皮层行为的处理时间序列的生物启发模型。该方法被应用于[79]和[80]中顺序流化的单变量数据,并与时间序列建模的一系列预测模型进行比较。该技术在[81]、[82]、[83]、[84]中进一步应用于异常检测问题,值得注意的是,该方法的抗噪声能力以及持续在线学习的能力,使该方法能够随着时间的推移调整数据分布的变化,而无需大量的离线再训练。

        在[84]中提出了简单在线回归异常检测器(SORAD),该检测器使用初始无监督离线训练阶段学习所提出的时间序列的关键特征,然后使用在线学习方法在随后的时间步中重新计算平均值和方差值,并对更新的值进行更强的加权。该算法具有将预测误差转换为异常标签的内置方法,利用在线方法计算序列均值和方差,随后应用阈值。作者打算将他们的方法作为比较基准方法的基准,但他们发现,与他们所比较的当代方法(包括同一算法的离线变体)相比,该方法表现良好。然而,他们注意到在线适应异常检测方法的重要性。

B.多元时间序列数据的异常检测

        单个传感器很难完全捕捉物联网网络监测的复杂环境,因此研究结合多个来源信息的方法是很重要的。这可能允许异常检测方法利用多种监测方法[35]提供的附加上下文信息,建立其接收数据背后隐藏进程的更精确模型。此外,测量同一环境变量的多个空间相关数据流的组合,在单传感器用例中提供了额外的噪声容忍特性。

        与单变量情况类似,多变量系统的模型选择高度依赖于产生的数据的性质和被建模的系统的功能,每个测量的时间序列及其时间特征之间的关系的可变性加剧了这一点。

        1)降维:当多个传感器监测单个系统时,每个传感器产生的值之间往往存在关系,这些值之间的相互关系可以用来洞察系统的当前状态。维数减少旨在识别和抽象这些属性之间的关键关系。通过对系统的正常操作建模,可以通过对这些减少的表示的影响来识别输入数据中的不规则性,这降低了必须由异常检测算法处理的变量的数量,并可以洞察数据中的隐藏状态。

        一个常见的方法来接近多元系统,其中有未知的,但可能相互依赖的变量是主成分分析(PCA)。这种方法将一个多变量系统分解成一个简化的自变量集,从而减少了要研究的系统的总体规模。在[85]中,PCA被应用于网络流量异常,作者指出,该方法按预期工作,但它面临着大量的PCA方法固有的局限性,如大的时间窗尺寸导致难以准确定位异常的来源,难以根据给定的数据分布调整PCA模型,以及一个足够异常的异常有机会污染PCA方法中的常态。[86]将基于聚类检测方法的递归PCA应用于物联网传感器环境,该方法显示了正确识别异常序列的能力,但他们再次指出,PCA的计算复杂性是边缘传感器实现的一个限制。

        投影寻踪法提供了另一种降低多元系统维数的方法。在[87]中,通过将复杂系统的维数降低到可以应用单变量方法的维数,该方法被应用于异常值检测。与PCA相似,投影追求在计算时间的形式中会产生很大的开销。

        由于减少了自编码器的隐藏层的长度,这些方法可以以类似于PCA的方式使用。在[88]中,利用一系列自编码器方法对卫星遥测和人工数据进行重建误差检测异常。作者指出,与正常训练数据相比,输入数据的隐藏表示在异常观察中明显偏离。计算成本是比较与主成分分析方法,发现是显著较低的自编码器的方法。

        在[89]中,一组自动编码器和卷积自动编码器被用于建筑能源数据,以突出异常,以及控制策略的低效,根据重建错误对异常进行评分,添加日期时间和其他上下文数据以改善功能。这种方法适合离线分析,因为作者根据异常评分对观测结果进行排序,并选择top-N进行进一步调查。

        采用半监督的方法,将表面安装的音频传感器与[14]中的卷积自动编码器相结合,再次检测工业机械的故障。他们再次使用输入数据重建的准确性来提供输入数据常态化的衡量标准。学习了一个阈值α,超过该阈值,观测窗口被突出显示为异常。演示了第二种方法,在自编码器的中心层中,边界是围绕隐藏的表示学习的。当值出现在这些边界之外时,根据正常操作进行训练,就会识别出异常。

        卷积变分自编码器(CNN-VAE)被用于[9]中受IoT启发的环境中,在这里,作者展示了一种方法,在不损害其识别异常实例的能力的情况下,降低自编码器的大小、复杂性和训练成本。这使得压缩CNNVAE (SCVAE)更适合部署在物联网网络的边缘设备中。

        在[90]中再次使用了变分自编码器,将其与 GRUs 结合,通过对系统内可检测到的VAE相位异常报告的重建概率应用阈值,来学习多元时间序列的时间和关系特征。Kieu等人[91]提出了 LSTM-autoencoder 和卷积自编码器方法,在预处理阶段使用数据丰富,这使得自编码器有更大的特征空间来识别最具代表性的特征。

        [92]提出了一种无监督生成式对抗网络,其中LSTM用于在网络的生成器和判别器部分捕获系统的时间性质。这是用来训练判别器正常输入数据的特征,因此它可以直接报告异常的观测结果。提出的用例是一个具有传感器和执行器数据的Cyber Physical系统。采用主成分分析法对输入的多元数据进行降维处理。

        2)聚类:  Lui等人[93]、[94]提出了一种利用隔离树(称为隔离森林)进行异常检测的集成方法,并将其与包括ORCA[95]、单类SVM[96]、LOF[97]和随机森林[98]在内的许多其他当代方法进行了比较。他们指出,由于他们的方法的计算效率,它可以应用于流数据。

        多核异常检测(Multiple Kernel Anomaly Detection, MKAD)[99]应用于航天数据。MKAD使用内核函数来学习数据流中变量之间的相似性度量,并应用一个类SVM来执行分类任务。他们将结果与ORCA[95]和SequenceMiner[100]进行了比较,注意到在跨越离散和连续流的检测能力方面取得了显著的进步。

        3)其他方法: 已经提出了一系列使用递归神经网络来捕获多元系统的时间性质的方法[101],[102],[103]。在[104]中,基于LSTM和GRU的神经网络被应用于飞机飞行数据,其中他们的方法与MKAD方法产生的结果进行了比较,在识别这些数据中的一系列异常类型方面取得了更大的成功。

        在[105]中,基于LSTM的检测器使用离线训练方法应用于航天器遥测,作者描述了超过700个遥测通道的近实时性能。他们利用前一批的预测错误,以及包括领域专家的知识,来计算后一批的检测阈值,从而适应随着时间的推移接收到的数据的变化,并考虑到罕见或偶尔的预期过程。

        在[106]中,CNN与可训练的小波变换层相结合,用于检测合成多元数据中的变化点。这种方法能够识别逐渐的概念漂移和输入数据随时间分布的变化,并可能提供一种在其主要表现之前检测异常的方法。

        [44]中提出了一种有监督的异常检测方法,在这里,作者利用训练数据中的类标签在决策过程中为系统操作员提供额外的信息。该方法将算子知识与原始异常数据相结合,为半监督或非监督异常检测方法的发展指明了方向。

        动态贝叶斯网络(Dynamic Bayesian Networks, DBN)在[107]中应用于单变量和多变量环境数据,其中提出了许多试图对传感器数据进行实时异常检测的方法。他们指出,当将多个相关的传感器流结合在一起,为检测过程添加上下文时,DBN方法的检测能力得到了提高。

        文献[108]使用了一种基于图的方法来学习变量之间的依赖关系。图中的节点表示单个的观测结果或观测序列,其中节点之间的权重较低(表示对其他节点的依赖性较低),该节点被标记为异常。

        [109] 中使用了自组织图(SOMs)的变体,作者证明了他们的方法能够以无监督的方式捕捉多元数据的季节性时间特征。作者还显示效用的方法,当应用到单变量系统。

六、研究挑战与未来发展方向

        虽然异常检测在文献和实践中已经存在了很长一段时间[110],但为了实现广泛的应用,仍有许多问题需要克服。目前,解决这个问题没有唯一的最佳方法,而是有许多可能更适用于某些领域的方法。

  • 实时处理——正如第IV-C节中所讨论的,对于数据被用于辅助短期决策或自动化决策(如工业物联网、智能交通或智能能源)的大多数用例,异常检测方法实时或接近实时运行的能力是很重要的。如果一个检测器处理一个观测或一组观测的时间比两次测量之间的时间长,最终将超出提供给检测器的计算资源,系统将失败。
  • 窗口或增量方法——由于产生的数据量很大,保持整个数据集用于分析的成本很高,尤其是在资源受限的设备上执行分析时。因此,如第IV-C节所述,滑动窗口或增量方法将减少处理平台的内存和存储需求。
  • 在线自适应学习——第IV-A4节中描述的物联网时间序列的非平稳性导致了对异常检测的自适应方法的需求。因此,虽然离线方法可能用于初始部署,但应该有一些方法使候选系统随着时间的推移改进其模型,以适应可预见和不可预见的数据分布变化,而不需要对系统进行大量的再培训。
  • 半监督或无监督-在真实的用例中,经常会严重缺乏可用的标记异常数据,可以假设这些可用的数据不能完全代表我们在第四- b节中描述的可能发生的异常范围。同样,由于正常数据和异常数据之间的不平衡,经典的多类机器学习方法将不足以捕捉数据流的性质。因此,仅在正常数据上训练候选算法的方法是最可行的[9],当异常位于正常数据周围的某些区域之外时,会报告异常。
  • 多元数据-如V-A节中讨论的许多方法所示,添加上下文信息可以提高给定检测器的适用性,这可以以时间信息、环境信息或额外传感器流的形式。因此,需要在多元设置中成功地运行异常检测器。
  • 一般化方法——虽然可能没有一种方法是所有可能情况下的最佳方法,但可以应用于多个领域的算法的开发将有助于技术的可重用性,并简化异常检测方法在各种任务中的部署。

7结论

        物联网方法为许多分析技术的应用提供了重要的机会,以便从所收集的大量数据中提取有用的知识。在大多数情况下,人工分析这些数据流是不切实际的,或者在财务上是不可行的,因此必须开发自动化方法,将收集的原始数据转换为可操作的信息。

        在本次调查中,我们讨论了时间序列和物联网数据领域内异常的定义。我们描述了在一些物联网特定用例中使用异常检测作为数据分析工具,概述了这些方法的目标和结果,以及这些应用程序可能带来的一些好处。

        鉴于物联网部署正在监控的动态和新颖系统,我们描述了在开发异常检测解决方案时面临的主要挑战(第四部分),并讨论了一些可能用于缓解这些挑战的方法。尽管在单变量数据中检测异常观测(章节V-A)一直是研究的重点,但典型物联网部署所监测的系统的复杂性通常需要处理多个数据流,并使用多元方法(章节V-B)来检测这些变量之间关系的变化。然而,由于管理数据中更多维所需的复杂性和计算量增加,这个方向带来了额外的挑战。机器学习为遇到的问题提供了一些解决方案,但预标记数据的低可用性继续为这些方法提供挑战。最后,我们提出了一系列研究挑战,这些挑战可能是在开发针对特定案例和更通用方法的新型异常检测系统时所面临的。

        随着越来越多的物联网应用在智能城市、能源部门和各种垂直行业的发展和部署,我们预计异常检测将在处理和分析所收集的数据中发挥越来越重要的作用。

你可能感兴趣的:(时间序列预测以及异常检测,论文阅读,异常检测)