MemStream: Memory-Based Streaming Anomaly Detection

MemStream: Memory-Based Streaming Anomaly Detection在存在概念偏移的多维数据设置中,给定一个随时间变化的实体流,我们如何检测异常活动?大多数现有的无监督异常检测方法都是为了以离线的方式检测异常事件,并且需要大量的数据来进行训练

摘要

在存在概念偏移的多维数据设置中,给定一个随时间变化的实体流,我们如何检测异常活动?大多数现有的无监督异常检测方法都是为了以离线的方式检测异常事件,并且需要大量的数据来进行训练。这在现实生活场景中是不实际的,因为我们以流的方式接收数据,并且事先不知道流的大小。因此,我们需要一种数据高效的方法,能够以在线的方式检测和适应不断变化的数据趋势,或概念偏移。在这项工作中,我们提出了MemStream,一个流异常检测框架,允许我们检测异常事件发生的同时恢复概念偏移。我们利用去噪自动编码器的能力来学习表示法,并利用内存模块来学习数据中的动态变化趋势,而不需要标签。我们证明了有效的偏移处理所需的最佳内存大小。此外,MemStream利用了两种体系结构设计选择来实现对内存中毒的鲁棒性。实验结果表明,与使用2个合成数据集和11个真实数据集的最先进的流媒体baseline相比,我们的方法是有效的。

正文

Introduction

传统的在监督学习设置中训练的分类器在异常检测中不能很好地工作,因为冷启动问题,即异常数据的量通常不足以训练模型。因此,异常检测器是在一个无监督的设置中训练的,在那里学习正态数据分布,在这个分布下出现不太可能的实例被识别为异常。
自编码器(Autoencoder)由于他们能够学习多个层次的表示,因此能够与浅层的同行模型相比获得更好的性能。
网络安全的入侵在到达后会立即被发现,以减少造成的危害。检测流数据(时序数据)中的异常就很有实际意义。
此外,在流数据中,分布可能会随着时间发生偏移,现有的方法无法完全处理。
为了处理流媒体设置中的概念偏移,我们的方法使用了一个显式内存模块。对于异常检测,这个内存可以用于存储正常数据的趋势,作为判断传入记录的baseline。在偏移设置中,只读内存的使用范围很有限,因此应该伴随着适当的内存更新策略。记录会随着时间的推移而到达;因此,内存中的旧记录可能不再与当前的趋势相关,这就建议一种先入先出的内存替换策略。内存的引入,以及适当的更新策略,似乎解决了概念偏移流异常检测中的一些问题。
然而,到目前为止所描述的系统并没有为异常样本进入内存时提供故障安全保护,因此容易发生内存中毒。
本文提出了MemStream,它使用一个去噪的自动编码器[73]来提取特征,并使用一个内存模块来学习动态变化的趋势,从而避免了自动编码器的过度泛化。(即,自动编码器重构异常样本的问题)
我们的流框架能够适应概念偏移,我们证明了有效漂移的内存大小的理论边界处理。此外,当到达的流与训练数据足够不同时,我们允许快速的再训练。
我们还讨论了两种架构设计选择,以使MemStream对内存中毒具有健壮性。第一个修改防止异常元素进入内存,而第二个修改处理如何自我纠正和恢复内存元素,即使它包含异常元素。

算法

该算法的主要挑战是在适当的时间框架内以流式的方式检测这些类型的模式。也就是说,算法不应该对基分布的短暂变化给出脉冲反应,也不应该花太长的时间来适应动态趋势。请注意,我们不希望对我们想要检测的异常活动的持续时间设置任何限制,或者需要更新模型的窗口大小以解释概念偏移。
所提出的MemStream算法通过使用内存增强特征提取器来解决这些问题,该提取器最初在正常数据的一个小子集上进行训练。内存作为正常数据编码的储备。

通过计算基于其编码的相似性的折扣分数,对输入的记录进行评分。根据这个分数,如果该记录被认为是正常的,那么它将被用来更新内存。为了适应不断变化的数据趋势,需要使用内存来跟踪来自原始分布的数据偏移。由于概念偏移通常是一个渐进的过程,内存应该保持记录的时间连续性。

在这里插入图片描述
图1:初始训练后的特征提取器的正常数据,MemStream处理记录在两个步骤: (i)输出异常分数为每个记录通过查询内存k最近邻居记录编码和计算折扣距离和(ii)它更新内存,FIFO方式,如果异常分数在一个更新阈值β。

编码器形成输入样本的中间表示,并训练解码器从它们的中间表示重构输入样本。

算法框架

在这里插入图片描述
主要是通过计算每个新输入的样本的异常分数,然后结合阈值来判断是否属于异常行为。
第2行:该自动编码器最初用少量的数据D进行训练,以学习如何生成数据嵌入。
第3行:memory被同样的训练数据集初始化。
第6行:我们还存储了这个小的训练数据集的平均值和标准差。当新的记录到达时,编码器使用存储的平均值和标准差进行归一化,并计算压缩的 Z^t 表示。
第8行:通过查询memory来计算K个最近邻的记录。
第10行:计算他们的L1距离。
第12行:最终的折扣分数以指数加权平均数计算。
第14行:然后将折扣分数与用户定义的阈值β进行比较。
第15行:如果分数低于阈值β,那么新的记录就会以FIFO的方式被更新到memory中。(此步骤可确保异常记录不会进入内存。)
如果内存被更新,那么存储的平均值和标准差也会相应地更新。
第17行:折扣分数作为记录 x^t 的异常分数返回.

今天的文章MemStream: Memory-Based Streaming Anomaly Detection分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/89226.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注