随着网络规模的不断扩大,传统社区发现算法已无法有效和高效地处理大规模网络数据.基于Spark分布式图计算模型,提出大规模复杂网络社区并行发现算法DBCS(Discovering Big Community on Spark).算法利用基于模块度的聚类思想,首先计算出节点对之间的模块度增量,然后迭代查找出所有模块度增量最大的节点对,对所有节点对进行合并操作,并更新节点对之间的模块度增量,进而实现大规模复杂网络社区识别.大量真实复杂网络与仿真网络数据集上的实验结果表明:DBCS算法能有效地解决传统社区发现算法无法处理的大规模复杂网络社区划分问题,百万级以上节点处理时间约为4min,是Hadoop平台下并行发现算法运行时间的1/20,社区识别准确率比传统社区发现算法提高了7.4%.
As the size of networks grows larger,traditional community discovery algorithms cannot effectively and efficiently process the large-scale network data.Based on the Spark distributed graph computing model,this study proposes a parallel algorithm for discovering communities in large-scale complex networks,called DBCS(Discovering Big Community on Spark). The proposed approach employs the basic idea of clustering method beyond modularity,which first calculates the increment of the modularity between the node pairs,and then iteratively finds themaximum modularity increment among all the node pairs.Lastly,it merges the node pairs,and updates the modularity increment of the remaining nodes,in order to identify the communities in large-scale complex networks.Extensive experiments are conducted on several real and synthetic network datasets and the results demonstrate that DBCS can effectively deal with the problem of partitioning the large-scale networks that does not make sense for traditional algorithms.In particular,it only takes about four minutes to handle more than one million nodes for community discovery.In addition,the time cost is reduced to 1/20 of the parallel algorithm based on Hadoop.The accuracy is improved by 7.4% when compared to traditional community discovery algorithms.