Why
现有的专注于动态图的方法中,大多数都是都将边汇总为图快照,但这不能接近实时的检测,需要接收到边后立即识别出该边是否异常。在许多应用中的欺诈性或异常事件发生在微团簇或突然到达的可疑相似边缘组中,现有的方法都是检测单个边缘,且不能提供假阳率保证。本文提出的方法则是解决上述两个问题的。
1. Introduction
在专注于动态图的方法中,大多数方法都将边汇总为图快照。 但是,为了最大程度地减少恶意活动的影响并尽快开始恢复,我们需要实时或接近实时地检测异常情况。 接收到边后立即识别出该边是否异常。 此外,由于在处理边缘流时顶点数量会增加,因此需要一种算法,该算法在图的尺寸中使用恒定内存。
在许多应用中的欺诈性或异常事件发生在微团簇或突然到达的可疑相似边缘组中,例如拒绝网络流量数据中的服务攻击和锁步行为。 但是,以在线方式处理边缘流的现有方法(旨在检测单个令人惊讶的边缘(而不是微团簇),因此可能会丢失大量可疑活动。
在这项工作中,我们提出了MIDAS,它使用恒定的时间和内存来检测边缘流中的微团簇异常或突然到达的可疑相似边缘组。 此外,通过使用原则上的假设检验框架,MIDAS为错误肯定概率提供了理论上的界限,而这些方法并未提供这些界限。 然后,我们提出了包含时空关系的MIDAS-R。此外,我们还提出了MIDAS-F,它使用阈值来过滤异常边缘,以免它们对内部状态造成负面影响。
我们的主要贡献如下:
1)流式微团簇检测:我们提出了一种新颖的流式方法来检测微团簇异常,需要持续的时间和内存。
2)理论上的保证:在定理1中,我们为MIDAS的误报概率(假阳率)提供了保证。
3)有效性:我们的实验结果表明,MIDAS的准确性比基线方法高41%-55%(以AUC计),并且处理数据的速度比基线方法快130-929倍。
4)过滤异常:我们提出了一种变体MIDAS- F引入了两个修改,旨在滤除异常边缘,以防止它们对算法的内部数据结构产生负面影响。
2. Related Work
egonet: 点:一个中心节点(ego)和他的邻居节点(alters),边:ego和alters之间所有的边,组成的网络图。
主要分为三大类,在静态图上发现异常,在图流(快照)上发现异常,在边流上发现异常。仅最后一类中的2种方法适用于我们的任务,因为它们在边缘流上操作并输出计分器边缘。 但是,如表1所示,两种方法都无法检测出微团簇,也无法提供对假阳性概率的保证。

3. Problem
算法的期望属性如下:
- 微团簇检测 :它应该检测突然出现的突然爆发的活动,这些突发具有许多重复的节点或边缘,我们称之为微团簇。
- 假阳率保证 :鉴于用户给定的概率水平 ϵ \epsilon ϵ (比如1%),算法应该是可调整的,以便提供最多为的假阳性概率 ϵ \epsilon ϵ (比如根据 ϵ \epsilon ϵ 调整threshold)。此外,虽然对误报概率的保证依赖于对数据分布的假设,但我们的目标是使我们的假设尽可能地弱。
- 常数内存和更新时间 :为了在流设置中实现可伸缩性,该算法应在每个新到达的边缘上运行不变的内存和不变的更新时间。 因此,其内存使用量和更新时间不应随流的长度或图中的节点数而增加。
4. MIDAS and MIDAS-R Algorithms
4.1 Overview
- 流假设测试方法 :我们描述了我们的MIDAS算法,该算法在基于假设测试的框架内使用流数据结构,使我们能够获得关于假阳性概率的保证。
- 检测和保证 :我们描述了用于确定某个点是否异常的决策程序,以及对误报概率的保证。
- 合并关系 :我们将方法扩展到MIDAS-R算法,该算法在时间和空间上合并了边之间的关系。
4.2 MIDAS: Streaming Hypothesis Testing Approach
4.2.1 Streaming Data Structures
在离线环境中,有许多时间序列方法可以检测到这种活动爆发。但是在联机设置中,因为限制内存使用量,即使是单个这样的时间序列,我们也无法跟踪。 而且,有许多这样的源-目的地对,并且源和目的地的集合不是先验地固定的。
使用了两种Count-min sketch (CMS) 数据结构。 s u v s_{uv} suv是到当前时间从u到v总共的条数。使用CMS数据结构来近似的保持这些 s u v s_{uv} suv在一常量内存中,在任何时候,我们都可以查询数据结构以获得近似计数 s ^ u v \hat{s}_{uv} s^uv。让 a u v a_{uv} auv是在当前时间刻度从u到v的边条数(不包含过去的时间刻度)。同样使用一个类似的CMS数据结构维护,与刚才不同的是这个进入下一个时间刻度将会被重置。因此这个CMS数据结构提供当前时刻t从u到v的近似值 a ^ u v \hat{a}_{uv} a^uv。
4.2.2 Hypothesis Testing Framework
对于给定的 s u v ^ \hat{s_{uv}} suv^和 a u v ^ \hat{a_{uv}} auv^,如何在一个有理有据的框架内检测微团簇?
一种方法是假设时间序列遵循特定的生成模型(比如,高斯分布),但是,这需要严格的高斯假设,如果数据遵循的分布非常不同,则可能导致过多的假阳性或阴性。取而代之的是,我们使用一个较弱的假设:当前时间(例如t =10)的平均水平(即边缘出现的平均速率)与当前时间(t <10)之前的平均水平相同。 请注意,这避免了假设每个时间周期的任何特定分布,也避免了严格假设随时间推移的平稳性。
因此,我们可以将过去的边缘分为两类:当前时间(t = 10)和所有过去时间(t <10)。 (t=10)的事件数是 a ^ u v \hat{a}_{uv} a^uv,过去时间(t<10)的事件数是 s ^ u v − a ^ u v \hat{s}_{uv}-\hat{a}_{uv} s^uv−a^uv。
在卡方拟合优化检验下,卡方统计量定义为 ( o b s e r v e d − e x p e c t e d ) 2 / e x p e c t e d (observed-expected)^2/expected (observed−expected)2/expected类别上的总和。在这个例子上我们的类别是t=10和t<10,在平均水平假设检验下,总共的边是 s u v s_{uv} suv(当前这个u到v),在时间t=10期望的边数是 s u v / t s_{uv}/t suv/

最低0.47元/天 解锁文章
881

被折叠的 条评论
为什么被折叠?



