大图社区搜索的调查综述(一)——摘要与介绍

2024-02-16 13:10

本文主要是介绍大图社区搜索的调查综述(一)——摘要与介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

翻译: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节中作结。

这篇关于大图社区搜索的调查综述(一)——摘要与介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/714625

相关文章

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

Python实现NLP的完整流程介绍

《Python实现NLP的完整流程介绍》这篇文章主要为大家详细介绍了Python实现NLP的完整流程,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 编程安装和导入必要的库2. 文本数据准备3. 文本预处理3.1 小写化3.2 分词(Tokenizatio

C# ComboBox下拉框实现搜索方式

《C#ComboBox下拉框实现搜索方式》文章介绍了如何在加载窗口时实现一个功能,并在ComboBox下拉框中添加键盘事件以实现搜索功能,由于数据不方便公开,作者表示理解并希望得到大家的指教... 目录C# ComboBox下拉框实现搜索步骤一步骤二步骤三总结C# ComboBox下拉框实现搜索步骤一这

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

认识、理解、分类——acm之搜索

普通搜索方法有两种:1、广度优先搜索;2、深度优先搜索; 更多搜索方法: 3、双向广度优先搜索; 4、启发式搜索(包括A*算法等); 搜索通常会用到的知识点:状态压缩(位压缩,利用hash思想压缩)。

hdu1240、hdu1253(三维搜索题)

1、从后往前输入,(x,y,z); 2、从下往上输入,(y , z, x); 3、从左往右输入,(z,x,y); hdu1240代码如下: #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#inc