Algorithmische Methoden zur Netzwerkanalyse - Juniorprof. Dr

Werbung
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
Herunterladen