社区检测是一种利用图拓扑结构信息从复杂网络中解析出社区结构的技术,可广泛地应用于社交网络、生物医学等领域中。
社区检测算法主要分为图划分算法、模块度优化算法、标签传播算法、相似度算法等。
其中标签传播算法由于时间复杂度近乎线性,社区检测质量优与其它类型算法得到广泛的关注,但算法存在传播过程随机性较高,不能得到稳定社区划分的问题。
为此,本文考虑节点重要性与相似度因素加入到标签传播过程中,提出两种改进的社区检测算法。
具体工作内容如下:
1)提出基于节点重要性的社区检测算法(Community Detection Algorithm Based On Node Importance)。该算法首先通过种子节点及为其邻居节点赋值标签完成对社区的初始划分;其次将社区之间根据节点数目排序,社区内部引入节点标签变化的值来计算节点重要性,以此来确定节点更新顺序;接着当出现多个最大标签作为候选时,依据节点重要性和节点优先度的共同作用定义的节点影响力来确定标签传播的方向;最后依据社区前后模块度值作为依据来确定社区是否合并。但该算法种子节点选择较为简单,重要性导致重要节点先传播限制了节点传播范围。
2)提出基于节点相似度的社区检测算法(Community Detection Algorithm Based On Node Similarity)。针对上述算法的问题,首先在初始社区划分阶段利用种子节点相似度选择种子节点完成初始社区划分;其次在社区内部引入节点与邻居节点之间节点相似度,优化节点重要性完成社区内标签传播的排序;接着当出现多个候选标签时,考虑邻居节点的反向影响,增加到节点影响力计算中,以此得到准确更新顺序;最后为了提高对社区的质量,根据社区相似度以此合并社区,促使算法检测得到高质量的社区划分。