  The most widely used techniques for community detection in networks,
including methods based on modularity, statistical inference, and information
theoretic arguments, all work by optimizing objective functions that measure
the quality of network partitions. There is a good case to be made, however,
that one should not look solely at the single optimal community structure under
such an objective function, but rather at a selection of high-scoring
structures. If one does this one typically finds that the resulting structures
show considerable variation, and this has been taken as evidence that these
community detection methods are unreliable, since they do not appear to give
consistent answers. Here we argue that, upon closer inspection, the structures
found are in fact consistent in a certain way. Specifically, we show that they
can all be assembled from a set of underlying "building blocks", groups of
network nodes that are usually found together in the same community. Different
community structures correspond to different arrangements of blocks, but the
blocks themselves are largely invariant. We propose an information theoretic
method for discovering the building blocks in specific networks and demonstrate
it with several example applications. We conclude that traditional community
detection is not the failure some have suggested it is, and that in fact it
gives a significant amount of insight into network structure, although perhaps
not in exactly the way previously imagined.
