  Real-world networks are often organized as modules or communities of similar
nodes that serve as functional units. These networks are also rich in content,
with nodes having distinguishing features or attributes. In order to discover a
network's modular structure, it is necessary to take into account not only its
links but also node attributes. We describe an information-theoretic method
that identifies modules by compressing descriptions of information flow on a
network. Our formulation introduces node content into the description of
information flow, which we then minimize to discover groups of nodes with
similar attributes that also tend to trap the flow of information. The method
has several advantages: it is conceptually simple and does not require ad-hoc
parameters to specify the number of modules or to control the relative
contribution of links and node attributes to network structure. We apply the
proposed method to partition real-world networks with known community
structure. We demonstrate that adding node attributes helps recover the
underlying community structure in content-rich networks more effectively than
using links alone. In addition, we show that our method is faster and more
accurate than alternative state-of-the-art algorithms.
