Real-Time Deep Learning-Based Anomaly Detection Approach for Multivariate Data Streams文章翻译

Real-Time Deep Learning-Based Anomaly Detection Approach for Multivariate Data Streams with Apache Flink

基于Apache Flink以及实时深度学习的多元数据流的异常检测方法

摘要

为了检测复杂系统中的异常行为,基于深度学习的 多元时间序列异常检测算法 近年来受到了广泛关注。虽然许多异常检测算法已被广泛提出,但还没有研究如何在流处理框架下对多元数据流执行这些检测算法。为了解决这个问题,我们提出了一种基于Apache Flink以及实时深度学习的多元数据流的异常检测方法。我们训练了一个LSTM encoder-decoder模型来重建一个多元输入序列,并开发了一种利用输入序列和重建序列之间的重建误差的检测算法。我们表明,我们的异常检测算法可以在真实数据集上提供良好的性能。然后,我们开发了一个Flink程序,通过实现三个操作符以特定顺序处理和转换多元数据流。Flink程序实时输出异常检测结果,使系统专家能够轻松接收关键问题的通知,并通过适当的措施解决问题,以维护系统的健康。

1 介绍

在现实世界的应用中,通过监测复杂系统,如电厂中的传感设备(如压力和湿度)读数或服务器机器中的多个指标(如CPU负载、网络使用),可以不断生成多元数据。在多元数据流中检测异常和系统的意外行为是管理这些系统的一项关键任务,这样系统管理员就可以接收到关键问题的通知,并通过提供适当的操作来解决问题,以维护系统的健康。传统上,系统专家为每一次测量都定义了正常行为的阈值,如果一个测量值超过了定义的阈值,就被认为是异常,意味着系统没有正常运行。然而,由于系统的规模和复杂性增加,传感器的数量急剧增加,使得系统专家难以定义正常行为的阈值。

为了解决这一问题,几十年来在多元时间序列数据分析领域提出了许多异常检测算法。一些研究[12-14]提出了监督学习方法来检测异常,但由于缺乏用于模型训练的标记异常数据,使得这些方法不可行。因此,学习系统正常行为的无监督异常检测方法受到了广泛的关注。早期的方法通过使用机器学习模型来发现异常,如k近邻[15]、聚类[16]、一类svm[17]或时间序列预测模型[18]。然而,传统的学习模型不能有效地推断多元时间序列数据的复杂依赖关系。最近许多异常检测算法使用深度神经网络模型,如LSTM编码器-解码器模型[2],深度自编码器与高斯混合模型[10],LSTM网络与变分自编码器[11],LSTM或卷积LSTM网络用于预测[7,8],双向生成式对抗网络[9]和卷积递归编码器模型[3],随机递归神经网络[4],时间层次单类网络[5]和具有对抗训练的自编码器模型[6]。虽然这些基于深度学习的异常检测算法已经被提出,但据我们所知,目前还没有关于如何在流处理框架下对多元数据流执行这些检测算法的工作。

在这项工作中,我们提出了一种基于深度学习的多变量数据流实时异常检测方法,该方法使用了一个流处理框架Apache Flink。我们首先在[2]中训练一个LSTM encoder-decoder模型来重建一个多元序列,并开发一个利用输入序列和重建序列之间的重建误差的异常检测算法。然后,我们开发了一个实时处理多元数据流的Flink程序。Flink是一种流行的even-driven偶数驱动流处理框架,用于在无界数据流上进行有状态计算。为了方便用户开发程序,Flink提供了一个编程模型,该模型是一个有向无环图,其中每个节点都是一个操作符,定义了传入数据流的功能。通过实现操作符,我们可以指定数据流的转换顺序。
在这里插入图片描述
图1 基于Apache Flink的多元数据流异常检测的整体架构

图1显示了我们的Flink程序的总体架构,它由三个操作符组成:dataSource、streamWindowing和 anomalyDetection。dataSource操作符接收原始数据流并将它们发送到DataStream对象,其中DataStream是在Flink中处理数据流的基本类型。然后从DataStream对象生成一个包含多个连续数据的序列。anomalyDetection将序列输入训练好的LSTM encoder-decoder模型,并通过接收检测算法的检测结果来通知异常。

本文的其余部分组织如下。在第二节中,我们首先讨论一种多元序列的异常检测方法。然后在第3节中详细介绍了Flink算子的实现细节,并在第4节中对本文进行总结。

2 多元序列的异常检测

我们关注一个长度为 T 的多元序列 X = x 1 , x 2 , … , x t , … , x T X = {x_1, x_2,…, x_t,…,x_T} X=x1,x2,xt,xT,其中每个数据点 x T ∈ R m x_T ∈ R^m xTR

  • 17
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Saturn8523

你的鼓励就是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值