现实世界中的很多系统都可以被抽象为复杂网络, 如社交网络、技术网络、生物网络, 这些网络都具有一种普遍的特性——社区结构. 在不同类型的网络中, 社区有着不同的含义, 但是所有社区内部节点间的联系总是比不同社区节点间的联系密切, 准确地发现社区结构是在中观层面上理解复杂网络进而研究复杂系统的有效途径.
社区发现的研究历史可以追溯到1927年, Rice等基于投票模式的相似性发现小的政治团体中的社区[1]. 早期的研究工作大部分都围绕非重叠社区发现展开, 此类算法将复杂网络划分成若干个互不相连的社区结构且一个节点只能隶属于一个社区[2]. 然而, 现实中网络社区之间往往是相互重叠的, 硬划分的社区发现算法无法满足需求, 例如, 在社交网络中, 如果每个社区代表拥有共同兴趣爱好的用户所组成的群体, 则一个用户可以拥有诸多兴趣爱好而隶属于多个社区, 显然, 重叠的社区结构更能体现出复杂网络的特性, 进而帮助我们从中观层面对复杂系统进行分析.
对复杂网络中重叠社区的发现与研究也因此成为近年来新的研究热点, 而社区发现作为社区分析相关工作的前提, 对于其他领域的研究有着重要影响. 目前, 重叠社区的发现结果可以被应用于情感分析、个性化推荐、实体消歧和链接预测等领域的研究.
1 相关工作近年来, 学者们相继提出大量能够识别重叠社区的算法. Palla等提出一种基于最大团的派系过滤算法CPM来分析重叠的社区结构[3], 该算法易受k值影响, 且以最大团为种子的方式计算复杂度较高. COPRA算法[4]对基于标签传播的非重叠社区发现算法进行改进, 在标签后面附上节点对该标签的归属系数, 以便衡量该节点包含多个社区的信息比重, 在迭代更新节点标签的过程中允许一个节点同时拥有多个标签, 以发现网络中的重叠社区, 该算法每次迭代的时间复杂度接近线性但稳定度较差. 基于链路的重叠社区发现算法首先对网络的边进行聚类, 然后通过收集链路社区内的所有连接的节点进行社区划分, 代表算法为LINK算法[5]. 在此基础上, Li等[6]提出一种基因表示模型, 通过将链路社区映射成节点社区的方式, 实现对重叠节点的发现. 基于局部社区优化和扩展的方法则从局部社区出发, 基于优化函数进行扩张, 社区间的交叉部分则为重叠节点, 代表算法为LFM算法[7], 除此之外, Su等[8]提出利用随机游走策略扩展优化的方法. 文献[9]在此基础上提出基于种子节点选择的重叠社区发现算法, 首先通过定义的影响力函数选取种子节点, 然后通过吸引力函数以种子节点为核心进行扩展, 发现种子所在的局部社区结构. 其中, 基于种子节点选择和扩展的算法由于稳定性好、效率高而成为主流的社区发现算法. Wang等[10]提出一种基于结构中心性的种子选择算法, 实现了一个高覆盖率的朴实算法, 提高了社区发现质量, 但算法不能很好地适用于大规模数据集. 於志勇等提出的i-SEOCD算法能够高效地从种子节点出发进行局部扩展, 最终发现稳定的重叠社区[11], 但是该算法在计算节点相似度时只考虑了局部网络, 提高算法执行效率的同时也牺牲了算法准确性.
现有基于种子节点扩展的重叠社区发现算法虽然在稳定性方面表现较好, 但在衡量两节点间关系时, 往往将两节点间是否有连边作为唯一判别标准, 而只考虑狭小作用域范围内的局部信息的做法, 虽然提升了社区发现的效率, 但忽略了网络中更大范围内节点和边因素对社区发现过程的影响, 使得算法在提升效率的同时往往以牺牲部分准确性为代价. 同时, 现有算法在基于种子节点进行社区扩展的过程中, 往往需要不断地迭代计算现有社区与未划分节点间的相似性关系, 计算量大, 不适合进行大规模网络的社区发现.
为了更好地解决以上问题, 本文利用Node2Vec[12]算法对网络结构进行学习, 通过控制在游走产生节点序列过程中对深度优先和广度优先的趋向, 将更大范围内的拓扑结构信息体现到节点因素中, 提出了基于Node2Vec的重叠社区发现算法, 该算法能够解决现有算法存在的以牺牲准确性来提高效率和不适合大规模数据集的问题.
2 基于Node2Vec的重叠社区发现算法针对以Jaccard相似度为指标衡量节点间距离的方法所存在的局限性, 本文采用网络表示学习算法学习到网络中每个节点的向量表示, 针对传统种子节点选择方法稳定性和鲁棒性差的缺点, 提出了新的种子节点选择算法, 并以此为基础进行社区扩张和优化.
2.1 Node2Vec算法Perozzi等[13]提出了将Word2Vec的思想用于图节点表示学习的Deepwalk算法, Node2Vec在此的基础上改变了随机游走的序列生成方式, 通过半监督的方式学习p, q两个超参数的值, 控制游走对深度和广度的趋向, 其中p控制跳向前节点邻居的概率, q控制跳向前节点非邻居的概率, 如图1所示.
图1中,
在进行种子节点发现前, 首先利用Node2Vec算法对网络结构进行学习, 在学习到网络中每个节点的向量表示后, 对于任意节点
通常, 一个网络可以用无向图
在网络中, 节点u的邻居集合N(u)定义如下:
$N(u) = \{ u:v \in V,(u,v) \in E\} \;$ | (1) |
节点u对节点v的影响力用F(u,v)表示如下:
$F(u,v) = \frac{{D(u)D(v)}}{{{{(1 - sim(u,v))}^2}}}$ | (2) |
其中, D(u)和D(v)分别表示节点u和v的度,
节点u的影响力值通过以下公式计算得到:
$F(u) = \sum\limits_{v \in N(u)} {\frac{{D(u)D(v)}}{{{{(1 - sim(u,v))}^2}}}} $ | (3) |
节点影响力的大小与其邻居节点的数量、度数以及相异度有关, 影响力越大, 节点越有机会成为种子节点.
在种子节点选择算法中, 首先根据节点的向量计算所有节点的影响力值, 如果某节点的影响力值比其所有邻居节点的影响力值都大, 则将该节点加入到种子节点的集合中. 算法1中列出了种子节点选择算法的伪代码, 其中2–4行利用定义的节点影响力计算公式计算出每个几点的影响力值, 5–9行将每个节点的影响力值与其所有邻居的影响力值进行比较, 若邻居节点中没有比当前节点影响力值大的节点, 则将该节点加入到种子节点集合中.
算法1. 种子节点选择算法
输入: 无向图
输出: 种子节点集合S.
1.
2. for
3. 利用式(3)计算F(u)
4. end for
5. for u
6. if
7.
8. end if
9. end for
10. return S
2.3 社区扩展算法针对现有算法在社区扩张过程中重复计算量大的问题, 本文在得到分布均匀、影响力大的种子节点之后, 充分利用前一阶段计算所得的节点相似度矩阵, 从每个种子节点出发进行社区扩展, 首先, 以集合中的每个种子节点为核心构建社区, 若节点与种子节点的相似度大于阈值
算法2中列出了社区扩展算法的伪代码, 2–4行首先将所有节点标记为false, 5–13行分别以每个种子节点为核心进行社区扩展, 并将被划分的节点标记为true, 此过程中以各节点为核心的社区独立进行扩展, 能够很好地根据阈值
算法2. 社区扩展算法
输入: 无向图
输出: 社区结构C.
1.
2. for
3.
4. end for
5. for seed in S do
6.
7. for
8. if
9.
10. end if
11. end for
12.
13. end for
14.
15. for node in V
16. if
17.
18. end if
19. end for
20. for v in
21. for seed in S
22. CS_num = argmax
23. end for
24.
2.5 end for
26. return C
通常情况下, 选择合适的阈值
综上, 基于Node2Vec的重叠社区发现算法整体流程大致分为以下3个步骤:
首先, 利用NodeVec算法对网络结构进行学习, 得到包含丰富拓扑结构信息的节点的向量表示, 基于节点向量值计算每对节点间的相似度, 用一个
然后, 利用前一阶段计算得到的节点相似度, 根据定义的节点影响力公式筛选出能够独立领导社区的种子节点集合.
最后, 以种子节点为核心, 分阶段进行社区扩展, 首先通过比较每个种子节点与所有非种子节点间相似度与给定阈值的大小关系初步扩展社区, 然后对于未被划分的节点, 选择与之相似度最大的种子节点, 划入其所属社区, 直至所有节点都有至少一个社区归属, 重叠社区检测完毕.
3 实验为验证算法的相关性能, 在多个不同规模的真实数据集上与其他经典重叠社区发现算法进行对比实验, 待比较的算法分别是CPM、LINK、COPRA和LFM算法.
3.1 实验数据集分别选取不同类型不同数量级的5个真实网络数据集, 具体包括美国空手道俱乐部网络Karate[14]、海豚关系网Dolphins[15]、大学生足球联赛网络Football[16]、欧洲研究机构电子邮件网络Email-EU[17]和高能物理范畴论文引用关系网Ca-HepPh[18], 各网络规模如表1.
3.2 评价指标由于社区划分没有标准的结果, 对于真实数据集, Newman提出的模块度函数[19]被广泛认可, 但该评价标准并不能很好地适用于重叠社区, Shen等在此基础上提出了能衡量重叠社区划分结果的重叠模块度函数[20], 定义如下:
$EQ = \frac{1}{{2{{m}}}}\sum\limits_i {\sum\limits_{u \in {c_i},v \in {c_i}} {\frac{1}{{{Q_u}{Q_v}}}} } \left[{A_{uv}} - \frac{{{k_u}{k_v}}}{{2m}}\right]$ | (4) |
其中,
3.3 实验结果
本文提出的算法在基于种子节点进行社区扩展时, 社区划分结果易受阈值
从图2可以看出, 在不同数据集上, 模块度总是在
将本文算法与其他4个经典的重叠社区发现算法在不同规模不同类型的数据集上进行对比实验(阈值取
在大多数数据集上, 本文算法均取得了最高的模块度值, 尤其是在Emai-EU和Ca-HepPh两个大规模的数据集上, 分别取得了接近0.5和0.4重叠模块度值, 所发现的社区质量明显优于其他算法, 实验证明, 使用Node2Vec算法将更大作用域范围内的网络信息映射到节点向量中的方式, 能够有效地避免范围限制所带来的准确率方面的牺牲, 提升社区发现质量, 在规模大、结构复杂的网络上, 提升效果格外显著.
4 结论与展望
本文提出了一种基于Node2Vec的重叠社区发现算法, 首先获得网络结构的向量表示并计算节点之间的相似度值, 利用定义的影响力函数选择出种子节点, 然后以每个种子节点为核心进行社区扩张. 本文选取了不同类型不同规模的真实网络数据集, 并在这些数据集上将本文算法与其他类经典重叠社区发现算法进行对比性实验, 实验结果表明, 本文算法在大部分数据集尤其是大规模数据集上表现出了明显的优势. 后续工作将提高算法的性能, 降低算法复杂度, 并将算法应用到动态社区发现研究中.
[1] |
Rice SA. The identification of blocs in small political bodies. American Political Science Review, 1927, 21(3): 619-627. DOI:10.2307/1945514 |
[2] |
骆志刚, 丁凡, 蒋晓舟, 等. 复杂网络社团发现算法研究新进展. 国防科技大学学报, 2011, 33(1): 47-52. DOI:10.3969/j.issn.1001-2486.2011.01.011 |
[3] |
Palla G, Derényi I, Farkas I, et al. Uncovering the overlapping community structure of complex networks in nature and society. Nature, 2005, 435(7043): 814-818. DOI:10.1038/nature03607 |
[4] |
Gregory S. Finding overlapping communities in networks by label propagation. New Journal of Physics, 2010, 12(10): 103018. DOI:10.1088/1367-2630/12/10/103018 |
[5] |
Ahn YY, Bagrow JP, Lehmann S. Link communities reveal multiscale complexity in networks. Nature, 2010, 466(7307): 761-764. DOI:10.1038/nature09182 |
[6] |
Li MM, Liu J. A link clustering based memetic algorithm for overlapping community detection. Physica A: Statistical Mechanics and its Applications, 2018, 503: 410-423. DOI:10.1016/j.physa.2018.02.133 |
[7] |
Lancichinetti A, Fortunato S, Kertész J. Detecting the overlapping and hierarchical community structure in complex networks. New Journal of Physics, 2009, 11(3): 033015. DOI:10.1088/1367-2630/11/3/033015 |
[8] |
Su YS, Wang BJ, Zhang XY. A seed-expanding method based on random walks for community detection in networks with ambiguous community structures. Scientific Reports, 2017, 7: 41830. DOI:10.1038/srep41830 |
[9] |
齐金山, 梁循, 王怡. 基于种子节点选择的重叠社区发现算法. 计算机应用研究, 2017, 34(12): 3534-3537, 3568. DOI:10.3969/j.issn.1001-3695.2017.12.003 |
[10] |
Wang XF, Liu GS, Li JH. Overlapping community detection based on structural centrality in complex networks. IEEE Access, 2017, 5: 25258-25269. DOI:10.1109/ACCESS.2017.2769484 |
[11] |
於志勇, 陈基杰, 郭昆, 等. 基于影响力与种子扩展的重叠社区发现. 电子学报, 2019, 47(1): 153-160. DOI:10.3969/j.issn.0372-2112.2019.01.020 |
[12] |
Grover A, Leskovec J. Node2Vec: Scalable feature learning for networks. Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. San Francisco, CA, USA. 2016. 855–864.
|
[13] |
Perozzi B, Al-Rfou R, Skiena S. DeepWalk: Online learning of social representations. Proceedings of the 20th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. New York, NY, USA. 2014. 701–710.
|
[14] |
Zachary WW. An information flow model for conflict and fission in small groups. Journal of Anthropological Research, 1977, 33(4): 452-473. DOI:10.1086/jar.33.4.3629752 |
[15] |
Lusseau D, Schneider K, Boisseau OJ, et al. The bottlenose dolphin community of doubtful sound features a large proportion of long-lasting associations. Behavioral Ecology and Sociobiology, 2003, 54(4): 396-405. DOI:10.1007/s00265-003-0651-y |
[16] |
Girvan M, Newman MEJ Newman. Community structure in social and biological networks. Proceedings of the National Academy of Sciences of the United States of America, 2002, 99(12): 7821-7826. DOI:10.1073/pnas.122653799 |
[17] |
Yin H, Benson AR, Leskovec J, et al. Local higher-order graph clustering. Proceedings of the 23rd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. Halifax, Nova Scotia, Canada. 2017. 555–564.
|
[18] |
Leskovec J, Kleinberg J, Faloutsos C. Graph evolution: Densification and shrinking diameters. ACM Transactions on Knowledge Discovery from Data, 2007, 1(1): 2. DOI:10.1145/1217299.1217301 |
[19] |
Newman MEJ, Girvan M. Finding and evaluating community structure in networks. Physical Review E, 2004, 69(2): 026113. DOI:10.1103/PhysRevE.69.026113 |
[20] |
Shen HW, Cheng XQ, Cai K, et al. Detect overlapping and hierarchical community structure in networks. Physica A: Statistical Mechanics and its Applications, 2009, 388(8): 1706-1712. DOI:10.1016/j.physa.2008.12.021 |