Community detection is the problem of identifying densely connected clusters of nodes within a network. The Louvain algorithm is a widely used method for this task, but it can produce communities that are internally disconnected. To address this, the Leiden algorithm was introduced. However, our analysis and empirical observations indicate that the Leiden algorithm still identifies disconnected communities, albeit to a lesser extent. To mitigate this issue, we propose two new parallel algorithms: GSP-Leiden and GSP-Louvain, based on the Leiden and Louvain algorithms, respectively. On a system with two 16-core Intel Xeon Gold 6226R processors, we demonstrate that GSP-Leiden/GSP-Louvain not only address this issue, but also outperform the original Leiden, igraph Leiden, and NetworKit Leiden by 373x/473x, 86x/186x, and 7.2x/17.2x respectively - achieving a processing rate of 352M/652M edges/s on a 3.8B edge graph. Furthermore, GSP-Leiden/GSP-Louvain improve performance at a rate of 1.6x/1.7x for every doubling of threads.
翻译:社区检测是在网络中识别密集连接节点簇的问题。鲁汶算法(Louvain algorithm)是解决此任务的广泛使用的方法,但它可能产生内部不连通的社区。为此,莱顿算法(Leiden algorithm)被提出。然而,我们的分析和实证观察表明,莱顿算法仍会识别出不连通的社区,尽管程度较轻。为缓解该问题,我们提出了两种新的并行算法:GSP-Leiden和GSP-Louvain,它们分别基于莱顿和鲁汶算法。在配备两个16核Intel Xeon Gold 6226R处理器的系统上,我们证明GSP-Leiden/GSP-Louvain不仅解决了该问题,还在性能上分别比原始莱顿算法、igraph莱顿算法和NetworKit莱顿算法提升373倍/473倍、86倍/186倍和7.2倍/17.2倍——在38亿条边的图上实现了3.52亿条边/秒和6.52亿条边/秒的处理速率。此外,每当线程数翻倍时,GSP-Leiden/GSP-Louvain的性能提升率为1.6倍/1.7倍。