Roles represent node-level connectivity patterns such as star-center,
star-edge nodes, near-cliques or nodes that act as bridges to different regions
of the graph. Intuitively, two nodes belong to the same role if they are
structurally similar. Roles have been mainly of interest to sociologists, but
more recently, roles have become increasingly useful in other domains.
Traditionally, the notion of roles were defined based on graph equivalences
such as structural, regular, and stochastic equivalences. We briefly revisit
the notions and instead propose a more general formulation of roles based on
the similarity of a feature representation (in contrast to the graph
representation). This leads us to propose a taxonomy of two general classes of
techniques for discovering roles which includes (i) graph-based roles and (ii)
feature-based roles. This survey focuses primarily on feature-based roles. In
particular, we also introduce a flexible framework for discovering roles using
the notion of structural similarity on a feature-based representation. The
framework consists of two fundamental components: (1) role feature construction
and (2) role assignment using the learned feature representation. We discuss
the relevant decisions for discovering feature-based roles and highlight the
advantages and disadvantages of the many techniques that can be used for this
purpose. Finally, we discuss potential applications and future directions and
challenges.