  Bipartite networks are of great importance in many real-world applications.
In bipartite networks, butterfly (i.e., a complete 2 x 2 biclique) is the
smallest non-trivial cohesive structure and plays a key role. In this paper, we
study the problem of efficient counting the number of butterflies in bipartite
networks. The most advanced techniques are based on enumerating wedges which is
the dominant cost of counting butterflies. Nevertheless, the existing
algorithms cannot efficiently handle large-scale bipartite networks. This
becomes a bottleneck in large-scale applications. In this paper, instead of the
existing layer-priority-based techniques, we propose a vertex-priority-based
paradigm BFC-VP to enumerate much fewer wedges; this leads to a significant
improvement of the time complexity of the state-of-the-art algorithms. In
addition, we present cache-aware strategies to further improve time efficiency
while theoretically retaining the time complexity of BFC-VP. Moreover, we also
show that our proposed techniques can work efficiently in external and parallel
contexts. Our extensive empirical studies demonstrate that the proposed
techniques can speed up the state-of-the-art techniques by up to two orders of
magnitude for the real datasets.
