CN104899885B - 一种针对单个不确定图的频繁子图挖掘与优化方法 - Google Patents

一种针对单个不确定图的频繁子图挖掘与优化方法 Download PDF

Info

Publication number
CN104899885B
CN104899885B CN201510299659.6A CN201510299659A CN104899885B CN 104899885 B CN104899885 B CN 104899885B CN 201510299659 A CN201510299659 A CN 201510299659A CN 104899885 B CN104899885 B CN 104899885B
Authority
CN
China
Prior art keywords
subgraph
graphs
sample
graph
uncertain
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.)
Active
Application number
CN201510299659.6A
Other languages
English (en)
Other versions
CN104899885A (zh
Inventor
赵翔
陈帆
陈一帆
胡艳丽
汤大权
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201510299659.6A priority Critical patent/CN104899885B/zh
Publication of CN104899885A publication Critical patent/CN104899885A/zh
Application granted granted Critical
Publication of CN104899885B publication Critical patent/CN104899885B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/143Segmentation; Edge detection involving probabilistic approaches, e.g. Markov random field [MRF] modelling

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种针对单个不确定图的频繁子图挖掘与优化方法,包括:获取单个不确定图;枚举出单个不确定图的所有子图;指定部分蕴含图为样本图;多个检查点将样本图集合分割为多个部分样本图集合,并依次指定每个检查点;使用计算重用方法分别计算单个不确定图的被指定检查点覆盖的部分样本图集合中每个样本图的存在概率,并使用计算重用方法计算每个子图在被指定检查点覆盖的部分样本图集合中每个样本图上的期望支持度;根据每个子图在被指定检查点覆盖的部分样本图集合中每个样本图上的期望支持度与单个不确定图的每个样本图的存在概率,判定该子图是频繁子图、不是频繁子图、或不确定是不是频繁子图;输出所有频繁子图。

Description

一种针对单个不确定图的频繁子图挖掘与优化方法
技术领域
本发明涉及图挖掘技术,特别地,涉及一种针对单个不确定图的频繁子图挖掘与优化方法。
背景技术
不确定性在现实应用中,无论是对内源还是外源,都是一种固有的属性。例如,在一个合作社交网络中,利用目前掌握的信息,我们未必能明确断言比尔和马修两人具有很好的合作关系,通常我们使用概率来衡量这种合作关系的可能性。假设这种关系存在的概率为p,p的值由本领域专家通过可用信息人工确定,或者由信息抽取或生成规则自动产生。在大数据时代的今天,对于管理不确定数据有更为强烈的需求,因此目前出现了各种质量不一的数据。特别地,我们专注于不确定图,尤其是图的边上具有存在概率的不确定图。不确定图模型具有广泛的应用领域,除了社会网络,不确定图模型还被应用于通信网络,无线传感器网络,蛋白质交互网络以及生物学中的调控网络等。
另一方面,频繁模式挖掘作为数据挖掘领域高度关注的主题,一直持续了近十年,相关研究也取得了长足的进展,其中频繁子图引起了特别的研究兴趣。所谓频繁子图是指从多个小确定图的集合或者单个大确定图中发现的支持度不小于用户给定阈值的子图。频繁子图再刻画确定图的数据特征、分类、聚类以及建立索引方面具有重要作用。
虽然目前对于频繁子图及其在确定图上挖掘的方法已经具有很好的理解,但在不确定图上,这一问题变得更加有趣但也更少被研究。一个不确定图时特殊的边加权图,其中每条边(u,v)上的权重是其存在的概率。最近,研究工作致力于在多个小的不确定图的图集上挖掘频繁子图。但是,该问题在单个大型不确定图中虽然同等重要,因为现实生活中的大型网络越来越多地出现了不确定性——比如,在社会网络中一个人对另一个人的影响是具有概率的;在生物网络中的蛋白质交互情况也有一定测量误差——但现有技术在本方面是一片空白。
针对现有技术中缺乏针对单个不确定图的频繁子图挖掘与优化技术方案的问题,目前尚缺乏有效的解决方案。
发明内容
针对现有技术中缺乏针对单个不确定图的频繁子图挖掘与优化技术方案的问题,本发明的目的在于提出一种针对单个不确定图的频繁子图挖掘与优化方法,能允许针对单个不确定图进行频繁子图挖掘并优化挖掘算法,填补了本领域的技术空白。
基于上述目的,本发明提供的技术方案如下:
根据本发明的一个方面,提供了一种针对单个不确定图的频繁子图挖掘与优化方法,包括:
获取单个不确定图;
根据单个不确定图枚举出单个不确定图的所有子图;
在单个不确定图的所有蕴含图中指定部分蕴含图为样本图;
在样本图集合中设定多个检查点,多个检查点将样本图集合分割为多个部分样本图集合,并依次指定每个检查点;
使用计算重用方法分别计算单个不确定图的被指定检查点覆盖的部分样本图集合中每个样本图的存在概率,并使用计算重用方法计算每个子图在被指定检查点覆盖的部分样本图集合中每个样本图上的期望支持度;
根据每个子图在被指定检查点覆盖的部分样本图集合中每个样本图上的期望支持度与单个不确定图的每个样本图的存在概率,判定该子图是频繁子图、不是频繁子图、或不确定是不是频繁子图,若判定该子图是频繁子图或不是频繁子图则停止该子图的相关运算,若判定该子图不确定是不是频繁子图则继续指定下一个检查点并根据下一个被指定检查点覆盖的部分样本图集合重新进行判定直到每个检查点都被指定过,其中,对最末被指定的检查点覆盖的部分样本图集合进行判定时一定不会得出不确定的判定结果;
输出所有频繁子图。
其中,使用计算重用方法分别计算单个不确定图的被指定检查点覆盖的部分样本图集合中每个样本图的存在概率,并使用计算重用方法计算每个子图在被指定检查点覆盖的部分样本图集合中每个样本图上的期望支持度,为根据单个不确定图构造重用树,为单个不确定图的被指定检查点覆盖的部分样本图集合中每个样本图中的每条嵌入边构建反向索引,并根据重用树与反向索引分别计算单个不确定图的被指定检查点覆盖的部分样本图集合中每个样本图的存在概率与每个子图在被指定检查点覆盖的部分样本图集合中每个样本图上的期望支持度。
并且,根据单个不确定图构造重用树,为从单个不确定图上选取一根节点,根据一条嵌入边的存在与否生成第一层二叉树,再根据根节点的子节点上嵌入边的存在与否生成第二层二叉树,如此重复直到单个不确定图上所有节点与嵌入边的二叉树形式均被重用树包括。
另外,根据单个不确定图枚举出单个不确定图的所有子图包括:
从单个不确定图提取出多个蕴含图,每个蕴含图都是单个不确定图可能的存在方式;
分别计算每个蕴含图所包含的所有子图。
并且,提取出多个蕴含图的个数为2的单个不确定图中边的个数次幂。
并且,在单个不确定图的所有蕴含图中指定部分蕴含图为样本图,为在单个不确定图的所有蕴含图随机指定数个蕴含图为样本图,其中,样本图的数量与任一子图在单个不确定图的所有蕴含图的支持度最大值的平方成正比,与不置信度的自然对数成反比,与误差系数的平方成反比,与支持度阈值的平方成反比。
并且,使用计算重用方法分别计算单个不确定图的被指定检查点覆盖的部分样本图集合中每个样本图的存在概率,并使用计算重用方法每个子图在被指定检查点覆盖的部分样本图集合中每个样本图上的期望支持度包括:
根据单个不确定图中每条边的概率,计算出每个蕴含图的存在概率;
指定单个不确定图的所有子图中的一个;
分别计算被指定的子图在被指定检查点覆盖的部分样本图集合中每个样本图上的支持度;
根据每个样本图的存在概率、被指定的子图在每个样本图上的支持度,计算被指定的子图在被指定检查点覆盖的部分样本图集合中每个样本图的支持度;
继续从单个不确定图中指定下一个子图并计算其在被指定检查点覆盖的部分样本图集合中每个样本图上的支持度,直到单个不确定图的所有子图都被指定;
根据每个子图在被指定检查点覆盖的部分样本图集合中每个样本图上的支持度,计算每个子图在单个不确定图上的期望支持度。
并且,分别计算被指定的子图在被指定检查点覆盖的部分样本图集合中每个样本图上的支持度,为使用最大独立集法计算被指定的子图在被指定检查点覆盖的部分样本图集合中每个样本图上的基于最小像的支持度。
并且,根据每个子图在被指定检查点覆盖的部分样本图集合中每个样本图上的期望支持度与单个不确定图的每个样本图的存在概率,判定该子图是频繁子图、不是频繁子图、或不确定是不是频繁子图包括:
获取期望支持度阈值;
根据单个不确定图的每个样本图的存在概率,计算子图在所有支持度等于一恒定值的蕴含图上的聚合概率;
根据子图在所有支持度等于一恒定值的蕴含图上的聚合概率,计算子图在单个不确定图的所有蕴含图中期望支持度不小于该恒定值的聚合概率;
根据子图在单个不确定图的所有蕴含图中期望支持度不小于该恒定值的聚合概率,计算当前概率观察值与结果区间;
根据结果区间与期望支持度阈值判定子图是否为频繁子图,将所有结果区间上限大于期望支持度阈值、且结果区间下限大于期望支持度阈值与非误差系数的乘积的子图判定为频繁子图,将所有结果区间上限小于期望支持度阈值的子图判定为不是频繁子图,将所有结果区间上限大于期望支持度阈值、且结果区间下限小于期望支持度阈值与非误差系数的乘积的子图判定为不确定是不是频繁子图。
从上面所述可以看出,本发明提供的技术方案通过将单个不确定图划分为多个蕴含的确定图并将蕴含图视作确定图使用计算重用方法与计算剪枝方法抽样计算子图的期望支持度的手段,能在单个不确定图上使用频繁子图挖掘技术,填补了本领域的技术空白。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据本发明实施例的一种针对单个不确定图的频繁子图挖掘与优化方法的流程图;
图2为根据本发明实施例的一种针对单个不确定图的频繁子图挖掘与优化方法中,单个不确定图、确定图与子图的一个实施例;
图3为根据本发明实施例的一种针对单个不确定图的频繁子图挖掘与优化方法中,根据布尔表达式获得的单个不确定图及其子图的一个实施例;
图4为根据本发明实施例的一种针对单个不确定图的频繁子图挖掘与优化方法中,单个不确定图的两个样本图及其重用树的一个实施例;
图5为根据本发明实施例的一种针对单个不确定图的频繁子图挖掘与优化方法中,单个不确定图及其两个子图在算法剪枝中一个反直觉的实施例;
图6为根据本发明实施例的一种针对单个不确定图的频繁子图挖掘与优化方法中,输出频繁子图正确率随置信度阈值与非误差系数在CIT上变化的柱状图;
图7为根据本发明实施例的一种针对单个不确定图的频繁子图挖掘与优化方法中,三种不同算法在CIT与COL上的运行时间折线图;
图8为根据本发明实施例的一种针对单个不确定图的频繁子图挖掘与优化方法中,两种不同算法在CIT与COL上的运行样本量柱状图;
图9为根据本发明实施例的一种针对单个不确定图的频繁子图挖掘与优化方法中,fanta与baseline算法耗时随非误差系数在CIT与COL上变化的运行时间折线图;
图10为根据本发明实施例的一种针对单个不确定图的频繁子图挖掘与优化方法中,fanta与baseline算法耗时随置信度阈值在CIT与COL上变化的运行时间折线图;
图11为根据本发明实施例的一种针对单个不确定图的频繁子图挖掘与优化方法中,fanta算法耗时随不确定因素在COL上变化的运行时间折线图;
图12为根据本发明实施例的一种针对单个不确定图的频繁子图挖掘与优化方法中,fanta算法耗时随数据集大小与数据集密度在COL上变化的运行时间折线图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进一步进行清楚、完整、详细地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
一个确定图G是一个元组(VG,EG,lGG),其中,VG是节点集合, 是边的集合,lG:VG∪EG→ΣG是为节点和边赋予标签的函数。|VG|和|EG|分别表示G中节点和边的数量。为了描述简便,我们假设图是无向的,且没有自循环和多重边。但是,本方法可以很容易的被拓展到具有多重边的有向图。
如果存在单射f:Vg→VG同时满足以下两个条件:
(1)
(2)
我们就用表示一个子图g同构于确定图G。我们称g是G的子图,G是g的超图,f(g)是g在G中的一个嵌入。如果g是g′的直接超图,那么且|Eg|=|Eg′|+1。直接超图是指仅比子图多一条边的超图。
对于以及支持度阈值τ,假设存在一个函数来衡量g在G中的支持度,那么最直接的想法是计算g在G中的同构次数。然而,该支持度计算方法不具有反单调性。反单调性对于开发能够有效剪枝搜索空间的算法是十分关键的,如果没有此性质,则不得在整个空间进行穷举搜索。因此,目前的研究提出了很多具有反单调性的支持度计算法方法,包括最小映射法(MI),有害重叠法(HO),以及最大独立集法(MIS)。这些计算方法都是基于子图同构,但对延生的重叠兼容性有所不同,而导致计算复杂度不同。特别的,MI是唯一一个可以高效计算的方法,而HO和MIS都涉及解决NP完全的问题;MI得到的结果是HO/MIS得到结果的超集,因此,其结果可以从MI的结果通过进一步计算得到。因此,接下来我们使用MI作为支持度计算的标准,然而算法只需要简单改变即可拓展到另外两种计算方法。
考虑从g到G的一个子图同构集合F={f}。F(v)表示{v′},其中对于每个v′,存在映射f将v∈Vg映射到v′∈VG。基于最小像的支持度表示为 下文中“支持度”是“基于最小像的支持度”的缩写。
图2示出了确定图G和子图g,该图建模了合作社交网络,其中节点表示人,边表示合作关系。每个人的研究领域作为标签,即Bio表示生物学家;为了图示的清晰,边的标签被省略了。容易发现在g和G之间有三个同构,分别是(u1,u2)到(v1,v2),(v3,v2)和(v3,v4)。结果是sup(g,G)=min{2,2}=2。
虽然在确定图上子图的重要性由支持度进行衡量,但此概念在不确定图上没有意义,因为图结构中存在概率,包含关系变得模糊或者不确定.现有的工作在多个小的不确定图的图集上定义了期望支持度,该定义计算不确定图来自所蕴含的确定图中支持度的贡献,只要当前子图被包含了一次.扩展此概念,我们定义单个大的不确定图上期望支持度为在所有可能图上支持度的聚合值,即支持度在所有由不确定图蕴含的确定图上的概率分布.子图超过一个给定阈值被认为是频繁的.由于定义的偏移,目前在多个小不确定图的图集上的算法不再适用于单个不确定图.我们提出了一个高效的具有精度保证的解决方案,解决了基于边的概率和基于点的支持度计算。
根据本发明的实施例,提供了一种针对单个不确定图的频繁子图挖掘与优化方法。
如图1所示,根据本发明的实施例提供的针对单个不确定图的频繁子图挖掘与优化方法包括:
步骤S101,获取单个不确定图;
步骤S103,根据单个不确定图枚举出单个不确定图的所有子图;
步骤S105,在单个不确定图的所有蕴含图中指定部分蕴含图为样本图;
步骤S107,在样本图集合中设定多个检查点,多个检查点将样本图集合分割为多个部分样本图集合,并依次指定每个检查点;
步骤S109,使用计算重用方法分别计算单个不确定图的被指定检查点覆盖的部分样本图集合中每个样本图的存在概率,并使用计算重用方法计算每个子图在被指定检查点覆盖的部分样本图集合中每个样本图上的期望支持度;
步骤S111,根据每个子图在被指定检查点覆盖的部分样本图集合中每个样本图上的期望支持度与单个不确定图的每个样本图的存在概率,判定该子图是频繁子图、不是频繁子图、或不确定是不是频繁子图,若判定该子图是频繁子图或不是频繁子图则停止该子图的相关运算,若判定该子图不确定是不是频繁子图则继续指定下一个检查点并根据下一个被指定检查点覆盖的部分样本图集合重新进行判定直到每个检查点都被指定过,其中,对最末被指定的检查点覆盖的部分样本图集合进行判定时一定不会得出不确定的判定结果;
步骤S113,输出所有频繁子图。
其中,使用计算重用方法分别计算单个不确定图的被指定检查点覆盖的部分样本图集合中每个样本图的存在概率,并使用计算重用方法计算每个子图在被指定检查点覆盖的部分样本图集合中每个样本图上的期望支持度,为根据单个不确定图构造重用树,为单个不确定图的被指定检查点覆盖的部分样本图集合中每个样本图中的每条嵌入边构建反向索引,并根据重用树与反向索引分别计算单个不确定图的被指定检查点覆盖的部分样本图集合中每个样本图的存在概率与每个子图在被指定检查点覆盖的部分样本图集合中每个样本图上的期望支持度。
并且,根据单个不确定图构造重用树,为从单个不确定图上选取一根节点,根据一条嵌入边的存在与否生成第一层二叉树,再根据根节点的子节点上嵌入边的存在与否生成第二层二叉树,如此重复直到单个不确定图上所有节点与嵌入边的二叉树形式均被重用树包括。
另外,根据单个不确定图枚举出单个不确定图的所有子图包括:
从单个不确定图提取出多个蕴含图,每个蕴含图都是单个不确定图可能的存在方式;
分别计算每个蕴含图所包含的所有子图。
并且,提取出多个蕴含图的个数为2的单个不确定图中边的个数次幂。
并且,在单个不确定图的所有蕴含图中指定部分蕴含图为样本图,为在单个不确定图的所有蕴含图随机指定数个蕴含图为样本图,其中,样本图的数量与任一子图在单个不确定图的所有蕴含图的支持度最大值的平方成正比,与不置信度的自然对数成反比,与误差系数的平方成反比,与支持度阈值的平方成反比。
并且,使用计算重用方法分别计算单个不确定图的被指定检查点覆盖的部分样本图集合中每个样本图的存在概率,并使用计算重用方法每个子图在被指定检查点覆盖的部分样本图集合中每个样本图上的期望支持度包括:
根据单个不确定图中每条边的概率,计算出每个蕴含图的存在概率;
指定单个不确定图的所有子图中的一个;
分别计算被指定的子图在被指定检查点覆盖的部分样本图集合中每个样本图上的支持度;
根据每个样本图的存在概率、被指定的子图在每个样本图上的支持度,计算被指定的子图在被指定检查点覆盖的部分样本图集合中每个样本图的支持度;
继续从单个不确定图中指定下一个子图并计算其在被指定检查点覆盖的部分样本图集合中每个样本图上的支持度,直到单个不确定图的所有子图都被指定;
根据每个子图在被指定检查点覆盖的部分样本图集合中每个样本图上的支持度,计算每个子图在单个不确定图上的期望支持度。
并且,分别计算被指定的子图在被指定检查点覆盖的部分样本图集合中每个样本图上的支持度,为使用最大独立集法计算被指定的子图在被指定检查点覆盖的部分样本图集合中每个样本图上的基于最小像的支持度。
并且,根据每个子图在被指定检查点覆盖的部分样本图集合中每个样本图上的期望支持度与单个不确定图的每个样本图的存在概率,判定该子图是频繁子图、不是频繁子图、或不确定是不是频繁子图包括:
获取期望支持度阈值;
根据单个不确定图的每个样本图的存在概率,计算子图在所有支持度等于一恒定值的蕴含图上的聚合概率;
根据子图在所有支持度等于一恒定值的蕴含图上的聚合概率,计算子图在单个不确定图的所有蕴含图中期望支持度不小于该恒定值的聚合概率;
根据子图在单个不确定图的所有蕴含图中期望支持度不小于该恒定值的聚合概率,计算当前概率观察值与结果区间;
根据结果区间与期望支持度阈值判定子图是否为频繁子图,将所有结果区间上限大于期望支持度阈值、且结果区间下限大于期望支持度阈值与非误差系数的乘积的子图判定为频繁子图,将所有结果区间上限小于期望支持度阈值的子图判定为不是频繁子图,将所有结果区间上限大于期望支持度阈值、且结果区间下限小于期望支持度阈值与非误差系数的乘积的子图判定为不确定是不是频繁子图。
下面根据具体实施例进一步阐述本发明的技术方案。
一个不确定图是一个元组Gu=(G,P),其中G是一个确定图,P:EG→(0,1]是一个概率函数,将每条边e映射为一个存在概率,由P(e)表示,e∈EG。G是主干图。
一旦确定了每条边的存在情况,由Gu可以蕴含得到确定图Gi,称为蕴含图。因此一个不确定图Gu总共蕴含可能的确定图,每个蕴含图都是Gu可能的存在方式。
我们考虑的模型假设边之间的存在概率是相互独立的,这种模型有很多实际的应用,那么,Gu蕴含Gi的概率,或者Gi的存在概率,可以通过包括或不包括边来计算:
既然经典的关于支持度的概率在不确定图上变得很有意义,我们求助于期望支持度,即在蕴含图上的概率分布情况。
我们将子图g在不确定图Gu上的期望支持度定义为:
其中,Gi是Gu的蕴含图。给定期望支持度阈值σ,子图g如果是频繁的,那么g在Gu中的期望支持度将不小于阈值,即esup(g,Gu)≥σ。
对每个Gu的蕴含图esup(g,Gi)≤esup(g′,Gi)。不等式在对i进行求和后仍然成立。因此,esup(g,Gu)≤esup(g′,Gu),期望支持度是反单调的。
在图2中,我们为G的每条边赋予一个存在概率并构造一个不确定图Gu,其中存在概率建模两个人合作关系的紧密程度。此时,G是主干图,同时Gu有8个蕴含图,我们在上文中已经计算出sup(g,G)=2,因此照此将所有来自蕴含图的值聚合起来,可以计算出esup(g,Gu)=1.12。如果给定的支持度阈值σ=1,则esup(g,Gu)≥1,g是频繁子图。
给定一个不确定图Gu=(G,P)和一个期望支持度阈值σ,单个不确定图上频繁子图挖掘问题是指发现所有期望支持度不小于给定阈值的子图g,即
我们在期望支持度的定义中给出了频繁子图的语义。假设sup(g,Gu)=10,Gr表示一个随机独立选择的蕴含图,那么我们有理由期望g在Gr中至少有10次不重复的出现。根据现有的分析,基于期望语义的频繁子图适合于在不确定图中进行主题发现。当不存在二义性时,在后文中省略领域Gu,即表示为sup(g)。
我们提出了一个枚举—评价的算法,取名为fanta(frequent subgraph miningon uncertain graphs)。fanta算法先枚举所有可能的候选子图,再对每个子图计算期望支持度,然后决定是否将其作为结果输出。任何利用了Apriori性质的枚举策略都可以使用。Apriori性质陈述的是,不频繁子图的超图也不可能是频繁的。特别地,不确定图中所有子图可以被组织为一个有根的有向无环图(DAG),其中节点代表候选子图(根表示为空)。DAG中从g′到g的一条弧表示g′是g的直接超图。我们从频繁的边开始,每次将一条新的边加到频繁子图中,枚举所有可能子图,因此可以在DAG的第n层找到包含n条边的子图。为了避免重复枚举同时保证完备性,我们使用方法gSpan给每个子图增加了词典顺序。
然而,通过比较期望支持度和阈值,决定一个被枚举出的子图是否是频繁的,其最简单的方式是产生所有蕴含图,计算并聚合子图在所有蕴含图上的支持度,得到期望支持度,再与支持度阈值进行比较。但这种方法因为会产生大量蕴含图,加上支持度计算的高复杂度,因此对终端用户而言是不可接受的。为了达到更好的运行性能,我们尝试所有可能,在可接受时间内返回结果。
我们已经发现,使用定义计算期望支持度复杂度相当高,因为Gu存在个蕴含图。对每个候选子图,我们需要计算在指数级的确定图上计算其支持度,其中频繁涉及具有高昂时间代价的子图同构检测。我们研究这一问题并通过一个高效的算法来降低计算复杂度。
我们首先用另一种方式给出期望支持度的计算。假设P(sup(g)=j)表示子图g在所有支持度等于j的蕴含图上的聚合概率,即
其中,Λj(g)={Gi|sup(g,Gi)=j}。
因此有
其中,Ms=sup(g,G)是g在Gu所有蕴含图中最大的支持度。
我们进一步定义,Pj(g)为g在Gu的蕴含图中支持度不小于j的聚合概率,即
其中,Δj(g)={Gi|sup(g,Gi)≥j}。
同时,对esup(g)公式右端展开可得
因此又有
我们还注意到Pj(g)的两个性质:(1)Pj(g)≤Pj(g′),其中,(2)Pj(g)≤Pj′(g),其中,1≤j′≤j。
我们可以证明,计算是#P难的,其中是一个整型常数。可以将DNF计数问题在多项式时间内归约为此问题,以此证明该问题是#P难的。
考虑一个析取范式的一阶逻辑表达式(DNF)D=C1∨C2∨…∨Cm.Ci(i∈[1,m])的形式为l1∧l2∧…∧lk,其中,lj(j∈[1,k])是{x1,x2,…,xn}中的布尔变量。DNF计数问题是计算有多少种对变量的赋值可以满足D。设P(xi)表示xi被赋值为真的概率,P(D)是随机一组对变量的赋值满足D的概率,给定一个前述实例,下面构造了在Gu中计算的问题。
我们构造一个不确定图Gu,其节点集合为V1∪V2∪V3,其中:
(1)
(2)
(3)
其中,V1中节点的标签为α,V2∪V3中为β。边的构造方法如下:
(1)在之间增加一条边,j∈[1,k],存在概率为1;
(2)如果D中xi包含在Ci中,则在(ci,uj)增加一条概率为1的边;
(3)对每个xi∈{x1,x2,…,xn},在(ui,vi)之间增加概率为P(xi)的一条边,所有Gu的边标签为γ。
两个问题之间的关联性为:
每个对{x1,x2,…,xn}的真值赋值π一对一对应于Gu的一个蕴含图Gi,即边(ui,vi)存在当且仅当xj赋值为真,每个真值赋值π的概率等于显然,在所有蕴含图Gi中,因此,如果一个真值赋值π满足D,当且仅当g在蕴含图Gi中的支持度超过因此
综上可知,计算是一个#P难问题。类似地,可以证明计算esup(g)也是#P难的。
图3示出的是布尔表达式D按照上述构造方法,得到的不确定图Gu和子图g,其中,D=(x1∧x2∧x3)∨(x2∧x3∧x4),x1,x2,x3,x4被赋值为真的概率分别是P(x1),P(x2),P(x3),P(x4)。
由于计算子图支持度问题具有#P难的时间复杂度,我们提出了一个近似评价算法,其误差为ε。作为近似算法,理想的结果是能够返回所有频繁的子图(真正);为了满足这一要求,则结果集中也会有不频繁的子图(假正)。根据这一目的,我们输出一个闭区间该区间包含esup真实值,然后对于子图g的支持度与支持度阈值σ之间关系的以下不同情况进行处理:
Case 1:如果不输出g,因为esup(g)<σ是确定的;
Case 2:如果esup(g)≥(1-ε)σ且则输出g,因为esup(g)≥(1-ε)σ是肯定的,而且很有可能esup(g)≥σ;
Case 3:如果esup(g)<(1-ε)σ,则不能决定是否输出g,因为我们不能决定是否esup(g)≥σ或者esup(g)<(1-ε)σ。
Case 3并不是我们想要的,因为Case 3我们无法决定。然而,我们观察到如果区间的宽度在εσ范围内,则Case 3不会出现。因此,通过限制区间宽度最大为εσ,则通过来估计esup是足够的,因为此时只有Case 1和Case 2会出现。这对于算法设计很重要,我们的算法依赖此来决定是否将g作为结果输出。
我们的近似算法基于蒙特卡洛方法。通过我们首先计算Pj(g)的近似值,其中,j∈[1,Ms];然后聚合该值得到区间为了保证区间不会大于εσ,我们要求每个Pj(g)近似值的绝对误差不会超过εσ/Ms。此要求来自一类随机算法——随机近似模式,可以提供精度保证。
给定一个置信系数δ∈[0,1],以及一个绝对误差范围ε′,我们可以使用由随机近似模式得到的近似值来估计p,如果其中,1-δ是置信程度。为了在δ和ε′的条件下近似得到Pj(g),我们依靠一个基于霍夫丁不等式的算法。
假设X1,X2,…,Xn是独立同分布的伯努利随机变量,其中Xi=1的概率为p,则有下述不等式成立:
n个样本观察值的平均可以提供一个具有精度保证关于p的近似,为提供置信度1-δ和绝对误差ε′=εσ/2Ms需要的样本量大小为:
算法1为评价一个子图的过程的封装。输入一个子图g,不确定图Gu误差系数ε以及实数δ;输出一个布尔值,表示g是否是频繁的。
算法第1行为Pj(g)的观察值分配一个空的数组,并计算Ms,即g在所有蕴含图中最大的支持度,也即在Gu的主干图G中的支持度,其中嵌入(embedding)被记录下来,并以其ID进行标识。第2行初始化变量,以及抽样次数N。接着,我们应用蒙特卡洛方法。第3行收集N个随机抽取的蕴含图,或者Gu的样本图Gi。注意到“样本图”与“蕴含图”是不一样的,因为两个样本图可能对应于同一个蕴含图。一个小的优化是,不用抽样图中所有的边,而是只考虑嵌入边,即εm={ei|ei∈F(g)},其中F是g到G同构的集合,i∈[1,|εm|]。这样便缩小了概率空间,而且相对在整个不确定图上进行抽样而言,并不影响正确性。我们仍然用Gu的样本来表示,虽然只包含嵌入边(部分边),第4-7行计算g在每个Gi上的支持度,并聚合对应的概率值即增加观察概率,或者Pj(g)的近似值(如果j不大于sup(g,Gi)的话)。在浏览了所有样本图后,第9行通过函数EvaluateSup评价支持度的近似值.
函数EvaluateSup工作流程为:输入Pj(g)的观察概率值P[j]、整数x,并输出Case1或者Case 2(Case 3不应该出现)。特别地,当前概率观察值输出结果在之间。根据区间与支持度阈值σ之间的关系作出决定。
证明,只要样本量足够,所有输出子图满足给定误差范围,算法1就是正确的。另一方面,由于在子图g增长的过程中存储了其嵌入(embedding),可以在O(|F(g)||Vg|)的时间复杂度下计算Ms,其中F(g)是g嵌入(embedding)的集合;接着,我们执行蒙特卡洛仿真,计算支持度和概率的复杂度分别为O(|F(g)||Vg|)和O(|Eg|)。因为总的抽样样本数量复杂度不超过则算法1的总复杂度是既然时间复杂度是关于的多项式级,算法1属于完全多项式随机近似模式(FPRAS),该模式可以同时提供高效性和高准确度。
实现基于蒙特卡洛支持度评价的一种直观方式是在每个样本图中计算子图的支持度,并聚合观察概率。这种方式会比较耗时,因此我们考虑可能的加速方法。
图4示出的是图2中不确定图Gu的两个样本图G′和G″,以及G′和G″的重用树“DM-Bio”。首先,在计算后。我们可以进一步考虑边e3来计算另外。如果一个p的嵌入(embedding)存在于G″中,我们可以确定G′也包含了此嵌入而不需要额外的计算。最后,为了算出sup(p,G″),我们构造了一个数据结构:
可增加一个新的列(v3-v4),用于计算sup(p,G′)。
对于图4中的两个样本图存在三种可以重用的计算:
(1)计算样本图的存在概率;
(2)测试一个嵌入是否存在;
(3)计算支持度。
我们可以将此计算重用的思想泛化到多个样本图的情况,此时,样本图之间的包含关系并不需要满足。
对于第(1)种和第(2)种计算,我们首先要构造一个二叉重用树,其中所有样本图都是树的叶节点。假设嵌入边有一种关于其ID的线性顺序,则可以得到传统的树的结构。二叉树的深度为|εm|,在深度为i的所有分支决定于是否包含边ei。换言之,根的深度为1,其左分支nl是一棵包含有e1这条边所有样本图的子树的根,而右分支nr包含剩下的不含e1这条边所有样本图子树的根。这个分支过程从e1到εm中最后一条边,最终得到叶节点。因此我们可以在叶节点为每个样本图找到一个对应的位置。
我们不需要产生整棵树。我们每计算了一个样本图,就存储包含此样本图的一个分支。我们采用如下方法产生样本图,并构造整个树:在根节点,对每个样本图Gi,我们随机决定它是去左分支nl还是右分支nr,左分支、右分支分别由left边和right边连接。接着,如果nl不为空,则将nl在树上保存下来,接着,随机决定样本图的去向;如果nl是空,则停止此分支继续增长。对于nr也是同样的处理过程,当所有的样本图都到达叶节点时,整个迭代过程结束。在增长过程中,每个样本图的存在概率在增长过程中作为一个副产品计算得到,同时计算重用达到最大。
之后,我们计算每个样本图的支持度。第一步是决定每个样本图包含的嵌入(embedding)。为此,我们对每条嵌入边维护一个反向索引,每条嵌入边作为一个条目,那些包含这条边的嵌入(embedding)作为对应的记录。该索引便于发现那些因为不存在嵌入边而缺少的嵌入,而该索引在主干图上计算支持度时建立,且开销较小。根据重用树的构造,进入右分支意味着一条边e不存在,因此包含这条边的嵌入也不存在;而进入左分支并不影响嵌入集合。
对于一个样本图,我们从叶节点追踪到根节点,并记录下经过的right边。整个嵌入集合减去那些一路上遇到的right边对应的嵌入即为考虑的样本图。另外,为了能计算重用,我们在处理每个样本图时,都会记录树节点上的中间结果。接着,我们从最低父节点开始,增量式地进行计算,即从叶节点到根节点路径上第一个已经被处理过的节点开始,而不是从根节点开始。
在图4示出的实施例中,右边的树是从G′和G″构造的部分重用树,其中n1是根,n4(或者n5)是叶节点,对应G′(或者G″)。在处理完G′后,我们在节点n3有嵌入集合{v1-v2,v3-v2,v3-v4},该集合可以包含于任意在此分支后的样本图。接着,由于不存在边e3,我们从反向索引上获取到那些不再包含的嵌入,即{v3-v4}。然后我们将其删除,得到G″包含的嵌入集合{v1-v2,v3-v2}。
接下来,我们以串行的方式进行第(3)种计算的重用。对于两个样本图G′和G″,我们首先描述怎样计算sup(g,G′)。对每个包含在G′中的嵌入,我们将其对应的点排成一行行。注意到由于我们已经获得了同构映射,因此该操作比一般情况要简单和迅速得多。特别地,对于一个点vg,我们利用一个映射来记录——G′中每个嵌入点作为键,该点在所有嵌入中出现次数作为其值。当我们遇到一个嵌入以u作为vg嵌入点时,则对u对应于vg在映射中的值增加1。在对所有嵌入中的节点进行计数后,我们可以通过获取所有映射中最小集合的值,得到sup(g,G′)。
为了在计算G″时重用之前的中间结果,而不是从头开始建立这些映射,我们首先去除掉不包含在G″中的嵌入,减少其在映射中对应的值,然后增加之前没有包含在G′中的嵌入,并增加对应的值。之后,我们可以得到sup(g,G″)。
对增加或减少一个单位的开销进行建模,固定为c;获取最小映射的集合大小的开销为c′。给定一系列样本图Gi,每个包含一个嵌入的集合其中i∈[1,N],从头开始计算支持度的开销为|Fi|·c+c′。我们定义:
从Gi(或Gj)到Gj(或Gi),支持度计算的开销是(或),并且如果则对于Gj,从头开始计算开销更小。为了最大化计算重用,我们将此问题进行形式化地描述如下:
给定一系列样本图Gi∈Ω,每个包含一个嵌入的集合其中,i∈[1,N],从Gi到Gj的计算开销为找到一个计算序列使得开销最小,满足每个图只被处理过一次。
该问题是NP难的。我们为每个样本图构造一个比特数组,每个比特对应一个F中的嵌入,即数组的维度为|F|。如果样本图包含该对应的嵌入,则比特位设为1,相反则设为0。这种情况下,两个图之间的开销可以通过计算二进制串之间的汉民距离比较容易获得。接着我们使用一种启发式的计算序列——从左到右对应样本图在叶节点的位置。直观的想法是两个连续叶节点(如图4中的G′和G″),通常距离较小,因此增量计算复杂度相对小。
我们使用算法2将所有3中重用计算集合在一起如下:
为了将算法2整合到基本算法中,我们可以将算法1中第4-8行替换为“P←ShareCompTree(g,Ω)”,使得算法2在基本算法中生效,修改后的算法1可以执行基于计算重用的子图判定。
除了上述的计算重用方法之外,对支持度评价的过程设计也可以加入计算剪枝来进行优化。
虽然需要样本来保证算法1中的Case 3不会出现,但我们实际上可以在确保区间宽度之前决定g。在一些情况下,采样量未达到N时Case 1或者Case2可能就已经被满足,此时不需要继续采样计算,直接给出判定即可。一个极端的使用该思想的方法是,在每次计算样本图后都进行检查,这样导致增加的开销反而大于减少的开销。为了在两方面达到最好的平衡,我们引入一个定期检查的检查点机制,这样提前结束的情况可以在检查点发生,详见算法3。
检查点是一个给定的样本大小,在处理过的样本数量达到检查点时进行检查。假设我们检查r次,当所有样本大小分别为c1,…,ck,…cr,其中0=c1<…<ck<…<cr=N。每到达一个检查点,我们就计算ck+1-ck个样本,特别地,第3-4行从样本空间Ω中获取样本图。接着,在第5行计算通过Ω′计算Pj(g)的观察概率。最终,第6行通过函数EvaluateSup决定是否输出子图。注意,在这里Case 3在没有达到最终检查点之前都是合法的。
为了将此机制引入算法框架,我们将算法1中的第4-12行替换为算法3。注意到对每个子图,重用树即其他数据结构在整个检查点过程中都是缓存下来的。下面我们将介绍此方法的细节及检查点的选择。
在EvaluateSup最简单的实现中,根据绝对误差可以得到一个区间。然而,绝对误差可能会特别大,特别是当样本比较少的时候。相反的,这就给了我们提示,即如果有一个更紧的上界来辅助决策,那么评价性能可以进一步提升。事实上,我们试图考虑图结构性质,来发现更紧的上界,而不是用绝对误差直接作为上界。
一个esup(g)的上界可以用来对子图进行剪枝。如果则可以确定g是不频繁的。通过Apriori性质,Pj(g)由Pj(g′)进行约束,其中且|Eg|=|Eg′|+1。然而该不等式比较简单,我们是否可以增强其剪枝效果?一种直接的想法是为Pj(g′)乘上Pj(e),其中e是g新增的边。然而,这种想法是不正确的。
考虑如图5所示的不确定图Gu、子图g和g′。注意对于g和g′,在所有蕴含图中,只有主干图G可以提供支持度为4,因此由于其中e=g\g′,P4(g)>P4(g′)·P4(e)。
虽然该结果违反直觉,我们认为这是因为在单个不确定图上基于节点的支持度计算的特殊约束。然而在很多情况下我们还是可以利用剪枝规则。对于如图5所示的两个子图g和g′,其中g是g′的直接超图,且满足 我们已知其中,Δj(g)={Gi|sup(g,Gi)≥j},Gi是Gu的蕴含图;假设 其中Δj(g′∧e)={Gi|sup(g,Gi)≥j∧sup(e,Gi)≥j},根据Apriori性质,因此Pj(g)≤Pj(g′∧e)。另外因为则sup(g′,Gi)≥j与sup(e,Gi)≥j是相互独立的,则Pj(g′∧e)=Pj(g′)Pj(e),因此有不等式Pj(g)≤Pj(g′)·Pj(e)成立。
为了应用剪枝规则,我们定义一个指示变量:
特别地,当e不同于g′中所有边时,I=1意味着我们可以利用更加紧的上界Pj(g)≤Pj(g′)·Pj(e),否则使用基于Apriori性质的界。
esup(g)受以下等式所约束:
其中,g是g′的直接超图,e是独特的边。这里“独特”是指不存在另一条边e′∈Eg′具有相同的标签。这样,我们可以推到出一系列上界 满足因此,对于x有很多种选择来应用此剪枝规则。虽然很多剪枝规则都可以用,但剪枝效果却因为界紧的程度不同而差别很大。
注意到该上界需要Pj(g′)以及Pj(e),但其真实值都是未知的。幸运的是,它们的观察值是可得到的。特别地,前者在这之前计算得到,后者则可以提前计算并全局存储。接着,我们可以用观察概率值Pj(g′)和Pj(e)并加上其绝对误差,值得注意的是如果因为样本量不够大导致误差ε′足够大,都会很大,限制了剪枝效果。因此,我们需要保证的精度来提供好的剪枝效果。
由于Pj(g)≤Pj-1(g),Pj(g)本质上是被min{Pj(g′)·Pj(e),Pj-1(g)}所约束,因此剪枝效果还可以进一步提升。
依赖于何时执行剪枝,我们提供一个评价过程,称为敏锐评价,如算法4所示。“敏锐”是指该评价方法总是尽早过滤掉不频繁的子图,为了利用这个技术,我们将算法3第6行替换为“switch PruneEval(P,k)do”。
算法4对于所有频繁子图,为了保证绝对误差不超过可能抽样到最大次数。换言之,结果是:
(1)如果g是频繁的,那么它和算法1加上检查点机制是一样的;
(2)如果是不频繁的,那么样本量大小将被极大减少。
在实际数据中,不频繁的子图比频繁子图更多。
值得注意的是这一系列上界碰巧为检查点提供很好的选择。更准确的是,我们可以保证在εσ范围内当应用Pj(g)≤Pj(g′)·Pj(e)提供的上界。接着,每个上界的样本大小刚好提供了检查点,即即我们总共抽样Ms次,而其相对应的绝对误差分别为
我们设计了实验来验证算法的可行性。
所有评价的算法都使用C++,并提供STL支持。特别的,首先实现了不包含算法重用与算法剪枝的算法框架,命名为基本算法;在基础算法之上,实现提出的优化技术。我们选择亚马逊EC2作为标准实验平台,其中我们选择c3.2xlarge进行实验。每个示例有28个计算单元,8个虚拟CPU及15G内存。
默认情况下,我们的实验在两个现实世界,两种不同应用背景的网络数据集上进行。一个是引文网络,另一个是社交网络。
CIT是一个典型出版文章的引用网络,包括约3千个出版文献(点)及约4000个引用关系(边)。每个点有单个标签,表示其在计算机科学的领域,总共6个不同的标签。每条边都有一个标签(从0到100),衡量文献之间的差异性。因此,小的标签意味着大的相似性。两份文献之间的相似性由边在不确定图中的概率进行表示。
COL是一个DBLP上的学者合作网络,包括100k不同的作者及450k合作边。节点标签表示一个人主要研究方向,边的概率表达两个不同作者合作关系的强度。特别地,概率由均值μ的CDF指数进行推导;如果两个作者合作t次,则对应的概率为1-et/μ[17,19,31]。按照惯例,我们在实验中考虑μ=5。
总结表1中数据集的特点。为了对比,两个不确定图有不同的结构特征。图的密度由|E|/|V|进行衡量。因此,CIT的密度为1.43,而COL的密度大约为3.50。虽然COL数量和密度都大于CIT,但COL不同节点标签数量比CIT更大。另外,平均存在概率值分别是0.12和0.23。
Table 1:Dataset Statistics
我们记录并报告以下衡量结果:
(1)算法发现并返回的子图数量;
(2)总的样本大小,即算法产生并处理的样本图数量;
(3)运行时间,运行完一个算法所需的总时间。
在此,我们评价所提算法框架,即基本算法的近似质量。回忆精确算法需要枚举所有可能的蕴含图。既然不可能在一个稍微大一些的图上,精确发现所有真实的频繁模式,我们在CIT的一个部分图上进行实验(30个点),并认为在ε=0.01且δ=0.01时,发现的子图都是真的频繁子图,实验中将支持度阈值设为2。注意到在这样的参数设定下,基本算法需要很长时间才能完成。
我们研究关于参数ε与δ的近似质量。特别地,近似质量由精确率和召回率进行衡量——精确率是在返回结果中真频繁的子图所占百分比,而召回率是返回子图所占所有真频繁子图的百分比。CIT和COL的结果在图6中进行比较。
图6描述输出子图,其中白条表示发现的错误频繁子图,而黑条表示真频繁子图。我们将ε从0.01到0.3变化,δ保持0.1,在条之上的数字分别表示准确率(加粗)和召回率。图6揭示了随着ε的变化,基本算法的准确率下降,但召回率基本保持不变。这是因为:(1)当ε变大时,更多的错误频繁子图会被返回,因此降低精度(2)当δ是固定的,一个频繁子图被返回的概率是一定的,因此返回的真实频繁子图数量并不会收太大影响。图6还显示随δ从0.01到0.3变化,ε=0.1时结果的变化。我们观察到虽然准确度基本维持在95%,召回率则随着δ的增加而降低。原因是:(1)固定ε决定了错误频繁子图的期望数量;(2)在δ增加的同时,频繁子图被输出的概率降低,因此,返回的真频繁子图数量减少,导致召回率降低。
简而言之,实验证明我们提出了近似框架具有很高近似质量。
我们还评价在近似框架下所提优化技术的效果。特别地,我们比较了三个算法,为了表达清晰,分别表示为[基本],[+重用],[+剪枝]。
[基本]:基本的基于蒙特卡洛仿真,挖掘单个不确定图的近似算法,即算法1;
[+重用]:在[基本]上应用计算重用技术,即算法2;
[+剪枝]:在[+重用]的基础上,包含所有提出的优化策略,即算法3+4。
图7绘制了在CIT上运行算法的时间。我们固定ε与δ为0.1,将支持度σ的值从35到55变化。图显示运行时间降低十分明显。另外,[+重用]很大程度上提高了[基本]的效率,而[+剪枝]进一步增加了算法运行速度,虽然提高相对于[+重用]效果适中。在最好的情况下,当支持度阈值σ=35时,节约时间的效果最明显,降低了73.1%的运行时间。我们进一步在COL上进行实验。虽然反映了相似的趋势,但也有两点区别。首先,执行时间的降低在COL上相对CIT更加明显,特别当支持度阈值很小时。第二点,[+重用]的效果相对[+剪枝]更加明显,证明在COL上剪枝效果更好。进一步,当σ=100时,所提技术节省了最多的计算时间,大约1000s。
进一步鉴别剪枝技术,我们研究总的样本量。图8描绘了在CIT和COL上需要的总的样本数量。重点需要观察的是剪枝策略使得提前结束成为可能,使得需要更少的样本。既然[+重用]并不考虑剪枝,那么气需要的样本数量和[基本]是一样的,因此我们忽略对其进行比较。两个图都反映了剪枝规则很有效,减少了约的样本量,最终使得运行速度加快。
总的来讲,[+重用]相比[基本]体现了优越性,而[+剪枝]比[+重用]更好。因此[+剪枝]作为最终的算法fanta。接下来,我们评价参数值变化对于fanta不确定性,及可扩展性的影响。
除了σ,用户定义的参数ε与δ也会影响算法性能。在本组实验中,我们衡量ε与δ的变化对算法效率的影响程度,其中fanta与Baseline进行了比较与分析。
我们固定σ=40,δ=0.1,在数据集CIT上,每次对ε增加0.05。结果在图9中进行展示,作为一般的趋势,执行时间随着ε的增加而降低,ε越大降低的趋势越小。值得注意的是fanta受ε变化的影响相对较小,而且相对于Baseline来讲性能更佳,进一步证明了fanta的优越性和鲁棒性。在数据集COL上进行了相似的实验,其中σ=200,δ=0.1。可以在图9上看到相似的趋势;然而反映了受ε变化影响更大。
接着,我们评价δ的影响,其值来自{0.05,0.10,0.15,0.20}。图10总结了分别在CIT和COL上的实验结果,两个图显示执行时间随着δ的增加而逐渐降低。和ε的变化带来的影响相比,δ变化对执行时间带来的影响并不显著。
总而言之,fanta对ε和δ的变化相对不那么敏感;同时,两个算法受ε的影响都比δ大。这是合理的,因为算法时间复杂度是关于成比例的。
另一方面,探究不确定性,即图边存在概率的概率分布,对算法的影响很有意义。为此,定义一个数学转换模型,将存在概率P(e)转换为f(P(e)):
该转换在CIT数据集上进行实验。由于CIT上边的平均概率较小,我们对fanta在平均概率更高情况的图上表现,以及对于固定平均概率,增大概率分布方差的情况更感兴趣。对此,我们首先固定c1并增大c0,从0.1到0.5,其中σ=50,ε与δ都是0.1。
从图11可以看出,随着c0的增加,执行时间也在增大,概括来讲,基本保持了线性增加的趋势。这是合理的,因为概率值的增加可以提高期望支持度的值。当σ固定,更多的子图将需要进行评价,因此导致更多频繁子图。
之后,我们将c1从0.5到1变化,并设c0=(1-c1)μ,其中μ是边上存在概率的均值。显然在转变后,概率均值维持不变,但分布方差将变大。图11显示执行时间随c1而增加,虽然最终逐渐趋于平缓。这是因为增大的概率方差导致更多的边具有高概率。结果是,一些子图具有了更高的支持度,增加了整体的运行时间。
简而言之,概率分布对算法效率具有显著。更高的均值和更大的方差都将导致更多频繁子图,并最终增加执行时间。
fanta算法的可扩展性在两方面进行评价——数据集大小和密度。数据集大小通过节点数量进行衡量,但与此同时保持密度不变;而密度则固定|V|变化图中数据从COL合成得到。
首先,fanta在分别0.2,0.4,0.6,0.8部分COL上进行评价,其中σ=100。图12显示一个快速增长的趋势,特别是当比例从0.6升高到0.8时,增长速率在0.8之后有所下降。注意到,随着数据大小的增加,被发现子图数量并不是线性增加而是指数级增加。实际上,我们进行了另一个实验(由于空间有限,没有在此展示),支持度阈值随着比例增加,这样可以得到一个线性增长的趋势。
关于密度的实验是在COL的一个样本上进行的,该样本具有20,000个点,边的数量不断变化。在图12中,x轴代表密度,即|E|=|V|,2|V|,3|V|,4|V|,5|V|,σ=100。从图中可以看出,运行时间不断增加,增长率也不断提升。我们认为这是因为和支持度阈值结果相同的原因.
可扩展性实验显示fanta可以处理较大的现实图数据,正如那些现有的为单确定图挖掘设计的算法.
综上所述,为获得不仅频繁,而且在现实中具有高置信度的子图,我们定义了在单个不确定图上,基于期望支持度的频繁子图挖掘问题,基于期望语义的支持度对于在不确定网络中主题发现很有用。为了说明此问题的高复杂度,通过将DNF计数问题归约为此问题,我们证明了计算子图期望支持度是#P难的,我们提出了一种基于蒙特卡洛的近似算法来获取一个区间,并以给定精确度包含真实值,将获取的支持度区间与支持度阈值之间的关系分为三种情况,可以保证,以概率至少为1-δ,任何子图支持度不小于σ的子图都会被输出,同时任何期望支持度小于(1-ε)σ的子图都不会输出。此分类确定了我们枚举—评价的算法框架,即慎重地枚举候选子图并逐一评价。
同时,我们对抽取样本中可重用的计算进行共享,还提前对不频繁的候选子图进行剪枝,通过在线建立的二叉共享树进行计算重用,并在基于检查点的机制上,设计了基于结构的剪枝规则,以在特定检查点过滤掉不太可能频繁的候选子图,大幅度减少了子图挖掘消耗的时间。
最后我们使用真实数据,对所提算法fanta进行了广泛的实验研究。通过实验发现,所提算法框架能在单个不确定大图上正常工作,能获得基于期望存在概率的频繁子图。而且,增加了优化技术的近似算法优化效果明显,最大减少了71.3%的运行时间,因此提高了挖掘性能及用户体验。借助于本发明的上述技术方案,通过将单个不确定图划分为多个蕴含的确定图并将蕴含图视作确定图使用计算重用方法抽样计算子图的期望支持度的手段,我们能在单个不确定图上使用频繁子图挖掘技术,填补了本领域的技术空白。
所属领域的普通技术人员应当理解:以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种针对单个不确定图的频繁子图挖掘与优化方法,其特征在于,包括:
获取单个不确定图;
根据所述单个不确定图枚举出所述单个不确定图的所有子图;
在所述单个不确定图的所有蕴含图中指定部分蕴含图为样本图;
将所有样本图组成样本图集合,在所述样本图集合中设定多个检查点,所述多个检查点将所述样本图集合分割为多个部分样本图集合,每个部分样本图集合中包括一部分样本图,并依次指定所述每个检查点;其中,所述检查点是一个给定的样本大小,在处理过的样本数量达到检查点时进行检查;
使用计算重用方法分别计算所述单个不确定图的所述被指定检查点覆盖的部分样本图集合中每个样本图的存在概率,并使用计算重用方法计算所述每个子图在所述被指定检查点覆盖的部分样本图集合中每个样本图上的期望支持度;
根据所述每个子图在所述被指定检查点覆盖的部分样本图集合中每个样本图上的期望支持度与所述单个不确定图的所述被指定检查点覆盖的部分样本图集合中每个样本图的存在概率,判定该子图是频繁子图、不是频繁子图、或不确定是不是频繁子图,若判定该子图是频繁子图或不是频繁子图则停止该子图的相关运算,若判定该子图不确定是不是频繁子图则继续指定下一个检查点并根据下一个被指定检查点覆盖的部分样本图集合重新进行判定直到所述每个检查点都被指定过,其中,对最末被指定的检查点覆盖的部分样本图集合进行判定时一定不会得出不确定的判定结果;
输出所有频繁子图。
2.根据权利要求1所述的一种针对单个不确定图的频繁子图挖掘与优化方法,其特征在于,使用计算重用方法分别计算所述单个不确定图的所述被指定检查点覆盖的部分样本图集合中每个样本图的存在概率,并使用计算重用方法计算所述每个子图在所述被指定检查点覆盖的部分样本图集合中每个样本图上的期望支持度,为根据所述单个不确定图构造重用树,为所述单个不确定图的所述被指定检查点覆盖的部分样本图集合中每个样本图中的每条嵌入边构建反向索引,并根据所述重用树与所述反向索引分别计算所述单个不确定图的所述被指定检查点覆盖的部分样本图集合中每个样本图的存在概率与所述每个子图在所述被指定检查点覆盖的部分样本图集合中每个样本图上的期望支持度。
3.根据权利要求2所述的一种针对单个不确定图的频繁子图挖掘与优化方法,其特征在于,根据所述单个不确定图构造重用树,为从所述单个不确定图上选取一根节点,根据一条嵌入边的存在与否生成第一层二叉树,再根据根节点的子节点上嵌入边的存在与否生成第二层二叉树,如此重复直到所述单个不确定图上所有节点与嵌入边的二叉树形式均被重用树包括。
4.根据权利要求1所述的一种针对单个不确定图的频繁子图挖掘与优化方法,其特征在于,根据所述单个不确定图枚举出所述单个不确定图的所有子图包括:
从所述单个不确定图提取出多个蕴含图,所述每个蕴含图都是所述单个不确定图可能的存在方式;
分别计算所述每个蕴含图所包含的所有子图。
5.根据权利要求4所述的一种针对单个不确定图的频繁子图挖掘与优化方法,其特征在于,所述提取出多个蕴含图的个数为2的所述单个不确定图中边的个数次幂。
6.根据权利要求5所述的一种针对单个不确定图的频繁子图挖掘与优化方法,其特征在于,在所述单个不确定图的所有蕴含图中指定部分蕴含图为样本图,为在所述单个不确定图的所有蕴含图随机指定数个蕴含图为样本图,其中,所述样本图的数量与任一子图在所述单个不确定图的所有蕴含图的支持度最大值的平方成正比,与不置信度的自然对数成反比,与误差系数的平方成反比,与支持度阈值的平方成反比。
7.根据权利要求6所述的一种针对单个不确定图的频繁子图挖掘与优化方法,其特征在于,使用计算重用方法分别计算所述单个不确定图的所述被指定检查点覆盖的部分样本图集合中每个样本图的存在概率,并使用计算重用方法计算所述每个子图在所述被指定检查点覆盖的部分样本图集合中每个样本图上的期望支持度包括:
根据所述单个不确定图中每条边的概率,计算出所述单个不确定图的每个蕴含图的存在概率;
指定所述单个不确定图的所有子图中的一个;
分别计算所述被指定的子图在所述被指定检查点覆盖的部分样本图集合中每个样本图上的支持度;
根据所述单个不确定图的每个样本图的存在概率、所述被指定的子图在每个样本图上的支持度,计算所述被指定的子图在所述被指定检查点覆盖的部分样本图集合的支持度;
继续从所述单个不确定图中指定下一个子图并计算其在所述被指定检查点覆盖的部分样本图集合的支持度,直到所述单个不确定图的所有子图都被指定;
根据所述每个子图在所述被指定检查点覆盖的部分样本图集合的支持度,计算所述每个子图在所述单个不确定图上的期望支持度。
8.根据权利要求7中所述的一种针对单个不确定图的频繁子图挖掘与优化方法,其特征在于,分别计算所述被指定的子图在所述被指定检查点覆盖的部分样本图集合中每个样本图上的支持度,为使用最大独立集法计算所述被指定的子图在所述被指定检查点覆盖的部分样本图集合中每个样本图上的基于最小像的支持度。
9.根据权利要求8中所述的一种针对单个不确定图的频繁子图挖掘与优化方法,其特征在于,根据所述每个子图在所述被指定检查点覆盖的部分样本图集合中每个样本图上的期望支持度与所述单个不确定图的每个样本图的存在概率,判定该子图是频繁子图、不是频繁子图、或不确定是不是频繁子图包括:
获取期望支持度阈值;
根据所述单个不确定图的每个样本图的存在概率,计算所述子图在所有支持度等于一恒定值的蕴含图上的聚合概率;
根据所述子图在所有支持度等于一恒定值的蕴含图上的聚合概率,计算所述子图在所述单个不确定图的所有蕴含图中期望支持度不小于该恒定值的聚合概率;
根据所述子图在所述单个不确定图的所有蕴含图中期望支持度不小于该恒定值的聚合概率,计算当前概率观察值与结果区间;
根据所述结果区间与期望支持度阈值判定所述子图是否为频繁子图,将所有结果区间上限大于期望支持度阈值、且结果区间下限大于期望支持度阈值与非误差系数的乘积的子图判定为频繁子图,将所有结果区间上限小于期望支持度阈值的子图判定为不是频繁子图,将所有结果区间上限大于期望支持度阈值、且结果区间下限小于期望支持度阈值与非误差系数的乘积的子图判定为不确定是不是频繁子图。
CN201510299659.6A 2015-06-03 2015-06-03 一种针对单个不确定图的频繁子图挖掘与优化方法 Active CN104899885B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510299659.6A CN104899885B (zh) 2015-06-03 2015-06-03 一种针对单个不确定图的频繁子图挖掘与优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510299659.6A CN104899885B (zh) 2015-06-03 2015-06-03 一种针对单个不确定图的频繁子图挖掘与优化方法

Publications (2)

Publication Number Publication Date
CN104899885A CN104899885A (zh) 2015-09-09
CN104899885B true CN104899885B (zh) 2017-12-05

Family

ID=54032530

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510299659.6A Active CN104899885B (zh) 2015-06-03 2015-06-03 一种针对单个不确定图的频繁子图挖掘与优化方法

Country Status (1)

Country Link
CN (1) CN104899885B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105740458A (zh) * 2016-02-15 2016-07-06 浪潮电子信息产业股份有限公司 一种基于cpu mpi并行深度优先搜索的频繁子图挖掘方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073708A (zh) * 2010-12-30 2011-05-25 东北大学 面向大规模不确定图数据库的子图查询方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8204904B2 (en) * 2009-09-30 2012-06-19 Yahoo! Inc. Network graph evolution rule generation
KR101584883B1 (ko) * 2013-04-30 2016-01-22 경희대학교 산학협력단 그래프 분류를 위한 빈발 부분그래프의 생성 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073708A (zh) * 2010-12-30 2011-05-25 东北大学 面向大规模不确定图数据库的子图查询方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
GRAMI:Frequent Subgraph and Pattern Mining in a Single Large Graph;Mohammed Elseidy等;《Proceedings of the VLDB Endowment》;20140905;第7卷(第7期);517-528 *
Mining Frequent Subgraph Patterns from Uncertain Graph Data;Zhaonian Zou等;《IEEE Transactions on Knowledge and Data Engineering》;20100930;第22卷(第9期);1203-1218 *
Mining Graph Patterns;Hong Cheng等;《Frequent Pattern Mining》;20141231;307-338 *
一种高效的不确定图数据库上频繁子图模式挖掘算法;王文龙;《中国优秀硕士论文全文数据库》;20140315(第3期);16-49 *

Also Published As

Publication number Publication date
CN104899885A (zh) 2015-09-09

Similar Documents

Publication Publication Date Title
US8200693B2 (en) Decision logic comparison and review
San Segundo et al. Infra-chromatic bound for exact maximum clique search
Dai et al. Decomposition-based Bayesian network structure learning algorithm using local topology information
Liu et al. A method to analyze the rank reversal problem in the ELECTRE II method
CN105183796A (zh) 一种基于聚类的分布式链路预测方法
EP3913546A1 (en) Augmented knowledge base and reasoning with uncertainties and/or incompleteness
CN102142031A (zh) 一种基于粗糙集的海量数据分割方法
Yousuf et al. Guided sampling for large graphs
Zhang et al. OIM-SM: A method for ontology integration based on semantic mapping
Luna et al. Efficient mining of top-k high utility itemsets through genetic algorithms
CN104899283A (zh) 一种针对单个不确定图的频繁子图挖掘与优化方法
Mo et al. Network simplification and k-terminal reliability evaluation of sensor-cloud systems
CN108052743B (zh) 一种阶梯接近中心度确定方法及系统
CN104899885B (zh) 一种针对单个不确定图的频繁子图挖掘与优化方法
Bernardini et al. Constructing phylogenetic networks via cherry picking and machine learning
Gschwind et al. Social network analysis and community detection by decomposing a graph into relaxed cliques
Sánchez-Charles et al. Process model comparison based on cophenetic distance
Lazo-Cortés et al. A new algorithm for computing reducts based on the binary discernibility matrix
CN104866588B (zh) 一种针对单个不确定图的频繁子图挖掘方法
Watson et al. The methodology behind network thinking: graphs to analyze microbial complexity and evolution
CN108108168A (zh) 结合代码演化信息构造代码坏味训练数据集的方法
Huebler et al. Constructing semi-directed level-1 phylogenetic networks from quarnets
Li et al. Reducing consistency checks in generating corrective explanations for interactive constraint satisfaction
Semenov et al. Probabilistic generalization of backdoor trees with application to SAT
Vicsek Phase transitions and overlapping modules in complex networks

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant