论文部分内容阅读
具有社区结构是复杂网络最重要的特点之一,发现复杂网络中的社区结构在社会学、生物学尤其在计算机科学等领域有着重要的应用,在这些领域中各种系统通常被表示为复杂网络。一个社区是复杂网络中关联紧密的一个节点集合,社区内部节点间边的数量相对较多,社区内部节点与社区外部节点间边的数量相对较少。同一个社区内部的节点往往具有共同的特性或在网络中扮演着相似的角色。当网络中一个节点同时属于多个社区时,社区间就发生了重叠。在文献中有大量的重叠社区发现算法被提出,然而这些算法在处理大规模真实网络或动态网络时大多具有过大的时间消耗或难以得到准确的社区发现结果。由于缺乏扩展性较好的重叠社区发现算法和真实网络的动态性,大规模真实网络和大规模动态网络的重叠社区发现仍然是一个热点问题。基于局部扩展的社区发现算法是对大规模网络适应性最好的重叠社区发现算法之一。然而由于缺乏快速有效的种子选择方法和社区优化方法,这类算法往往得到准确性较低的社区结果或者在社区发现的过程中用到大量真实社区结构的先验信息。因此,本文基于局部扩展方法展开研究,主要内容包括种子选择方法、社区优化方法和动态网络的重叠社区发现。第一,在基于局部扩展的重叠社区发现算法中,种子的选择往往决定了局部扩展方法的社区发现准确性,然而目前缺乏有效的种子选择方法。一些现有方法忽略了种子间发生重叠的情况,出现扩展成几乎完全相同或高度相似社区的问题;一些方法将一个中心节点和它所有邻节点组成的集合作为一个种子,但是在选择种子过程中仅限定了中心节点的特征而没有考虑作为社区扩展起点的整个集合的特征。为了解决这些问题,本文提出一种基于网络子图总度和密度的无参数种子选择算法,该方法主要使用网络局部结构信息,首次将网络子图的总度和密度应用到种子选择算法中,并且不允许种子之间重叠。基于该种子选择算法,本文提出了一个适应大规模网络的快速准确的重叠社区发现算法DSCM(Density-based Seeding and Conductance Minimizing)。在人工网络上的实验结果表明该种子选择算法优于同类方法。在大规模真实网络上的实验结果表明DSCM算法的表现超过其它重叠社区发现算法,特别地,相对于基于网络全局结构信息的重叠社区发现算法,该算法在运行效率上提高了大约两个数量级,同时可以得到更加优质的社区结构;相对于当前基于网络局部信息的重叠社区发现算法,该算法在没有任何真实社区结构先验信息的前提下大幅度的提高了社区发现的准确度。第二,为了解决同一个种子内的节点可能不在同一个社区内的问题,本文将网络中节点的影响力融入到节点间相似度的计算中,并将一个社区的种子定义为由三个节点组成的线或三角形,每个种子包含一个影响力相对较大的核心节点,另外两个成员通过节点影响力和与核心节点间的相似度在核心节点的邻节点中选择,既保证了种子具有较大的总节点影响力,又减少了同一个种子内的节点不在同一个社区内的可能性。在此基础上,本文提出了一种基于节点影响力和节点间相似度的重叠社区发现算法VISM(Vertex Influence and Similarity Method)。在人工网络上的实验结果表明该种子选择方法相对于同类方法可以得到相对准确的社区结构。在大规模真实网络上的实验结果表明VISM算法的表现超过其它算法,特别地,相对于面向大规模网络的基于网络全局结构信息的重叠社区发现算法,该算法在运行效率上提高了多个数量级,同时可以得到更加优质的社区结构;相对于当前基于网络局部信息的重叠社区发现算法,该算法在没有任何先验信息的前提下大幅度的提高了社区发现的准确度。第三,为了提高基于局部扩展重叠社区发现算法的准确性,本文提出了三个社区优化过程对社区的导率进行优化:(1)通过节点的移动来修正节点与社区之间不准确的隶属关系;(2)提出一个社区合并函数,该函数包含社区间的相似度和社区合并带来的社区导率变化两部分,并用该函数对高度重叠的社区进行合并;(3)将社区导率作为目标函数来为网络中的孤立节点选择社区。在此基础上,本文提出了一个精确的基于网络局部结构信息的重叠社区发现算法LECM(Local Expansion and Conductance Minimizing)。在人工网络上的实验结果表明本文提出的三个社区优化过程可以有效的对社区导率进行优化并大幅度的提高发现社区的质量。在大规模真实网络上的实验结果表明LECM算法具有相对优秀的表现。最后,本文提出一个面向动态网络的基于局部扩展的自适应社区更新算法ADIS(Adaptive Community Update based on DIS)。在该算法中,动态网络的结构变化被分成了四个基本事件:节点和边插入、节点和边的移除。ADIS算法首先应用静态网络社区发现算法DIS对动态网络的初始网络结构进行社区划分得到一个基础社区结构,然后针对动态网络在每个时间点不同类型的结构变化分别对社区进行基于导率优化和局部扩展方法的更新。ADIS算法可以发现动态网络中发生的主要事件,包括社区诞生、社区消亡、社区扩张和社区收缩。在人工动态网络上的实验结果表明ADIS算法可以相对准确的发现动态网络的社区结构。