论文部分内容阅读
随着人际关系的复杂化,社交网络的规模变得更加庞大,也变得更加复杂,对复杂网络中的社区结构的检测工作也变得越来越重要。随着深度学习技术的应用,基于图神经网络的社区检测研究也越来越受到人们的关注。一方面,图结构语料库质量低,使得节点向量表示的质量降低,则基于该节点表示的静态社区检测结果的准确度降低;另一方面,静态社区检测结果随着时间的推移是不断变化的,故将该静态社区检测结果作为动态网络结构演化过程的初始时刻网络快照,在计算每个时刻社区检测结果时,原来的基于节点表示方式的社区检测方法不再适用于动态社区检测,除了原来的节点表示方式,演化过程中还存在其他因素会影响最终的动态社区结果,所以我们需要解决的问题是,在静态社区检测时找到一种有效的节点表示方式的社区检测算法,在动态社区检测时,继续运用新的节点表示方式建立新的模型来提高动态社区检测结果的准确度,使其能够还原真实网络的社区结构。针对上述问题,本文提出了一种基于改进的节点表示的社区检测算法和一种基于模块度的增量式动态社区检测模型,以及相关的计算方法和理论原理。论文的主要工作包括:1)提出一种基于节点影响力的社区检测算法。并将基于节点影响力的社区检测算法分为三个阶段:随机游走生成语料库阶段,融合影响力信息的节点表示学习阶段和静态社区检测阶段。在随机游走生成语料库阶段结合网络拓扑信息和节点的影响力属性信息,定义了新的搜索策略,生成的游走序列构造的语料库质量有所提高。在融合影响力信息的节点表示学习阶段,定义了新的目标函数,当模型收敛时可以得到语义丰富的节点向量表示。在静态社区检测阶段,综合考虑了节点和社区之间多对多的关系,即不同序列中的相同节点可以归属于不同的社区,同一个序列中的不同社区可以包含不同的节点,在已知中心节点的归属社区的前提下,预测其邻居节点的归属社区,最终可以得到所有节点的社区归属情况,达到了社区检测的效果。2)提出一种基于模块度的增量式动态社区检测模型。模型首先根据改进的模块度增量定义初步判断出变化的节点对社区产生的变化,是基于拓扑结构方面进行粗粒度判断,这一步骤可以实现粗粒度定位出变化的节点和社区数量的变化情况。接下来按照新增节点和移除节点,分别执行新增节点的动态社区检测算法和移除旧节点的动态社区检测算法,再结合第一步初步定位的社区变化情况,在发生新增节点的演变时,对社区数量不变时采用只训练新增节点向量的方式,对社区数量改变时采用增量式训练节点向量和社区向量的方式。在发生移除旧节点的演变时,对社区数量不变时采用增量式训练节点向量的方式,对社区数量改变时采用增量式训练节点向量和社区向量的方式。这样经过第二个步骤,可以实现细粒度的计算节点的社区归属概率,进而对节点的社区归属情况进行细粒度的调整,这样二阶段式的计算方法,减小了每个时刻划分结果产生的误差,提高了最终动态社区检测的准确度,还原了真实网络的社区结构。3)在仿真实验中,将本文提出的算法和模型分别与多个典型的算法进行对比分析。验证了本文所提出的基于节点影响力的社区检测算法,能够提高语料库的质量,使训练后的节点向量包含的语义信息更丰富,提高了社区检测结果的准确度。也验证了基于模块度的增量式动态社区检测模型,能够通过粗粒度划分定位以及细粒度计算节点的归属概率进行调整,减小了每个时刻的社区检测结果产生的误差,提高了最终社区检测结果的准确度,还原了真实网络的社区结构情况。