Algorithmische Methoden zur Netzwerkanalyse - Prof. Dr

Werbung
Algorithmische Methoden zur
Netzwerkanalyse
Prof. 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 2
Wiederholung:
Knotengradverteilung:
“Wie viele Leute kenne ich?”
k -Kerne:
“Wie gut bin ich vernetzt?”
Heute:
k -Kern-Zerlegung parallel
Clusterkoeffizienten:
“Der Freund meines Freundes ist mein Freund”
2
Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmische Methoden zur Netzwerkanalyse
Zentralitätsmaße
Inhalt
Zentralitätsmaße
k -Kern-Zerlegung
Berechnung der k -Kern-Zerlegung
Cluster-Koeffizienten
Grundlagen
Lokaler CK
3
Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmische Methoden zur Netzwerkanalyse
Zentralitätsmaße
k -Kern-Zerlegung
k -Kern-Zerlegung: Definition
Definition
Der i-Kern von G ist der eindeutige Teilgraph, den man erhält, indem
man nacheinander alle Knoten mit Grad < i entfernt.
4
Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmische Methoden zur Netzwerkanalyse
Zentralitätsmaße
k -Kern-Zerlegung
Algorithmus zur Berechnung der k -Kern-Zerlegung
Algorithm 1 Berechnung der Kernzerlegung eines Graphen
1: function C ORE D ECOMPOSITION(G = (V , E ))
2:
Output: Kernzahl k des Kerns von G und Feld core mit Kernzahl jedes
Knotens
3:
Speichere die Knotengrade für alle Knoten in resdegree
4:
i←0
5:
while V 6= ∅ do
6:
i ← i +1
7:
for each v ∈ V mit resdegree [v ] < i do
8:
core [v ] ← i − 1
9:
for each u ∈ N (v ) do
10:
resdegree [u ] ← resdegree [u ] − 1
11:
end for
12:
Entferne v aus G
13:
end for
14:
end while
15:
return (i − 1, core )
16: end function
5
Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmische Methoden zur Netzwerkanalyse
Zentralitätsmaße
k -Kern-Zerlegung
Beispiel
[Baur et al., 2008]
6
Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmische Methoden zur Netzwerkanalyse
Zentralitätsmaße
k -Kern-Zerlegung
Laufzeit
Theorem
Sei G = (V , E ) mit |E | = m zusammenhängend und ungewichtet.
Der Algorithmus C ORE D ECOMPOSITION kann in
Laufzeit O(m )
implementiert werden.
Beweis: Siehe Tafel und Skript!
7
Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmische Methoden zur Netzwerkanalyse
Zentralitätsmaße
k -Kern-Zerlegung
Parallele Berechnung der
Kernzerlegung
Bräuchten eine parallele PQ
Wird durch parallele Suche nach Knoten mit passendem
Residualgraph ersetzt
Diese Knoten und deren Nachbarschaft werden parallel abgearbeitet
Siehe Implementierung in NetworKit
Literaturhinweise
N.S. Dasari, D. Ranjan, and M. Zubair: Park: An efficient algorithm for k-core decomposition on multicore
processors. In Proc. Intl. Conference on Big Data 2014, pages 9–16.
8
Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmische Methoden zur Netzwerkanalyse
Zentralitätsmaße
k -Kern-Zerlegung
ParK: Parallele k -Kern-Zerlegung
3 wesentliche Datenstrukturen:
resdeg: Residualgrad jedes Knotens
curr: Knoten der aktuellen Iteration
next: Knoten der nächsten Iteration
9
Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmische Methoden zur Netzwerkanalyse
Zentralitätsmaße
k -Kern-Zerlegung
ParK: Parallele k -Kern-Zerlegung
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
10
procedure PAR K(G = (V , E ))
Initialisiere resdeg
curr ← ∅; next ← ∅
todo ← n
level ← 1
while todo > 0 do
scan(resdeg, level, curr)
while |curr| > 0 do
todo ← todo - |curr|
processSublevel(resdeg, level, curr, next)
curr ← next
next ← ∅
end while
level++
end while
end procedure
Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmische Methoden zur Netzwerkanalyse
Zentralitätsmaße
k -Kern-Zerlegung
ParK: Parallele k -Kern-Zerlegung
Untermethode Scan
Zweck: Knoten der aktuellen Schale identifizieren
1:
2:
3:
4:
5:
6:
7:
8:
9:
11
procedure S CAN(G = (V , E ), resdeg, level, curr)
idx ← 0
for i ← 0 to n-1 do in parallel
if resdeg[i] = level then
a ← atomicInc(idx, 1)
curr[a] ← i
end if
end for
end procedure
Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmische Methoden zur Netzwerkanalyse
Zentralitätsmaße
k -Kern-Zerlegung
ParK: Parallele k -Kern-Zerlegung
Untermethode ProcessSublevel
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
12
procedure P ROCESS S UBLEVEL(G = (V , E ), resdeg, level, curr, next)
idx ← 0
for each v ∈ curr do in parallel
core[v] ← level
for each u ∈ N (v ) do
if resdeg[u] > level then
a ← atomicDecAfter(resdeg[u], 1)
if a = level then
b ← atomicInc(idx, 1)
next[b] ← u
end if
end if
end for
end for
end procedure
Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmische Methoden zur Netzwerkanalyse
Zentralitätsmaße
k -Kern-Zerlegung
Fazit k -Kern-Zerlegung
Die k -Kernstruktur gibt ein Maß an, das robuster ist als der
Knotengrad zur Bestimmung der Verbindung eines Knotens zum Rest
des Graphen
Lemmas beleuchten Größe der i-Schalen
Algorithmische Definition führt zu Algorithmus, der die Struktur
berechnet
Sequentiell effizient: Bucket-Prioritätsliste
Parallel: PQ parallel möglich, aber schwierig
13
Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmische Methoden zur Netzwerkanalyse
parallele Scans
Zentralitätsmaße
k -Kern-Zerlegung
Inhalt
Zentralitätsmaße
k -Kern-Zerlegung
Berechnung der k -Kern-Zerlegung
Cluster-Koeffizienten
Grundlagen
Lokaler CK
14
Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmische Methoden zur Netzwerkanalyse
Zentralitätsmaße
Cluster-Koeffizienten
Cluster-Koeffizient
Einführung
Fragestellung
Ihnen gibt jemand einen Graphen und behauptet, es sei ein soziales
Netzwerk.
Sie möchten die Behauptung überprüfen.
Welche Analyse-Möglichkeiten fallen Ihnen dazu bereits ein?
Hinweis: Erwarten Sie relativ viele oder relativ wenige Dreiecke im
Netzwerk?
Aufgabe: Formalisierung dieses Konzeptes
15
Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmische Methoden zur Netzwerkanalyse
Zentralitätsmaße
Cluster-Koeffizienten
Cluster-Koeffizient
Beschreibung
Der Cluster-Koeffizient misst die durchschnittliche Wahrscheinlichkeit,
dass zwei Nachbarn desselben Knotens zueinander benachbart sind.
⇒ Maß für die Dichte von Dreiecken im Netzwerk
Gleiche Netzwerktypen haben häufig ähnliche Koeffizienten
Unterschiedliche Netzwerktypen haben häufig unterschiedliche
Koeffizienten
Aber: Ausnahmen nicht so selten
Beispiel in [Newman, S. 237]: Werte oft zwischen 0.1 und 0.6
⇒ Typische Wkt. dafür, dass gemeinsame Nachbarn zueinander
benachbart sind, liegt zwischen 10% und 60%.
16
Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmische Methoden zur Netzwerkanalyse
Zentralitätsmaße
Cluster-Koeffizienten
Cluster-Koeffizient
Definition
Definition
Der globale Cluster-Koeffizient C ist definiert als
C :=
3 · Zahl der (geschlossenen) Dreiecke
Zahl der zusammenhängenden Dreiergruppen
Alternative Definition:
Definition
Der globale Cluster-Koeffizient C ist definiert als
C :=
17
6 · Zahl der (geschlossenen) Dreiecke
Zahl der Wege der Länge 2
Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmische Methoden zur Netzwerkanalyse
Zentralitätsmaße
Cluster-Koeffizienten
Beispiel
Siehe Tafel
18
(1, 2, 3)
(1, 2, 4)
(1, 2, 5)
(2, 3, 4)
(2, 3, 5)
(2, 3, 6)
(2, 4, 3)
(2, 4, 6)
(2, 5, 3)
(3, 2, 1)
(3, 2, 4)
(3, 2, 5)
(3, 4, 2)
(3, 4, 6)
(3, 5, 2)
(3, 6, 4)
(4, 2, 1)
(4, 2, 3)
(4, 2, 5)
(4, 3, 2)
(4, 3, 5)
(4, 3, 6)
(4, 6, 3)
(5, 2, 1)
(5, 2, 3)
(5, 2, 4)
(5, 3, 2)
(5, 3, 4)
(5, 3, 6)
(6, 3, 2)
(6, 3, 4)
(6, 3, 5)
(6, 4, 2)
(6, 4, 3)
Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmische Methoden zur Netzwerkanalyse
⇒ 34 Wege der
Länge 2,
3 Dreiecke
⇒ C = 18/34 =
9/17
Zentralitätsmaße
Cluster-Koeffizienten
Bedeutung
Durchschnittliche Wahrscheinlichkeit, dass zwei Personen mit einem
gemeinsamen Freund auch befreundet sind.
→ C liegt im Intervall [0, 1].
Ist der Freund meines Freundes mein Freund?
→ Nicht unbedingt, aber viel wahrscheinlicher als jemand Zufälliges!
Bei C = 1: Alle zusammenhängenden Dreiergruppen bilden eine
Clique.
Frage: Wie hoch ist C in einem Baum?
19
Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmische Methoden zur Netzwerkanalyse
Zentralitätsmaße
Cluster-Koeffizienten
Diskussion
Soziale Netzwerke: C oft im zweistelligen Prozent-Bereich.
Bei technischen Netzwerken ist C häufig niedriger.
Bsp.: AS-Netzwerk hat nur ca. C = 0.01.
Intuitive Signifikanz der Werte:
Annahme: Alle Knoten haben etwa Grad c
Annahme: Meine Freunde wählen ihre Freunde zufällig
→ Wkt., dass ein solcher Freund auch mein Freund ist, ist etwa c/n
20
Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmische Methoden zur Netzwerkanalyse
Zentralitätsmaße
Cluster-Koeffizienten
Zwischenfazit Cluster-Koeffizienten
Cluster-Koeffizient gibt durchschnittliche Dichte von Dreiecken an
Maß zur Bestimmung von Netzwerktypen mit bestimmten
Eigenschaften
Auch für gerichtete Graphen möglich bei geeigneter Abwandlung der
Definition
21
Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmische Methoden zur Netzwerkanalyse
Zentralitätsmaße
Cluster-Koeffizienten
Lokaler Cluster-Koeffizient
Definition
Der lokale Cluster-Koeffizient eines Knotens v ist definiert als
C (v ) : =
Zahl der Dreiecke mit v
Zahl der Tripel (Pfade der Länge 2) mit v als zentralem Knoten
Der durchschnittliche lokale Clusterkoeffizient eines Graphen G ist
definiert als
1
Clocal (G ) :=
C (v )
| V 0 | v∑
∈V 0
Durchschnittliche Wkt., dass ein Paar von Nachbarn von v auch
benachbart ist.
Bei deg(v ) = 0 oder deg(v ) = 1 : C (v ) = 0 per def.
22
Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmische Methoden zur Netzwerkanalyse
Zentralitätsmaße
Cluster-Koeffizienten
LCC als Zentralitätsmaß
Definition
Das Zentralitätsmaß LCCC (local clustering coefficient centrality ) ordnet
jedem Knoten seinen lokalen Clusterkoeffizienten zu.
23
Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmische Methoden zur Netzwerkanalyse
Zentralitätsmaße
Cluster-Koeffizienten
Lokaler Cluster-Koeffizient
Anwendung
Interessant: Lokaler CK korreliert oft negativ mit Knotengrad.
Beurteilung der Häufigkeit struktureller Löcher
Viele strukturelle Löcher ⇒ weniger Routing-Alternativen
Lokaler CK kann Art von Wichtigkeit des Knotens ausdrücken
Zentralitätsmaß
Interessant: Niedrige Werte bedeuten hohen Einfluss auf Nachbarn
(da keine Alternativen für diese existieren)!
In der Praxis häufig hohe Korrelation zwischen lokalem CK und
anderen Maßen zur Wichtigkeit eines Knotens!
Achtung, global und lokal nicht verwechseln:
Manchmal wird der globale Cluster-Koeffizient anders definiert. Oder
er wird Transitivität genannt.
24
Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmische Methoden zur Netzwerkanalyse
Zentralitätsmaße
Cluster-Koeffizienten
Approximation des CK
Motivation
2 )
Naiver Algorithmus: O (ndmax
Bester exakter Algorithmus: O ( MM (n)) mit MM ( N ) ≈ n2,373
Siehe dazu:
Literaturhinweis
Thomas Schank, Dorothea Wagner: Approximating Clustering Coefficient
and Transitivity. Journal of Graph Algorithms and Applications,
9(2):265-275, 2005.
25
Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmische Methoden zur Netzwerkanalyse
Zentralitätsmaße
Cluster-Koeffizienten
Approximation des durchschnittlichen
lokalen CK
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
26
function A PPROXIMATE L OCAL CK(G = (V , E ), k )
l←0
for i ← 1 to k do
r ← UniformRandomNumber(1, |V 0 |)
u ← UniformRandomNeighbor(Ar )
repeat
w ← UniformRandomNeighbor(Ar )
until u 6= w
if {u , w } ∈ E then
l ← l +1
end if
end for
return l/k
end function
Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmische Methoden zur Netzwerkanalyse
Zentralitätsmaße
Cluster-Koeffizienten
Garantien zum Algorithmus
Theorem
Für einen ungerichteten Graphen G = (V , E ) kann
approx
ein Wert Clocal (G ) ∈ [Clocal (G ) − e, Clocal (G ) + e]
mit Wkt. mindestens
ν −1
ν
ν
in der erwarteten Zeit O( log
)
e2
berechnet werden.
Beweis.
Siehe Tafel!
27
Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmische Methoden zur Netzwerkanalyse
Zentralitätsmaße
Cluster-Koeffizienten
Approximation des globalen CK
Was ändert sich?
Was müssen wir beim Algorithmus noch beachten?
Beispiel: Siehe Tafel!
Daher: Gewichtsfunktion ω mit ω (v ) = Anzahl der Tripel (deg2(v )) mit v
Stichprobe richtet sich dann nach Anzahl der Tripel eines Knotens
28
Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmische Methoden zur Netzwerkanalyse
Zentralitätsmaße
Cluster-Koeffizienten
Approximation des globalen CK
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
29
function A PPROXIMATE G LOBAL CK(G = (V , E , ω ), k )
W ← PrefixSum(ω)
l←0
for i ← 1 to k do
r 0 ← UniformRandomNumber(1, W|V 0 | )
r ← FindIndex(r : Wr −1 < r 0 ≤ Wr )
u ← UniformRandomNeighbor(Ar )
repeat
w ← UniformRandomNeighbor(Ar )
until u 6= w
if {u , w } ∈ E then
l ← l +1
end if
end for
return l/k
end function
Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmische Methoden zur Netzwerkanalyse
Zentralitätsmaße
Cluster-Koeffizienten
Garantien zum Algorithmus
Theorem
Für einen ungerichteten Graphen G = (V , E )
approx
kann ein Wert Cglobal (G ) ∈ [Cglobal (G ) − e, Cglobal (G ) + e]
mit Wkt. mindestens
ν −1
ν
in der erwarteten Zeit O(n +
berechnet werden.
log ν
e2
· log n)
Beweis.
Präfixsumme der Gewichte: O(n)
Zufälligen Knoten mit passendem Sampling finden: O(log n)
Rest wie vorher
30
Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmische Methoden zur Netzwerkanalyse
Zentralitätsmaße
Cluster-Koeffizienten
Fazit CK
Laufzeit der exakten Berechnung des globalen CK mit naivem
2 )
Algorithmus abhängig von Knotengradverteilung: O (ndmax
Bester bekannter exakter Algorithmus: O ( MM (n)) mit MM ( N ) ≈ n2,373
Approximation des globalen CK in linearer Laufzeit (unter Annahmen)
Approximation des durchschnittlichen lokalen CK in Laufzeit
unabhängig von der Graphgröße
31
Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmische Methoden zur Netzwerkanalyse
Zentralitätsmaße
Cluster-Koeffizienten
Herunterladen