NETZWERKANALYSE Clusteranalyse 188 Clusteranalyse in Graphen Hier: Clusteranalyse = Clustering = Community Detection Bestimmung natürlicher Gruppen im Graphen Strukturierung des Chaos [http://espin086.files.wordpress.com/ 2011/02/2-variable-clustering.png?w=640] [http://www.colenbrander.com/images/ Afbeeldingen/Chaos-Structure2.jpg] 189
Anwendungsgebiete Marketing, Werbung (besonders online) Strukturvorhersage Expertensysteme Maschinelles Lernen, Data Mining, Mustererkennung,... Bildsegmentierung Bioinformatik... [http://spie.org/images/graphics/newsroom/imported/ 0016/16_fig1.jpg] 190 Algorithmenklassen Zahlreiche Algorithmen(klassen) Spektral Random Walks Greedy kombinatorisch Semidefinite Programmierung Label Propagation (manchmal: Peer Pressure)... 191
Clusterung, Cluster Definition: Sei G = (V, E) ein ungerichteter schlichter Graph. Eine Clusterung C = (C 1,..., C k ) ist eine Partition der Knotenmenge in nicht-leere disjunkte Teilmengen. Eine solche Teilmenge C i heißt Cluster. Lemma: Jede Clusterung C kann eindeutig durch die Äquivalenzrelation (reflexiv, symmetrisch, transitiv) u ~ C v:, 9 C i 2 C: u, v 2 C i beschrieben werden. Die Cluster C i entsprechen genau den Äquivalenzklassen. 192 Label Propagation Die wesentliche Idee [KG, S. 61] Idee: Clusternummer eines Knotens stimmt mit Mehrzahl seiner Nachbarn überein (eine akzeptable Startlösung vorausgesetzt) 193
Label Propagation (LP) Die Umsetzung Gegeben: Graph G = (V, E), N := V, M := E, initiale Clusterung C Gesucht: bessere Clusterung C Iteratives Vorgehen: Stimmabgabe: Jeder Knoten stimmt dafür, dass seine Nachbarn zum eigenen Cluster gehören Zuweisung: Für jeden Knoten: Nach der Berechnung aller Stimmabgaben Zuordnung zum Cluster mit den meisten Stimmen 194 Startlösung Option 1: Eine Runde Lubys MIS, Zuordnung der restlichen Knoten an nächstgelegenes MIS-Mitglied Option 2: Multilevel-Verfahren Rekursive Vergröberung des Graphen Startlösung auf dem groben Graphen berechnen Stufenweise Verbesserung während der Rückkehr aus der Rekursion Erfahrung zeigt: Hat ein Graph eine gute Cluster-Struktur, ist der Algorithmus robust gegenüber der Startlösung Option 3: Starten mit Ein-Knoten-Clustern (normal bei LP) 195
Prof. Dr. Henning Meyerhenke Fakultät für Informatik Beispiel [KG, S. 61] Diskussion (Übung): Was halten Sie von diesem Algorithmus? 196 3.1. Label Propagation Pseudocode von LP Algorithmus 19 : Label Propagation Input : G = (V, E) : Graph, : Konvergenz-Schranke Output : : V! N : Communities 1 for v 2 V do 2 (v) id(v) 3 4 5 6 7 8 9 10 11 12 13 14 15 updated V Vactive V while updated > do updated 0 for v 2 {u 2 VactiveP: deg(u) > 0} do l argmaxl { u2n (v): (u)=l!(v, u)} 45 // Initiale Clusterung // Stimmabgabe // Zuweisung if (v) 6= l then (v) l updated updated + 1 Vactive = Vactive [ N (v) else Vactive Vactive \ {v} return und lineare Algebra Hand in Hand Rechnen, Institut auffür Theoretische Bei einemgraphenalgorithmen kleinen Cluster ist es wahrscheinlich, dass dieser von einemparalleles anderen Cluster gesogen wird, wenn zu diesem mehrere Kanten existieren. Es ist in diesem Fall anwendungsabhängig, ob man diesen Effekt verhindern will oder nicht. Eine Möglichkeit, dieses Phänomen zu verhindern, besteht wiederum in der Normalisierung der Abstimmung, allerdings unter Berücksichtigung der Clustergröße. Dafür wird der Einfluss bzw. die Anzahl der Stimmen mit einem KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft Stärkeexponenten skaliert, genauer werden die ausgehenden Kantengewichte jedes Knotens durch die Größe seines Clusters, potenziert um einen Wert 0 p 1, geteilt. Der Exponent p kann während der Laufzeit verändert werden, um die Änderungen in Anzahl und Größe der Cluster widerzuspiegeln. 197 3.1.3. Komplexität 3.1.3.1. Raumkomplexität Werden die Stimmen als Liste an jedem Knoten verwaltet, so reichen insgesamt E Listeneinträge über alle Kanten gesehen, da jede Kante in jeder Iteration einmal Einfluss nehmen kann.
Problem unterschiedlicher Knotengrade Viele Netzwerke der realen Welt haben stark unterschiedliche Knotengrade (wichtig bei gerichteten Netzwerken!) Beispiele: Soziale Netzwerke Transportnetzwerke... Frage: Welche Auswirkung hat das auf den Algorithmus? Antwort: Manche Knoten haben extrem starken Einfluss (viele Stimmen) Mögliche Lösung: Normalisierung der Abstimmung 198 Kleine Cluster und Rauschen Was tun mit Knoten, die Grad 1 haben? Eigener Cluster? Zum Cluster des Nachbarn? Rauschen? Was passiert bei kleinen Clustern? Wenn mehrere Kanten zu einem größeren Cluster existieren, wird der kleine vermutlich aufgesogen. Will man das verhindern? Kommt auf die Anwendung an! Wiederum: Normalisierung der Abstimmung Diesmal: Normalisierung mit Clustergröße Einfluss (= Stimmen) wird mit einem Stärkeexponenten skaliert 199
Konfliktlösung Konflikt: Einfluss (= Stimmen) verschiedener Cluster gleich hoch Wähle den Cluster mit der kleinsten Nummer 200 Beispielrechnung (1) Initial: Jeder Knoten ist eigener Cluster Implizite Annahme hier: Jeder Knoten hat eine Schleife Grund: Einfluss auf sich selbst 201
Beispielrechnung (2) 202 Beispielrechnung (3) 203
Komplexität Raumkomplexität: Jede Kante kann höchstens einmal Einfluss nehmen. Wenn Stimmen als Liste gespeichert werden: Insgesamt höchstens M Listeneinträge Zeitkomplexität: Schleife zur Stimmabgabe: O(M) Zuweisung: O(M) Also: Pro Durchlauf O(M) Anzahl Durchläufe: Typischerweise O(1), wenn der Graph Clusterstruktur hat In dem Fall: Gesamtlaufzeit auch O(M) 204 Markov Clustering Ein alternativer Ansatz Basiert lose auf Random Walks Idee: Random Walks verbleiben wahrscheinlich lange in dichten Gebieten Markov-Matrix zum gerichteten Graphen: A: Gewichtete Adjazenzmatrix D: Diagonalmatrix der Spaltensummen M := AD -1 : Transitionsmatrix [http://espin086.files.wordpress.com/ 2011/02/2-variable-clustering.png?w=640] M ij : Wkt. des Übergangs von Knoten j nach Knoten i M ist spaltenstochastisch Achtung: Manchmal M := D -1 A, dann Zeilen und Spalten vertauscht! 207
Random Walk Random Walk startet auf beliebigem Knoten j RW wählt beliebigen Nachbarn i von j zufällig und gleichverteilt Fortsetzung des Prozesses auf i Initial: M(i, j) = A(i, j) / D(j, j), Wkt.verteilung p M*p ist Wkt.verteilung, die man erhält, indem man einen Knoten j gemäß p auswählt und dann zu einem zufällig gewählten Nachbarn von j geht [http://upload.wikimedia.org/wikipedia/commons/thumb/3/39/ Random_walk_in2D_closeup.png/510px-Random_walk_in2D_closeup.png] 208 MCL: Markov Clustering Expansion: Matrix-Multiplikation (Wkt. des Übergangs in mehreren Schritten) mit Exponent e >= 2 (Parameter) Inflation: Verstärkung guter, Abschwächung schwacher Bindungen Einträge der Matrix werden punktweise mit Skalar r > 1 potenziert Normalisierung der Spalten (wieder spaltenstochastisch) MCL(C i, e, r) // Erster Aufruf mit C i := M, optional Schleifenwkt. > 0 C f := C e i // Expansion: Matrix-Matrix-Multiplikation C f := C f. r // Inflation: Punktweise Potenzierung w := C f.+ // : Spaltensummen C f := C f. 1/w // : Spaltennormalisierung if (C i == C f ) then return C f else return MCL(C f, e, r) 209
Beispiel [van Dongen, Kap. 5] 0 1 0.200 0.250 0.333 0.250 0.250 0.200 0.250 0.250 0.200 0.250 0.250 0.200 0.200 0.250 0.200 0.200 0.200 0.200 0.250 0.250 0.200 0.250 0.200 0.200 0.333 0.250 0.200 0.200 0.250 0.250 0.200 0.200 0.200 0.200 0.200 0.200 0.200 0.200 0.200 0.333 B0.200 0.333 0.250 0.250 C @ 0.200 0.200 0.200 0.200 0.333A 0.200 0.200 0.333 210 0 B M =TG 3 +I 0 1 0.380 0.087 0.027 0.077 0.295 0.201 0.320 0.047 0.347 0.210 0.017 0.150 0.019 0.066 0.012 0.012 0.014 0.210 0.347 0.056 0.150 0.016 0.046 0.009 0.009 0.027 0.087 0.302 0.062 0.184 0.143 0.143 0.083 0.058 0.210 0.210 0.056 0.406 0.083 0.046 0.009 0.019 0.009 0.142 0.017 0.295 0.083 0.184 0.113 0.069 0.017 0.062 0.097 0.333 0.012 0.147 0.017 0.069 0.175 0.049 0.016 0.287 0.143 0.143 0.083 0.017 0.175 0.012 0.184 0.288 0.288 0.278 0.246 0.017 0.019 0.295 0.201 0.320 B C @ 0.017 0.175 0.012 0.184 0.288 0.288 0.278A 0.044 0.046 0.120 0.120 0.278 2M 2,Mdefined in Figure 12 0 1 0.448 0.080 0.023 0.068 0.426 0.359 0.432 0.018 0.285 0.228 0.007 0.176 0.006 0.033 0.005 0.007 0.005 0.223 0.290 0.022 0.173 0.010 0.017 0.003 0.001 0.003 0.001 0.018 0.059 0.222 0.040 0.001 0.187 0.139 0.139 0.099 0.027 0.312 0.314 0.028 0.439 0.005 0.054 0.022 0.003 0.010 0.003 0.001 0.116 0.007 0.001 0.004 0.157 0.085 0.131 0.096 0.040 0.013 0.037 0.083 0.197 0.001 0.104 0.012 0.042 0.172 0.029 0.002 0.198 0.133 0.133 0.096 0.001 0.015 0.256 0.009 0.266 0.326 0.326 0.346 0.290 0.021 0.002 0.017 0.323 0.260 0.316 B C @ 0.001 0.015 0.256 0.009 0.266 0.326 0.326 0.346A 0.001 0.037 0.001 0.039 0.069 0.069 0.112 2( 2M 2 2M 2 ) 0 1 0.807 0.040 0.015 0.034 0.807 0.807 0.807 0.090 0.092 0.088 0.085 0.088 0.084 Graphenalgorithmen. und lineare. Algebra. Hand. in Hand... Paralleles. Rechnen, Institut für Theoretische B C 1 C B Beispiel B @ (Forts.) C A 0 1 0.807 0.040 0.015 0.034 0.807 0.807 0.807 0.090 0.092 0.088 0.085 0.088 0.084 0.001 0.001 0.032 0.001 0.032 0.031 0.031 0.031 0.777 0.798 0.786 0.001 0.005 0.005 0.005 0.005 0.003 0.001 0.001 0.003 0.003 0.003 0.001 0.024 0.024 0.024 0.024 0.024 0.002 0.472 0.001 0.472 0.472 0.472 0.472 B0.185 0.005 0.001 0.004 0.185 0.184 0.185 C @ 0.002 0.472 0.001 0.472 0.472 0.472 0.472A 0.001 0.001 0.001 0.001 ( 2 Squaring) iterated four times on M 0 1 1.000 1.000 1.000 1.000 1.000 1.000 1.000 0.500 0.500 0.500 0.500 0.500 B C @ 0.500 0.500 0.500 0.500 0.500A M 1 mcl 211
Konvergenzgeschwindigkeit Betrachten dafür Random Walks genauer... Hilfsmittel: Eigenwerte Eigenvektoren Spektrale Graphentheorie 212 Existenz der Eigenwerte und -vektoren EV und EW von M G verraten Strukturinfos über G Ungerichtete Graphen => Die meisten zugehörigen Matrizen sind symmetrisch; Problem: M im Allgemeinen nicht! Wdh.: Die Eigenvektoren einer symmetrischen Matrix M bilden eine orthonormale Basis. M hat n Eigenwerte (Mehrfachaufkommen mehrfach gezählt). Spektrale Zerlegung einer Matrix: Siehe Tafel Lösung: Verwendung der Matrix S := D -1/2 AD -1/2 = D -1/2 MD 1/2 i: M(D 1/2 z i ) = D 1/2 SD -1/2 D 1/2 z i = D 1/2 Sz i = D 1/2! i z i =! i (D 1/2 z i ) => M hat n reelle EW! i wie S, korrespondieren zu den EV D 1/2 z i 213
EV als Operatoren auf den Knoten EW und EV: Bieten Analyse für wiederholte Anwendung eines Operators auf einen Vektor Siehe Tafel Wichtig: Betrachte Vektor x als Funktion x: V! R Anwendung des Adjazenz-Operators A: Siehe Tafel Summe der Werte der Nachbarn Ähnlich zu Ausbreitungsprozess 214 Random Walks und Eigenwerte Satz: Ist G zusammenhängend und ungerichtet, dann hat der größte Eigenwert von M G = AD -1,! 1, die Vielfachheit 1, den Wert 1 und Eigenvektor d. Beweise: Übung Folgerung: Sei G wie oben und sei! n -1. Dann konvergiert der RW auf G gegen die Verteilung ¼ = d / Σ v d(v). Satz: Sei p t die Verteilung nach t Schritten bei Start auf a. Dann gilt für jeden Knoten b: p t (b) - ¼(b) (d(b)/d(a)) 1/2 (max{! 2,!n }) t Beweis: Ähnlicher Beweis folgt später bei Diffusion Intuitiv: RW überwinden Flaschenhälse nur schlecht 215
Eigenwerte und Zusammenhang Satz: Die Zahl der ZHK von G ist gleich der Häufigkeit des Eigenwerts 0 von L(G). Beweisskizze: Vollst. Induktion über Zahl k der ZHK k = 1: Quadratische Form: v T Lv = ½ Σ i,j w ij (v(i) v(j)) 2 => Jedes Summenglied ist 0, Knoten derselben ZHK haben gleich Wert in EV v => v ist konstanter Vektor k > 1: Reihenfolge der Knotenindizes beeinflusst EW nicht => Überführe L in Blockmatrizen und konstruiere analog zum vorigen Fall für jeden Block den entsprechenden EV 216 Eigenwerte und Konnektivität Def.: Partition Sei G = (V, E) ein ungerichteter Graph. Dann ist (V 1, V 2 ) mit V 1, V 2 V und V 1 Å V 2 = ; und V 1 V 2 = V eine Partition von G. V 1 V 2 Achtung: Zusammenhang nicht notwendig! Def.: Eine Partition (V 1, V 2 ) heißt balanciert, wenn V 1 V 2 1 gilt. Bei der Zerlegung in zwei Teile spricht man auch von einer Bipartition. 217
Eigenwerte und Bisektionsweite Def.: Schnitt Ext(V 1,V 2 ) = {{u,v} E; u V 1,v V 2 } ist die Menge der Kanten, die zwischen V 1 und V 2 verlaufen und heißt Schnitt der Partition. Def.: Bisektionsweite (Bisektionsbandbreite, bisection bandwidth) Sei G = (V, E) ein ungerichteter Graph. Die Bisektionsweite σ(g) ist definiert als: σ(g) = min{ Ext(V 1, V 2 ) ; (V 1, V 2 ) ist eine balancierte Partition von G} Satz: (Untere Schranke für ¾) ¾(G) n * 2 / 4 Beweis: Quadratische Form von L benutzen, s. Tafel! 218 Vergleich Lösungsqualität: MCL kann bei Tuning der Parameter Cluster verschiedener Granularität (bewirkt unterschiedliche Größen) erkennen LP erkennt nur Cluster feiner Granularität (lt. [KG, S. 68]) Raumkomplexität: MCL: Matrix füllt sich nach wenigen Operationen è O(N 2 ) LP: O(M) Laufzeit: MCL: Matrix-Matrix-Multiplikation pro Iteration LP: O(M) pro Iteration Konvergenz: MCL: Konvergiert (aber eher langsam) LP: Muss nicht konvergieren, tut dies aber meist schnell 219
Zwischenfazit 1 Konvergenzrate eines Random Walks bestimmt durch zweitgrößten Eigenwert (im Betrag) 2 ¾(G) 4/n, Folgerung: Ein Graph mit schlechtem Zusammenhang hat ein kleines 2 Ein RW konvergiert langsamer bei schlechtem Zusammenhang Eigenschaft lässt sich fürs Graphclustering ausnutzen Graphclustering: Identifizierung von dicht zusammenhängenden Teilgraphen mit wenigen externen Kanten Zahlreiche Anwendungen in verschiedenen Gebieten 220 Zwischenfazit 2 Label Propagation / Peer-pressure-Clustering: Geht von initialer Cluster-Approximation aus Idee: Die Mehrzahl meiner Nachbarn sind in demselben Cluster Konvergenz nicht garantiert, aber bei gutartigen Graphen in Experimenten gegeben Bei schneller Konvergenz (O(1) Runden) insgesamt schnell (O(M)) Operationen leicht darstellbar in Matrix-Vektor-Notation Qualität??? 221