密集子图挖掘算法的相关知识

1、子图密度的定义方法

(1)绝对密度:其度量的是构成一个密集子图的规则和参数值,是一个定量的描述。密度定义考量的只是密集子图内部节点和边的特性,与密集子图外部的拓扑结构无关。绝对的密集子图定义一般是对“团”定义的松弛操作。

(2)相对密度:它的定义没有预设的密度标准,查找密集区域的时候是比较当前的区域和其他区域密度值的大小,目的是查找最密集的子图。当然也可以找到全局范围内相对密度最大的k个子图,即topk密集子图发现问题。相对密度和绝对密度两个角度定义的密集子图还有一个最大的不同点是相对密度定义的密集子图在网络拓扑结构中一定能够找到可行解,而绝对密度定义的子图不一定存在可行解。

(3)几种常见的子图密度定义

定义名称

简单描述

average degree

密集子图的边数与节点数的比值来度量子图密度

k-core

密集子图S中任意一个节点都至少有k个邻居

kd-clique

密集子图S的直径小于等于k,即S中任意两节点的最短路径都小于等于k

Quasi-Clique

(density-based)

密集子图S中应该包含至少r*S(S-1)/2 条边(r为定义的值)

Quasi-Clique,在这种定义模式下一个显而易见的缺点是很有可能找到一个节点和边分布不均匀的密集子图,例如图1和图2.在相同的r=0.4时,都是一个 0.4-clique,但很明显图1相对图2来说节点和边不是太均匀。


                              图1                                                                图2

2、静态密集子图

(1)静态图数据:可以看作动态图数据在某一时间点的快照。

(2)静态密集子图相关研究

A、枚举算法

    a、CliqueEnumeration算法,由Bron和Kerbosch提出的一个著名枚举算法。用于枚举图数据中的所有可能的团结构从而找到最大clique。具体算法思路是利用分支限界的技术对那些无法生成一个团结构的节点进行减枝,分支限界搜索过程中不断向候选团结构中添加节点,直到得到一个最大clique为止;

    b、Quick算法,由G. Liu and L. Wong提出的一种用于寻找带有大小限制的最大quasi-cliques(degree-based)。在该算法中提出了多个基于节点度、子图直径以及子图大小的剪枝技巧,并结合深度优先搜索尽可能减小密集子图发现问题的搜索空间以提高密集子图发现的效率;

    c、K-Core Enumeration算法。由Batagelj等人提出的发现k-core的高效算法。该算法递归的从原始图数据中移除那些度数小于k的节点以及与这些节点关联的边,递归结束就能够得到一个k-core。由于k-core问题不是一个NP-Complete问题,K-Core Enumeration即是一个在多项式时间内完成的贪婪算法;

    d、最密集子图发现的M-O算法 。Bo Wu 和 Haiying Shen发现了现实世界网络结构中存在的两个图结构特征,并根据这两大特征提出新的技巧来优化密集子图发现算法。上述枚举算法需要考察图数据中的所有节点和所有的边,在当今大规模图数据中几乎是无法直接应用的,只能作为一个评判算法好坏的标准,即作为一个基准去评价其他快速算法的好坏。虽然,在后续的研究工作中也提出了一些很有用的剪枝策略,甚至一些独特的思想来枚举所有的团。但是最终的时间复杂度与计算复杂度仍然比较大。

B、启发式算法

    a、密集二部子图发现算法。Gibson et al.提出采用Shingling]技术在大规模图中发现密集二部子图,借助Shingling技术巧妙地对二部图中位于一侧相同节点的共同邻居节点(位于二部图的另外一侧)进行等长度hash编码,最终利用共享邻居的数量作为指标来发现密集子图;

    b、quasi-dense components 发现算法。Abello et al.依据贪婪随机自适应搜索算法框架(GRASP)提出一种新的用于解决quasi-dense components发现算法来寻找quasi-dense components。贪婪随机自适应搜索算法(Greedy Randomized AdaptiveSearch Procedure, GRASP)是一个多次迭代的启发式算法。每次迭代都是由两个独立阶段的组成,即贪婪随机构造阶段(Greedy Randomized AdaptiveConstruction Phase)和局部搜索阶段(Local Search Phase)。GRASP算法的每一次迭代都首先构建一个贪婪随机的可用解,第二阶段的局部搜索阶段则是一个对第一阶段的可用解进行提高的阶段,它在第一阶段得到的可用解的基础上,进一步搜索可用解的邻解,直到找不到更好的解为止。这两个阶段被重复多次。通常选择全局最优解作为算法的最终结果输出;

    c、谱分析方法(spectral analysis method)。利用概率统计的方法发现密集区域。算法构造一个蛋白质交互网络的相似性矩阵,计算其中的特征值与特征向量。根据特征值的特性对密集区域进行发现,其中特征值为正数的特征向量被识别为一个quasi-clique,特征值为负数的特征向量则被认为是一个quasi-biclique。最后再利用统计学中的p-value对密集区域进行验证,保证算法找到的每个密集区域都是显著有效的。此类启发式算法具有效率高的特点,在很多应用场景能够得到不错的效果。但是也存在一些缺点,例如算法不能够保证足够的有效性。

