Stochastic block models for community detection in heterogeneous networks