翻译:Fang Y , Huang X , Qin L , et al. A survey of community search over big graphs[J]. The VLDB journal, 2020, 29(1):353-392.
摘要
随着信息技术的快速发展,各种大图在许多实际应用(如社交媒体、知识库)中普遍存在。这些图的一个重要组成部分是网络社区。本质上,社区是一组内部紧密连接的顶点。社区检索可用于许多实际应用程序,如事件组织、朋友推荐等。因此,如何从大图中高效地发现高质量的社区是大数据时代的一个重要研究课题。最近,一个名为社区搜索(community search)的大型研究工作被提出。他们的目标是提供从大型网络中实时搜索高质量社区的有效解决方案。然而,这些作品侧重于不同类型的图,并以不同的方式表述社区,因此,我们希望对这些作品进行全面的回顾。在这次调查中,我们对现有的社区搜索工作进行了全面的回顾。此外,我们还分析比较了不同模式下的社区质量,以及不同解决方案的表现。在此基础上,提出了新的研究方向。这项调查综述不仅帮助研究人员更好地理解现有的社区搜索解决方案,也为从业者提供了更好的判断选择合适的解决方案。
1 介绍
随着信息技术的快速发展,各种大图在许多实际应用(如社交媒体、知识库)中普遍存在。这些图的一个重要组成部分是网络社区。本质上,社区是一组内部紧密连接的顶点。例如,在Facebook中,社区由拥有深厚友谊的用户组成[3];在万维网上,社区包含共享相似主题的网站[22];在蛋白质相互作用网络[151]和代谢网络[82]中,社区对应于功能模块。从网络中检索社区是网络科学中的一个基本问题,它可以应用于许多实际应用中。下面是一些典型的应用:
- 活动组织。社会活动(例如聚会或会议)通常涉及一组用户,其组织可以从社区中受益。例如,要举办鸡尾酒派对,用户可以找到他的社区,即一组研究人员,其中每个人都很熟悉。
- 朋友推荐。许多社交媒体平台(如Facebook)通常会维持一个友谊网络。为了向特定用户u推荐候选朋友,我们可以直观地推荐那些在u的社区但还不是u的朋友的人。
- 蛋白质复杂的识别。在生物学中,蛋白质相互作用,一个基因通常由一组蛋白质调节。为了研究一个基因,生物学家可能会专注于一组相互高度相互作用的蛋白质,这就是一个蛋白质社区。
- 电子商务广告。同一个社区的用户通常有相似的兴趣。为一个用户u推送广告,我们可以先找到她的社区,然后选择她的社区成员看过的广告。
由于社区的重要性,如何在大数据时代从大型图中高效地找到社区是一个重要的研究课题。通过对这些应用的仔细观察,我们确定了社区检索解决方案应该满足的一系列因素:
- 效率高。对于许多真实的应用程序(例如,事件组织),常常需要根据查询请求实时检索社区。因此,社区检索解决方案应该能够实时响应
- 高可伸缩性。如今,许多真实的网络包含数百万或数十亿个顶点。因此,解决方案应该可扩展到真正的大图。
- 高个性化。实际上,对于大型网络,人们通常对某些特定用户的社区感兴趣,而不是对所有用户感兴趣。因此,解决方案应该允许用户指定查询顶点。此外,还可以强加一些对结构(和属性)的个性化需求。
- 高质量。检索到的社区中的顶点应该紧密地联系在一起。此外,社区应该易于解释。
- 支持动态图。由于实际的网络经常会随着时间的推移而发生变化,因此解决方案应该能够很容易地适应动态变化。
为了实现上述目标,最近提出了一大批研究工作,称为社区搜索(community search, CS)[103]。通常,CS的目标是基于查询请求以在线方式搜索高质量的社区。具体来说,给定图G的一个顶点q,其目的是寻找一个包含q且满足以下性质的社区或者说稠密子图:(1)连通性,即社区中的顶点是连通的;(2)凝聚力(内聚力),即社区中的顶点彼此紧密相连,这是一个特殊的优度度量[15,45,46,175]。这个指标通常是通过使用一些经典的子图内聚指标来定义的,例如:
- k-core[17,170]是G的最大(极大)子图,子图中每个顶点的度至少为k。
- k-truss[41,98]是G的最大子图,其中每个边都包含在至少(k-2)个三角形中。
- k-clique[2]是G的k个顶点的集合,每对顶点都有一条边。
- k-ECC (k-edge-connected component)[76]是G的一个子图,去掉任意k-1条边后仍是连通的。
让我们用一个例子来说明CS。考虑图1中有10个顶点的图,以及基于k-core模型的CS解[15,46,175]。设q = A,则顶点{A, B, C, D}的诱导子图将作为一个社团返回。注意子图形成了k = 3的k核,因为子图中每个顶点的s度都是3,也是k达到最大值的核值。
在部分文献中,有一些高度相关的研究工作,称为社区检测(community detection, CD)[44,110,154,156,158]。一般来说,它的目标与CS相似,但有三个关键的区别:(1)问题定义不同。CS的目标是搜索关于一组查询顶点和一些查询参数的社区,而CD经常检测图中的所有社区。(2)界定社区的标准不同。在CS中,定义社区的标准是基于用户给出的查询参数。换句话说,社区是根据用户定义的参数进行检索的。相比之下,CD方法通常使用相同的全局标准,通过对整个图进行划分来检测社区。例如,在图1中,如果q = A, CS方法[46,175]将找到社区{A, B, C, D},如果q = E,将找到社区{A, B, C, D, E}。相比之下,如果使用CD方法(如光谱聚类[182])将社区数设置为3,我们将得到三个社区,每个社区构成一个连通性组件,其中B和E在同一个社区中。(3)算法是不同的。如现有研究所示,CS解决方案可以以在线方式高效地搜索社区,而CD解决方案往往耗时且无法扩展到大图。此外,CS查询通常可以由索引支持,并且可以轻松地处理动态图。因此,与CD方案相比,CS方案更能满足上述因素。
尽管有许多CS解决方案,但它们处理不同类型的图,并以不同的方式来制定社区。同时,对CS解决方案缺乏系统的调研。因此,我们需要组织这些工作,并了解它们在效率和质量方面的表现如何。为此,本文将对这些工作进行全面的回顾。我们还将比较不同的CS解决方案,以便读者能够更好地了解当前的技术状况,并为未来的研究指明方向。
如表1所示,我们将CS解决方案分为五个类别,每个类别(最后一个类别除外)中的解决方案采用相同的结构内聚度量。此外,对于每个类别中的作品,我们将其进一步划分为两组,第一组以简单图为主,第二组以属性图为主。请注意,CS问题的id也包含在表1的括号中。对于简单的图,CS解决方案纯粹基于链接信息搜索社区,而对于属性图,CS解决方案通常同时考虑链接和属性。我们注意到这些内聚度量是与图类型相交的。这意味着,如果没有研究特定类型的图的度量,那么通过在这种类型的图上应用度量来研究CS是一个可能的未来研究方向。(即下表标注“-”的是研究空白,可以尝试进行该方向的研究)
总之,我们的主要贡献如下:
- 首先,对CS的研究进行了系统的分类。具体来说,我们根据社区凝聚力指标对这些研究进行分类。对于每一类作品,我们回顾了关于不同类型图的代表性研究。
- 其次,我们对不同的社区凝聚力指标进行了全面的分析和比较。此外,我们还对简单图和属性图的CS解进行了分析和比较。
- 第三,对未来CS的研究提出了有建设性的建议。这可能使对计算机科学有新认识的研究人员对计算机科学的最新发展有一个新的认识,同时也为这一领域的研究提供了一个很好的起点。
本文的其余部分组织如下:在第2节中,我们介绍并讨论了社区凝聚力指标。在第3、4、5、6和7节中,我们广泛地讨论了每个类别的CS解决方案。我们还在第8节介绍了两个CS系统。我们在第10节中回顾有关的工作。最后,我们在第11节中列出未来的主题,并在第12节中作结。