Thanks for your reply. I had already experimented with the nested SBM, as described in the section “Ordered community structure”. However, I think this still tries to construct a global ranking of blocks. In my application, I want to detect rankings that only exist within larger communities, so that flows within larger communities are mostly upstream, but are unrestricted across these larger communities.
You’re confusing ranking with hierarchical structure, but these are different things. Ignore the ordered SBM and focus on the nested SBM, described in the link I sent.
Respectfully, I think you have misread or misunderstood what I am trying to do, probably because I have used unclear terminology. Let me re-phrase it. I want to estimate a model where each node belongs to
one of M different rankings
one of L_m levels within its ranking m
where a ranking is defined as in the ordered SBM (i.e., more upstream flows than downstream). In your hiring-network example, imagine that I wanted to estimate (different) rankings for both computer science and biology, but I didn’t observe ex-ante which position belonged into which of the two markets. Therefore, I would need to assign both a market (CompSci or Biology) and a level within that market to each node (position).
If this structure is present in the data, the algorithm will find it for you. But if you are looking for a bespoke constraint that enforces this specific structure in the inferred model, then this it is not implemented.