关键词:
复杂网络
社团检测
潜在语义分析
图表示学习
聚类
摘要:
在我们的日常工作和生活中,充斥着各种各样的复杂系统。在这些复杂系统中,看似纷繁复杂的实体及其之间的关系,实际上可以被抽象为节点和边。这样,由实体和实体之间的关系组成的复杂系统,就被抽象为由节点和边构成的复杂网络。社团结构作为复杂网络中的重要特征之一,其在复杂网络中通常对应于相应的功能模块,如何发现复杂网络中的社团结构成为研究人员探索复杂网络的一个研究热点,从而有大量的社团检测算法被提出。在对已有的社团检测算法进行了充分的研究后,本文也分别基于潜在语义分析(Latent Semantic Analysis,LSA)和节点关系强化策略,提出了两种社团检测算法。(1)基于潜在语义分析的社团检测算法LSACD。该算法采用LSA算法的思想,将网络中的节点当作词项,将从每一个节点出发进行随机游走得到的节点序列当作文档,构建节点-文档矩阵;然后通过向量空间模型(Vector Space Model,VSM)得到矩阵中每一个元素的词频-逆文档频率(Term Frequency-Inverse Document Frequency,TF-IDF)值,其中,矩阵的每一行表示每一个文档对应节点的初始向量表示;接着利用奇异值分解(Singular Value Decomposition,SVD)算法对节点-文档矩阵进行分解,得到节点-节点、节点-文档以及文档-文档之间的向量关系,并且获得每个节点的最终向量表示;最后,通过对节点向量进行聚类得到社团结构。(2)基于节点关系强化策略的社团检测算法FLLNE。FLLNE算法是在社团检测算法的基础上,与图表示学习算法和聚类算法相结合而提出的一种通过增强网络中的节点关系来进行社团检测的算法。该算法首先通过快速社团检测算法检测得到初始社团结构,属于同一个社团中的节点,它们之间的连接关系比不在同一个社团中的节点之间的连接关系更强。为了增强这些节点的连接有效性,使它们之间的连接关系更加紧密,对于节点之间已有连接关系的边,算法在其初始权值为1的基础上再增加初始社团结构的模块度作为权值;对于没有连接关系的节点对,算法对它们进行加边处理并赋予模块度作为新增边的权值。然后将得到节点关系强化处理的网络输入到图表示学习算法中,获得整个网络中所有节点的向量表示;最后,通过对节点向量进行聚类得到最终的社团结构。本文在多组人工合成网络和多个实际网络上对所提算法进行了大量实验,并与众多具有代表性的对比算法进行了对比实验。实验结果充分表明,本文所提算法能够在不同的网络中提取出高质量的社团结构。