Hierarchical Core Maintenance on Large Dynamic Graphs(大型动态图的分层核维护)论文笔记

这篇论文探讨了如何在动态图中维护k-core的层次结构,提出了一种在边插入/删除时增量更新的方法。研究了k-core层次结构的特性,通过局部更新技术有效地定位和处理结构变化。实验表明,提出的算法在处理大规模真实世界网络时,性能显著优于现有方法。
摘要由CSDN通过智能技术生成

今天学习的这篇论文是VLDB的一篇关于对k-core图进行增量操作,实现k-core层次树更新——作者称其为动态图的分层核维护
Abstract:
k-core模型及其分解已被应用于各种领域,如社交网络、万维网和生物学。一个图可以分解为一个整洁的k-core层次结构,以促进内聚子图发现和网络分析。由于现实生活中许多图的快速演变,现有的工作提出了有效的算法,以保持每个顶点的coreness value,以防止结构变化。然而,现有研究对-kcore层次结构的维护并不完整,因为没有考虑层次结构中不同kcore之间的联系。在本文中,我们研究了分层核维护,即在图动态的情况下递增地计算k-core层级。这个问题具有挑战性,因为层级结构的变化可能很大,甚至对于一个轻微的图更新来说也很复杂。为了准确定位受图动态影响的区域,我们对层级结构的结构特性进行了深入分析,并提出了设计良好的局部更新技术。我们的算法在运行时的性能显著优于基准,最高可达3个数量级,这在10张真实世界的大型图表上得到了证明。
1,Introduction
复杂网络的结构建模以图的形式得到了广泛的研究。图分析的应用广泛,内聚子图的挖掘是一个基本的图问题。研究最充分的内聚子图模型之一是k-core,它定义为一个极大连通子图,其中每个顶点都与同一子图中至少k个其他顶点相连[42,52]。对于一个固定参数k,图G中可能有多个k-core,我们用k-core集来表示G中所有(连通的)k-core所形成的子图。一个顶点的核数最大值为k(约束于k-core包含这个顶点)。k-core可以将一张图分解为一个简洁的层次结构:对于每个整数值k,(i)k-core被(k-1)core包含,(ii)对于整数值k,k-cores是不相交的。K-core层级结构可以表示为一个树(数据结构),每一个k-core集合对应一个树节点,其中树的每个边表示k-core包含他的孩子结点k’-core,其中k’>k。
k-core及其层次分解有广泛的应用,例如,发现社区网络[16],社交网络,建模的动态用户参与[64],发现分子复合物的蛋白质相互作用网络[2],分析互联网的底层结构及其功能的影响[4],并预测共生的生态系统[44]结构崩溃。这种层次结构可以有效地定位网络的社区,并探索网络现象[12]的洞见。
在内聚子图的检测方面,最近的一项工作计算了在核分解层次中任意k值具有最大密度(average degree)的(连通的)k- core C∗,C*就是最密子图。这是找到最密集子图[11]的最先进的近似解。该算法比其他算法的效率高得多。由此产生的C∗具有0.5近似的保证,并且通常比其他近似具有更高的密度。结果表明,寻找C *也可以帮助计算最大团和大小约束k核。对于用户粘性的研究,一个顶点的核心被认为是捕获其[41]粘性水平的“最佳实践”。我们已经证实,具有相同核心的顶点的平均粘性(如签到次数)通常与它们的核心[35]值呈正相关。然而,我们的实验结果发现,同时考虑一个顶点的核心和它在核心分解层次中的位置,可以更准确地评估一个顶点的接合度。
在现实生活中,许多图都是高度动态的,例如,社交网络中的用户可能会添加新朋友或删除已有的朋友关系,由于创建新页面,新的链接在网络中不断建立。因此,有许多关于动态图的研究,例如[18,69],其中顶点/边将被动态插入/删除。然而,现有的动态图核分解工作主要关注于保持每个顶点的核[49,60,66],而没有考虑维持层次结构中k-核之间的连接。由于结构信息对核分解至关重要(例如,k-核定义在连通子图上),本文研究了分层核维护问题,即在边缘插入/删除的情况下,逐步更新k-core 层次。顶点的插入可以被模拟为一个边缘插入序列。
在这里插入图片描述
EXAMPLE1. figure1(a)插入图G,图G展示了一个有23个顶点及其连接的图G,图1(a)展示了一个有23个顶点及其连接的图G,顶点的颜色深度代表了这个顶点的核心。整个图为2核图,3核图由V(G) \ {v20, v21, v22}归纳而成。四核是由三核减v19诱导的。所以v19的核心值是3。G的核分解迭代地去除当前G s.t.中度最小的顶点,检索出k个不同k值的核。5个核心(C_1^5 和C_2^5)用虚线圈起来。
k-core层次结构树T(G)如图1(b)所示,它既包含每个顶点的核值,又包含不同k-cores之间的联系。例如v17的核值为4,因为他在第四层,n1表示包含v17的节点,包含v17的4核由以n1为根的子树诱导而来,该子树包含两个5核。如果我们从G中移除边(v2, v17),每个顶点的core值和k-core值将被更新,如图1©所示。随着v17的核值减少到3,它被移动到图1(d)中的第3层。然后,原来的4核(C4)分解为两个4核C_14 和C_2^4 。相应地,4th层上的节点拆分为两个节点,如图所示。T(G)的树边根据不同k核的包容特性进行调整。
一个图中每个顶点的核分解可以在线性时间内计算出每个顶点的核,通过核分解迭代地去除剩余图中度最小的顶点。文献[66]基于核分解中顶点删除顺序,提出了更新顶点核值的最先进解决方案。然而,由于这个算法只为更新核值而设计,我们需要遍历更新后的核值图来找到一个连通的k-core。这意味着,为了维护动态图上的k-core层次,现有的解决方案必须通过执行其构造算法从头开始重建k-core层次,这是代价很高的。最先进的算法(称为lcp)在静态图上构造k核层次结构,时间复杂度为o(m)[42],如果使用桶来保持搜索优先级[51]。它根据优先级函数s.t.顺序地将顶点及其邻居(未访问)推入队列。遍历并构建包含顶点的子树。由于LCPS的搜索优先级既可以是部分自底向上搜索,也可以是部分自顶向下搜索,因此,给定一组插入/删除的边,我们必须从头开始在G上或G的一部分上执行lcp,这是成本限制的。因此,在本文中,我们的目标是通过精确定位受图更新影响的层次结构的结构来增量更新k-core层次。分层核心维护的问题是具有挑战性的,因为即使是图的轻微更新,层次结构也可能会发生很大的变化,而且不同k核之间的连通性变化并非微不足道,如示例1所示。为了捕捉插入/去除边缘对k-核层次T的影响,我们对层次中k-核的结构连接进行了深入分析。提出了一系列定理来快速识别T中未改变的结构,便于进行高效的更新操作,如节点归并、节点拆分、调整父子关系等。我们的重点是提出即时更新的维护解决方案,即插入/删除一个边缘的情况。算法被扩展到处理(一次性)更新多个插入/
删除的边缘。提出了几种设计良好的局部更新技术。
贡献:
• 据我们所知,这是第一个在动态图上研究分层核心分解的工作
• 深入分析k核层次结构的变化。提出了一系列定理来解决边缘插入/删除对k核层次结构的影响。
• 利用有效的局部更新技术,提出了针对一条边的插入/删除的分层核心维护算法。算法被扩展到处理一批中多个插入/删除的边。
• 在10个具有数十亿条边的现实世界网络上进行了广泛的实验。我们的算法在运行时的表现比基线高出3个数量级。该算法在保持内聚子图和评估用户参与方面是有效的。
2,Preliminaries:
设想一个无权无向图G=(V,E),考虑一个无权无向图G = (V,E), n = |V|顶点,m = |E|边(假设m> n)。如果V(G ')⊆V(G)和E(G ')⊆E(G),那么图G '是G的子图,用G '表示,表1总结了这些符号。
在这里插入图片描述
在这里插入图片描述
3,insertedge:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以上是插入多条边的算法。
删除边的算法见论文:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值