Revealing structure in large graphs: Szemerédi's regularity lemma and its use in pattern recognition