CN106919650A - 一种增量并行式动态图的结构异常检测方法 - Google Patents
一种增量并行式动态图的结构异常检测方法 Download PDFInfo
- Publication number
- CN106919650A CN106919650A CN201710042441.1A CN201710042441A CN106919650A CN 106919650 A CN106919650 A CN 106919650A CN 201710042441 A CN201710042441 A CN 201710042441A CN 106919650 A CN106919650 A CN 106919650A
- Authority
- CN
- China
- Prior art keywords
- subgraph
- minor structure
- sub
- collective drawing
- abnormal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Testing And Monitoring For Control Systems (AREA)
Abstract
本发明涉及一种增量并行式动态图的结构异常检测方法,该方法首先使用时间滑动窗口对图进行划分,在初始化阶段选取N个子图并行检测正常模式和异常子结构,然后并行迭代地确定剩余子图中的正常模式和异常子结构。在正常模式检测中使用最小描述长度原理,能从多个层次对原始图进行压缩和异常检测。本发明在多个大规模图数据集上验证所提算法,实验结果表明所提方法能有效地、增量地检测大规模图流数据中的异常。
Description
技术领域
本发明涉及计算机数据处理领域,具体涉及一种增量并行式动态图的结构异常检测方法。
背景技术
图的异常结构检测可以发现金融欺诈行为、网络入侵和可疑的社交行为。
很多应用领域中数据之间的复杂关系均可以通过图直观地表现出来,例如互联网、社交网络和生物领域。这些真实应用中的图数据通常是大规模的,并且随着时间推进数据量不断增加。例如,在社交媒体(博客、微博和微信)和信息共享平台(YouTube和Flicker)中,用户之间持续的社交行为会产生大量的、持续的、相互交互的数据,而这些交互可以自然地使用动态图来表示——结点表示人、物体或其他实体,边表示实体之间的联系。
传统的算法很难有效对上述大规模动态图进行有效地分析和挖掘。首先,由于图的规模庞大,导致图在计算上的时间过长;其次,我们往往不能获取图的全部数据,而只能获取数据的一部分。例如社交网络图,我们通常只能通过爬虫抓取获得部分数据。另外,即使有的图规模略小一些,但是计算某些图的重要的度量值需要的处理时间非常长(例如生物细胞科学的实验)。因此,需要采用并行处理的技术提高图的处理能力。
目前大部分的研究聚焦在基于图的数据关系结构分析。目前图挖掘方法针对特定的数据集处理一类特定的图,或者把一种具体的图算法应用到不同的领域。但是,这些算法都不能很好地解决图挖掘的扩展性问题,尤其是大规模动态图的异常检测问题。例如Facebook拥有8亿用户,用户每分钟发表50万条评论,超过29万条状态更新。这样的包含上亿结点、每分钟产生几十万边的图的分析和异常检测问题都没有得到很好的解决。异常行为通常模仿正常的行为模式,所以越接近于正常模式的异常,越难以分辨。因此我们把与正常模式相似的近似模式称为异常模式。例如在金融领域检测洗钱行为时,洗钱行为通过模仿正常的金融交易行为逃避检测,行为模式越像正常的模式,它们越不容易被察觉,越容易蒙混过关。在基于图的表示中,异常模式通常在正常模式上进行修改,例如添加边和结点、删除边和结点或修改结点属性信息。目前基于图的异常检测称为GBAD(Graph BasedAnomaly Detection),使用一种基于最小描述长度的压缩方法来寻找正常模式,然后分析与正常模式相近的模式,并计算其异常值,最后判断这些相近的模式是否为异常模式。虽然这个方法在很多领域被广泛应用,但是算法的可扩展性问题,尤其是处理百万级结点的图的算法效率问题没有得到很好地解决。大规模图随着时间不断演化,这也加剧了分析的困难——正常模式随着时间或者事件触发也会发生变化。也有的算法把GBAD并行化,但是它解决的是大规模增量图(即图的边和结点随时间不断增加)的处理,没有考虑到大规模动态图(图的边和结点随时间不仅增加而且现有的边和结点不断删除)的分析处理。
作为早期的图异常检测的研究,Cook和Nobel在图上把异常定义为结构的异常。例如在基于正常模式的图压缩之后,余下的结构被认为是异常的。Akoglu在最近的研究中也处理了大规模图的异常检测问题,但是他们的目标是检测异常的结点。以上的两个研究都认为图是静态的。
一种解决大规模图的方法是把图看做边的数据流,每次处理图的一个或者多个边。以前的工作在异常检测领域提出一些不同的方法来处理图的边数据流。其中一种被称为“semi-streaming model”的方法,可以处理不能把所有边存储到内存的大规模图。例如,Feigenbaum等人的工作提出了semi-streaming常量近似算法,来处理无权重和带权重图的匹配问题,同时也扩展应用到二分图。通过考虑semi-streaming模型中经典的图问题,他们证明了近似方法解决这些问题的有效性。其它的研究则把此方法扩展,来解决不同的图问题,例如有向图的最短路径问题、使用中间的临时流来解决特定问题等。总之,这些方法分析可用的内存和访问整个图所需访问硬盘的次数之间的关系,并根据实际情况进行取舍。
其他方法对大规模图进行聚类,使用从图数据流中创建哈希压缩微簇的技术。在处理大规模存储在硬盘上的图的问题时,将压缩的微簇设计成基于散列的压缩,把边映射到更小的空间。还有一些研究尝试挖掘动态图的频繁闭合子图。一种方法称为AdaGraphMiner,它仅仅维护当前的频繁闭合子图,使用具有理论保证的估算技术。实验验证了此方法在癌症的化学分子结构图的边数据流的有效性。另外,最近有些研究人员尝试处理大规模网络的稀疏问题,通过动态切分网络处理大规模数据集。有的方法使用reservoirsampling技术压缩数据流,得到图的结构概要。这类异常检测识别不寻常的桥接边,或连接两个极少同时出现的子图的边。
有些方法检测图数据流中的异常,他们的目标是通过分析边数的统计信息识别异常的子图簇,而不是发现图或图数据流中结构的异常。另外,一些方法尝试使用基于整个图的方法来发现异常子图,这类方法没有解决可扩展性问题。
另外,大多数异常检测方法使用监督的学习方法,需要数据提前打好标签、做好分类,然后再训练模型,进行预测。而实际情况是大多数时候不能提前知道异常或者正常的相关信息,从而需要一种无监督的方法来检测那些看起来像正常、合法的模式但实际上结构不同的异常模式。
发明内容
为解决现有技术的不足,本发明提供了一种增量并行式动态图的结构异常检测方法(简称DPADS算法),包括如下步骤:
初始化阶段:
S1:将所有待处理的图数据划分为N*X个子图;
S2:并行处理第一个子图集中的N个子图,也即第1-第N个子图,每个子图发现若干个正常模式;
S3:根据发现的若干个正常模式判定基准模式;
S4:根据基准模式发现前N个子图中每个子图的可能异常子结构;
S5:从各可能异常子结构中找出最可能的异常子结构,作为最后确定的异常子结构;
迭代处理阶段:
S6:将刚刚处理完的子图集直接增加一个子图;或舍弃第一个子图,并按顺序向后增加一个子图,形成一个新的子图集;
S7:判断是否需要重新生成正常模式,如果需要,则根据与初始化阶段(步骤S2-S5)相同的方法判定新的子图集中的异常子结构;如果不需要,则根据步骤S8-S10的方法判定新的子图集中的异常子结构;
S8:从步骤S6中新增加的子图中分别找出若干个正常模式,并与此轮子图集中其它子图的正常模式整合出此轮子图集的基准模式;
S9:若步骤S8中的基准模式与步骤S6中刚刚处理完的子图集的基准模式相同,则根据相同的基准模式找到新增加的一个或两个子图中的可能异常子结构,并结合此轮子图集中其它子图的可能异常子结构找到此轮子图集中的异常子结构;
S10:若步骤S8中的基准模式与步骤S6中刚刚处理完的子图集的基准模式不同,则根据步骤S8中基准模式找到此轮子图集中所有子图的可能异常子结构,并从所有子图的可能异常子结构中找到异常子结构;
S11:重复步骤S6-S10,直到处理完最后一个子图。
其中,所述步骤S2及步骤S8中,正常模式的判定方法为最小描述长度方法,以最小化以下目标函数找到正常模式:
min M(S,G)=min{DL(G|S)+DL(S)}
其中,G表示所处理的子图,S为正常模式,DL(G|S)为使用正常模式S压缩后的子图G的描述长度,DL(S)为正常模式S的描述长度。
其中,所述步骤S4及步骤S9-步骤S10中,所述可能异常子结构的判定方法为:
0<d(SA,E)<TD,且0≤P(SA|E,G)≤TP≤1
其中,d(SA,E)为可能异常子结构SA与基准模式E的差异值,TD为人为设定的可能异常子结构SA与基准模式E的最大差异,P(SA|E,G)表示子图G在基准模式E的压缩下,可能异常子结构SA为异常子结构的概率,其值由贝叶斯公式计算而得,TP为人为设定的可能异常子结构SA为异常子结构最大概率。
其中,所述步骤S5及步骤S9-步骤S10中,所述异常子结构的判定方法为:通过下述公式,找到取值最低的若干个可能异常子结构,作为异常子结构:
Score=d(SA,E)*P(SA|E,G)。
其中,所述步骤S6中,若刚刚处理完的子图集中的子图个数等于阈值,则将刚刚处理完的子图集舍弃第一个子图,并按顺序向后增加一个子图,形成一个新的子图集;若刚刚处理完的子图集中的子图个数小于阈值,则将刚刚处理完的子图按顺序向后增加一个子图,形成一个新的子图集。
其中,所述步骤S7中,需要重新生成正常模式的判断标准为:步骤S6中,新的子图集中出现了移除边的情况,且d(Sdel,E)≥β/(1+ε)2
其中,β和ε均为人为设定的参数,Sdel为包括移除边数据节点的正常模式。
本发明提供的增量并行式动态图的结构异常检测方法,具有可扩展性,能处理动态图数据流,运行时间比基于静态图的异常检测方法降低了一个数量级。在真实网络安全威胁场景和真实的数据集中,通过使用滑动窗口(时间或者边的数量)对大规模图和图流数据进行划分,并行处理所划分的子图。
附图说明
图1:本发明的第一实施例的增量并行式动态图的结构异常检测方法检测流程图;
图2:本发明的第二实施例的增量并行式动态图的结构异常检测方法检测流程图;
图3:本发明提供的检测方法的总体运行时间示意图;
图4:本发明的某一检验结果中子图运行时间及异常子结构标注示意图;
图5:本发明提供的检测方法的准确率和召回率示意图。
具体实施方式
为了对本发明的技术方案及有益效果有更进一步的了解,下面配合附图详细说明本发明的技术方案及其产生的有益效果。
本发明提供的增量并行式动态图的结构异常检测方法,将静态图的异常检测方法扩展到大规模动态图的异常检测中。本发明中,定义了三种基本类型图的异常:添加、修改和删除异常。添加异常是正常模式增加了结点或边。修改异常包含了一个结点或边的不同标签。删除异常的子结构比正常子结构缺少了边或结点。
增量并行式动态图的结构异常检测方法检测图的异常是基于这样的思想:异常的子结构(或子图)是正常模式的结构变种(正常模式边和节点的增加或者缺失)。我们假设d(G1,G2)表示两个图G1和G2之间的结构差异度量,通过计算把图G1转化为G2的同构图的计算量(添加、删除点与改变一个结点、边的标签的变化数量),衡量G1和G2之间的差异。
为了方便理解本发明的技术方案,现将本发明所用到的定义解释如下:
一、最小描述长度原理
在图G中,正常模式S可由最小描述长度原理(Minimum Description Length,MDL)来判定,并最小化以下目标函数:
min M(S,G)=min{DL(G|S)+DL(S)}
其中,G表示所处理的子图,S为正常模式,DL(G|S)为使用正常模式S压缩后的子图G的描述长度,DL(S)为正常模式S的描述长度。
最小描述长度的原则即要求模型的总描述长度最小,正常模式S检测的MDL原则具有两个重要的性质:
1、当有两个模式都能很好地匹配图G时,MDL原则选择“最简单”的模式,即它选择压缩率更高的描述,这也反映了奥卡姆剃刀对简单理论的优先选择。
2、MDL原则是一致的,随着数据量的不断增加,它收敛于真正的正常模式。
二、两个图G1和G2之间的结构差异度量d(G1,G2)
d(G1,G2)表示把图G1转化为G2的同构图的计算量(添加、删除点与改变一个结点、边的标签的变化数量。如果两个图同构,则d(G1,G2)=O。
本发明提供的增量并行式动态图的异常检测方法,包括初始化阶段和迭代处理阶段,具体步骤如下:
初始化阶段:
S1:将所有待处理的图数据划分为N*X个子图;
S2:并行处理第一个子图集中的N个子图,也即第1-第N个子图,每个子图发现若干个正常模式;正常模式的判定方法为最小描述长度方法,其判断原则已介绍如上,本发明中,可以人为设定各个子图的正常模式的数量,如若设为一个,则找出描述长度最小的值对应的正常模式;如若设为两个,则找出描述长度最小及次小的值对应的正常模式,依次类推;
S3:由于各子图对应的正常模式可能存在同构,因此需要将发现的若干个正常模式整合,以判定基准模式;
S4:根据基准模式发现前N个子图中每个子图的可能异常子结构;
S5:从各可能异常子结构中找出最可能的异常子结构,作为最后确定的异常子结构;因此,本发明中,找到一些基准模式和与其相似的可能异常子结构后,可迭代找到其它的可能异常子结构;首先,使用基准模式对子图进行压缩,例如把基准模式替换成一个带有标签的结点,然后,在压缩之后的图上寻找基准模式和相关的可能异常子结构,这个过程可以进行多次迭代以找到更多的基准模式和可能异常子结构,直到遍历整个图;当将整个数据图进一步压缩时还能够进行不同级别的异常检测;
迭代处理阶段:
S6:本发明设定一个阈值,此阈值表示的每次可处理的最大子图数量或子图时间戳,若刚刚处理完的子图集中的子图个数等于阈值,则将刚刚处理完的子图集舍弃第一个子图,并按顺序向后增加一个子图,形成一个新的子图集,相当于将子图集的窗口向后滑动一个单位;若刚刚处理完的子图集中的子图个数小于阈值,则将刚刚处理完的子图集按顺序向后增加一个子图,形成一个新的子图集;相当于将子图集的窗口增加一个子图单位;
S7:由于现有的数据处理方法着重处理静态图或者增量式处理大规模静态图和数据流图(即边和结点不断增加的情况),没有考虑到边和结点随时间变动不仅会存在增加且会同时存在消除的情况,本发明中,考虑到动态图在数据处理的过程中会存在删除边或结点的情况,因此,在每次处理新的子图集时,需要判断是否需要重新生成正常模式,如果需要,则根据与步骤S2-S5相同的方法判定新的子图集中的异常子结构;如果不需要,则根据步骤S8-S10的方法判定新的子图集中的异常子结构;
本发明中,需要重新生成正常模式的判断标准为:步骤S6中,新的子图集中出现了移除边的情况,且d(Sdel,E)≥β/(1+ε)2
其中,β和ε均为人为设定的参数,Sdel为包括移除边数据节点的正常模式;
S8:从步骤S6中新增加的子图中分别找出若干个正常模式,并与此轮子图集中其它子图的正常模式整合出此轮子图集的基准模式;
S9:若步骤S8中的基准模式与步骤S6中刚刚处理完的子图集的基准模式相同,则根据相同的基准模式找到新增加的一个或两个子图中的可能异常子结构,并结合此轮子图集中其它子图的可能异常子结构找到此轮子图集中的异常子结构;
S10:若步骤S8中的基准模式与步骤S6中刚刚处理完的子图集的基准模式不同,则根据步骤S8中基准模式找到此轮子图集中所有子图的可能异常子结构,并从所有子图的可能异常子结构中找到异常子结构;
S11:重复步骤S6-S10,直到处理完最后一个子图。
本发明中,所述步骤S4及步骤S9-步骤S10中,所述可能异常子结构的判定方法为:
0<d(SA,E)<TD,且0≤P(SA|E,G)≤TP≤1
其中,d(SA,E)为可能异常子结构SA与基准模式E的差异值,TD为人为设定的可能异常子结构SA与基准模式E的最大差异,P(SA|E,G)表示子图G在基准模式E的压缩下可能异常子结构SA为异常子结构的概率,其值由贝叶斯公式计算而得,TP为人为设定的可能异常子结构SA为异常子结构最大概率。也即,若子图中的某个模式同时满足0<d(SA,E)<TD,且0≤P(SA|E,G)≤TP≤1,则可判定该模式为可能异常子结构SA。
由于异常子结构通常在一定范围内非常接近基准模式,但与基准模式不同,而且分值很小,所以所述步骤S5及步骤S9-步骤S10中,所述异常子结构的判定方法为:通过下述公式,找到取值最低的若干个可能异常子结构,作为异常子结构:
Score=d(SA,E)*P(SA|E,G)
也即,Score值整合了可能异常子结构SA与基准模式E的差异值以及可能异常子结构SA为异常子结构的概率,可能异常子结构与正常模式的差距越小,其结构越接近,越不容易被检测出来,为异常子结构的可能性越大,因此,Score越低表明SA为异常子结构的可能性越大。本发明中,可人为设定异常子结构的数量,如若设为一个,则找出最小的Score值对应的可能异常子结构SA,即为最后确认的异常子结构;如若设为两个,则找出最小的和次小的Score值对应的可能异常子结构SA,即为最后确认的异常子结构,依次类推。
为更形象具体地了解本发明的技术方案,下结合附图详细说明本发明的具体实施方式,其中,正常模式、可能异常子结构以及异常子结构的寻找方法已详述如上,故在具体实施例部分不加以累述。
图1为本发明的第一实施例的增量并行式动态图的结构异常检测方法检测流程图,如图1所示,本实施例中,设定阈值为5,具体处理方法为:
S1:将所有待处理的图数据划分为2000个子图。
S2:并行处理第1-第5个子图,分别发现若干个正常模式,各子图的正常模式标记为S1、S2、S3、S4、S5,本实施例中,S1、S2、S3、S4、S5仅用来分别表示第1、2、3、4、5个子图的正常模式,然而,在实际操作过程中,每个子图的正常模式可能不止一个,且各个正常模式也未必相同,但为了方便说明,第1个子图中的正常模式均以S1表示,同样的,第2-5个子图分别以S2、S3、S4、S5表示,下文出现的各个子图的正常模式均表示同样的含义,本发明不加以累述。
S3:根据正常模式S1、S2、S3、S4、S5判定前5个子图的基准模式E。
S4:根据基准模式E发现前5个子图中的可能异常子结构SA1、SA2、SA3、SA4、SA5。同于正常模式的表达方式,本实施例中,每个子图中发现的可能异常子结构可能不止一个,且每个都不相同,但为了方便说明,第1个子图中的可能异常子结构均以SA1表示,同样的,第2-5个子图中的可能异常子结构分别以SA2、SA3、SA4、SA5表示,下文出现的各个子图的可能异常子结构均表示同样的含义,本发明不加以累述。
S5:从可能异常子结构SA1、SA2、SA3、SA4、SA5中找出最可能的异常子结构,作为最后确定的异常子结构。
S6:由于阈值为5,第一个子图集已达到阈值,故处理第二个子图集时,仅将子图集向后移动一个子图单位,处理新的子图集:第2-第6个子图。
S7:经判断,第2-第6个子图中不存在删除边或结点的情况,因此,不需要对每个子图都生成正常模式,仅需要找出新增加的子图,也即第6个子图的正常模式S6,同样的,S6可以表示第6个子图中多个不同的正常模式。
S8:根据此轮子图集中的正常模式S2、S3、S4、S5、S6整合出基准模式E’。
S9:E’与E结构相同,根据E/E’找出第6个子图中的可能异常子结构SA6,并结合SA2、SA3、SA4、SA5找出异常子结构。
S10:继续将子图集向后移动一个子图单位,处理第3-第7个子图,经判断,第3-第7个子图中出现了删除边或结点的情况,且满足d(Sdel,E)≥β/(1+ε)2,故需要针对第3-第7个子图重新生成正常模式,此时的正常模式分别为S3’、S4’、S5’、S6’、S7。
S11:根据正常模式S3’、S4’、S5’、S6’、S7判断基准模式E1。
S12:根据基准模式E1发现第3-第7个子图中的可能异常子结构SA3’、SA4’、SA5’、SA6’、SA7。
S13:从可能异常子结构SA3’、SA4’、SA5’、SA6’、SA7中找出最可能的异常子结构,作为最后确定的异常子结构。
S14:将子图集继续后移一个单位,处理第4-第8个子图,按照上述方法,先判断是否需要重新生成正常模式,然后按照判断结果重复步骤S2-S5/S10-S13,或者重复步骤S7-S9,依次类推,直至处理完第1996-第2000个子图,找出整个图数据库的异常子结构。
图2为本发明的第二实施例的增量并行式动态图的结构异常检测方法检测流程图,如图2所示,本实施例中,设定阈值为6,具体处理方法为:
S1:将所有待处理的图数据划分为2000个子图。
S2:并行处理第1-第5个子图,分别发现若干个正常模式,各子图的正常模式标记为S1、S2、S3、S4、S5。
S3:根据正常模式S1、S2、S3、S4、S5判定前5个子图的基准模式E。
S4:根据基准模式E发现前5个子图中的可能异常子结构SA1、SA2、SA3、SA4、SA5。
S5:从可能异常子结构SA1、SA2、SA3、SA4、SA5中找出最可能的异常子结构,作为最后确定的异常子结构。
S6:由于阈值为6,第一个子图集没有达到阈值,故处理第二个子图集时,将子图集按顺序向后增加一个子图,处理新的子图集:第1-第6个子图。
S7:经判断,第1-第6个子图中不存在删除边或结点的情况,因此,不需要对每个子图都生成正常模式,仅需要找出新增加的子图,也即第6个子图的正常模式S6。
S8:根据此轮子图集中的正常模式S1、S2、S3、S4、S5、S6整合出基准模式E’。
S9:E’与E结构不同,则需要根据E’找出此轮子图集中所有子图的可能异常子结构SA1’,SA2’、SA3’、SA4’、SA5’、SA6,并结合SA1’,SA2’、SA3’、SA4’、SA5’、SA6找出异常子结构。
S10:由于第二个子图集已经达到阈值,故处理第三个子图集时,仅将子图集向后移动一个子图单位,处理新的子图集:第2-第7个子图。
S11:判断是否需要重新生成正常模式,然后按照判断结果重复步骤S2-S5,或者重复步骤S7-S9,依次类推,直至处理完第1995-第2000个子图,找出整个图数据库的异常结构。
为验证本发明的有益效果,发明人在真实的数据集上验证了本发明提供的算法的计算效率、准确率以及召回率,具体的,发明人从斯坦福大学SNAP项目中选取了三个数据集:无向图、有向图以及带标签的图进行算法验证,数据的详细信息如表1所示。
表1:数据详细信息
图3为本发明提供的检测方法的总体运行时间示意图(纵坐标表示运行时间的对数),如图所示,本发明将总体运行时间分为正常模式检测时间和异常子结构检测时间,从图中可以看出,正常模式检测需要花费大部分的时间,随着数据的边的数量的增加,运行的总体时间随着图的规模变大而呈现缓慢增长。
为了进一步验证本发明提出的增量式异常检测方法在图流数据上的有效性,我们把DPADS算法应用到合成数据集上。在此实验中,我们把原始图划分成100个小图,每个图包含大约20000条边。在初始化阶段,我们随机选取20(每个子图集包含的子图个数)个小图。选取20个小图的目的是为了得到初始化的正常模式和异常子结构,所以任意选取20个小图。然后并行处理他们,花费了40秒钟,每个小图得到3个正常的模式。在处理过程中即使小图采用顺序方式处理,总共花费486秒完成20个小图的正常模式检测。然后,对60个正常模式进行分析和整合,确定基准模式E。最后,根据基准模式E检测异常子结构SA,这一步骤花费156秒完成。在迭代阶段,我们也使用阈值20作为处理的窗口(把20个小图都放到内存中)。然后依照算法进行多次迭代。
实验结果表明,本发明的方法可以应用到大规模动态图中。本发明提出的方法在图流数据上检测到的异常子结构与在整个图上检测到的异常子结构是一致的,而在流数据上运行完成时间是3017秒(然而,使用现有的方法在整个图上检验时,花费为76356秒)。每个小图的运行时间如图4所示,加深的黑菱形为发现异常子结构的子图。
另外,数据结构的异常检测方法的重要指标是准确率和召回率,表2所示为计算准确率和召回率需要基本指标,其中,准确率=A/(A+B),召回率R=A/(A+C),图5为本发明提供的检测方法的准确率和召回率示意图,从图5可以看出:本发明提供的检测方法,在异常检测中,准确率P均值达到96%,即检测到异常子结构中,有96%都是事实上的异常子结构;由于本发明提供的算法针对动态图,首先对图进行划分,而且划分时按照时间或获取边的顺序,并没有考虑到图的连接性和子图的相关性,加上动态图随时间不断变化,正常模式也随之不断变化,召回率不可能达到100%,但本发明提供的检测方法,依然能够实现高达85%的召回率R均值,即85%的异常子结构都能检测到。
虽然本发明已利用上述较佳实施例进行说明,然其并非用以限定本发明的保护范围,任何本领域技术人员在不脱离本发明的精神和范围之内,相对上述实施例进行各种变动与修改仍属本发明所保护的范围,因此本发明的保护范围以权利要求书所界定的为准。
Claims (6)
1.一种增量并行式动态图的结构异常检测方法,其特征在于,包括如下步骤:
初始化阶段:
S1:将所有待处理的图数据划分为N*X个子图;
S2:并行处理第一个子图集中的N个子图,也即第1-第N个子图,每个子图发现若干个正常模式;
S3:根据发现的若干个正常模式判定基准模式;
S4:根据基准模式发现前N个子图中每个子图的可能异常子结构;
S5:从各可能异常子结构中找出最可能的异常子结构,作为最后确定的异常子结构;
迭代处理阶段:
S6:将刚刚处理完的子图集直接向后增加一个子图;或舍弃第一个子图,并按顺序向后增加一个子图,形成一个新的子图集;
S7:判断是否需要重新生成正常模式,如果需要,则根据与步骤S2-S5相同的方法判定新的子图集中的异常子结构;如果不需要,则根据步骤S8-S10的方法判定新的子图集中的异常子结构;
S8:从步骤S6中新增加的子图中分别找出若干个正常模式,并与此轮子图集中其它子图的正常模式整合出此轮子图集的基准模式;
S9:若步骤S8中的基准模式与步骤S6中刚刚处理完的子图集的基准模式相同,则根据相同的基准模式找到新增加的一个或两个子图中的可能异常子结构,并结合此轮子图集中其它子图的可能异常子结构找到此轮子图集中的异常子结构;
S10:若步骤S8中的基准模式与步骤S6中刚刚处理完的子图集的基准模式不同,则根据步骤S8中基准模式找到此轮子图集中所有子图的可能异常子结构,并从所有子图的可能异常子结构中找到异常子结构;
S11:重复步骤S6-S10,直到处理完最后一个子图。
2.如权利要求1所述的增量并行式动态图的结构异常检测方法,其特征在于:所述步骤S2及步骤S8中,正常模式的判定方法为最小描述长度方法,以最小化以下目标函数找到正常模式:
min M(S,G)=min{DL(G|S)+DL(S)}
其中,G表示所处理的子图,S为正常模式,DL(G|S)为使用正常模式S压缩后的子图G的描述长度,DL(S)为正常模式S的描述长度。
3.如权利要求1所述的增量并行式动态图的结构异常检测方法,其特征在于:所述步骤S4及步骤S9-步骤S10中,所述可能异常子结构的判定方法为:
0<d(SA,E)<TD,且0≤P(SA|E,G)≤TP≤1
其中,d(SA,E)为可能异常子结构SA与基准模式E的差异值,TD为人为设定的可能异常子结构SA与基准模式E的最大差异,P(SA|E,G)表示子图G在基准模式E的压缩下,可能异常子结构SA为异常子结构的概率,其值由贝叶斯公式计算而得,TP为人为设定的可能异常子结构SA为异常子结构最大概率。
4.如权利要求3所述的增量并行式动态图的结构异常检测方法,其特征在于:所述步骤S5及步骤S9-步骤S10中,所述异常子结构的判定方法为:通过下述公式,找到取值最低的若干个可能异常子结构,作为异常子结构:
Score=d(SA,E)*P(SA|E,G)。
5.如权利要求1所述的增量并行式动态图的异常检测方法,其特征在于:所述步骤S6中,若刚刚处理完的子图集中的子图个数等于阈值,则将刚刚处理完的子图集舍弃第一个子图,并按顺序向后增加一个子图,形成一个新的子图集;若刚刚处理完的子图集中的子图个数小于阈值,则将刚刚处理完的子图集按顺序向后增加一个子图,形成一个新的子图集。
6.如权利要求1所述的增量并行式动态图的结构异常检测方法,其特征在于:所述步骤S7中,需要重新生成正常模式的判断标准为:步骤S6中,新的子图集中出现了移除边的情况,且d(Sdel,E)≥β/(1+ε)2
其中,β和ε均为人为设定的参数,Sdel为包括移除边数据节点的正常模式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710042441.1A CN106919650A (zh) | 2017-01-20 | 2017-01-20 | 一种增量并行式动态图的结构异常检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710042441.1A CN106919650A (zh) | 2017-01-20 | 2017-01-20 | 一种增量并行式动态图的结构异常检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106919650A true CN106919650A (zh) | 2017-07-04 |
Family
ID=59454418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710042441.1A Pending CN106919650A (zh) | 2017-01-20 | 2017-01-20 | 一种增量并行式动态图的结构异常检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106919650A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109947814A (zh) * | 2018-08-21 | 2019-06-28 | 慧安金科(北京)科技有限公司 | 用于检测数据集合中的异常数据组的方法和设备 |
CN110389953A (zh) * | 2019-05-24 | 2019-10-29 | 中国科学院计算技术研究所 | 基于压缩图的数据存储方法、存储介质、存储装置和服务器 |
CN113987105A (zh) * | 2021-10-28 | 2022-01-28 | 南开大学 | 基于滑动窗口的标签感知图形流草图构建方法及应用 |
US11240118B2 (en) | 2019-10-10 | 2022-02-01 | International Business Machines Corporation | Network mixing patterns |
-
2017
- 2017-01-20 CN CN201710042441.1A patent/CN106919650A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109947814A (zh) * | 2018-08-21 | 2019-06-28 | 慧安金科(北京)科技有限公司 | 用于检测数据集合中的异常数据组的方法和设备 |
CN109947814B (zh) * | 2018-08-21 | 2021-03-30 | 慧安金科(北京)科技有限公司 | 用于检测数据集合中的异常数据组的方法和设备 |
CN110389953A (zh) * | 2019-05-24 | 2019-10-29 | 中国科学院计算技术研究所 | 基于压缩图的数据存储方法、存储介质、存储装置和服务器 |
CN110389953B (zh) * | 2019-05-24 | 2021-10-29 | 中国科学院计算技术研究所 | 基于压缩图的数据存储方法、存储介质、存储装置和服务器 |
US11240118B2 (en) | 2019-10-10 | 2022-02-01 | International Business Machines Corporation | Network mixing patterns |
CN113987105A (zh) * | 2021-10-28 | 2022-01-28 | 南开大学 | 基于滑动窗口的标签感知图形流草图构建方法及应用 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107493277B (zh) | 基于最大信息系数的大数据平台在线异常检测方法 | |
CN106101121B (zh) | 一种全网络流量异常抽取方法 | |
CN106919650A (zh) | 一种增量并行式动态图的结构异常检测方法 | |
CN107196953A (zh) | 一种基于用户行为分析的异常行为检测方法 | |
Yang et al. | Directed network community detection: A popularity and productivity link model | |
CN107249000B (zh) | 一种移动用户异常行为检测方法 | |
Nguyen et al. | Vasabi: Hierarchical user profiles for interactive visual user behaviour analytics | |
US11533373B2 (en) | Global iterative clustering algorithm to model entities' behaviors and detect anomalies | |
Bharti et al. | Intrusion detection using clustering | |
Kotanchek et al. | Symbolic regression via genetic programming as a discovery engine: Insights on outliers and prototypes | |
Lawrence et al. | Explaining neural matrix factorization with gradient rollback | |
CN108804635A (zh) | 一种基于属性选择的相似性度量方法 | |
CN112685272B (zh) | 一种具备可解释性的用户行为异常检测方法 | |
Wu et al. | Efficient nonparametric subgraph detection using tree shaped priors | |
CN110287237A (zh) | 一种基于社会网络结构分析高效社团数据挖掘方法 | |
Crawford et al. | Graph structure similarity using spectral graph theory | |
CN112949735A (zh) | 一种基于离群数据挖掘的液态危化品挥发浓度异常发现方法 | |
CN112765313A (zh) | 一种基于原文和评论信息分析算法的虚假信息检测方法 | |
CN114710344B (zh) | 一种基于溯源图的入侵检测方法 | |
Bajcsy et al. | Baseline pruning-based approach to trojan detection in neural networks | |
CN116366277A (zh) | 一种信息融合的网络安全态势评估方法 | |
Prerau et al. | Unsupervised anomaly detection using an optimized K-nearest neighbors algorithm | |
CN104462480A (zh) | 基于典型性的评论大数据挖掘方法 | |
Chen et al. | Towards Contiguous Sequences in Uncertain Data | |
CN112053741A (zh) | 荧光酶抑制剂筛选模型构建方法及荧光酶抑制剂筛选方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170704 |
|
RJ01 | Rejection of invention patent application after publication |