  Bipartite networks are a common type of network data in which there are two
types of vertices, and only vertices of different types can be connected. While
bipartite networks exhibit community structure like their unipartite
counterparts, existing approaches to bipartite community detection have
drawbacks, including implicit parameter choices, loss of information through
one-mode projections, and lack of interpretability. Here we solve the community
detection problem for bipartite networks by formulating a bipartite stochastic
block model, which explicitly includes vertex type information and may be
trivially extended to $k$-partite networks. This bipartite stochastic block
model yields a projection-free and statistically principled method for
community detection that makes clear assumptions and parameter choices and
yields interpretable results. We demonstrate this model's ability to
efficiently and accurately find community structure in synthetic bipartite
networks with known structure and in real-world bipartite networks with unknown
structure, and we characterize its performance in practical contexts.
