论文部分内容阅读
社区结构是复杂网络研究中最近被发现的一个重要特征。社区是指根据网络中节点之间的关系,将关系密切的节点划分为一个群组。社区内部节点连接紧密,而社区之间节点连接稀疏。社区结构能够更加形象地组织网络,使得研究真实的网络更具有实际意义,并为研究网络的群体特征提供了有效的理论依据。许多真实网络的社区结构通常呈现出层次结构和重叠结构,即:一个大的社区可以细分为多个小的社区,一个节点由于多重作用同时属于多个社区。在社会网络中,社区的层次和重叠结构尤为明显。传统的复杂网络社区发现算法是以节点集为研究对象,采用层次聚类算法较好地发现社区的层次结构,但是,该算法较难发现社区的重叠结构。为此本文从另外一个角度出发,以网络的连边集为研究对象,将原网络图转换为以连边为节点的线图,从而将节点社区转换为连边社区。对线图采用层次聚类算法构建线图的层次树状图,树中每一层对应线图的社区结构,从而发现网络社区的层次结构。聚类过程使得原图中每一条连边只属于一个独立社区,而一个节点可以与多条连边关联,因此可以使得某些节点可能同时属于多个社区,从而进一步发现社区的重叠结构。本文目的在于同时发现社区的层次结构和重叠结构,提出了一种基于线图节点相似度的层次重叠社区发现算法。社区发现过程分为三个步骤:①将网络原图转换为线图,给出节点相似度的定义及计算公式,针对线图节点提出了节点广泛邻居的概念,用于计算线图节点的相似度,并进一步推广到加权网络图对应线图的节点相似度。②依据线图节点相似度采用single-linkage方法进行凝聚层次聚类,构建线图的层次树状图。③经典的衡量节点社区的模块度标准对于以连边社区不再适用,因此本文针对连边社区,根据社区内部连边的密度,提出了一种基于连边密度的划分密度函数,用来划分层次树状图,评估最终的社区结构的质量,寻找出最优的社区。除此之外,本文最后采用了真实数据集进行实验,并分析了实验结果。实验结果表明本文提出的基于线图节点相似度层次重叠社区发现算法,可以很好的发现社区的层次结构和重叠结构,且与Newman快速算法和CPM算法实验结果进行对比可得:本文算法在发现社区层次结构和重叠结构的性能及效果上更好,准确度与Newman算法相当,比CPM算法要高。此外,在算法时间复杂度上也有明显改进,一定程度上解决了传统算法效率低下的问题。