  Community detection in graphs has many important and fundamental applications
including in distributed systems, compression, image segmentation,
divide-and-conquer graph algorithms such as nested dissection, document and
word clustering, circuit design, among many others. Finding these densely
connected regions of graphs remains an important and challenging problem. Most
work has focused on scaling up existing methods to handle large graphs. These
methods often partition the graph into two or more communities. In this work,
we focus on the problem of hierarchical community detection (i.e., finding a
hierarchy of dense community structures going from the lowest granularity to
the largest) and describe an approach that runs in linear time with respect to
the number of edges and thus fast and efficient for large-scale networks. The
experiments demonstrate the effectiveness of the approach quantitatively.
Finally, we show an application of it for visualizing large networks with
hundreds of thousands of nodes/links.
