论文部分内容阅读
互联网上的许多应用形成了社交网络。社交网络上一些邻近节点构成社区,社区就是联系紧密的成员聚集的一个子图结构。如何在社交网络中发现和分析社区是目前的一个研究热点。研究工作的很大部分是关于社区发现,即如何在整个社交网络中找出其中所隐含的所有社区。和社区发现相对应的另一类研究是社区查询。社区查询是指:给定社交网络上的某个节点作为查询点,找出该点所在的一个或多个社区。当查询点所在的社区有多个时,这些社区称为重叠社区。 不少学者对社交网络中的社区查询进行了研究。这些研究中的社区查询只查找查询点所在的社区。但我们的研究发现,在社交网络的实际应用中,用户还经常会关心查询点不在,但与查询点相近的社区。如基于论文合作关系形成的研究者社交网络中,某个研究者可能会查看他本人所在的社区,也会查看他不在但邻近社区中有哪些研究人员,即那些和他研究工作相近的研究人员。 本文引入相关社区的概念来解决上述问题,定义查询点可达的社区为该查询点的相关社区。相关社区既包括查询点所在的社区,也包括查询点不在,但有路径可达的社区。因而相关社区既可能与查询点邻近,也可能处于社交网络上离查询点较远的位置。在实际应用中,当然主要关心那些离查询点近的相关社区,即要找出离查询点最近的若干个相关社区,将该问题称为 Top-K相关社区查询。 同时,研究领域和工商业大数据时代来临,数据量数据类型膨胀式的增长,社交网络也急速发展,往往形成很大的图。针对大图的社区查询面临着数据量大,单机装载计算困难的难题。同样,在相关社区查询的算法设计上也面临着大数据的挑战。单台计算机的处理能力以及传统的技术架构已经很难满足海量数据处理的计算要求,而分布式并行计算框架的出现为海量数据下的数据处理带来了曙光。Hadoop云平台为大数据的处理而生,能够处理海量数据,但是其计算框架面临着计算单一,不支持循环迭代计算等难题,基于Hadoop的Spark内存计算平台集成了Hadoop云平台的优点,支持迭代计算,同时内存计算极大的减小了大数据计算处理的时间消耗。由此本文深入研究了Spark平台分布式大图社区查询计算算法,提出大图中 Top-K相关社区查询的解决方法。 论文在第一章和第二章介绍了研究背景,在第三章和第四章分别提出一种社交网络中Top-K相关社区查询方法以及基于大数据平台的Top-K相关社区查询算法研究,并分别在单机和集群环境(Hadoop,Spark集群)进行了测试验证和结果分析。其中大数据平台的Top-K相关社区查询算法研究是对社交网络中 Top-K相关社区查询方法的补充与完善,它利用分布式并行内存计算,解决了大图中相关社区查询的难题,并且通过算法改进,进一步提高检索效率。本文的主要工作包括两个方面: 1提出一种社交网络中 Top-K相关社区查询方法。本文定义了团和相关社区的概念,研究一种快速检测查询点的Top-K相关社区的方法。文中提出了一个向下探测搜索算法:从查询点出发探测团结构,再由团结构向外延伸扩展得到社区,通过循环迭代快速得到查询点的Top-K相关社区。同时,为了减少搜索空间和计算时间,对原算法进行了改进。通过全面的实验对比,验证了算法的有效性和改进算法的高效性。 2基于大数据平台的Top-K相关社区查询算法研究。大数据时代来临,我们周围充斥的海量数据,对于海量数据的数据处理成为一个热点。社交网络上社区探测的研究,也面临了大数据的冲击,怎样在大的社交网络图上进行社区查询成为一个难点。定义查询节点可达的社区为其相关社区,在大图上怎样快速查找与查询点相关的Top-K相关社区具有现实研究意义。本文依旧根据团的概念来定义社区,依据相关社区的概念,探寻大图上 Top-K相关社区查询问题的解决方法。文中基于Spark分布式并行计算框架,提出了一个Top-K相关社区的层次迭代探测算法算法,采用分而治之的策略,将海量数据分解为若干个规模较小的数据集,并分散至 Spark分布式集群上,再进行相应的连接扩展计算操作得到最相关的前 K个社区集合。通过全面的实验对比,验证了该算法的有效性和高效性。