  Community detection, a fundamental task for network analysis, aims to
partition a network into multiple sub-structures to help reveal their latent
functions. Community detection has been extensively studied in and broadly
applied to many real-world network problems. Classical approaches to community
detection typically utilize probabilistic graphical models and adopt a variety
of prior knowledge to infer community structures. As the problems that network
methods try to solve and the network data to be analyzed become increasingly
more sophisticated, new approaches have also been proposed and developed,
particularly those that utilize deep learning and convert networked data into
low dimensional representation. Despite all the recent advancement, there is
still a lack of insightful understanding of the theoretical and methodological
underpinning of community detection, which will be critically important for
future development of the area of network analysis. In this paper, we develop
and present a unified architecture of network community-finding methods to
characterize the state-of-the-art of the field of community detection.
Specifically, we provide a comprehensive review of the existing community
detection methods and introduce a new taxonomy that divides the existing
methods into two categories, namely probabilistic graphical model and deep
learning. We then discuss in detail the main idea behind each method in the two
categories. Furthermore, to promote future development of community detection,
we release several benchmark datasets from several problem domains and
highlight their applications to various network analysis tasks. We conclude
with discussions of the challenges of the field and suggestions of possible
directions for future research.
