Partitioning networks into communities by message passing.

Community structures are found to exist ubiquitously in a number of systems conveniently represented as complex networks. Partitioning networks into communities is thus important and crucial to both capture and simplify these systems' complexity. The prevalent and standard approach to meet this goal is related to the maximization of a quality function, modularity, which measures the goodness of a partition of a network into communities. However, it has recently been found that modularity maximization suffers from a resolution limit, which prevents its effectiveness and range of applications. Even when neglecting the resolution limit, methods designed for detecting communities in undirected networks cannot always be easily extended, and even less directly applied, to directed networks (for which specifically designed community detection methods are very limited). Furthermore, real-world networks are frequently found to possess hierarchical structure and the problem of revealing such type of structure is far from being addressed. In this paper, we propose a scheme that partitions networks into communities by electing community leaders via message passing between nodes. Using random walk on networks, this scheme derives an effective similarity measure between nodes, which is closely related to community memberships of nodes. Importantly, this approach can be applied to a very broad range of networks types. In fact, the successful validation of the proposed scheme on real and synthetic networks shows that this approach can effectively (i) address the problem of resolution limit and (ii) find communities in both directed and undirected networks within a unified framework, including revealing multiple levels of robust community partitions.