Algorithmische Methoden zur Netzwerkanalyse Juniorprof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 Institutund für Theoretische KIT –Henning Universität desMeyerhenke, Landes Baden-Württemberg nationales Forschungszentrum in der Helmholtz-Gemeinschaft Algorithmische Methoden zur Netzwerkanalyse Informatik www.kit.edu Vorlesung 16 Programm: Clusteranalyse in Graphen Übungsaufgabe 14 Spektrale Clusteranalyse Lokale Optimierung von Modularität 2 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Inhalt Clusteranalyse von Graphen Einführung Spektrale Clusteranalyse Lokale Algorithmen 3 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Einführung Community Detection “Natürliche” Gruppen eines Netzwerks identifizieren Komplexität reduzieren: Anwendung teurer Algorithmen nur auf Teile des Netzwerks – aber welche? Clusteranalyse (z. B. geometrisch) Daten desselben Clusters sind sich ähnlich Daten verschiedener Cluster sind sich unähnlich 4 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Einführung Community Detection “Natürliche” Gruppen eines Netzwerks identifizieren Komplexität reduzieren: Anwendung teurer Algorithmen nur auf Teile des Netzwerks – aber welche? Clusteranalyse (z. B. geometrisch) Daten desselben Clusters sind sich ähnlich Daten verschiedener Cluster sind sich unähnlich Community Detection Knoten desselben Clusters sind stark miteinander verbunden Knoten verschiedener Cluster sind schwach miteinander verbunden 4 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse http://renardteipelke. blogspot.com Clusteranalyse von Graphen Einführung Community Detection Problem (Graph Clustering / Community Detection) Eingabe: Graph G = (V , E ) Ausgabe: Clusterung (Partition von V ), die Zielfunktion optimiert Weitere Anwendungen Ähnliche Objekte finden (Gene, Produkte, Personen, ...) Verteiltes Rechnen, Speichern Visualisierung 5 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Einführung Community Detection Problem (Graph Clustering / Community Detection) Eingabe: Graph G = (V , E ) Ausgabe: Clusterung (Partition von V ), die Zielfunktion optimiert Weitere Anwendungen Ähnliche Objekte finden (Gene, Produkte, Personen, ...) Verteiltes Rechnen, Speichern Visualisierung ZF Modularität ist Differenz aus zwei Verhältnissen (Coverage, erw. Cov.): 2 ! |E (C )| ∑v ∈C deg(v ) q (C) = ∑ − m 2m C ∈C 5 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Einführung Modularität Komplexität Optimierung bzgl. Modularität ist streng N P -schwer Problem 1: M ODULARITY Gegeben ein Graph G und eine Zahl K , gibt es eine Clusterung C von G, für die q (C) ≥ K gilt? 6 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Einführung Modularität Komplexität Optimierung bzgl. Modularität ist streng N P -schwer Problem 1: M ODULARITY Gegeben ein Graph G und eine Zahl K , gibt es eine Clusterung C von G, für die q (C) ≥ K gilt? Problem 2: 3-PARTITION Seien 3k positive ganze Zahlen a1 , . . . , a3k derart gegeben, dass ∑3k i =1 ai = kb und b/4 < ai < b/2 für eine ganze Zahl b und alle i = 1, . . . , 3k . Gibt es eine Partition dieser Zahlen in k Mengen derart, dass die Zahlen in jeder Menge in der Summe b ergeben? 6 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Einführung Komplexitätsbeweis Vorüberlegungen zur Reduktion 3-PARTITION ist streng N P -vollständig, d.h. das Problem bleibt auch bei unärer Kodierung N P -vollständig ⇒ Kein Algorithmus kann das Problem entscheiden in einer Zeit, die polynomiell in der Summe der Eingabewerte ist (es sei denn, P = N P) Daher braucht unsere Transformation in der Reduktion auch nur pseudo-polynomiell zu sein 7 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Einführung Komplexitätsbeweis Vorüberlegungen zur Reduktion 3-PARTITION ist streng N P -vollständig, d.h. das Problem bleibt auch bei unärer Kodierung N P -vollständig ⇒ Kein Algorithmus kann das Problem entscheiden in einer Zeit, die polynomiell in der Summe der Eingabewerte ist (es sei denn, P = N P) Daher braucht unsere Transformation in der Reduktion auch nur pseudo-polynomiell zu sein Zeigen: Instanz A = {a1 , . . . , a3k } von 3-PARTITION kann derart in Instanz (G (A), K (A)) von M ODULARITY transformiert werden, dass G (A) genau dann eine Clusterung C mit q (C ) ≥ K hat, wenn 3-PARTITION lösbar ist. 7 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Einführung Reduktion [Brandes et al., IEEE TKDE 2008] 8 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Einführung Komplexitätsbeweis Theorem (Brandes et al., IEEE TKDE 2008) M ODULARITY ist streng N P -vollständig. Beweis. In Polynomialzeit lässt sich prüfen, ob q (C) ≥ K (A) ⇒ M ODULARITY ∈ N P Zum Beweis der Vollständigkeit: Transformation wie beschrieben Aus A = {a1 , . . . , a3k } wird (G (A), K (A)) Lösung für A erfordert Aufteilung der Element-Knoten zwischen den Clustern, die so gleichmäßig wie möglich bzgl. der Summe der Knotengrade pro Cluster ist Siehe auch aktualisiertes Skript! 9 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Einführung Inhalt Clusteranalyse von Graphen Einführung Spektrale Clusteranalyse Lokale Algorithmen 10 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Spektrale Clusteranalyse Spektrale Optimierung von Modularität N P -schwer: Was nun? Spektrale Clusteranalyse: Globale Methode (Heuristik) Hier: Darstellung für Teilung in 2 Cluster Allgemeines k durch rekursives Vorgehen Setzt voraus, dass k bekannt ist 11 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Spektrale Clusteranalyse Spektrale Optimierung von Modularität N P -schwer: Was nun? Spektrale Clusteranalyse: Globale Methode (Heuristik) Hier: Darstellung für Teilung in 2 Cluster Allgemeines k durch rekursives Vorgehen Setzt voraus, dass k bekannt ist Gegeben: Schlichter, ungerichteter und zusammenhängender Graph G = (V , E ), |V | = n, mit positiven Kantengewichten Gesucht: 2-Clusterung (V1 , V2 ), die Modularität maximiert 11 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Spektrale Clusteranalyse Das grobe Vorgehen 1. 2. 3. 4. 5. Kodiere Clusterung in Vektoren Kodiere Graphen in einer Matrix Zielfunktion und Nebenbedingungen aufstellen Diskretes Problem zu kontinuierlichem Problem relaxieren Kontinuierliches Problem mit Mitteln der linearen Algebra und der Analysis lösen 6. Lösung diskretisieren 12 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Spektrale Clusteranalyse Das grobe Vorgehen 1. 2. 3. 4. 5. Kodiere Clusterung in Vektoren Kodiere Graphen in einer Matrix Zielfunktion und Nebenbedingungen aufstellen Diskretes Problem zu kontinuierlichem Problem relaxieren Kontinuierliches Problem mit Mitteln der linearen Algebra und der Analysis lösen 6. Lösung diskretisieren 12 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Spektrale Clusteranalyse Kodierung von Bipartitionen in Vektoren Sei (V1 , V2 ) eine 2-Clusterung von V . Wir kodieren diese in x = (x1 , ..., xn )T ∈ Zn durch: ( −1 vi ∈ V1 xi = +1 vi ∈ V2 Beachten Sie: Normiert mit kx k22 = n. 13 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Spektrale Clusteranalyse Das grobe Vorgehen 1. 2. 3. 4. 5. Kodiere Clusterung in Vektoren Kodiere Graphen in einer Matrix Zielfunktion und Nebenbedingungen aufstellen Diskretes Problem zu kontinuierlichem Problem relaxieren Kontinuierliches Problem mit Mitteln der linearen Algebra und der Analysis lösen 6. Lösung diskretisieren 14 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Spektrale Clusteranalyse Kodierung des Graphen in einer Matrix Adjazenzmatrix: 0 5 0 1 0 0 5 0 3 10 0 4 0 3 0 7 1 2 A= 1 10 7 0 1 0 0 0 1 1 0 0 0 4 2 0 0 0 4 6 2 5 2 3 1 3 10 7 1 1 5 4 1 15 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Spektrale Clusteranalyse Kodierung des Graphen in einer Matrix Adjazenzmatrix: 0 5 0 1 0 0 5 0 3 10 0 4 0 3 0 7 1 2 A= 1 10 7 0 1 0 0 0 1 1 0 0 0 4 2 0 0 0 4 6 2 5 2 3 1 3 10 7 1 1 5 4 1 15 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Gradmatrix: 6 0 0 0 0 0 0 22 0 0 0 0 0 0 13 0 0 0 D= 0 19 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 6 Clusteranalyse von Graphen Spektrale Clusteranalyse Kodierung des Graphen in einer Matrix Definition (Laplace-Matrix) L := D − A 6 0 0 0 0 0 0 5 0 1 0 0 6 −5 0 22 0 0 0 0 5 0 3 10 0 4 −5 22 0 0 13 0 0 0 0 3 0 7 1 2 0 −3 − = L= 0 0 0 19 0 0 1 10 7 0 1 0 −1 −10 0 0 0 0 2 0 0 0 1 1 0 0 0 0 0 0 0 0 0 6 0 4 2 0 0 0 0 −4 0 −1 0 0 −3 −10 0 −4 13 −7 −1 −2 −7 19 −1 0 −1 −1 2 0 −2 0 0 6 4 6 2 5 2 3 1 3 10 7 1 1 5 4 1 16 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Spektrale Clusteranalyse Modularität: Andere Formulierung Beobachtung q (C) lässt sich auch schreiben als: deg(i ) deg(j ) 1 Aij − δ ( ci , cj ) , 2m ∑ 2m ij (1) wobei δ das Kronecker-Symbol ist und c (i ) der Cluster von Knoten i in C . 17 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Spektrale Clusteranalyse Modularitäts-Matrix Definition Sei die Modularitäts-Matrix B definiert als: Bij = Aij − deg(i ) deg(j ) 2m Proposition ∑nj=1 Bij = 0 ∀i Q= 18 1 T 4m x Bx Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Spektrale Clusteranalyse Modularitäts-Matrix Definition Sei die Modularitäts-Matrix B definiert als: Bij = Aij − deg(i ) deg(j ) 2m Proposition ∑nj=1 Bij = 0 ∀i Q= 1 T 4m x Bx Beweis: Übung! 18 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Spektrale Clusteranalyse Das grobe Vorgehen 1. 2. 3. 4. 5. Kodiere Clusterung in Vektoren Kodiere Graphen in einer Matrix Zielfunktion und Nebenbedingungen aufstellen Diskretes Problem zu kontinuierlichem Problem relaxieren Kontinuierliches Problem mit Mitteln der linearen Algebra und der Analysis lösen 6. Lösung diskretisieren 19 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Spektrale Clusteranalyse Zielfunktion und Nebenbedingungen 1 T Maximiere Q = 4m x Bx u. d. Nb. xi ∈ {−1, 1} ∀i 20 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Spektrale Clusteranalyse Zielfunktion und Nebenbedingungen 1 T Maximiere Q = 4m x Bx u. d. Nb. xi ∈ {−1, 1} ∀i Bild des Suchraums: Siehe Tafel! 20 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Spektrale Clusteranalyse Das grobe Vorgehen 1. 2. 3. 4. 5. Kodiere Clusterung in Vektoren Kodiere Graphen in einer Matrix Zielfunktion und Nebenbedingungen aufstellen Diskretes Problem zu kontinuierlichem Problem relaxieren Kontinuierliches Problem mit Mitteln der linearen Algebra und der Analysis lösen 6. Lösung diskretisieren 21 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Spektrale Clusteranalyse Das kontinuierliche Problem Die Ganzzahligkeits-Bedingung wird relaxiert: 1 T Maximiere Q = 4m x Bx u. d. Nb. xi ∈ R ∀i und x T x = n 22 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Spektrale Clusteranalyse Das grobe Vorgehen 1. 2. 3. 4. 5. Kodiere Clusterung in Vektoren Kodiere Graphen in einer Matrix Zielfunktion und Nebenbedingungen aufstellen Diskretes Problem zu kontinuierlichem Problem relaxieren Kontinuierliches Problem mit Mitteln der linearen Algebra und der Analysis lösen 6. Lösung diskretisieren 23 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Spektrale Clusteranalyse Lösen des kontinuierlichen Problems Siehe Tafel! 24 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Spektrale Clusteranalyse Das grobe Vorgehen 1. 2. 3. 4. 5. Kodiere Clusterung in Vektoren Kodiere Graphen in einer Matrix Zielfunktion und Nebenbedingungen aufstellen Diskretes Problem zu kontinuierlichem Problem relaxieren Kontinuierliches Problem mit Mitteln der linearen Algebra und der Analysis lösen 6. Lösung diskretisieren 25 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Spektrale Clusteranalyse Lösung diskretisieren Kontinuierliche Lösung x̃ = z1 diskrete Lösung x mit folgenden Eigenschaften: xi ∈ {+1, −1} (x soll eine 2-Clusterung kodieren) ( −1 x̃i < 0 xi = +1 x̃i > 0 26 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Spektrale Clusteranalyse Lösung diskretisieren Kontinuierliche Lösung x̃ = z1 diskrete Lösung x mit folgenden Eigenschaften: xi ∈ {+1, −1} (x soll eine 2-Clusterung kodieren) ( −1 x̃i < 0 xi = +1 x̃i > 0 Herleitung: Siehe Tafel! 26 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Spektrale Clusteranalyse Spektrale Partitionierung Algorithmus Eingabe: G = (V , E ) Ausgabe: 2-Clusterung (V1 , V2 ) von G 1. Konstruiere B (G ) 2. Berechne den Eigenvektor z1 von B (G ) 3. Partitioniere Indizes von z1 in zwei Teile: V1 := {i | z1 (i ) < 0}, V2 := {i | z1 (i ) > 0} 4. Weise die Null-Einträge von z1 beliebig zu 5. return (V1 , V2 ) 27 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Spektrale Clusteranalyse Spektrale Clusteranalyse Diskussion Vorteile: Schnell programmiert (Eigenlöser-Bibliothek vorausgesetzt) Verbreitetes Clustering-Konzept Theoretische Analyse 28 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Spektrale Clusteranalyse Spektrale Clusteranalyse Diskussion Vorteile: Schnell programmiert (Eigenlöser-Bibliothek vorausgesetzt) Verbreitetes Clustering-Konzept Theoretische Analyse Nachteile: Laufzeit nicht so gut wie schnelle lokale Verfahren Qualität in der Regel nicht so gut wie Multilevel + lokale Heuristik (Praxis) bzw. LP oder SDP (Theorie) 28 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Spektrale Clusteranalyse Spektrale Clusteranalyse Diskussion Vorteile: Schnell programmiert (Eigenlöser-Bibliothek vorausgesetzt) Verbreitetes Clustering-Konzept Theoretische Analyse Nachteile: Laufzeit nicht so gut wie schnelle lokale Verfahren Qualität in der Regel nicht so gut wie Multilevel + lokale Heuristik (Praxis) bzw. LP oder SDP (Theorie) Trotzdem wertvoll: In der Praxis z. B. als Startlösung 28 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Spektrale Clusteranalyse Inhalt Clusteranalyse von Graphen Einführung Spektrale Clusteranalyse Lokale Algorithmen 29 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Lokale Algorithmen Lokale Optimierung von Modularität Spektrale Clusteranalyse nicht Maß aller Dinge Nun: Hierarchische Methoden mit Greedy-Ansatz Keine Eingabe der Zahl von Clustern notwendig Literaturhinweise A. Clauset, M.E.J. Newman, C. Moore: Finding community structure in very large networks. Phys. Rev. E 70, 066111 (2004). Vincent D. Blondel, Jean-Loup Guillaume, Renaud Lambiotte, Etienne Lefebvre: Fast unfolding of communities in large networks. J. Stat. Mech. (2008) P10008. doi:10.1088/1742-5468/2008/10/P10008. C.L. Staudt, H. Meyerhenke: Engineering High-Performance Community Detection Heuristics for Massive Graphs. Extended version of ICPP’13 paper. Submitted, 2014. 30 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Lokale Algorithmen Agglomeratives Clustering Dendrogramm zur Visualisierung von aggl. Clusterungen Abbildung: Quelle: Wikipedia 31 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Lokale Algorithmen Die CNM-Methode Eingabe: Graph G = (V , E ) Start: Jeder Knoten ist sein eigener Cluster Wiederhole, bis Abbruchkriterium (z. B.: Anzahl Knoten = 1) erreicht: Identifiziere Knoten u und v , deren Verschmelzung die ZF (Modularität) am stärksten verbessert (bzw. am wenigsten verschlechtert) Verschmelze u und v zu einem Superknoten Aktualisiere Knoten, Kanten und deren Gewichte return Gefundene Lösung mit bestem ZF-Wert 32 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Lokale Algorithmen Die CNM-Methode Eingabe: Graph G = (V , E ) Start: Jeder Knoten ist sein eigener Cluster Wiederhole, bis Abbruchkriterium (z. B.: Anzahl Knoten = 1) erreicht: Identifiziere Knoten u und v , deren Verschmelzung die ZF (Modularität) am stärksten verbessert (bzw. am wenigsten verschlechtert) Verschmelze u und v zu einem Superknoten Aktualisiere Knoten, Kanten und deren Gewichte return Gefundene Lösung mit bestem ZF-Wert Beispiel: Siehe Tafel! 32 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Lokale Algorithmen Die CNM-Methode Eingabe: Graph G = (V , E ) Start: Jeder Knoten ist sein eigener Cluster Wiederhole, bis Abbruchkriterium (z. B.: Anzahl Knoten = 1) erreicht: Identifiziere Knoten u und v , deren Verschmelzung die ZF (Modularität) am stärksten verbessert (bzw. am wenigsten verschlechtert) Verschmelze u und v zu einem Superknoten Aktualisiere Knoten, Kanten und deren Gewichte return Gefundene Lösung mit bestem ZF-Wert Beispiel: Siehe Tafel! Typische Dendrogrammtiefe bei hierarchischen Graphen: O(log n) 32 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Lokale Algorithmen Die CNM-Methode Effiziente Implementierung für dünn besetzte Graphen Ziel: Effiziente Implementierung für dünn besetzte Graphen Definition (Dünn besetzter Graph) Ein Graph G = (V , E ) heißt dünn besetzt, wenn |E | = O(|V |) gilt. Frage: Wie würden Sie die Kante bestimmen, die die höchste ZF-Verbesserung ergibt? 33 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Lokale Algorithmen Die CNM-Methode Effiziente Implementierung für dünn besetzte Graphen Ziel: Effiziente Implementierung für dünn besetzte Graphen Definition (Dünn besetzter Graph) Ein Graph G = (V , E ) heißt dünn besetzt, wenn |E | = O(|V |) gilt. Frage: Wie würden Sie die Kante bestimmen, die die höchste ZF-Verbesserung ergibt? Datenstrukturen: Max-Heap, der die möglichen Verbesserungen speichert Optionale Verbesserung: Für jeden Knoten Zeiger auf seine Einträge im Max-Heap oder sogar einen Max-Heap pro Knoten 33 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Lokale Algorithmen Die CNM-Methode Effiziente Implementierung für dünn besetzte Graphen Ziel: Effiziente Implementierung für dünn besetzte Graphen Definition (Dünn besetzter Graph) Ein Graph G = (V , E ) heißt dünn besetzt, wenn |E | = O(|V |) gilt. Frage: Wie würden Sie die Kante bestimmen, die die höchste ZF-Verbesserung ergibt? Datenstrukturen: Max-Heap, der die möglichen Verbesserungen speichert Optionale Verbesserung: Für jeden Knoten Zeiger auf seine Einträge im Max-Heap oder sogar einen Max-Heap pro Knoten Details siehe Übung 33 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Lokale Algorithmen Die Louvain-Methode Initialisierung und Phase 1 Initialisierung: Jeder Knoten ist sein eigener Cluster Danach: Zwei Phasen, die sich wiederholen: Phase 1, lokale Verbesserung: Für jeden Knoten v lokal entscheiden, ob ein Wechsel in die Community des Nachbarn eine Verbesserung der ZF (Modularität) ergibt. Wechsel von v in Community mit stärkster positiver Verbesserung. Wiederholt, bis keine Verbesserung möglich. Abarbeitungsreihenfolge der Knoten beliebig, z. B. zufällig 34 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Lokale Algorithmen Die Louvain-Methode Phase 2 Phase 2, Schrumpfen des Graphen: Kontraktion jeder gefundenen Community zu einem einzelnen Knoten Aktualisierung der Knoten- und Kantengewichte: Schleifen erhalten Gewicht aller alten Intra-Cluster-Kanten, die übrigen Kanten erhalten das Gewicht der alten Kanten zwischen den zugehörigen Communitys Bild zur Verfügung gestellt von M. Ovelgönne 35 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Lokale Algorithmen Pseudocode der Louvain-Methode 1: function L OUVAIN(G = (V , E )) 2: ζ ← ζ singleton (G ); anyChange ← false . Initialisierung 3: repeat . Phase 1 4: localOpt ← true 5: for u ∈ V do 6: δ ← maxv ∈N (u ) {∆mod (v , ζ (u ) → ζ (v ))} 7: C ← ζ (arg maxv ∈N (u ) {∆mod (v , ζ (u ) → ζ (v ))}) 8: if δ > 0 then 9: ζ (u ) ← C; localOpt ← false; anyChange ← true 10: end if 11: end for 12: until localOpt 13: if anyChange then . Phase 2 14: G 0 ← contract(G, ζ ) 15: ζ ← prolong(Louvain(G 0 )) 16: end if 17: return ζ 36 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Lokale Algorithmen Die Louvain-Methode Parallele Implementierung ∆mod-Werte werden ständig aktualisiert ⇒ muss schnell gehen Parallel über die Knotenmenge iterieren Jeder Knoten berechnet zu jeder inzidenten Kante den aktuellen ∆mod-Wert Kollisionsgefährdete Werte werden durch Locks geschützt Alternative Implementierung: Werte speichern und nur an der Verschiebestelle aktualisieren (weniger parallel) 37 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse 1: repeat . Phase 1 2: localOpt ← true 3: for u ∈ V in parallel do 4: δ ← maxv ∈N (u ) {∆mod (v , ζ (u ) → ζ (v ))} 5: C ← ζ (arg maxv ∈N (u ) {∆mod (v , ζ (u ) → ζ (v ))}) 6: if δ > 0 then 7: ζ (u ) ← C 8: localOpt ← false 9: anyChange ← true 10: end if 11: end for 12: until localOpt =0 Clusteranalyse von Graphen Lokale Algorithmen Die Louvain-Methode Testgraphen uk-2007-05 uk-2002 kron-g500-simple-logn20 europe cage15 soc-LiveJournal eu-2005 coPapersDBLP as-Skitter belgium coAuthorsCiteseer caidaRouterLevel G_n_pin_pout preferentialAttachment as-22july06 PGPgiantcompo polblogs power celegans_metabolic 103 38 Graphs 104 105 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse 106 107 108 109 n m 1010 Clusteranalyse von Graphen Lokale Algorithmen Die Louvain-Methode Experimentelle Ergebnisse (2x Intel Xeon E5-2670) power PGPgiantcompo as-22july06 G_n_pin_pout caidaRouterLevel coAuthorsCiteseer as-Skitter coPapersDBLP eu-2005 soc-LiveJournal europe-osm kron_g500-simple-logn20 uk-2002 0.0 0.2 0.4 0.6 modularity 0.8 power PGPgiantcompo as-22july06 G_n_pin_pout caidaRouterLevel coAuthorsCiteseer as-Skitter coPapersDBLP eu-2005 soc-LiveJournal europe-osm kron_g500-simple-logn20 uk-2002 0 1.0 100 101 time [s] 102 103 Abbildung: Qualität (Q) und Laufzeit (s) der Louvain-Methode 39 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Lokale Algorithmen Zusammenfassung Asymptotische Laufzeit: Exakte Analyse schwierig... 40 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Lokale Algorithmen Zusammenfassung Asymptotische Laufzeit: Exakte Analyse schwierig... Clustering (= Community Detection) ist ein wichtiges, aber auch schwieriges Problem der Netzwerkanalyse In der Praxis setzt man häufig Heuristiken ein Zwei Heuristiken vorgestellt: Direkte Agglomeration (CNM-Methode), meist mit wenigen großen Communitys Mehrebenen-Agglomeration mit gieriger lokaler Verbesserung (Louvain-Methode), meist mit guter Qualität und guter Laufzeit 40 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Lokale Algorithmen Zusammenfassung Asymptotische Laufzeit: Exakte Analyse schwierig... Clustering (= Community Detection) ist ein wichtiges, aber auch schwieriges Problem der Netzwerkanalyse In der Praxis setzt man häufig Heuristiken ein Zwei Heuristiken vorgestellt: Direkte Agglomeration (CNM-Methode), meist mit wenigen großen Communitys Mehrebenen-Agglomeration mit gieriger lokaler Verbesserung (Louvain-Methode), meist mit guter Qualität und guter Laufzeit Es existieren zahlreiche Abwandlungen Sehr aktiver Forschungsbereich Zur Zeit von besonderem Interesse: Einbezug von Semantik, Parallelisierung 40 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Clusteranalyse von Graphen Lokale Algorithmen