Massively Parallel Algorithms for the Stochastic Block Model
Learning the community structure of a large-scale graph is a fundamental problem in machine learning, computer science and statistics. We study the problem of exactly recovering the communities in a graph generated from the Stochastic Block Model (SBM) in the Massively Parallel Computation (MPC) model. Specifically, given kn vertices that are partitioned into k equal-sized clusters (i.e., each has size n), a graph on these kn vertices is randomly generated such that each pair of vertices is connected with probability p if they are in the same cluster and with probability q if not, where p > q > 0. We give MPC algorithms for the SBM in the (very general) s-space MPC model, where each machine has memory s=Ω(log n). Under the condition that p-q/√(p)≥Ω̃(k^1/2n^-1/2+1/2(r-1)) for any integer r∈ [3,O(log n)], our first algorithm exactly recovers all the k clusters in O(krlog_s n) rounds using Õ(m) total space, or in O(rlog_s n) rounds using Õ(km) total space. If p-q/√(p)≥Ω̃(k^3/4n^-1/4), our second algorithm achieves O(log_s n) rounds and Õ(m) total space complexity. Both algorithms significantly improve upon a recent result of Cohen-Addad et al. [PODC'22], who gave algorithms that only work in the sublinear space MPC model, where each machine has local memory s=O(n^δ) for some constant δ>0, with a much stronger condition on p,q,k. Our algorithms are based on collecting the r-step neighborhood of each vertex and comparing the difference of some statistical information generated from the local neighborhoods for each pair of vertices. To implement the clustering algorithms in parallel, we present efficient approaches for implementing some basic graph operations in the s-space MPC model.
READ FULL TEXT