Proseminar Netzwerkanalyse Algorithmen für Zentralitätsindizes Erweiterte Zentralitäts-Konzepte Universität Trier Fachbereich Informatik Sommersemester 2005 Almasa Adrovic Dirk Lex Inhaltsverzeichnis 1 2 Zentralitätsindizes 1.1 Basisalgorithmen . . . . . . . . . . . . . . . . . . . 1.1.1 Bestimmung des kürzesten Pfades zwischen einem Startknoten und allen anderen Knoten 1.1.2 Bestimmung des kürzesten Pfades zwischen allen Knoten . . . . . . . . . . . . 1.2 Zentralitätsspezifische Algorithmen . . . . . . . . . 1.2.1 Betweenness Zentralität . . . . . . . . . . . 1.3 schnelle Näherungsverfahren . . . . . . . . . . . . . 1.3.1 Abschätzung der Zentralität . . . . . . . . . 1.4 Dynamische Berechnungen . . . . . . . . . . . . . . 1.4.1 kontinuierlicher Update der Näherung des PageRank . . . . . . . . . . . . . . . . . . . 1.4.2 dynamische Updates . . . . . . . . . . . . . . . . . . . . 2 2 . . . . . . . 2 . . . . . . . . . . . . 3 4 4 7 7 8 . . . . . . . . . . . . . . 8 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . erweiterte Zentralitätskonzepte 11 2.1 Normalisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.1.1 Vergleich von Elementen eines Graphen . . . . . . . . . . 11 2.1.2 Vergleich von Elementen verschiedener Graphen . . . . . 12 2.2 Personalisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2.1 Personalisierung von distanz- und kürzester Pfad-basierten Zentralitäten . . . . . . . . . . . . . . . . . . . . . . . . 13 2.3 Vier Dimensionen eines Zentralitätsindexes . . . . . . . . . . . . 15 2.3.1 Strukturierung . . . . . . . . . . . . . . . . . . . . . . . 15 2.3.2 Unabhängigkeit der Dimensionen . . . . . . . . . . . . . 16 2.3.3 Entwurf eines geeigneten Zentralitätsindexes . . . . . . . 16 2.4 Axiomatisierung . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.4.1 Axiomatisierung für distanzbasierte Knotenzentralitäten . 18 2.4.2 Axiomatisierung für Feedback-Zentralitäten . . . . . . . . 20 2.5 Stabilität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.5.1 Stabilität von distanzbasierten Zentralitäten . . . . . . . . 22 1 Kapitel 1 Zentralitätsindizes 1.1 1.1.1 Basisalgorithmen Bestimmung des kürzesten Pfades zwischen einem Startknoten und allen anderen Knoten Die Berechnung des kürzesten Pfades zwischen einem Knoten (dem Quellknoten / Source) und einem anderen Knoten ist ein klassisches Problem, auch bekannt als Single Source Shortest Path“-Problem (SSSP). ” Ein wichtiger Algorithmus, der dieses Problem für Graphen mit nichtnegativen Kantengewichten löst, ist der folgende: Der Dijkstra-Algorithmus: Input: Graph G = (V, E), Kantengewicht ω : E → R, Quellknoten s ∈ V Output: kürzeste Pfad-Distanz d(s, v) zu allen Knoten v ∈ V P = ∅, T = V d(s, v) = ∞ for all v ∈ V , d(s, s) = 0, pred(s) = 0 while P 6= V do v = argmin{d(s, v) | v ∈ T } P := P ∪ v, T := T \{v} for w ∈ N (v) do if d(s, w) > d(s, v) + ω(v, w) then d(s, w) := d(s, v) + ω(v, w) pred(w) = v fi od od 2 Laufzeit: O(m + n log n) Für ungewichtete Graphen (ω(v, w) = 1 für alle v, w ∈ V ) kann die Priority Queue durch eine gewöhnliche Queue ersetzt werden, was eine Laufzeit von O(m + n) ergibt (vgl. Breitensuche). 1.1.2 Bestimmung des kürzesten Pfades zwischen allen Knoten Die Berechnung des kürzesten Pfades zwischen allen Knoten ist als All-Pairs ” Shortest Path“-Problem (APSP) bekannt. Eine leicht ersichtliche Herangehensweise, um dieses Problem zu lösen, ist es, eine Schleife über alle n Knoten laufen zu lassen und n mal den Dijkstra-Algorithmus anzuwenden. Als Laufzeit bekäme man somit O(nm + n2 log n). Lemma: Sei d(u, v), u, v ∈ V , die Länge eines Pfades von u nach v. Dann repräsentiert d die Länge des kürzesten Pfades genau dann, wenn gilt: d(u, w) = d(u, v) + d(v, w) für alle u, v, w ∈ V Dieses Lemma kann nun für einen alternativen Algorithmus verwendet werden: Der Floyd-Warshall-Algorithmus: Input: Graph G = (V, E), Kantengewicht ω : E → R Output: kürzeste Pfad-Distanz d(u, v) zwischen allen Knoten u, v ∈ V d(u, v) = ∞, pred(u, v) = 0 for all u, v ∈ V d(v, v) = 0 for all v ∈ V d(u, v) = ω(u, v), pred(u, v) = u for all {u, v} ∈ E for v ∈ V do for {u, w} ∈ V xV do if d(u, w) > d(u, v) + d(v, w) then d(u, w) := d(u, v) + d(v, w) pred(u, w) := pred(v, w) fi od od Laufzeit: O(n3 ) Ob dieser Algorithmus schneller ist, hängt somit von der Anzahl m der Kanten des Graphen ab. 3 1.2 Zentralitätsspezifische Algorithmen Die meisten Zentralitätsindizes können relativ gut und schnell berechtnet werden, indem man einfach strikt ihrer Definition folgt. Dennoch sind häufig Verbesserungen dieser Algorithmen möglich. 1.2.1 Betweenness Zentralität Die Betweenness Zentralität eines Knotens v ∈ V ist wie folgt definiert: cB (v) = X s6=v6=t∈V σst (v) , σst wobei σst die Anzahl der kürzesten Pfade zwischen s und t und σst (v) die Anzahl dieser Pfade ist, die durch v gehen. Ein direkt dieser Definition folgender Algorithmus könnte also wie folgt aussehen: • Erstelle eine Tabelle mit Länge und Anzahl der kürzesten Pfade zwischen allen Knoten-Paaren • für jeden Knoten c tue: – nehme alle möglichen Paare s, t (s 6= v 6= t) – nutze die Tabelle, um die kürzesten s-t Pfade durch v zu identifizieren – berechne cB Dabei kann für die Berechnung der kürzesten Pfade im ersten Schritt der (entsprechend angepasste) Dijkstra-Algorithmus verwendet werden. Für die Berechnung der σst (v)-Werte im zweiten Schritt beachte man folgende Gleichung: σst (v) = σsv ∗ σvt Damit ergibt sich für die Berechnung von cB (v) eine Laufzeit von O(n2 ) für jeden Knoten v, insgesamt also eine Laufzeit von O(n3 ) für den gesamten Algorithmus. Brandes konnte allerdings zeigen, dass dies auch besser geht. Dazu führen wir zunächst folgende Definition ein: 4 Definition (Paar-Abhängigkeit und Abhängigkeit): Die Paar-Abhängigkeit eines Knotenpaares s, t ∈ V von einem dazwischen liegenden Knoten v ist definiert als δst (v) = σst (v) σst und die Abhängigkeit eines Knotens s ∈ V von einem Knoten v ∈ V als X δs• (v) = δst (v). t∈V Die Betweenness Zentralität kann also berechnet werden als: X cB (v) = δs• (v). s6=v∈V Theorem (Brandes): Die Abhängigkeit δs• (v) eines Quellknotens s ∈ V von jedem anderen Knoten v ∈ V erfüllt die Gleichung X σsv (1 + δs• (w)). δs• (v) = σsw w:v∈pred(s,w) Beweis: Zunächst erweitern wir die Variablen für die Anzahl der kürzesten Pfade und für die Abhängigkeiten wie folgt: Definiere δst (v, e) als die Anzahl der kürzesten Pfade von s nach t, die sowohl den Knoten v ∈ V als auch die Kante e ∈ E enthalten. Weiterhin definieren wir die Paar-Abhängigkeiten eines Knotenparres s, t von einem Knoten v und einer Kante e als δst (v, e) = σst (v, e)/σst . Damit schreiben wir X X δs• (v) = δst (v) = δst (v, {v, w}). t∈V w:v∈pred(s,w) Nun betrachten wir einen Knoten w, für den gilt: v ∈ pred(s, w). Es gibt σsw kürzeste Pfade von s nach w, von denen σsv von s nach v gehen und anschließend die Kante {v, w} benutzen. Für einen gegebenen Knoten t bedeutet dies, dass ein Anteil σsv /σsw der Anzahl der Kürzesten Pfade σst (w) von s nach t 6= w, die den Knoten w benutzen, ebenfalls die Kante {v, w} benutzen. Für die Paar-Abhängigkeit von s und t von v und {v, w} ergibt dies: ( σsv if t = w, δst (v, {v, w}) = σσsw σst (w) sv · σst if t 6= w. σsw 5 Durch Austauschen der Summationsreihenfolge und Substitution ergibt sich: X X δst (v, {v, w}) = w:v∈pred(s,w) t∈V X w:v∈pred(s,w) = X w:v∈pred(s,w) σsv σsw X σsv σst (w) + · σsv σst t∈V \w σsv (1 + δs• (w)). σsw Der Algorithmus zur Berechnung der Betweenness Zentralität, welcher darauf aufbaut funktioniert nun wie folgt: Zunächst berechne n Kürzeste-Pfad-Bäume - einen für jeden Knoten s ∈ V . Erstelle während dieser Berechnungen ebenfalls die Vorgängermengen pred(s, v). Als nächstes nimm einen Knoten s ∈ V , seinen Kürzesten-Pfad-Baum und seine Vorgängermenge und berechne die Abhängigkeiten δs• (v) für alle anderen Knoten v ∈ V unter Verwendung des eben bewiesenen Theorems von Brandes. Für den Knoten s können die Abhängigkeiten berechnet werden, indem man die Knoten in absteigender Reihenfolge ihrer Distanz von s entlang geht (also bei den Blättern des Kürzesten-Pfad-Baumes beginnt). Um letztlich den Zentralitätswert des Knotens v zu berechnen, muss man lediglich alle Abhängigkeitswerte addieren, die während der n SSSP-Berechnungen berechnet wurden. Der resultierende Platzbedarf von O(n2 ) kann vermieden werden, indem der Zentralitätswert als eine Art Laufvariable angesehen wird. Man addiert dann einfach die berechneten Abhängigkeiten für jeden Knoten sofort zu diesem ’laufenden Zentralitätswert’. Somit berechnet dieser Algorithmus die Betweenness Zentralität jedes Knotens v ∈ V und benötigt dafür lediglich die Berechnung eines Kürzester-Pfad-Baumes für jeden Knoten v ∈ V . Weiterhin ist der Platzbedarf linear zur Anzahl an Knoten und Kanten. Theorem (Brandes): Die Betweenness Zentralität cB (v) für alle Knoten v ∈ V kann in Zeit O(nm + n2 log n) für gewichtete Graphen und in Zeit O(nm) für ungewichtete Graphen berechnet werden. Der Platzbedarf beträgt O(n + m). 6 1.3 schnelle Näherungsverfahren 1.3.1 Abschätzung der Zentralität Abschätzung der Closeness-Zentralität in einem gewichteten Graphen: Definition: Closeness-Zentralität cc (v) := sumx∈v d(v, x)/(n − 1) Algorithmus zur Abschätzung: 1. 2. 3. Wähle K Knoten {v1 , ..., vK } zufällig aus V Für jeden Knoten v ∈ {v1 , ..., vK } löse das SSSP-Problem mit v als Quelle Für jeden Knoten v ∈ V berechne: P n ĉc (v) = (K·(n−1)) · K i=1 d(v, vi ) Als nächstes stellt sich nun die Frage, wie groß K gewählt werden muss, um eine gute Näherung für den Zentralitätsindex zu erhalten. Dazu betrachten wir folgendes Lemma: P Seien x1 , ..., xk unabhängig und ai ≤ xi ≤ bi , µ = E[ xi /K] sei der Erwartungswert. Dann gilt für ξ > 0: o n PK PK 2 2 2 xi P i=1 − µ ≥ ξ ≤ 2 · e−2K ξ / i=1 (bi −ai ) . K n∆ i ,u) , µ = cc (v), ai = 0 und bi = n−1 , so lässt sich die Setzt man nun xi = n·d(v n−1 Wahrscheinlichkeit, dass der Fehler beim Annähern von cc (v) durch ĉc (v) größer ist als ξ beschränken durch: ( P ) K x PK 2 2 2 i=1 i − µ ≥ ξ ≤ 2 · e−2K ξ / i=1 (bi −ai ) P K 2 n∆ 2 2 = 2 · e−2K ξ /K ( n−1 ) 2 2 = 2 · e−Ω(Kξ /∆ ) Setzt man weiter ξ = ·∆ und K = Θ log2 n , so ist die Wahrscheinlichkeit, einen Fehler größer als · ∆ zu machen, höchstens n1 für jeden abgeschätzten Wert. Dabei ist eine Konstante und ∆ = ∆G der Durchmesser des Graphen. 7 Unter Berücksichtigung der Komplexität des SSSP-Problems ergibt sich eine Gesamtlaufzeit von O(K(n + m)) (ungewichteter Graph) bzw. O(K(m + n log n)) (gewichteter Graph) und mit K = Θ(log n/2 ) schließlich O( und O( log n (n + m)) 2 log n (m + n log n)). 2 Mit Hilfe der selben Technik lässt sich u. a. auch die Betweenness-Zentralität annähern: K X n ĉB (v) := ( δvi • (v) K i=1 1.4 1.4.1 Dynamische Berechnungen kontinuierlicher Update der Näherung des PageRank Zur Berechnung der Wichtigkeit einer Seite im Internet, z. B. mittels PageRank, ist es wichtig, die Veränderungen des Webgraphen zu beachten (z. B. das Löschen von Seiten (Knoten) oder Links (Kanten). Dazu wollen wir uns nun den ’On-line Page Importance Computation’-Algorithmus (OPIC) ansehen, welcher eine Näherung des PageRank berechnet, ohne den kompletten Webgraphen (inklusive aller Links) speichern zu müssen. Die Idee des Algorithmus ist die Aufteilung eines ’Cash’-Wertes. Bei der Initialisierung des Algorithmus besitzt jede Seite einen cash-Wert. Der genäherte PageRank wird dann direkt über die aktuelle Cash-Aufteilung berechnet. Dazu werden zwei Arrays benötigt: c: aktuelle Aufteilung des cash h: History der Cash-Werte für jede Seite. P Zudem sei g = ni=1 h[i] die Summe der History-Werte. 8 Der genäherte PageRank ist dann gegeben durch: cP Rapprox (i) = h[i] + c[i] g+1 ”On-line Page Importance Computation”-Algorithmus (OPIC): Input: Graph G Output: c, h, g for i ← 1 to n do c[i] ← 1/n h[i] ← 0 od g←0 repeat wähle einen Knoten i aus G //(∗ ) h[i] ← h[i] + c[i]//U pdate der History von i for each child j of i do c[j] ← c[j] + c[i]/d+ [i]//verteile Cash von i an Kinder od g ← g + c[i]//U pdate des globalen History − W ertes c[i] ← 0//Reset Cash von i until 0 = 1//(∗∗ ) (∗ )Bei den Auswahlstrategien der Knoten ist es wichtig, dass die W ahrscheinlichkeiten, einen Knoten auszuwählen gleichverteilt sind, d. h. alle Knoten müssen regelmäßig U pdates durchlauf en. M ögliche Auswahlstrategien wären z. B. eine gleichverteilte Zuf allswahl, ein zyklisches Durchlauf en aller Knoten oder eine 00 gierige00 Auswahl (d. h. es wird immer der Knoten mit dem aktuell höchsten Cash ausgewählt und bei gleichem Cash − W ert zuf ällig einer dieser Knoten ausgewählt). (∗∗ )Die Repeat − Schleif e läuf t endlos und sorgt f ür kontinuierliche U pdates des P ageRank 9 1.4.2 dynamische Updates Um eine Beschleunigung des Algorithmus zur Berechnung der Wichtigkeit einer Seite zu erreichen, lässt sich folgende Idee ausnutzen: Berechne den PageRank nur für den veränderten Teil eines Netzwerkes neu. Am Beispiel des Webgraphen bedeutet dies, dass man auf das Hinzufügen und Entfernen von Seiten und Links reagieren muss. Auf einen genauen Algorithmus möchten wir an dieser Stelle aber verzichten. 10 Kapitel 2 erweiterte Zentralitätskonzepte 2.1 2.1.1 Normalisierung Vergleich von Elementen eines Graphen Nun möchten wir uns mit der Frage befassen, wie man Zentralitätwerte eines Graphen G = (V, E) miteinander vergleichen kann. Dazu möchten wir zunächst eine Vereinfachung der Notation einführen: • Zentralitätsvektor statt Funktion • Zentralität cx , wobei x für die verschiedenen Akronyme steht, z. B. cB = Betweenness-Zentralität, cc = Closeness-Zentralität • Vektor cx mit cxi = cx (i)∀i ∈ V Jeder Zentralitätsvektor cx kann nun normaliesiert werden, indem man die Zentralitätswerte durch die p-Norm des Zentralitätsvektors dividiert. Auf diese Weise erhält man Zentralitätswerte cxi ≤ 1. Dabei ist die p-Norm definiert als (P 1 1≤p<∞ ( ni=i |cxi |p ) p , ||cx ||p = maxi=1,...,n {|cxi |}, p = ∞ Nutzt man die Maximalnorm (p = ∞) zur Normalisierung, so ist der maximale Zentralitätswert 1 und dieser Wert wird von mindestens einem Knoten angenommen. Damit ergibt die Normalisierung mit Maximalnorm eine Art ,,relative” Zentralität für jeden Knoten des Graphen. Die Normalisierung mittels der p-Norm ist allerdings im Allgemeinen ungeeignet, um Knoten verschiedener Graphen miteinander zu vergleichen! 11 2.1.2 Vergleich von Elementen verschiedener Graphen Will man Knoten verschiedener Graphen miteinander vergleichen, so kann die unterschiedliche Größe der Graphen problematisch sein. Definition: Sei Gn die Menge von zusammenhängenden Graphen G = (V, E), mit |V | = n. Dann sei die Punkt-Zentralität definiert als 00 c xi = c xi , c∗x 00 wobei cxi = maxG∈Gn maxi∈V (G) cxi der maximale Zentralitätswert ist, den ein Knoten in allen Graphen mit n Knoten annehmen kann. 00 Unter Ausnutzung der Punkt-Zentralität cxi wird der Maximalwert 1 stets von mindestens einem Knoten in mindestens einem Graphen der Größe n angenommen. Auf diese Weise ist ein Vergleich der Zentralitätswerte möglich. Leider ist dies jedoch oft nur in der Theorie möglich, da die Ermittlung von c∗x i. A. alles andere als trivial und für manche Zentralitätskonzepte sogar unmöglich ist. Nichtsdestotrotz gibt es einige Zentralitätskonzepte, die die Berechnung von c∗x erlauben. Ein einfaches Beispiel hierfür ist die Grad-Zentralität. Es ist offensichtlich, dass bei einem ungerichteten Graphen mit n Knoten die maximale GradZentralität n - 1 ist. Entsprechend klar ist c∗c = (n − 1)−1 (man beachte die Definition der Closeness-Zentralität). 1 1 = max{d(u,v):v∈V . OffensichtFür die Eccentricity-Zentralität gilt cE (u) = e(u) } ∗ lich ist der maximal erreichbare Zentralitätswert hier 1, also cE = 1. Ein weiteres Beispiel ist die ”Shortest Paths Betwenness”-Zentralität. Der maximale Zentra2 litätswert, den ein Knoten hier annehmen kann, ist n −3n+2 (gegeben in einem 2 Stern). 2.2 Personalisierung Am Beispiel einer Suchmaschine im Internet lässt sich die Motivation für eine Personalisierung von Zentralitäten recht einfach erklären: Man stelle sich eine Suchmaschine vor, die die Ergebnisse nach persönlichen Interesse des Nutzers individuell ordnet. Auf diese Weise würde man stets die individuell relevantesten Seiten schnell finden. Zwei wesentliche Ideen und Methoden, dies zu erreichen, sollen nun kurz vorgestellt werden: 12 1) Ändern der Gewichtung der Knoten (Seiten) und/oder Kanten (Links) über einen Peronalisierungsvektor v. Die Gewichte der Knoten können dabei z. B. für die Zeit stehen, die man täglich auf der relevanten Seite verbringt und das Gewicht einer Kante könnte die Wahrscheinlichkeit beschreiben, dass ein bestimmter Link verwendet wird. 2) Wahl einer ,,Wurzelmenge” R ⊆ V von Knoten. Man misst dann die Wichtigkeit der anderen Knoten und der Kanten relativ zu R. 2.2.1 Personalisierung von distanz- und kürzester Pfad-basierten Zentralitäten Sei R eine Menge von Knoten eines Graphen. R sei dabei so gewählt, dass die Knoten in R als wichtig angenommen werden. Die Frage, die sich nun stellt, ist wie die Wichtigkeit der anderen Knoten in Relation zu R bewertet werden kann. Dieser Frage wollen wir nun nachgehen. Sei c(v) ein Zentralitätsindex für Knoten. Dann gibt c(v|R) die relative Wichtigkeit des Knotens v in Bezug auf eine gegebene Wurzelmenge R an. Weiter sei P (s, t) eine wohldefinierte Menge von Pfaden zwischen den Knoten s und t. Vorschläge für eine solche Pfadmenge wären z. B.: • eine Menge kürzester Pfade • eine Menge von k-kürzesten Pfaden, definiert als die Menge aller Pfade mit Länger kleiner als ein gegebenes k • eine Menge von k-kürzesten knotendisjunkten Pfaden (Anmerkung: In den meisten Graphen ist eine solche Pfadmenge nicht eindeutig definiert. Für eine deterministische Zentralität ist es aber wichtig, eine eindeutige Pfadmenge zu bestimmen. Daher sollte diese Pfadmenge ausschließlich in Graphen Anwendung finden, in denen es nur eine mögliche Menge knotendisjunkter Pfade für jedes Knotenpaar s, t gibt.) 13 Die Menge der kürzesten Pfade wird z. B. in der ,,Shortest Path Betweenness”Zentralität benutzt. Die relative Betweenness-Zentralität cRBC (v) kann dann auf drei Weisen definiert werden: • source relative betweenness centrality: XX csRBC (v) = δrt (v) r∈R t∈V Ein Knoten v wird also als wichtig definiert, wenn ein (möglichst großer) Teil der kürzesten Pfade, die von einem Knoten r aus der Wurzelmenge R zu einem Knoten t ∈ V führen, durch v verläuft. • target relative betweenness centrality: XX δsr (v) ctRBC (v) = s∈V r∈R Hier wird ein Knoten v als wichtig angesehen, wenn er in einem (möglichst großen) Teil der kürzesten Pfade enthalten ist, die in einem Knoten r ∈ R enden. • source and target in rootset: cRBC (v) = XX δrs rt (v) rs ∈R rt ∈R In diesem Fall wird ein Knoten v dann als wichtig angenommen, wenn er auf einem (möglichst großen) Teil kürzester Pfade liegt, die von der Wurzelmenge R in die Wurzelmenge R führen. Wählt man eine andere Pfadmenge P (s, t), z. B. die Menge der k-kürzesten Pfade, so muss die Definition von δst (v) wie folgt geändert werden: δst|P (v) = σst (v) , |P (s, t)| wobei σst (v) die Menge aller Pfade p ∈ P (s, t) ist, die v enthalten. Dieses Beispiel veranschaulicht die generelle Idee hinter dieser Art der Personalisierung von Zentralitätsindizes. Man kann diese Methode leicht auf andere distanzbasierte Zentralitäten erweitern. 14 2.3 Vier Dimensionen eines Zentralitätsindexes In diesem Abschnitt wollen wir uns mit einer Strukturierung des weiten Feldes der Zentralitätsmaße, Personalisierungs- und Normalisierungsmethoden befassen. 2.3.1 Strukturierung 1) Basisterm Über den Basisterm wollen wir die Zentralitätsmaße in vier Kategorien einteilen: • Erreichbarkeit (Reachability) (Basisterm: d(u, v)) Knoten werden als zentral angenommen, wenn sie möglichst viele andere Knoten erreichen. Bsp.: degree, eccentricity, closeness → basieren alle auf dem Distanzkonzept d(u, v) zweier Knoten u und v. So zählt man z. B. bei der Gradzentralität die Anzahl an Knoten, die in Distanz 1 erreicht werden können. • Flussbetrag (Amount of Flow) (Basisterm: fst (x)) Maß des Flusses fst (x) von einem Knoten s zu einem Knoten t, der durch einen Knoten oder eine Kante x geht. Bsp.: ,,current flow”-Zentralitäten (z. B. current flow betweenness, current flow closeness), random walks • Vitalität (Vitality) (Basisterm: V(G, x) = f (G) − f (G\{x})) Zentralität definiert als Wert einer Funktion f auf G mit und ohne dem entsprechenden Element Bsp.: maximum flow betweenness vitality • Rückkopplung (Feedback) können durch die abstrakte Formel c(vi ) = f (c(v1 ), ..., c(vn )) zusammengefasst werden, wobei der Zentralitätswert eines Knotens vi von den Zentralitätswerten der Knoten v1 , ..., vn abhängt Bsp.: viele Zentralitäten sozialer Netzwerke, Web-Zentralitäten 2) Term Operator Oft kann eine ganze Menge geeigneter Operatoren auf einen Basisterm angewandt werden, um einen brauchbaren Zentralitätsindex zu erhalten. Diese Idee soll nun an einigen Zentralitätsmaßen illustriert werden: 15 Sind die Distanzen für eine gegebene Anwendung definiert, können wir wählen, ob der Zentralitätsindex durch das Maximum aller Distanzen von u zu allen anderen Knoten v gegeben ist (eccentricity) oder als Summe über alle Distanzen (closeness) oder als Durchschnitt der Distanzen zu allen anderen Knoten (normalisierte Closeness-Zentralität). 3) Personalisierung Die dritte Dimension ist durch Methoden der Personalisierung gegeben (siehe oben). 4) Normalisierung Die Methoden der Normalisierung von Zentralitäten bildet entsprechend die vierte Dimension. 2.3.2 Unabhängigkeit der Dimensionen Alle vier Dimensionen sind unabhängig voneinander. Man sollte allerdings beachten, dass diese Dimensionen lediglich ein Vorschlag für die Betrachtung der Zentralitäten darstellt. Obwohl alle vorgestellten Zentralitäten sinnvoll in diese einteilbar sind, kann man nicht sicher sein, dass auch alle in Zukunft veröffentlichten Zentralitäten entsprechend einteilbar sein werden. Desweiteren kann man nicht versichern, dass jede mögliche Kombination auch zu einem sinnvollen und brauchbaren Zentralitätsindex führt. 2.3.3 Entwurf eines geeigneten Zentralitätsindexes Das folgende Diagramm erläutert kurz eine Methode, einen geeigneten Zentralitätsindex für eine bestimmte Applikation zu finden. Der erste Schritt besteht darin, sich die Frage zu überlegen, die durch das Zentralitätsmaß beantwortet werden soll. Dadurch erhält man meist schon die Kategorie und den entsprechenden Basisterm. Anschließend sind Personalisierungen möglich. Nun muss der Term Operator bestimmt werden. Da für Feedback-Zentralitäten eine Personalisierung mittels einer Wurzelmenge R meist nicht möglich bzw. sinnvoll ist, folgt der entsprechende Pfad im Diagramm hier einem separaten Weg. Hier ist der nächste Schritt, das lineare Gleichungssystem zu ermitteln und zu lösen. Als letzter Schritt folgt nun in der Regel eine Normalisierung wie zuvor beschrieben. 16 Fig. 1: flow chart for choosing, adapting or designing an appropriate centrality measure for a given application 17 2.4 Axiomatisierung In diesem Abschnitt möchten wir uns mit der Frage beschäftigen, ob es generelle Eigenschaften gibt, die ein Zentralitätsindex haben sollte. Insbesondere zieht dies den Versuch mit sich, den Begriff des Zentralitätsindexes exakt zu definieren. Im folgenden soll kurz gezeigt werden, warum dies schwierig bis nahezu unmöglich ist. 2.4.1 Axiomatisierung für distanzbasierte Knotenzentralitäten Beginnen wollen wir mit einem grundlegenden Versuch von Sabidussi, der speziell zwei Graphoperationen untersucht hat: • Hinzufügen einer Kante (u, v): Seien u, v verschiedene Knoten von G mit (u, v) ∈ / E(G). Den Graph H = (V, E ∪ {(u, v)}) erhält man durch Hinzufügen der Kante (u, v). • Verschieben einer Kante (u, v) Seien u, v, w drei verschiedene Knoten von G mit (u, v) ∈ E(G) und (u, v) ∈ / E(G). Den Graphen H = (V, E\{(u, v)} ∪ {(u, w)}) erhält man durch Entfernen von (u, v) und Einfügen von (v, w). Das Verschieben einer Kante muss zulässig sein, d. h. der resultierende Graph muss immer noch zusammenhängend sein. Sei Gn die Klasse der zusammenhängenden, ungerichteten Graphen mit n Knoten. Weiter sei c : V → R+ 0 eine Funktion von der Knotenmenge V eines Graphen G = (V, E) ∈ Gn in die Menge der nichtnegativen reellen Zahlen. Sc (G) = {u ∈ V : ∀v ∈ V c(u) ≥ c(v)} sei die Menge der Knoten von G mit maximaler Zentralität bzgl. einer gegebenen Knotenzentralität c. Definition (Knotenzentralität nach Sabussi): Eine Funktion c heißt Knotenzentralität auf G ∈ Gn0 , und Gn0 heißt c-zulässig genau dann, wenn die folgenden Bedingungen erfüllt sind: 1. Gn0 ist abgeschlossen bzgl. Isomorphismen, d. h. aus G ∈ Gn0 und H ' G folgt H ∈ Gn0 . 2. Ist G = (V, E) ∈ Gn0 , u ∈ V (G) und man erhält H aus G durch Verschieben einer Kante zu u oder durch Hinzufügen einer Kante zu u, dann ist auch H ∈ Gn0 , d. h. Gn0 ist abgeschlossen unter den Operationen Verschieben und Hinzufügen von Kanten. 3. Sei G 'φ H. Dann ist cG (u) = cH (φ(u)) ∀ u ∈ V . 4. Sei u ∈ V (G), und man erhalte H aus G durch Hinzufügen einer Kante zu u. Dann gilt cG (u) < cH (u) und cG (v) ≤ cH (v) ∀ v ∈ V . 18 5. Sei u ∈ Sc (G), und man erhalte H aus G entweder durch Verschieben einer Kante zu u oder durch Hinzufügen einer Kante zu u. Dann gilt cG (u) < cH (u) und u ∈ Sc (H). Die Gradzentralität ist wie leicht zu verifizieren ist eine Knotenzentralität nach dieser Definition. Die Eccentrity-Zentralität cE (u) hingegen ist nach dieser Definition keine Knotenzentralität, da u. a. die Bedingung 5 nicht erfüllt ist: Fig. 2: Example: the eccentricity centrality ist not a vertex centrality according to Sabidussi’s defintion: u ∈ Sc (G) but u ∈ / Sc (H). Kishi konnte nachweisen, dass die Closeness-Zentralität nach Sabidussis Definition ebenfalls keine Knotenzentralität ist und hat eine andere Definition vorgeschlagen. Sei c eine Funktion auf den Knoten eines zusammenhängenden Graphen G = (V, E). Weiter seien u, v zwei verschiedene, nicht benachbarte Knoten von G. Das Einfügen von (u, v) führt zu einem Graphen H = (V, E ∪ {(u, v)}), wobei die Differenz ∆uv (w) = cH (w) − cG (w) für alle Knoten w ∈ G gemessen wird. Definition (Knotenzentralität nach Kishi): Eine Funktion c heißt Knotenzentralität genau dann, wenn die folgenden Bedingungen erfüllt sind: 1. ∆uv (u) > 0, d. h. cG (u) < cH (u). 2. Für alle w ∈ V mit d(u, w) ≤ d(v, w) gilt ∆uv (u) ≥ ∆uv (w) für alle Paare nicht benachbarter Knoten u und v. Nach dieser Definition ist die Closeness-Zentralität eine Knotenzentralität. Die EccentricityZentralität ist allerdings auch nach Kishis Definition keine Knotenzentralität. In dem Beispiel von eben ist Bedingung 2 aus Kishis Definition verletzt. 19 2.4.2 Axiomatisierung für Feedback-Zentralitäten Von Grad- zu Feedbackzentralitäten Sei Gn die Menge der ungewichteten gerichteten Graphen mit n Knoten. Für eine gerichtete Kante (i, j) ∈ E sagt man, der Knoten i dominiert den Knoten j. Definition: Gegeben sei eine Menge V von Knoten mit |V | = n. Das β-Maß auf V ist eine Funktion β : Gn → Rn definiert als: βG (i) = X + j∈NG (i) 1 ∀ i ∈ V, G ∈ Gn d− G (j) zur Erinnerung: • d− (j) ist der Eingangsgrad des Knotens j, also die Anzahl der Knoten mit Ziel j. • N + (i) ist die Menge der Knoten j, für die eine gerichtete Kante (i, j) existiert. Das β-Maß kann als Feedback-Zentralität angesehen werden, da der Wert des Knotens i von Eigenschaften der Knoten in der direkten Nachbarschaft abhängt. Über vier Axiome lässt sich das β-Maß eindeutig bestimmen. Definition: Eine Sk Partition von G ∈ Gn ist eine Teilmenge {G1 , ..., GK } ⊆ Gn so, dass – k=1 Ek = E und – Ek ∩ El = ∅ ∀ 1 ≤ k, l ≤ K, k 6= l Eine Partition heißt unabhängig, falls zusätzlich gilt: |{k ∈ {1, ..., K} : d− Gk (i)| ≤ 1 ∀ i ∈ V, d. h., falls jeder Knoten höchstens in einem gerichteten Graphen der Partition dominiert wird. Nun stellt sich die Frage, welche Eigenschaften eine Zentralität haben sollte, um ein Maß für die Dominanz (oder die ,,relationsbezogene Kraft”) eines Knoten darzustellen. In den folgenden Axiomen sei nun f : Gn → Rn ein ,,relational power measure” auf V , welches anstelle der Zentralität verwendet wird. Ein relational power measure weist jedem gerichteten Netzwerk mit n Knoten einen n-dimensionalen Vektor von reellen Zahlen zu, so dass die i-te Komponente des Vektors ein Maß für die Dominanz des Knotens i ist. 20 Axiom 1: Dominanz-Normalisierung Für alle G ∈ Gn folgt X fG (i) = |{j ∈ VG : d− G (j) > 0}|. i∈VG Axiom 2: Wert von Dummy-Knoten Für alle G ∈ Gn und i ∈ V mit NG+ (i) = ∅ folgt fG (i) = 0, d. h. ein Knoten, der keinen anderen Knoten dominiert, hat den Wert 0. Axiom 3: Symmetrie + − − Für alle G ∈ Gn und i, j ∈ V mit d+ G (i) = dG (j) und dG (i) = dG (j) folgt fG (i) = fG (j), d. h. zwei Knoten, die dieselbe Dominanzstrukur aufweisen (sie dominieren die gleiche Anzahl an Knoten und werden von der gleichen Anzahl an Knoten dominiert), haben denselben Dominanz-Wert im relational power measure. Axiom 4: Additivität bzgl. unabhängiger Partitionen Für alle G ∈ Gn und jede unabhängige Partition {G1 , ..., GK } von G gilt fG = K X fGk . k=1 (Dieses Axiom bezieht sich auf das Zusammenfügen mehrerer gerichteter Graphen). Interessanterweise haben diese Axiome eine starke Verbindung zu den zuvor besprochenen gradbasierten Zentralitäten: Ändert man das Normalisierungsaxiom leicht ab, dann erhält man als einzige Zentralität, die die Axiome erfüllt, die Ausgangsgradzentralität (von van den Brink und Gilles, die die Axiome aufstellten, ,,score-measure” genannt). Genauer: Ersetzt man Axiom 1 durch Axiom 1b: Score-Normalisierung Für alle G ∈ Gn folgt X fG (i) = |E|, i∈V so ist die folgende Funktion das einzige relational power measure, welches die Axiome 2 - 4 und 1b erfüllt: σG (i) = d+ G (i) ∀ i ∈ V, G ∈ Gn . Verschiedene Axiome wurden ebenfalls für Feedbackzentralitäten im engeren Sinne aufgestellt, auf die wir hier aber nicht im Detail eingehen möchten. 21 2.5 Stabilität In diesem letzten Abschnitt möchten wir uns mit dem Begriff der Stabilität befassen. Man stelle am Beispiel des Web-Graphen vor, das ein neuer Link gesetzt oder eine neue Seite eingestellt wird. In dieser Situation stellt sich in natürlicher Weise die Frage, in wie weit sich die Änderung auf die berechneten Zentralitäten auswirkt. Bleiben die Werte nahezu konstant oder ändern sie sich völlig? Wir wollen uns dabei allerdings auf die Untersuchung von distanzbasierten Zentralitäten beschränken und in diesem Zusammenhang die Begriffe des stabilen, quasi-stabilen und unstabilen Graphen einführen. 2.5.1 Stabilität von distanzbasierten Zentralitäten Sei u ∈ Sc (G) = {u ∈ V : ∀v ∈ V c(u) ≥ c(v)} ein zentraler Knoten bzgl. der Zentralität c und (u, v) ∈ / G. Dann erhält man den Graphen H = (V, E ∪ (u, v)) durch Hinzufügen einer Kante (u, v) zu G. Betrachten wir nun die Menge Sc (H), so können folgende Fälle auftreten: F all 1 : Sc (H) ⊆ Sc (G) ∪ {v} oder F all 2 : Sc (H) * Sc (G) ∪ {v} für jeden Knoten v ∈ V . Ein Graph, für den der zweite Fall eintritt, heißt unstabiler Graph bzgl. c. Den ersten Fall kann man wie folgt weiter aufteilen: F all 1.1 : Sc (H) ⊆ Sc (G) und u ∈ Sc (H) und F all 1.2 : Sc (H) * Sc (G) oder u ∈ / Sc (H) Ein Graph G heißt stabiler Graph im Falle 1.1 und quasi-stabiler Graph im Falle, dass 1.2 eintritt (jeweils bzgl. der Zentralität c). Eine allgemeinere Form der Closeness-Zentralität nach Kishi lautet: 1 , a k=1 k nk (u) cGenC (u) = P∞ wobei nk (u) die Anzahl an Knoten ist, deren Distanz von u gerade k ist und jedes ak ist eine Konstante. Für ak = k ergibt sich somit: 1 1 = cC (u). =P k=1 ak nk (u) v∈V d(u, v) P∞ 22 Kishi und Takeuchi konnten zeigen, unter welchen Bedingungen es stabile, quasi-stabile und unstabile Graphen für allgemeine Zentralitätsfunktionen cGenC der o. g. Form gibt: Theorem: Für jede allgemeine Knotenzentralität cGenC der o. g. Form gilt: 1. a2 < a3 ⇒ ∃ ein quasi-stabiler Graph 2. a3 < a4 ⇒ ∃ ein unstabiler Graph Theorem: Jeder zusammenhängende ungerichtete Graph G ist stabil genau dann, wenn die allgemeine Knotenzentralität cGenC die Gleichung a3 = a4 erfüllt. Weiter konnte Sabidussi eine wichtige Eigenschaft für ungerichtete Bäume zeigen: Theorem: Falls ein ungerichteter Graph G ein Baum ist, dann ist G stabil bzgl. der ClosenessZentralität. 23 Quellen U. Brandes, T. Erlebach (Eds): Network Analysis, 2005 Kapitel 2: Fundamentals Kapitel 3: Centrality Indices und im Speziellen: Kapitel 4: Algorithms for Centrality Indices Kapitel 5: Advanced Centrality Concepts 24