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