Algorithmische Methoden für schwere Optimierungsprobleme Prof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Universität desmeyerhenke, Landes Baden-Württemberg Institutund für Theoretische Informatik nationales Algorithmische Forschungszentrum Methoden in der Helmholtz-Gemeinschaft für schwere Optimierungsprobleme www.kit.edu
Fortsetzung Vorlesung 9 Programm: Clusteranalyse in Graphen Modularität 2 Henning Meyerhenke, Institut für Theoretische Informatik
Inhalt Einführung 3 Henning Meyerhenke, Institut für Theoretische Informatik Einführung
Stetig wachsende Datenflut Schlagwort Big Data in aller Munde Rasantes Wachstum der Menge von (irregulär strukturierten) Daten: Teilchenbeschleuniger, Teleskope: Terabytes / Tag Facebook: 1G+ Mitglieder, 1G+ Aktionen/Tag Web-Graph, Log-Dateien, Smartphone-Aktionen 4 Henning Meyerhenke, Institut für Theoretische Informatik Einführung
Stetig wachsende Datenflut Schlagwort Big Data in aller Munde Rasantes Wachstum der Menge von (irregulär strukturierten) Daten: Teilchenbeschleuniger, Teleskope: Terabytes / Tag Facebook: 1G+ Mitglieder, 1G+ Aktionen/Tag Web-Graph, Log-Dateien, Smartphone-Aktionen Big Data: Nicht nur Graphdaten, aber auch! 4 Henning Meyerhenke, Institut für Theoretische Informatik Einführung
Was ist BIG? Irregulär strukturierte Daten wachsen mit enormer Geschwindigkeit: Facebook: 1G+ Mitglieder, durchschnittlich 130 Freunde, 1G+ neue Inhalte pro Tag Twitter: 1G Tweets pro Woche Web-Graph Finanztransaktionen http://thecursedvalley.wordpress.com 5 Henning Meyerhenke, Institut für Theoretische Informatik Einführung
Gesundheitspolitische Erwägungen Epidemien (Grippe,...) sind in sozialen Netzwerken nachvollziehbar Lassen sich (gesundheits)politische Entwicklungen durch Analyse von sozialen Medien vorhersagen? Zu bedenken: Twitter: 1G+ Tweets/Woche Andere Dienste auch relevant Datenschutz Zielkonflikt zwischen Laufzeit und Genauigkeit http://thecursedvalley. wordpress.com 6 Henning Meyerhenke, Institut für Theoretische Informatik 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 7 Henning Meyerhenke, Institut für Theoretische Informatik 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 http://renardteipelke. blogspot.com 7 Henning Meyerhenke, Institut für Theoretische Informatik Einführung
Community Detection Problem (Graph Clustering / Community Detection) Eingabe: Graph G = (V, E) Ausgabe: Clusterung (Partition von V ), die Zielfunktion optimiert Oft: Zielfunktion (ZF) wägt Anteil der internen Kanten, Anteil der externen Kanten und Clustergrößen ab Fast alle (interessanten) ZF sind N P-schwer zu optimieren 8 Henning Meyerhenke, Institut für Theoretische Informatik Einführung
Community Detection Problem (Graph Clustering / Community Detection) Eingabe: Graph G = (V, E) Ausgabe: Clusterung (Partition von V ), die Zielfunktion optimiert Oft: Zielfunktion (ZF) wägt Anteil der internen Kanten, Anteil der externen Kanten und Clustergrößen ab Fast alle (interessanten) ZF sind N P-schwer zu optimieren Weitere Anwendungen Ähnliche Objekte finden (Gene, Produkte, Personen,...) Verteiltes Rechnen, Speichern Visualisierung 8 Henning Meyerhenke, Institut für Theoretische Informatik Einführung
Zielfunktion Modularität Frage: Wie formalisiert man Ähnlichkeit? 9 Henning Meyerhenke, Institut für Theoretische Informatik Einführung
Zielfunktion Modularität Frage: Wie formalisiert man Ähnlichkeit? Populäre Zielfunktion (wenn auch mit Nachteilen): Modularität (engl. modularity) Man betrachtet die Differenz aus zwei Verhältnissen: Anteil der tatsächlichen Intra-Cluster-Kanten Erwarteter Anteil dieser Kanten in einem Zufallsgraphen mit gleicher Gradfolge ( ( ) ) E(C) q(c) = m v C deg(v) 2 2m C C 9 Henning Meyerhenke, Institut für Theoretische Informatik Einführung
Zielfunktion Modularität Frage: Wie formalisiert man Ähnlichkeit? Populäre Zielfunktion (wenn auch mit Nachteilen): Modularität (engl. modularity) Man betrachtet die Differenz aus zwei Verhältnissen: Anteil der tatsächlichen Intra-Cluster-Kanten Erwarteter Anteil dieser Kanten in einem Zufallsgraphen mit gleicher Gradfolge ( ( ) ) E(C) q(c) = m v C deg(v) 2 2m C C Erklärung: Tafel/Übung! Modularität hat einige bekannte Nachteile, z. B. das Auflösungsproblem (kann man teilweise durch ein Gewichtungsschema beseitigen) 9 Henning Meyerhenke, Institut für Theoretische Informatik Einführung
Modularität Komplexität Optimierung bzgl. Modularität ist streng N P-schwer Problem 1: MODULARITY Gegeben ein Graph G und eine Zahl K, gibt es eine Clusterung C von G, für die q(c) K gilt? 10 Henning Meyerhenke, Institut für Theoretische Informatik Einführung
Modularität Komplexität Optimierung bzgl. Modularität ist streng N P-schwer Problem 1: MODULARITY 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 a 1,..., a 3k derart gegeben, dass 3k i=1 a i = kb und b/4 < a i < 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? Beweis in Master-Vorlesung AMNA! 10 Henning Meyerhenke, Institut für Theoretische Informatik Einführung
Inhalt Einführung 11 Henning Meyerhenke, Institut für Theoretische Informatik
Spektrale Optimierung von Modularität N P-schwer: Was nun? : Globale Methode (Heuristik) Hier: Darstellung für Teilung in 2 Cluster Allgemeines k durch rekursives Vorgehen Setzt voraus, dass k bekannt ist 12 Henning Meyerhenke, Institut für Theoretische Informatik
Spektrale Optimierung von Modularität N P-schwer: Was nun? : 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 (V 1, V 2 ), die Modularität maximiert 12 Henning Meyerhenke, Institut für Theoretische Informatik
Das grobe Vorgehen 1. Kodiere Clusterung in Vektoren 2. Kodiere Graphen in einer Matrix 3. Zielfunktion und Nebenbedingungen aufstellen 4. Diskretes Problem zu kontinuierlichem Problem relaxieren 5. Kontinuierliches Problem mit Mitteln der linearen Algebra und der Analysis lösen 6. Lösung diskretisieren 13 Henning Meyerhenke, Institut für Theoretische Informatik
Das grobe Vorgehen 1. Kodiere Clusterung in Vektoren 2. Kodiere Graphen in einer Matrix 3. Zielfunktion und Nebenbedingungen aufstellen 4. Diskretes Problem zu kontinuierlichem Problem relaxieren 5. Kontinuierliches Problem mit Mitteln der linearen Algebra und der Analysis lösen 6. Lösung diskretisieren 13 Henning Meyerhenke, Institut für Theoretische Informatik
Kodierung von Bipartitionen in Vektoren Sei (V 1, V 2 ) eine 2-Clusterung von V. Wir kodieren diese in x = (x 1,..., x n ) T Z n durch: x i = { 1 vi V 1 +1 v i V 2 Beachten Sie: Normiert mit x 2 2 = n. 14 Henning Meyerhenke, Institut für Theoretische Informatik
Das grobe Vorgehen 1. Kodiere Clusterung in Vektoren 2. Kodiere Graphen in einer Matrix 3. Zielfunktion und Nebenbedingungen aufstellen 4. Diskretes Problem zu kontinuierlichem Problem relaxieren 5. Kontinuierliches Problem mit Mitteln der linearen Algebra und der Analysis lösen 6. Lösung diskretisieren 15 Henning Meyerhenke, Institut für Theoretische Informatik
Kodierung des Graphen in einer Matrix 1 5 2 10 4 3 6 2 3 Adjazenzmatrix: 0 5 0 1 0 0 5 0 3 10 0 4 A = 0 3 0 7 1 2 1 10 7 0 1 0 0 0 1 1 0 0 0 4 2 0 0 0 7 1 1 4 5 1 16 Henning Meyerhenke, Institut für Theoretische Informatik
Kodierung des Graphen in einer Matrix 1 5 1 2 4 3 10 7 6 4 5 1 2 1 3 Adjazenzmatrix: 0 5 0 1 0 0 5 0 3 10 0 4 A = 0 3 0 7 1 2 1 10 7 0 1 0 0 0 1 1 0 0 0 4 2 0 0 0 Gradmatrix: 6 0 0 0 0 0 0 22 0 0 0 0 D = 0 0 13 0 0 0 0 0 0 19 0 0 0 0 0 0 2 0 0 0 0 0 0 6 16 Henning Meyerhenke, Institut für Theoretische Informatik
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 1 0 0 0 22 0 0 0 0 5 0 3 10 0 4 5 22 3 10 0 4 L = 0 0 13 0 0 0 0 0 0 19 0 0 0 3 0 7 1 2 1 10 7 0 1 0 = 0 3 13 7 1 2 1 10 7 19 1 0 0 0 0 0 2 0 0 0 1 1 0 0 0 0 1 1 2 0 0 0 0 0 0 6 0 4 2 0 0 0 0 4 2 0 0 6 2 4 6 5 2 3 1 10 3 7 1 1 4 5 1 17 Henning Meyerhenke, Institut für Theoretische Informatik
Modularität: Andere Formulierung Beobachtung q(c) lässt sich auch schreiben als: 1 2m ij ( A ij wobei δ das Kronecker-Symbol ist und C(i) der Cluster von Knoten i in C. ) deg(i) deg(j) δ(c(i), C(j)), (1) 2m 18 Henning Meyerhenke, Institut für Theoretische Informatik
Modularitäts-Matrix Definition Sei die Modularitäts-Matrix B definiert als: B ij = A ij deg(i) deg(j) 2m Proposition n j=1 B ij = 0 i q(c) = 1 4m xt Bx mit B = B(G) und x = x(c) 19 Henning Meyerhenke, Institut für Theoretische Informatik
Modularitäts-Matrix Definition Sei die Modularitäts-Matrix B definiert als: B ij = A ij deg(i) deg(j) 2m Proposition n j=1 B ij = 0 i q(c) = 1 4m xt Bx mit B = B(G) und x = x(c) Beweis: Übung! 19 Henning Meyerhenke, Institut für Theoretische Informatik
Das grobe Vorgehen 1. Kodiere Clusterung in Vektoren 2. Kodiere Graphen in einer Matrix 3. Zielfunktion und Nebenbedingungen aufstellen 4. Diskretes Problem zu kontinuierlichem Problem relaxieren 5. Kontinuierliches Problem mit Mitteln der linearen Algebra und der Analysis lösen 6. Lösung diskretisieren 20 Henning Meyerhenke, Institut für Theoretische Informatik
Zielfunktion und Nebenbedingungen Maximiere q = 1 4m xt Bx u. d. Nb. x i { 1, 1} i 21 Henning Meyerhenke, Institut für Theoretische Informatik
Zielfunktion und Nebenbedingungen Maximiere q = 1 4m xt Bx u. d. Nb. x i { 1, 1} i Bild des Suchraums: Siehe Tafel! 21 Henning Meyerhenke, Institut für Theoretische Informatik
Das grobe Vorgehen 1. Kodiere Clusterung in Vektoren 2. Kodiere Graphen in einer Matrix 3. Zielfunktion und Nebenbedingungen aufstellen 4. Diskretes Problem zu kontinuierlichem Problem relaxieren 5. Kontinuierliches Problem mit Mitteln der linearen Algebra und der Analysis lösen 6. Lösung diskretisieren 22 Henning Meyerhenke, Institut für Theoretische Informatik
Das kontinuierliche Problem Die Ganzzahligkeits-Bedingung wird relaxiert: Maximiere q = 1 4m xt Bx u. d. Nb. x i R i und x T x = n (quadratische Norm) 23 Henning Meyerhenke, Institut für Theoretische Informatik
Das grobe Vorgehen 1. Kodiere Clusterung in Vektoren 2. Kodiere Graphen in einer Matrix 3. Zielfunktion und Nebenbedingungen aufstellen 4. Diskretes Problem zu kontinuierlichem Problem relaxieren 5. Kontinuierliches Problem mit Mitteln der linearen Algebra und der Analysis lösen 6. Lösung diskretisieren 24 Henning Meyerhenke, Institut für Theoretische Informatik
Lösen des kontinuierlichen Problems Herleitung des EV-Problems anhand der Ableitung der ZF und Überführung in Lagrange-Optimierung (Details nicht Teil dieser Vorlesung) Schließlich: Berechne Eigenvektor z 1 zum größten Eigenwert von B 25 Henning Meyerhenke, Institut für Theoretische Informatik
Das grobe Vorgehen 1. Kodiere Clusterung in Vektoren 2. Kodiere Graphen in einer Matrix 3. Zielfunktion und Nebenbedingungen aufstellen 4. Diskretes Problem zu kontinuierlichem Problem relaxieren 5. Kontinuierliches Problem mit Mitteln der linearen Algebra und der Analysis lösen 6. Lösung diskretisieren 26 Henning Meyerhenke, Institut für Theoretische Informatik
Lösung diskretisieren Kontinuierliche Lösung x = z 1 diskrete Lösung x mit folgenden Eigenschaften: x i {+1, 1} (x soll eine 2-Clusterung kodieren) { 1 xi < 0 x i = +1 x i > 0 27 Henning Meyerhenke, Institut für Theoretische Informatik
Spektrale Partitionierung Algorithmus Eingabe: G = (V, E) Ausgabe: 2-Clusterung (V 1, V 2 ) von G 1. Konstruiere B(G) 2. Berechne den Eigenvektor z 1 von B(G) 3. Partitioniere Indizes von z 1 in zwei Teile: V 1 := {i z 1 (i) < 0}, V 2 := {i z 1 (i) > 0} 4. Weise die Null-Einträge von z 1 beliebig zu 5. return (V 1, V 2 ) 28 Henning Meyerhenke, Institut für Theoretische Informatik
Diskussion Vorteile: Schnell programmiert (Eigenlöser-Bibliothek vorausgesetzt) Verbreitetes Clustering-Konzept Theoretische Analyse 29 Henning Meyerhenke, Institut für Theoretische Informatik
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) 29 Henning Meyerhenke, Institut für Theoretische Informatik
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 29 Henning Meyerhenke, Institut für Theoretische Informatik