C、近似算法

    a、Goldberg算法。Goldberg是最初研究这个问题的学者之一,他采用简单的平均度(|E|/|V|)来度量子图密度。采用这种定义,Goldberg将密集子图发现问题规约为一系列最大流/最小割问题,并且巧妙地利用二分查找的思想在多项式时间内完成密集子图的发现。

    b、Rank Subgraph的概念来寻找密集子图,主要思想是在给定的度数标志d和给定的无向图上,不断的删除节点度数小于d的节点以及与此节点关联的边,重复这个过程直到没有可删除的节点或者图为空停止。

    c、Bourgeois N和Giannakos等人提出一种用于解决top k最密集子图的的超线性近似算法,实验表明该算法不但能够处理中等规模的图数据,而且具有很好的性能;

    d、包含指定节点集合的最密集子图发现算法。Chen W和Peng L等人提出一种贪婪近似算法来发现最密集子图。

3、动态密集子图

(1)动态图数据:由最初的图快照和一系列嗲有时间戳的更新操作构成。

(2)动态密集子图相关研究

A、密集子图问题带有近似比的近似算法。M.Bhattacharya等人提出在动态图数据流网络上发现密集子图的时间和空间有效的算法。该算法能够以很高的概率在动态图添加/删除边时保证在 的空间开销和 的时间开销前提下得到 近似的密集子图。其中复杂度的分析采用的都是摊还时间;

B、密集子图问题可伸缩的算法。Alessandro Epasto等人提出第一个既能处理结构动态变化的网络,又对大规模图有很好的可伸缩性的算法。核心思想主要是在网络结构发生动态变化时始终维持若干个不变式,当更新操作破坏了不变式时只需要在很小的范围内作调整而不需要重复整个密集子图的发现过程;

C、解决密集子图问题的动态网络边权更新算法。Angel et al.采用对图数据流的边权进行更新的方法在动态图上有效的维持当前图快照的密集子图,以便在Twitter中发现有趣的事件;

D、密集子图问题的Streaming算法。B.Bahmani和R.Kumar等人提出一种利用开源的大数据处理框架MapReduce在图数据流上对密集子图进行计算的方法。该方法利用开源框架,结合作者提出的处理技巧很巧妙地解决了密集子图问题;

E、top k最密集子图发现的滑动窗口算法。Nasir和Gionis A等人提出一种解决top k最密集子图发现问题的动态算法,该算法基于文中提到的滑动窗口模型,有效处理网络的动态更新;

F、时序密集子图发现算法。文中作者限定了动态图的动态更新操作,只允许边的权值改变,网络的节点集合边集都不变,提出一种高效算法。

4、密集子图:密集子图直观来看是一个图结构中节点和边比较密集的区域形成的子图。一个图中的密集子图对这个图结构的某些特性有着很强的表达能力,往往代表着图结构中的不同聚类结果,比如密集子图能够表示出子图内部节点之间有着高度相互作用的特点,能够表示出子图内部节点之间有着很强相似性的特点等等。

5、最密集子图(Densest Subgraph)给定带边权的无向图结构G=(V,E,W),其中V={v1,v2,…,vn}代表图的节点集合,集合大小为 , 代表图结构的边集合,边集的大小为 , 代表图中边上的权重集合。S是图结构的一个子图,其密度用公式定义,图结构G=(V,E,W)中的最密集子图即为具有最大density (S)的子图结构 。

                     







  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值