  Graph clustering is a fundamental problem in unsupervised learning, with
numerous applications in computer science and in analysing real-world data. In
many real-world applications, we find that the clusters have a significant
high-level structure. This is often overlooked in the design and analysis of
graph clustering algorithms which make strong simplifying assumptions about the
structure of the graph. This thesis addresses the natural question of whether
the structure of clusters can be learned efficiently and describes four new
algorithmic results for learning such structure in graphs and hypergraphs.
  All of the presented theoretical results are extensively evaluated on both
synthetic and real-word datasets of different domains, including image
classification and segmentation, migration networks, co-authorship networks,
and natural language processing. These experimental results demonstrate that
the newly developed algorithms are practical, effective, and immediately
applicable for learning the structure of clusters in real-world data.
