1. Einleitung Das Internet – abstrakte Version: Spezialvorlesung Internet-Algorithmen Sommersemester 2007 Hosts / Endsysteme Router Kommunikation gemäß IP In Wirklichkeit starke hierarchische Struktur, viele verbundene Einzelnetze. • Internationale Verbindungen; • nationale Backbones; • ISP-Backbones; • lokale Netze. Martin Sauerhoff Lehrstuhl 2, Universität Dortmund 1 Wie groß ist das Internet? Aktuelle Schätzung für Anzahl Hosts: ca. 430 Millionen (gemäß Internet Systems Consortium, www.isc.org). Wie groß ist das Internet? (Forts.) Wie das ISC zu diesen Zahlen kommt: # Hosts • Hosts“: Geräte mit global eindeutiger IP-Nummer. ” • Zähle alle IP-Nummern, zu denen es einen Host gibt. 400.000.000 Dazu Abbildung IP-Nummer → Hostname per inversem DNS-Lookup. • Insgesamt 232 IP-Nummern, daher vorab Pruning“ ” von nichterreichbaren Teilnetzen. 300.000.000 200.000.000 100.000.000 Jahr 01/’06 06/’06 01/’07 01/’93 06/’93 Details: www.isc.org/ops/ds/rfc1296.txt. 2 3 Internet im ISO/OSI-Schichtenmodell (→ BSRvS): Anwendung (application): HTTP (→ WWW), FTP, Mail Transport: TCP, UDP Übersicht über den Rest der Vorlesung: 2. Der Webgraph 3. Suchmaschinen Vermittlung (network): 4. Datenstromalgorithmen IP 5. P2P-Netze 6. Algorithmische Spieltheorie Hier: Üblicherweise Anwendungsschicht und darüber“. ” Nicht (u. a.): • Standard-Routing-Algorithmen; • Ressourcen-Management. 5 4 2. Der Webgraph 2.1 Einleitung WWW (aka: Web, Netz, Internet (?)): • Realisiert mittels HTTP (Anwendungsschicht). • Virtuelles Netz aus HTML-Dokumenten (Webseiten) mit Übersicht: Hyperlinks als Verbindungen. 2.1 Einleitung Definition 2.1: Webgraph Gerichteter Graph G = (V , E) mit • Knotenmenge V : statische Webseiten. • Kantenmenge E: Hyperlinks. 2.2 Experimente 2.3 Modelle Dabei nicht erfasst: Dynamische Webseiten. • Generierung bei Anfrage durch Skript (PHP. . . ). • Oft: Zugriff auf Datenbanken. 6 7 Suchmaschinen: Einige Zahlen (Anfang 2007): Benutzeranfrage 7 → Liste von Referenzen auf Webseiten. • Crawler: Regelmäßiger, automatischer Durchlauf (Crawl) des Webs zwecks Datensammlung. Liefert: • Index: Abbildung Webseiten-ID 7 → Inhalt. Alles Schätzungen, oft ideologisch/ökonomisch motiviert. • Anzahl Web-Server: 110 Mio. Siehe news.netcraft.com. • Indiziertes Web: 10 – 30 Mrd. Seiten. – Letzte offizielle Angabe von Google (2005): 8 Mrd. – Suchbegriff a“ bei Google: 15 Mrd. ; – ) ” – Schätzung aus Web-Server-Anzahl: 29,7 Mrd. (www.boutell.com) • Indizierbares Web: Gulli, Signorini (2005): 11,5 Mrd. Seiten Schätzung mit Sampling-Techniken (→ später). • Surface Web, indizierbares Web: Webseiten, die prinzipiell für Crawler von Suchmaschinen erreichbar sind. Nur ein kleiner Teil davon tatsächlich indiziert. • Deep Web: Der Rest. – Dynamische Seiten, insbesondere nichtöffentliche Datenbanken. – Seiten, die Crawler ausschließen (robots.txt). – Isolierte (nicht verlinkte) Seiten. 8 2.2 Experimente 9 Definitionen 2.2: Gerichteter Graph G = (V , E) heißt • stark zusammenhängend, falls für beliebige (v , w ) ∈ V × V Weg v w existiert. • schwach zusammenhängend, falls für beliebige (v , w ) ∈ V × V Weg von v nach w existiert, der sowohl aus Kanten von G als auch aus umgedrehten Kanten von G bestehen darf. Starke / Schwache Zusammenhangskomponente (starke / schwache ZK): Maximaler Teilgraph mit entsprechender Eigenschaft. 2.2.1 Grobstruktur des Webraphen Einige Vermutungen: • Webgraph besteht im Wesentlichen“ aus großer ” starker Zusammenhangskomponente. • Zwei Seiten im Web “typischerweise“ durch Weg mit wenigen Links verbunden. Kleine-Welt-Phänomen“. ” 10 Berechnung: In Zeit O(|V | + |E|) mit Hilfe eines modifizierten BFS/DFS-Algorithmus (→ Vorlesung Effiziente Algorithmen“). ” 11 Fliegenstruktur des Webs (Broder u. a. 2000) Analyse eines Altavista-Crawls von 1999 mit 204 Mio. Webseiten, 1,5 Mrd. Links. Fliegenstruktur des Webs (Forts.) Teilgebiet: TENDRILS 44 Mio. Knoten IN MAXSCC 44 Mio. Knoten 56 Mio. Knoten MAXSCC: IN: OUT TENDRILS: DISC.: OUT 44 Mio. Knoten Summe: Größe (# Seiten): 56.463.993 43.343.168 43.166.185 43.797.944 16.777.756 203.549.046 Ermittlung dieser Zahlen? DISCONNECTED 16 Mio. Knoten 13 12 Berechnung der Teilgebietsgrößen Berechnung der Teilgebietsgrößen (Forts.) • Graph in Adjazenzlisten-DS im Hauptspeicher (9,5 GB). • Mit BFS von MAXSCC aus erreichbare Knoten – Zu jedem Knoten eingehende und ausgehende Kanten. – Komprimierte URLs als Knoten-IDs (Speicherplatz). ohne MAXSCC selbst → OUT. • Analog für umgedrehte Kanten → IN. • Starke ZKs / schwache ZKs mit bekannten Algorithmen. Schließlich: Sei • V gesamte Knotenmenge; • MAXWCC größte schwache ZK. TENDRILS = MAXWCC − (MAXSCC ∪ IN ∪ OUT). Bemerkung: Originalarbeit: Zusammenhangskomponenten nicht abgespeichert, Sampling + Verrechnungstricks“. ” Algorithmen → MAXWCC (≈ 186 Mio. Knoten), MAXSCC. Haben dann auch: DISCONNECTED = V − MAXWCC. 14 15 2.2.2 Kleine-Welt-Phänomen Aktuellere Experimente (Donato u. a. 2004): Ursprünglich für soziale Netze. Crawl von der Stanford Webbase aus dem Jahr 2001, 200 Mio. Knoten, 1,4 Mrd. Kanten. Teilgebiet: MAXSCC: IN: OUT TENDRILS: DISC.: Broder u. a., Altavista 1999: Donato u. a., Webbase 2001: 28 % 21 % 21 % 22 % 9% 33 % 11 % 39 % 13 % 4% Karinthy (1929, Kurzgeschichte): Je zwei Personen auf der Welt haben höchstens ” Abstand 5 bez. Bekanntschaftsrelation.“ Experiment von Milgram (1967): • Briefe von zufälligen“ Startpersonen an festes Ziel, ” nur über Bekannte (Vorname) weiterleiten. • Durchschnittlicher Abstand 5,43 (1967er Arbeit), aber nur kleiner Teil der Briefe kam überhaupt an. Mathematische Formalisierung: Kleiner durchschnittlicher Durchmesser. 17 16 Definition 2.3: Durchmesser Gerichteter Graph G = (V , E). • Durchmesser: diam(G) := max d(v , w ), Durchmesser des Webgraphen (v ,w)∈V ×V wobei d(v , w ) Länge des kürzesten Weges von v nach w . • Durchschnittlicher Durchmesser: 1 X diam(G) := d(v , w ), |C| Albert, Jeong, Barabási (1999): • Zufälliges Paar von Seiten im Web durch ” höchstens 19 Links verbunden.“ • Theoretisch aus anderen experimentellen Daten geschätzt. (v ,w)∈C wobei C alle Paare von verschiedenen verbundenen Knoten enthält. Falls diam(G) endlich, dann höchstens n − 1, n := |V |. Populäre Formalisierung des Kleine-Welt-Phänomens: diam(G) = O(log n). 18 19 Durchmesser des Webgraphen (Forts.) 2.2.3 Webgemeinden Arbeit von Broder u. a. (2000) aus Abschnitt 2.2.1: Webgemeinde: Gruppe von im Web repräsentierten Individuen mit gemeinsamen Interessen zusammen mit gemeinsam von ihnen bevorzugten Webseiten. Altavista-Crawl von 1999: • diam(MAXSCC) ≥ 28. • Maximale endliche Weglänge vermutlich ca. 900. • Nur für 24 % aller Knotenpaare (v , w ) existiert Weg v w . Ausschluss von nicht verbundenen Paaren bei durchschnittlichem Abstand wichtig. • BFS-Durchläufe für Startknoten-Sample liefern: diam: Vorwärtskanten: Rückwärtskanten: Ungerichtet: 16,12 16,18 6,83 Beispiele für etablierte Gemeinden: • Case-Modder; • Star-Trek-Fans; • Freunde von Nacktmullen (?). Hinweise: Verzeichnisse wie Yahoo!, web.de,. . . ; Webrings; Newsgroups. 21 20 Wie soll das gehen? Automatisches Finden von Webgemeinden Autoritäten (authorities): Thematisch verwandte Seiten, für die sich Webgemeinde interessiert. Arbeit: Kumar, Raghavan, Rajagopalan, Tomkins (1999). • Webgemeinden anhand von Linkstruktur erkennen? • Will aufstrebende Gemeinden“ entdecken. Problem: Oft keine direkten Links zwischen solchen Seiten! ” Beispiel: Webshops für Case-Modding-Zubehör. Beispiele aus der Arbeit von 1999: • Moslemische Studenten in den USA; • japanische Sängerin Hekiru Shiina; • australische Feuerwehr. Idee: Identifiziere Seiten, die Links auf (viele) authoritative Seiten haben. Verteiler (hubs): Seiten, die Links auf Autoritäten der Webgemeinde haben. 22 23 Formalisierung: Verteiler und Autoritäten einer Webgemeinde: • Bipartiter Teilgraph des Webgraphen. • Ignoriere evtl. vorhandene (wenige) Links innerhalb der Verteiler / Autoritäten. Winziger Ausschnitt Case-Modder-Gemeinde: Verteiler caseumbau.de moddfreakz.net young−modders.de Authoritäten caseking.de Vollständiger bipartiten Teilgraph: Kern (core) der Webgemeinde. ichbinleise.de com−tra.de Definition 2.4: Vollständiger bipartiter Graph Graph Ki, j : · V mit |V | = i, |V | = j; • Knotenmenge V ∪ Graphisches Tool: www.touchgraph.com. 1 2 1 2 • Kantenmenge E = V1 × V2 . 25 24 Algorithmus F INDE (i, j)-K ERNE : Experimente von Kumar u. a. (1999) • I TERATIVES P RUNING: Daten: Alexa-Crawl von 1998, ca. 200 Mio. Seiten. Wiederhole bis keine Veränderung mehr: Eliminiere potenzielle Verteiler / Autoritäten mit zu kleinem Ausgangs- bzw. Eingangsgrad + zugeh. Kanten. Vorverarbeitung: • Listen mit potenziellen Verteilern / Autoritäten: – Verteiler: Knoten mit Links zu mindestens 6 verschiedenen Websites. Grund: Verwaltungslinks / Spamming vermeiden. – Autoritäten: Knoten mit Eingangsgrad kleiner als 50. Grund: Vermeide populäre Seiten wie yahoo.com. • Eliminiere aggressiv Duplikate in Verteiler-Liste (→ Min-Hashing, siehe Abschnitt 3.5.2 / Folie 241ff). Grund: i Kopien (Mirrors) von Verteiler mit j Nachfolgern → unerwünschter (i, j)-Kern, keine Webgemeinde. • I NKLUSIONS -E XKLUSIONS -P RUNING : Arbeitet auf Liste aller Kanten zwischen potenziellen Verteilern und Autoritäten. Für alle Knoten v mit exakt j Nachfolgern w1 , . . . , wj : – Berechne Schnitt S der Vorgängermengen der w1 , . . . , wj . – Falls |S| ≥ i: Für alle S ′ ⊆ S mit |S ′ | = i gib S ′ × {w1 , . . . , wj } als (i, j)-Kern aus. Entferne Kanten in S × {w1 , . . . , wj }. Sonst: Eliminiere zu v inzidente Kanten. 26 27 Bemerkungen: Ergebnisse: • Heuristik (nicht alle Kerne!), schwammige Originalarbeit • In 1999: Newsgroups, kommerzielle Verzeichnisse: lässt einigen Spielraum für Interpretationen. • F INDE (i, j)-K ERNE mit geschickter StreamingVerarbeitung auf passend nach Kanten-Startknoten bzw. Kanten-Zielknoten sortierter Liste der Kanten. • Rechenzeit dominiert vom Sortieren der Kantenliste. Ansonsten für I NKLUSIONS -E XKLUSIONS -P RUNING nur lineare Zeit in Ein- und Ausgabelänge, da pro Schritt mindestens eine Kante entfernt. • Originalarbeit enthält weiteren Schritt, der aus (i, j)-Kernen für kleine i inkrementell solche für größere i konstruiert. ca. 10.000 etablierte Gemeinden. • Arbeit liefert ca. 100.000 aufstrebende Gemeinden. Kern-Anzahlen (Ausschnitt): (i, j): (3, 3): # Ki,j : 38.887 (4, 3): 11.410 (5, 3): 7.015 (6, 3): 2.757 Erkenntnis über Webgraphen: Existenz von großer Anzahl von Ki,j für kleine i, j (Clusterbildung). 29 28 2.2.4 Potenzgesetze Definition 2.5: (Diskrete) Potenzgesetz-Verteilung Sei α > 1. Zufallsvariable X ∈ N hat (diskrete) Potenzgesetz-Verteilung, falls c Pr{X = x} = α , x wobei ∞ X 1 1 = = ζ (α) (riemannsche Zetafunktion). c xα Beobachtung: Viele Parameter in natürlichen / sozialen Systemen zeigen Streuung über großen Wertebereich. Insbesondere: Gerade nicht normalverteilt. Beispiele: • Einkommensverteilung; • Einwohnerzahlen; • Worthäufigkeiten; • Anzahl eingehender / ausgehender Links auf Webseiten. x=1 Nenne α Exponent der Verteilung. Alternative Namen: Zipf-Verteilung, Zeta-Verteilung. Verteilungen folgen Potenzgesetzen. 30 31 Log-Log-Plots Beispiel: Exponent α = 2. 0.6 0.5 0.4 0.3 0.2 0.1 0 Sei f (x) := c/x α . Dann: ∞ X π2 1 1 = = . c 6 x2 log10 f (x) = log10 c − α · log10 x; log10 f (10ex ) = log10 c − α · e x. x=1 2 4 6 8 Allgemein: Plot von e x 7 → log10 f (10ex ) heißt Log-Log-Plot. Liefert für f = Potenzgesetz-Verteilung lineare Funktion mit Steigung −α und vertikaler Verschiebung log10 c. 10 In Anwendungen oft einfach Plot der absoluten Häufigkeiten, für Parameter c dann beliebige Werte zulässig. 33 32 Potenzgesetze für den Knotengrad (Forts.) Arbeit von Broder u. a. aus Abschnitt 2.2.1: Untersuchung der Eingangsgrade und Ausgangsgrade, d. h. Anzahl eingehender bzw. ausgehender Links. Daten: • Altavista-Crawl von 1999. • Zusätzlich externe Seiten mit mindestens 5 Links aus ursprünglichem Crawl. Arbeit von Donato u. a. aus Abschnitt 2.2.1: Wieder Crawl aus der Stanford Webbase von 2001. Eingangsgrad gesamt Potenzgesetz mit Exponent 2.09 Eingangsgrad externe Links Potenzgesetz mit Exponent 2.1 Ausgangsgrad gesamt Potenzgesetz mit Exponent 2.72 Ausgangsgrad externe Links Potenzgesetz mit Exponent 2.67 Eingangsgrad α ≈ 2,0 Eingangsgrad Log−Log−Plot Ausgangsgrad Anzahl Webseiten Log−Log−Plot Ausgangsgrad Log−Log−Plot Eingangsgrad Anzahl Webseiten Log−Log−Plot Eingangsgrad Anzahl Webseiten Anzahl Webseiten Webgraph: Potenzgesetze für den Knotengrad Ausgangsgrad Erkenntnisse über Webgraphen: • Eingangsgrad folgt vermutlich Potenzgesetz mit Exponent α ≈ 2,1. • Ausgangsgrad hat vermutliche andere Verteilung. Ausgangsgrad 34 35 2.2.5 Mehr über Potenzgesetze Weitere Potenzgesetze im Internet: Definition 2.6: (Kont.) Potenzgesetz-Verteilung Seien β, b > 0. Zufallsvariable X ∈ R hat (kont.) Potenzgesetz-Verteilung, falls für alle x ≥ b β b Pr{X > x} = . x • Größen der schwachen und starken ZKs des Webgraphen (Broder u. a 1999; Donato u. a. 2004); • Anzahl Benutzerzugriffe auf verschiedene Web-Sites (Adamic und Huberman 2001); • Gradverteilung für Internet-Graph auf verschiedenen Hierarchieebenen (Faloutsos u.a. (1999) + Nachfolgearbeiten, z. B. Chen u. a. (2002), Jaiswal u. a. (2004)). Alternativer Name: Pareto-Verteilung. Verteilungsfunktion: β b . F (x) = Pr{X ≤ x} = 1 − x Dichte: d βbβ c f (x) = F (x) = 1+β = α , mit c := βbβ , α := 1 + β. dx x x Pennock u. a. (2002): Beschränkung auf thematisch verwandte Webseiten (z. B. Uni-Homepages): Potenzgesetz für Eingangsgrad stimmt nicht mehr. 36 Momente: Normalverteilung: Sei X gemäß Dichte f (x) = c/x 1+β verteilt, m ∈ N: Z ∞ Z ∞ m m E(X ) = x f (x)dx = cx m−β−1 dx b • Konzentration um Erwartungswert. • Exponentiell abfallender Auslauf (tail) der Dichtefunktion. b ∞ c m−β ·x = . m−β b Nur endlich, falls m ≤ β. 37 Potenzgesetz-Verteilung: • Große Varianz. • Polynomiell abfallender Auslauf der Dichtefunktion Fall β < 1: Erwartungswert und Varianz unendlich. (heavy-tailed distribution). Fall β < 2: Erwartungswert endlich, Varianz unendlich. 38 39 Skaleninvarianz-Eigenschaft: Zusammenfassung Abschnitt 2.2: Sei f (x) = c/x α . Für Konstanten a 6 = 0: 1 1 c f (ax) = α · α = α · f (x). a x a Eigenschaften des Webgraphen: • High-Level-Sichtweise: Fliegenstruktur. • Kleiner durchschnittlicher Durchmesser. Änderung des x-Achsen-Maßstabs → • Änderung des y -Achsen-Maßstabs; • Form der Funktion bleibt erhalten. • Webgemeinden ↔ (vollständige) bipartite Teilgraphen. • Potenzgesetz für Eingangsgrad. Potenzgesetz-Verteilungen: • Linear im Log-Log-Plot. • Hohe Varianz, heavy-tailed, Skaleninvarianz. • Normale“ Verteilung für viele natürliche Phänomene. ” Während z. B. für Exponentialverteilung: Dichte f (x) = λe−λx , f (ax) = λe−λax (für x ≥ 0). Weitere Details: Li, Alderson, Doyle und Willinger (2006). 40 2.3 Modelle 41 2.3.1 Der Klassiker: Das ER-Modell • Grundlegende Arbeit: Erdős, Rényi (1960). • Das Modell für zufällige Graphen schlechthin. Wozu überhaupt? • Test von Algorithmen; • Vorhersage zukünftiger Entwicklung; • besseres Verständnis beobachteter Phänome. Definition 2.7: Zufälliger gerichteter Graph G(n, p), p ∈ [0, 1]: • Erzeuge n isolierte Knoten. Knotenmenge V = {1, . . . , n}. • Für alle (v , w ) ∈ V × V : Mit Wahrscheinlichkeit p: Füge (v , w ) zu E hinzu. Alle Entscheidungen unabhängig voneinander. Nenne p Kantendichte. Anforderungen an Modelle: • Dynamische Entwicklung; • Potenzgesetze, z. B. für Eingangsgrad; • kleiner durchschnittlicher Durchmesser; • Clusterbildung, insbesondere viele Ki,j -Kopien. Bemerkungen: • Oft Verhalten für n → ∞. • In der Literatur: Ungerichtete Version verbreiteter. 42 43 Wahl von p für Webgraphen? Gradverteilung für ER-Modell: • Für Modelle verbreitete Annahme / Eigenschaft: Proposition 2.8: (Erwartete) lineare Kantenanzahl oder sogar konstanter Ausgangsgrad. • Dann passender Wert: p = p(n) = c/n, c > 0 Konstante, E(# Anzahl Kanten) = p · n2 = cn. Für G(n, p) gilt: • Für alle Knoten v , k ∈ {0, . . . , n − 1}: n−1 k Pr{indeg(v ) = k } = p (1 − p)n−1−k k Plausibel, aber kaum experimentell untersucht. Muss zeitliche Entwicklung des Webgraphen verfolgen. = B(n − 1, p)(k ). (Binomialverteilung mit Parametern n − 1, p). Leskovec, Kleinberg, Faloutsos (2006): Evtl. falsch: Für einige reale Graphen |E| ≈ cnα mit α > 1! Z. B. AS-Graph, AS: Autonome Systeme. • Sei Nk,n := # Knoten mit Eingangsgrad k . Dann: E(Nk,n ) = n · B(n − 1, p)(k ). 44 45 Anwendung hier: Satz 2.9: Chernoff-Schranken X1 , . . . , Xt unabhängige 0-1-Zufallsvariablen, X := X1 + · · · + Xt , 0 ≤ δ ≤ 1, dann gilt: Pr{X ≤ (1 − δ)EX } ≤ e−δ Pr{X ≥ (1 + δ)EX } ≤ e−δ 2 EX /2 2 EX /3 Xv ,w := [Kante (v , w ) existiert], (v , w ) ∈ V × V . X D := indeg(v ) = Xv ,w , w6=v und ED = (n − 1)p. . Chernoff-Schranken (Unabhängigkeit der Xv ,w ) ⇒ Referenz: Pr{D ≥ ED + k } Hagerup, Rüb, A guided tour of Chernoff bounds“. ” Information Processing Letters, 33:305–308, 1989. δ:=k/ED ≤ e−(k/ED) 2 ED/3 = e−k 2 /(3(n−1)p) . 2 Damit: Für p = c/n rechte Seite ≈ e−k /3c . Exponentiell abfallender Auslauf (exponential tail). 46 47 Proposition 2.10: Sei p = c/n für eine Konstante c > 0 bez. n. Seien i, j ≥ 2 Konstanten bezüglich n. Dann konv. die erwartete Anzahl Ki,j in G(n, p) für n → ∞ gegen eine Konstante. Allgemeiner & genauer: n→∞ Falls np → λ, λ > 0 Konstante bez. n: n→∞ Pr{indeg(v ) = k } → e−λ λk /k ! = P(λ) Beweis: • Wähle V , W ⊆ {1, . . . , n} mit |V | = i, |W | = j, V ∩ W = ∅. Wskt. für bipartite Clique V × W : (Poisson-Verteilung mit Erwartungswert λ) und n→∞ E(Nk,n /n) → P(λ). p i·j . • Anzahl Wahlen solcher V , W : • Eingangsgrade für gewünschte Kantendichte approximativ poissonverteilt, exponentiell fallender Auslauf. • Weit entfernt von Potenzgesetz-Verteilung! : – ( 48 Klassische“ Ergebnisse zu zufälligen Graphen für ” ungerichtete Variante des G(n, p)-Modells, p = c/n: • Fast sicher, d. h. mit für n → ∞ gegen 1 konv. Wskt.: n n−i . j i • Damit Erwartungswert: n n−i n i+j c i·j i·j p ≤ i! · j! n j i i·j≥i+j = O(1). 49 Fazit für ER-Modell: Durchmesser O(log n) (Chung, Lu 2001). • Schwellwert-Theoreme, z. B. giant component “: ” p = c1 /n, c1 < 1: Fast sicher Größe von max. ZK O(log n). • Eigenschaften ungeeignet für Webgraphen. Problem: Unabhängigkeit der Kantenwahlen • Weiterer Nachteil: Knotenanzahl fest, keine Dynamik. p = c2 /n, c2 > 1: Fast sicher Größe von max. ZK 2(n). (Erdős, Rényi 1960.) Für gerichteten Fall Schwellwert-Theorem analog zu obigem für größte starke ZK (MAXSCC) (Karp 1990). Kleiner Durchmesser gut, aber der Rest? 50 51 2.3.2 Preferential Attachment Arbeiten: Barabási-Albert (1999), Bollobás u. a. (2001). Beispiel für n = 32: BA-Modell: • Schritt t = 1 (Initialisierung): Knoten mit zwei Schleifen. • Schritt t > 1: – Erzeuge neuen Knoten u mit einer Schleife. – Füge Kante (u, v ) hinzu, v zufällig: d . w indeg(w ) Pr{Knoten v | indeg(v ) = d} = P Bevorzugt bereits gut verbundene Knoten ( the rich get richer“ / the winner takes it all“). ” ” 52 Bisher Ausgangsgrad 1, falls Schleifen ignoriert. 53 Beweis hier nicht, aber heuristisches Argument aus Barabási-Albert-Arbeit (Fall d = 1). Erzeugung von Ausgangsgrad d (ohne Schleifen): Identifiziere jeweils d Knoten von aufeinanderfolgenden Schritten. Idee: Schrittweise Gradzuwächse aufaddieren. Di (t) := Eingangsgrad von Knoten i nach Schritt t; Di∗ (t + 1) := Eingangsgrad von Knoten i in Schritt t + 1 vor Einfügen der (t + 1)-ten zufälligen Kante. Dann für alle i ≤ t: Di (t) = Di∗ (t + 1). Nk,t := # Knoten mit Eingangsgrad k nach Schritt t. Satz 2.11 (Bollobás u. a. 2001): Für d ≥ 1 gibt es ein cd > 0 sodass für 0 ≤ k = k (t) ≤ t 1/15 t→∞ cd E(Nk,t /t) → 3 . k Für beliebige ε > 0 und mit für t → ∞ gegen 1 konv. Wskt. hat Nk,t höchstens Abstand ε von E(Nk,t ). Betrachte Einfügen der neuen Kante in Schritt t. Gesamteingangsgrad: 2(t − 1) + 1 = 2t − 1. Damit für Knoten i ≤ t: k . Pr{Di∗ (t + 1) − Di∗ (t) = 1 | Di∗ (t) = k ) = 2t − 1 Unschön: Abhängigkeit von zufälligem Di∗ (t). Also Potenzgesetz-Verteilung mit Exponent α = 3 . 54 55 Kontinuierliche Variante des BA-Modells: Neue (heuristische) Idee ( Mean-field theory“): ” Zufälliger Gradzuwachs → Erwartungswert für Zuwachs. Für einzelnen Knoten: • Knoten wird zum Zeitpunkt t0 ∈ [0, t+1] erzeugt. • Gradzuwachs des Knotens nicht zufällig, sondern beschrieben durch feste Funktion d : R → R mit d(t) d d(t) = ; (1) dt 2t (2) d(t0 ) = 1. Erwartungswerte: E Di∗ (t + 1) − Di∗ (t) | Di∗ (t) = k ∗ E Dt+1 (t + 1)) = 1. k ; 2t − 1 = Zeit t ∈ R, Di∗ (t + 1) → reellwertige Funktion di (t) (nicht zufällig) mit Zusätzlich: Wähle Startzeitpunkt t0 gleichverteilt aus [0, t+1]. Dann d(t) = dt0 (t) zufälliger Knotengrad in Schritt t+1, vor Einfügen der neuen Kante. di (t) di (t) d di (t) = ≈ . dt 2t − 1 2t Ziel: Bestimme Pr{dt0 (t) ≤ k } (t0 Zufallsvariable)! 57 56 Bestimmen der Gradverteilung: Lösen der Differenzialgleichung: d ′ (t) 1 = . Integrieren: d(t) 2t Z 1 1 ln d(t) = dt = ln t + c, also 2t 2 1/2 c d(t) = t ·e . Pr{d(t) ≤ k } = Pr{(t/t0 )1/2 ≤ k } = Pr{t0 ≥ t/k 2 } = 1 − Pr{t0 < t/k 2 } Da t0 gleichverteilt über [0, t]: Pr{t0 < t/k 2 } = 1/k 2 . Anfangsbedingung liefert: 1/2 d(t0 ) = t0 −1/2 · ec = 1, also ec = t0 Also: . Pr{d(t) ≤ k } = 1 − 1/k 2 . Lösung damit: 1/2 t d(t) = . t0 Verteilungsfunktion → Dichte: Dazu nach k ableiten. d Pr{d(t) ≤ k } = 2/k 3 . dk Also wie im diskreten Fall Potenzgesetz mit Exponent 3. 58 59 Durchmesser: Sei Gd,n der vom BA-Modell mit Ausgangsgrad d erzeugte Graph mit n Knoten. Aussage ohne Beweis: Kritik an BA-Modell: • Für d = 1 nur Bäume erzeugt. • Allgemein nur azyklische Graphen (|MAXSCC| = 1). Satz 2.12: • Fall d = 1: Idee für Abhilfe: • Wie gehabt Ziel für Kante zufällig mit Wskt. proportional zum aktuellen Eingangsgrad. • Nun auch Start der Kante zufällig mit Wskt. proportional zum aktuellen Ausgangsgrad. Fast sicher, d. h. für mit n → ∞ gegen 1 konv. Wskt. gilt: diam(G1,n ) = 2(log n). (Pittel 1994). • Fall d > 1: Fast sicher gilt: Arbeit: Aiello, Chung, Lu (2001). diam(Gd,n ) = 2((log n)/(log log n)). (Bollobás und Riordan 2004). 60 61 Beobachtung: ACL-Modell A: Zum Zeitpunkt t: Erwartete Knotenzahl (1 − α)t, erwartete Kantenzahl αt. Erwartete Kantendichte α/(1 − α) =: 1. Für jeden Knoten v Gewichte win (v ), wout (v ) ∈ N. • Zeit t = 1: Isolierter Knoten v mit win (v ) = wout (v ) = 1. • Zeit t > 1: Münzwurf mit Ausgängen Knoten“ und Kante“: ” ” – Knoten“, Wskt. 1 − α: ” Neuer isol. Knoten v mit win (v ) = wout (v ) = 1. – Kante“, Wskt. α: ” – Neue Kante (v , w ). Wähle v bzw. w aus allen Knoten mit Wskt. proportional zu deren aktuellem Gewicht wout (v ) bzw. win (w ) – Inkrementiere wout (v ) und win (w ). Satz 2.13 (Aiello, Chung, Lu 2001): Für Graph gemäß Modell A haben Knoten-Eingangs- und Ausgangsgrade Potenzgesetz-Verteilung mit Exponent 2 + 1/1 = 1 + 1/α. Ohne Beweis. Für kontinuierliche Variante analog zum BA-Modell (→ nächste Folie). Nachteile bei diesem Modell: • Exponent für Potenzgesetz an Dichte gekoppelt. • Gleicher Exponent für Eingangs- und Ausgangsgrad. 62 63 Kontinuierliche Analyse für ACL-Modell A: Weitere ACL-Modelle: Nur für Eingangsgrade. Beobachtungen: • Für alle v : win (v ) = indeg(v ) + 1. P • Nach Schritt t gilt: v win (v ) = t. • Modell B: Sei Wi (t) := Eingangsgewicht von Knoten i nach Schritt t. k E Wi (t) − Wi (t − 1) | Wi (t − 1) = k = α · , i ≤ t − 1; t −1 E Wt (t)) = 1. (Genaugenommen: Alles unter zusätzlicher Bedingung, dass betrachteter Knoten überhaupt existiert. Hier weggelassen.) • Modell C: Ähnlich wie vorher, aber immer neuer Knoten und mehrere neue Kanten. Anzahlen Kanten zwischen Knotenpaaren vom Typ alt/alt, alt/neu und neu/neu einstellbar. Wieder Potenzgesetze für Eingangsgrad und Ausgangsgrad. Differenzialgleichung: w ′ (t)/w (t) = α/(t − 1) ≈ α/t, w (t0 ) = 1. Endergebnis: α d Pr{w (t) ≤ k } = 1+1/α . dk k Initiale Gewichte für neue Knoten nicht mehr 1, sondern beliebige γin , γout > 0 für Eingänge- bzw. Ausgänge. Exponenten für Potenzgesetze (o. Bew.): Eingangsgrad: 2 + γin /1, Ausgangsgrad: 2 + γout /1. • Modell D: Ungerichtete Variante von Modell C. 65 64 Kopiermodell mit linearem Wachstum (LGC-Modell): Parameter α ∈ (0, 1), Ausgangsgrad d. • Schritt t = 1: Knoten mit d Schleifen. 2.3.3 Kopiermodelle • Schritt t > 1: • Erzeuge neuen isolierten Knoten w . Arbeit: Kumar, Raghavan, Rajagopalan, Sivakumar (2000). • Wähle Prototyp vp zufällig gleichverteilt aus Idee: Nachahmung der Erzeugung von neuen Webseiten. Knoten 1, . . . , t − 1. • Viele Links von anerkannter Referenzseite“ ” übernommen. • Zusätzlich einige neue Ideen → zufällige“ Links zu bestehenden Seiten. ” • Für i = 1, . . . , d: – Wirf Münze mit Ausgängen Kopieren“ mit Wskt. α ” und Zufall“ mit Wskt. 1 − α. ” – Kopieren“: Kante von w zu Ziel der i-ten Kante ” von vp . – Zufall“: Kante von w zu zufälligem Knoten ” aus {1, . . . , t − 1}. 66 67 Bemerkung: Beweis: Ziemlich haarige Analyse (nur für d = 1 durchgeführt) → Eingangsgrad hat Potenzgesetz-Verteilung mit Exponent 1 + 1/α. (Hier ohne Beweis.) • Nenne Knoten Duplikator, wenn er alle Links seines Prototyps kopiert. Wskt. dafür: α d . • Nenne Knoten Innovator, wenn er all seine Links zufällig Großes Plus: Kopiermodelle sind die einzigen Modelle, für die große Anzahl bipartiter Cliquen nachgewiesen. auswählt. Wskt. dafür: (1 − α)d . • Nenne Knoten voll, wenn all seine d Nachfolger Ki,j,t := # Ki,j -Kopien im LGC-Graph nach t Schritten. verschieden sind. (Beachte: Der zufällige Auswahlprozess kann auch Multikanten erzeugen. Zu Anfang ist das sogar der Normalfall.) Satz 2.14 (Kumar u. a. 2000): Seien i, d konstant bez. t. Dann gibt es eine Konstante c > 0, sodass für hinreichend große t gilt: E(Ki,d ,t ) ≥ t/c i . 69 68 Plan für Beweis: • M.h.W. viele volle Knoten in {1, . . . , t0 }, t0 geeignet. Behauptung 1: Mit Wskt. 1 − 2−(t) gibt es mindestens (a/8)t0 volle Knoten in {1, . . . , t0 }, wobei a := (1 − α)d . • Für festen vollen Knoten v : M.h.W. verschiedene Duplikatoren w1 , . . . , wi−1 aus {t0 + 1, . . . , t}. Behauptung 2: Für alle v ∈ {1, . . . , t0 } gibt es jeweils mit Wskt. mindestens 1 − e−i/4 verschiedene Duplikatoren w1 , . . . , wi−1 ∈ {t0 + 1, . . . , t}. Beobachtung: Knoten v und w1 , . . . , wi−1 bilden Ki,d -Kopie. Sei A Ereignis in Behauptung 1, Pr(A) = 1 − 2−(t) . Dann: E(Ki,d,t ) ≥ 1 − 2−(t) · E(Ki,d,t | A) ≥ 1 − 2−(t) · (a/8)(t/bi ) · (1 − e−i/4 ) = t/c i • Gefundene Kopien verschieden, da sie sich durch volle Knoten unterscheiden. für eine geeignete Konstante c > 0. Wahl von t0 : d Sei t0 := t/bi , b := 2⌈4/α ⌉ . Da i, d konstant: t0 = 2(t). O. B. d. A. sei t0 ≥ 2d 2 (t hinreichend groß). Also nur noch“ Behauptungen zu zeigen. ” 70 71 Beweis von Behauptung 1: P Sei S := i<j Xi,j . Mit der Linearität des Erwartungswertes: X d 1 d 2 t0 ≥ 2d 2 1 ≤ ES = EXi,j ≤ ≤ . 2 t0 /2 t0 2 Idee: Nicht zu früh“ auftauchende Innovatoren gute ” Kandidaten für volle Knoten, da d zufällige Kanten aus nicht ganz kleinem Pool“ m. h. W. alle verschieden. ” Nicht zu früh“: Betrachte festen Innovator ” v ∈ {t0 /2 + 1, . . . , t0 }, hat zufällige Nachfolger w1 , . . . , wd ∈ {1, . . . , v − 1}. i<j Markoff-Ungleichung ⇒ Pr{S ≥ 1} ≤ Pr{S ≥ 2 · ES} ≤ 1/2. Erste Frage: Wskt., dass v voll ist? Also: Innovator aus {t0 /2 + 1, . . . , t0 } ist voll mit Wskt. mindestens 1/2. Sei Xi,j := [wi = wj ], 1 ≤ i, j ≤ d. Dann gilt für i 6 = j: Pr{Xi,j = 1} = Pr{wi = wj } = 1 1 ≤ . v −1 t0 /2 72 73 Beweis von Behauptung 2: Betrachte Knoten v ∈ {1, . . . , t0 }. Finde verschiedene Duplikatoren w1 , . . . , wi−1 in {t0 + 1, . . . , t}. Zweite Frage: Wieviele volle Innovatoren in {t0 /2 + 1, . . . , t0 } gibt es? Erinnerung: Wskt., dass Knoten Innovator ist: a = Teile Zeitpunkte t0 + 1, . . . , t in Epochen ein. Für j = 0, . . . , ⌊log(t/t0 )⌋: (1 − α)d . E(# volle Innovatoren) ≥ (1/2) · a · t0 /2 = (a/4)t0 . Chernoff-Schranke ⇒ Pr{# volle Innovatoren < (a/8)t0 } ≤ e−(1/2) 2 (a/4)t j-te Epoche = Tj = {2j t0 + 1, . . . , 2j+1 t0 } • Wskt., dass v Prototyp für w : 1/(w − 1). • Wskt., dass v Prototyp für irgendein w ∈ Tj : 0 /2 = 2−(t) . (Behauptung 1) 1− 74 j+1 t 2Y 0 w=2 j t0 +1 1− 1 1 ≥ . w −1 2 75 Definiere Xj := [∃ Duplikator von v in Tj ], j = 0, . . . , ⌊log(t/t0 )⌋; P S := j Xj . Letzte Folie: Dann gilt nach unseren Vorüberlegungen: 1 d ·α Pr{Xj = 1} ≥ 2 und damit 1 ES ≥ ⌊log(t/t0 )⌋ · · α d ≥ 2i. 2 Denn es ist mk d j l t0 = ⌊t/b i ⌋ b = 2⌈4/α ⌉ d ⌊i log b⌋ ⌊log(t/t0 )⌋ ≥ = i 4/α = ES ≥ 2i. Wieder mit Chernoff: Pr{S < i} ≤ Pr{S < (1/2)ES} ≤ e−(1/2) 2 ES/2 ≤ e−i/4 . Mit Wskt. mindestens 1 − e−i/4 also S ≥ i, d. h. mindestens i verschiedene Duplikatoren von v . (Behauptung 2) (Satz 2.14) m l i 4/α d ≥ 4i/α d . 76 77 Kopiermodell mit exponentiellem Wachstum (EGC-Modell): Ideen: Bemerkung: Einschränkung i konstant“ nicht essenziell: ” Beweis funktioniert auch für i ≤ γ log t, γ > 0 geeignet (→ Übungsaufgabe). • Webgraph wächst exponentiell, dies direkt nachbilden. • Graph entwickelt sich in Epochen, in jeder Epoche Wachstum der Knotenanzahl um Faktor größer 1. • Nur Seiten aus früheren Epochen bekannt und als Ziel von Links erlaubt. Beurteilung LGC-Modell: • Vorteil: Gute Motivation, bipartite Cliquen. • Nachteil wie bei BA-Modell: Nur azyklische Graphen. ... 78 79 EGC-Modell genau: Parameter: α ∈ [0, 1], d ∈ N, ℓ ∈ N, p ∈ (0, 1]. Beobachtung: |Vt | = (1 + p)t . Vt := Knotenmenge nach Epoche t. Hier konstante Wachstumsrate zur Vereinfachung. Erzeugung neuer Knoten in Vollversion“: ” • Für jeden existierenden Knoten in Vt Münzwurf. Mit Wskt. p neuen Knoten erzeugen. • Epoche t = 0: |V0 | = 1, Knoten mit d + ℓ Schleifen. • Epoche t + 1 > 0: (1) Erzeuge p|Vt | neue Knoten mit je ℓ Schleifen. (2) Für jeden Knoten v ∈ Vt und jede eingehende Kante: Neue Kante mit Ziel v mit Wskt. dp/(d + ℓ). • Anzahl neuer Knoten dann binomialverteilt mit Konzentration um Erwartungswert p|Vt |. (3) Für jede neue Kante in (2): Wirf Münze mit Ausgängen neu“, Wskt. 1 − α, und alt“, Wskt. α. ” ” – neu“: Start zufällig gleichverteilt aus Vt+1 − Vt . ” – alt“: Start zufällig mit Wskt. proportional zum ” Ausgangsgrad aus Vt . • |Vt | konvergiert für t → ∞ gegen Grenzverteilung mit Erwartungswert (1 + p)t . 80 81 Wachstum der Kantenanzahl: Ergebnisse für das EGC-Modell: Et := Kantenmenge nach Epoche t. Aus der Originalarbeit von Kumar u. a.: • Potenzgesetz für Eingangsgrad mit von Parametern abhängigem Exponenten. • Große Anzahl bipartiter Cliquen. Behauptung: E(|Et |) = (d + ℓ)|Vt |. Beweis: Trivial für t = 0, per Induktion für t > 0. Betrachte Kantenzuwachs in Epoche t + 1. dp · E(|Et |) E(# neue Kanten) = ℓ · p|Vt | + d +ℓ dp · (d + ℓ)|Vt | = ℓ · p|Vt | + d +ℓ = (d + ℓ) · p|Vt |. Zusätzlich aus Experimenten: • Potenzgesetz für Ausgangsgrad für geeignete Wahlen für Parameter α. • Aber: MAXSCC zu groß, Durchmesser zu klein. (Kogias u. a. (2005), Kogias (2006).) Außerdem: Für festen Knoten wachsen auch Ein- und Ausgangsgrad exponentiell in t (o. Bew.). 82 83 Zusammenfassung Abschnitt 2.3: Modelle für den Webgraphen: Es gibt noch viele weitere Modelle: Insbesondere noch Varianten mit Kanten- und / oder Knoten-Löschungen interessant (Growth-Deletion-Modelle). Viele offene Fragen: 1 ER-Modell: Ungeeignet. Kein Potenzgesetze für Eingangsgrad, keine bipartiten Cliquen. 2 Preferential-Attachment: – BA-Modell: Potenzgesetz für Eingangsgrad, aber erzeugt nur azyklische Graphen. Kontinuierliche Variante und Mean-Field-Analyse“. ” – ACL-Modell: Potenzgesetze für Ein- und Ausgangsgrad und viele einstellbare Parameter. 3 Kopiermodelle: Viele bipartite Cliquen, in der linearen Version nur azyklische Graphen, exponentielle Version gut bis auf Grobstruktur. • Durchmesser bei Kopiermodellen? • Anzahl Ki,j -Kopien bei Preferential-Attachment-Modellen? Aktuelles, heißes Thema für Experimente & Modelle: Dynamische Entwicklung des Webgraphen? Passen die Modelle dafür? (Kantendichte?) 85 84 3. Suchmaschinen 3.1 Einleitung Übersicht: Suchmaschinen-Generationen: 3.1 Einleitung • 1. Generation: Inhaltsbasiert, klassische Methoden des Information-Retrieval (IR). Beispiel: altes AltaVista (1995–1999). 3.2 Aufbau einer Suchmaschine 3.3 HITS • 2. Generation: 3.4 PageRank Linkanalyse (Hypertext-Struktur). Beispiel: Google (ab 1998). 3.5 Mehr zum Crawling • 3. Generation: 3.6 Duplikatfilterung Natürliche Sprache, semantische Analyse. Beispiele: mehrere selbsternannte Google-Nachfolger. 3.7 Sampling von Webseiten 86 87 Klassisches Information-Retrieval Anfrageauswertung: Hier sehr kurzer Exkurs, einige Begriffe. Weitere Details z. B. in Baeza-Yates, Ribeiro-Neto (1999). Typische Verfahren aus der Computerlinguistik: • Zerlegung von Anfragen in Einzelwörter; • Entfernen von Stoppwörtern (Artikel, Konjunktionen. . . ); • Stemming: Reduktion von Suchbegriffen auf Grundform. Beispiel: Spam-mer, Spam-ming → Spam. Wesentliche Schritte beim IR: • Datenaufbereitung → Index / inverser Index; • Anfrageauswertung; • Ranking der Ergebnisse. Ranking: Suchergebnisse absteigend sortieren nach Relevanz zur Anfrage. Viele Techniken zur Verarbeitung von natürlichsprachlichen Texten, auch für Suchmaschinen relevant. 89 88 Inhaltsbasiertes Ranking Inhaltsbasiertes Ranking (Forts.) Vektormodell für Dokumente: 3.1: • Vokabular V , |V | = n. Elemente: Mögliche Suchbegriffe. Betrachte Gesamtmenge von Dokumenten D = {d1 , . . . , dk } (z. B. Web). Sei i ∈ {1, . . . , n}, n = |V |. • Dokument d 7 → Vektor w (d) = (w (d)1 , . . . , w (d)n ) ∈ Rn ; w (d)i : Gewicht des i-ten Begriffes im Dokument d (z. B. w (d)i = # Vorkommen von Begriff i in d). • Term-Frequency, TF: TF(d)i := # Vorkommen des i-ten Begriffes in d; • Document-Frequency, DF: DFi := # Dokumente, die i-ten Begriff enthalten; • Inverse-Document-Frequency, IDF: IDFi := log(k /DFi ) (setze DFi 6 = 0 voraus). • Kosinusmaß für Ähnlichkeit: hw (d1 ), w (d2 )i kw (d1 )k2 · kw (d2 )k2 = cos ∢(w (d1 ), w (d2 )) ∈ [−1, 1]. sim(d1 , d2 ) = Beispiel: 2 1 2 w (d1 ) = 0 , w (d2 ) = 1 ⇒ sim(d1 , d2 ) = √ ≈ 0.82. 6 0 1 TF-IDF-Gewichte: w (d)i := TF(d)i · IDFi , i = 1, . . . , n. 90 91 Inhaltsbasiertes Ranking (Forts.) Web-Information-Retrieval: Was ist anders? Beispiel: Unterschiede Web ↔ klassische Datenbanken: Begriff: GraKa SuSE funzt TF(d1 )i : 12 2 0 TF(d2 )i : TF(d3 )i : 8 1 0 1 1 0 • Datenmenge (siehe Kapitel 2). IDFi : log(3/3) = 0 log(3/2) ≈ 0.58 log(3/1) ≈ 1.58 • Dynamik (z. B. 11 Tage, bis 50 % der Seiten in .com in Web-Crawl geändert (Cho, Garcia-Molina 2000a)). Siehe auch Abschnitt 3.4.2, Folie 201ff. • Wenig Fließtext, dafür viele andere Medien. TF-IDF(d1 ) = (12 · 0, 2 · 0.58, 0 · 1.58) = (0.00, 1.16, 0.00); • Vielzahl von Sprachen. TF-IDF(d2 ) = (8 · 0, 0 · 0.58, 1 · 1.58) = (0.00, 0.00, 1.58); • Spam. TF-IDF(d3 ) = (1 · 0, 1 · 0.58, 0 · 1.58) = (0.00, 0.58, 0.00). • Hoher Gehalt an Verbindungsinformation (Hypertext). 92 93 Ziele für Suchmaschinen (2.Generation)? Ziele für Suchmaschinen (Forts.): Klassische IR-Begriffe: Beobachtung Benutzerverhalten: • Unpräzise Benutzeranfragen (nur 1-3 Suchbegriffe). • Nur selten mehr als erste Seite Ergebnisse betrachtet. • Genauigkeit (Precision): Anteil gefundener & relevanter Dokumente an allen gefundenen Dokumenten. • Vollständigkeit (Recall): Ziele für Web-IR (Henzinger 1999, damals bei Google): Relevanz & Qualität (in den Augen des Benutzers), qualitativ hochwertige Ergebnis unter ersten Ergebnissen. Anteil gefundener & relevanter Dokumente an allen relevanten Dokumenten. Im Vergleich zu klassischem IR neue Ideen für Ranking erforderlich. Für Web: • Hohe Vollständigkeit illusorisch und auch nicht erwünscht. • Vielzahl an relevanten Dokumenten. 94 95 3.2 Aufbau von Suchmaschinen Problem für Suchmaschinen – Web Spam: • Bewusste Herbeiführung von Überbewertung des Quellen: • Das Google-Paper: Brin, Page, The Anatomy of a Large-Scale ” Hypertextual Web Search Engine“, 1998. • Veröffentlichungen der Stanford-Gruppe, z. B.: Arasu u. a., Searching the Web“, 2001. ” • Spätere Interviews und Veröffentlichungen von Google-Mitarbeitern. Seiteninhalts durch Suchmaschinen. • Schwierig: Abgrenzung gegen legitime Suchmaschinen-Optimierung (SEO). Schätzungen für 2004 (lt. Gyöngyi, Garcia-Molina 2005): • 15–18 % Spam in Suchmaschinen-Indexen; • 9 % Suchergebnisse mit Spam in Top-10. Spam-Techniken (siehe o. g. Arbeit): • Suchbegriff-Spamming: Dumping, Weaving, Stitching. • Link-Spamming: – Verzeichnisse kopieren, Blogs, Linkfarmen. – Verschleierungstechniken: Hiding, Cloaking, Redirection. Aktueller Stand der Dinge: Heuristiken, Finetuning → Firmengeheimnisse. 97 96 Suchmaschinen-Aufbau genauer: Suchmaschine – Grobaufbau: Web Benutzer/−in Daten− sammlung (Crawler) Benutzer/−in Anfrage− Repository bearbeitung Web Daten− sammlung (Crawler) Daten− Anfrage− aufbereitung bearbeitung Lexikon Indexer Ranking Sorter Index / Inv. Index Graph−DS URL−DB 98 99 Datenstrukturen: Datenstrukturen (Forts.): • URL-DB: Übersetzung URL ↔ DocID. • Lexikon: Übersetzung Suchbegriff ↔ WordID. Inverser Index: Abbildung WordID 7 → Liste von DocIDs. (Das ist die DS, hinter der wir her sind.) Repository: • Unsortierte Liste aller HTML-Dokumente, komprimiert. • URL-DB liefert Abbildung DocID 7 → Repository-Position. Graph-DS: • Webgraph in Adjazenzlisten-Darstellung. • Knotennummerierung mit DocIDs. • Knoten mit Zeigern auf Listen von eingehenden / ausgehenden Kanten. Index: • Abbildung DocID 7 → Liste aus Paaren (WordID, Hit-Liste). • Hit-Liste: Liste von Hits, Wortposition in Seite + Zusatzinfo. Zusatzinfo: Typ (Text/URL/Anker/Titelzeile), Approx. der rel. Schriftgröße, Groß-/Kleinschrift. Treffer in Ankertext für Linkziel speichern. 100 101 Programme: • Crawler: – Umfangreiche Menge von Startpunkten. – Parsen von gelesener Webseite (schwierig: Robustheit), Eintrag im Repository, URL → DocID in URL-DB. Ranking am Beispiel von Google (1998): So heute (lange) nicht mehr, aber wenigstens konkret, wie es prinzipiell gehen kann. Und Grundschema bleibt dasselbe. • Indexer: Repository → Index, dabei außerdem: – Einträge (WordID,Suchbegriff) im Lexikon; – Kanten für Graph-DS; – URLs für Crawler-Steuerung (hier nicht gezeigt). Zwei Komponenten (genaue Kombination unbekannt): • Inhaltsbasiert wie bei klassischem IR. • Linkbasiert: PageRank (→ später). • Sorter: Sortiere Index nach WordID → Invertierter Index. Von allen drei Programmen viele Kopien, die parallel auf Teilen ihrer Datenstrukturen arbeiten. 102 103 Inhaltsbasierte Rang-Komponente: Betrachte Suche nach einzelnem Suchbegriff. Ranking von Dokument: • Kombinationen von Hit-Attributen → Hit-Typen: Titel, Anker, URL, Text großer Font, Text kleiner Font,. . . • Gewichte Typen mit Typgewichten TW1 , . . . , TWt . • Für jeden Hit-Typ Anz. ni der Vorkommen, i = 1, . . . , t. Gewichten mit Anzahlfunktion CW : N → R. Inhaltsbasierte Rang-Komponente (Forts.): Für mehrere Suchbegriffe Nachbarschaft von Vorkommen mit einbeziehen. • Betrachte Tupel von Hit-Typen (eine Komponente pro Begriff). • Nähe als zusätzliches Attribut (Zahl aus 1 . . . 10). • (Hit-Typ-Tupel, Nähe) als neue Hit-Typen. CW # Vorkommen • Inhaltsbasierter Rang des Dokuments: X i TWi · CW(ni ). (Übliche IR-Maße statt einfachem Skalarprodukt?) 105 104 Einige Google-Details (Barroso, Dean, Hölzle 2003, Hölzle-Talk EclipseCon 2005) Einige Google-Details (Forts.): Architektur: • Mehrere Cluster aus jeweils ∼ 103 Rechnern, verteilt über der ganzen Welt. • Kommunikation über Google Web Server. • Repository, Indexe → Shards. • Duplizierung von Shards. Grundsätzliche Philosophie: • Maximierung von Leistung/Preis, nicht Spitzenleistung. • Redundanz für – Ausfallsicherheit; – Performance (verteilte Algorithmen, Lastbalancierung). • Fehlertoleranz in Software realisiert, keine spezielle Serverhardware. Hardware in 2003: • Verschiedene CPU-Generationen, von 533 MHz Celerons bis 1,4 GHz Dual-Pentium III; • eine oder mehrere 80 GB IDE-Platten (kein SCSI); • 100 MBit/s Ethernet für Verbindung der PCs. Größenordnungen: • Indexgröße (2005): ∼ 8 Mrd. Webseiten. • ∼ 1000 Anfragen/s (2003). • ∼ 15.000 (beinahe) Standard-Desktop-PCs (2003). • Refresh: 1–7 Tage, durchschnittlich 2 Tage (2005). 106 107 3.3 HITS Nachteil klassische inhaltsbasierte Suche: Zu viele relevante Seiten bei Suche im Web. Beispiel: Eingangsgrad (backlink count). Ranking damit genauer: Grundidee zur Lösung des Problems: • Nutze Information in Hyperlink-Struktur aus. • Link von Seite p auf Seite q: Empfehlung“ für Seite q, ” Übertragung von Wichtigkeit“, Autorität“. ” ” (Natürlich ist das nicht immer so. . . ) • Finde Seiten mit Suchbegriff mit inhaltsbasierter Suche. • Sortiere gefundene Seiten nach Eingangsgrad. Nachteile: • Links werden aus vielen Gründen erzeugt, die keine Empfehlung darstellen (z. B. Navigation). • Suchbegriffe oft gar nicht auf relevanten Seiten. Beispiel: Suchmaschinen“. ” Diese Grundidee ist alt: • Soziologie: Maße für soziales Ansehen, Prestige. • Bibliometrie: Impact Factor (seit 1920er Jahren). 108 109 3.3.1 HITS (Hypertext Induced Topic Search) Zwei verschiedene Grundansätze für linkbasiertes Ranking: Arbeit: Kleinberg (1999). • Anfragebasiert: Ziel: Autoritäten“ für Suchanfrage finden. ” Idee analog zu Webgemeinden: Autoritäten gemeinsam verlinkt von Verteilern. Berücksichtige Benutzeranfrage vor bzw. während Linkanalyse. Beispiel: HITS (dieser Abschnitt). Zu lösende Probleme: 1 Wie mit Suchanfrage verbinden? 2 Wie global gute Autoritäten/Verteiler finden? • Anfrageunabhängig: – Linkanalyse → absolute Wichtigkeit“ einer Seite; ” – Benutzeranfrage + inhaltsbasierte IR-Methoden. Beide Ränge verknüpfen zu endgültigem Rang. Beispiel: PageRank (Abschnitt 3.4). Lösung für zweites Problem (intuitiv): • Gute Autorität: Von vielen guten Verteilern verlinkt. • Guter Verteiler: Viele Links auf gute Autoritäten. Wie kann das gehen? Zirkuläre Definition!? 110 111 Der fokussierte Teilgraph Der fokussierte Teilgraph (Forts.) Zunächst Lösung des ersten Problems. Fixiere Suchbegriff q (genauso für allgemeine Anfragen). Zweistufiges Vorgehen: Naiv: Linkanalyse für alle Seiten, die q enthalten. • Startmenge Sq : Kleine Auswahl von Webseiten, die q enthalten. Beste t Resultate von inhaltsbasierter Suchmaschine. Funktioniert nicht: Zu viele Seiten, Suchbegriff evtl. nicht auf relevanten Seiten. • Fq := Sq ∪ Rand von Sq“, d. h. ” Sq mit Nachfolgern und Vorgängern. Ziel: Fokussierte Menge von Seiten Fq mit: • Fq nicht zu groß. • Viele für q relevante Seiten in Fq . • Großteil der guten Autoritäten für q in Fq . Für Linkanalyse von Fq induzierten Teilgraphen betrachten: Fokussierter Teilgraph des Web. 112 113 Der fokussierte Teilgraph (Forts.) Algorithmus F OKUSSIERTER T EILGRAPH: Beispiel: Parameter: • Größe t für Startmenge (z. B. t = 200); • Eingangsgrad-Schranke d (z. B. d = 50). • Bestimme Menge Sq der besten t Suchergebnisse von • • Sq • • 114 inhaltsbasierter Suchmaschine. Fq := ∅. for each v ∈ Sq do – Füge alle Nachfolger von v zu Fq hinzu. – Füge zufällige Auswahl von d Vorgängern von v zu Fq hinzu (bzw. alle, wenn höchstens d). G(Fq ) := von Fq induzierter Teilgraph des Webgraphen. Entferne aus G(Fq ) Links innerhalb einer Domain. return G(Fq ). 115 Verteiler & Autoritäten berechnen Verteiler & Autoritäten berechnen (Forts.) Für jeden Knoten i in Fq berechnen: • ai : Gewicht von i als Autorität; • vi : Gewicht von i als Verteiler. A = (ai,j )1≤i,j≤n Adjazenzmatrix von G(Fq ). V |Fq | = n: a := [a1 , . . . , an ]⊤ , v := [v1 , . . . , vn ]⊤ ∈ Rn . vj1 vj2 .. .. Normierung der Gewichte: Definition 3.2: Euklidische Norm von x = [x1 , . . . , xn ]⊤ ∈ Rn : X 1/2 n 2 ⊤ 1/2 xi kxk2 := x x = . ajs ′ vi := Pn ′ j=1 ai,j aj , Update Verteiler-Gewicht: n X X ai,j aj . aj = vi := (i,j)∈E j=1 117 Algorithmus V ERTEILER & AUTORIT ÄTEN (Alternative): Eingabe: n × n-Adjazenzmatrix A; Fehlerschranke ε > 0. Verwalte Vektoren a, v ; Zwischenergebnisse aalt , valt , a′ , v ′ . • a := v := [1, 1, . . . , 1]⊤ . • repeat • a := v := [1, 1, . . . , 1]⊤ . • for t := 1 to k do j=1 aj,i vj , j=1 116 Verwalte Vektoren a, v ; Zwischenergebnisse a′ , v ′ . ai := .. .. vi Eingabe: n × n-Adjazenzmatrix A; Anzahl Iterationen k . Pn Update Autoritäten-Gewicht: n X X aj,i vj . ai := vj = (j,i)∈E aj1 aj2 Algorithmus V ERTEILER & AUTORIT ÄTEN: ′ ai vjr i=1 Wollen: kak2 = kv k2 = 1. (Es werden außerdem a1 , . . . , an ≥ 0, v1 , . . . , vn ≥ 0 sein.) A ai ′ := i = 1, . . . , n; vi ′ := i = 1, . . . , n; Pn j=1 aj,i vj , Pn j=1 ai,j aj ′, i = 1, . . . , n; i = 1, . . . , n; aalt := a; a := a′ /ka′ k2 ; a := a′ /ka′ k2 ; valt := v ; v := v ′ /kv ′ k2 . v := v ′ /kv ′ k2 . until ka − aalt k2 ≤ ε and kv − valt k2 ≤ ε. • return (a, v ). • return (a, v ). 118 119 Anwendung insgesamt für Suche nach q: Beispiel (ohne Normierung): 0 1 1 0 0 0 0 0 0 1 0 ⊤ 1 0 0 A= 0 0 0 1, A = 1 1 0 0 1 0 0 0 0 1 2 1 1 1 1 1 1 1 1 1 a= 1 v = 1 1 1 1 1 1 3 1 4 4 0 2 v ′ = Aa′ = 2 a′ = A⊤v = 2 1 1 2 • Ermittle Startmenge Sq und daraus fokussierten Teilgraphen G(Fq ). • Berechne Verteiler und Autoritäten auf G(Fq ). • Gib Autoritäten in absteigender Reihenfolge ihres Gewichts im Vektor a aus. Weitere Anwendung: Verwandte Seiten Aufgabe: Bereits interessante“ (autoritative) Seite p ” gefunden, wie verwandte“ Seiten finden? ” Idee: Wähle t Seiten mit Link auf p als Startmenge Sp (statt Sq ) (→ vgl. Webgemeinden). Restlicher Algorithmus wie gehabt. 121 120 Beispiel (ohne Normierung): 0 1 1 0 0 0 0 0 0 1 0 ⊤ 1 0 0 A= 0 0 0 1, A = 1 1 0 0 1 0 0 0 0 1 2 1 2 0 2 4 0 4 2 2 a= 2 v = 1 1 2 2 1 1 3 4 2 0 12 6 ′ ′ =6 v = Aa a′ = A⊤v = 1 6 6 1 0 1 0 0 121 0 1 0 0 Beispiel (ohne Normierung): 0 1 1 0 0 0 0 0 1 0 ⊤ 1 0 A= 0 0 0 1, A = 1 1 0 1 0 0 0 0 2 1 6 0 6 12 0 12 6 6 a= 6 v = 1 1 6 6 1 1 3 4 6 0 0 0 1 0 1 0 0 121 Beispiel (ohne Normierung): 0 1 1 0 0 0 0 0 1 0 ⊤ 1 0 A= 0 0 0 1, A = 1 1 0 1 0 0 0 0 2 1 18 0 18 36 0 36 18 18 a= 18 v = 1 1 18 18 1 1 3 18 4 0 0 0 1 0 1 0 0 Beispiel (ohne Normierung): 0 1 1 0 0 0 0 1 0 ⊤ 1 A= 0 0 0 1, A = 1 0 1 0 0 0 2 1 18 0 54 108 0 108 54 v = 54 a= 54 1 1 54 18 1 1 3 54 4 0 0 1 0 0 0 0 1 121 Beispiel (ohne Normierung): 0 1 1 0 0 0 0 1 0 ⊤ 1 A= 0 0 0 1, A = 1 0 1 0 0 0 2 1 162 0 162 324 0 324 162 v = 162 a= 162 1 1 162 162 1 1 3 4 162 0 0 1 0 0 0 0 1 0 1 0 0 121 Beispiel (ohne Normierung): 2 0.71 0.41 0.71 0 3 121 0 1 0 0 1 0 0.82 0 4 0.41 0 0 A= 0 0 1 0 0 1 1 1 0 0 0√ 1/ 2 √ a= 1/ 2 0 0 0 0 ⊤ 1 ,A = 1 1 0 0 √ 2/√6 1/ 6 v = 0 √ 1/ 6 0 0 1 0 0 0 0 1 0 1 0 0 121 Matrix-Vektor-Formulierung: Matrix-Vektor-Formulierung (Forts.): Seien at , vt unnormierte Gewichte nach Schritt t. Verfahren allgemein: Für n × n-Matrix M: • Startvektor x0 ∈ Rn geeignet“ wählen. ” Mxt • xt+1 = , t = 0, 1, 2, . . . kMxt k2 a0 = v0 := [1, . . . , 1]⊤ . at+1 = A⊤vt ; vt+1 = A at+1 . Also: vt+1 = AA⊤ vt , t ≥ 0; at+1 = • Fortführen bis Konvergenz“ (xt+1 ≈ xt ). ” A⊤A at , t ≥ 1. f := A⊤A. Dann gilt für beliebige t ≥ 0: Sei M := AA⊤ und M vt = M t v0 und ftA⊤v0 . at = M Name: Potenziteration (bzw. Potenzmethode). Hier angewendet für M = AA⊤ (bzw. M = A⊤A) und Startvektor x0 = [1, . . . , 1]⊤ (bzw. A⊤ [1, . . . , 1]⊤ ). 122 123 3.3.2 Konvergenz des HITS-Algorithmus Matrix-Vektor-Formulierung (Forts.): Dazu: Erinnerung an einige Definitionen aus der linearen Algebra. . . Hoffnung: • Konvergenz. • Eindeutige Lösung, unabhängig von Startvektor. Ansonsten: Interpretation für HITS unklar! Definition 3.3: Für n × n-Matrix A mit komplexen Zahlen als Einträgen heißt λ ∈ C Eigenwert von A, falls x ∈ Cn , x 6 = 0, existiert mit Ax = λx. Vektor x heißt Eigenvektor zum Eigenwert λ. 0 1 Beispiel: A = hat die Eigenwerte 1, −1, denn: 1 0 1 1 1 1 A =1· ; A = −1 · . 1 −1 −1 1 Gilt das wirklich? In der Literatur dazu viele Mythen und Legenden“. ” Leider nur unter geeigneten Voraussetzungen! Dann: xt → Eigenvektor zum größten Eigenwert von M. Nützlich hier: Spezielle Form der Matrix M = AA⊤ . (Das sind auch alle Eigenwerte, da [1, 1]⊤ , [1, −1]⊤ bereits den ganzen R2 aufspannen.) 124 125 Definition 3.4: Für die uns hier interessierenden Matrizen gilt: Vektoren v , w ∈ Rn heißen orthogonal, falls v ⊤ · w = 0. Vektoren v1 , . . . , vk ∈ Rn bilden • Orthonormalsystem (ON-System), falls sie paarweise orthogonal sind und alle (euklidische) Norm 1 haben; • Orthonormalbasis (ON-Basis), falls zusätzlich Basis. Proposition 3.6: Für eine beliebige quadratische, reelle Matrix A sei M := AA⊤ . Dann ist M symmetrisch und positiv semidefinit. Beweis: Symmetrie ist sofort ersichtlich, M ⊤ = (AA⊤ )⊤ = AA⊤ = M. Definition positive Semidefinitheit: Für beliebige x ∈ Rn : Für symmetrische Matrizen (im Folgenden immer reell) hat Eigenwertproblem besonders übersichtliche Lösung: x ⊤Mx ≥ 0. Satz 3.5: Für symmetrische n × n-Matrix A sind die Eigenwerte λ1 , . . . , λn alle reell. Außerdem gibt es eine ON-Basis des Rn aus lauter Eigenvektoren von A. Dies gilt tatsächlich: x ⊤Mx = x ⊤AA⊤x = (A⊤x)⊤(Ax) = kA⊤xk2 ≥ 0. 126 Letzte Proposition zusammen mit folgender: Von uns betrachtete Matrizen haben nur nichtnegative Eigenwerte. Beweis: Sei λ ein Eigenwert von M mit Eigenvektor x 6 = 0. Wegen M symmetrisch ist λ ∈ R. Außerdem gilt: 0 = x ⊤(λx) = λ |{z} x ⊤x . Division der Ungleichung durch >0 ⊤ x x liefert λ ≥ 0. 127 Definition 3.8: Nenne Matrix • nichtnegativ, wenn sie lauter nichtnegative Einträge hat; • positiv, wenn sie lauter positive Einträge hat. Für Vektoren genauso. Proposition 3.7: Sei M eine quadratische, symmetrische und positiv semidefinite Matrix. Dann sind alle Eigenwerte von M nichtnegativ. M pos. semidef. ⊤ ≤ x Mx Unsere Matrizen M = AA⊤ sind nichtnegativ, da A als Adjazenzmatrix nur Einträge aus {0, 1} hat. 128 129 Satz 3.9: Sei M = AA⊤ eine nichtnegative n × n-Matrix mit Eigenwerten λ1 > λ2 ≥ · · · ≥ λn ≥ 0 (mehrfache Vorkommen erlaubt). • Die Matrix M hat genau einen nichtnegativen Eigenvektor u1 mit ku1 k2 = 1 zum Eigenwert λ1 . • Für alle Startvektoren x0 6 = 0, die nichtnegativ und nicht orthogonal zu u1 sind, konvergiert die Potenziteration mit Matrix M gegen den Vektor u1 . Definitionen 3.10: • Für Matrix M mit Eigenwerten λ1 ≥ λ2 ≥ · · · ≥ λn : Nenne λ1 − λ2 Eigenwertlücke von M. • Für Matrizen M wie in Satz 3.9 sei u1 (M) eindeutiger nichtnegativer normierter Eigenvektor zum größten Eigenwert von M. Beachte: Wegen Proposition 3.7 sowieso λ1 ≥ · · · ≥ λn ≥ 0. Entscheidende zusätzliche Voraussetzung ist λ1 > λ2 ! Z. B. nicht erfüllt für A = Identität (und viele andere). 130 131 Beweis: Anwendung: Wende Satz 3.9 an für Potenziteration mit Matrix M = AA⊤ und Folge der Verteilergewichte (vt ). Folgerung 3.11: Wahl des Startvektors: Zeige, dass Startvektor passend für Satz 3.9, d. h., v0 nicht orthogonal zu u := u1 (M): v0 positiv, u nichtnegativ und u 6 = 0 ⇒ u ⊤v0 > 0. Die Matrix M = AA⊤ in der Iteration des HITS-Algorithmus habe eine positive Eigenwertlücke. Dann gibt es Autoritätenbzw. Verteiler-Gewichtsvektoren a∗ , v ∗ , sodass für jeden positiven Startvektor v0 die Folgen der Autoritäten- und Verteilergewichte im HITS-Algorithmus gegen a∗ bzw. v ∗ konvergieren. Konvergenz: Folge (vt ) der Verteilergewichte: Konvergenz gegen ein v ∗ direkt aus Satz 3.9. Der Startvektor v0 = [1, . . . , 1]⊤ im Standard-HITSAlgorithmus ist offensichtlich positiv. Konvergenz für (at )-Folge folgt aus der für die (vt )-Folge, da erstere in letztere eingeschachtelt“ ” (Rechnung, hier ohne Beweis). 132 133 Beweis von Satz 3.9: Potenziteration mit Normen: Bemerkung 1: y0 := x0 ; Unter den Voraussetzungen des letzten Satzes gilt genauer: • v ∗ = u1 (M) = u1 AA⊤ (direkt aus Satz 3.9). • a∗ = A⊤ v ∗ = u1 (f M ) = u1 A⊤A (ohne Beweis). yt := Mxt−1 , t ≥ 1; dann xt = yt /kyt k2 . Sei b1 , . . . , bn ON-Basis zu Eigenwerten λ1 , . . . , λn von M. Startvektor darstellen in dieser Basis: Bemerkung 2: y0 = x0 = α1 b1 + α2 b2 + · · · + αn bn ; α1 , . . . , αn ∈ R. Im Original-HITS-Algorithmus: Verteiler-Gewichtsfolge und Autoritäts-Gewichtsfolge basieren auf Startvektor v0 . Alternativ kann man alles aus Startvektor a0 für Autoritäts-Gewichte berechnen. Gemäß Voraussetzung (x0 nicht orthogonal zu b1 ): α1 6 = 0. Dann M t bi = λti bi für i = 1, . . . , n und damit Unter den Voraussetzungen von Folgerung 3.11 stimmen die Ergebnisse überein, im Allgemeinen jedoch nicht (→ Beispiel später). M t y0 = M t (α1 b1 + · · · + αn bn ) = λt1 α1 b1 + · · · + λtn αn bn t n X λi t αi bi ≈ λt1 α1 b1 . = λ1 α1 b1 + λ1 i=2 | {z } → 0 für t → ∞ 134 Vektor yt entsteht durch t-faches Anwenden von M und skalare Normvorfaktoren aus y0 . ⇒ Es gibt ein βt ∈ R mit n X λi t t t αi bi . yt = βt · M y0 = βt · λ1 α1 b1 + λ1 |i=2 {z } kdt k2 Haben: Konvergenz gegen x ∗ ∈ span(b1 ) mit kx ∗ k2 = 1, wobei b1 Eigenvektor zum größten Eigenwert λ1 von M. Außerdem: Startvektor x0 und Matrix M nichtnegativ ⇒ alle xt und damit auch x ∗ nichtnegativ. =: dt Es gilt n t X λi = O (λ2 /λ1 )t ). α b = i i λ1 2 Eindeutigkeit (erster Teil des Satzes): • Alle Eigenvektoren zu λ1 in span(b1 ), da λ1 6 = λi , i 6 = 1, i=2 und Eigenvektoren b1 , . . . , bn ON-Basis bilden. Also (wegen λ2 < λ1 ): dt → Nullvektor für t → ∞. Damit: xt = 135 • Es gibt (offensichtlich) genau einen nichtnegativen Vektor yt α1 b1 + dt t→∞ α1 · b1 . = → kyt k2 kα1 b1 + dt k2 |α1 | mit Norm 1 in span(b1 ). Gezeigt: (xt )-Folge konvergiert gegen Vektor x ∗ ∈ span(b1 ) mit kx ∗ k2 = 1. 136 137 Preisfrage Nr. 1: Was passiert, wenn Voraussetzung von Folgerung 3.11 nicht erfüllt? Pathologisches Beispiel 2: 1 1. Fall: v-Gewichte initialisieren Dann HITS-Matrix M = AA⊤ mit Eigenwerten v0 := λ1 = · · · = λk > λk+1 ≥ · · · ≥ λn ≥ 0, 2 3 wobei k > 1, also größter Eigenwert kommt mehrfach vor. Viele verschiedene nichtnegative, normierte Eigenvektoren zum größten Eigenwert und u1 (M) undefiniert. 4 6 Pathologisches Beispiel 1: 0 1 1 0 ⊤ A= , M = AA = . 1 0 0 1 · [1, 1, 1, 1, 1, 1] → a= √1 5 · [0, 0.5, 0.5, 0.5, 0.5, 0.5, 2]; v= √1 5 · [1, 1, 1, 1, 1, 0]. 2. Fall: a-Gewichte initialisieren √1 6 Eigenwerte: a0 := λ1 = λ2 = 4 a= √1 5 · [0, 1, 1, 1, 1, 1, 1]; v= √1 5 · [2, 0.5, 0.5, 0.5, 0.5, 0]. λ3 = · · · = λ6 = 0 Konvergenz gegen beliebigen Startvektor v0 . 5 √1 6 · [1, 1, 1, 1, 1, 1] → 138 139 Perron-Frobenius-Theorem aus der linearen Algebra (→ Abschnitt 3.4.2, Satz 3.18) liefert: Preisfrage Nr. 2: Anschauliches hinreichendes Kriterium, unter dem Eindeutigkeit der Konvergenz von HITS im Sinne von Folgerung 3.11? Satz 3.13: Sei M eine quadratische, nichtnegative, irreduzible Matrix. • Dann kommt der größte Eigenwert kommt nur einmal vor und alle anderen Eigenwert sind betragsmäßig nicht größer als dieser. • Falls M zusätzlich positiv semidefinit: Eigenwerte λ1 , . . . , λn mit λ1 > |λ2 | ≥ · · · ≥ |λn | ≥ 0. Antwort: Ja! Dazu: Definition 3.12: Für eine n × n-Matrix M sei M6=0 die boolesche Matrix, die 1-Einträge genau an den Stellen hat, an denen die Einträge von M von 0 verschieden sind. Nenne M irreduzibel, falls M6=0 die Adjazenzmatrix eines stark zusammenhängenden Graphen ist und reduzibel sonst. 140 Beachte: Es gibt nichtnegative, irreduzible, symmetrische Matrizen mit • negativen Eigenwerten; • λ1 = |λi | für irgendwelche i 6 = 1. 0 1 ; Eigenwerte 1, −1. Beispiel: M = 1 0 141 Anwendung: 3.3.3 Effizienz A Adjazenzmatrix von fokussiertem Graphen G(Fq ), M = AA⊤ . Dann: Beweis von Satz 3.9: Konvergenzgeschwindigkeit hängt vom Verhältnis zwischen zwei größten Eigenwerten λ1 , λ2 von M = AA⊤ ab. Mi,j = Anzahl Wege i j der Länge 2 in G(Fq ) über eine Kante + eine umgedrehte Kante. Genauer gilt für Potenziteration (Folge (xt ), Grenzvektor x ∗ ): λ2 · kxt−1 − x ∗ k, t ≥ 1. kxt − x ∗ k2 ≤ 1 + o(1) λ1 d. h., Fehler schrumpft pro Iteration um konstanten Faktor, lineare Konvergenzgeschwindigkeit. Graph zu M typischerweise nicht stark zusammenhängend → Zerlegung in starke ZKs, diese einzeln behandeln. (Beachte: Der Graph zu M ist nicht G(Fq )!) Weiterhin auftretende Probleme: • Abhängigkeit von Verteilung des Startgewichts auf starke ZKs (falls global größter Eigenwert mehrfach); • 0-Gewicht für Knoten mit Eingangsgrad- bzw. Ausgangsgrad 6 = 0. Bessere Verfahren für Eigenvektorberechnung aus der Numerik anwendbar, da Matrix M klein (Kleinberg: |Fq | ≈ 1000 . . . 5000). 142 143 3.3.4 Stabilität Bei HITS: Fragestellung: Stabilität hängt von Eigenwertlücke von M ab. Wie ändert sich Lösung (Autoritäten-/Verteiler-Gewichte), wenn kleine Änderungen am Graphen vorgenommen werden? • Möglich: Änderung in Höhe der Eigenwertlücke an jedem Eintrag → komplett andere Lösung (größter Eigenwert ↔ zweitgrößter Eigenwert). Typisches Problem in der Numerik, will dort: Kleine Fehler in der Eingabe bzw. Rechenfehler → nur kleine Änderung der Ausgabe. • Hinzufügen/Löschen von einzelner Kante kann globale Auswirkungen haben. (Ng, Zheng, Jordan 2001) Gerade für Eigenwertprobleme sehr gut untersucht. 144 145 3.3.5 Varianten von HITS Neue Mechanismen im HITS-Algorithmus: Arbeit: Bharat, Henzinger (1998). Nichtuniforme Kantengewichte: Identifizierte Probleme von HITS: • Mehrfachlinks zwischen zwei Seiten. Gewichtsmatrizen W A→V / W V →A anstelle von Adjazenzmatrizen A / A⊤ . • Automatisch generierte Links. Alter Konvergenzbeweis (Satz 3.9) direkt anwendbar, wenn ⊤ Gewichtsmatrizen nichtnegativ und W V →A = W A→V . Anpassung für allgemeinere Gewichtsmatrizen möglich. • Themenabdrift (topic drift): Fokussierte Menge Fq kann thematisch zu q verwandte Seiten enthalten, die aber – nur geringe Relevanz haben und – trotzdem Ergebnis wegen guter Verlinkung dominieren. Beispiel: Jaguar AND Car“. ” Anwendung: Mehrfachlinks bestrafen. Z. B. k Kanten von Seiten unter Domain A → Dokument unter Domain B: Jeder Link erhält nur Gewicht 1/k . 147 146 3.4 PageRank Neue Mechanismen im HITS-Algorithmus (Forts.): Arbeit: Page, Brin, Motwani, Winograd (1998). Knotengewichte: Ziel: Maß für absolute Wichtigkeit“ von Webseiten; ” nicht Relevanz bezüglich Benutzeranfrage. Anfrageunabhängiges Ranking. Aktuelle Werte ai / vi mit zusätzlichem Knotengewicht wi multiplizieren bei Updates. Spezialfall von Kantengewichten. Anwendung: Pruning“ von wenig relevanten Seiten ” (→ automatisch generierte Links, Themenabdrift). Ausgangspunkt: Eingangsgrad. Problem: Alle eingehenden Links gleich bewertet. Link von www.microsoft.de genauso wichtig wie von obskurer Crackerseite. Und: Leicht zu spammen. Wie Knotengewichte wählen? Betrachte Anfrage q. • Anfrage q ′ : Konkateniere je erste 1000 Wörter aus allen Dokumenten in Startmenge Sq . • Knotengewicht für Seite p ∈ Fq : Relevanz von Seite p bezüglich q ′ mittels Kosinusmaß für Ähnlichkeit zwischen p und q ′ und TF-IDF-Gewichtung messen. Idee für Verbesserung: Seite wichtig, falls sie viele eingehende Links von wichtigen Seiten hat. 148 149 PageRank – einfache Version (Forts.): 3.4.1 Der PageRank-Algorithmus Matrix-Vektor-Formulierung: PageRank – einfache Version: Gewichtete Adjazenzmatrix A = (ai,j )1≤i,j≤n : 1 , falls (i, j) ∈ E; ai,j = outdeg(i) 0, sonst. Betrachte Webgraphen (bzw. Ausschnitt, Crawl) G = (V , E), n := |V |. Ordne jeder Seite v ∈ V Pagerank rv ∈ [0, 1] zu gemäß X ru rv := . outdeg(u) r (t) ∈ [0, 1]n Rangvektor nach t-tem Schritt, t ≥ 1. (u,v )∈E Iteration: • r (0) := [1/n, . . . , 1/n]; • r (t) = r (t−1) A. (Beachte: Hier immer Matrix-Vektor-Multiplikation von links“, r (t) Zeilenvektoren.) ” Dies als Berechnungsvorschrift interpretieren: • Initialisierung irgendwie geeignet“: ” Z. B. rv = 1/n für alle v . • Dann iterieren, bis Konvergenz“. ” 150 Beispiel 1: 2 Beispiel 1: 1 0.250 0.250 0.250 0.250 3 151 4 0 1/2 1/2 0 0 0 1 0 A= 0 1/2 0 1/2 0 1 0 0 2 r = 1/4 1/4 1/4 1/4 0.000 0.375 0.125 3 152 1 0.500 4 0 1/2 1/2 0 0 0 1 0 A= 0 1/2 0 1/2 0 1 0 0 r = 0 4/8 3/8 1/8 152 Beispiel 1: 2 Beispiel 1: 1 0.313 0.000 0.500 0.188 3 4 0 1/2 1/2 0 0 0 1 0 A= 0 1/2 0 1/2 0 1 0 0 2 r = 0 5/16 8/16 3/16 1 0.438 0.000 0.313 0.250 3 4 0 1/2 1/2 0 0 0 1 0 A= 0 1/2 0 1/2 0 1 0 0 r = 0 7/16 5/16 4/16 152 Beispiel 1: 2 Beispiel 1: 1 0.406 0.000 0.438 0.156 3 152 4 0 1/2 1/2 0 0 0 1 0 A= 0 1/2 0 1/2 0 1 0 0 2 r = 0 13/32 14/32 5/32 0.000 0.406 0.219 3 152 1 0.375 4 0 1/2 1/2 0 0 0 1 0 A= 0 1/2 0 1/2 0 1 0 0 r = 0 12/32 13/32 7/32 152 Beispiel 1: 2 Beispiel 1: 1 0.422 0.000 0.375 0.203 3 4 0 1/2 1/2 0 0 0 1 0 A= 0 1/2 0 1/2 0 1 0 0 2 r = 0 27/64 24/64 13/64 1 0.391 0.000 0.422 0.188 3 4 0 1/2 1/2 0 0 0 1 0 A= 0 1/2 0 1/2 0 1 0 0 r = 0 25/64 27/64 12/64 152 Beispiel 1: 2 Beispiel 2: 1 0.400 0.000 0.400 0.200 3 152 4 0 1/2 1/2 0 0 0 1 0 A= 0 1/2 0 1/2 0 1 0 0 2 r = 0 2/5 2/5 1/5 0.250 0.250 0.250 3 152 1 0.250 4 0 0 0 0 1/2 0 1/2 0 A= 1/3 1/3 0 1/3 0 1 0 0 r = 1/4 1/4 1/4 1/4 153 Beispiel 2: 2 Beispiel 2: 1 0.333 0.208 0.125 0.083 3 4 0 0 0 0 1/2 0 1/2 0 A= 1/3 1/3 0 1/3 0 1 0 0 2 r = 5/24 8/24 3/24 2/24 1 0.125 0.208 0.167 0.042 3 4 0 0 0 0 1/2 0 1/2 0 A= 1/3 1/3 0 1/3 0 1 0 0 r = 5/24 3/24 4/24 1/24 153 Beispiel 2: 2 Beispiel 2: 1 0.097 0.118 0.063 0.056 3 153 4 0 0 0 0 1/2 0 1/2 0 A= 1/3 1/3 0 1/3 0 1 0 0 2 r = 17/144 7/72 1/16 1/18 153 1 0.076 0.069 0.049 0.021 3 4 0 0 0 0 1/2 0 1/2 0 A= 1/3 1/3 0 1/3 0 1 0 0 r = 5/72 11/144 7/144 1/48 153 Das Random-Surfer-Modell: Beispiel 2: 2 1 0.000 0.000 0.000 0.000 3 4 0 0 0 0 1/2 0 1/2 0 A= 1/3 1/3 0 1/3 0 1 0 0 Durch PageRank-Iteration beschriebener Prozess: • Starte an zufällig gleichverteilt gewähltem Knoten. • Iterationsschritt für Seite i: Wähle zufällig gleichverteilt einen von Seite i ausgehenden Link und verfolge diesen zu neuer Seite j. r = 0 0 0 0 Matrixeintrag ai,j gibt Wskt. für Übergang i → j an. Bisher: Kann in Knoten stecken bleiben“ (Beispiel 2). ” 153 154 Sackgassen (Forts.): Problem: Sackgassen ( Dangling Links“) ” In Beispiel 2: 1/4 1/4 1/4 1/4 0 0 0 0 1/2 0 1/2 0 → A′ = 1/2 0 1/2 0 . A = 1/3 1/3 0 1/3 1/3 1/3 0 1/3 0 1 0 0 0 1 0 0 Definition 3.14: Sackgasse: Seite ohne ausgehende Links bzw. Knoten v mit outdeg(v ) = 0. Problem ist real, Experimente: Crawls mit 40 % – 80 % Sackgassen-Knoten. Allgemein: Nullzeile → Zeile [1/n, . . . , 1/n]. Analog Änderung der Update-Regel: ( 1, falls Knoten i Sackgasse; d = [d1 , . . . , dn ]⊤ mit di = 0, sonst. Möglichkeiten für Abhilfe: • Entferne rekursiv Sackgassen (Brin, Page). • Patche Matrix der Übergangswahrscheinlichkeiten bzw. analog Update-Regel. r (t+1) = r (t) · A + r (t) · d · [1/n, . . . , 1/n]. {z } | n × n-Matrix 155 156 Das Random-Surfer-Modell (Forts.): PageRank – Vollversion: Im Folgenden: Sackgassen entfernt / in A berücksichtigt. Dann ist A stochastische Matrix: Zusätzlicher Parameter α ∈ [0, 1], Dämpfungsfaktor. Neue Update-Regel: Graph G = (V , E), n = |V |. Für v ∈ V : Definition 3.15: Matrix stochastisch, falls Einträge aus [0, 1] und Zeilensummen alle jeweils gleich 1. rv := Random-Surfer-Prozess ist Markoffkette, A ist Matrix der Übergangswahrscheinlichkeiten. X 1−α ru + α· . n outdeg(u) (u,v )∈E Random-Surfer-Modell: • Start auf zufälliger Seite. • Münze mit Aufschriften Weiter“ und Neustart“ mit ” ” Wahrscheinlichkeiten α bzw. 1 − α. – Weiter“: Wie bisher, folge zufälligem Link. ” – Neustart“: Sprung zu zufälliger Seite. ” Hätten wieder gerne: • Konvergenz gegen Grenzverteilung auf Seiten / Knoten. • Unabhängigkeit vom Startvektor. Für das einfache Verfahren nicht gegeben (später)! 157 158 Absoluter PageRank: Matrix-Vektor-Schreibweise: r (0) Benutze Initialisierung mit PageRank 1 für jede Seite: r (0) = [1, . . . , 1]. r (t) = r (t−1) · M, t ≥ 1; = [1/n, . . . , 1/n]. r (t) = r (t−1) · M, t ≥ 1; M stochastische Matrix ⇒ Für alle t ≥ 0 gilt: n n X X (t) (0) ri = ri = n. wobei M := (1 − α)E + αA, 1/n · · · 1/n .. . E := ... . i=1 i=1 Formulierung als Update-Regel: X ru , v ∈ V. rv := (1 − α) + α · outdeg(u) 1/n · · · 1/n (u,v )∈E So auch implementiert, da sonst: – sehr viele sehr kleine Wahrscheinlichkeiten; – lästige Abhängigkeit von n (→ Knotenupdates!). Für Theorie allerdings Markoffketten-Sichtweise. Beobachtung: A stochastische Matrix ⇒ M stochastische Matrix. 159 160 3.4.2 Konvergenz des PageRank-Algorithmus Der Google-Toolbar-Rang Wie HITS ist PageRank Spezialfall der Potenziteration: Toolbar-Rang: Wert aus {0, . . . , 10}, der tatsächlichen PageRank repräsentiert. r (t) = r (0) M t , t ≥ 0. Unter geeigneten Bedingungen wieder Konvergenz gegen Eigenvektor zum (reellen) größten Eigenwert von M. Benutze dafür absoluten PageRank. • Intervall für absoluten PageRank (falls 6 = 0): 1 − α (keine eingehenden Kanten) bis Proposition 3.16: Matrix M stochastisch ⇒ größter Eigenwert von M ist 1. 1 − α + α · n. Falls r ∗ (linker) Eigenvektor zum größten Eigenwert 1 von M: 1 2 ... n−1 n r ∗ = r ∗ M. • Werte aus {0, . . . , 10} gemäß logarithmischer Skala auf dieses Intervall abbilden (Basis 6 . . . 7?). • Finetuning von Hand“ (?). ” 161 Hinreichendes Kriterium für Konvergenz + Eindeutigkeit: Später: r ∗ sogar positiv wählbar. Nach Normierung, P P kr ∗ k1 = i |ri∗ | = i ri∗ = 1: Stationäre Verteilung der Markoffkette. 162 Beispiel: Markoffkette / Matrix M irreduzibel und aperiodisch. 6 1 Definition 3.17: Sei M reelle n × n-Matrix und M6=0 zugehörige Adjazenzmatrix mit 1-Einträgen genau an den Stellen, an denen M Einträge ungleich 0 hat. Betrachte durch M6=0 definierten Graphen. Für i = 1, . . . , n Periode von Knoten i: 2 3 5 4 Knoten: Periode: ti := ggT({ℓ | ∃ Kreis mit Startknoten i der Länge ℓ}). Dann heißt M aperiodisch, falls t1 = · · · = tn = 1. 1 2 3 4 5 6 2 2 2 4 4 4 Fazit: Irreduzibel, aber nicht aperiodisch. 163 164 Anwendung für Markoffketten: Satz 3.18 (Perron-Frobenius): Sei M quadratische, nichtnegative, irreduzible Matrix. Dann: • Es gibt einen positiven Eigenwert λ1 von M, der genau einmal vorkommt. • Für alle Eigenwerte λ 6 = λ1 gilt λ1 ≥ |λ|. • Es gibt einen positiven Eigenvektor zu λ1 . Stochastische Matrix M insbesondere nichtnegativ, falls zusätzlich irreduzibel und aperiodisch: 1 = λ1 > |λ2 | ≥ · · · ≥ |λn | ≥ 0. Mit Anpassung des Beweises von Satz 3.9 (hier nicht): Folgerung 3.19: Potenziteration mit stochastischer Matrix M, die irreduzibel und aperiodisch ist, konvergiert für beliebigen positiven Startvektor gegen positiven Eigenvektor r ∗ zum größten Eigenwert 1. Falls M zusätzlich aperiodisch: Für alle Eigenwerte λ 6 = λ1 gilt sogar λ1 > |λ|. Bei irreduziblem, aber nicht aperiodischem M z. B. Eigenwerte 1, −1 möglich. Dann: Potenziteration konvergiert i. A. nicht! Eigenvektor r ∗ eindeutig, wenn zusätzlich kr ∗ k1 = 165 P ∗ i ri = 1. 166 Anwendung bei PageRank: Beobachtung: Gewichtete Adjazenzmatrix A von Webcrawls ist ziemlich sicher nicht einmal irreduzibel → I. A. keine Konvergenz für einfachen PageRank-Algorithmus! Anwendung bei PageRank (Forts.): Damit haben wir insgesamt: Satz 3.21: Sei α < 1. Dann gibt es einen positiven Vektor r ∗ mit kr ∗ k1 = 1, sodass für jeden positiven Startvektor die Folge der Vektoren im PageRank-Algorithmus mit Matrix M = (1 − α)E + αA gegen r ∗ konvergiert. Proposition 3.20: Für einen Dämpfungsfaktor α < 1 ist die Matrix M = (1 − α)E + αA in der Iteration des PageRankAlgorithmus irreduzibel und aperiodisch. Beweis: Trivial, denn durch zufällige Neustarts ist jeder Knoten von jedem mit positiver Wskt. erreichbar. 167 168 Auswirkung des Dämpfungsfaktors: 3.4.3 Effizienz • Je kleiner α, desto schnellere Konvergenz! • Aber: Dann auch umso kleinerer Einfluss der Analog zur Anwendung der Potenzmethode bei HITS gilt: Konvergenzgeschwindigkeit hängt vom Verhältnis zwischen größtem Eigenwert λ1 = 1 und betragsmäßig nächst kleinerem Eigenwert λ2 von M = (1 − α)E + αA ab. realen Linkstruktur. Google: α ≈ 0,85, 50–100 Iterationen in 1998. Implementierung: • Dimension n der Matrix M entspricht Größe des Webcrawls, also gigantisch. ( The World’s Largest Matrix Computation“). ” • Matrix nicht explizit, sondern als Spalten-Adjazenzliste, um Spärlichkeit auszunutzen (siehe DAP2). • Google: PageRank ungefähr monatlich komplett neu. Satz 3.22 (Kamvar, Haveliwala 2003): Sei M = (1 − α)E + αA die Matrix im PageRank-Verfahren, sei λ2 betragsmäßig zweitgrößter Eigenwert von M. Falls A reduzibel ist, gilt λ2 = α, ansonsten |λ2 | < α. 169 170 3.4.5 PageRank-Variationen 3.4.4 Stabilität Der Personalisierungs-Vektor: Satz 3.23 (Ng, Zheng, Jordan 2001): Betrachte PageRank mit Dämpfungsfaktor α < 1. Sei r stationäre Verteilung für gegebene Adjazenzmatrix, e r stationäre Verteilung nach Löschen/Hinzufügen von irgendwelchen Links auf Seiten in S. Dann: 2 X ri . ke r − r k1 ≤ 1−α Möchte Webseiten im Ranking belohnen / bestrafen können (Yahoo! / Spammer). Erste Idee: Startvektor passend wählen. → Geht nicht! Zweite Idee: Benutze modifizierte Updates: r ′ = r · (1 − α)ev ⊤ + αA , wobei i∈S e = [1, . . . , 1]⊤ und v = [v1 , . . . , vn ]⊤ ∈ [0, 1]n mit kv k1 = 1. Änderung des PageRanks also nicht zu groß, falls • α nicht zu nahe an 1 und • PageRank-Gewicht der geänderten Seiten nicht zu groß. 171 Damit relative Wichtigkeit der Seiten einstellbar. Vektor v : Personalisierungs-Vektor. (Bisher Spezialfall v = (1/n) · e, uniforme Gewichte.) 172 Nichtuniforme Gewichtung von Links: Themenabhängiger PageRank: Bisher bei komponentenweiser Update-Regel: X ru 1−α rv′ = +α· . n outdeg(u) Arbeit: Haveliwala (2002). Vorabberechnung (analog zu üblichem PageRank): (u,v )∈E • Für jede Kategorie j des Open-Directory-Projektes Unterschiedliche Bewertung der Links auf einer Seite möglich. Benutze neue Update-Regel: X 1−α +α· ru · wu,v , rv′ = n (dmoz.de), i = 1, . . . , k : – Menge Ci der URLs direkt unterhalb dieser Kategorie. – Menge Ti der Suchbegriffe auf zugehörigen Seiten (jeweils erste Seite außerhalb des Verzeichnisses?). • Eigener PageRank für jede Kategorie: Personalisierungsvektor vi : Gleichverteilung über Ci . → PageRank-Vektor ri ∈ Rn . (u,v )∈E wobei wu,v ∈ [0, 1] und für alle u muss gelten: X wu,v = 1. (u,v )∈E 173 174 Themenabhängiger PageRank (Forts.): Basierend auf Suchanfrage q: 3.4.6 PageRank in Aktion Für i = 1, . . . , k sei pi (q) Wskt., dass Benutzer Anfrage q zu Themengebiet i gehörig ansieht. Z. B.: Definiere Plan: • Energieinterpretation des PageRank. • PageRank für Mini-Beispiele von typischen“ Netz-Topologien. ” fi (q) := relative Häufigkeit von q in Ti , pi (q) := fi (q)/(f1 (q) + · · · + fk (q)). (Uniforme Gewichtung der Themengebiete.) In diesem Unterabschnitt: Immer absoluter PageRank. Themenabhängiger PageRank: rt (q) := k X i=1 pi (q) · ri . 175 176 Energieinterpretation des PageRank Bemerkung zur Vorgehensweise: • Hier der Einfachheit halber voraussetzen, dass Standard-Algorithmus für absoluten PageRank gegen stationären PageRank-Vektor r konvergiert. Arbeit: Bianchini, Gori, Scarselli (2003). Betrachte durch Knotenmenge S ⊆ V induzierten Teilgraphen des Webgraphen G = (V , E): • Evtl. keine W-Verteilung (L1 -Norm < 1), da wir hier auch Sackgassen zulassen. • Konvergenztheorie für diesen allgemeinen Fall via lineare Gleichungssysteme (→ Ende des Unterabschnittes). S Definition 3.24: Die Energie eines Teilgraphen des Webgraphen G = (V , E) mit Knotenmenge S ⊆ V ist X rv , E(S) := Definitionen: in(S) := Knoten in V − S mit Kanten auf S; out(S) := Knoten in S mit Kanten auf V − S; sink(S) := Knoten in S mit Ausgangsgrad 0. v ∈S wobei r der gegebene (stationäre) PageRank-Vektor ist. 177 178 Beispiel 1: Satz 3.25 (Bianchini u. a. 2003): Es gilt E(S) = |S| + Ein (S) − Eout (S) − Esink (S), x1 = x2 = 1, E(S) = 2. wobei Ein (S) = Eout (S) = Esink (S) = 0. X α Ein (S) = fv · rv ; 1−α v ∈in(S) X α Eout (S) = (1 − fv ) · rv ; 1−α v ∈out(S) X α rv . Esink (S) = 1−α Beispiel 2: 1 2 x1 = 1 − α, x2 = 1 − α + α(1 − α) = 1 − α 2 . E(S) = x1 + x2 = 2 − α − α 2 . v ∈sink(S) Dabei ist fv der Anteil der Kanten von v , die auf S zeigen, bezogen auf die Gesamtanzahl ausgehender Kanten von v . Esink (S) = α · (1 − α 2 ) = α(1 + α) = α + α 2 . 1−α Ein (S) = Eout (S) = 0. 179 180 Beispiel 3: 3 Regeln für hohen PageRank: 1 2 x1 = 1 − α, x2 = 1 − α + α · 3 1 E(S) = 2 − α − α 2 . 2 2 Ein (S) = 0, Eout (S) = Ziel: Maximiere E(S). • Seitenanzahl: 1−α 1 1 = 1 − α − α2. 2 2 2 – Aufgrund des Terms +|S|“: ” Je mehr Seiten, desto mehr Gesamt-PageRank. – In der Regel allerdings überwiegt Verteilungseffekt, da das größte Gewicht von außen kommt → Beispiele. 1−α α α2 α · = , Esink (S) = α + , 1−α 2 2 2 • Sackgassen: Beispiel 4: 3 1 Leisten Beitrag −Esink (S)“. Daher möglichst vermeiden. ” • Ausgehende Kanten: Leisten Beitrag −Eout (S)“. ” Vermeide Seiten mit hohem PageRank, die viele Kanten nach außen haben. 2 x1 = 1 − α 2 , x2 = 1 − α 3 , E(S) = 2 − α 2 − α 3 . Ein (S) = α, Eout (S) = 0, Esink (S) = α + α 2 + α 3 . 181 Auswirkung der Anzahl von Seiten (1/2): 182 Auswirkung der Anzahl von Seiten (2/2): Szenario: • Quelle für konstante 10 Einheiten PageRank (Seite X“), ” für Quelle selbst keine PageRank-Berechnung. • Dämpfungsfaktor α = 3/4. 1 r2 = r3 = r4 = 70/14 = 5 1 2 r3 = 251/35 = 7.17 4 r4 = 197/35 = 5.63 r1 + r2 + r3 + r4 = 34 r1 + r2 + r3 + r4 = 34 4 r2 = 323/35 = 9.23 r1 = 266/14 = 19 X 2 r1 = 419/35 = 11.97 X 3 3 183 184 Wie rechnet man das am besten aus? Einbauen von konstanten PageRank-Quellen“: ” PageRank-Berechnung mit linearem Gleichungssystem. Hier alles für absoluten PageRank, Startvektor [1, . . . , 1]. Vektor b = [b1 , . . . , bn ]⊤ , Knoten i ∈ {1, . . . , n} erhalte Gratis-PageRank“-Beitrag bi von außen“. ” ” (1 − α)e + α(A⊤ y +b) = y bzw. Für stationären PageRank-Zeilenvektor x muss gelten: (I − αA⊤ )y = (1 − α)e + αb. x = (1 − α)e + αxA. wobei e := [1, . . . , 1]⊤ . Für erstes Beispiel (Folie 178): 10 0 1/2 1/2 0 , b= 0 → A= 1 0 0 1 0 0 31/4 1 −3/4 −3/4 ! −3/8 1 0 · y = 1/4 . 1/4 −3/8 0 1 Äquivalent: Finde Spaltenvektor y ∈ Rn mit (1 − α)e + αA⊤y = y = I · y , nach Umarrangieren: I − αA⊤ y = (1− α)· e. Also: Lineares Gleichungssystem. 186 185 3.5 Mehr zum Crawling Fazit für Abschnitte 3.3 und 3.4: HITS: • Vorteil: Kleine Matrizen. • Nachteile: – In der Grundversion anfällig für Spamming. – Stabilität evtl. schlecht. – Bei realistischen Graphen keine eindeutige Konvergenz (Ursache: mehrere starke ZKs in aus fokussiertem Graphen abgeleitetem Hilfsgraphen). PageRank: • Vorteile: – Bessere Spammingresistenz als bei HITS. – Stabilität und Konvergenzgeschwindigkeit justierbar mit Dämpfungsfaktor (!). – Eindeutige Konvergenz. • Nachteil: The World’s Largest Matrix Computation. Hier: Crawler, Spider, (Web-)Robot. Aufgabe idealisiert: BFS-Durchlauf durch Web-Graphen. Varianten: • Generische Crawler (hier). • Fokussierte Crawler: Gesteuert durch Suchanfrage → eingeschränktes Themengebiet. 187 188 Übersicht: Zu lösende Probleme: Web • Parallelisierung. Web− schnittstelle Dokument− Duplikatfilter Queue URL− extraktion • Rücksichtsvolles Verhalten (politeness policies). Repository • Crawl-Reihenfolge (→ 3.5.1). • Refresh (→ 3.5.2). • Eliminieren von Duplikaten und Beinahe-Duplikaten von Webseiten (→ 3.6). (Ca. 30 % – 40 % duplizierte Seiten im Web.) URL− Duplikatfilter URL−DB • Eliminieren von URL-Duplikaten. 190 189 Zahlen: Parallelisierung: Google in 1998: • drei Crawler auf verschiedenen Rechnern, aber zentrale Steuerung. • 300 geöffnete HTTP-Verbindungen pro Crawler; • ca. 100 Seiten/s. Unumgänglich für nichttriviale Crawls, da Webserver sehr unterschiedliche Bandbreite haben. Probleme: • Überlappung zwischen Suchbereichen; • Ausnutzen von gemeinsamen Infos für Crawlsteuerung; • Minimierung von Kommunikations-Overhead. Mercator/Altavista (Heydon, Najork 2001): • 50 Mio. Seiten / Tag, ca. 500 Seiten/s; • verteilte Berechnung mit vollständigen Crawlern. Zuweisung von Suchbereichen an Crawler: • überhaupt nicht (unabhängige Crawler); • dynamisch (zentral gesteuert); • statisch (Partitionierung). Bei statischer Partitionierung Regelung des Zugriffs von Crawlern auf fremde“ Partitionen. ” Details, Experimente: Cho, Garcia-Molina (2002). UbiCrawler (Boldi u. a. 2002): • 10 Mio. Seiten / Tag (?). • verteilte Crawler, URLs gleichmäßig verteilt mit Consistent Hashing (→ Kapitel 4). Bei aktueller Webgröße: 10 Mrd. Seiten / Jahr (!) → 322 Seiten/s erforderlich. 191 192 Rücksichtsvolles Verhalten: • Vermeide mehrfache Zugriffe auf denselben Server. • Vermeide Zugriffe in zu kurzen Abständen. 3.5.1 Steuerung der Crawl-Reihenfolge Maßnahmen: • Robots Exclusion Protocol, robots.txt. • Da Web extrem dynamisch, müssen Crawler • • → Crawle möglichst wichtige“ Seiten zuerst. ” • • regelmäßig neu gestartet werden. • Crawl niemals vollständig aktuell. • 8 Mrd. Seiten: 4 Mio. US-$ (Baeza-Yates u. a. 2005). • Spam-Problematik. – Sperren von Verzeichnissen für ausgewählte / alle Crawler. – Crawl-delay: Abstand zwischen zwei Zugriffen (Yahoo!, MSN). Feste Wartezeiten zwischen Zugriffen. Zeit t zum Herunterladen einer Seite → Warte 10t Sekunden bis zum nächsten Zugriff. Mehrere Queues zyklisch abarbeiten, Seiten eines Webservers in derselben Queue. ... 194 193 Wichtigkeitsmaße: Wichtigkeitsmaße (Forts.): • Eingangsgrad. • PageRank. Problem für einige Maße: Erfordern globale Info aus dem gesamten Webgraphen! Hier z. B. für Eingangsgrad, PageRank. • Tiefe im Website-Verzeichnisbaum. • Größte-Website-zuerst: Website besser, je mehr ungecrawlte Seiten von ihr in der Queue. • OPIC (Online Page Importance Computation): – Seiten erhalten Gewicht wie bei Pagerank. – Neu gecrawlte Seite verteilt ihr aktuelles Gewicht gleichmäßig auf ihre Nachfolger. Danach hat sie Gewicht 0. – Ranking nach absteigendem Gewicht. Lösung: Approximation auf bisher gecrawltem Teilgraphen. Z. B.: Batch-Updates, Neuberechnung nach fester Seitenanzahl. Einbau in Crawler: • Wähle Wichtigkeitsmaß. • Queue → Priority Queue, Einträge absteigend sortiert nach Wichtigkeit. Gewichtete Kombinationen der Maße möglich. 195 196 Crawler-Bewertung: Crawler-Bewertung (Forts.): Definition 3.26: Gegeben: Wichtigkeitsmaß, Wichtigkeitsschranke h. • Nenne Seite heiß, wenn sie Wichtigkeit mindestens h hat. • Güte des Crawlers: Anteil der heißen Seiten im Crawl bezogen auf die Gesamtanzahl heißer Seiten im Web. Typische Situation: 100 % ideal real zufällig Güte H heiße Seiten, T Seiten insgesamt, k Seiten gecrawlt: • Idealer Crawler: Güte 1, falls k ≥ H; sonst Güte k /H. • Zufälliger Crawler: Jede Seite mit Wskt. 1/T wählen. Erwartete Güte: k k · (H/T ) = . H T 100 % Anteil gecrawlter Seiten k /T 197 198 Najork, Wiener (2001): • Crawl über 328 Mio. Seiten, 6,1 Mrd. Links. • BFS findet früh bereits einen großen Anteil der Seiten mit hohem PageRank. Experimentelle Ergebnisse: Cho, Garcia-Molina, Page (1998): • Experimente mit statischen Daten aus Crawl des Baeza-Yates u. a. (2005): • Je ca. 3 Mio. Seiten von .cl und .gr. • Reihenfolge u. a. bezüglich: – BFS; – Eingangsgrad; – PageRank; – Größte-Website-zuerst; – OPIC. Güte bezüglich PageRank berechnet. • Gewinner: OPIC, Größte-Website-zuerst, PageRank. BFS klar anderen Reihenfolgen unterlegen. Stanford-Webs. • U.a.: Reihenfolge für Queue: – PageRank; – Eingangsgrad; – gar keine, d. h. BFS; Güte gemessen bezüglich Eingangsgrad und PageRank. PageRank erzielt in beiden Fällen (!) höchste Güte. Problem mit PageRank: Berechnung sehr aufwendig. 199 200 Szenario: 3.4.2 Refresh • Reales Web vs. lokale Kollektion (von Webseiten). • Lokale Kollektion sei C = {1, . . . , n}. Crawler haben begrenzte Ressource Gecrawlte Seiten / Zeiteinheit“. ” Wie diese auf Webseiten verteilen? • Nenne Seite in Kollektion aktuell, wenn sie mit realem Web übereinstimmt. Zwei Parameter für Güte der lokalen Kollektion C: Frische und Alter. Abhängig von betrachtetem Zeitpunkt. Auf den ersten Blick: Seiten, die sich häufiger ändern, häufiger auffrischen.“ ” Aber: Tatsächlich uniforme Verteilung oft besser und nie schlechter! • Seiten werden frisch und erhalten Alter 0, sobald sie gecrawlt wurden (Aufnahme in lokale Kollektion bzw. Aktualisierung). • Sobald Seite geändert wurde, ist sie nicht mehr frisch und fängt an, zu altern. Arbeit: Cho, Garcia-Molina (2000b). 202 201 Frische: Alter: • Frische einer Seite p zum Zeitpunkt t: • Alter einer Seite p zum Zeitpunkt t: ( 1, F (p, t) := 0, 0, falls p aktuell A(p, t) := zum Zeitpkt. t; t − Änderungszeitpunkt, sonst. falls p aktuell zum Zeitpunkt t; wenn nicht. • (Durchschnittliche) Frische der lokalen Kollektion C • (Durchschnittliches) Alter der lokalen Kollektion C zum Zeitpunkt t: F (C, t) := 1 n n X zum Zeitpunkt t: n 1X A(p, t). A(C, t) := n F (p, t). p=1 p=1 203 204 Zeitmittelwerte: Beispiel: Für einzelne Seite p: Z 1 t F (p) := lim E(F (p, t))dt, t→∞ t 0 Z 1 t A(p) := lim E(A(p, t))dt. t→∞ t 0 F (p, t) t Für komplette lokale Kollektion C = {1, . . . , n}: Z n 1 t 1X F (C) := lim F (p), E(F (C, t))dt = t→∞ t 0 n A(p, t) 1 A(C) := lim t→∞ t t Z 0 t E(A(C, t))dt = 1 n p=1 n X A(p). p=1 205 Randomisiertes Modell für Änderungen: 206 Modell für Änderungen (Forts.): Betrachte zunächst einzelne Seite. Modelliere Änderungen an Seiten 1, . . . , n in lokaler Kollektion durch Poisson-Prozesse mit Parametern λ1 , . . . , λn . Name: Änderungsraten dieser Prozesse. Annahme: Änderungszeitpunkte folgen Poisson-Prozess. Grob: Ereignisse, hier Änderungen an der Seite, unabhängig mit fester Rate: # Ereignisse pro Zeiteinheit. Hier nur Folgendes wichtig (o. Bew.): Gerechtfertigt durch Experimente. Lemma 3.27: Für Poisson-Prozess mit Rate λ > 0 ist Zeitintervall T zwischen Ereignissen exponentialverteilt mit Parameter λ, d. h. mit Dichtefunktion ( λe−λ , für t ≥ 0; fT (t) = 0, für t < 0. • Uniforme Änderungsraten: λ1 = · · · = λn = λ. • Beliebige Änderungsraten: λ1 , . . . , λn selbst wieder gemäß einer geeigneten Verteilung festgelegt (Spezialfall: fest gewählt). 207 208 Beispiel: Erwartete Frische für einzelne Seite Refresh-Ressourcen • Betrachte Seite p mit Änderungsrate λ. • Crawl der Seite zu Zeitpunkten t = 0 und t = I. Festlegung für alles Folgende: • Crawler kann n Seiten in I Zeiteinheiten crawlen Wahrscheinlichkeit für Änderung in (0, t]: Z t Z t Pr{T ≤ t} = fT (t)dt = λe−λt dt = 1 − e−λt . 0 (Wahl von I: unterschiedliche Geschwindigkeiten). • Damit rechnerisch durchschnittliche Refresh-Rate für eine Seite: 1 f := . I Allerdings: Kann Refresh-Ressourcen auch ungleichmäßig verteilen → später. 0 Seite ist frisch zum Zeitpunkt t, falls keine Änderung in (0, t]. Damit erwartete Frische: E(F (p, t)) = 0 · (1 − e−λt ) + 1 · e−λt = e−λt . Bemerkung: E(F (p, 0)) = 1 und E(F (p, t)) → 0 für t → ∞. Ähnlich für Alter. 210 209 Refresh-Reihenfolge (Forts.) Refresh-Reihenfolge • Feste Reihenfolge: Feste Liste von Webseiten, bei jedem Crawl diese Liste durchlaufen. Motivation: Crawl einer Website nach vorgegebener Sitemap. • Abhängigkeit von Frische/Alter von Refresh-Rate? • Hier zunächst uniforme Änderungsraten, λ1 = · · · = λn = λ. • Dann aber nichtuniforme Refresh-Raten auch sinnlos, also Refresh-Raten f1 = · · · = fn = f = 1/I. • Für Berechnung von Frische/Alter noch zu klären: In welcher Reihenfolge Seiten in C = {1, . . . , n} bei Auffrischung durchlaufen? • Zufällige Reihenfolge: Liste bei jedem Crawl neu zufällig wählen. Motivation: Website, deren Linkstruktur sich zwischen Crawls verändert. • Völlig zufällig: Keine Liste. Wähle immer dann, wenn Auffrischkapazität frei, zufällig gleichverteilt eine Seite und frische sie auf. Motivation: Benutzerinitiierter Refresh. 211 212 Ergebnisse für Refresh-Reihenfolge: Ergebnisse für Refresh-Reihenfolge (Forts.): Für alle drei Refresh-Reihenfolgen geschlossene Form für durchschnittliche Frische / durchschnittliches Alter. F (C) 1 0.8 feste Reihenfolge zufällige Reihenfolge völlig zufällig A(C) 1 0.8 0.6 0.6 0.4 0.4 F (C) 0 2 3 4 5 0 Änderungen einmal pro Tag, Refresh einmal pro Tag: λ = f = 1, F (C) ≈ 0,63. 0.6 0.2 1 • Frische von Kollektion: feste Reihenfolge zufällige Reihenfolge völlig zufällig 0.8 völlig zufällig zufällige Reihenfolge 0.2 1 0.4 feste Reihenfolge 1 2 r = λ/f 3 4 • Refresh-Rate zu Frische: 0.2 0 5 1 2 3 4 5 r = λ/f r = λ/f F (C) = 0,8: r = λ/f ≈ 0,46, Refresh ≥ 1/0,46 ≈ zweimal so oft wie Änderungen. Alle Funktionen links konvex, rechts konkav.. . . 213 214 Details nur für Frische und feste Reihenfolge. Hatten bereits: E(F (p, t)) = e−λt . Also: Z 1 I F (p) = E(F (p, t))dt I 0 Z 1 I −λt 1 − e−λI 1 − e−λ/f = e dt = = . I 0 λI λ/f Satz 3.28: Für das Refresh-Modell mit Änderungsrate λ für alle Seiten, Refresh-Rate f für alle Seiten und für feste RefreshReihenfolge gilt: F (C) = (1 − e−r )/r , wobei r := λ/f . Für gesamte lokale Kollektion von Seiten: Beweis: Betrachte feste Seite p ∈ C. Gemäß Definition Refresh alle I = 1/f Zeiteinheiten. Dann gilt (Übungsaufgabe): Z Z 1 t 1 I F (p) = lim E(F (p, t))dt = E(F (p, t))dt. t→∞ t 0 I 0 n 1X 1 − e−λ/f F (C) = F (p) = . n λ/f p=1 215 216 Refresh-Ressourcen-Zuordnung (Forts.) Refresh-Ressourcen-Zuordnung Problem allgemein: Änderungsraten der Seiten λ1 , . . . , λn gegeben. Refresh-Raten f1 , . . . , fn festlegen, wobei durchschnittliche Refresh-Rate f sein soll: n 1X fp = f . n Hier unterschiedliche Änderungsraten der Seiten und wir kennen die. Wie ausnutzen? Einführungsbeispiel: Kollektion C = {1, 2, 3}. Änderungsraten: λ1 = 4, λ2 = 3, λ3 = 2 (Änderungen pro Tag). p=1 Zwei Lösungen hier vergleichen: • Uniforme Zuordnung: f1 = · · · = fn = f . • Proportionale Zuordnung: Sei λ := (λ1 + · · · + λn )/n. Wähle fp := (λp /λ) · f , p = 1, . . . , n. Dann gilt für alle p: λp /fp = λ/f . (Idealisiert, für ganze Zahlen evtl. Auf-/Abrunden.) Crawler soll 9 Seiten pro Tag auffrischen können. Wie auf die Seiten verteilen? • Uniforme Zuordnung: alle Seiten dreimal pro Tag. • Proportionale Zuordnung: Je häufiger Änderung, desto öfter auffrischen: Refresh-Raten f1 = 4, f2 = 3, f3 = 2. 217 218 Für den Beweis sei F (λ∗ , f ∗ ) durchschnittliche Frische bei einheitlicher Änderungsrate λ∗ und einheitlicher Refresh-Rate f ∗ für alle Seiten. Welche Strategie für Ressourcen-Verteilung ist besser? Seien F (C)uni / F (C)prop durchschnittliche Frische für uniforme / proportionale Zuordnung. Nutze aus: Dies ist konvexe Funktion in erstem Parameter. Satz 3.29: Im Refresh-Modell mit beliebigen Änderungsraten λ1 , . . . , λn und mit fester Refresh-Reihenfolge gilt F (C)uni ≥ F (C)prop . Erfüllt für Fall feste Refresh-Reihenfolge“, dort: ” 1 − e−r F (λ∗ , f ∗ ) = , r = λ∗ /f ∗ . r Reicht: Konvexität in r , checke dazu Analoge Ergebnisse für • andere Refresh-Reihenfolgen; • Alter statt Frische. d 2 1 − e−r ! ≥ 0. r (dr )2 (Rechnung + Taylor-Reihen-Abschätzung, hier nicht.) 219 220 Für die proportionale Zuordnung: λp /fp = λ/f für alle p. Damit: Benutze: Lemma 3.30 (Jensensche Ungleichung): Für Zufallsvariable X ∈ R und konvexe Funktion f : (Konvergenz vorausgesetzt) E(f (X )) ≥ f (EX ). F (λp , fp ) = F (λ, f ); R → R gilt benutze, dass F (λ∗ , f ∗ ) nur von λ∗ /f ∗ abhängt. Es folgt: n n 1X 1X F (C)prop = F (λp , fp ) = F (λ, f ) = F (λ, f ). (∗∗) n n Beweis von Satz 3.29: Erster Schritt: Drücke F (C)uni und F (C)prop mit Hilfsfunktion F (λ∗ , f ∗ ) p=1 Zeige noch (∗) = (∗∗): n 1X F (λp , f ) (∗) = n aus. Vorgegebener durchschnittlicher Refresh sei f . Für uniforme Ressourcen-Zuordnung f1 = · · · = fn = f . Dann gilt: n n 1X 1X F (C)uni = F (λp , fp ) = F (λp , f ). n n p=1 p=1 p=1 ≥ F (∗) n 1 X n p=1 λp , f (Jensen) = F (λ, f ) = (∗∗) (Definition von λ). p=1 221 222 Beispiel: Szenario: Zwei Seiten, Änderungen pro Tag: • Seite 1: 9, jeweils gleichverteilt in (1/9)-Tag-Intervallen. • Seite 2: 1, gleichverteilt über ganzen Tag. (Kein Poisson-Prozess!) 1 Tag 1: 2: Bemerkung: Im Beweis benutzt: • F (λ∗ , f ∗ ) konvex im ersten Argument; • F (λ∗ , f ∗ ) hängt nur von λ∗ /f ∗ ab. Dies ist für F (C) und A(C) für alle behandelten Refresh-Reihenfolgen erfüllt (hier ohne Details). • Crawler kann genau eine Seite pro Tag auffrischen. • Refresh am Anfang von Intervallen. Welche Seite wählen? Intuitiv: • Auffrischung hält Hälfte der Intervalllänge. • Wähle Seite 2! 223 224 Plots für Beispiel: Beispiel, Version für Fortgeschrittene: 0.1 0.1 0.2 0.4 0.6 0.8 Jetzt mit Poisson-Änderungsmodell: C = {1, 2}, Änderungsraten λ1 = 9, λ2 = 1. 1 1 F (C) = (F (1) + F (2)) = (F (λ1 , f1 ) + F (λ2 , f2 )) 2 2 1 = (F (9, f1 ) + F (1, f2 )). 2 Wähle f1 + f2 = fS , dann Funktion z. B. von f2 . 0 0 –0.1 –0.1 –0.2 –0.2 –0.3 f1 + f2 = 1 –0.3 –0.4 –0.4 0.1 Plotte g(fS , x) − g(fS , 0.5) für verschiedene fS . . . 0 –0.1 –0.1 –0.2 –0.2 –0.4 f1 + f2 = 3 0.2 0.4 0.6 0.8 1 0 –0.3 1 0.1 0.2 0.4 0.6 0.8 Z. B. für feste Refresh-Reihenfolge: Für x ∈ [0, 1]: 1 1 − e−9/(fS ·(1−x)) 1 − e−1/fS x g(fS , x) = . + 2 fS · (1 − x) fS x 0.2 0.4 0.6 0.8 1 f1 + f2 = 10 –0.3 –0.4 1 f1 + f2 = 100 226 225 Optimale Auffrischraten Beobachtungen: Für gegebene Änderungsraten λ1 , . . . , λn und fS : opt opt opt opt Kann f1 , . . . , fn mit f1 + · · · + fn = fS ausrechnen, • Frische für proportionale Zuordnung (tatsächlich) immer unter der für uniforme Zuordnung. • Proportionale Zuordnung besonders schlecht, wenn geringe Crawlingkapazität dafür verschwendet“ wird, ” mit sich schnell ändernden Seiten Schritt zu halten. • Optimaler Frischewert weder für proportionale noch für uniforme Zuordnung, sondern für etwas dazwischen. sodass erwartete Frische F (C) maximal. (Wie? → Originalarbeit) Erstaunlich übersichtliches Ergebnis: opt Paare (λi , fi ), i = 1, . . . , n liegen auf Kurve, die bis auf Skalierung immer gleich aussieht. Für geeignetes µ ∈ [0, 1] Kurve bestimmt durch Gleichung ∂ F (λ∗ , f ∗ ) = µ. ∗ ∂λ 227 228 Experimente (Cho, Garcia-Molina 2000b, 2003b): Optimale Lösung für Beispiel: 7 • 270 Websites, je ca. 3000 Seiten, insges. 720.000 Seiten. • Besuch dieser Seiten einmal pro Tag → 6 Verifikation Poisson-Prozess, Schätzung für Änderungsraten. 5 Für experimentelle Verteilung der Änderungsraten, hypothetischen Crawler für Index mit 1 Mio. Seiten, durchschnittliche Auffrischrate 1 Monat: alles: .com: .gov: Frische: Alter: Frische: Alter: Frische: Alter: Prop.: 0.12 400 d 0.07 386 d 0.69 19.3 d Unif.: 0.57 5.6 d 0.38 8.5 d 0.82 2.0 d Opt.: 0.62 4.3 d 0.44 7.4 d 0.85 1.3 d 4 3 5 10 15 20 opt Mit µ Kurve so skalieren, dass f1 Hier: opt f2 = 6,89, opt f2 = 3,11. opt + · · · + fn = fS . 229 230 3.6 Duplikatfilterung Zusammenfassung Abschnitt 3.4: Steuerung der Crawl-Reihenfolge: • Wichtigkeitsmaße, um Crawler-Queue zu sortieren und Crawl-Qualität zu messen. • PageRank, OPIC, Größte-Website-zuerst schneiden in Experimenten am besten ab. Das Problem: Gegeben sei Kollektion von gespeicherten“ ” Dokumenten C = {T1 , . . . , Tn } und neu entdecktes“ ” Dokument T . Fragen: • Ist T bereits in C enthalten? • Allgemeiner: Gibt es in C zu T ähnliches Dokument? Refresh: • Modell für Seitenänderungen als Poisson-Prozesse. • Verschiedene (idealisierte) Refresh-Reihenfolgen: am besten Refresh in gleichmäßigen Abständen (feste Refresh-Reihenfolge). • Refresh-Ressourcen-Zuordnung: Uniform nicht schlechter als proportional, optimale Strategie kann theoretisch ermittelt werden. Anwendungen: Crawling, Spam-Entdeckung, Auffinden von Clustern. Problem bekannt aus der Bioinformatik. (Vergleiche neue Gensequenz mit Gendatenbank usw.) 231 232 Ähnlichkeitsmaße Seien x, y ∈ 6 ∗ , x = (x1 , . . . , xm ), y = (y1 , . . . , yn ). • Hammingabstand (bitweiser bzw. wortweiser Vergleich): Für x, y gleich lang, d. h. m = n: Anwendung auf Problem: Naiver Ansatz: Direkter Vergleich mit allen Dokumenten. Falls alle Dokumente mit Länge n: • Zeitaufwand je Vergleich T ↔ Ti mindestens linear in n. m=n Dynamische Programmierung für ED: 2(mn) = 2(n2 ). • Vergleich mit allen Dokumenten 2(|C| · n). dH (x, y ) := |{i | xi 6 = yi }|. • Editierabstand (Levenshtein-Abstand):. – Operationen: Einfügen, Löschen, Ersetzen von Buchstaben aus 6. – Editierabstand ED(x, y ) ist minimale Anzahl Operationen, die x in y transformiert. |C| = 1010 , n = 103 Wörter → zu viel! Idee für Abhilfe: • Jaccard-Koeffizient: Vergleiche Hashwerte von Dokumenten. X := {x1 , . . . , xm }, Y := {y1 , . . . , yn }, X ∪ Y 6 = ∅: |X ∩ Y | J(X , Y ) := . |X ∪ Y | 234 233 Hashingbasierter Dokumentvergleich Hashingbasierter Dokumentvergleich (Forts.) • Extrahiere für Vergleich relevante Features: Dokument → Menge / Vektor, Eintrag für Vorhandensein / Gewicht des jeweiligen Features. Beispiele: – Trivialer Ansatz: vorkommende (Stich-)Wörter. – Gewichtsvektor mit TF-IDF-Werten. Dokument T 7 → Menge / Vektor FT . • Hashing: FT 7 → Hashwert h(FT ) ∈ M, M klein“. ” • Vergleich: Für Dokumente T1 , T2 nur testen, ob h(FT1 ) = h(FT2 ). • Statt mindestens linearer Zeit in Dokumentlänge / Featureanzahl nur noch lineare Zeit in Bitlänge der Hashwerte (bei geeigneter Hashfunktion). • Preis: Kollisionen. Verschiedene Dokumente mit gleichen Hashwerten (False Positives). • Je nach Vorgehensweise auch ähnliche Dokumente, die nicht entlarvt werden (False Negatives). Wesentliche Frage: Geeignete Hashfunktionen? 235 236 3.6.1 Fingerabdruckmethode von Rabin Satz 3.31: Sei Menge S von Elementen aus U = {0, . . . , n − 1} abzuspeichern. Dann gilt für x, y ∈ U: • x = y : hp (x) = hp (y ). Arbeit: Rabin (1981). Zunächst einfachere Variante. Aufgabe: Elemente aus großem“ Universum ” U = {0, . . . , n − 1} vergleichen. |S| • x 6 = y : Prp {hp (x) = hp (y )} ≤ · ⌈log n⌉ / m. 2 Vorgehensweise: • Wähle p aus ersten m Primzahlen zufällig gleichverteilt → Abbildung hp : {0, . . . , n − 1} → {0, . . . , p − 1}: Also: • Keine False Negatives. • Für m = O (1/ε)|S|2 log n Wskt. für False Positives durch ε > 0 beschränkt. hp (x) := x mod p. Typischerweise m ≪ n. • Speichere anstatt Wert x ∈ U nur hp (x). ? • Test x = y“: Vergleiche hp (x) und hp (y ). ” 237 Der richtige“ Rabin-Algorithmus: ” Beweis: Fall x = y: Dann gilt für alle p: Nachteil der vorhergehenden Methode: Division durch p. hp (x) = x mod p = y mod p = hp (y ). Rabin-Fingerabdrücke: • Universum U = {0, . . . , n − 1}, n = 2k . Identifizieren mit Körper Fn . Hashwerte aus Körper Fm , m = 2ℓ ≪ n. • Wähle zufällig irreduzibles Polynom p über F2 vom Grad ℓ. • Für x ∈ U = Fn : hp (x) := x mod p. Fall x 6 = y: • Jedes z ∈ {0, . . . , n − 1} hat höchstens ⌈log n⌉ Primteiler: z = p1 • · · · • pk , p1 , . . . , pk ≥ 2. • Seien x, y ∈ U mit x 6 = y und hp (x) = hp (y ), d. h., x ≡ y mod p ⇔ (x − y ) mod p. Also p teilt |x − y |. Wskt. dafür höchstens ⌈log n⌉ /m. • Insgesamt |S| Elemente gespeichert: Wskt., dass einer von |S| 2 möglichen Tests fehlschlägt: ≤ |S| 2 · ⌈log n⌉ /m (Vereinigungsschranke). 238 Ergebnisse (ohne Beweis): • Analyse liefert Aussage analog zu Satz 3.31: Fehlerwskt. O |S|2 (log n)/m . • Hashwerte berechenbar mit 2(ℓ) Bitoperationen. 239 240 Shingling: Beispiel: 3.6.2 Min-Hashing spam spam spam lovely spam wonderful spam lovely spam Arbeit: Broder (1998). spam spam spam spam spam lovely lovely spam spam wonderful wonderful spam spam lovely lovely spam Überblick: • Spezielle Berechnung von Dokument-Features: Shingling (shingle: Dachziegel). • Jaccard-Koeffizient von Shingle-Mengen. • Shingle-Mengen → Hashwerte, die Approximation des Jaccard-Koeffizienten erlauben. Shingle-Menge: { spam spam, spam lovely, lovely spam, spam wonderful, wonderful spam}. 241 Shingling (Forts.): 242 Ähnlichkeitsmaß: Definition 3.32: k -Shingle Für Dokument T = (w1 , . . . , wn ) heißen Wortfolgen (wi , . . . , wi+k−1 ), i = 1, . . . , n − k + 1, k -Shingles von T . Sei Sk (T ) Menge aller k -Shingles von T . Definition 3.33: Für Dokumente A, B: r (A, B) := J(Sk (A), Sk (B)) = Im Spam-Beispiel k = 2. |Sk (A) ∩ Sk (B)| . |Sk (A) ∪ Sk (B)| Idealerweise dies berechnen. Allerdings Universum der Shingle-Mengen viel zu groß. Welches k wählen? • Für zu kleine k zu viele Dokumente mit selber Shingle-Menge. • Für zu große k zu wenig Kompression. Experimente: k = 5 . . . 10. • Erste Idee: Shingles → Rabin-Fingerabdrücke. • Allerdings: # Shingles ≈ Anzahl Wörter im Dokument. 243 244 Beweis: Fixiere einstweilen π . Min-Hashing – idealer Algorithmus: 1. Behauptung: y = min(π(A)) ∧ y = min(π(B)) ⇔ y = min(π(A ∪ B)) ∧ x := π −1 (y ) ∈ A ∩ B. Betrachte Teilmengen von U = {0, . . . , n − 1} (z. B. Shingle-Mengen). Diese abbilden auf Hashwert: • Wähle Permutation π ∈ Sn zufällig gleichverteilt. • Hashfunktion hπ : U → U: Beweis der 1. Behauptung: ⇐“: ” Sei x ∈ A ∩ B. Dann y = π(x) ∈ π(A ∩ B) = π(A) ∩ π(B). y = min(π(A ∪ B)) ⇒ y = min(π(A)) ∧ y = min(π(B)). Für Menge A ⊆ U: hπ (A) := min(π(A)). Satz 3.34: Für beliebige Mengen A, B ⊆ U: Prπ {hπ (A) = hπ (B)} = J(A, B) = ⇒“: Sei y wie auf der linken Seite angegeben. ” Dann insbes. y ∈ π(A) und y ∈ π(B), also y ∈ π(A ∩ B). min(π(A ∪ B)) ≤ y klar, auch nicht kleiner, da sonst z. B. min(π(A ∪ B)) = π(x) < y mit x ∈ A. Widerspruch. (1. Beh.) |A ∩ B| . |A ∪ B| 245 2. Behauptung: Für beliebige S ⊆ {0, . . . , n − 1} und x ∈ S: 1 Prπ {min(π(S)) = π(x)} = . |S| Gemäß 2. Behauptung ist π −1 min(π(A ∪ B)) Beweis der 2. Behauptung: (|S| − 1)! Möglichkeiten, Elemente in π(S) so anzuordnen, dass min(π(S)) = π(x). |S|! Möglichkeiten insgesamt: Prπ {min(π(S)) = π(x)} = 246 über A ∪ B gleichverteilte Zufallsvariable. Gemäß 1. Behauptung gilt π −1 min(π(A ∪ B)) ∈ A ∩ B 1 (|S| − 1)! = . |S|! |S| genau dann, wenn min(π(A)) = min(π(B)). (Genaue Abbildung der Elemente auf Positionen irrelevant, da Anzahlen im Zähler und Nenner bei Wskt.) (2. Beh.) 247 248 Verbesserung der Fehlerwahrscheinlichkeit: Algorithmus R ABIN -M IN -H ASHING: Berechne Hashwerte h1 (T ), . . . , hr (T ) für unabhängige p1 , . . . , pr in Rabin-Fingerabdrücken. → (h1 (T1 ), . . . , hr (T )) als kompakte Beschreibung von T , nenne dies Skizze (sketch) von T . Wähle p zufällig für Rabin-Fingerabdrücke. Für jedes Dokument T = (w1 , . . . , wn ): 1 Berechne Shingle-Menge Sk (T ) = {s1 , . . . , sn−k+1 }. 2 Berechne Menge der Rabin-Fingerabdrücke: H := {hp (s1 ), . . . , hp (sn−k+1 )}. 3 Speichere h(T ) := min(H) als Hashwert für T . Super-Shingles: • Fasse je r /r ′ Hashwerte zu neuem Bitvektor zusammen. • Berechne für diese Bitvektoren wieder Rabin-Fingerabdrücke. → Skizzen aus r ′ Hashwerten. Hoffnung dabei: Für “typische“ Daten verhält sich hp wie Abbildung U → M (M Hashwertebereich) + zufällige Permutation auf M. Vgl. normales“ Hashing. Hoffnung durch Theorie für ” zufällige Mengen bestätigt (siehe später). Typische Zahlenwerte (Henzinger 2006): Rabin-Fingerabdrücke mit 64 Bits, r = 84, r ′ = 6. → Skizzen aus 48 Bytes. 249 250 Definition 3.35: Klasse H von Permutationen U → U heißt Min-Hashklasse, wenn für alle S ⊆ U und alle x ∈ S gilt: Min-Hashklassen Hoffnung auf gutes Verhalten bei Rabin-Min-Hashing evtl. gefährlich / unbefriedigend. Prπ∈H {min(π(S)) = π(x)} = Wollen eigentlich: • Zufällige Wahl der Hashfunktion wie gehabt aus kleiner Teilklasse aller möglichen Funktionen (→ Effizienz!). • Über Eigenschaft der Klasse sicherstellen, dass trotzdem Satz 3.34 genauso funktioniert wie für völlig zufällige Permutationen. (Vgl. universelles Hashing für klassische“ ” Hashing-Anwendungen, später ausführlicher.) 1 , |S| dabei π ∈ H zufällig gleichverteilt gewählt. Beweis von Satz 3.34 ⇒ Kann zufällige beliebige Permutation durch zufällige Permutation aus Min-Hashklasse ersetzen, Satz bleibt gültig. Problem: Solche Min-Hashklassen sind notwendigerweise sehr groß. Geht das überhaupt? 251 252 Aufgeweichte Min-Hash-Klassendefinition – ε-approximative Min-Hashklassen: Satz 3.36: Sei Klasse H Min-Hashklasse über Universum mit n Elementen. Dann ist |H | = 2(n) . Anforderung für Wsktn. in der Definition nur bis auf einen Fehler von ε/|S|. Brauche also (n) Bits, um Hashfunktion zu spezifizieren. • Führt zu relativem Fehler von ε bei Ähnlichkeitswerten. • Rabin-Min-Hashing korrespondiert zu ε-approximativer Beweis: Betrachte S ⊆ U mit |S| ∈ {1, . . . , n}. Gemäß Definition für x ∈ S: Prπ∈H {min(π(S)) = π(x)} = |{π | π ∈ H , min(π(S)) = π(x)}| / |H | = Also |H |/|S| ∈ Z, d. h., |S| teilt |H |. Gilt für alle |S| ∈ {1, . . . , n} ⇒ |H | ≥ kgV(1, 2, . . . , n). Zahlentheorie ⇒ kgV(1, 2, . . . , n) ≥ en−o(n) . Min-Hashklasse, aber ε = 2(log n) möglich. Für zufällige Mengen ε = O(1). (Broder, Charikar, Frieze, Mitzenmacher 1998). • Effizient realisierbare ε-approximative Min-Hashklassen mit nO(log(1/ε)) Funktionen existieren, d. h., es reichen O(log(1/ε) · log n) Bits für Funktionsbeschreibung. (Indyk 1999). 1 . |S| 254 253 Hashing durch randomisierte Projektionen Wähle r ∈ Rd zufällig auf Einheitssphäre (siehe unten). Berechnung der Hashwerte für Vektoren v1 , . . . , vn ∈ Rd : ( 1, r ⊤ vi ≥ 0; hr (vi ) := [r ⊤ vi ≥ 0] = i = 1, . . . , n. 0, r ⊤ vi < 0; 3.6.3 Randomisierte Projektionen Arbeit: Charikar (2002). Wie r zufällig wählen? Wähle zunächst r0 ∈ Rd : • Komponenten unabhängig; 0.16 • jeweils standardnormalverteilt, d. h. 0.12 0.08 Erwartungswert 0 und Varianz 1, Dichte: 0.04 Hier: Dokument T durch Feature-Vektor v ∈ Rd beschreiben, z. B. TF-IDF-Gewichte für Schlüsselwörter. Zunächst wieder idealisierte Variante. . . 2 1 f (t) = √ e−t /2 ; 2π 0 –2 –2 y 0 2 2 0 x Dann r := kr0 k2 gewünschter Zufallsvektor. Fakt: Vektor r gleichverteilt auf Einheitssphäre in Rd , inbesondere invariant unter Drehungen (ohne Beweis). 255 256 Beweis: Drehe Koordinatensystem so, dass v , w in einer Ebene liegen. Ändert r ⊤ v , r ⊤ w nicht und wg. Rotationsinvarianz danach r mit derselben Verteilung. Betrachte Projektion in v -w -Ebene. Satz 3.37: Für v , w ∈ Rd sei αv ,w Winkel zwischen v und w . Dann gilt: αv ,w Prr {hr (v )) = hr (w )} = 1 − . π Wollen: Prr {sgn(r ⊤ v ) = sgn(r ⊤ w )} = 1 − αv ,w /π . Anwendungen: w r • Approximation des Kosinusmaßes für Vektorähnlichkeit. • Falls v , w ∈ {0, 1}d charakteristische Vektoren von Hyperebene H. • Vorzeichen von r ⊤ v , r ⊤ w gleich ⇔ v , w auf derselben Seite von H. v • Passende Ebenen außerhalb des roten Bereichs“, der Winkel 2αv ,w ” abdeckt. • Wskt. für Ebene außerhalb: 1 − (2αv ,w )/2π = 1 − αv ,w /π . H Mengen: cos(αv ,w ) = • Vektor r Normalenvektor von |v ∩ w | hv , wi . =√ kv k2 kw k2 |v ||w | Alternative zum Jaccard-Koeffizienten für Mengenähnlichkeit. 257 258 Algorithmus S IM H ASH • Betrachte Dokumente mit Features i = 1, . . . , d. • Wähle für jedes Feature i Vektor Zi ∈ {−1, 1}k Hashing mit randomisierten Projektionen – praktische Variante zufällig gleichverteilt. Berechnung des Hashwertes für Dokument T : Approximation der randomisierte Projektionen: • Ersetze Zufallsvektor r ∈ Rd mit standardnormalverteilten Komponenten durch Zufallsvektor aus {−1, 1}d . • Mehrere Kopien (im Folgenden k ), um Wahrscheinlichkeit für gute Approximation zu erhöhen. • Berechne abhängig von T Gewichtsvektor w = [w1 , . . . , wd ] ∈ Rd für Features. P • Berechne s := di=1 wi · Xi ∈ Rk . • h(T ) := ([s1 ≥ 0], . . . , [sk ≥ 0]) ∈ {0, 1}k . • return h(T ). Maß für Ähnlichkeit von T1 und T2 : k 1X [h(T1 )i = h(T2 )i ]. sim(T1 , T2 ) := k i=1 259 260 Experimente (Henzinger 2006): Variante des Verfahrens: Alles wie gehabt, jedoch: 1 • h(T ) := √ [s1 , . . . , sk ]⊤ ∈ Rk . k • sim′ (T1 , T2 ) := k X i=1 Vergleich von Min-Hashing und SimHash. In beiden Fällen HTML-Dokumente vorher in Token-String zerlegt. h(T1 )i · h(T2 )i . • Min-Hashing: Rabin-Fingerabdrücke mit 64 Bits, Shingle-Größe k = 8, r = 84 unabhängige Hashfunktionen, r ′ = 6 Super-Shingles. Insgesamt Skizzen aus 48 Bytes. Dokumente ähnlich, falls mindestens 2 identische Super-Shingles. Satz (ohne Beweis): Für ε, δ > 0 und k = 2 (log d) · δ/ε 2 (bez. d → ∞) gilt für alle Dokumente T1 , T2 mit Gewichtsvektoren v , w ∈ Rd mit Wahrscheinlichkeit 1 − O(1/d δ ): |sim′ (T1 , T2 ) − cos(αv ,w )| ≤ ε · | cos(αv ,w )|, • SimHash: Hashwerte k = 384 Bits, also auch 48 Bytes. Dokumente ähnlich, falls mindestens 372 Bits übereinstimmen. d. h., relativer Fehler bei Approximation des Kosinus ist ε. 262 261 3.7 Sampling von Webseiten Experimente (Forts.): Problem grob: • Auswertung von Google-Crawl mit 1,6 Mrd. Webseiten. • 20 – 30 % Seiten mit exakten Duplikaten vorab entfernt. Zufällig gleichverteilte Auswahl einer Webseite • aus dem Web oder • aus dem Index einer Suchmaschine. • Danach noch 1,7 – 2,2 % Seiten mit ähnlichen Pendants (Schwellwert für SimHash so justiert, dass beide Algos etwa gleich). • Genauigkeit durch Inspektion von Stichproben ausgewertet (False Negatives & False Positives). Welches Web“ ist gemeint? ” • von Suchmaschinen indizierbares Web; • im Wesentlichen Komponenten MAX-SCC und OUT. Ergebnis (Min-Hashing / SimHash): • Beide Verfahren schlecht für Ähnlichkeiten von Seiten von derselben Website: 34 % / 37 %. • Bei verschiedenen Websites: 38 % / 50 %. Randbedingung: Keine internen Infos von Suchmaschinen-Betreibern. 263 264 Wie macht man’s? Motivation: Schweres Problem: • Zugriff auf Suchmaschinen nur über Benutzerschnittstelle. • Zugriff auf das Web: Gleiche Probleme wie beim Crawling. (Was kann man überhaupt ohne vollständigen Crawl tun?) • Relative Größe von Suchmaschinen-Indexen: → Suchmaschinen-Kriege“. ” Mit zusätzlichen absoluten Zahlen zur Indexgröße auch absolute Größe des indizierten Webs. • Qualität von Suchmaschinen-Indexen: – Anteil Spam; – durchschnittliche Frische. • Statistiken über – Verteilung von Top-Level-Domains; – Sprachen; – ... Ansätze: • Anfragebasiertes Sampling: Typischerweise für Sampling von Suchmaschinen-Index. Bharat und Broder (1998) • Random Walks: Typischerweise für Sampling aus gesamtem Web. Henzinger (2000), Bar-Yossef u. a. (2000). Fortgeschrittene Techniken: Bar-Yossef u. a. (2006). 266 265 3.7.1 Anfragebasiertes Sampling Verfahren von Bharat und Broder (1998): Anwendung: Größe von Suchmaschinen-Indexen vergleichen Sampling aus Suchmaschinen-Index. • Lexikon mit Suchbegriffen (konkret: 400.000 Wörter aus Yahoo!-Crawl). Relative Häufigkeiten der Begriffe im Lexikon bestimmen. • Zufällige Anfrage anhand von Häufigkeitsverteilung. Anfragen mit niedriger und hoher Häufigkeit kombinieren. Ziel: Möglichst kleine, nichtleere Ergebnismengen (→ Unterscheidung von Suchmaschinen). • Aus Ergebnismenge der Suchmaschine zufällig gleichverteilt unter ersten k Ergebnissen Seite wählen (konkret: k = 100). Zwei Operationen: • Sampling: Seite gleichverteilt aus Index wählen. • Checking: Teste, ob vorgegebene Seite p im Index. Beides anfragebasiert approximativ realisierbar. Eingeschränkte Version der zweiten Operation evtl. sogar per Suchmaschinen-Schnittstelle, z. B. site: bei Google für Websites. 267 268 Anwendung: Größe von Suchmaschinen-Indexen vergleichen (Forts.) Experimente (Gulli und Signorini 2005): Einige Ergebnisse: Vergleich von Suchmaschinen-Indexen S1 , S2 : • Relative Größen: • Bestimme approximativ Google / Yahoo!: Google / MSN: Google / Ask/Teoma: Pr{P ∈ S2 | P ∈ S1 }, Pr{P ∈ S1 | P ∈ S2 }. Overlap zwischen den Suchmaschinen. Dazu: 1,22 1,41 1,65 • Overlap: – Sample Seite aus Index S1 ; checke, ob sie in S2 . – Sample Seite aus Index S2 ; checke, ob sie in S1 . – – – – • Es gilt: Pr{P ∈ S1 | P ∈ S2 } Pr{P ∈ S1 } = . Pr{P ∈ S2 | P ∈ S1 } Pr{P ∈ S2 } Google indiziert durchschnittlich 68,2 % aller anderen; MSN 49,2 %; Ask/Teoma 43,5 %; und Yahoo! 59,1 %. Relative Größe der Indexe. 269 Probleme: 270 Anfragepoolbasierter Sampler von Bar-Yossef u. a. (2006): • Ungleichgewicht durch Anfragen: Sampling aus Suchmaschinen-Index. • Sampling von Webseiten gemäß nichtuniformer Verteilung. • Schätzung w (p) für Gewicht von Seite p gemäß dieser Verteilung. • Gewichte Wskt. für Sample p proportional zu 1/w (p) → Gleichverteilung. Umfangreiche Dokumente viel häufiger (z. B. Wörterbücher). • Ungleichgewicht durch Ranking: Seiten mit sehr kleinem Rank werden nie ausgewählt. (Suchmaschinen zeigen die evtl. gar nicht an.) • Gutes Lexikon schwer beschaffbar: Soll repräsentativ sein für ganzes Web (zumindest für alle Suchmaschinen). Wie geht das genau? 271 272 Rejection-Sampling Rejection-Sampling (Forts.) Elemente aus endlichem Universum U. • Gegeben: Prozedur, die Samples gemäß Sample-Verteilung p : U → [0, 1] liefert. • Will: Samples gemäß Zielverteilung q : U → [0, 1]. Verlange für alle x ∈ U: q(x) > 0 ⇒ p(x) > 0. Wähle weiterhin Konstante C > 0, sodass: b(x) q C ≥ max . p (x) x∈U b Algorithmus R EJECTION S AMPLING : forever do Dabei unvollständige Information: • p(x) = p b(x)/p0 für alle x ∈ U; • q(x) = q b(x)/q0 für alle x ∈ U; p0 , q0 unbekannte Normalisierungskonstanten. 1 Wähle X ∈ U gemäß Verteilung p. 2 Wirf Münze mit Wskt. b(X ) q für Kopf“. ” C ·b p (X ) if Ergebnis Kopf“ then akzeptiere X ; break fi ” od. 3 Z. B. Zielverteilung q Gleichverteilung über alle Webseiten: b(x)/q0 mit q b(x) = 1 für alle x und q(x) = q q0 = Anzahl aller Seiten (unbekannt). Erste Beobachtung: C sorgt dafür, dass α ≤ 1. 274 273 Rejection-Sampling (Forts.) Satz 3.38: Die Wahrscheinlichkeit für die Ausgabe x ∈ U im Algorithmus Rejection-Sampling ist q(x). Proposition 3.39: Die erwartete Anzahl Schritte, bis beim RejectionSampling ein Sample erzeugt wird, beträgt C · p0 /q0 ≥ maxx∈U q(x)/p(x). Beweis: Dies ist die Wskt., dass x gemäß p generiert wird, unter der Bedingung, dass x akzeptiert wird, d. h. Bezahle also für große Abweichungen zwischen Sample- und Ziel-Verteilung und für zu groß gewähltes C. Beweis: Die Wahrscheinlichkeit für den Abbruch der Schleife beträgt X X b(x) q q0 q(x) α := p(x) · = p(x) · Cb p (x) Cp0 p(x) x∈U x∈U X q0 q(x) q0 = = . Cp0 Cp0 b(x) q Pr{X = x ∧ X akz.} b(x) C ·p = X b(y) q Pr{X akz.} p(y ) · C ·b p (y) p(x) · y q0 · q(x) p(x) · C · p0 · p(x) = X q0 · q(y) p(y ) · y C · p0 · p(y) q(x) = q(x). = X q(y ) y x∈U 275 Der Erwartungswert der Anzahl Schleifendurchläufe ist damit (geometrische Verteilung) gerade 1/α = Cp0 /q0 . 276 Anfragepoolbasierter Sampler (Forts.): Algorithmus A NFRAGEPOOLBASIERTER S AMPLER: • Pool P von Suchanfragen (wie bei Bharat & Broder). • Sei D Menge von Dokumenten, die für irgendeine forever do 1 Ziehe zufälliges Dokument D mit M ATCH -D ISTRIBUTION -S AMPLER. 2 Berechne Gewicht W := numMatchesP (D). 3 Wirf Münze mit Wskt. 1/W für Kopf“. ” if Ergebnis Kopf“ then Ausgabe D und Ende fi. ” od Suchanfrage aus P von Suchmaschine geliefert werden. • Für Dokument d ∈ D sei numMatchesP (d) Anzahl Anfragen in P , die für d passend sind. Modul M ATCH -D ISTRIBUTION -S AMPLER: Liefert zufälliges Dokument D ∈ D mit Pr{D = d} = numMatchesP (d)/N, wobei N ∈ N unbekannte Normalisierungskonstante. Bemerkung: Gewicht W ohne Insider-Kenntnisse über Suchmaschine, sogar ganz ohne diese, berechenbar. Kann nur approximativ realisiert werden, mit einigen weiteren Tricks (u. A. Anfragen zufällig erzeugen mit Rejection-Sampling). Hier nicht. 277 278 3.7.2 Random-Walk-basiertes Sampling PageRank-Sampling (Henzinger u. a. 2000): Analyse: • Grundidee: Simuliere Random-Surfer-Prozess: Rejection-Sampling mit folgenden Parametern: • Gewicht numMatchesP (d) → p b(d). • Für unnormalisierte Zielverteilug: q b(d) = 1. • Es gilt maxd q b(d)/b p (d) = maxx 1/b p (d) ≤ 1 → kann C := 1 wählen. Damit liefert Satz 3.38, dass Ergebnissample gleichverteilt bei idealem M ATCH -D ISTRIBUTION -S AMPLER. – Start an festem Knoten oder zufällig. – Weiter entweder entlang zufälliger Kante oder Neustart an zufälligem Knoten. • Wissen: Konvergiert gegen stationäre Verteilung – nämlich den PageRank. Probleme: • Falsche Verteilung – Lösung: Rejection-Sampling. Genaue Details: Übungsaufgabe. • Zufällige Neustarts? • Wie PageRank berechnen? 279 280 PageRank-Sampling (Forts.): WebWalker (Bar-Yossef u. a. 2000) Zufällige Neustarts: Abhilfe: Starte bei zufällig gleichverteiltem Knoten aus bisherigem Random Walk neu. Idee: Konvergenztheorie für Markoffketten: • Graph ungerichtet, nicht bipartit, zusammenhängend ⇒ Konvergenz gegen von Startverteilung unabhängige stationäre Verteilung π . PageRank-Approximation: • Approximiere PR(p) durch Besuchsrate VRℓ (p) := Nicht bipartit ⇒ aperiodisch (Übungsaufgabe). Behauptung dann aus Perron-Frobenius-Theorem. # Besuche von Seite p in Random Walk . Länge ℓ des Random Walks • Graph zudem d-regulär, d. h. jeder Knoten mit ℓ→∞ E VRℓ (p) → PR(p), aber evtl. schlecht für kleine ℓ. genau d Nachbarn: Dann ist π Gleichverteilung. • Wie bei Crawlsteuerung PageRank auf bereits Beweis: Dies ist Eigenvektor zum Eigenwert 1. erforschtem Teil des Webgraphen berechnen. Aber: Webgraph gerichtet und alles andere als regulär!? • Google-Toolbar-Rank benutzen. 281 Jetzt die wirklich gute Idee: Verwaltete gepatchte Version des Webgraphen, die Anforderungen erfüllt und benutze diese für Steuerung des Random Walks. 282 Algorithmus W EB WALKER: Verwalte Graph Gt = (Vt , Et ) für t-ten Schritt des Walks. Zu Anfang: V0 := E0 := ∅, t := 1, aktueller Knoten irgendein geeigneter Startknoten. • Gerichtet → ungerichtet: Schritt t ≥ 1, aktueller Knoten sei v . Falls Knoten v neu entdeckt: • Vt := Vt−1 ∪ {v }. • Et : Füge folgende Kanten ungerichtet zu Et−1 hinzu: – v hat Grad d ′ < d: d − d ′ Schleifen für v ; – alle ausgehenden Kanten von v ; – zufällig ausgewählte r eingehende Kanten von v . Wähle neuen aktuellen Knoten zufällig gleichverteilt aus Nachbarn von v in Gt = (Vt , Et ). Bei Schritt des Walks von Knoten aus Vorwärts- und Rückwärtskanten benutzen. Rückwärtskanten von Suchmaschinen beschaffen (link:). Problem: Liefert nur ein Bruchteil der realen Kantenmenge. Ungelöst, muss mit Approximation leben. • Regularität: Für große Konstante d, z. B. d = 10.000.000: Falls Knoten d ′ < d Nachbarn hat, ergänze d − d ′ Schleifen. 283 284 Analyse: Beachte: Zwei Arten von Zufallsentscheidungen: • Zufällige Fixierung der Nachbarschaft für Knoten. • Zufällige Auswahl der jeweils begangenen Kante. Kommentare: • Schleifen müssen nicht wirklich durchlaufen werden: Falls Grad d ′ , d. h. d − d ′ Schleifen: Annahmen im Folgenden: • Realer Webgraph statisch; • vorkommende Graphen für Walk nicht bipartit. Pr{ℓ Schleifendurchläufe} = (1 − d ′ /d)ℓ · (d ′ /d). Offline simulieren oder direkt Erwartungswert einsetzen. • Zufällige Auswahl der eingehenden Kanten: Satz 3.40: Für beliebigen Startknotens v0 konvergiert der von WebWalker generierte Random Walk gegen die Gleichverteilung auf der Vereinigung der starken Zusammenhangskomponente von v0 und der Menge der von dort aus erreichbaren Knoten (SCC(v0 ) bzw. OUT(v0 )). Verhindere zu starken Einfluss von Suchmaschinen. Konkrete Werte in Experimenten: r = 0, 3, 10. • Nach Erstbesuch von Knoten v wird Nachbarschaft fixiert. 286 285 Beweis: Konvergenzgeschwindigkeit: • Nach endlich vielen Schritten werden keine • Abstand höchstens ε > 0 bez. L1 -Norm zur Gleichverteilung nach 2 log n + log(1/ε) /(1 − λ2 ) Schritten, λ2 zweitgrößter Eigenwert der zugehörigen stochastischen Matrix. • Z. B. zweitgrößter Eigenwert für zufällige √ d-reguläre Graphen: O( d). • Für 1996er-Crawl in Bar-Yossef-Paper: λ2 ≈ 1 − 10−6 . neuen Knoten mehr entdeckt. Grund: Statischer Webgraph ist endlich. • Danach sind Nachbarschaften der Knoten (irgendwie!) fixiert. Erreichter Graph sei dann Gt . Dann gilt: • Vt = SCC(v0 ) ∪ OUT(v0 ): Sei v ∈ SCC(v0 ) ∪ OUT(v0 ). Mögliche Quellen für Ungleichgewicht bei Verteilung: Dann existiert im Webgraphen gerichteter Weg v0 v. Annahme: Kante e = (x, y ) erste auf diesem Weg nicht in Gt . Dann x ∈ Vt , aber nicht alle ausgehenden Kanten aufgenommen. Widerspruch. • Gt erfüllt Voraussetzungen für Konvergenztheorie → restlicher Walk konvergiert gegen Gleichverteilung. • Bevorzugung von Knoten mit hohem Grad. • Bevorzugung von Knoten im Index von benutzten Suchmaschinen. • Bevorzugung der Knoten in der Nachbarschaft des Startknotens. 287 288 Experimente (Bar-Yossef u. a. 2006): Random-Walk-Sampler (Bar-Yossef u. a. 2006) Auswertung über APIs von Google, MSN und Yahoo! → vermutlich nicht mehr ganz aktuelle Indexe. Zufällige Stichprobe aus Suchmaschinen-Index (nicht Web). • Anfragepoolbasierter Sampler mit sehr wenig Algorithmus grob: • Start mit irgendeinem Knoten. • Für Schritt des Random Walks: – Wähle Suchbegriff auf Seite zu aktuellem Knoten zufällig und füttere ihn in Suchmaschine. – Wähle neuen aktuellen Knoten zufällig aus Ergebnisliste. Liefert keine Gleichverteilung, wieder geeignete Simulationstechnik anwenden. Ungleichgewicht bez. Größe/Rang von Seiten; • Random-Walk-Sampler mit leichter Bevorzugung von kleinen Dokumenten; • Bharat & Broder mit starker Bevorzugung von großen Dokumenten. Google: Seiten von. . . : . . . indiziert von: Google: – 46 % MSN: 45 % Yahoo!: MSN: Yahoo!: 55 % – 51 % 44 % 22 % – 290 289 4. Datenstromalgorithmen 4.1 Einleitung Einführendes Beispiel: Internet-Traffic-Management Übersicht: 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 Einleitung Algorithmische Basistechniken Sampling-Algorithmen Häufigkeitsmomente Metrische Einbettungen Abstandsmaße Top-k -Listen Histogramme IP IP IP IP IP IP IP IP IP IP Aufgaben: • Entdeckung von Engpässen (→ Netzplanung); • Entdecken von Anomalien (→ Sicherheit). 291 292 4.1 Einleitung Beispiele für Anwendungsbereiche: Einführendes Beispiel: Internet-Traffic-Management • Telefonnetze: Verbindungsstatistiken (CDRs, call detail records), ähnlich zu Internet-Beispiel; IP IP IP IP IP IP IP IP IP IP • Weblogs: Zugriffstatistiken auf Webserver → Kundenverhalten, Angriffe; • Webcrawls: Zugriff von Indexer auf Crawl, statistische Auswertungen; Technische Einschränkungen: • Datenstrom zu umfangreich für komplette Speicherung. • Hohe Anzahl Datenpakte pro Zeiteinheit. • Daten nur einmal in nicht beeinflussbarer Reihenfolge. • Sensorüberwachung: Wetterdaten, Teilchenbeschleuniger am CERN. • Auswertung von Börsentickern: Beispiel Traderbot. 293 292 Anwendungen im Bereich Datenbanken: Typische Probleme: Atypisch, auf den ersten Blick keine Datenströme. Aber verwandte Problemstellungen und Datenstromstechniken auch hier einsetzbar. Siehe Liste am Anfang: Probleme aus dem Bereich Statistik / Datenaggregation. • Klassisch: Sampling, Histogramme bereits bei • Oft einfach im klasssischen Algorithmikszenario, Eigenschaften: Anfrageoptimierung (query optimization) eingesetzt, z. B. für Abschätzung der Join-Größe. • Gebiet der Datenstromalgorithmen liefert verfeinerte Techniken für die Zusammenfassung von Datenmengen. wo Ziel nur“ Polynomialzeitalgorithmen. ” • Hier viel eingeschränkteres Modell: Wollen Speicherplatz und Zeit pro Datenelement (mindestens) sublinear in Datenstromlänge. Selbst Zählprobleme nicht mehr trivial. Später konkreter. 294 295 Zu den verwendeten Registermaschinen: 4.1.1 Das Modell • CPU: Datentransfers, Sprünge, ganzzahlige Arithmetik inklusive Multiplikation und (ganzzahlige) Division. • Wortlänge der RAM Konstante, miss Komplexität bitweise. Z. B. Multiplikation von n-Bit-Zahlen O(n log n loglog n), nicht O(1). Definition: 4.1: k -Runden-Datenstromalgorithmus Algorithmus, der auf einer Registermaschine (RAM) läuft mit • Einweg-Nur-Lese-Eingabeband; • Eingabe darf höchstens k -mal in WorstcaseEingabereihenfolge gelesen werden; • Einweg-Nur-Schreibe-Ausgabeband. • Wenn mit dem Schreiben begonnen wurde, darf nicht mehr gelesen werden. Modellierung mehrerer Ein- oder Ausgabeströme: • Explizit durch mehrere Bänder. • Distributed Data Streams Model: Eingabestrom ist Ergebnis ungeordneter Verschmelzung mehrerer Ströme (realistisch für Anwendungen). Evtl. Zugehörigkeit zu Quellströmen mitgeliefert. Konvention: Datenstromalgorithmus“ → k = 1. ” 296 297 Für viele Probleme: • Nur approximative Ergebnisse möglich und • randomisierte Algorithmen benötigt. Entwurfsziele: Datenstrom mit n Elementen aus Universum der Größe m: • Platz und Zeit pro Datenstromelement sublinear in n und m, idealerweise sogar polylogarithmisch. • Rundenanzahl k Konstante. Definition 4.2: Algorithmus berechnet y ∈ R mit Approximationsfehler ε und Misserfolgswahrscheinlichkeit δ, falls für (zufällige) Algorithmusausgabe Y gilt: Bemerkung: Typischerweise Zeit pro Datenelement polynomiell in Größe der internen Datenstruktur, dann Platzschranke → Zeitschranke. Pr{|Y − y | > εy } ≤ δ. Kurz: (ε, δ)-Approximation. Glück: Für statistische Probleme exakte Ausgaben typischerweise nicht so wichtig. Ideales Anwendungsfeld für ein bisschen schlunzerige“ Algorithmen. ” 298 299 High-Level-Sichtweise: 4.1.2 Beispiel: Anzahl Elemente im Datenstrom Eingabe: x1 , x2 , . . . , xn ∈ U, U endliches Universum. Verwalte Datenstruktur während des Lesens des Eingabstromes. Unterstütze Operationen: Problem A NZAHL E LEMENTE IM DATENSTROM: Eingabe: Datenstrom mit Länge aus {0, . . . , n}. Länge vorab unbekannt. Aufgabe: Berechne n. • I NITIALIZE: Datenstruktur initialisieren, unabhängig von Eingabe. • U PDATE(x), x ∈ U: Verarbeite frisch gelesenes Datenstromelement x, aktualisiere Datenstruktur. Triviale Lösung: Zähler → Platz und Zeit pro Element O(log n). • Q UERY: Kann man das noch toppen? Jedenfalls nicht deterministisch & exakt. . . Ausgabe für seit I NITIALIZE / letztem Q UERY gelesenen Teil des Datenstroms. Oft: Datenstruktur Skizze (Sketch). 300 Satz 4.3: Für beliebige k benötigt jeder deterministische, exakte k -Runden-Datenstromalgorithmus für das Problem A NZAHL E LEMENTE IM DATENSTROM mindestens Speicherplatz ⌈log(n + 1)⌉. 301 Erstaunlicherweise: Lösung des Problems mit nur O(loglog n) erwartetem Speicherplatz existiert → Randomisierung und Approximation benutzen. Erste Idee: Zähle jedes Element nur mit Wahrscheinlichkeit p ∈ [0, 1]. • Zählerinhalt am Ende ist Zufallsvariable X , EX = np. • Benutze X /p als Ausgabe, dann E(X /p) = n. Beweis: Betrachte Datenströme mit Länge aus {0, . . . , n}. Idee: Algorithmus muss diese n + 1 Werte anhand des Speicherinhalts am Ende unterscheiden können. • Annahme: Algorithmus benutzt höchstens ⌈log(n + 1)⌉ − 1 Bits. • Dann höchstens 2⌈log(n+1)⌉−1 < n + 1 Speicherinhalte. • Für zwei Eingabelängen n1 , n2 ∈ {0, . . . , n} mit n1 6 = n2 hat Algorithmus am Ende selben Speicherinhalt, Fehler! Nicht so toll: • Erwarteter Speicherplatz um Faktor p besser, aber √ • mit positiver Wskt. relativer Fehler (1/ np) (hier ohne Beweis). 302 303 Ein echter Klassiker löst das Problem: Approximate Counting (Morris 1978). Wie p(r ) passend wählen? Idee: Speichere Logarithmus des Zählerstandes. 1 }| z Genauer: • Verwalte Registerwert r ∈ N0 , repräsentiert Zählerstand c(r ) = 2r − 1. • c(0) = 0 und c(1) = 1. Gut! • Aber: Bei Erhöhung i. A. kein passendes r ′ ∈ N, sodass c(r ′ ) = c(r ) + 1!? z c(r ) = 2r − 1 { c(r + 1) − c(r ) }| c(r ) + 1 = 2r { c(r + 1) = 2r +1 − 1 Wähle p(r ) = Abhilfe: • Mit Wskt. p(r ), passend gewählt: Registerwert inkrementieren und c(r + 1) darstellen. • Sonst r beibehalten und c(r ) darstellen. 1 . c(r + 1) − c(r ) Dann für Zählerstand R ′ nach Update: ER ′ = p(r ) · c(r + 1) + (1 − p(r ))c(r ) = c(r ) + 1. 305 304 Algorithmus A PPROXIMATE C OUNTING: Initialisierung: r := 0. Satz 4.4: Sei Rn der Registerwert in A PPROXIMATE C OUNTING nach n Schritten und Cn := c(Rn ). Dann ist ECn = n und für alle ε > 0 gilt: 1 1 . Pr |Cn − n| > εn ≤ 1 − n 2ε2 Der erwartete Speicherplatz und die erwartete Zeit pro Element sind jeweils O(loglog n). Im Worstcase sind beide O(log n). Update: Sei r aktueller Registerwert. • Wirf Münze mit Wskt. p(r ) für Kopf“. ” • Falls Kopf“, dann r := r + 1. ” Output: c(r ). Implementierungsdetail: Münzwurf mit Wskt. p(r )? Beachte dazu, dass 1 1 = 2−r . = r +1 p(r ) = r c(r + 1) − c(r ) 2 −1− 2 −1 Also (ε, δ)-Apprximation für Problem A NZAHL E LEMENTE. Faire Münze r -mal werfen; Ausgabe 1“, wenn r -mal Kopf“; ” ” sonst Ausgabe 0“. Zeit O(r ), Platz O(log r ). ” 306 307 Beweis: Erwartungswert, Varianz, Tschebbyscheff“. ” Zeige, dass für repräsentierten Zählerstand Cn gilt: Erwartungswert: Es ist C0 = 0. Für n > 0: n X E(Cn |Rn−1 = r ) · Pr{Rn−1 = r }, E(Cn ) = ECn = n und V (Cn ) = (1/2)n(n − 1). r =0 Tschebbyscheff-Ungleichung allgemein für Zufallsvariable X , λ > 0. V (X ) Pr |X − EX | > λ ≤ . λ2 wobei Rn erwarteter Registerinhalt nach n-tem Schritt. Bereits vorab gezeigt: E(Cn |Rn−1 = r ) = c(r ) + 1. Damit folgt per Induktion: n X (c(r )+1)·Pr{Rn−1 = r } = E(Cn−1 )+1 = n. E(Cn ) = Anwendung hier: (1/2)n(n − 1) 1 1 , Pr |Cn − n| > εn ≤ 1− = n ε 2 n2 2ε2 wie gewünscht. r =0 309 308 Also folgt Varianz: Es gilt V (Cn ) = E(Cn2 ) − (ECn )2 . Mit derselben Idee wie beim Erwartungswert erhalten wir: n X 2 E Cn2 |Rn−1 = r · Pr{Rn−1 = r } E Cn = E n X 2 2 p(r )c(r + 1) + (1 − p(r ))c(r ) · Pr{Rn−1 = r } = = 2 p(r ) c(r + 1) − c(r ) r =0 und außerdem gilt E 2 Cn−1 2 = n X r =0 2 + c(r ) −E 2 Cn−1 = n X r =0 p(r ) c(r +1)2 −c(r )2 ·Pr{Rn−1 = r }. Es gilt (benutze die Definition p(r ) = 1/(c(r + 1) − c(r ))): p(r ) c(r + 1)2 − c(r )2 = c(r + 1) + c(r ) r =0 r =0 n X Cn2 Außerdem ist c(r + 1) = 2r +1 − 1 = 2c(r ) + 1, damit p(r ) c(r + 1)2 − c(r )2 = 3c(r ) + 1. · Pr{Rn−1 = r } Einsetzen in obige Gleichung: n X 2 2 (3c(r ) + 1) · Pr{Rn−1 = r } E Cn − E Cn−1 = r =0 2 = 3E(Cn−1 ) + 1 = 3(n − 1) + 1 = 3n − 2. c(r ) · Pr{Rn−1 = r }. 310 311 Ressourcen: Erinnerung: ECn = n und Cn = c(Rn ) = 2Rn − 1. Es folgt damit: E Cn2 = E = Cn2 n X i=1 −E C02 (3i − 2) = Benötigter Speicherplatz: Anzahl Bits für Registerwert, also ⌈log(Rn + 1)⌉ = log(log Cn + 1) + 1 . Erwartungswert dafür? n X 2 2 E Ci − E Ci−1 = i=1 3 1 3 n(n + 1) − 2n = n2 − n. 2 2 2 Jensensche Ungleichung und Konvexität von − loglog. (Erinnerung: f (EX ) ≤ E(f (X )) für f konvex) E(⌈log(Rn + 1)⌉) = E log(log(Cn + 1) + 1) Varianz insgesamt: 1 1 3 V (Cn ) = E Cn2 − (ECn )2 = n2 − n − n2 = n(n − 1). 2 2 2 ≤ E(loglog Cn ) + 2 ≤ loglog(E(Cn )) + 2 (Jensen) Also auch Varianz wie behauptet. = O(loglog n). Zeit pro Element linear in Platz, außerdem (Vorüberlegung) Münzwürfe kein Problem. 313 312 Ergebnis noch nicht wirklich toll, nichttriviale √ Fehlerschranke nur für relativen Fehler ε > 1/ 2 ≈ 0, 71 Verbessertes Ergebnis asymptotisch optimal: Satz 4.5: Für beliebiges k ∈ N und beliebige Konstanten ε, δ ∈ [0, 1) benötigt jeder randomisierte k -Runden-Datenstromalgorithmus, der eine (ε, δ)-Approximation eines Datenstromproblems mit möglichen Ausgabewerten {1, 2, . . . , r (n)} bei Eingabeströmen der Länge höchstens n berechnet, mindestens erwarteten Speicherplatz (loglog r (n)). Verbessertes Verfahren: Repräsentierter Zählerstand für Registerwert r : c ′ (r ) = (1/α) (1 + α)r − 1 , α > 0 zusätzlicher Parameter. Hier bisher Spezialfall α = 1. Es gilt mit Beweis analog zu Fall α = 1: α 1 Pr |Cn − n| > εn ≤ , 1 − n 2ε2 Speicherplatz O(log(1/α) + loglog n). Damit (ε, δ)-Approximation von A NZAHL E LEMENTE mit Platz / Zeit pro Element O log(1/ε) + log(1/δ) + loglog n . Für A NZAHL E LEMENTE damit Platz (loglog n). 314 315 Beweisskizze: Zunächst: r (n) → r . Erster Schritt: Zeige, dass (log r ) Eingaben existieren, für die Algo. verschiedene Ausgaben produziert. Hatten: Algorithmus-Ausgabe a für gewünschte Ausgabe y , dann Algorithmus-Ausgabe a ∈ R zulässig als Approximation von gewünschter Ausgabe y ∈ {1, 2, . . . , r }, falls (1 − ε)y ln(1 − ε) | {z } ≈−ε ≤ ≤ a ln a − ln y ≤ ≤ Also (approximativ) Bedingung: −ε ≤ ln a − ln y = (ln 2)(log a − log y ) ≤ ε. Betrachte Zahlen yj = 2j , j = 1, . . . , ⌊log r ⌋: • Für diese alle Ausgabe gemäß Bedingung (∗). • Jede Ausgabe kann nur konstant viele yj abdecken. Kann damit k = (log r ) der yj auswählen, für die verschiedene Ausgabewerte notwendig. (1 + ε)y ⇔ ln(1 + ε) . | {z } ≈ε −ε ≤ ln a − ln y = (ln 2)(log a − log y ) ≤ ε. (∗) (∗) 316 Zweiter Schritt: Zeige, dass Algorithmus logarithmisch viel Speicher in Anzahl der zu unterscheidenden Ausgabewerte benötigt. 317 Hatten: Pr{A(S(yj )) = yj } ≥ 1 − δ. Behauptung: Aus A lässt sich deterministischer Algorithmus konstruieren, der auf (1 − δ)-Anteil aller y1 , . . . , yk korrekt rechnet. Dies war einfach für deterministische Algorithmen, hier aber randomisierte. Situation: • Eingabe ist Zahl yj , j ∈ {1, . . . , k } mit k = (log r ), diese aus Ausgabe des Algorithmus eindeutig rekonstruierbar. O. B. d. A. Ausgabe identisch mit diesen Zahlen. • Algorithmus codiert Information in Speicherinhalt S(yj ). Zufallsvariable. • Am Ende muss für Ausgabe A(S(yj )) gelten: Yaos Minimax-Prinzip, aka Durchschnittsargument“ ” (→ Komplexitätstheorie). Damit dann mindestens (1 − δ)k = (log r ) Zahlen, die anhand Speicherinhalt unterschieden werden, also (loglog r ) Bits Speicher und fertig. Pr{A(S(yj )) = yj } ≥ 1 − δ. 318 319 4.2 Algorithmische Basistechniken Yaos Minimax-Prinzip: 4.2.1 Fakten zu endlichen Körpern Körper Fpr , p Primzahl – zwei Darstellungen der Elemente: • Vektoren in Fpr (gut für Addition). • Polynome mit Koeffizienten aus Fp , rechnen Betrachte Fehlermatrix: Mögliche Eingaben: Mögliche Zufallsbitstrings: z x F (x, z) modulo irreduziblem Polynom vom Grad r (gut für Multiplikation). F (x, y ) = 1, falls falsche Ausgabe auf Eingabe x bei Zufallsbits z; F (x, y ) = 0, sonst. Proposition 4.6: Sei n = pr , p Primzahl. Körperoperationen in Fn mit Schulmethoden, falls irreduzibles Polynom gegeben: • Speicherplatz: O(r log p) = O(log n); • Zeit für Addition: O(r log p) = O(log n); • Zeit für Multiplikation: O r 2 log2 p = O log2 n . • Bei Fehlerschranke δ höchstens δ-Anteil Einsen pro Zeile. • Insgesamt höchstens δ-Anteil Einsen in Matrix. • Es gibt eine Spalte mit höchstens δ-Anteil Einsen. 320 321 4.2.2 Universelles Hashing Bemerkung: Mit schnellstem bekannten Multiplizierer für Fn Zeit O(n log n loglog n). Dictionaries mit Operationen I NSERT, D ELETE, S EARCH. Realisierung als Hashtabelle mit verketteten Listen ( offenes Hashing“): ” Hashfunktion h : U = {0, . . . , u−1} → M = {0, . . . , m−1}; bildet Schlüssel aus Universum U auf Tabellenindizes in M ab. Dabei |U| ≥ |M| (üblicherweise |U| ≫ |M|). Außerdem: Satz 4.7: Für r ∈ N und p Primzahl: Las-Vegas-Algorithmus, der in erwarteter Polynomialzeit in r und p irreduzibles Polynom vom Grad r über Fp berechnet. Übliche Analyse (z. B. DAP2): • Schlüssel zufällig und werden von h gleichverteilt auf M abgebildet (ideales Hashing). • Erwartete Listenlänge O(1 + n/m) bei n Schlüsseln. Problematisch: Annahme über zufällige Schlüsselverteilung. 322 323 Definition 4.8: Klasse H von Funktionen U → M, |M| = m, heißt universelle Hashklasse, falls für alle x, x ′ ∈ U mit x 6 = x ′ gilt: Idee (Carter, Wegman 1979): Zufällige Wahl der Hashfunktion bei Initialisierung der Tabelle (vgl. Min-Hashing). Zufällige Funktion aus Menge aller Funktionen U → M: Zu viele Bits für Beschreibung und Auswahl per Zufall. 1 |{ h | h(x) = h(x ′ )}| Prh∈H {h(x) = h(x )} = ≤ . |H | m Abhilfe: Hashfunktion aus kleinerer Klasse von Funktionen, im Folgenden Hashklasse, die wichtigste Eigenschaften der Gleichverteilung über alle Funktionen rettet“. ” Also: Für verschiedene Schlüssel Wahrscheinlichkeit für Kollision der Hashwerte für zufälliges h ∈ H höchstens so groß wie bei zufälligem h aus allen Funktionen U → M. Hash-Analysen → Vermeidung von Kollisionen entscheidend, folgende Eigenschaft ausreichend. . . Kann zeigen: Erwartete Listenlänge wieder O(1 + n/m), aber jetzt Erwartungswert über Hashfunktionsauswahl. Keine Worstcase-Schlüsselmengen mehr! ′ 325 324 Stärkere Variante der Universalität von Hashklassen: Definition 4.9: Klasse H von Funktionen U → M, |M| = m, heißt k -fach unabhängige Hashklasse, k ≥ 2, falls für alle paarweise verschiedenen x1 , . . . , xk ∈ U und beliebige y1 , . . . , yk ∈ M gilt: Prh∈H {h(x1 ) = y1 , . . . , h(xk ) = yk } = Für Konstruktion von Hashklassen wichtig: Proposition 4.10: Sei H k -fach unabhängige Hashklasse mit Funktionen U → Aℓ . Sei I ⊆ {1, . . . , ℓ} und HI Hashklasse, die die Funktionen enthält, die durch Projektion von Funktion in H auf die Komponenten in I entstehen. Dann ist auch H k -fach unabhängig. 1 . mk Für feste Wahl verschiedener Schlüssel x1 , . . . , xk und zufälliges h ∈ H sind damit X1 = h(x1 ), . . . , Xk = h(xk ) unabhängige, über den m möglichen Werten gleichverteilte Zufallsvariablen. Beobachtung: H k -fach unabhängig, k ≥ 2 ⇒ H universell. Beweisidee: Summiere Wsktn. über alle möglichen Ergänzungen der Projektionen auf. 326 327 Beispiel – Polynomielle Körperklasse: Polynomielle Körperklasse (Forts.): Für n Primzahlpotenz, k ∈ N: Die polynomielle Körperklasse HFn ,k enthält für beliebige a0 , . . . , ak−1 ∈ Fn Hashfunktionen ha0 ,...,ak −1 : Fn → Fn definiert durch ha0 ,...,ak −1 (x) := k−1 X i=0 Ressourcenverbrauch: Betrachte HFn ,k . • Anzahl Bits für Spezifikation von Hashfunktion: k Zahlen aus Fn → O(k log n) Bits. • Auswertung: Benutze Hornerschema: ai x i , x ∈ Fn . Klasse HFn ,k ist k -fach unabhängig: Seien x1 , . . . , xk ∈ Fn verschiedene Schlüssel, y1 , . . . , yk ∈ Fn beliebig. Dann existiert genau ein Polynom h über Fn vom Grad k − 1, sodass h(xi ) = yi für alle i. Damit 1 Prh∈HFn ,k {h(x1 ) = y1 , . . . , h(xk ) = yk } = = |Fn |−k . |HFn ,k | Mit Ausschneiden von Koordinaten (Proposition 4.10) auch abgeleitete Hashklassen mit kleinerem Zielbereich. h(x) = k−1 X ai x i i=0 = (· · · ((ak−1 x + ak−2 )x + ak−3 ) · · · + a1 )x + a0 . Dann je k − 1 Körper-Additionen und -Multiplikationen. Platz O(log n + log k ) und Zeit O(k log n polylog n) (mit asymptotisch schnellstem Multiplizierer). 329 328 Beschränkte Unabhängigkeit In Anwendungen bei Datenströmen häufig benötigt: Zufallsbitvektor mit Länge linear in der Eingabelänge. Aufwendig zu erzeugen (Ressource Zufall) und (schlimmer) abzuspeichern. Zunächst allgemeinere Definition: Definition 4.11: Zufallsvariablen X1 , . . . , Xn ∈ M, |M| = m, heißen k -fach unabhängig, falls für alle paarweise verschiedenen i1 , . . . , ik ∈ {1, . . . , n} und alle y1 , . . . , yk ∈ M gilt Pr (Xi1 , . . . , Xik ) = (y1 , . . . , yk ) 1 = Pr{Xi1 = y1 } • · · · • Pr{Xik = yk } = k . m Wichtiges Szenario: • Betrachte Anwendungen, wo nicht alle Bits unabhängig sein müssen, sondern nur jeweils k = O(1) ausgewählte. • Dann fast zufällige“ Vektoren der Länge n mit dieser ” beschränkten Unabhängigkeit, die aus nur O(log n) echt zufälligen“ Bits generiert werden. ” Im Prinzip Pseudozufallszahlengeneratoren mit sehr eingeschränkter Gütegarantie“ für die Ausgabe. ” 330 331 Konstruktion: Allgemeinere Formulierung für spätere Anwendungen: Benutze k -fach unabhängige Hashklasse mit Funktionen U → M, U = {x1 , . . . , xn }. Dann für zufälliges h ∈ U: X1 := h(x1 ), . . . Xn := h(xn ) k -fach unabhängig. Satz 4.12: Sei N = 2r ≥ n, irreduzibles Polynom über F2 vom Grad r gegeben. Es gibt Funktionen f1 , . . . , fn : Fkr 2 → F2 , sodass Speziell für n-Bit-Zufallsvektoren und polynomielle Körperklasse: • Wähle N := 2r ≥ n möglichst klein, x1 , . . . , xn ∈ FN . • X1 := h(x1 ), . . . , Xn := h(xn ) ∈ FN = Fr : 2 Benutze jeweils z. B. das erste Bit dieser Vektoren. (Funktioniert wg. Proposition 4.10.) für zufällig gleichverteiltes S ∈ Fkr 2 die Zufallsvariablen X1 := f1 (S), . . . , Xn := fn (S) k -fach unabhängig sind. Außerdem lässt sich für festes S jedes Xi auf Platz O(log k + log n) und in Zeit O(k log n polylog n) berechnen. Spezialfall k = O(1): Zufällig gleichverteilter Startbitvektor S der Länge O(log n) ausreichend, um n Pseudozufallsbits mit k -facher Unabhängigkeit zu erzeugen. Kann auch alle Bits der Hashwerte benutzen, maximal insgesamt rN = 2(n log n) (jedes einzelne Xi ist gleichverteilt über Fr2 und damit seine Komponenten vollständig unabhängig). 332 333 4.2.3 Probability-Amplification Relativer Fehler: Bei randomisiertem Algorithmus für Enscheidungsproblem mit Zeit T , Fehlerwahrscheinlichkeit δ > 0: k unabhängige Wiederholungen → Fehlerwahrscheinlichkeit δ ck , c > 0 Konstante; Zeit k · T . Oft Analyse nach dem Schema Erwartungswert, Varianz, Tschebyscheff“. ” Dann hilfreich: Proposition 4.13: Sei Y reelle Zufallsvariable, Y1 , . . . , Yk unabhängige Kopien e := (Y1 + · · · + Yk )/k . Dann gilt V (Y e ) = V (Y )/k . von Y und Y Bei Datenstromalgorithmus: • k Wiederholungen → k parallele Kopien des Algorithmus: Speicherplatz S → Speicherplatz k · S. Typischerweise also k = O(1). • Wie genau reduzieren sich relativer Fehler, Fehlschlagswahrscheinlichkeit? Beweis durch einfache Rechnung. Kombination mit Tschebyscheff: k Kopien erlauben → √ Senkung des relativen Fehlers um 1/ k (nicht so toll). 334 335 Satz 4.15: Sei ε > 0, 0 ≤ δ < 1/2 und sei Y eine (ε, δ)-Approximation von y . Für beliebige δ ′ mit 0 < δ ′ ≤ δ gibt es dann ein c > 0, sodass für k = c log(1/δ ′ ) unabhängige Kopien Y1 , . . . , Yk e := med(Y1 , . . . , Yk ) eine von Y die Zufallsvariable Y (ε, δ ′ )-Approximation von y darstellt. Fehlschlagswahrscheinlichkeit: Idee: Benutze Median von mehreren unabhängigen Kopien. Sicherheitshalber zur Erinnerung: Definition 4.14: Seien x1 , . . . , xk ∈ R und xπ(1) ≤ · · · ≤ xπ(k) für geeignete Permutation π . Dann definiere Median von x1 , . . . , xk durch ( xπ((k+1)/2) , k ungerade; med(x1 , . . . , xk ) := 1 2 xπ(k/2) + xπ(k/2+1) , k gerade. Also explizit: Pr{|Y − y | ≤ ε|y |} ≤ δ → Pr{|Y − y | ≤ ε|y |} ≤ δ ′ . Beachte: ′ • k Kopien → Fehlschlagswahrscheinlichkeit 2−c k , c ′ > 0. • Relativer Fehler ändert sich nicht. 337 336 4.3 Sampling-Algorithmen Beweisskizze: Vorgehensweise in der Statistik: Gesamtheit von Werten durch kleine, möglichst repräsentative Stichprobe darstellen. (Vgl. z. B. Hochrechnungen für Wahlergebnisse.) Beobachtung für feste Ausgabewerte y1 , . . . , yk : • med(y1 , . . . , yk ) zu groß“, d. h. größer als (1 + ε)y : ” Dann direkt mindestens ⌈k /2⌉ zu große“ Werte. ” • Analog für med(y1 , . . . , yn ) < (1 − ε)y . Genauer: Gegeben Eingabe a = (a1 , . . . , an ). Wollen Funktion y auf diesen Daten auswerten. • Ziehe Stichprobe aX1 , . . . , aXs , wobei X1 , . . . , Xs zufällige Indizes (nicht notwendig verschieden). • Berechne clever gewählte“ Funktion f auf Stichprobe: ” Y := f (aX1 , . . . , aXs ), Schätzer für Wert y . • Ziele: EY ≈ y , mit hoher Wskt. Y ≈ y . Schätzer Y mit EY = y heißt erwartungstreu. Definiere Zi := [|Yi − y | > ε|y |], i = 1, . . . , k , und Z := Z1 + · · · + Zk , dann EZ ≤ δk . Aufgrund der Beobachtung: e − y | > ε|y |} ≤ Pr{Z ≥ k /2} Pr{|Y ≤ Pr{Z − EZ ≥ (1/2 − δ)k }. Rest: Anwendung von Chernoff und Rechnung. 338 339 Sampling-Algorithmen (informelle Definition): • Algorithmus hat Zugriff auf Eingabe a = (a1 , . . . , an ) nur Im Allgemeinen Wahl von s und Wahl der Indizes i1 , . . . , is mit randomisiertem Algorithmus. über Blackbox (Orakel): Stellt Anfrage nach Index i ∈ {1, . . . , n}, bekommt ai . Modul Q UERY (a, i). Beachte: • Nicht-adaptiv: – Bestimme Samplegröße s und Sample-Indizes i1 , . . . , is vorab, ohne Blackbox-Befragung. – Dann Q UERY (a, i1 ), . . . , Q UERY (a, is ). Definition erlaubt auch Algorithmen, die komplette Eingabe lesen (s = n) und diese dann mit beliebigem randomisierten Algorithmus verarbeiten, also sehr allgemein. Interessante Sampling-Algorithmen haben Stichprobengröße s < n. • Adaptiv: Stichprobengröße s und im j-ten Schritt gewählter Anfrage-Index i j kann von vorherigen AnfrageErgebnissen ai1 , . . . , ai j−1 abhängen. Für formalere Definition siehe Skript. Für untere Schranken oft günstig: Sichtweise als Entscheidungsbaum. Am Ende immer Berechnung der Ausgabe abhängig von Stichprobe ai1 , . . . , ais . 341 340 Reservoir-Sampling (Vitter 1985): Sampling-Algorithmen versus Datenstromalgorithmen: Problem Z IEHEN OHNE Z UR ÜCKLEGEN: Eingabe: Datenstrom der Länge n. Aufgabe: Wähle gleichverteilt zufällig s-elementige Teilmenge von {1, . . . , n} und gib zugehörige Elemente in Datenstrom aus. Idee: • Verwalte während des Lesens Reservoir“ mit ” Stichprobenelementen r [1], . . . , r [s], gültige Stichprobe für bisherigen Teil des Datenstroms. • Bei Ankunft des (t + 1)-ten Elementes: t t+1 / s = s/(t + 1), Aufnehmen mit Wskt. s−1 verwerfen sonst. • Bei Aufnahme: Zufällig gleichverteiltes altes Element aus Stichprobe verdrängen. • Sampling-Algorithmen haben im Allgemeinen wahlfreien Zugriff auf Eingabe, Datenstromalgorithmen nicht. • Datenstromalgorithmen lesen üblicherweise gesamte Eingabe, Sampling-Algorithmen nicht. Kann aber spezielle Sampling-Algorithmen auch im Datenstromszenario realisieren. Zwei wichtige Basismodule für Indexauswahl: • Ziehen (gemäß Gleichverteilung) mit Zurücklegen; • Ziehen (gemäß Gleichverteilung) ohne Zurücklegen. Dies aber bei vorab unbekannter Datenstromlänge!? 342 343 Satz 4.16: Die vom Reservoir-Sampling-Algorithmus gewählten Stichprobenindizes stellen eine zufällig gleichverteilte, s-elementige Teilmenge von {1, . . . , n} dar. Für Daten aus einem Universum der Größe u ist der benötigte Speicherplatz O(log n + s log u). Die Zeit pro Element ist O(log n + log u). Im Folgenden Eingabe a1 , . . . , an mit n ≥ s (sonst trivial). Algorithmus R ESERVOIR -S AMPLING OHNE Z UR ÜCKLEGEN: Initialisierung: r [1] := a1 ; . . . ; r [s] := as ; t := s. Update: Sei t ≥ s und as+1 das nächste gelesene Datenelement. Wähle i ∈ {1, . . . , t + 1} zufällig gemäß Gleichverteilung. if i ≤ s then r [i] := as+1 fi; t := t + 1. Beweis: Induktion über t ≥ s. Induktionsanfang t = s klar. Induktionsschritt t → t + 1: Sei Xt ⊆ {1, . . . , n} nach t Schritten generierte Indexmenge. Sei Ersatz“ das Zufallsereignis, dass das Element at+1 in ” die Stichprobe aufgenommen wird. Dann: Ausgabe: r [1], . . . , r [s]. Pr{ Ersatz } = s/(t + 1). 344 Sei I ⊆ {1, . . . , t + 1}, |I| = s. Algorithmus R ESERVOIR -S AMPLING 1. Fall, t + 1 6 ∈ I: Pr{I = Xt+1 } = Pr{I = Xt } · Pr{¬ Ersatz } 1 1 t +1−s s = t · 1 − = t · = t +1 t +1 s s 2. Fall, t + 1 ∈ I: 1 t+1 s Rest der Behauptung klar. s MIT Z UR ÜCKLEGEN: Initialisierung: Wähle r [1], . . . , r [s] auf triviale Weise, setze t := s. . Update: Sei t ≥ s und at+1 das nächste gelesene Datenelement. for i := 1 to s do ersetze r [i] durch at+1 mit Wahrscheinlichkeit 1/(t + 1) od; t := t + 1; Für i 6 ∈ I sei Ersatz von i ∈ Xt “ das Ereignis, dass i ∈ Xt ist ” und das Element i beim Update gelöscht wird. Dann: X Pr{I = Xt+1 } = Pr I − {t + 1} ∪ {i} = Xt • Pr{ Ersatz von i ∈ Xt } 1≤i≤t, i6∈I X 1 s 1 1 1 1 · · = · = (t − s + 1) · = . t t t+1 s t +1 t +1 1≤i≤t, i6∈I s 345 Ausgabe: r [1], . . . , r [s]. Korrektheit folgt direkt aus Analyse für Reservoir-Sampling ohne Zurücklegen“ für den Fall s = 1. ” s 346 347 4.4 Häufigkeitsmomente Spezialfälle: Pm • F1 (a) = i=1 fi (a) = n, Anzahl aller Elemente im Datenstrom. Pm • F0 (a) = i=1 [fi (a) 6 = 0], Anzahl verschiedener Elemente im Datenstrom. Definition 4.17: Betrachte Datenstrom a = (a1 , . . . , an ), a1 , . . . , an ∈ U mit U = {u1 , . . . , um }. Für i ∈ {1, . . . , m} sei fi (a) die absolute Häufigkeit des Wertes ui in a. Für k ∈ R, k ≥ 0, definiere m X fi (a)k , k -tes Häufigkeitsmoment von a. Fk (a) := Minimale und maximale Werte: • Minimaler Wert: – Fall n ≥ m: f1 = · · · = fm = n/m, dann i=1 Fk = m · (n/m)k = nk /mk−1 Konvention dabei: 00 = 0. Außerdem: – Fall n < m: f1 = · · · = fn = 1, Rest = 0, dann Fk = n · 1 = nk /nk−1 . F∞ (a) := max fi (a). 1≤i≤m Also allgemein: Fk ≥ nk /ℓk−1 , ℓ := min{m, n}. O. B. d. A. im Folgenden U = {1, . . . , m}. Lasse außerdem a weg, falls klar aus Kontext. • Fk ≤ nk . Maximaler Wert für fi0 = n, fj = 0 für j 6 = i0 . 349 348 Motivation allgemein: Algorithmen für Häufigkeitsmomente: Einfachste Variante von Norm / Abstandsproblemen (später). Naive Lösung: Benutze m Zähler, um absolute Häufigkeiten zu ermitteln. Danach vollständige Werteverteilung und Fk für alle k exakt berechenbar. maximal n • F0 : Natürliches Problem in realen Anfragen, z. B.: – Verschiedene Quell-IPs in festem Zeitintervall? – Verschiedene (normalisierte) URLs in Webcrawl? – Verschiedene Werte für Attribut in Datenbank-Relation? • F1 : D. h. Länge des bisher gesehenen Stroms – elementarer Parameter, Motivation klar. • F2 : Spezialfall L2 -Norm, Self-Join-Größe (gleich). • F3 : Schiefe (skewness) der Eingabewerteverteilung, Maß für Abweichung von der Gleichverteilung. 1 2 3 ··· m Speicherplatz 2(m · log n) (bzw. 2(m · loglog n) mit Approximate-Counting). : – ( (Z. B. m = 2128 für IPv6-Adressraum. . . ) Restliche k ? Größtenteils der Vollständigkeit halber (will derart elementares Problem restlos verstehen). 350 351 Was man tatsächlich erreichen kann: Datenbank-Motivation: Alles für Datenstromalgorithmen, die (ε, δ)-Approximation für Konstanten ε, δ berechnen. Operationen für Relationen R, S (Tabellen mit Tupeln): • Selektion, σP (R): Liefere alle Tupel in Relation R, die Bedingung P erfüllen. • Join, R ⋊ ⋉P S: Liefere alle Elemente in R × S, die Bedingung P erfüllen. Ressourcen für Datenstromalgorithmus: F0 : S, T = O(log m) (Abschnitt 4.4.4) F1 : S, T = O(loglog n) (Abschnitt 4.1) F2 : S = O(log m + log n), T = O(log m polylog m + log n) (Abschnitt 4.4.2) S = O ℓ1−2/k · polylog(m, n) , T = polylog(m, n), ℓ = min{m, n}. Fk , k > 2: Beispiel in SQL-Syntax: SELECT * FROM R, S WHERE R.A = S.A AND f(B) = y Dabei Attribut A in R, S und Attribut B in S. Speicherplatz beweisbar asymptotisch optimal. Formal: σf (B)=y (R ⋊ ⋉R.A=S.A S). 353 352 Datenbank-Motivation (Forts.): Datenbank-Motivation (Forts.): Beispiele für F0 -Anwendung: Anfrageoptimierung (query optimization): Ausführungsreihenfolge von Operatoren möglichst effizient. Joins teuer, quadratischer Worstcase → möglichst vorher Datenreduktion. • Heuristische Regel für Abschätzung von Join-Größe: Alle A-Werte von R auch in S, jeder gleich oft. Dann: |R ⋊ ⋉R.A=S.A S| = |R| · |S|/F0 (S.A). Wichtiges Hilfsmittel: Kostenabschätzung für Operationen, insbesondere Selektivitätsabschätzung. • Entscheidung über Auswertungsreihenfolge: Betrachte folgendes Szenario: – Nur 10 % der A-Werte von R seien auch in S, d. h. bei Join R ⋊ ⋉R.A=S.A S nur 10 % der S-Tupel beteiligt. – Nur 10 % der B-Werte von S sollen f (B) = y erfüllen. – Auswertung von f sei sehr aufwendig. Traditionell: • Einsatz von Sampling, Histogrammen (grobe Werteverteilung für Attribut in Relation). • Heuristische Schätzregeln, basierend auf Gleichverteilungsannahmen. Falls F0 (S.B) klein, dann zuerst Selektion, sonst Join. 354 355 Datenbank-Motivation (Forts.): 4.4.1 Sampling-Algorithmen für F0 Beispiel für F2 -Anwendung: • F2 (R.A) = |R ⋊ ⋉R.A=R.A R|, Self-Join von R. • Abschätzung beliebiger Joins: Seit langem in der Statistik untersucht, z. B.: Stichprobe von Insekten aus dem Regenwald ziehen, Schätzung für Gesamtanzahl der Spezies? 1 (F2 (R.A) + F2 (S.A)). 2 Beweis: Absolute Häufigkeiten von A-Werten in R und S seien x1 , . . . , xm bzw. y1 , . . . , ym . Dann: m m X X 1 2 xi yi ≤ xi + yi2 |R ⋊ ⋉R.A=S.A S| = 2 |R ⋊ ⋉R.A=S.A S| ≤ i=1 Schätzer D für F0 : Anzahl verschiedener Elemente in Stichprobe, die durch Ziehen ohne Zurücklegen“ bestimmt. ” Da leichter analysierbar, approximiere dies durch Stichprobe gemäß Ziehen mit Zurücklegen“ – okay, falls F0 groß. ” i=1 1 (F2 (R.A) + F2 (S.A)). 2 Später: Skizzen für Relationen, mit denen Join-Größen mit beliebig kleinem Fehler approximierbar. = Beobachtung: D ≤ F0 . 356 Fehler von Schätzer D (Forts.): Fehler von Schätzer D: d 1X s Hatten: F0 ≥ E(D) = d · 1 − (1 − p i ) . d • Universum sei wieder U = {1, . . . , m}. i=1 fi =: p i : n • Wahrscheinlichkeit, dass i ∈ U in Stichprobe der Größe s: • Wahrscheinlichkeit für Element i ∈ U: 1 − (1 − p i 1. Fall: Bestcase, maximaler Wert für ED. Wird erreicht für Gleichverteilung: Nebenbedinung p1 + · · · + pd = 1, Summe minimieren → p1 = · · · = pd = 1/d. Dann: 1 s = d · 1 − e−s/d (1 ± o(1)) , ED = d · 1 − 1 − d für d → ∞ und s = O(d). )s . Sei d := F0 und o. B. d. A. 1, . . . , d ∈ U verschiedene Werte in der Eingabe. Dann: d d X 1X s 1 − (1 − p i ) = d · 1 − (1 − p i )s . ED = d i=1 357 Wähle s ≈ m oder besser s ≈ m log m, dann okay. (Vgl. Coupon-Collectors-Theorem“, Vorlesung ” Randomisierte Algorithmen“.) ” i=1 Will: Summe möglichst klein. 358 359 Bemerkung: Es gibt einen Schätzer DCCMNfür F0 , der basierend auf Stichproben der Größe O ε2 n folgende Art von Fehlergarantie erreicht: Fehler von Schätzer D (Forts.): d 1X (1 − p i )s . Hatten: F0 ≥ ED = d · 1 − d ε ≤ E(DCCMN )/F0 ≤ 1/ε, i=1 wobei 0 < ε ≤ 1. (Charikar u. a. 2000) 2. Fall: Worstcase, minimaler Wert für ED. Bezüglich der Stichprobengröße asymptotisch optimal: Z. B. für p1 = · · · = pd−1 = 1/n, pd = 1 − (d − 1)/n. Dann: 1 1 s 1 d − 1 s ED = d · 1 − 1 − 1− − d n d n −s/n ≤d · 1−e (1 + o(1)) , Satz 4.18 (Charikar u. a. 2000, Bar-Yossef u. a. 2001): √ √ e0 Sei 0 < ε ≤ 1 mit ε = 1/o( n) und 0 ≤ δ < 1/ 2. Sei F für n → ∞ und s = O(n). Konvergiert für s = o(n) gegen 0. Fazit: Algorithmus benötigt Stichprobengröße (n). : – ( 360 die Ausgabe eines Sampling-Algorithmus für F0 (der auch adaptiv sein darf) mit durch s beschränkter Stichprobene0 mit Wahrscheinlichkeit mindestens größe. Dabei erfülle F 1 − δ die Fehlergarantie ε ≤ D/F0 ≤ 1/ε. Dann gilt s = ε2 log(1/δ)n . 361 Ausführlicher Beweis hier nicht. Stattdessen: Beweisskizze: Sei beliebiger Sampling-Algorithmus mit Worstcase-Stichprobengröße s gegeben. Etwas genauer: Sei Y Ausgabe-Zufallsvariable des Sampling-Algorithmus. Falls Fehlergarantie erfüllt: Betrachte Verhalten auf zwei Mengen von Eingaben: z ∈ X ⇒ ε ≤ Y (z) ≤ 1/ε, z ∈ Y ⇒ ε ≤ Y (z)/m ≤ 1/ε. • X = {(1, . . . , 1)}; | {z n } Für m > 1/ε2 beide Fälle unterscheidbar anhand von Y . Fehlergarantie mit Wskt. mindestens 1 − δ erfüllt. Sampling-Algorithmus kann daher X -/Y -Eingaben mit Wskt. mindestens 1 − δ unterscheiden. • Y = { bel. Permuationen von (1, . . . , 1, 2, 3, . . . , m)}. Für x ∈ X und y ∈ Y gilt: F0 (x) = 1, F0 (y ) = m. | {z } n−m+1 Algorithmus muss X - und Y -Eingaben unterscheiden können, andererseits enthalten nicht ganz große Stichproben von Y -Eingaben m. h. W. nur 1’en. 362 363 Betrachte nun zufällige Eingaben für Sampling-Algorithmus: • Ziehe Vektor zufällig gleichverteilt aus X bzw. Y . • Extrahiere s Komponenten aus Vektor gemäß Anfragen des Algorithmus. Liefert Stichproben SX , SY ∈ {1, . . . , m}s . 4.4.2 Sampling-Algorithmen für Fk Wir betrachten nur k ∈ N, k ≥ 2. Wieder Datenstrom mit n Elementen über U = {1, . . . , m}. Betrachte Stichprobe X1 , . . . , Xs ∈ {1, . . . , m} gemäß Ziehen mit Zurücklegen“. ” Wir wollen: m X f ik , Fk = Sampling-Algorithmus liefert Entscheidungsalgorithmus A mit Pr{A(SX ) = 1} ≥ 1 − δ und Pr{A(SY ) = 1} ≤ δ. • Zeige, dass A(SX ), A(SY ) großen“ (Totalvariations-) ” Abstand haben müssen wg. Fehlerschranke. • Zeige, dass Abstand von A(SX ), A(SY ) nach oben beschränkt durch Abstand von SX , SY (intuitiv klar). • Zeige andererseits, dass Abstand von SX , SY klein“ ” für kleine“ Stichproben. ” i=1 f i = absolute Häufigkeit von i, i = 1, . . . , m. Was können wir aus Stichprobe darüber herausfinden? 364 365 Idee für Schätzer: k -fache Kollisionen in Stichprobe. Damit ist Menge J ⊆ {1, . . . , s}, |J| = k , heißt k -Kollision (für Stichprobe), falls für ein i ∈ U: Für alle j ∈ J gilt X j = i. Sei CJ := [J ist k -Kollision], Indikatorzufallsvariable. nk e Ck := s · Ck k erwartungstreuer Schätzer für Fk . Für 1 ≤ i ≤ m, 1 ≤ j ≤ s: Längliche Rechnung liefert auch hinreichend gute Abschätzung für Varianz, dann Tschebyscheff. Ergebnis: Pr{X j = i} = p i := f i /n. Damit folgt für J mit |J| = k : m X XY fi k 1 Pr{CJ = 1} = Pr{X j = i} = = k · Fk . n n i∈U j∈J Satz 4.19: Sei k ∈ N mit k ≥ 2. Sei ℓ := min{m, n}. Für bel. ε, δ > 0 stellt für Stichprobengröße s = O (1/δ 2 ) log(1/ε) · k 3k ℓ1−1/k ek eine (ε, δ)-Approximation von Fk dar. der Schätzer C i=1 Sei Ck Gesamtanzahl k -Kollisionen in Stichprobe. Dann: X 1 s · k · Fk . ECJ = ECk = k n Sublinear, aber nicht polylogarithmisch in m und n. J⊆{1,...,s}, |J|=k 366 367 4.4.3 Sketching-Algorithmus für F2 Sketching-Algorithmus: Datenstromalgorithmus, der komplette Eingabe liest, zur Unterscheidung von Sampling-Algorithmen (nur informeller Begriff). Es geht nicht wesentlich besser (hier ohne Beweis): Satz 4.20 (Bar-Yossef, Kumar, Sivakumar 2001): Sei k ∈ R mit k ≥ 2. Seien ε, δ gegeben mit 2/n < ε < 1/2 p und c log(1/ε)k 3k n−1/k ≤ δ < 1/3 für eine geeignete Konstante c > 0. Sei ℓ := min{m, n}. Jeder Samplingek produziert, die eine Algorithmus, der eine Ausgabe F (ε, δ)-Approximation von Fk darstellt, benötigt im Worstcase Stichprobengröße s = (1/δ 1/k ) log(1/ε) · ℓ1−1/k . Arbeit: Alon, Mathias, Szegedy (1996). 368 F2 -Algorithmus idealisiert: 369 Bevor wir das beweisen: Eingabedatenstrom über Universum U = {1, . . . , m}. Absolute Häufigkeiten f1 , . . . , fm , f := [f1 , . . . , fm ]⊤ . Effiziente Realisierung des F2 -Algorithmus: • Wie kommen wir an die absoluten Häufigkeiten? • Sei Z = [Z1 , . . . , Zm ]⊤ ∈ {−1, 1}m zufällig gleichverteilt Antwort: Gar nicht. Addiere für jedes neue Element j ∈ U zugehöriges Z j zur Gesamtsumme. Dann am Ende für alle Vorkommen von j Gesamtbeitrag f j · Z j . gewählt. Dann berechne randomisierte Projektion m X f i · Z i =: X . f 7 → hf , Z i = i=1 • Ausgabe Y := Idee für F2 -Algorithmus: Randomisierte Projektionen. Bereits bei SimHash gesehen. Allgemein: • Datenvektor aus hochdimensionalem“ Raum Rd ” multiplizieren mit zufälliger k × d-Matrix. • Liefert komprimierten Vektor in niedrigdimensionalem Raum“ Rk . ” • Sicherstellen, dass Norm approximativ erhalten bleibt. Später mehr dazu. Hier spezielle Variante für k = 1. • Dann brauchen wir aber einen Zufallsvektor Z ∈ {−1, 1}m X 2. und wahlfreien Zugriff darauf. Das ist alles! Antwort: Problem haben wir schon in Abschnitt 4.2 gelöst. Hier reicht nämlich (Analyse) Z mit 4-fach unabhängigen Komponenten. Tatsächlich ist EY = F2 . Später: Relativer Fehler höchstens 300 % mit Wahrscheinlichkeit mindestens 7/9 > 1/2. Probability-Amplification → (ε, δ)-Approximation. 370 371 Effiziente Realisierung des F2 -Algorithmus (Forts.): Algorithmus R AND P ROJECT für F2 : Basierend auf der polynomiellen Körperklasse mit Polynomen vom Grad 3 liefert Satz 4.12 folgendes Verfahren für Generierung von Zufallsvektor Z ∈ {−1, 1}m : Intialisierung: Für ℓ := ⌈log m⌉ wähle S ∈ {0, 1}ℓ zufällig gleichverteilt und wähle irreduzibles Polynom über F2 vom Grad ℓ. Setze x := 0. • Wähle S ∈ {0, 1}ℓ , ℓ = ⌈log m⌉ zufällig gleichverteilt und irreduzibles Polynom über F2 vom Grad ℓ. Update für a ∈ U: x := x + ha (S). Kann beides mit O(log m) Bits abspeichern. • Es gibt Funktionen h1 , . . . , hm : {0, 1}ℓ → {0, 1}, sodass Ausgabe: y = x 2. h1 (S), . . . , hm (S) 4-fach unabhängig. Funktionen können auf Platz O(log m) Platz und in Zeit O(log m · polylog m) ausgewertet werden. 372 Satz 4.21: 373 Erwartungswert: Seien ε, δ > 0. Dann liefern r = 2 (1/ε2 ) log(1/δ) Kopien des Algorithmus R AND P ROJECT eine (ε, δ)-Approximation von F2 . Dies stellt 1-Runden-Datenstromalgorithmus dar mit Speicherplatz O r (log m + log n) und Zeit pro Update O r (log m polyloglog m + log n) . EY = E X = m X i=1 = F2 . Beweis: 2 = E m X fi Zi i=1 f i2 · E( Z 2i ) + 2 |{z} =1 2 X f i f j · E(Z i Z j ) | {z } 1≤i<j≤m = (EZ i )(EZ j ) = 0 Ressourcen: Klar mit Vorbetrachtungen. 374 375 Varianz: V (Y ) = E(Y 2 ) − (EY )2 , also E Y2 Hatten: E Y ausrechnen. Benutze 4-fache Unabhängigkeit der Z1 , . . . , Zm : E(Z i1 Z i2 Z i3 Z i4 ) = 0, falls mindestens ein Wert unter den Indizes i1 , i2 , i3 , i4 genau einmal vorkommt. Außerdem: 2 (EY ) = 2 F22 = m X f i4 + 6 = m X f i4 + 2 Damit: E Y 2 = E = = m X m X i=1 m X i=1 fiZi i=1 i=1 4 Damit: 4 Tschebyscheff liefert: f i4 · E Z i f i4 + 6 i=1 f i2 f j2 . 1≤i<j≤m X f i2 f j2 . 1≤i<j≤m X V (Y ) = E Y 2 − (EY )2 = 4 f i2 f j2 ≤ 2F22 . 1≤i<j≤m X 4 + f i2 f j2 · E Z i2 Z 2j 2 2 , ε2 z. B. ε = 3 → Fehlschlagswahrscheinlichkeit höchstens 2/9. Probability-Amplification mit r = 2 (1/ε2 ) log(1/δ) Kopien des Schätzers Y liefert (ε, δ)-Approximation von F2 . 1≤i<j≤m X X Pr{|Y − F2 | ≥ ε · F2 } ≤ f i2 f j2 . 1≤i<j≤m 377 376 4.4.4 Sketching-Algorithmen für Fk Zweiter Versuch: Hier k ∈ R, k ≥ 1 (k = 1 der Vollständigkeit halber). Gleichverteilte Wahl des gezählten Elementes trotz evtl. ungleichmäßig verteilten Häufigkeiten schlecht. Will: Proportional zu Häufigkeit wählen. Erste Idee für Algorithmus: Will naive Lösung mit m Zählern verbessern: Ermittle für X ∈ {1, . . . , m} zufällig gleichverteilt mit nur einem Zähler exakt absolute Häufigkeit fX . Das geht sogar: Für Datenstrom a = (a1 , . . . , an ) wähle Index X ∈ {1, . . . , n} zufällig gleichverteilt und zähle Vorkommen des Wertes aX im Gesamtstrom. Dann: E(m · fXk ) =m· m X i=1 E(fXk | | X = i) · Pr{X = i} = {z } | {z } = f ik = 1/m m X i=1 f ik = Fk . Leider nicht mehr klar, wie das als 1-Runden-Datenstromalgorithmus realisierbar. Idee von Alon, Mathias und Szegedy: Wähle X wie oben, aber zähle Vorkommen von aX nur im Restdatenstrom ab Position X . Fein, ein erwartungstreuer Schätzer! Leider: Z. B. für (f1 , . . . , fm ) = (n, 0, . . . , 0): Mit Wskt. 1 − 1/m relativer Fehler 100 %. : – ( 378 379 Dritter und letzter Versuch: Benutze dazu Schätzer Y := n rXk − (rX − 1)k . Für Eingabe-Datenstrom a = (a1 , . . . , an ): • Wähle X ∈ {1, . . . , n} zufällig gleichverteilt. • Zähle Vorkommen von Wert aX an Positionen X , . . . , n. Sei r i := |{j | a j = a i , i ≤ j ≤ n}|. Es ist E rXk = fi m X X i=1 j=1 E rXk Dann: EY = 1 | X = j-te Position von Wert i “ · ” n 1 k f1 + (f1 − 1)k + · · · + 2k + 1k = n k f2 + (f2 − 1)k + · · · + 2k + 1k ··· fmk + (fm − 1)k + · · · + 2k + 1k = + + + . = = fi m X X 1 E Y | X = j-te Position von Wert i “ · ” n i=1 j=1 fi m X X n n i=1 j=1 j k − (j − 1)k f1k − (f1 − 1)k + · · · + fmk − (fm − 1)k + · · · + f1k + · · · + fmk = Fk . 2k − 1k + 1k + · · · + 2k − 1k + 1k Auch Varianz ist gut, später. Extrahiere Teilsumme Fk durch Teleskopsummierung. . . 380 Algorithmus S AMPLE C OUNT für Fk : 381 Beweis: Für Eingabe-Datenstrom a = (a1 , . . . , an ): • Wähle X ∈ {1, . . . , n} zufällig gleichverteilt. • Zähle Vorkommen rX von Wert aX an Positionen X , . . . , n • Ausgabe Y = n r k − (rX − 1)k . X Stichprobe realisieren mit Reservoir-Sampling. Ressourcen: r Kopien von Reservoir-Sampling mit Stichprobengröße 1, pro Kopie O(log m + log n) Platz / Zeit pro Element. Erwartungswert: Bereits erledigt. Varianz: Analog zu Formel für EY : Satz 4.22: Sei k ∈ R mit k ≥ 1, ε, δ > 0 und ℓ := min{m, n}. Dann liefern r = O (1/ε2 ) log(1/δ)k ℓ1−1/k Kopien von S AMPLE C OUNT eine (ε, δ)-Approximation von Fk . Dies ist ein 1-RundenDatenstromalgorithmus mit Speicherplatzbedarf und Zeit für Updates O r · (log m + log n) . E Y 2 = fi m X X i=1 j=1 1 E Y 2 | X = j-te Position von Wert i “ · ” n m fi 2 n2 X X j k − (j − 1)k . = n i=1 j=1 382 383 Fakt: Für beliebige x, y ∈ R mit x ≤ y und k ∈ R mit k ≥ 1: k y −x k ≤ (y − x)ky Hatten: E Y 2 k−1 Noch ein Fakt: Für x ∈ Rd , r ≥ s ≥ 1: kxkr ≤ kxks . . Hatten: m fi 2 n2 X X j k − (j − 1)k . = n E Y 2 = kn · F2k−1 . Sei ℓ := min{m, n}. Dann: i=1 j=1 Anwenden auf des Fakts auf jeweils einen der beiden 2 Faktoren von j k − (j − 1)k : E Y 2 ≤ n ≤ n = fi m X X i=1 j=1 fi m X X kj k−1 j k − (j − 1)k kf ik−1 j k − (j − 1)k i=1 j=1 m X f i2k−1 kn i=1 Fakt (2k−1)/k 2−1/k = Fk nk −1/k ℓ1−1/k . = Fk2 · ≤ Fk2 · k−1 n ℓ Insgesamt: V (Y ) ≤ E Y 2 ≤ kn · F2k−1 ≤ k ℓ1−1/k · Fk2 . F2k−1 ≤ Fk Tschebyscheff: k ℓ1−1/k Pr{|Y − Fk | ≥ εFk } ≤ . ε2 Behauptung mit Probability-Amplification. = kn · F2k−1 . 385 384 Ordnungsstatistiken: Zufallsvariablen X1 , . . . , Xd ∈ {1, . . . , t}. Für geeignete Permutation π ∈ Sd : Xπ(1) ≤ · · · ≤ Xπ(d) . 4.4.5 Sketching-Algorithmen für F0 Hatten bereits gesehen: Für i = 1, . . . , d definiere X(i) als i-te der Zufallsvariablen in Sortierreihenfolge, d. h. X(i) = Xπ(i) . Name: i-te Ordnungsstatistik von X1 , . . . , Xd . Sampling-Algorithmen benötigten Stichprobengröße (n) für Approximation von F0 mit konstanten Fehlerparametern. Hier: Lösung mit Platz O(log m). Prominenteste Beispiele: • X(1) = min(X1 , . . . , Xd ); • X(d) = max(X1 , . . . , Xd ); • X((d+1)/2) = med(X1 , . . . , Xd ) für ungerades d. Idee: Ordnungsstatistiken. 386 387 Ordnungsstatistiken (Forts.): Leider funktioniert Idee nicht direkt: it it EX(i) = 6⇒ E − 1 = d. d +1 X(i) Nicht nur das: E(1/X(1) ) existiert nicht einmal. Diskreten Fall ansehen, neue Analyse. Satz 4.23: Für X1 , . . . , Xd ∈ [0, t] gemäß kontinuierlicher Gleichverteilung und unabhängig gilt: it . EX(i) = d +1 Minimum von Hashwerten Bezug zur Anzahl verschiedener Elemente: • Verschiedene Werte im Datenstrom seien X1 , . . . , Xd , gemäß Ziehen ohne Zurücklegen“ zufällig aus ” Universum {1, . . . , t}. • Approximieren durch Ziehen mit Zurücklegen“. ” • Weiter approximieren durch: diskrete Gleichverteilung → kontinuierliche Gleichverteilung. Algorithmus grob: • Erzeuge Gleichverteilung durch Abbilden der Daten mit Hashfunktion h : U = {1, . . . , m} → {1, . . . , t}. • Bestimme xmin , Minimum der Hashwerte der Datenstromelemente. • Gemäß Inspiration durch Ordnungsstatistiken: Wähle Y := t/xmin als Schätzer für F0 . 389 388 Implementierung: Algorithmus M INIMUM Nimm 2-fach unabhängige Hashklasse H und h ∈ H zufällig. Intialisierung: Wähle Hashfunktion h : U → {1, . . . , t} zufällig aus 2-fach universeller Hashklasse H , t ≥ m. Setze xmin := ∞. Z. B. polynomielle Körperklasse: • Analyse: Brauche t ≥ m, wähle t := 2ℓ mit ℓ := ⌈log m⌉, benutze Körper Fℓ2 . VON H ASHWERTEN : Update für a ∈ U: xmin := min(xmin , h(a)). • Hashwerte aus {0, 1}ℓ abbilden auf {1, . . . , 2ℓ }. • Platz O(log m), Zeit für Berechnung von Hashwert Ausgabe: y = t/xmin. O(log m · polyloglog m). 390 391 Relativer Fehler bisher viel zu groß. Satz 4.24: Sei c > 1. Der Algorithmus M INIMUM VON H ASHWERTEN basierend auf der polynomiellen Körperklasse liefert mit Platz O(log m) und Zeit O log m polyloglog m pro Element eine Ausgabe Y mit 3 Pr{1/c ≤ Y /F0 ≤ c} ≤ . c Idee: Benutzere höhere Ordnungsstatistiken. Arbeit: Bar-Yossef, Jayram, Kumar, Sivakumar, Trevisan (2000). Szenario: Datenstrom mit verschiedenen Werten b1 , . . . , bd : X1 := h(b1 ), . . . , Xd := h(bd ). Theorie für kontinuierlichen Fall: EX(r ) = rt/(d + 1). Analyse Spezialfall von der zu folgendem Algorithmus, daher hier nicht. Flajolet und Martin (1985): Variante dieses Verfahrens, wo nur Index in Hash-Bitvektoren gespeichert wird, aber feste Hashfunktion. Liefert im idealisierten Szenario zufälliger Daten Algorithmus mit Platz O(loglog m). Algorithmus grob: • Berechne X(r ) , r justierbar. • Benutze als Schätzer Y := rt/X(r ) . 392 393 Algorithmus K LEINSTE H ASHWERTE: Vorbereitungen: Initialisierung: Wähle eine Hashfunktion h ∈ H zufällig; initialisiere T als leeren binären Suchbaum für Werte aus {1, . . . , t}. • Hashing genauso wie im Algorithmus M INIMUM VON H ASHWERTEN. Benutze h ∈ H , H 2-fach unabhängige Hashklasse U = {1, . . . , m} → {1, . . . , t}, t ≥ m. Wähle polynomielle Körperklasse für Fℓ2 , ℓ := ⌈log m⌉, liefert wieder Platz O(log m), Zeit für Hashwert O(log m polyloglog m). Update für a ∈ {1, . . . , m}: x := h(a); if N UM E LEMS (T ) < r or (S EARCH (T , x) = 0 and x < M AX (T )) then I NSERT (T , x); if N UM E LEMS (T ) > r then D ELETE M AX (T) fi; fi. • Verwalte r kleinste Hashwerte in bisherigem Datenstrom in balanciertem Suchbaum (AVL-Baum, 2-3-Baum). Operationen S EARCH, I NSERT, D ELETE M AX, N UM E LEMS in jeweils O (log r )(log m) Zeit. Platz O(r log m). Ausgabe: y = rt/M AX (T ), falls N UM E LEMS (T ) = r , sonst N UM E LEMS (T ). 394 395 Lemma 4.25: Beweis von Satz 4.25: 6/ε 2 . Sei 0 < ε ≤ 1 und r ≥ Der Algorithmus K LEINSTE H ASHWERTE berechnet mit Platz O(r log m) und Zeit pro Element O (log r )(log m) eine ε, 10/ ε2 r -Approximation von F0 . Ressourcen gemäß Vorüberlegung. Analysiere Fehlerwskt. Wieder Datenstrom mit verschiedenen Werten b1 , . . . , bd , X1 := h(b1 ), . . . , Xd := h(bd ). Algorithmus berechnet Y = rt/X(r ) . Algorithmus korrekt“, falls ” rt (1 − ε)d ≤ Y = X(r ) rt ≤ X(r ) (1 + ε)d Damit: Satz 4.26: Der Algorithmus K LEINSTE H ASHWERTE mit r := 21/ε2 und Probability-Amplification für die Fehlschlagswskt. mit 2(log(1/δ)) Kopien liefert (ε, δ)-Approximation von F0 mit Platz O 1/ε2 log(1/δ) log m und Zeit pro Element O log(1/δ) log m polyloglog m + log(1/ε) . 396 ≤ ≤ (1 + ε)d rt . (1 − ε)d ⇔ Zeige, dass Wskt. für Nichteinhaltung dieser Schranken höchstens 6/ ε2 r bzw. 4/ ε2 r . Dann insgesamt Fehlschlagswskt. höchstens 10/ ε2 r . 397 X(r) < rt/(1 + ε)d =: ℓ: Nur der Fall, wenn mindestens r Hashwerte kleiner als ℓ. Nebenrechnung: Hashwerte insbesondere gleichverteilt über Wertebereich {1, . . . , t}. Für jedes einzelne Xi gilt: ⌈ℓ⌉ r r 1 t≥m≥d 1 p := Pr{Xi < ℓ} ≤ ≤ ≤ + + . t (1 + ε)d t (1 + ε)d d Definiere Zi := [Xi < ℓ] und Z := Z1 + · · · + Zd . Dann: 1 1 (1) r r +1 = r + ; EZ = dp ≤ ≤ 1+ε 1+ε r 1 + ε/2 r V (Z ) = dp(1 − p) < . 1 + ε/2 6/ε 2 Für ε ≤ 1 und r ≥ gilt: 1 1 1 (1) + ≤ ; 1+ε r 1 + ε/2 1 1 1 − ≥ . (2) 1−ε r 1 − ε/2 398 399 X(r) > rt/(1 − ε)d =: u: Nur der Fall, wenn weniger als r Hashwerte obere Schranke u einhalten. Tschebyscheff liefert: Für jedes einzelne Xi gilt: ⌊u⌋ r 1 ≥ − . p := Pr{Xi ≤ u} ≥ t (1 − ε)d d Definiere Zi := [Xi ≤ u] und Z := Z1 + · · · + Zd . Dann: (2) r r r EZ = dp ≥ −1 ≥ , V (Z ) < . 1−ε 1 − ε/2 1 − ε/2 Wieeder Tschebyscheff: Pr{Z < r } ≤ Pr |Z − EZ | ≥ 1/(1 − ε/2) − 1 r r ≤ 2 (1 − ε/2) (ε/2)/(1 − ε/2) r 2 4 4(1 − ε/2) ≤ 2 . = 2 ε r ε r Pr{Z ≥ r } ≤ Pr |Z − EZ | ≥ 1 − 1/ 1 + ε/2 r V (Z ) ≤ 2 1 − 1/(1 + ε/2) r 2 r ≤ 2 (1 + ε/2) (ε/2)/(1 + ε/2) r 2 4(1 + ε/2) ε≤1 6 ≤ 2 . = ε2r ε r 401 400 4.5 Metrische Einbettungen Problem: Dimensionsreduktion Anwendungen: • Gegeben Punkte v1 , . . . , vn ∈ Rd Dimensionsreduktion: ( hochdimensionaler Raum“). ” • Ziel: Abbilden auf e v1 , . . . , e v n ∈ Rk , k ≪ d ( niedrigdimensionaler Raum“), ” sodass Abstände nicht zu sehr verzerrt. • Clustering; • algorithmisches Lernen; • Approximate Nearest-Neighbor Search (ANN); • Datenstromalgorithmen, z. B. Passende Abbildung: Metrische Einbettung. für Normen und Abstände (hier). Abstände: Für Vektor x = (x1 , . . . , xd ) ∈ Rd : P 1/p d p • Lp -Normen, p > 0: kxkp := |x | . i=1 i • Maximumsnorm, L∞ : • Hammingnorm, L0 : Metrische Einbettungen allgemein: kxk∞ := max1≤i≤d |xi |. Approximationsalgorithmen für Graphprobleme. kxk0 := |{i | xi 6 = 0}|. 402 403 Für uns entscheidende Eigenschaft: 4.5.1 Stabile Verteilungen Satz und Definition 4.28: Die Zufallsvariable X habe eine stabile Verteilung mit symmetrischer Dichtefunktion und X1 , . . . , Xd seien unabhängige Kopien von X . Dann gibt es ein p ∈ (0, 2], sodass für beliebige a = (a1 , . . . , ad ) ∈ Rd gilt: Definition 4.27: Nenne reelle Zufallsvariable X und ihre Verteilung stabil, wenn positive Linearkombinationen von unabhängigen Kopien von X Verteilung haben, die sich durch Verschieben und Skalieren der Verteilung von X ergibt. Genauer: Seien X1 , . . . , Xd unabhängige Kopien von X , a1 , . . . , ad ∈ R+ , dann sollen c ∈ R+ und d ∈ R existieren, sodass a1 X1 + · · · + ad Xd ∼ kakp · X , P 1/p d p wobei kakp = . i=1 |ai | Nenne dann Verteilung p-stabil. a1 X1 + · · · + ad Xd ∼ cX + d, Analoge allgemeinere Aussage (mit komplizierterer rechter Seite) für gewichtete Summen beliebiger stabiler Verteilungen. wobei Z ∼ Z ′ bedeutet, dass Z und Z ′ identisch verteilt. 405 404 Beispiele für stabile Verteilungen: • Normalverteilung: 2-stabil. fN (x) = √ 1 2π σ ·e − 12 x−µ 2 σ , x ∈ R. fL (x) = x > δ. γ 1 · 2π (x − δ)3/2 exp • Für p ∈ (0, 2) gilt: p-stabile Verteilung ist approximativ 2 4 Potenzgesetzverteilung mit Exponent 1 + p: Dichtefunktion sei f , dann existiert c > 0 geeignet, sodass f (x)/(cx −(1+p) ) → 1 für x → ∞. 0.4 0.3 0.2 0.1 1 γ · 2 , x ∈ R. π γ + (x − δ)2 • Lévyverteilung: 1/2-stabil. 0 –4 • Cauchyverteilung: 1-stabil. fC (x) = Eigenschaften stabiler Verteilungen: 0.4 0.3 0.2 0.1 0 –4 Damit Skaleninvarianz und heavy tails“. ” • Für 1 < p < 2 existiert Erwartungswert, aber Varianz nicht. 2 4 0.4 −γ 2(x − δ) , 0.2 0 • Für p ≤ 1 existiert weder Erwartungswert, noch Varianz. 1 2 3 4 (Ohne Beweise.) Diese und x 7 → fL (−x) einzige stabile Verteilungen mit bekannter geschlossener Form. 406 407 Simulation von stabilen Verteilungen (Forts.): Simulation von stabilen Verteilungen: Beispiel: Normalisierte Cauchyverteilung 1 1 · , π 1 + x2 Verteilungsfunktion F (x) = arctan(x)/π + 1/2. Für Normalverteilung: Box-Muller-Verfahren. Dichte f (x) = Allgemeines Verfahren: Sei F invertierbare Verteilungsfunktion. • Wähle U ∈ [0, 1] zufällig gleichverteilt. • Ausgabe F −1 (U). Damit: F −1 (y ) = tan(π(y − 1/2)), y ∈ (0, 1). Für Implementierung Approximation mit endlicher Genauigkeit (Standard-Numerik-Tricks, Taylorreihen. . . ). Korrektheit klar: 1 0.8 0.6 0.4 0.2 Pr{F −1 (U) ≤ x} = Pr{U ≤ F (x)} = F (x). –4 –2 0 2 4 409 408 Simulation von stabilen Verteilungen (Forts.): 4.5.2 Randomisierte Projektionen Allgemein gilt: Wichtiges positives Ergebnis für L2 -Norm: Satz 4.29: Seien U1 und U2 über [0, 1] gleichverteilte, unabhängige Zufallsvariablen. Dann ist für p ∈ (0, 2] die im Folgenden definierte Zufallsvariable S(U1 , U2 , p) p-stabil. Sei θ := π(U1 − 1/2) und sin(pθ ) cos(θ (1 − p)) (1−p)/p , p 6 = 1; − ln U2 S(U1 , U2 , p) := (cos θ )1/p tan θ, p = 1. Satz 4.30 (Johnson-Lindenstrauss-Lemma, 1984): Gegeben Punkte v1 , . . . , vn in Rd und ε > 0. Dann existiert approximative metrische Einbettung in Rk mit relativem Fehler ε, d. h., ve1 , . . . , ven ∈ Rk mit (1 − ε)kvi − vj k2 ≤ kvei − vej k2 ≤ (1 + ε)kvi − vj k2 und k = O 1/ε2 log n . Und: Kann das auch noch effizient berechnen. . . Für Cauchyverteilung bewiesen, ansonsten hier nicht. Für p = 2 Formel wie beim Box-Muller-Verfahren. 410 411 Wahl der Matrix X für randomisierte Projektion: Realisierung durch randomisierte Projektionen: • Klassisch: Einträge gemäß N(0, 1)-Verteilung. • Benutze k × d-Matrix X mit zufälligen Einträgen. (Vgl. SimHash-Verfahren.) • Diskret & effizient: Einträge gleichverteilt aus {−1, 1}. (Vgl. praktisches SimHash-Verfahren, F2 -Algorithmus.) Einträge unabhängig voneinander. • Einbettung: 1 v 7 → ve := √ Xv . Kann zeigen: k (Projektion auf den k -dimensionalen Unterraum in Rn , der von den Zeilen von X aufgespannt wird.) Satz 4.31: Sei β, ε > 0. Sei X eine randomisierte Matrix wie oben beschrieben. Dann ist Fehlerschranke in JL-Lemma mit Wahrscheinlichkeit 1 − 1/nβ erfüllt für k = O β/ε2 log n . Wie Einträge von X wählen? 413 412 Randomisierte Projektionen für Strategie für Beweis (Fall k = 1): beliebige p-Normen, p ∈ (0, 2): Gemäß Satz 4.28 für Zufallsvektor X , Komponenten unabhängig gemäß 2-stabiler Verteilung N(0, 1): E hX , v i2 = E kv k22 · N(0, 1)2 = kv k22 . Nur für Spezialfall k = 1. Wieder zufälliger Vektor X ∈ Rd , Komponenten unabhängig gemäß p-stabiler Verteilung D. Für Gleichverteilung auf {−1, 1} dasselbe, Beweis siehe Analyse F2 -Algorithmus R AND P ROJECT. Gemäß Satz 4.28: Zeige nun weiter, dass sogar starke Konzentration um Erwartungswert gilt (exponentielle Verbesserung des Fehlers in spendierter Anzahl Dimensionen). hX , v i ∼ kv kp · D. Problem für Anwendung bei Dimensionsreduktion: • Eventuell ist Erwartungswert oder Varianz unendlich. Bemerkung: Abhilfe später: Erwartungswert → Median. In schwächeren Form bei F2 -Algorithmus gesehen. Für Ergebnis hier bessere Analyse wie bei Beweis der Chernoff-Schranken erforderlich. • Kann für p = 1, L1 -Norm, zeigen: Jede approximative Einbettung mit konstantem Fehler benötigt k = n(1) Dimensionen. 414 415 4.6 Abstandsmaße Allgemeines Normproblem: Datenstrom a = (a1 , . . . , an ) beschreibt Vektor v = (v1 , . . . , vm ) ∈ Rm implizit: • Zu Anfang v = (0, . . . , 0). • Für Datum a i = (j, d) mit j ∈ {1, . . . , m} und d ∈ R: Addiere d zu j-ter Komponente von v . Problem: Gegeben Datenströme a, b, bestimme Abstand von a, b. Motivation: • Vergleich von Datenverkehr verschiedener Router; • Datenpakete, die in Teilnetz verloren gegangen sind; • Aufspüren von DoS-Angriffen (SYN- vs. ACK-Pakete); • Aufspüren von Duplikaten in Webcrawl; • Konsistenz von Datenbanken. Beispiel: a = (3, 4) (1, 2) (3, 1) (3, −5) (1, 1) (5, 8) (2, −2) → v = (3, −2, 0, 0, 8). Will: Norm von v . 416 Allgemeines Normproblem (Forts.): 417 Definition 4.32: Sei U = {1, . . . , m} × {−w , . . . , w }, aP = (a1 , . . . , an ) ∈ U n . ∗ Für i ∈ {1, . . . , m} definiere fi (a) := j : a j =(i,b) b. Für k ∈ R+ 0 ist das Lk -Norm-Problem: m 1/k X ∗ ∗ ∗ k Lk (a) := k(f1 (a), . . . , fm (a))kk = |fi | , Spezialfälle des allgemeinen Problems: • Abstand von Datenströmen: Eingabeströme seien a = ((i1 , x1 ), . . . , (ina , xna )) und b = ((j1 , y1 ), . . . , (jnb , ynb )). Betrachte durch Verschmelzen entstehenden Strom ((i1 , x1 ), . . . , (ina , xna ), (j1 , −y1 ), . . . , (jnb , −ynb )). i=1 falls k > 0 und für k = 0: L0 (a) := • Problem, wo zu jeder Zeit v1 , . . . , vm ≥ 0. Algorithmen erhalten dies als Versprechen“ und ” müssen nur korrekt arbeiten, wenn Versprechen erfüllt (Promise-Problem). Außerdem: k(f1∗ (a), . . . , fm∗ (a))k0 := m X i=1 [fi∗ 6 = 0]. L∞ (a) := k(f1∗ (a), . . . , fm∗ (a))k∞ = max |fi∗ (a)|. 1≤i≤m Lk -Abstandsproblem für Datenströme a, b und k ∈ R+ 0 ∪ {∞}: • Problem wo alle Updates nichtnegativ. Lk (a, b) := k(f1∗ (a), . . . , fm∗ (a)) − (f1∗ (b), . . . , fm∗ (b))kk . • Problem wo alle Updates +1: Häufigkeitsmomente. 418 419 4.6.1 Sketching-Algorithmus für L2 Benutze selbe Notation wie in Abschnitt 4.4.3. Insbesondere für zufälligen Startbitvektor S: h1 (S), . . . , hm (S) 4-fach unabhängige Zufallsvariablen. Für Häufigkeitsmomente: • Datenstrom a = (a1 , . . . , an ) mit a i ∈ {1, . . . , m}n . • Y := m X i=1 • Ausgabe fi X i = Y 2. m X X Xi. Algorithmus R AND P ROJECT für L2 : i=1 j : a j =i Intialisierung: Für ℓ := ⌈log m⌉ wähle S ∈ {0, 1}ℓ zufällig gleichverteilt und wähle irreduzibles Polynom über F2 vom Grad ℓ. Setze x := 0. Hier: • Datenstrom a = (a1 , . . . , an ) mit a i = (b i , d), bi ∈ {1, . . . , m}, d ∈ {−w , . . . , w }. m X m X X ∗ e • Y := d · Xi. fi X i = i=1 • Ausgabe q Update für a = (b, d) ∈ U = {1, . . . , m} × {−w , . . . , w }: x := x + d · hb (S). Ausgabe: √ y = x 2. i=1 j : b j =i e 2. Y 421 420 Fehleranalyse: Satz 4.33: Alter Beweis gültig für beliebige reelle Vektoren anstelle von (f1 , . . . , fm ), insbesondere auch für (f1∗ , . . . , fm∗ ) (benutze weder spezielle Definition noch Nichtnegativität). e = P f ∗ Xi mit Wahrscheinlichkeit mindestens 2/9 Damit Y Sei δ > 0 und 0 < ε ≤ 1. Dann liefern r = 2 (1/ε2 ) log(1/δ) Kopien des Algorithmus R AND P ROJECT eine (ε, δ)Approximation von L2 . Dies stellt 1-Runden-Datenstrom algorithmus dar mit Speicherplatz O r (log m + log(nw )) und Zeit pro Update O r (log m polyloglog m + log(nw )) . i i Approximation von L22 mit e 2 ≤ (1 + ε)L2 . (1 − ε)L22 ≤ Y 2 Es folgt (für ε ≤ 1): √ e| (1 − ε)L2 ≤ 1 − ε · L2 ≤ Y = |Y √ ≤ 1 + ε · L2 ≤ (1 + ε)L2 . Beweis: Ressourcen: Wie für F2 , nur jetzt x ∈ {−nw , . . . , nw }. Damit Term O(log(nw )) in Platz / Zeit pro Element. Behauptung mit Probability-Amplification wie immer. 422 423 4.6.2 Sketching-Algorithmus für L1 Definition 4.34: Sei X eine reelle Zufallsvariable gemäß einer W-Verteilung mit invertierbarer Verteilungsfunktion F : R → [0, 1]. Dann ist der Median von X (bzw. der zugehörigen Verteilung) definiert als med(X ) := F −1 (1/2). Arbeiten: Indyk (2000, 2006). Idee: Sei v ∈ Rd und X = (X1 , . . . , Xd ) ∈ Rd zufällig, Komponenten unabhängige Kopien von cauchyverteilter Zufallsvariable C. Beobachtung 4.35: Cauchyverteilung ist 1-stabil. Gemäß Satz 4.28: Sei a ∈ R+ , X Zufallsvariable, dann gilt hX , v i ∼ kv k1 · C. med(a · X ) = a · med(X ). Problem: EC = ∞. Daher Erwartungswert → Median. 424 Beziehung Median von Verteilungen ↔ Median von Stichproben gemäß dieser Verteilung: 425 Im Folgenden: Cauchyverteilung“ → Dichte x 7 → 1/π · 1/ 1 + x 2 . ” Satz 4.36: Sei X Zufallsvariable mit stetiger Dichtefunktion und streng monoton wachsender Verteilungsfunktion F , für die die Ableitung von F −1 auf einem Intervall [1/2 − γ , 1/2 + γ ] mit 0 < γ < 1/2 durch d > 0 nach oben beschränkt ist. Sei m der Median dieser Verteilung. Dann gibt es ein c > 0, sodass für beliebige ε, δ mit 0 < ε ≤ γ d, δ > 0 und n ≥ c log(1/δ)/ε2 unabhängige Kopien X1 , . . . , Xn von X gilt: Pr | med(X1 , . . . , Xn ) − m| ≤ ε ≥ 1 − δ. Lemma 4.37: Sei C cauchyverteilte Zufallsvariable. Dann gilt med(|C|) = 1. Beweis: Dichte von |C| ist f (x) = 2/π · 1/ 1 + x 2 für x ∈ R+ 0, Verteilungsfunktion: Z x 2 arctan x. F (x) = f (t)dt = π −∞ Da tan(π/4) = 1 ist, folgt F (1) = 1/2 und damit auch med(|C|) = 1. Konzentrationsergebnis analog zu Ergebnissen für Erwartungswert (Chernoff für diskreten Fall, Gesetz der großen Zahlen für kontinuierlichen Fall). 426 427 Algorithmus C AUCHY M EDIAN I DEAL für L1 : • Generiere unabhängige, cauchyverteilte Zufallsvariablen Beweis: Xi,j , für i = 1, . . . , m und j = 1, . . . , r . • Für j ∈ {1, . . . , r } berechne m X fi∗ Xi,j . Yj := Falls L1 (a) = 0: Dann f1∗ = · · · = fm∗ = 0, Xi,j = 0 für alle i, j und damit auch Ausgabe Z = 0. Im Folgenden L1 (a) > 0. Sei C Zufallsvariable mit (normalisierter) Cauchyverteilung. i=1 • Ausgabe: Z := med(|Y1 |, . . . , |Yr |). Gemäß Satz 4.28: Yj ∼ k(f1∗ , . . . , fm∗ )k1 · C = L1 · C. Satz 4.38: Sei 0 ≤ ε ≤ 0,2 und δ > 0. Dann berechnet der Algorithmus C AUCHY M EDIAN I DEAL für eine geeignete Konstante c > 0 und r = c log(1/ε)/δ 2 eine (ε, δ)-Approximation der L1 -Norm der Eingabe. Beobachtung 4.35, Lemma 4.37 liefern: med(|Yj |) = med(L1 · |C|) = L1 · med(|C|) = L1 . 428 429 Satz 4.36 liefert: Sei 0 ≤ ε ≤ γ d = 0,2, δ > 0, dann existiert c > 0, sodass für r = c log(1/δ)/ε 2 und Z = med(|Y1 |, . . . , |Yr |): Für Anwendung von Satz 4.36 untersuche Steigung der Inversen der Verteilungsfunktion F von |C|. Pr{|Z − L1 | ≤ ε} ≥ 1 − δ. Es ist Diskreter Wertebereich für Vektoren ⇒ L1 ≥ 1, damit auch Schranke für relativen Fehler. 2 F (x) = · arctan(x), F −1 (y ) = tan((π/2)y ). π Damit: π 2 ′ π 1 + tan ·y . F −1 (y ) = 2 2 Effiziente Realisierung: • Simulation von Cauchyverteilung gemäß Satz 4.29. • Diskretisierung und Approximation mit endlicher Genauigkeit. • Arbeiten mit Pseudozufallszahlengenerator für Algorithmen mit beschränktem Speicherplatz. Taylorreihen-Abschätzung liefert: Für γ = 0,05 gilt ′ y ∈ [1/2 − γ , 1/2 + γ ] ⇒ F −1 (y ) ≤ 4 =: d. Indyk (2006) skizziert auch Erweiterung auf beliebige p-Normen mit p ∈ (0, 2] mit Hilfe p-stabiler Verteilungen. 430 431 4.6.3 Sketching-Algorithmus für L0 Beweis: Da x1 , . . . , xm ∈ Z: m m X X p |xi |p = kxkp . [xi 6 = 0] ≤ Erinnerung: Hammingnorm, L0 : m X L0 (x1 , . . . , xm ) = [xi 6 = 0]. i=1 i=1 Verallgemeinerung von F0 / Anzahl verschiedene Elemente. Andererseits: m X Arbeit: Cormode, Datar, Indyk und Muthukrishnan (2002). Idee: Approximation mit p-Norm, p sehr klein. i=1 |xi |p ≤ i=1 p xi ≤ w p [xi 6 = 0], damit m X w p [xi 6 = 0] = w p kxk0 . i=1 Wegen p = log(1 + ε)/ log w : Lemma 4.39: Sei x = (x1 , . . . , xm ) ∈ {−w , . . . , w }m , 0 < ε ≤ 1 und p = log(1 + ε)/ log w . Dann gilt w p = 2p log w = 1 + ε. p kxk0 ≤ kxkp ≤ (1 + ε)kxk0 . 433 432 4.6.4 Anwendung im Datenbankszenario Grobalgorithmus für L0 damit: • Für p := log(1 + ε)/ log w : Berechne Ausgabe Y von Algorithmus mit randomisierten Projektionen gemäß p-stabiler Verteilung, (ε, δ)-Approximation von Lp . • Ausgabe Z = Y p . Falls erster Schritt korrekt, folgt mit Lemma: Abweichung nach oben höchstens um Faktor (1 + ε)2 ≤ 1 + 3ε, Abweichung nach unten höchstens um Faktor 1 − ε. ⇒ Relativer Fehler höchstens 3ε. Problemvariante hier: Attribut mit Werten aus {1, . . . , m}. • Verwalte Vektor v ∈ Nm . Zu Anfang v = (0, . . . , 0). 0 • Operationen für x ∈ {1, . . . , m}: – I NSERT (x): vx := vx + 1. – D ELETE (x): vx := vx − 1. – Q UERY : Liefert Fk (v ). Versprechen: D ELETE-Operation nur, wenn vx > 0. Sonst für Algorithmen beliebige Ausgabe erlaubt. Motivation für Versprechen: • Praktisch sinnvoll, da Datenbank Absicherung übernimmt. • Problemvariante, wo D ELETE Nulloperation“, falls vi = 0: ” Benötigt Speicherplatz (m) (ohne Beweis). Korrektheitsbeweis in Originalarbeit unvollständig (Analyse für Lp -Algorithmus fehlt). In Experimenten aber scheinbar vernünftiges Verhalten. Problem effizient lösbar für k ∈ [0, 2] im Datenstromszenario mit Algorithmen aus Abschnitten 4.6.1 – 4.6.3. 434 435 4.6.5 Abschätzung der Join-Größe Datenbankrelationen → Skizzen. Gegeben: Relationen R1 , R2 mit gemeinsamem Attribut A. Ziel: Abschätzung von |R1 ⋊ ⋉R1 .A=R2 .A R2 |. Attribut habe Werte aus {1, . . . , m}. • Seien X1 , . . . , Xm ∈ {−1, 1} 4-fach unabhängige Zufallsvariablen. • Relation R mit absoluten Häufigkeiten f1 , . . . , fm : Definiere m X fi Xi . S(R) := Arbeit: Alon, Gibbons, Mathias, Szegedy (2002). Dort gezeigt: Für Relationen R1 , R2 mit je n Tupeln und Versprechen, dass Join-Größe mindestens B, n ≤ B ≤ n2 /2: Sampling-Algorithmen für (ε, δ)-Approximation von √ Join-Größe benötigen Samplegröße (n − B)2 /B . i=1 Für Probability-Amplification betrachte Sr (R), r Kopien für unabhängige Sätze von X1 , . . . , Xm . 437 436 Lemma 4.40: E(S(R1 )S(R2 )) = |R1 ⋊ ⋉ R2 | und V (S(R1 )S(R2 )) ≤ 2 · F2 (R1 ) · F2 (R2 ). Beweis: Lemma und Tschebbyscheff liefern: Pr S(R1 )S(R2 ) − |R1 ⋊ ⋉ R2 | ⋉ R2 | ≤ ε|R1 ⋊ Erwartungswert: Siehe Übungsaufgabe 6.3 zum (alternativen) SimHash-Verfahren. Varianz hier nicht (Standardrechnung ähnlich wie bei F2 -Algorithmus). 2F2 (R1 )F2 (R2 ) ε2 |R1 ⋊ ⋉ R2 | 2 2B2 ≤ . ε2 B12 Probability-Amplification → Rest. ≤ Satz 4.41: Seien R1 , R2 Relationen mit |R1 ⋊ ⋉ R2 | ≥ B1 und F2 (R1 ), F2 (R2 ) ≤ B2 . Seien ε, δ > 0. Dann lässt sich für r = 2 log(1/δ)/ε2 · B22 /B12 aus Sr (R1 ) und Sr (R2 ) eine (ε, δ)-Approximation von |R1 ⋊ ⋉ R2 | berechnen. 438 439 4.7 Top-k -Listen Algorithmische Ergebnisse für Normprobleme: Problem: Gegeben Datenstrom, berechne Top-k -Liste: Häufigste k Werte zusammen mit ihren abs. Häufigkeiten. Alles für Datenstromalgorithmen, die (ε, δ)-Approximation für Konstanten ε, δ berechnen. Motivation: Ressourcen für Datenstromalgorithmus: L2 : Lk , k ∈ [0, 2] Lk , k > 2: • Käuferverhalten in E-Commerce-Anwendung. • Top-k -Liste von Webseiten gemäß Ranking. S = O(log m + log n), T = O(log m polylog m + log n) (Abschnitt 4.6.1) • Zusammenfassung von Datenbank-Relation (größte Balken in Histogramm). • Internet-Traffic-Management: Anomalien / Engpässe. S, T = polylog(m, n, w ) (Abschnitte 4.6.2 (k = 1), 4.6.3 (k = 0)). S = O ℓ1−2/k · polylog(m, n) , T = poly(log m, log n, w ), ℓ = min{m, n}. Ähnliches Problem: Häufigste Elemente Finde alle Daten mit Attributwert oberhalb von Schwellwert. Namen: Heavy Hitters, Hot Items, Iceberg Queries. . . 441 440 Top-1-Liste ist (im Wesentlichen) das Problem F∞ . Bei Universumsgröße m Platz (m) notwendig. → Betrachte Approximationen / Problem-Relaxationen. Im Folgenden effienzenter Datenstromalgorithmus unter zusätzlichen Annahmen über Verteilung der Daten. Definition 4.42: Top-k -(ε, δ)-Approximation Gegeben Datenstrom über U = {1, . . . , m} mit absoluten Häufigkeiten f1 ≥ f2 ≥ · · · ≥ fm . Will Menge T von k Paaren (Wert, absolute Häufigkeit), sodass mit Wahrscheinlichkeit mindestens 1 − δ: • Jeder Wert in T hat absolute Häufigkeit mindestens (1 − ε)fk . • Alle Werte mit absoluter Häufigkeit größer als (1 + ε)fk kommen in T vor. Arbeit: Charikar, Chen und Farach-Colton (2004). Unter hier beschriebenen Annahmen sogar Schätzung aller absoluten Häufigkeiten möglich. Weitere Anwendungen z. B. bei raffinierteren Datenstromalgorithmen für Häufigkeitsmomente. 442 443 4.7.1 Schätzung aller Häufigkeiten Natürlich nicht: E (YX i )2 = E Y 2 = F2 , Datenstrom a = (a1 , . . . , an ) mit Werten aus U = {1, . . . , m}, absolute Häufigkeiten f1 ≥ · · · ≥ fm . Fehlerschranke mit Tschebbyscheff zu schlecht. Idee: Benutze 2-fach unabhängige ZVs X1 , . . . , Xm ∈ {−1, 1}. Berechne wie in F2 -Algorithmus: n m X X Xa j . fjXj = Y := Idee für Abhilfe: • Intuition: Für kleine f i Summe Y zu sehr durch große Häufigkeitswerte verunreinigt“. ” • Verteile Gesamtsumme Y auf mehrere Zähler, die für Teilmengen des Wertebereichs zuständig. Genauer: • Benutze b ≤ m Zähler (typischerweise b ≪ m). • Ordne Wert j ∈ {1, . . . , m} zufälligen Zähler zu, der für diesen Wert zuständig“. ” j=1 j=1 Es gilt: E(YX i ) = E X m fjXjXi j=1 = m X j=1 V (YX i ) = F2 − f i2 . f j E(X j X i ) = f i . Super, damit alle absoluten Häufigkeiten und darauf basierende Probleme. . . 445 444 Neuer Schätzer tatsächlich auch mit hoher Wahrscheinlichkeit gut – für geeignete Verteilungen: Algorithmus C OUNT S KETCH : • Wähle H ∈ H zufällig, H 2-fach unabhängige Hashklasse. • Berechne für z ∈ {1, . . . , b}: n X X [H(a j ) = z]Xa j = fjXj, Yz := j=1 Satz 4.43 (Charikar u. a. 2004): q Pm >k 2 Sei b ≥ 8k , F2 := i=k+1 f i und γ := F2>k /b. Dann gilt für i ∈ {1, . . . , m}: Pr{|YH(i) X i − f i | ≤ 8γ } ≥ 5/8. j∈H −1 (z) Schätzer für f i : X i YH(i) . Beweis: Übersicht über Schritte: 1 Kleine Varianz, falls keiner der sehr häufigen Werte“ ” 1, . . . , k auf Zähler für f i gehasht. 2 Sehr häufige Werte nur mit kleiner Wskt. auf Zähler für f i gehasht. 3 Falls kleine Varianz, dann mit großer Wskt. Abweichung des Schätzers von f i klein. Behauptung: E(YH(i) X i ) = f i . Beweis: Für eine feste Hashfunktion h ∈ H ist X X Yh(i) X i = fjXjXi = fi + fjXjXi. j∈h−1 (h(i)) j∈h−1 (h(i)),j6=i Behauptung per Satz von der totalen Wahrscheinlichkeit. 446 447 1. Große Varianz unwahrscheinlich: P Hatten: v >k (h) := j∈h−1 (z),j>k f j2 . Erinnerung: Schätzer ist YH(i) X i , es gilt E(YH(i) X i ) = f i und X X fjXjXi. Yh(i) X i = fjXjXi = fi + j∈h−1 (h(i)) Frage: Wie groß kann das für zufälliges h werden? j∈h−1 (h(i)),j6=i Also h → H ∈ H zufällig. H aus 2-fach unabhängiger Hashklasse ⇒ Wskt., dass einzelner Wert auf z abgebildet wird, ist 1/b. X m m X f j2 /b E([H(j) = z]) · f j2 = E v >k (H) = Varianz: Feste Hashfunktion h, sei z := h(i). Arbeite unter Bedingung, dass h−1 (z) ∩ {1, . . . , k } = ∅. Dann: 2 V (Yh(i) X i ) = E Yh(i) X i − E(Yh(i) X i ) X = E(f j X j X i · fℓ Xℓ X i ) j,ℓ∈h−1 (z)−{i} = X f j2 ≤ j∈h−1 (z),j6=i Definiere v >k (h) := P X = Markoff-Ungleichung liefert: j∈h−1 (z),j>k Pr{GROSSE VARIANZ } ≤ {1, . . . , k } 6 = ∅]. Pr{GROSSE VARIANZ ∨ KOLLISION ∨GROSSE A BWEICHUNG } ≤ Andererseits, falls keines der drei Ereignisse eintritt: q √ q |YH(i) X i − f i | ≤ 8V (YH(i) X i ) ≤ 8 v >k (H) q √ q >k ≤ 8 8F2 /b = 8 F2>k /b. 3. Große Abweichungen des Schätzers von f i unwahrscheinlich: GROSSE 449 Insgesamt gilt: Mit b ≥ 8k gemäß Voraussetzung folgt: k 1 Pr{KOLLISION } ≤ ≤ . b 8 Sei 1 . 8 448 2. Hashen von großen Häufigkeitswerten auf z = h(i) unwahrscheinlich: Sei KOLLISION := F2>k /b. Sei G ROSSE VARIANZ := [v >k (H) > 8F2>k /b]. f j2 . 2 j∈h−1 (z),j>k f j . [H −1 (z) ∩ j=k+1 j=k+1 A BWEICHUNG das Ereignis, dass 3 . 8 2 |YH(i) X i − f i | > 8V (YH(i) X i ). Da E |YH(i) X i − f i |2 = V (YH(i) X i ), folgt wieder mit Markoff: 1 Pr{GROSSE A BWEICHUNG } ≤ . 8 Fehlschlagswskt. 3/8 → Fehlschlagswskt. δ wie immer mit (Median-)Probability-Amplification, 2(log(1/δ)) Kopien. 450 451 4.7.2 Sketching-Algorithmus für Top-k -(ε, δ)-Approximation Arbeite im Folgenden unter Annahme, dass C OUNT S KETCH zu jedem Update-Zeitpunkt Abschätzungen für alle Häufigkeiten mit Fehler höchstens (ε/2)fk liefert. (Das passiert mit Wskt. mindestens 1 − δ.) Algorithmus TOP -k -C OUNT S KETCH (grob): • Schätzung absoluter Häufigkeiten mit C OUNT S KETCH. • Suchbaum mit k Werten, die bisher größte Schätzwerte hatten, zusammen mit exakten absoluten Häufigkeiten. Parameterwahlen für C OUNT S KETCH: • Fehlschlagswskt. δ ′ := δ/n. Dann Wskt. mindestens 1 − δ, dass zu jedem Updatezeitpunkt Abweichung der geschätzten absoluten Häufigkeit von exakter höchstens 8γ . • Bucketanzahl b so, dass 8γ ≤ (ε/2)fk . q ! f 6=0 8γ = 8 F2>k /b ≤ (ε/2)fk k⇔ b ≥ 256F2>k /(εfk )2 . Beobachtung: • Zu jedem Zeitpunkt alle Schätzwerte für Daten im Suchbaum mit Fehler höchstens (ε/2)fk . • Damit kann Algorithmus Werte richtig sortieren, deren Häufigkeiten sich um mehr als εfk unterscheiden. 453 452 Insgesamt: Behauptung: Im Baum zum Schluss kein Wert i ≥ k + 1 mit Häufigkeit kleiner als (1 − ε)fk . Satz 4.44: Sei b = max 8k , 256F2>k /(εfk )2 . Dann stellt der Algorithmus TOP -k -C OUNT S KETCH auf der Basis von r = 2(log(n/δ)) Kopien von C OUNT S KETCH und einer Dictionary-Datenstruktur einen Datenstromalgorithmus für die Lösung des Problems Top-k -(ε, δ)-Approximation dar. • Perfekte Lösung hat zum Schluss 1, . . . , k im Suchbaum. Algorithmus muss einen Wert davon verdrängt haben, dies sei j ∈ {1, . . . , k }. • Einfügezeitpunkt von i: Schätzwerte e fi, e f j mit e fi > e fj (Verdrängung). Aber: • e f i ≤ f i + (ε/2)fk < (1 − ε/2)fk . Speicherplatz im Wesentlichen dominiert von F2>k /fk2 (genauere Analyse Übungsaufgabe). • e f j ≥ f j − (ε/2)fk ≥ (1 − ε/2)fk . Widerspruch. Wann liefert das gute Ergebnisse? Verteilung fk+1 /n, . . . , fm /n nicht zu nahe an Gleichverteilung, z. B. für Potenzgesetzverteilungen. Analog: Alle Werte mit absoluter Häufigkeit größer als (1 + ε)fk zum Schluss im Suchbaum. 454 455 4.8 Histogramme Problem in allgemeiner Form: Approximation von Funktion durch abschnittsweise konstante Funktion, mit wenigen Abschnitten. Mathematisches Szenario: Gegeben Funktion f , Klasse von Funktionen F , Norm k · k. Finde Funktion a ∈ F , sodass kf − ak minimal. Gegenstand der Approximationstheorie. Hier: Kleinste-Quadrate-Approximation. • F abschnittsweise konstante Funktionen mit fester Abschnittsanzahl k ; • k · k = k · k2 , euklidische Norm. Hier: Funktion gegeben durch f1 , . . . , fn ∈ {−w , . . . , w }. Häufig: f1 , . . . , fn absolute Häufigkeiten. Datenbank-Gemeinde: V-optimale Histogramme“. ” Auch andere Normen (z. B. k · k1 ) und viele Problemvarianten. Motivation: Anfrageoptimierung, approximative Anfragebearbeitung, allgemein Komprimierung von Zeitreihen, . . . 456 457 Offline-Problem: Konkretere Umformulierung: Funktionswerte f1 , . . . , fn vorab bekannt. Berechne Fehler des optimalen Histogramms und zugehörige Intervalleinteilung I1 , . . . , Ik . Finde Zerlegung von {1, . . . , n} in Intervalle I1 , . . . , Ik und Werte c1 , . . . , ck ∈ R, sodass: k X i=1 VARi → min, VARi := Leicht zu sehen: Muss 1 X c i = AVGi := fj |Ii | X j∈Ii Idee: Dynamische Programmierung. 2 |f j − c i | . Sei OPT[p, i] j∈Ii := Fehler des optimalen Histogramms für f1 , . . . , f i mit p Intervallen. VAR[a . . . b] := wählen (dann VARi /|Ii | = Varianz in Intervall Ii ). b X i=a (f i − AVG[a . . . b])2 , wobei b X 1 AVG[a . . . b] := fi. b−a+1 Damit verbleibt Wahl der Intervalle I1 , . . . , Ik . i=a 458 459 Bellmansche Optimalitätsgleichung: • OPT[1, i] = VAR[1 . . . i], i = 1, . . . , n; • Für p = 2, . . . , k und i = 1, . . . , n: OPT[p, i] = min1≤x≤i−1 OPT[p − 1, x] + VAR[x + 1 . . . i] . Bemerkung: Wie (fast) immer bei dynamischer Programmierung reicht es im Wesentlichen, sich Berechnung der OPT-Tabelle zu überlegen. Ergänzung für Ausgabe der Intervallzerlegung: Speichere für alle p, i auch optimalen Zerlegungspunkt x, der für OPT[p, i] gewählt wurde. (Wieder k × n-Tabelle.) Lemma 4.45: VAR[a . . . b] = b X i=a f i2 + (b − a + 1) · AVG[a . . . b]2 . (Beweis Übugungsaufgabe.) Pi Pi Arrays mit j=1 f j bzw. j=1 f j2 für alle i in Zeit O(n) berechnen, dann alle VAR-Werte in Zeit O(1). Insgesamt Platz O(kn), Rechenzeit O kn2 . Dieses x ist linke Grenze für letztes Intervall in optimaler Zerlegung. Rekursiv weiter durch Tabelle hangeln. Aber: Ohne Zerlegung Speicherplatz leicht auf O(n) verbesserbar, mit Zerlegung schwerer und problematisch für Erweiterung auf 1-Runden-Datenstromalgorithmus. 461 460 Problem für sortierte Datenströme: Bei genügend Speicherplatz Anpassung des alten Algorithmus einfach: Werte sortiert gemäß Definitionsbereich der Funktion, Eingabedatenstrom ist a = (f1 , . . . , fn ). (Komplexer Algorithmus für unsortiertes Problem, benutzt u. a. auch hier vorgestellte Ideen.) Sei OPT-Tabelle mit optimalen Werten für f1 , . . . , fn bekannt. Berechne ε-approximative Lösung, d. h. OPT[k , n] ≤ Wert der Lösung ≤ (1 + ε)OPT[k , n]. Dann Update für neuen Wert fn+1 , indem (n + 1)-te Spalte der OPT-Tabelle neu berechnet wird. Problem: OPT-Tabelle benötigt Platz 2(kn). Hier: Deterministischer Algorithmus dafür. Arbeit: Guha, Koudas, Shim (2001). 462 463 Idee: Nur noch logarithmisch viele Zwischenpunkte x in OPT[k , n] = min 1≤x≤n−1 Sei OPT∗ [k , n] Optimum auf vergröbertem Definitionsbereich mit Zwischenpunkten d1 = 1, d2 , . . . , dℓ−1 , dℓ = n. OPT[k − 1, x] + VAR[x + 1 . . . n] . Zwischenpunkte d1 , . . . , dℓ so, dass Abweichung vom Optimum nicht zu groß. Will Zwischenpunkte mit OPT∗ [k , di+1 ] ≤ (1 + δ) · OPT∗ [k , di ] Wichtige Beobachtung: für kleines δ > 0, falls di+1 > di + 1 (Wahl von δ später.) Proposition 4.46: Für 1 ≤ a ≤ x ≤ b ≤ n gilt: • VAR[x, n] ≥ VAR[b, n]; • OPT[p, a] ≤ OPT[p, x]. Dazu Einteilung d1 , . . . , dℓ und OPT∗ gleichzeitig mit Datenstromalgorithmus berechnen. 465 464 Update-Operation des Algorithmus: Algorithmus – Datenstrukturen: Es seien bereits f1 , . . . , fn verarbeitet worden, d. h. für (p) p = 1, . . . , k und i = 1, . . . , ℓp : Zwischenpunkte di und (p) Tabelleneinträge OPT∗ [p, di ] berechnet. Ankunft von neuem Datum fn+1 . Für p = 1, . . . , k speichere: • Anzahl ℓp und Zwischenpunkte d (p) = 1, d (p) , . . . , dℓ(p) = n. 1 2 p (p) ∗ ∗ • Tabelleneinträge OPT [p, d ], . . . , OPT [p, dℓ(p) ]. • Pdi(p) j=1 Pdi(p) f j und j=1 1 p Für p = 1, . . . , k : 1 Teste, ob letztes Intervall vergrößert werden kann: (p) (p) Berechne für Zwischenpunkte d1 , . . . , dℓp −1 , n + 1 optimalen Wert und speichere diesen in OPT∗ [p, n + 1]. Falls OPT∗ [p, n + 1] ≤ (1 + δ)OPT∗ [p, n]: (p) dℓp := n + 1 und fertig. Ansonsten: f j2 . Bei bekannten Zwischenpunkten Berechnung von (p) OPT∗ [p, di ] analog zur alten Formel: (p) OPT∗ [p, d i ] = min 1≤j≤ℓp−1 (p−1) OPT∗ [p − 1, d j (p−1) VAR[d j ]+ +1 . . . n] . 2 (p−1) +1 . . . n] (Beachte: Bei der Berechnung von VAR[d j werden alle fd (p−1) +1 , fd (p−1) +2 , . . . , fn berücksichtigt!) j j 466 (p) Erhöhe Intervallanzahl: Setze ℓp := ℓp + 1; dℓp := n + 1. Berechne für neue Zwischenpunkte optimalen Wert (p) und speichere diesen in OPT∗ [p, n + 1] = OPT∗ [p, dℓp ]. 467 Es gilt: Lemma 4.47: OPT∗ [k , n] ≤ OPT∗ [k − 1, b] + VAR[b + 1 . . . n] OPT∗ [k , n] ≤ (1 + δ)k−1 OPT[k , n]. Zerlegung ≤ (1 + δ)OPT∗ [k − 1, a] + VAR[b + 1 . . . n] Beweis: Induktion über k . I.V. ≤ (1 + δ)k−1 OPT[k − 1, a] + VAR[b + 1 . . . n] Trivial für k = 1, da dann optimaler Wert berechnet wird. Monotonie ≤ (1 + δ)k−1 OPT[k − 1, x] + VAR[x + 1 . . . n] Sei Behauptung für k − 1 anstelle von k gezeigt und sei OPT[k , n] = OPT[k − 1, x] + VAR[x + 1 . . . n]. (k) ≤ (1 + δ)k−1 OPT[k , n]. (k) Falls x = di für irgendeinen Zwischenpunkt di , dann gilt OPT∗ [k , n] = OPT[k , n] und fertig. Wahl von δ : Optimale Zerlegungsstelle x liege daher echt in irgendeinem Vergröberungs-Intervall, a := (k) di <x < (k) di+1 Will (1 + δ)k ≤ 1 + ε: Wähle δ so, dass log(1 + δ) = ε/k ≤ log(1 + ε)/k . Lemma ⇒ relativer Fehler höchstens ε. =: b. 468 469 Wie groß wird die Anzahl der Zwischenpunkte ℓp ? (p) 1. Fall: OPT∗ [p, di ] = 0 für irgendein i > 1. (p) (p) Dann gilt OPT∗ [p, d1 ] = · · · = OPT∗ [p, di ] = 0 (p) (p) (Monotonie) und Algorithmus erzeugt d2 , . . . , di gar nicht. Satz 4.48: Der beschriebene 1-Runden-Datenstromalgorithmus basierend auf dynamischer Programmierung liefert eine ε-Approximation des sortierten Histogramm-Problems mit Speicherplatz und Zeit pro Update O (k 2 /ε) log2 (nw ) . (p) 2. Fall: OPT∗ [p, di ] > 0 für alle i > 1. Wegen Monotonie und Wahl der Zwischenpunkte: (p) OPT∗ [p, dj+1 ] ≥ OPT∗ [p, dj Dann (p) (p) + 1] > (1 + δ)OPT∗ [p, dj (p) ]. (p) OPT∗ [p, dℓp ] = OPT∗ [p, n] ≥ (1 + δ)ℓp −2 OPT∗ [p, d2 ] und damit (p) ℓp ≤ log OPT∗ [p, n] − log OPT∗ [p, d2 ] / log(1 + δ) + 2 = O (k /ε) log nw 2 = O (k /ε) log(nw ) . 470 471 4.9 Untere Schranken Beweis: Genauer: Untere Schranken für benötigten Speicherplatz im Datenstrommodell. ∗ Speicherplatz: Dominiert vom Platz für die OPT -Tabelle: • Zeilen p = 1, . . . , k : Jeweils ℓp = O (k /ε) log(nw ) Einträge. Insgesamt also O k 2 /ε log(nw ) Einträge. • Pro Eintrag O log nw 2 = O(log(nw )) Bits. Insgesamt O k 2 /ε log2 (nw ) . Rechenzeit: Für Zeilen p = 1, . . . , k berechne jeweils Eintrag am Ende der Zeile, Minimum über ℓp = O (k /ε) log(nw ) Spalten, pro Eintrag O(log(nw )). Motivation: Einige unserer Lösungen waren nicht so allgemein / effizient, wie wir uns das wünschen (z. B. F∞ und Top-k -Listen). Es gibt eine gute Ausrede: Diese Probleme sind tatsächlich schwer. Bisher einige Ad-Hoc-Beweise (F1 , F0 mit Sampling, häufigste Elemente). Hier eine anschauliche und sehr mächtige Technik. 472 4.9.1 Kommunikationskomplexität Praktisches, elementares Beispiel: Ziel: Verteilte Berechnung von f : {0, 1}m × {0, 1}n → {0, 1}. Alice 473 • Alice und Bob haben jeweils lokale Kopie einer umfangreichen Datenbank (z. B. Web-Index). • Aufgabe: Teste, ob Datenbanken konsistent. Bob Abstrakter: EQn : {0, 1}n × {0, 1}n → {0, 1}, für x, y ∈ {0, 1}n : EQn (x, y ) = [x = y ] (Bitstring-Gleichheitstest, Equality-Funktion). x ∈ {0, 1}m y ∈ {0, 1}n Triviale Lösung (für jedes Problem): Alice schickt Bob ihre komplette Eingabe (oder umgekehrt). Damit n Bits Kommunikation für EQn ausreichend. Austausch von Botschaften gemäß Protokoll in Runden, am Ende muss ein Spieler f (x, y ) ausgeben. Miss benötigtes Gesamt-Übertragungsvolumen (# Bits) für Worstcase-Eingabe: Kommunikationskomplexität. Bessere Lösung? 474 475 Satz 4.49: Jedes deterministische Kommunikationsprotokol für EQn benötigt n Bits Kommunikation. Randomisierte Kommunikationsprotokolle: Alice und Bob haben Quellen für Zufallsbits zur Verfügung. Durch kleine Konstante (z. B. 1/4) beschränkte Fehlschlagswahrscheinlichkeit bei Entscheidung über Ausgabebit erlaubt: randomisiertes Protokoll mit beschränktem Fehler (vgl. BPP). Beweis: Annahme, dass weniger als n Bits reichen. ⇒ Weniger als 2n verschiedene Bitstrings, die als Kommunikation auftreten können. Hilft das was? ⇒ Es gibt x1 , x2 ∈ {0, 1}n , x1 6 = x2 : Kommunikation für Eingaben (x1 , x1 ) und (x2 , x2 ) gleich. Rabin-Fingerprinting (z. B.) → Randomisiertes Protokoll mit beschränktem Fehler für EQn mit O(log n) Bits Kommunikation. ⇒ Dieselbe Kommunikation auch für (x1 , x2 ) und (x2 , x1 ). ⇒ Der letzte Spieler kann z. B. (x1 , x1 ) nicht von (x1 , x2 ) unterscheiden, Fehler! 477 476 Weitere Beispielfunktionen: Mehrspieler-Kommunikationsprotokolle • DISJn , Mengendisjunktheitstest, Disjointness-Funktion: • Spieler P1 , . . . , Pt mit Eingaben x (1) , . . . , x (t) , (1) (t) Ziel ist Berechnung von f x , . . . , x . • Hier nur Einwegvariante: Kommunikation P1 → · · · → Pt , Pt produziert Ausgabe. Alice, Bob haben Mengen x, y ⊆ {1, . . . , n}. Aufgabe: Teste, ob x ∩ y = ∅. • GTn , Greater-Than-Funktion: Alice, Bob haben Zahlen x, y ∈ {0, . . . , 2n − 1}. Aufgabe: Teste, ob x > y . Beispielfunktion DISJt,n : Spieler haben Mengen x (1) , . . . , x (t) ⊆ {1, . . . , n}. Versprechen: • Entweder x (i) ∩ x (j) = ∅ für alle i 6 = j, oder • |x (1) ∩ · · · ∩ x (t) | = 1. Ausgabe 1 in erstem Fall, 0 in zweitem, sonst beliebig. Untere Schranken für randomisierte Protokolle mit beschränktem Fehler: Beliebig viele Runden: • EQn : (log n) Bits Kommunikation; • DISJn : (n) Bits Kommunikation. 1-Runden-Protokolle (Alice → Bob): • GTn : (n) Bits Kommunikation. Untere Schranke: Sei γ > 0. Jedes randomisierte t-Spieler-Einwegprotokoll mit beschränktem Fehler für DISJt,n benötigt (n/t 1+γ ) Bits Kommunikation. 478 479 Beweis: 4.9.2 Untere Schranken für Datenstromalgorithmen a1 a2 a3 aℓ aℓ+1aℓ+2 ··· Zunächst zum Warmwerden eine einfache Version der Beweistechnik. Satz 4.50: Sei A ein 1-Runden-Datenstromalgorithmus mit WorstcaseSpeicherplatz s, der für Datenströme der Länge n ein durch f : {0, 1}ℓ × {0, 1}n−ℓ → {0, 1} codiertes Entscheidungsproblem löst. Dann gibt es ein 1-Runden-Kommunikationsprotokoll für f mit Kommunikationskomplexität höchstens s. an ··· Lese-Zugriffe auf Eingabe Speicherplatz Betrachte Situation nach Lesen von a1 , . . . , aℓ . • Alice: Eingabe x = (a1 , . . . , aℓ ); Bob: Eingabe y = (aℓ+1 , . . . , an ). • Alice simuliert A auf x und schickt Speicherinhalt an Bob. • Bob simuliert A auf y und produziert Ausgabe von A. Protokoll, das höchstens s Bits Kommunikation benutzt. 480 481 Technik für Approximationsprobleme: Leichte Anpassungen: • Genauso für randomisierte Algorithmen und randomisierte Protokolle. • r -Runden-Datenstromalgorithmus → (2r − 1)-Runden-Kommunikationsprotokoll: Speicherinhalt nach jedem Lesen von a1 , . . . , aℓ (r -mal) sowie vor Start einer neuen Leserunde ((r − 1)-mal) übertragen. Gegeben: Datenstromproblem, beschrieben durch Funktion g mit reellen Werten. Schweres Kommunikationsproblem hineincodieren: Kommunikationsproblem f : {0, 1}ℓ → {0, 1}n−ℓ → {0, 1}, oft nur partiell definiert. Datenstrom ax x ∈ {0, 1}ℓ a := (ax , ay ) y ∈ {0, 1}n−ℓ Datenstrom ay Allerdings: Bisher nur untere Schranken für Entscheidungsprobleme und exakte Berechnung. Es gelte: f (x, y ) = 0 ⇒ g(a) ≤ L; f (x, y ) = 1 ⇒ g(a) ≥ H. 482 483 Technik für Approximationsprobleme (Forts.): Es gelte: f (x, y ) = 0 ⇒ g(a) ≤ L; f (x, y ) = 1 ⇒ g(a) ≥ H. 4.9.3 Untere Schranke für F∞ Algorithmus A berechne ε-Approximation von g. Dann: f (x, y ) = 0 ⇒ A(a) ≤ (1 + ε)L; f (x, y ) = 1 ⇒ A(a) ≥ (1 − ε)H. Satz 4.51: Sei 0 ≤ ε < 1/3 und 0 ≤ δ < 1/2. Jeder randomisierte r -Runden-Datenstromalgorithmus, der auf Datenströmen der Länge n ∈ {0, . . . , 2m} eine (ε, δ)-Approximation von F∞ berechnet, benötigt Speicherplatz (m/r ). Kann mit Ausgabe von A 0- und 1-Eingaben von f unterscheiden, falls (1 + ε)L < (1 − ε)H L+H>0 ⇔ ε < H −L . L+H Bedingung L + H > 0 üblicherweise leicht zu erfüllen, Herausforderung: Lücke H − L möglichst groß. 484 485 4.9.4 Untere Schranke für Fk , k > 2 Beweis: Einfache Reduktion von DISJm funktioniert nicht, da bestenfalls (H − L)/(L + H) = 2(1/m) (→ Skript). Idee: Codiere DISJm in F∞ hinein. Idee: Codiere DISJt,m in Fk hinein. Spieler i produziert Teildatenstrom ax (i) mit Elementen seiner Menge x (i) . a := (ax (1) , . . . , ax (t) ), Länge maximal tm. • DISJt,m x (1) , . . . , x (t) = 1: Fk (a) = |x (1) | + · · · + |x (t) | ≤ m =: L. • DISJt,m x (1) , . . . , x (t) = 0: Fk (a) ≥ t k =: H. x = {x1 , . . . , xm1 } −→ ax = (x1 , . . . , xm1 ); y = {y1 , . . . , ym2 } −→ ay = (y1 , . . . , ym2 ); a := (ax , ay ). x ∩ y = ∅ ⇒ F∞ (a) = maxi fi (a) = 1 =: L; x ∩ y 6 = ∅ ⇒ F∞ (a) = 2 =: H. Technik anwendbar für ε < (H − L)/(L + H) = 1/3. Benutze untere Schranke (m) für randomisierte Kommunikationskomplexität von DISJm . Dann: tk − m H −L = k . L+H t +m 486 487 Wähle t so, dass t k = (1 + 3ε)m, dann ε<1/3 3εm tk − m H −L 3εm = k = ε. = > L+H 2m + 3εm 3m t +m Satz 4.52: Sei 0 ≤ ε < 1/3, 0 ≤ δ < 1/2, γ > 0 und k > 2. Jeder randomisierte 1-Runden-Datenstromalgorithmus, der 1+1/k auf Datenströmen der Länge n ∈ 0, . . . , (2m) eine (ε, δ)-Approximation von Fk berechnet, benötigt 1−(2+γ )/k . Speicherplatz m 1-Runden-Datenstromalgorithmus mit WorstcaseSpeicherplatz s liefert t-Spieler-Einweg-Protokoll mit höchstens (t − 1)s Bits Kommunikation. Mit unterer Schranke für DISJt,m , t = 2 m1/k : (t −1)s = m/t 1+γ ⇒ s = m/t 2+γ = m1−(2+γ )/k . Benötigte Datenstromlänge höchstens tm = ((1 + 3ε)m)1/k m ε<1/3 ≤ (2m)1+1/k . 488 4.9.5 Untere Schranke für Häufigkeitsmomente mit D ELETEs 489 Beweis: Betrachte Variante des Problems aus Abschnitt 4.6.4 für Fk -Berechnung auf Datenbank-Relationen: Codiere DISJm in das Problem hinein. Mengen x, y ⊆ {1, . . . , m} gegeben. I NSERT- und D ELETE-Operationen, will Fk auf resultierenden Häufigkeiten. D ELETE immer erlaubt, aber ohne Auswirkung, falls aktuelle Häufigkeit für Element 0. Datenbankrelation mit Attributswerten aus {1, . . . , m}. • Datenstrom ax : Für alle i ∈ x: I NSERT (i). • Datenstrom ay : Für alle i ∈ y : D ELETE (i). Sei a := (ax , ay ). Satz 4.53: Sei 0 ≤ ε < 1 und 0 ≤ δ < 1/2. Jeder randomisierte r -Runden-Datenstromalgorithmus, der für das modifizierte Fk -Problem auf Datenströmen der Länge n ∈ {0, . . . , 2m} eine (ε, δ)-Approximation berechnet benötigt Speicherplatz (m/r ). Sei v = (v1 , . . . , vm ) ∈ {−n, . . . , n}m durch Update-Operationen resultierender Vektor. 490 491 5. Peer-to-Peer-Netze Für i = 1, . . . , m: xi : yi : vi : 0 0 0 ⇒ vi = [xi ∧ yi = 1]. 0 1 0 1 0 1 1 1 0 Übersicht: 5.1 5.2 5.3 5.4 5.5 Damit: Fk (a) = m X i=1 [xi ∧ yi = 1]k = _ 1≤i≤m xi yi = ¬ DISJm (x, y ). x ∩ y = ∅ ⇒ Fk (a) = 0 =: L; x ∩ y 6 = ∅ ⇒ Fk (a) = 1 =: H. (H − L)/(L + H) = 1 > ε, Technik anwendbar. Einleitung Consistent Hashing Chord CAN (Content Addressable Network) Kademlia (KAD) 493 492 5.1 Einleitung P2P-Netze – Anwendungen: Zwei grundlegende Prinzipien zur Organisation des Zugriffs auf verteilte Ressourcen: Populär: Tauschbörsen“ (file sharing) ” • Aktuell ca. 10 Mio. Teilnehmer weltweit in verschiedenen Netzen. • 2006: Anteil am Internet-Datenverkehr in Deutschland 30 % (tagsüber) bzw. 70 % (nachts). • Verbreitetste Netze: BitTorrent, eDonkey. (Quelle: www.slyck.com) • Client-Server: – Wenige zentrale Server, die Ressourcen bereitstellen; – viele Clients, die Ressourcen in Anspruch nehmen. Aufwand für Hardware und Bandbreite konzentriert bei Servern. • Peer-to-Peer (P2P): – Gleichgestellte Netzknoten (Peers), die sowohl Clientals auch Server-Rolle übernehmen. – Knoten benutzen alle zu Netz passende Software (üblicherweise auch Client, besser vielleicht Servent). Standard-PCs, Aufwand für Bandbreite verteilt. Weitere (legalere) Anwendungen: • Ausfallsichere verteilte Speicherung von Daten. • Verteilung von großen Datenmengen an viele Nutzer (z. B. Linux-Distributionen, TV-Live-Streams). 494 495 P2P-Technik: Einteilung und Historie: Üblicherweise realisiert als Overlay-Netz auf der Anwendungsschicht, basierend auf TCP oder UDP (also analog z. B. zu WWW/HTTP). Nach Netztopologie: • Zentral (Index-Server): Napster (1999-2001, in urspr. Form eingestellt). Zu lösende Probleme: • Netzaufbau und -verwaltung ohne zentrale Instanz? (Dynamik: Häufige An-/Abmeldungen von Knoten, spontane Ausfälle von Knoten möglich.) • Wie findet man Knoten, die bestimmte Ressourcen (Dateien) anbieten? • Dezentral: Gnutella (2000). • Hybridformen: Gnutella 0.6 und Gnutella2 (2002), eDonkey (2000–2006, Einstellung offizielle Website), FastTrack (2001, z. B. KaZaA-Client). Skalierbarkeit: Ressourcenaufwand für einzelne Knoten darf nur moderat (sublinear) in Anzahl Knoten wachsen. Aktuelle Themen: Verschlüsselung, Anonymisierung, P2P-Streaming. 496 Einteilung und Historie (Forts.): 497 5.1.1 Napster Nach Strategie für Netzverwaltung: • Client meldet angebotene • Unstrukturiert: MP3-Dateien an zentralen Index-Server. • Suchanfrage: Server liefert – Nickname von Client und Dateinamen; – Nickname → IP-Adresse. • Daten lagern nur auf Clients, Transfer zwischen diesen ohne Server. Neue Knoten verbinden sich beliebig mit bereits existierenden. Suche typischerweise ineffizient. Beispiel: Gnutella. • Strukturiert: Linkstruktur durch Protokoll geregelt → effiziente Suche. Außerdem theoretische Gütegarantien. Consistent Hashing / Distributed Hash Tables (1997). Beispiele: CAN, Chord (2001), Kademlia (2002). IndexServer Clients Auch in aktuellen P2P-Clients, z. B. eMule, BitTorrent. 498 499 5.1.2 Gnutella 0.4: Vorteil: Suche nach Musikstück erfordert nur jeweils konstante Anzahl Botschaften zu/von Server (konstant bezüglich Gesamtanzahl Knoten im Netz). Dezentral und unstrukturiert. • Client benötigt IP-Adresse + Port von mindestens einem aktiven Peer (mitgeliefert / Internet). • Verbindung über TCP (+ Gnutella). • Daten bei den Peers gelagert, Austausch über HTTP. Nachteile: • Mangelnde Ausfallsicherheit, verletztlich gegenüber Angriffen (Server als single point of failure“). ” • Schlechte Lastverteilung: Benötigte Hardware und Bandbreite für Server wächst linear in Anzahl Knoten. Spezielle Datenpakete (Deskriptoren): • P ING/P ONG : Suche nach aktiven Peers. • Q UERY/Q UERY H IT: Suche nach Daten. • P USH: Datenübertragung durch Firewall. Skalierbarkeit für zentralen Server nicht gegeben. Für Suche nach aktiven Peers oder Daten: Flutung des Netzes / Broadcast. 500 501 Suche nach Daten: Suche nach Daten: • Deskriptoren haben eindeutige ID (Hashcode), • Deskriptoren haben eindeutige ID (Hashcode), Routing von Q UERY-Deskriptor: Routing von Q UERY-Deskriptor: Felder TTL“ (Time to live) und Hops“. ” ” • Vor Weiterleitung von Deskriptor: TTL--, Hops++. Deskriptoren mit TTL = 0 nicht weiterleiten. • Mittels ID: Deskriptor nur einmal pro Knoten weiterleiten. Felder TTL“ (Time to live) und Hops“. ” ” • Vor Weiterleitung von Deskriptor: TTL--, Hops++. Deskriptoren mit TTL = 0 nicht weiterleiten. • Mittels ID: Deskriptor nur einmal pro Knoten weiterleiten. ttl = 3, hops = 1 502 502 Suche nach Daten: Suche nach Daten: • Deskriptoren haben eindeutige ID (Hashcode), • Deskriptoren haben eindeutige ID (Hashcode), Routing von Q UERY-Deskriptor: Routing von Q UERY-Deskriptor: Felder TTL“ (Time to live) und Hops“. ” ” • Vor Weiterleitung von Deskriptor: TTL--, Hops++. Deskriptoren mit TTL = 0 nicht weiterleiten. • Mittels ID: Deskriptor nur einmal pro Knoten weiterleiten. Felder TTL“ (Time to live) und Hops“. ” ” • Vor Weiterleitung von Deskriptor: TTL--, Hops++. Deskriptoren mit TTL = 0 nicht weiterleiten. • Mittels ID: Deskriptor nur einmal pro Knoten weiterleiten. ttl = 2, Treffer! hops = 2 ttl = 1, hops = 3 ttl = 2, hops = 2 ttl = 1, hops = 3 ttl = 1, hops = 3 502 502 Suche nach Daten: Suche nach Daten: • Deskriptoren haben eindeutige ID (Hashcode), • Deskriptoren haben eindeutige ID (Hashcode), Routing von Q UERY H ITS-Deskriptor: Routing von Q UERY H ITS-Deskriptor: Felder TTL“ (Time to live) und Hops“. ” ” • Vor Weiterleitung von Deskriptor: TTL--, Hops++. Deskriptoren mit TTL = 0 nicht weiterleiten. • Mittels ID: Deskriptor nur einmal pro Knoten weiterleiten. Felder TTL“ (Time to live) und Hops“. ” ” • Vor Weiterleitung von Deskriptor: TTL--, Hops++. Deskriptoren mit TTL = 0 nicht weiterleiten. • Mittels ID: Deskriptor nur einmal pro Knoten weiterleiten. ttl = 2, hops = 1 ttl = 1, hops = 2 502 502 5.1.3 Gnutella 0.6, FastTrack: Vorteile: Dezentral, einfache An-/Abmeldung von Knoten. Hybridform, semi-dezentral. Nachteile: • Blätter: Nur verbunden mit Ultrapeers. Hierarchische Einteilung in Ultrapeers und Blätter. • Für zu kleine TTL-Werte nur Teile des Netzes erreichbar. • Ultrapeers: (Original-Client: maximal 4 Verbindungen, TTL = 5.) – Serverartig, u. a. hohe Bandbreite; – alleine zuständig für Routing; – Skizze eines Index für Daten in ihren Blättern (Query Routing Protocol, QRP). • Anzahl Botschaften bei P ING / Q UERY = Anzahl Kanten im (erreichten Teil-) Graphen. Gesamtbandbreite für Verwaltung wächst linear (konstanter Grad) oder sogar superlinear in Knotenanzahl. • Flaschenhälse durch langsame Knoten. Ultrapeers Blätter Scheinbar bessere Skalierbarkeit, aber Suche nach wie vor nicht besonders effizient. 503 504 5.2 Consistent Hashing Arbeit: Karger u. a. (1997). Hashfunktion x 7 → x mod 4 Motivation: Hot Spots“ im Internet: Server, die durch populäre ” ” Downloads“ überlastet werden (z. B. Fußball-WM, neue Linux-Distribution etcpp.) Buckets Beispiel: 3 2 1 Abhilfe: Web-Caches, verteilte Kopien der Seiten. Zuordnung von Seiten auf Caches? 0 2 3 4 9 10 12 17 19 Daten Idee: Lastverteilung durch Hashing. 505 506 Beispiel: Hashfunktion x 7 → x mod 5 Hashfunktion x 7 → x mod 5 4 4 3 3 Buckets Buckets Beispiel: 2 2 1 1 0 0 2 3 4 9 10 12 17 19 Daten 2 3 4 9 10 12 17 19 Daten Beobachtung: Bei Update fast alle Objekte auf neue Buckets gehasht. : – ( 506 506 Entwurfsziele / Komplexitätsmaße: Grundlegende Operationen: Anzahl Knoten sei n, Anzahl Daten d. Oh-Notation bezüglich n. • Speicherplatz pro Knoten: Sublinear in n, idealerweise O(1). • Balance (Lastverteilung): Idealerweise höchstens c · d/n, c ≥ 1 Konstante. • Rechenzeit für Operationen: J OIN, L EAVE und L OOKUP in sublinearer Zeit, idealerweise auch O(1). • I NITIALIZE. • J OIN (v ): Erzeugt neuen Knoten in Netz, dem Knoten v bereits angehört. • L EAVE (v ): Löschen von Knoten v . • L OOKUP (k ): Liefere Knoten mit Schlüssel k oder nicht vorhanden“. ” Natürlich auch Einfügen/Ändern von Daten, aber dazu im Wesentlichen L OOKUP-Operation. Außerdem: – Ausfallsicherheit; – Behandlung mehrerer J OINs / L EAVEs zur gleichen Zeit. 507 508 Consistent Hashing – Prinzip (Forts.): Consistent Hashing – Prinzip: • J OIN: Aufteilung des Gebietes, für das Knoten zuständig. • L EAVE : Verschmilz Gebiet mit passenden von übrig 0 bleibenden Knoten. • L OOKUP : – Irgendwie sicherstellen, dass von aktuellem Punkt solcher gefunden werden kann, der Punkt von gesuchtem Datum näher liegt. – Halbierung des Abstandes → logarithmische Suchzeit. 1 Hashe Knoten und Daten unabhängig auf [0, 1]. Daten werden an nächstgelegenem“ Knoten gespeichert. ” Nach J OIN-Operation: 0 Abstandsmaße: • Chord: Abstand auf Kreis der Länge 1. • CAN: Abstand auf Einheitstorus in Rd . • Kademlia: Binärwert von XOR(ID1 , ID2 ). 1 509 510 5.3 Chord Beispiel: n = 3, k = 4, m = 3. Schlüssel: 5, 6 Arbeit: Stoica u. a. (2001). Knoten 0 Konstruktion: 7 Zwei unabhängige Hashfunktionen: • Knoten: hV : {1, . . . , n} → {0, . . . , 2m − 1}; • Schlüssel: hK : {1, . . . , k } → {0, . . . , 2m − 1}. Hashwerte im Folgenden IDs. Schlüssel 1 6 IDs auf Kreis angeordnet, rechne modulo 2m . 2 5 Schlüssel: 1 3 4 Schlüssel: 3 Speichere Schlüssel in im Uhrzeigersinn nächsten Knoten. 511 512 Im Folgenden der Einfachheit halber Analysen für vollständig zufällige Hashfunktionen. Abstand: Miss Entfernung von Start zu Ziel auf Kreis im Uhrzeigersinn. Dann: X1 := hV (1), . . . , Xn := hV (n) und Y1 := hK (1), . . . , Yk := hK (k ) sind unabhängige, in {0, . . . , 2m − 1} gleichverteilte ZVs. Beispiel: Für {0, . . . , 7}: Von 1 nach 7: Abstand 6. Von 7 nach 1: Abstand 2. (Keine Metrik, da nicht symmetrisch.) Tatsächlich: • Für Knoten- und Schlüssel-Hashfunktionen jeweils beschränkte Unabhängigkeit reicht. • In der Praxis feste Hashfunktion, z. B. SHA-1 (und Daumen drücken). Definition 5.1: Für Knoten u, v sei von Knoten-ID Xu aus im Uhrzeigersinn auf dem Kreis Xv erste andere Knoten-ID. Dann v Nachfolger von u und u Vorgänger von v . Annahme: X1 , . . . , Xn paarweise verschieden (m. h. W. erfüllt, falls m hinreichend groß). 514 513 Lastverteilung (Balance): Knotenintervalle: Alle Knoten bekommen ungefähr gleich viele“ Schlüssel ab. ” Ideal wären k /n pro Knoten, zeige O(log n · k /n). Für Knoten v = 1, . . . , n: I(v ) := (Xu , Xv ] = {Xu + 1, Xu + 2, . . . , Xv }, u Vorgänger von v . (Rechne dabei modulo 2m .) Lemma 5.2: Sei c > 0. Mit Wahrscheinlichkeit mindestens 1 − n−c gilt: Für alle Knoten v = 1, . . . , n ist 2m 4 |I(v )| ≤ c ′ log n , c′ = (c + 1). n log e Sonderfall: Falls n = 1, dann I(v ) = {0, . . . , 2m − 1}. Knoten v genau für die Speicherung der in I(v ) ggf. vorkommenden Schlüssel zuständig. 515 516 Beweis: Sei Xv = x fest und ℓ = c ′ log n 2m . n Folgerung 5.3: Falls |I(v )| > ℓ, dann enthält insbesondere das Intervall Sei c > 0. Mit Wahrscheinlichkeit mindestens 1 − n−c über die Wahl von Knoten- und Schlüssel-IDs gilt: Jeder Knoten speichert höchstens O(log n · k /n) Schlüssel. I := (x − ℓ, x] = {x − ℓ + 1, x − ℓ + 2, . . . , x} keine anderen Knoten-IDs außer x. Z := Anzahl Knoten w 6 = v mit Xw ∈ I. Wegen Gleichverteilung der IDs über {0, . . . , 2m − 1}: n≥2 n/2 n−1 2m 1 EZ = m · |I| ≥ m · c ′ log n = c ′ log n. 2 2 n 2 Chernoff: Pr{Z = 0} ≤ Pr{Z − EZ ≤ −EZ } ≤ e ≤e − 12 · log4 e (c+1) log n /2 Beweis wieder mit Chernoff-Argument, nur jetzt über Schlüssel-IDs (selbst überlegen). Schärfere Schranke O((1 + γ ) · k /n), γ > 0, mit 2(log n) IDs für jeden Knoten, Schlüssel einsammeln für alle IDs. (Feinere Streuung der IDs.) −EZ /2 = n−(c+1) . Die Behauptung folgt nun mit der Vereinigungsschranke. 517 Operationen: 518 J OIN(x), x aktiver Knoten: • Bestimme ID Xv für neuen Knoten v . Datenstruktur: Für jeden aktiven Knoten v : v .succ = Nachfolger von v , v .pred = Vorgänger von v . • Bestimme Vorgänger und Nachfolger von v : v .succ := w := F IND S UCCESSOR (x, Xv ); v .pred := u := w .pred. # Botschaften: O(n). • Korrigiere Vorgänger-/Nachfolger-Info für andere Knoten: L OOKUP(v, x), v irgendein aktiver Knoten, x Schlüssel: u.succ := v ; w .pred := v . Rufe F IND S UCCESSOR(v , Yx ) auf, Yx Schlüssel-ID von x. F IND S UCCESSOR(v, y), y ∈ 0, . . . , 2m − 1 : if y ∈ (Xv .pred , Xv ] then return v ; while y ∈ / (Xv , Xv .succ ] do v := v .succ; / / Xv .succ näher an Yx als Xv od; • Verlagere alle Schlüssel in (Xu , Xv ], die w hat, nach v . Verlagerung von O(log n · k /n) Schlüsseln. # Botschaften: O(n). 519 u w Xu Xw 520 J OIN(x), x aktiver Knoten: • Bestimme ID Xv für neuen Knoten v . L EAVE(v), v zu löschender Knoten: • Verlagere Schlüssel von v zum Nachfolger v .succ. Wieder Verlagerung von O(log n · k /n) Schlüsseln. • Aktualisiere Vorgänger- bzw. Nachfolger-Infos anderer Knoten: (v .pred).succ := v .succ; (v .succ).pred := v .pred. • Bestimme Vorgänger und Nachfolger von v : v .succ := w := F IND S UCCESSOR (x, Xv ); v .pred := u := w .pred. # Botschaften: O(n). • Korrigiere Vorgänger-/Nachfolger-Info für andere Knoten: u.succ := v ; w .pred := v . • Verlagere alle Schlüssel in (Xu , Xv ], die w hat, nach v . Fazit: Balance okay, aber L OOKUP nicht schnell genug. Verlagerung von O(log n · k /n) Schlüsseln. u v w Xu Xv Xw Abhilfe: Knoten brauchen mehr lokale Routing-Info. → Zwischenknoten in exponentiell wachsenden Abständen. 520 Finger-Informationen: L OOKUP mit Finger-Infos: Für jeden Knoten v und i = 0, . . . , m − 1: v .finger[i]: Knoten, der zur im Uhrzeigersinn von Xv + 2i aus nächsten ID gehört. u 0 7 1 2 6 5 3 4 w 521 v Neue Datenstruktur für Knoten v : Finger-Tabelle, v .succ = v .finger[0], v .pred. F IND S UCCESSOR(s, y): Knoten u: i: Xu + 2i : finger[i]: 0 1 v 1 2 v 2 4 u Knoten v : i: Xv + 2i : finger[i]: 0 3 w 1 4 u 2 6 u Knoten w: i: Xw +2i : finger[i]: 0 4 u 1 5 u 2 7 u Sei s Startknoten und t Vorgängerknoten von y . Finde Finger von s, der Ziel t am nächsten (Vereinfachung: Identifiziere IDs ↔ Knoten): s.finger[i] s ··· t s.finger[m−2] s.finger[m−1] y Rekursiv weiter mit s := s.finger[i]. Knoten t wird irgendwann gefunden, da auch direkte Nachfolger in Finger-Tabelle. 522 523 Lemma 5.4: Sei c > 0. Für beliebige s und y gilt mit Wahrscheinlichkeit mindestens 1 − n−c über die Wahl der Knoten-IDs: Die Anzahl von Knoten, die F IND S UCCESSOR(s, y ) kontaktieren muss, ist O(log n) (bez. n → ∞). Abstands-Halbierung ⇒ Nach log n Schritten ist Abstand höchstens 2m /n. Z := Anzahl Knoten-IDs in diesem Intervall, dann ist n 2m EZ = m · = 1. 2 n Chernoff ⇒ Für geeignete Konstante c ′ = c ′ (c) > 0 gilt: Beweis: Notation wie auf der letzten Folie. Sei s 6 = t (sonst fertig). Pr{Z ≥ c ′ log n} ≤ Pr{Z − EZ ≥ c ′ log n − 1} ≤ n−c . Ersetzen von s durch f := s.finger[i], zum Ziel t nächster Finger von s, halbiert mindestens die Entfernung: Also auf dem letzten Wegabschnitt“ noch O(log n) Knoten, ” diese schlimmstenfalls trivial in Einzelschritten überbrücken. f = s.finger[i] s s + 2i t Damit auch insgesamt O(log n) Schritte und ebensoviele Anfragen an Knoten. s + 2i+1 d(s, t) = d(s, f ) + d(f , t), d(s, f ) ≥ 2i , d(f , t) ≤ 2i ⇒ d(s, t)/d(f , t) = d(s, f )/d(f , t) + 1 ≥ 2. 524 525 J OIN mit Finger-Infos: Folgerung 5.5: Sei c > 0. Für jede L OOKUP-Operation ist mit Wskt. mindestens 1 − n−c die benötigte Anzahl Botschaften O(log n). J OIN(x), x bereits aktiver Knoten: Sei v neuer Knoten mit ID Xv . • Initialisiere Finger-Tabelle von v . • Aktualisiere Finger-Tabelle von allen Knoten, die v als Finger haben könnten. • Verlagere Schlüssel aus (Xv .pred , Xv ] nach v (wie gehabt). 526 527 U PDATE F INGER TABLES(v ), v neuer Knoten: I NIT F INGER TABLE(x, v), x aktiver Knoten, v neu: for i = 0, . . . , m − 1: p := F IND S UCCESSOR v , Xv − 2i .pred; while Xv ∈ (Xp , Xp.finger[i] ) do p.finger[i] := v ; p := p.pred; od od. for i = 0, . . . , m − 1: v .finger[i] := F IND S UCCESSOR x, Xv + 2i . od. Zusätzlicher Trick: Berechne und speichere im ersten Schritt nur verschiedene Finger: Korrektheit: • Alle Knoten u, die v als i-ten Finger haben können, haben ID vor/inklusive Xv − 2i . • Knoten p ist letzter mit ID vor/inklusive Xv − 2i . • Alle weitere Knoten, die selben i-ten Finger wie p haben, werden in While-Schleife angepasst. Falls Xv + 2i+1 ≤ v .finger[i], dann v .finger[i + 1] = v .finger[i]. 528 Im Folgenden: Nur O log2 n andere Finger-Tabellen müssen angepasst werden. → # Botschaften O log2 n . (Letzteres ohne Beweis.) 529 Erinnerung: i = m − (c + 1) log n. Z := Anzahl Knoten-IDs in Intervall [Xv + 20 , Xv + 2i , Lemma 5.6: Sei c > 0. Dann hat ein Knoten v mit Wskt. mindestens 1 − n−c höchstens (c + 1) log n verschiedene Finger. dann: EZ ≤ n · 2i = n−c . 2m Markoff: Pr{Z ≥ 1} ≤ Pr{Z ≥ nc · EZ } ≤ n−c . Beweis: Zeige, dass m. h. W. die Finger j = 0, 1, . . . , i := m − (c + 1) log n alle gleich sind. Also hat Knoten mit Wskt. mindestens 1 − n−c höchstens (c + 1) log n Finger. Es gilt: v .finger[0] = · · · = v .finger[i] ⇔ Intervall [Xv + 20 , Xv + 2i enthält keine Knoten-ID. 530 531 Lemma 5.7: Sei c > 0. Ein Knoten v ist mit Wskt. mindestens 1 − 2n−c Finger für höchstens O log2 n andere Knoten. Beweis von Behauptung 1: Zeige für festes Xu = x: Pr x ∈ (Xp , Xv ] ≤ (5 log n)/n. Betrachte die Situation für festes Xv = y ≥ x: Es ist x ∈ (Xp , y ] genau dann, wenn es kein w ∈ / {u, v } gibt, sodass Xw ∈ [x, y ]. Beweis: Sei p der Vorgänger von v (Funktion der ZVs X1 , . . . , Xn ). Es ist v i-ter Finger für Knoten u genau dann, wenn Sei |y − x| ≥ ℓ := 4 log n Xu + 2i ∈ (Xp , Xv ]. Behauptung 1: Pr Xu + 2i ∈ (Xp , Xv ] ≤ (5 log n)/n. 2m (rechne dabei modulo 2m ) und n Z := Anzahl alle Xw , w ∈ / {u, v }, in [x, y ]. Dann ist 2m n≥4 n−2 · 4 log n ≥ 2 log n EZ = 2m n und − n−c Behauptung 2: Mit Wskt. mindestens 1 gibt es nur O(log n) Knoten, die v als i-ten Finger haben. Lemma 5.6, c ← c + 1: Mit Wskt. mindestens 1 − n−c hat jeder Knoten höchstens O(log n) verschiedene Finger. Pr{x ∈ (Xp , y ]} = Pr{Z = 0} ≤ e−EZ /2 ≤ Damit insgesamt die Behauptung. 1 . n 533 532 Beweis von Behauptung 2: Es gilt: Pr{x ∈ (Xp , Xv ]} = = ≤ X y : y−x≥ℓ X y Zu zeigen: Mit Wskt. mindestens 1 − n−c gibt es nur O(log n) Knoten, die v als i-ten Finger haben. Pr{Xv = y } · Pr{x ∈ (Xp , y ]} | {z } =1/2m X 1 · Pr{x ∈ (X , y ]} + p {z } 2m | ≤1/n 1 1 4 log n 1 +ℓ· m = + n 2 n n y : y−x<ℓ n≥2 ≤ Nach Behauptung 1 gilt: 5 log n . Pr Xu + 2i ∈ (Xp , Xv ] ≤ n Erwartungswert für Anzahl Knoten u, die v als i-ten Finger haben, ist höchstens 5 log n. Mit Chernoff-Argument O log n solche Knoten mit Wahrscheinlichkeit mindestens 1 − n−c . (Behauptung 2) (Lemma 5.7) 1 · Pr{x ∈ (Xp , y ]} {z } 2m | ≤1 5 log n . n (Behauptung 1) 534 535 L EAVE analog zu J OIN (nur keine Initialisierung der Finger-Tabelle). Was noch fehlt (siehe Originalarbeit): Insgesamt: Neue Algorithmen nötigt, während Stabilisierungsphase evtl. nur direkte Vorgänger und Nachfolger der Knoten. • Absicherung gegen Datenverlust: Speichere jeden Schlüssel r -fach, zusätzlich in den (r − 1)-nächsten Knoten nach ursprünglichem. Kann bei Ausfall zu Nachfolger weitergehen. • Absicherung gegen Verlust der Netzstruktur: Speichere für jeden Knoten zusätzlich die ersten s Nachfolger. Anzahl Schlüssel pro Knoten: Lokaler Platz für Routing-Infos: J OIN/L EAVE: L OOKUP: • Gleichzeitig mehrere J OINs/L EAVEs: O(log n · k /n) O(log n) O log2 n Botschaften O(log n) Botschaften Kritik an der Analyse: Behandelt Operationen einzeln, will aber kleine Fehlschlagswskt. für Folgen von Operationen. Idee für aufgebohrte Version: Benötigte Eigenschaften der IDs vorab sicherstellen, z. B. kleine Abstände, nur damit arbeiten. Haarigere Beweise. Für beide letzte Fällen können Ausfälle von benachbarten Knoten wegen Hashing als unabhängig angesehen werden. 537 536 5.4 CAN (Content Addressable Network) J OIN am Beispiel (d = 2): 1 Arbeit: Ratnasamy u. a. (2001). Hashing und Abstände: • Wieder unabhängige Hashfunktionen für Knoten und Schlüssel. • Hashwerte (IDs) aus [0, 1]d . • Euklidischer Abstand, aber Wraparound“ an den ” Rändern → Abstand auf Torus-Oberfläche. 0 Für Implementierung endliche Approximation, hier nicht. 538 0 1 539 J OIN am Beispiel (d = 2): J OIN am Beispiel (d = 2): 1 1 1 0 1 0 1 0 1 0 539 539 J OIN am Beispiel (d = 2): J OIN am Beispiel (d = 2): 1 1 1 0 0 2 1 0 1 539 0 2 1 539 J OIN am Beispiel (d = 2): J OIN am Beispiel (d = 2): 1 1 3 3 2 2 1 0 1 0 1 0 0 1 539 539 Balance: Knoten ist für alle Schlüsseln in Hyperrechteck in [0, 1]d zuständig, genannt Zone. J OIN am Beispiel (d = 2): 1 Gute Balance, ohne Beweis: Satz 5.8: Sei c > 0. Mit Wahrscheinlichkeit 1 − n−c ist jeder von n Knoten für höchstens O(log n · m/n) Schlüssel zuständig. 3 2 1 0 0 (Durchschnittliche Rechteckgröße 1/n, Rechteck der Größe c ′ (log n)/n wird nur mit kleiner Wskt. weiter unterteilt.) 4 Datenstruktur für Knoten: 1 • Eigene ID und Zone. • IDs und Zonen der 2d Nachbarn. Insgesamt O(d). 539 540 L OOKUP : Idee für Analyse: • Knoten-IDs von n Knoten gleichverteilt in [0, 1]d : Approximieren durch Gitter mit Abstand n−1/d zwischen benachbarten Gitterpunkten. • Durchschnittlicher Abstand zwischen zwei beliebigen Punkten auf dem Gitter mit Wraparound in jeder der d Dimensionen: 1 d · 1/4 · −1/d = (d/4)n1/d . n L OOKUP benötigt dann O dn1/d Botschaften. (Analyse nur mit Gleichverteilung? M. h. W.“-Aussage?) ” Für d = log n: L OOKUP mit O(log n) Botschaften. Dann aber auch Speicherplatz 2(log n) pro Knoten. Suche nach einer beliebigen ID: • Starte mit bekanntem aktiven Knoten. • Finde Nachbarn, dessen ID geringsten Abstand zum Ziel hat (Greedy-Vorgehensweise). 541 542 L EAVE : J OIN : • Knoten überwachen ihre Nachbarn. • Falls einer verschwunden, übernimmt dessen Zone der • Generiere zufällige ID x ∈ [0, 1]d . • L OOKUP, um aktiven Knoten zu finden, aktive Nachbarknoten mit kleinster Zone. • Verschmilz Zonen, falls dies legale Zone ergibt. Ansonsten muss Knoten mehrere Zonen verwalten. dessen ID geringsten Abstand zu x hat. • Teile Zone des aktiven Knotens. • Korrektur der Nachbarschaften. Anzahl Botschaften: O dn1/d . Aufwand O(d) für das Verschmelzen. Problem: Fragmentierung des ID-Raumes. 543 544 Lösung: Defragmentierungsprozedur. Kostenübersicht: Beseitigung von Extrazone nach L EAVE: • Finde irgendwelche benachbarte Hyperrechtecke, die zu größerem Hyperrechteck verschmolzen werden können (gibt es immer – Übungsaufgabe). • Verschmilz diese. Benutze freien Knoten, um Extrazone abzudecken. Anzahl Schlüssel pro Knoten: Lokaler Platz für Routing-Infos: L OOKUP: J OIN: L EAVE: Kosten: Tiefe des Partitionsbaumes. O(log n · k /n) O(d) O dn1/d Botschaften (?) O dn1/d Botschaften (?) ? Noch fehlende Analysedetails: • Hashfunktionen mit endlichem Wertebereich. • Obere Schranke für L OOKUP, die mit hoher Wskt. gilt. • Overhead für und Auswirkungen von Defragmentierung. Falls Zonen alle gleich groß ⇒ Baum balanciert und Tiefe O(log n). Für zufällige Verteilung bisher keine Analyse. 545 546 5.5 Kademlia (KAD) Hashing und IDs: Arbeit: Maymounkov und Mazières (2002). • Wie bei Chord: Knoten und Daten unabhängig auf Hashwerte, genannt IDs, abbilden. • IDs aus 0, . . . , 2m − 1 . • Original-Kademlia: Hashing mit SHA-1, m = 160. Implementierung in verschiedenen aktuellen Clients für P2P-Netze, z. B. eMule (eDonkey), Azureus (BitTorrent). Ziel Verbesserung von Chord: • Finger-Routing-Tabellen starr, richtiger“ nächster ” Knoten bei Suche fest vorgeschrieben. Heuristiken zur Berücksichtigung von Antwortzeiten schwierig zu integrieren. • Asymmetrische Abstandsfunktion → Routing-Infos aus ankommenden Anfragen helfen nicht. Abstände: Für zwei IDs x, y ∈ 0, . . . , 2m − 1 : d(x, y ) := |x ⊕ y |2 , wobei |z|2 Wert von Bitvektor z als Binärdarstellung. • Dies ist tatsächlich Metrik, insbesondere symmetrisch. • Für jedes x ∈ {0, 1}m und d ∈ 0, . . . , 2m − 1 Wichtigste neue Idee bei Kademlia: Symmetrische, XOR-basierte Abstandsfunktion. genau ein y ∈ {0, 1}m mit d(x, y ) = d. 547 548 L OOKUP intuitiv: Datenstruktur für Knoten: Von 1101 nach 0011: Abstand (1110)2 = 14. Kontakt: Tripel (IP-Adresse, UDP-Port, ID). k -Buckets: Für i = 0, . . . , m − 1: Queue mit bis zu k Kontakten im Abstand [2i , 2i+1 , sortiert nach Zeit seit letztem Zugriff (frischeste am Ende). 0 0 0 1 1 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 • Original-Kademlia: k = 20. 1 So wählen, dass Ausfall aller k Kontakte eines Buckets innerhalb einer Stunde hinreichend unwahrscheinlich. • Typischerweise Buckets mit kleinem Index leer. In jedem Schritt: Finde nächsten Zwischenknoten in Teilbaum, in dem vorderstes falsches Bit geflippt. → Abstandshalbierung, O(log n) Suchzeit. Ähnlich zu Chord, aber hier mehrere Kontakte für jede Abstandsklasse → Auswahlmöglichkeiten. 549 550 Updates der Kontakte: Für jeden Konkakt, mit dem kommuniziert wurde: Ans Ende des zugehörigen Buckets verschieben (Kontakt vorhanden) bzw. dort einfügen (neuer Kontakt). Bemerkung: In der Originalarbeit alternative Speicherung der k -Buckets in binärem Baum: • Zu Anfang Baumknoten für [0, 2m . • Falls Bucket voll und neuer Knoten in Teilintervall zu betrachtetem Knoten: Splitte Intervall und erzeuge neuen Baumknoten. • Ansonsten: Neuen Knoten wegwerfen. Falls bereits k Einträge und neuer Kontakt: • Teste, ob Knoten zu ältestem Kontakt im Bucket antwortet. • Falls ja, dann neuen Kontakt verwerfen, sonst alten. • Übernommenen Kontakt ans Ende der Queue. Bevorzuge alte Kontakte, da für diese statistisch höhere Wskt., dass sie weiter aktiv bleiben. Im Folgenden: Kontakt → Knoten“. ” 551 552 Beispiel: Operationen: 0 1 0∗∗ 0 1 0 100 Elementare Operationen (greifen nur auf lokale Datenstruktur eines Knotens zu): • F IND C LOSEST N ODES (v , ID): Liefert k Knoten aus Datenstruktur des Knotes v , die am nächsten zu ID. • S TORE (v , ID, (Schlüssel, Wert)): Speichert (Schlüssel, Wert) in Knoten v . 1 11∗ 101 Damit nur O(log n) Platz pro Netzknoten (ohne Beweis). Vgl. Chord: Dort ähnlicher Trick und Beweis, dass jeder Knoten nur O(log n) verschiedene Finger hat. 553 L OOKUP : 554 Bemerkungen: • Original-Kademlia: a = 3. • Parallele Aufrufe verschränkt mit Such-Prozedur, neue Aufrufe nach Verzögerung starten. Ergebnisse trudeln nach und nach ein. • Sollte mindestens einen Aufruf für Knoten in R mit minimalem Abstand durchführen (→ später). • Spezielle Prozedur für Suche nach Daten-ID: Kann stoppen, sobald Datum gefunden. I TERATIVE F IND C LOSEST N ODES (v, ID): Queue R mit maximal k bereits erreichten Knoten, sortiert nach Abstand zu ID. R := F IND C LOSEST N ODES (v , ID). repeat • Wähle a bisher nicht kontaktierte Knoten aus R und stelle parallel Anfragen mit F IND C LOSEST N ODES. • Sortiere Ergebnisse erfolgreicher Anfragen in R ein (verdränge ggf. Einträge mit größerem Abstand). Entferne Knoten, die nicht geantwortet haben. • Falls keine Knoten mit kleinerem Abstand gefunden, Anfragen an alle noch nicht kontaktierten Knoten in R. until R unverändert; return Liste der Knoten in R. Speichern von Daten: I NTERATIVE S TORE (v, ID, (Schlüssel, Wert)): Findet k Knoten, die zu gegebener ID geringsten Abstand haben (mit I NTERATIVE F IND C LOSEST N ODES) und speichert Schlüssel-Wert-Paar darin (mit S TORE). 555 556 Redundante Datenspeicherung: Zur Absicherung gegenüber Ausfällen jedes Schlüssel-Wert-Paar k -fach gespeichert. Satz 5.9: Für jeden Knoten v gelte, dass sein i-tes Bucket nicht leer ist, sobald ein Knoten im Netz mit Abstand in [2i , 2i+1 von v existiert. Außerdem wähle I TERATIVE F IND C LOSEST N ODES immer mindestens einen Knoten mit minimalem Abstand unter den bereits gefundenen. Dann kontaktiert für c > 0 die Prozedur mit Wskt. mindestens 1 − n−c höchstens O(log n) Knoten. • Bei neuer Speicherung mit Prozedur I NTERATIVE S TORE I N C LOSEST N ODES erfüllt. • Jeder Knoten veröffentlicht sein ggf. vorhandenes Schlüssel-Wert-Paar nach jeder Stunde neu: Sende dies dazu an k nächste Nachbarn. • Knoten, der Paar neu erzeugt hat, muss dieses alle 24 Stunden neu veröffentlichen. Daten, die nicht aufgefrischt werden, verfallen nach einiger Zeit (spätestens 24 Stunden). 558 557 Beweis: Sei t die gesuchte Ziel-ID. Betrachte Iteration, bei der bereits Knoten mit ID s erreicht. Es ist d(s, t) ∈ [2i , 2i+1 für irgendein i ∈ {0, . . . , m − 1}. Sei s Knoten nach erster Phase mit Abstand höchstens 2m /n vom Ziel. Die Prozedur fügt i-tes Bucket von s zur Queue hinzu und wählt nach Voraussetzung Knoten mit ID s ′ aus diesem für nächste Runde. Falls gewünschtes Bucket leer, dann fertig. Analog zu Argument bei Chord: M. h. W. O(log n) Knoten mit Abstand höchstens 2m /n von s. Beobachtung: IDs in i-tem Bucket stimmen in höchstwertigsten m − i Bits überein. ⇒ In jedem weiteren Schritt echte Abstandsverringerung oder gewünschtes Bucket leer (dann fertig). d(s ′ , t) ≤ 2i − 1. Also insgesamt O(log n) Schritte. Darstellung von d(s ′ , t) um ein Bit kürzer als die von d(s, t). Nach log n + 1 Schritten hat Abstand Darstellung mit höchstens m − log n − 1 Bits, d. h. Abstand höchstens 2m−log n − 1 < 2m /n. 559 560 Wie Voraussetzungen erfüllen? J OIN : • Kompletter Ausfall eines ganzen Buckets Sei u aktiver Knoten, v neuer Knoten. IDs Xu , Xv . • Trage Xu in passendes Bucket von neuem Knoten v ein. • Rufe I TERATIVE F IND C LOSETS N ODES (u, Xv ) auf. Liefert k nächste Nachbarn von v . • Sei i kleinster Index eines nicht leeren Buckets. Führe BUCKET R EFRESH für alle Buckets mit Index ≥ i durch. • Übertragung der Schlüssel-Wert-Paare: Entweder auf Wiederveröffentlichung warten oder k nächste Nachbarn aktiv danach befragen. unwahrscheinlich. • Buckets werden stündlich durch Refresh aktualisiert → Knoten-Zugänge und -abgänge richtig reflektiert. B UCKET R EFRESH : Falls für ein Bucket keine Suchanfrage nach ID in dessen Bereich innerhalb einer Stunde: • Wähle ID zufällig im Bereich des Buckets. • Führe I TERATIVE F IND C LOSEST N ODES für diese ID durch. 562 561 Kostenübersicht: Anzahl Schlüssel pro Knoten: Lokaler Platz für Routing-Infos: L OOKUP: J OIN: L EAVE: Kosten für J OIN bisher scheinbar nirgendwo genau analysiert. Ideen: • Balance genauso wie bei Chord, direkte Verschiebung von Daten daher effizient machbar. • Maximal O(log n) Buckets besetzt, jeweils O(log n) Botschaften pro Refresh: O log2 n Botschaften für Intialisierung der neuen Buckettabelle. O(log n · k /n) O(log n) O(log n) Botschaften O log2 n Botschaften? ? (siehe unten) Noch fehlende Analysedetails: • Kosten für J OIN. • Overhead durch Refresh und Wiederveröffentlichung. → Kosten für L EAVE. • Beweis für Fehlerschranke, die Refresh und Wiederveröffentlichung berücksichtigt. L EAVE : Nichts tun. Bereits erledigt durch Daten-Replikation und Bucket-Refreshes (und flexibles Routing, das Umwege um evtl. Lücken findet). Algorithmenbeschreibung in der Originalarbeit ungenau, mehr Details in der Spezifikation des XLattice-Projekts: xlattice.sourceforge.net. 563 564 6. Algorithmische Spieltheorie Fazit P2P-Netze: Noch zu lösende Probleme (aktuelle Forschung): • Teilstring-Suchanfragen: DHTs: Exakte Suche nach einzelnem Schlüssel. Für Tauschbörsen-Anwendung nicht typisch. ( Stirb langsam“, Stirb langsam 4.0“, Die hard“, ” ” ” Live Free or Die Hard“ sollten nach Möglichkeit alle ” ähnlich interessante Ergebnisse liefern.) Übersicht: 6.1 6.2 6.3 6.4 6.5 • Sicherheit gegen gezielte Manipulation des Netzes. • Anonymität. Einleitung Klassische Theorie nichtkooperativer Spiele Egoistisches Routing Mechanismen-Entwurf Auktionen Und: Theoretische Analysen bekannter Verfahren. Kosten für Netzreparatur abhängig von Zugangs-/Abgangsrate, Modelle für P2P-Netze usw. 565 566 6.1 Einleitung Übliche Modelle: Implementierung und Ausführung von Algorithmen unter unserer Kontrolle. Versagen allein aufgrund technischer Probleme, z. B. Hardwarefehler. Einige konkrete Beispiele: Routing zwischen autonomen Systemen: Autonomes System (AS): Organisation (ISP), die Verbindungsnetz unterhält und für durchgeleiteten Verkehr Geld kassiert. Spezielle Routingprotokolle (BGP) für Verbindung von ASen. Internet und WWW: • Keine zentrale Verwaltung, keine globale Planung oder Optimierung des Netzes. • Viele unterschiedliche Akteure (Einzelpersonen, Firmen, Staaten), die eigennützige Interessen verfolgen. Soziale Phänomene erzeugen neue Schwierigkeiten, aber auch interessante neue Anwendungen. Routing muss ökonomische und politische Interessen berücksichtigen. Typischerweise nicht kürzester Weg. Wie kann man gerechte Kosten“ ermitteln? ” Hier: Ansätze eines theoretischen Rahmens dafür. 567 568 Trittbrettfahrer in P2P-Systemen: Algorithmische Spieltheorie: Studie: 70 % der Gnutella-Nutzer liefern keine Dateien, 1 % liefern 37 % aller Dateien (Adar, Huberman 2000). Klassische ökonomische Theorien kombiniert mit algorithmischen Techniken und Anwendungen aus der Informatik. Wie kann man große Zahl anonymer Benutzer zu Kooperation motivieren? Klassische Spieltheorie: von Neumann, Morgenstern (1944). Kombinatorische Auktionen: Bieter geben Gebote für Teilmengen von Objekten ab. Verschiedene praktische Anwendungen, z. B. Vergabe von LKW-Transportaufträgen, Busrouten, Sendefrequenzen. Einschätzung des Forschungsgebietes: Modelle, um ausgewählte Aspekte sozialen Verhaltens im Internet besser zu verstehen (zunehmend wichtiger). Vergabe so, dass Bieter ihren wahren“ Wert bieten? ” So, dass Profit des Verkäufers maximiert wird? Algorithmus für Zuordnung Objekte → Bieter? Direkte praktische Umsetzung bis jetzt nur in einigen wenigen Teilbereichen, z. B. Auktionen. 570 569 6.2 Klassische Theorie nichtkooperativer Spiele 6.2.1 Zwei-Personen-Nullsummenspiele Mehrere Akteure, Agenten, Spieler, die eigene Interessen verfolgen (oft kollidierende) und miteinander in Interaktion treten. Interaktion beschrieben als Spiel. Beispiel: Papier-Stein-Schere“. ” • Zwei Spieler, jeweils mit Wahlmöglichkeiten, Strategien, Papier“, “Stein“ oder Schere“. ” ” • Spieler wählen unabhängig voneinander (“geheim“) jeweils eine Möglichkeit aus. • Dann Aufdecken beider Strategien. Auszahlungsmatrix sagt, was Spieler 1 von Spieler 2 erhält. Modell für Aspekte von sozialem / ökonomischem Verhalten von Menschen (extreme Vereinfachung – Vorsicht!). Szenario der Spieltheorie: • Spieler können mögliche Spielausgänge gemäß Präferenzen anordnen (Quittengelee ≺ Honig ≺ Nutella). • Noch konkreter: Präferenzen als numerische Nutzenwerte. • Spieler streben nach Maximierung ihres persönlichen Nutzens. • Spieler verhalten sich rational und es ist allen bekannt an, dass alle das tun – und allen ist diese Tatsache bekannt. . . Spieler 2: Papier: Stein: Schere: Spieler 1: 571 Papier: Stein: Schere: 0 −1 1 1 0 −1 −1 1 0 572 Welche Strategie sollte man spielen? Allgemeine Definition: Definition 6.2: Nash-Gleichgewicht, Sattelpunkt Ein Strategienpaar (i, j) heißt Nash-Gleichgewicht, wenn keiner der beiden Spieler durch Spielen einer anderen Strategie eine höhere Auszahlung bekommt als bei (i, j). Nenne (i, j) Sattelpunkt von A = (ak,ℓ ), wenn ai,j Minimum seiner Zeile und Maximum seiner Spalte in A ist. Definition 6.1: Zwei-Personen-Nullsummenspiel • Endliche Strategienmengen S1 , S2 . O. B. d. A. S1 = {1, . . . , m}, S2 = {1, . . . , n}. Spieler wählen Strategienpaar (s1 , s2 ) ∈ S1 × S2 . Dabei keine Interaktion zwischen den Spielern. • Reellwertige Auszahlungsmatrix A = (ai,j )i,j : Für Strategiepaar (i, j) erhält Spieler 1 Auszahlung ai,j , Spieler 2 erhält Auszahlung −ai,j . Beobachtung: Genau die Sattelpunkte der Auszahlungsmatrix sind Nash-Gleichgewichte. Nash: Rationalität der Spieler und Wissen um Rationalität der anderen usw. führt zur Wahl von Nash-Gleichgewicht. 574 573 Beispiel: Eindeutigkeit des Nash-Gleichgewichts? Nein, aber zumindest haben alle gleichen Wert: 5 1 3 Auszahlungsmatrix A = 3 2 4 −3 0 1 Proposition 6.3: Falls (i, j) und (i ′ , j ′ ) Sattelpunkte von A sind, dann auch (i, j ′ ) und (i ′ , j) und es gilt ai,j = ai ′ ,j = ai,j ′ = ai ′ ,j ′ . Nur (2, 2) ist Sattelpunkt von A und damit Nash-Gleichgewicht. Beweis: Gemäß Definition von Sattelpunkten gilt Erwarte, dass Spieler beide Strategie 2 wählen. ai,j ≤ ai,j ′ ≤ ai ′ ,j ′ ai ′ ,j ′ ≤ ai ′ ,j ≤ ai,j . • Z. B. Spieler 1 spielt Strategie 1 → Spieler 2 kann Gegenstrategie 2 spielen und er bekommt weniger als im Nash-Gleichgewicht. • Der jeweils andere Spieler kann nur verlieren, wenn er dumm genug“ ist, von Strategie 2 abzuweichen. ” und Also folgt ai,j = ai ′ ,j = ai,j ′ = ai ′ ,j ′ . Da ai,j Minimum von Zeile i, auch ai,j ′ Minimum; da ai ′ ,j ′ Maximum von Spalte j ′ , auch ai,j ′ Maximum. Analog für ai ′ ,j . Gibt es immer ein Nash-Gleichgewicht? 575 576 Definition 6.4: Gemischte Strategien Seien S1 , S2 vorgegebene Strategienmengen mit |S1 | = m, |S2 | = n. Nenne Strategien aus diesen Mengen im Folgenden reine Strategien. Eine gemischte Strategie eines Spielers ist eine Wahrscheinlichkeitsverteilung über seinen reinen Strategien. x = (x1 , . . . , xm ) ∈ [0,1]m und y = (y1 , . . . , yn ) ∈ [0,1]n gemischte Strategien, dann ist die erwartete Auszahlung für Spieler 1 definiert als X X e(x, y ) := ai,j xi yj = x ⊤Ay . Beobachtung: Z. B. für Papier-Stein-Schere nicht. Auszahlungsmatrix 0 1 −1 0 1 A = −1 1 −1 0 hat keinen Sattelpunkt. Falls Gegner unsere Strategie errät, kann er immer eine passende Gegenstrategie wählen, die ihm den Sieg sichert und umgekehrt. 1≤i≤m 1≤j≤n Abhilfe: Randomisierte Auswahl. Menge der gemischten Strategien enthält genau die Konvexkombinationen der reinen Strategien (konvexe Hülle). 577 Erweitere Definition von Nash-Gleichgewichten auf beliebige, auch gemischte Strategien. 578 In diesem neuen Szenario nun Nash-Gleichgewichte für beliebige Probleme? Im Papier-Stein-Schere-Beispiel dann Strategienpaar (x, y ) mit 1 1 1 x =y = , , 3 3 3 ein Nash-Gleichgewicht (in gemischten Strategien). Optimale Strategie für Spieler 1: Sei x gemischte Strategie von Spieler 1. Gegenstrategie von Spieler 2: Wähle y so, dass erwartete Auszahlung x ⊤Ay für Spieler 1 minimal ist. Denn: 0 1 −1 1/3 0 −1 0 1 · 1/3 = 0 , 1 −1 0 1/3 0 Spieler 1 sollte also x ∈ S1 so wählen, dass v1 (x) := min x ⊤Ay y∈S2 maximal wird. Egal welche Strategie der andere Spieler wählt – es kommt immer 0 als erwartete Auszahlung heraus. 579 580 Hatten: Spieler 1 will x ∈ S1 mit maximalem Für festes x ist v1 (x) = min x ⊤Ae j . y 7 → x ⊤Ay 1≤j≤n lineare Funktion auf konvexer Menge. Minimum wird in einem der Eckpunkte e1 , . . . , en angeommen: Können dies durch ein lineares Programm beschreiben: • Variablen x = (x1 , . . . , xm ) ∈ Rm und λ ∈ R. • Maximiere λ unter den Nebenbedinungen: v1 (x) = min x ⊤Ae j . 1≤j≤n Direkter Beweis: Sei x ⊤ A = [a1 , . . . , an ]. Dann ist x ⊤Ae j ≥ λ, 1 ≤ j ≤ m. x1 , . . . , xm ≥ 0 und x1 + · · · + xm = 1. x ⊤ Ay = a1 y1 + · · · + an yn . Dies minimieren für y1 , . . . , yn ∈ [0, 1] mit y1 + · · · + yn = 1. Sei ai0 = mini ai , dann wähle yi0 := 1 und yi = 0 für i 6 = i0 . Lösbar mit Polynomialzeitalgorithmus. In der Praxis oft mit Simplex-Algorithmus (im Worstcase exponentielle Zeit). 581 Haben also optimale Strategie x ∗ für Spieler 1 mit erwarteter Auszahlung v1 := v1 (x ∗ ). 582 Satz 6.5: Minimax-Theorem (von Neumann) • Für jedes Zwei-Personen-Nullsummenspiel existiert ein Strategienpaar (x ∗ , y ∗ ), das ein Nash-Gleichgewicht in gemischten Strategien ist. • Die Strategien x ∗ und y ∗ können mit Hilfe der linearen Programmierung effizient berechnet werden. • Für jedes solche Strategienpaar beträgt die erwartete Auszahlung für Spieler 1 (erwartete Kosten für Spieler 2) Analog für Spieler 2: Will y ∈ S2 mit minimalem v2 (y ) = max ei⊤Ay . 1≤i≤m Entsprechendes lineares Programm dual zu dem von Spieler 1, liefert optimale Strategie y ∗ für Spieler 2 mit erwarteten Kosten v2 := v2 (y ∗ ). Strategienpaar (x ∗ , y ∗ ) ist offensichtlich Nash-Gleichgewicht. max min x ⊤Ay = min max x ⊤Ay . x∈S1 y∈S2 Dualitätstheorem der linearen Programmierung: v1 = v2 (hier leider ohne Details). 583 y∈S2 x∈S1 584 6.2.2 Allgemeine nichtkooperative Spiele Nützliche Notation: Für Vektor v = (v1 , . . . , vℓ ) und i ∈ {1, . . . , ℓ}: v−i := (v1 , . . . , vi−1 , vi+1 , . . . , vn ); (v−i , w ) := (v1 , . . . , vi−1 , w , vi+1, . . . , vn ) (hemdsärmlig). Definition 6.6: Nichtkooperatives Spiel • Spieler 1, . . . , n. • Strategienmengen S1 , . . . , Sn : Spieler i wählt Strategie si ∈ Si , i = 1, . . . , n → Strategietupel s = (s1 , . . . , sn ) ∈ S1 × · · · × Sn . Definition 6.7: Nash-Gleichgewicht Strategientupel s = (s1 , . . . , sn ) heißt Nash-Gleichgewicht, falls für alle i = 1, . . . , n und si′ ∈ Si gilt • Auszahlungsfunktionen u1 , . . . , un : S1 × · · · × Sn → R: – Strategientupel s legt Ausgang des Spiels fest. – Spieler i misst dem zugehörigen Ausgang Nutzen ui (s) zu bzw. erhält dies als Auszahlung. Auszahlungsmatrix: (u1 (s), . . . , un (s))s . ui (s−i , si′) ≤ ui (s). Stimmt natürlich mit dem Spezialfall für Zwei-Personen-Nullsummenspiele überein. Üblicherweise als Spiel in Normalform bezeichnet. 585 586 Dynamische Spiele Beschreibe Abfolge der Züge im Spiel. Gemischte Strategien auch analog zu Zwei-Personen-Nullsummenspielen. Beschreibung als Spielbaum: • Knoten markiert mit handelndem Spieler, ausgehende Kanten mit Strategien für diesen Knoten. • Spielverlauf ist Weg Wurzel → Blatt. • Auszahlungen an den Blättern. Bezeichnung: Extensive (dynamische) Form des Spiels. Erwartete Auszahlung für Spieler i bei Tupel p = (p1 , . . . , pn ) von gemischten Strategien: X ui (s1 , . . . , sn ) · p1 (s1 ) · · · pn (sn ). ei (p) := s1 ,...,sn Überführung in Normalform möglich: Strategie eines Spielers in Normalform spezifiziert für jeden Knoten im Baum, an dem er agiert, die gewählte Strategie. 587 588 Beispiel: Trittbrettfahrer in P2P-Netzen. Auszahlungsmatrix: Betrachte folgendes sehr einfache Modell der Situation: K: Zwei Spieler, jeweils zwei Strategien: • Kooperieren: Stelle eigene Dateien zur Verfügung (in allgemein als fair“ angesehenem Umfang). ” • Schmarotzen: Nur Abgreifen von Dateien. K: S: • Einziges Nash-Gleichgewicht in reinen Strategien: (S, S). (Tatsächlich auch einziges überhaupt.) • Strategienpaar (K , K ) sozial wünschenswert“ ” (maximiert Gesamtnutzen aller), aber kein Gleichgewicht. Spieler 2: K: S: K: 8, 8 S: 10, −2 8, 8 −2, 10 10, −2 0, 0 Nash-Gleichgewichte? Auszahlungsmatrix: Spieler 1: S: −2, 10 Abhilfe: Verträge, Seitenzahlungen. 0, 0 589 Bekanntere Variante des Spiels: 590 Auszahlungsmatrix: Spieler 2: K: B: Beispiel: Gefangenendilemma. Sheriff hat zwei des Bankraubes Verdächtigte eingelocht, hat aber nur Beweise für kleinere Delikte und braucht Geständnis. Spieler 1: K: −1, −1 −10, 0 B: 0, −10 −5, −5 K: kooperieren“ (cooperate), B: betrügen“ (defect). ” ” • Falls beide dicht halten“: Jeweils 1 Jahr für ” kleinere Delikte. • Falls genau einer der beiden singt“, kommt er als ” Kronzeuge frei und der andere bekommt 10 Jahre. • Falls beide singen“: Wegen Geständnis jeweils ” nur 5 Jahre. Bis auf Skalierung wie Trittbrettfahrer“. ” Genauso: Wettrüsten“. ” Tatsächlich in diesem Kontext in den 1950er Jahren von der RAND-Corporation untersucht. 591 592 Iteriertes Gefangenendilemma: Beispiel: Konkurrierende Standards. • Zwei Firmen, die Produkt gemäß von ihnen bevorzugten Endliche Rundenanzahl: Standards A bzw. B herstellen möchten. • Strategien: Wahl des Standards: • Unterschiedliche Standards am Markt → Kunden akzeptieren Produkt nicht. Rundenanzahl ist endlich und allen Spielern bekannt. Nash-Gleichgewicht durch Rückwärtsinduktion: Strategienpaar (B, B) für alle Runden. Unendliche bzw. unbekannte Rundenanzahl: Auszahlungsmatrix: A: B: Zunächst klären: Wie Auszahlung definieren? Üblich: Diskontierter Durchschnitt: Für δ ∈ [0, 1] und Strategie s: ∞ X δ i ui (s), ui Auszahlung in i-ter Runde. u(s) = (1 − δ) A: B: r =1 4, 2 1, 1 1, 1 2, 4 Standardname in der Literatur: Battle of the Sexes. Beispiel für Klasse der Koordinationsspiele. Viele Gleichgewichts-Strategienpaare, z. B. Tit-for-tat. Experimente von Axelrod (1980, 1984). 594 593 Auszahlungsmatrix: A: B: A: B: Beispiel: Konkurrenzkampf. • Zwei Spieler konkurrieren um Ressource. • Strategien: nachgeben“ oder durchsetzen“. 4, 2 1, 1 1, 1 2, 4 Nash-Gleichgewichte: (1, 0), (1, 0) , (0, 1), (0, 1) und ” 3 1 4, 4 , 1 3 4, 4 ” • Wenn beide nachgeben, wird Ressource geteilt. • Kampf ist extrem kostspielig für beide. . Auszahlungsmatrix: N: D: Interpretations-Schwierigkeiten: • Gleichgewichte in reinen Strategien nicht gerecht“. ” • Gleichgewicht in gemischten Strategien: – Schlechtere erwartete Auszahlungen (je 1,75) als bei reinen Strategien. – Bei fester Strategie von einem Spieler alle W-Verteilungen für anderen Spieler gleich gut. → Verlässliche Wahl der Strategien? N: 5, 5 0, 10 D: 10, 0 −1, −1 Nash-Gleichgewichte und Diskussion → Übungen. Namen in der Literatur: Chicken, Hawk-Dove. Beispiel für Klasse der Antikoordinationsspiele. 595 596 Satz 6.8: Für jedes nichtkooperative Spiel existiert ein Nash-Gleichgewicht in gemischten Strategien. Beweis von Behauptung 1: Nur dann“: Falls ci > 0, dann ist reine Strategie i für ” Spieler 1 besser als Strategie x und (x, y ) kein Nash-Gleichgewicht. Beweis: Der Einfachheit halber nur für n = 2. Dann“: Falls c1 = · · · = cm = 0, gilt für alle i: ” ei⊤Ay ≤ x ⊤Ay . Seien A bzw. B m × n-Auszahlungsmatrizen. Für gemischte Strategien x, y ∈ [0, 1]2 und i = 1, . . . , m definiere ci = ci (x, y ) := max 0, ei⊤Ay − x ⊤ Ay , Dann folgt aber auch für beliebige gemischte Strategien ∗ ]⊤ ∈ [0, 1]m für Spieler 1: x ∗ = [x1∗ , . . . , xm X X xi∗ x ⊤Ay = x ⊤Ay . (x ∗ )⊤Ay = xi∗ ei⊤Ay ≤ d. h. Vorteil von reiner Strategie i gegenüber x. Analog di = di (x, y ), i = 1, . . . , n, für Spieler 2 und Matrix B. i i (Behauptung 1) Behauptung 1: (x, y ) ist Nash-Gleichgewicht genau dann, wenn c1 = · · · = cm = 0 und d1 = · · · = dn = 0. 597 598 Beweis von Behauptung 2: Falls ci = di = 0 für alle i, ist T = id und die Behauptung erfüllt. Es bleibt die andere Richtung zu zeigen. Definiere Transformation von Strategienpaaren, T (x, y ) = (x ′ , y ′ ) mit xi + c i P , i = 1, . . . , m; xi′ := 1 + i ci yj + d j P yj′ := , j = 1, . . . , n. 1 + j dj Sei ci > 0 für mindestens ein i. Zeige T (x, y ) 6 = (x ′ , y ′). Es muss ein i0 mit xi0 > 0 und ci0 = 0 geben, denn sonst: X X xi · x ⊤Ay = x ⊤Ay . x ⊤Ay = xi · ei⊤Ay > Dann ist tatsächlich (x ′ , y ′ ) wieder ein Paar gemischter Strategien. i : xi >0 i : xi >0 Widerspruch. Aus xi0 > 0 und ci0 = 0 folgt aber xi 0 + ci 0 xi 0 P P = < xi 0 xi′0 = 1 + i ci 1 + i ci und damit T (x, y ) = (x ′ , y ′) 6 = (x, y ). (Behauptung 2) . Behauptung 2: T (x, y ) = (x ′ , y ′ ) genau dann, wenn c1 = · · · = cm = 0 und d1 = · · · = dn = 0. 599 600 Beide Behauptungen ⇒ Nash-Gleichgewichte sind genau die Fixpunkte von T . 6.2.3 Spiele mit unendlichen Strategiemengen Dies ist eine stetige Abbildung auf der kompakten, konvexen und nichtleeren Menge aller Strategienpaare. Fixpunktsatz von Brouwer ⇒ Fixpunkt von T in dieser Menge existiert. Hier vorgestellte Definitionen alle leicht übertragbar. Beispiel: Strategiemengen S1 , . . . , Sn reelle Intervalle. • Nash-Gleichgewicht s: Alte Definition besagt: Für jeden Spieler i muss x 7 → ui (s−i , x) lokales Minimum x = si besitzen. (Hilfreich: ui differenzierbar.) • Gemischte Strategien gegeben durch W.-Dichten f1 , . . . , fn auf den Strategieintervallen. • Erwartete Auszahlung: Summe → Integral. Effiziente Berechnung von Nash-Gleichgewichten für allgemeine nichtkooperative Spiele? Bereits für n = 2 Spieler offen. Außerdem: Allgemeines 2-Personen-Spiel → 3-Personen-Nullsummenspiel mit Dummy-Spieler. Problem, das zwischen P und NP vermutet wird. 602 601 6.3 Egoistisches Routing Für gegebenes Spiel: • Für Strategientupel s: Modelle für Verkehr, wo Routing von unabhängigen Verkehrsteilnehmern ohne zentrale Steuerung durchgeführt wird. C(s) := Gesamtkosten aller Spieler bei Wahl von s. • Soziales Optimum: Copt := mins C(s). • Sei s ∗ Nash-Gleichgewicht mit maximalem C(s ∗ ). Nenne C(s ∗ )/Copt Koordinationsfaktor des Spiels. Jeder Vekehrsteilnehmer minimiert eigene Kosten: Transport des eigenen Vekehrs in möglichst kurzer Zeit, gegeben die aktuelle Verkehrslage. Betrachte Nash-Gleichgewichte, die so entstehen. (Hier o. B. d. A. Copt > 0.) Koordinationsfaktor misst Preis für Anarchie“, ” Overhead für unkoordiniertes Verhalten im Vergleich zu zentraler Steuerung. Intuition: Das kann nicht optimal sein. Stau! Konkrete Beispiele später. Modelle (noch) weit weg von realen Routingprotokollen, aber trotzdem wichtige grundlegende Fragestellung. 603 604 6.3.1 Das Makespan-Scheduling-Modell Kosten: Arbeit: Koutsoupias und Papadimitrious (1999). s s1 s2 .. . Sei Zuordnung s = (j1 , . . . , jn ) ∈ {1, . . . , m}n der Jobs auf die Links gegeben (Tupel reiner Strategien). • Kosten für i-ten Link (Beendigungszeit) ··· t sm 1 2 3 ℓi (s) := m 1X wk . si jk =i • Gesamtkosten: • n Spieler/Jobs mit Gewichten w1 , . . . , wn ∈ R+ . 0 • m Links mit Geschwindigkeiten s1 , . . . , sm . C(s) := max ℓi (s). 1≤i≤m • Soziales Optimum: Copt = mins C(s). • Strategienmenge für jeden Spieler: (Beachte: Hier nur reine Strategien betrachtet.) Auswahl eines Links aus {1, . . . , m}. Lastverteilungsproblem, Makespan-Scheduling. 605 606 Nash-Gleichgewichte (Forts.): Nash-Gleichgewichte: Beendigungszeit von Link j, wenn Spieler i reine Strategie Job i auf Link j“ spielt (und restliche Spieler gemäß (p−i )): ” X 1 ci,j := wi + wk pk,j . si Für Spieler i = 1, . . . , n sei pi := (pi,j )1≤j≤m W.-Verteilung für Zuordnung auf die Links, p = (p1 , . . . , pn ). Auf nahe liegende Weise: • Erwartete Kosten für i-ten Link: 1X wk pi,k . ℓi (p) = si k6=i Proposition 6.9: Nash-Gleichgewichte in gemischten Strategien sind genau die p, bei denen das gesamte Gewicht der W-Verteilung von Spieler i auf reinen Strategien j verteilt ist mit ci,j = mink ci,k . jk =i • Erwartete Gesamtkosten (über Verteilungen in p): E(C(p)) = E max ℓi (p) 1≤i≤m Wähle unter den Nash-Gleichgewichten dasjenige mit maximalen Kosten E(C(p)) und vergleiche mit Copt . 607 608 6.3.2 Das Kontinuierliche-Flüsse-Modell Arbeit: Roughgarden, Tardos (2000). Hier ohne Beweis: Verkehrsnetz: • Gerichteter Graph G = (V , E). • Für jede Kante e ∈ E Latenzfunktion ℓe : R+ → R+ , 0 0 stetig und monoton wachsend. • Für i = 1, . . . , k : – Quellen-Senken-Paar (si , ti ), Emissionsrate ri ∈ R+ 0. – Kollektion Pi von Wegen si nach ti . Sei (o. B. d. A.) Pi ∩ Pj = ∅ für i 6 = j. P := P1 ∪ · · · ∪ Pk . Kosten für Benutzung von Kante abhängig von bereits vorhandenem Verkehrsfluss → Nichtlinearität. Satz 6.10 (Czumaj, Vöcking 2002): Für das Routing im Makespan-Scheduling-Modell von Koutsoupias und Papadimitriou ergeben sich folgende Koordinationsfaktoren: • m identische Links: 2 (log m)/(log log m) . • m beliebige Links: 2 (log m)/(log log log m) . 610 609 Nichtatomare Spieler: Flüsse: x s 1 fP = 1/2 t s fQ = 1/2 x fP = 1/2 1 t fQ = 1/2 • Jeder Spieler trägt infinitesimale Einheit zum ℓP (f ) = ℓQ (f ) = C(f ) = Gesamtverkehr bei. Überabzählbare viele Spieler. • Spielertypen 1, . . . , k : Strategie jeweils Wahl eines Weges von si nach ti . Gemischte Strategien bereits automatisch. Approximation durch atomare Variante: • Fluss: Abbildung f : P → R+ , sodass für alle i: 0 P • Der Einfachheit halber hier nur Netze mit nur einem P∈Pi fP = ri (Emissionsrate exakt erreicht). P • Fluss über Kante e: fe = P : e∈P fP . Quellen-Senken-Paar (s, t), zugehörige Wegemenge P . • Spieler 1, . . . , k , Spieler i verteilt Fluss ri auf Wege aus P . P • i ri = 1. • Aktuelle Latenz der Kante e: ℓe (fe ). P Aktuelle Latenz von P: ℓP (f ) := e : e∈P ℓe (f ). P • Kosten des Flusses f : C(f ) := P∈P ℓP (f )fP . Grenzwert k → ∞ liefert das nichtatomare Modell. Koordinationsfaktor in automarem Spiel höchstens so groß wie im nichtatomaren. (Roughgarden 2005) 611 612 Nash-Flüsse: Für Fluss f , Wege P, Q, R f R , (P−δ,Q+δ) = fP − δ, fR f + δ, Q ∈ Pi und δ ∈ [0, fP ] sei Alternative Charakterisierung: falls R ∈ / {P, Q}; falls R = P; falls R = Q. Satz 6.12 (Wardrop 1952): Ein Fluss f ist genau dann ein Nash-Fluss, wenn für alle i = 1, . . . , k und alle P, Q ∈ Pi mit fP > 0 gilt: ℓP (f ) ≤ ℓQ (f ). Dann ist f (P−δ,Q+δ) wieder zulässiger Fluss. Definition 6.11: Fluss f ist Nash-Gleichgewicht bzw. Nash-Fluss, wenn für alle i = 1, . . . , k , alle P, Q ∈ Pi und alle 0 < δ≤ δmax , δmax ≤ fP geeignet, gilt: ℓP (f ) ≤ ℓQ f (P−δ,Q+δ) Für Nash-Gleichgewicht gilt mit Satz 6.12: Routing über kürzeste Wege, gegeben bereits vorhandener Fluss. D. h. Spieler, die Route P benutzen, haben keinen Anlass, zu Q zu wechseln. 614 613 Beispiel: Will 1 Einheit von s nach t leiten: s x 1 Beispiel: Will 1 Einheit von s nach t leiten: fP = 0,5 t s x 1 fQ = 0,5 fP = 0,7 t fQ = 0,3 Fluss fP = fQ = 1/2 ist Optimum, denn für p ∈ [0, 1]: Fluss fP = fQ = 1/2 ist Optimum, denn für p ∈ [0, 1]: Minimum bei p = 1/2. Minimum bei p = 1/2. Aber Spieler auf unterer Kante unzufrieden, ℓQ = 1 im Vergleich zu ℓP = 1/2. Aber Spieler auf unterer Kante unzufrieden, ℓQ = 1 im Vergleich zu ℓP = 1/2. (Benötige hier, dass Spieler wirklich infinitesimal!) (Benötige hier, dass Spieler wirklich infinitesimal!) C(p) = p · p + (1 − p) · 1 = p(p − 1) + 1. C(p) = p · p + (1 − p) · 1 = p(p − 1) + 1. 615 615 Beispiel: Will 1 Einheit von s nach t leiten: fP = 0,9 x s Beispiel: Will 1 Einheit von s nach t leiten: t 1 s x 1 fQ = 0,1 fP = 1 t fQ = 0 Fluss fP = fQ = 1/2 ist Optimum, denn für p ∈ [0, 1]: Fluss fP = fQ = 1/2 ist Optimum, denn für p ∈ [0, 1]: Minimum bei p = 1/2. Minimum bei p = 1/2. Aber Spieler auf unterer Kante unzufrieden, ℓQ = 1 im Vergleich zu ℓP = 1/2. Aber Spieler auf unterer Kante unzufrieden, ℓQ = 1 im Vergleich zu ℓP = 1/2. (Benötige hier, dass Spieler wirklich infinitesimal!) (Benötige hier, dass Spieler wirklich infinitesimal!) C(p) = p · p + (1 − p) · 1 = p(p − 1) + 1. C(p) = p · p + (1 − p) · 1 = p(p − 1) + 1. 615 Beweis von Satz 6.12: Sei e f := f (P−δ,Q+δ) . Betrachte P mit fP > 0. Endergebnis: Optimum: Nash-Gleichgewicht: fP = 1/2 x s t 1 C(f ) = 1 2 · 1 2 fQ = 1/2 + 1 2 ·1= 3 4 Also Koordinationsfaktor: 1 C(e f) = = 4/3 . C(f ) 3/4 s x 1 e fP = 1 615 Def. ⇒ Satz: Wegen Stetigkeit der Latenzfunktionen folgt: X δ→0 X ℓQ (e f) = ℓe (fe + δ) → ℓe (fe ) = ℓQ (f ). t e∈Q e fQ = 0 e∈Q Grenzwert δ → 0 auf beiden Seiten der Ungleichung ℓP (f ) ≤ ℓQ (e f ) liefert die Behauptung. C(e f) = 1 · 1 + 0 · 1 = 1 Satz ⇒ Def.: Nach Voraussetzung ist ℓQ (f ) ≥ ℓP (f ). Monotonie der Latenzfunktionen liefert: X X ℓQ (e f) = ℓe (fe + δ) ≥ ℓe (fe ) = ℓQ (f ). e∈Q 616 e∈Q 617 Existenz des Optimums? Offensichtlich äquivalent: Alle benutzten Wege in Pi haben dieselbe aktuelle Latenz. Sei dies ℓi (f ). Proposition 6.14: Für Verkehrsnetze im Kontinuierliche-Flüsse-Modell mit stetigen Latenzfunktionen gibt es einen Fluss mit minimalen Kosten. Weiterhin: C(f ) = = k X X i=1 P∈Pi k X ℓi (f ) i=1 ℓP (f )fP = X P∈Pi fP = k X X ℓi (f )fP i=1 P∈Pi k X Beweis: Wir sind an dem Minimum der Funktion f 7 → C(f ) (vom Typ R|P | → R) interessiert, unter den Nebenbedinungen: P • Für alle i = 1, . . . , k : P∈Pi = ri . • Für alle P ∈ P : fP ≥ 0. Definitionsbereich ist abgeschlossen, beschränkt (wegen P P = r ) und nichtleer (wegen Pi ∩ Pj = ∅ für i 6 = j), P∈P i i die Funktion stetig. Die Behauptung folgt daher mit dem Satz von Weierstraß aus der Analysis. ℓi (f )ri . i=1 Folgerung 6.13: Für Nash-Fluss f gilt: C(f ) = k X ℓi (f )ri . i=1 618 619 Beispiel: Braess-Paradoxon. Existenz und Eindeutigkeit von Nash-Flüssen? Ausgangsnetz: Satz 6.15 (Beckmann, McGuire, Winsten 1956): Für Verkehrsnetze im Kontinuierliche-Flüsse-Modell mit stetigen, monotonen Latenzfunktionen gilt: (1) Es gibt mindestens einen Nash-Fluss. (2) Wenn f , e f Nash-Flüsse sind, gilt C(f ) = C(e f ). s x Netz mit Schnellstraße“: ” 1 fP = 1/2 t s x 1 t 0 1 x 1 x fP ′ = 1 fQ = 1/2 Nash-Gleichgewicht im Ausgangsnetz: Teil (1) mit Ergebnissen aus der konvexen Optimierung, Teil (2) Übungsaufgabe. ℓP (f )fP = ℓQ (f )fQ = 1 2 · 1 2 + 1 2 · 1 = 43 , C(f ) = 3/2. Nash-Gleichgewicht im modifizierten Netz: C(e f ) = 1 · 1 + 1 · 1 = 2. Einfache Beispiele → keine Eindeutigkeit des Flusses selbst (vgl. Abschnitt 6.2). 620 Koordinationsfaktor: C(e f )/C(f ) = 2/(3/2) = 4/3. 621 Charakterisierung optimaler Flüsse: Folgendes allgemein für differenzierbare Latenzfunktionen. Definiere neue Latenzfunktionen: ℓ∗e (x) := (ℓe (x)x)′ = ℓe (x) + ℓe (x)′ x, e ∈ E. Überblick über Rest des Abschnittes: 1 Charakterisierung von optimalen Flüssen 2 Lineare Latenzfunktionen 3 Allgemeine Latenzfunktionen Name: Grenzkosten (zu den urspr. Kosten ℓe (x)x). Lemma 6.16: Ein Fluss f ist genau dann optimal, wenn für alle i ∈ {1, . . . , k } und alle P, Q ∈ Pi mit fP > 0 gilt: ℓ∗P (f ) ≤ ℓ∗Q (f ). Erinnerung: Charakterisierung von Nash-Fluss: X X ℓP (f ) = ℓe (fe ) ≤ ℓe (fe ) = ℓQ (f ). e∈P e∈Q Hier: ℓe (fe ) → ℓe (fe ) | {z } aktuelle Latenz 622 Es ist C(f ) − C(e f) = Beweis von Lemma 6.16: Wieder mit Methoden der konvexen Optimierung (Karush-Kuhn-Tucker-Bedingungen). ℓ′e (fe ) · fe . | {z } Latenzerhöhung für vorhandenen Fluss 623 X ℓe (fe )fe − ℓe (fe − δ)(fe − δ) X e∈P−Q − ℓe (fe )fe − ℓe (fe + δ)(fe + δ) e∈Q−P Hier nur Notwendigkeit der Bedingung im Lemma. Damit: Sei f optimaler Fluss. Es ist (ℓe (x)x)′ = ℓe (x) + ℓ′e (x)x, zu zeigen also: X X (ℓe (fe ) + ℓ′e (fe )fe ) ≤ (ℓe (fe ) + ℓ′e (fe )fe ). e∈P + ≤ 0. X ℓe (fe ) − ℓe (fe − δ) C(f ) − C(e f) = fe + ℓe (fe − δ) δ δ e∈P−Q X ℓe (fe + δ) − ℓe (fe ) fe − ℓe (fe + δ) + − δ e∈Q−P X δ→0 → ℓ′e (fe )fe + ℓe (fe ) e∈Q Da f optimal, insbesondere für δ > 0 hinreichend klein und e f := f (P−δ,Q+δ) : C(f ) ≤ C(e f ). e∈P−Q − X e∈Q−P 624 ℓ′e (fe )fe + ℓe (fe ) ≤ 0. 625 Lineare Latenzfunktionen: Lemma 6.16 am Beispiel: Ausgangsnetz: x 1 ℓe (x) = ae x + be , ae , be ≥ 0. Netz mit Grenzkosten: Opt s Im Folgenden lineare Latenzfunktionen: Für e ∈ E: fP = 1/2 t Opt fQ = 1/2 s 2x 1 fPNash = 1/2 Satz 6.17 (Roughgarden, Tardos 2000): Für Verkehrsnetze im Kontinuierliche-Flüsse-Modell mit linearen Latenzfunktionen ist der Koordinationsfaktor höchstens 4/3. t fQNash = 1/2 Optimal wegen Worstcase-Beispiel. 626 Charakterisierung von optimalen Flüssen im Spezialfall für ℓe (x) = ae x + be , e ∈ E: Folgerung 6.18: Sei f ein Nash-Fluss für die Emissionsraten r = (r1 , . . . , rk ). Dann ist f /2 ein optimaler Fluss für die Emissionsraten r /2. Es ist ℓ∗e (x) = ℓe (x) + ℓ′e (x)x = ae x + be + ae x = 2ae x + be . Beweis: Mit der Charakterisierung von Nash-Flüssen von Wardrop folgt für P, Q ∈ Pi mit fP > 0: X X (ae fe + be ), (ae fe + be ) ≤ Gemäß Lemma 6.16 dann: Fluss f optimal genau dann, wenn für i ∈ {1, . . . , k } und alle P, Q ∈ Pi mit fP > 0: X X (2ae fe + be ) ≤ (2ae fe + be ). e∈P e∈P e∈Q e∈P also auch X X fe fe 2ae · + be ≤ 2ae · + be . 2 2 Gemäß Satz von Wardrop Fluss f Nash-Fluss genau dann, wenn für i ∈ {1, . . . , k } und alle P, Q ∈ Pi mit fP > 0: X X (ae fe + be ) ≤ (ae fe + be ). e∈P 627 e∈P e∈P Gemäß Lemma 6.16 folgt damit, dass f /2 optimal ist für die zugehörigen Emissionsraten, die gerade r /2 sind. e∈Q 628 629 Kleines Zwischenergebnis: Alternative Charakterisierung der Kosten eines Flusses: Sei f Nash-Fluss und f ∗ optimaler Fluss, jeweils für die Emissionsraten r . Dann gilt X 1 1 2 C(f /2) = ae f + be fe 4 e 2 e∈E be ≥0,e∈E 1 X 1 2 ae fe + be fe = C(f ). ≥ 4 4 Lemma 6.19: Für beliebige Verkehrsnetze und Flüsse f gilt: P C(f ) = e∈E ℓe (fe )fe . Beweis: C(f ) = = = X P∈P ℓP (f )fP = X X e∈E P: e∈P X X X P∈P e∈P ℓe (fe )fP = ℓe (fe ) fP X ℓe (fe ) e∈E X e∈E Es ist f /2 ein optimaler Fluss für die Emissionsraten r /2 (Folgerung 6.18). fP Andererseits ist C(f ∗ ) ≥ C(f /2), da bei Erhöhung der Emissionsraten Gesamtkosten höchstens wachsen. Also: 1 C(f ∗ ) ≥ C(f /2) ≥ C(f ), 4 d. h. Koordinationsfaktor ist höchstens 4. P: e∈P ℓe (fe )fe . e∈E 631 630 Sei g optimaler Fluss für Emissionsraten r . Plan für Verbesserung auf 4/3: Gemäß Lemma 6.16 auf allen von g benutzen Wegen in Pi Latenz bezüglich Ziel: Schätze C(f ∗ ) nach unten mit Hilfe von C(f ) ab. ℓ∗e (x) = ℓe (x) + ℓ′e (x)x = 2ae x + bx • Starte mit Fluss f /2, Kosten mindestens (1/4)C(f ). gleich. Sei dies ℓ∗i (g). Optimal für Emissionsraten r /2. • Ergänzen zu Fluss mit Emissionsraten r . Zeige, dass dies mindestens Kosten (1/2)C(f ) verursacht. Lemma 6.20: Sei g optimaler Fluss für Emissionsraten r und sei h irgendein Fluss für Emissionsraten 2r . Dann insgesamt C(f ∗ ) ≥ (3/4)C(f ) und fertig. Beachte: Zweiter Schritt kann lokal, auf einigen Kanten, auch zu Flussverringerung führen. Deshalb nicht trivial. C(h) ≥ C(g) + 632 k X ℓ∗i (g)ri . i=1 633 Beweis von Lemma 6.20: Wegen Konvexität von ℓe (x)x = ae x 2 + be x folgt Anwendung für Hauptergebnis: Beweis von Satz 6.17: Seien f Nash-Fluss und f ∗ optimaler Fluss zu Emissionsraten r . ℓe (he )he −ℓe (ge )ge ≥ (he −ge )(ℓe (ge )ge )′ = (he −ge )ℓ∗e (g). Damit: Anwenden des Lemmas für g = f /2 und h = f ∗ . Da f /2 optimal für Emissionsraten r /2 (Folgerung 6.18): ∗ C(f ) ≥ C(f /2) + Da ℓ∗e (fe /2) C(f /2) + k X C(h) = ℓ∗i (f /2)(ri /2). i=1 ℓ∗i (f /2)(ri /2) i=1 e∈E ℓe (he )he ≥ = C(g) + = ℓe (fe ) für alle e, folgt ℓ∗i (f /2) = ℓi (f ). Damit: k X X k = C(g) + i=1 = C(g) + 1X ℓi (f )ri = C(f /2) + 2 1 = C(f /2) + C(f ). 2 = C(g) + X e∈E e∈E P:e∈P XX P∈P e∈P P∈P e∈E (ℓe (ge )ge + (he − ge )ℓ∗e (g)) (he − ge )ℓ∗e (g) X X X X (hP − gP )ℓ∗e (g) (hP − gP )ℓ∗e (g) (hP − gP )ℓ∗P (g). 635 634 Hatten: C(h) ≥ C(g) + X P∈P Allgemeine Latenzfunktionen: (hP − gP )ℓ∗P (g). Alle Latenzen auf von g benutzten Wegen in Pi gleich C(h) ≥ C(g) + = C(g) + = C(g) + k X i=1 k X i=1 k X ℓ∗i (g) X ℓ∗i (g): s xd t 1 (hP − gP ) • Optimum: Für p ∈ [0, 1] minimiere − ri ) Minimum bei p∗ = (1/(d + 1))(1/d) , C(p∗ ) = 2((log d)/d) (mit Taylor-Reihe). • Nash: C(f ) = 1. P∈Pi ℓ∗i (g)(2ri Beispiel: C(p) = pd · p + (1 − p) · 1. Koordinationsfaktor: 1/C(p∗ ) = 2(d/ log d). ℓ∗i (g)ri . i=1 Fazit: Für beliebige Polynome als Latenzfunktionen: Koordinationsfaktor durch keine Konstante beschränkt. 636 637 Kompensation von egoistischem Routing durch Erhöhung der Bandbreite: Für nichtlineare Latenzen Koordinationsfaktor beliebig schlecht. Allerdings: Erreichbare Emissionsrate gegen Koordination verrechnen → bessere Ergebnisse möglich. Für Links gemäß M/M/1-Warteschlangenmodell ergibt sich Latenzfunktion. 1 ℓe (x) = , e ∈ E; be − x mit be > 0 Bandbreite für Kante e. Satz 6.21 (Roughgarden, Tardos 2000): Verkehrsnetz im Kontinuierliche-Flüsse-Modell mit stetigen, monoton wachsenden Latenzfunktionen, f Nash-Fluss mit Emissionsraten r , f ∗ optimaler Fluss mit Emissionsraten 2r . Dann gilt C(f ) ≤ C(f ∗ ). Kann dafür zeigen, dass unkoordiniertes Routing im Vergleich zu zentral koordiniertem Routing durch Verdoppelung der Bandbreite kompensiert werden kann. Hier ohne Beweis. Zentral koordiniertes Routing höchstens so gut wie unkoordiniertes Routing mit halbierten Emissionsraten. 638 Formal: e f Nash-Fluss für e ℓe (x) := 1/(2be − x), f irgendein Fluss für ℓe , dann gilt C(e f ) ≤ C(f ) (ohne Beweis). 639 6.4 Mechanismenentwurf Szenario aus Sicht der Informatik: • Verteilte Algorithmen, die von Spielern ausgeführt werden, die ihren privaten Nutzen maximieren. • Spieler haben private Eingaben für den Algorithmus. • Ziel Berechnung bzw. Optimierung einer Funktion auf allen privaten Eingaben der Spieler. Szenario aus Sicht der Wirtschaftswissenschaften: • Spieler wollen nichtkooperativ Entscheidung treffen. • Spieler haben private Informationen, von denen der Nutzen der Entscheidungsalternativen für sie abhängt. • Spieler wirken so auf Entscheidungsfindung ein, dass sie ihren eigenen Nutzen maximieren. • Globales Ziel: Entscheidung zum Wohle aller, z. B. Maximierung des Gesamtnutzens ( soziale Wohlfahrt“). ” Anwendungen: • Verteilte Algorithmen im Internet: Wie Kooperation sicherstellen und Trittbrettfahrer verhindern? • Auktionen: E-Commerce; Auktionen, die nichttriviale Algorithmen und Rechnerhilfe erfordern. Steuern / Belohnung für Spieler, sodass Wohl aller auch im Interesse jedes Einzelnen. Anwendungen: Theorie öffentlicher Investitionen, Auktionen. 640 641 6.4.1 Einleitung Klassisches Beispiel: Öffentliches Projekt. 1. Versuch: Angegebener Nutzen = Kosten. • Spieler sollen entscheiden, ob öffentliches Projekt Projekt wird realisiert, falls Summe der angegebenen Werte mindestens c. Spieler i zahlt dann angegebenen Wert xi′ . mit Kosten c > 0 realisiert werden soll. • Spieler i ∈ {1, . . . , n} hat privaten Wert xi ≥ 0, den er dem Projekt zumisst. n P • Projekt soll realisiert werden, wenn xi ≥ c. Beachte: Es kann xi′ 6 = xi sein ( Lüge“)! ” Funktioniert nicht: Einladung an Trittbrettfahrer. Gib zu kleinen Wert xi′ < xi an und hoffe, dass Projekt trotzdem durchkommt. Leider machen das alle. . . i=1 Gerechte“ Entscheidung erfordert, dass Spieler ” wahren Wert bekanntgeben. Ziel: Stelle dies durch Zahlungen der Spieler sicher. 642 643 2. Versuch: Gerechte Verteilung der Kosten. Lösung: Clarke-Steuern (Clarke 1971). Projekt wird realisiert, falls Summe der angegebenen Werte mindestens c. Jeder Spieler zahlt dann c/n. • Projekt wird realisiert, falls Summe der angegebenen Werte mindestens c. • Wenn das passiert, zahlt Spieler i genau das, was notwendig gewesen ist, um bei festen restlichen Spielerangaben die Entscheidung in Richtung pro Realisierung“ zu kippen, nämlich: ” X xj′ . pi := max 0, c − Funktioniert auch nicht: • Angenommen, Gesamtwert, den Spieler dem Projekt zumessen, ist kleiner als c. • Für Spieler 1 Wert x1 mit c > x1 > c/n: Will Projekt, denn dann Gesamtnutzen x1 − c/n > 0. Gibt falschen, zu großen Wert x1′ = c (statt x1 ) an. j6=i Behauptung: Für jeden Spieler i ist es beste Strategie, xi′ = xi zu wählen, d. h. Aufdeckung des wahren Wertes. Analog: Bespiel, wo falsche Angabe von zu kleinem Wert im Interesse des Spielers. 644 645 Seien Angaben der Spieler 2, . . . , n irgendwie fixiert → x2′ , . . . , xn′ . Lüge x1′ < x1 : Hat nur Auswirkung, wenn dadurch Projekt nicht mehr realisiert. Dann Nutzen 0. Bei ehrlicher Angabe x1 wäre der Nutzen X X xj′ − c ≥ 0. x1 − c − xj′ = x1 + Betrachte (Gesamt-)Nutzen von Spieler 1: • Projekt realisiert: x1 − p1 . • Projekt nicht realisiert: 0. j6=i Lüge x1′ > x1 : Hat nur Auswirkung auf Nutzen, wenn Projekt dadurch realisiert und vorher nicht, d. h. X xj′ < c. x1 + Fazit: Strategie Angabe von wahrem Wert“ liefert ” unabhängig von den Wahlen der Mitspieler immer maximalen Nutzen. j6=i Nutzenin diesem Fall X X xj′ − c < 0. x1 − c − xj′ = x1 + j6=i j6=i Außerdem ist dies die einzige mögliche Wahl mit dieser Eigenschaft (Übungsaufgabe). j6=i Bei ehrlicher Angabe von x1 aber Nutzen 0. 647 646 Beispiel: Versteigerung eines einzelnen Objektes. Bieter haben private Einschätzungen x1 , . . . , xn für Wert des Objektes. Behauptung: Für jeden Bieter ist Angabe seines wahren Wertes beste Strategie, d. h. xi′ = xi . Auktionator möchte, dass Bieter ihren wahren Wert bieten. ′ = max{x2′ , . . . , xn′ }. Betrachte Bieter 1 und sei xmaxRest Lösung: Vickrey-Auktion (Vickrey 1961). ′ x1 > xmaxRest : ′ Falls Auktion gewonnen, Nutzen x1 − xmaxRest > 0. ′ ′ Für beliebige xmaxRest passende Strategie: x1 ≥ x1 . Zweitpreis-Auktion mit geschlossenen Geboten“: ” • Bieter geben im Briefumschlag Gebote x ′ , . . . , xn′ ab. 1 • Höchstbietender erhält den Zuschlag (mehrere gleiche: irgendwie auflösen, z. B. per Spielernummer). • Zahlt Preis in Höhe des zweithöchsten Gebots. ′ x1 ≤ xmaxRest : ′ Für beliebige xmaxRest passende Strategie: x1′ ≤ x1 . Damit x1′ = x1 einzig richtige Wahl für beide Fälle. Ähnlich: eBay, englische Auktionen. Höchstbietender zahlt zweithöchstes Gebot plus kleines Gebotsinkrement. 648 649 6.4.2 Formales Modell: Akteure hier wieder Spieler, Anzahl n. Globales Ziel: • Ausgaben: Zielfunktion f : X1 × · · · Xn × Y → R (globale Nutzenfunktion) auf allen privaten Eingaben und den Ausgaben y . – Menge von Alternativen A. – Auszahlungsvektor p = (p1 , . . . , pn ) ∈ Rn . Y := A × Rn . • Für Spieler i = 1, . . . , n: – Private Eingabe (Literatur: Typ) xi ∈ Xi . – Wert für a ∈ A: vi (a, xi ) ∈ R. – Nutzen: ui ((a, p), xi ) = vi (a, xi ) + pi . Finde für gegebenen Vektor privater Eingaben x Ausgabe y ∗ , die Zielfunktion maximiert: f (x, y ∗ ) = max f (x, y ). y Mögliche Abschwächung: Erlaube Approximationen. Privates Ziel für Spieler i: Maximiere ui . Bemerkung: Hier spezielle ui , genannt quasilineare Nutzenfunktionen (linearer Nutzen von Geld). 650 651 Wichtige globale Ziele: Mechanismen: (Allokations-)Effizienz: Zielfunktion n X vi (a, xi ). f (x, (a, p)) = Definition 6.22: Betrache Algorithmen der folgenden Bauart: • Spieler deklarieren beliebige Werte x ′ , . . . , xn′ 1 für private Eingaben. • Mechanismus m : X1 × · · · × Xn → Y liefert Ausgabe m(x1′ , . . . , xn′ ) = (a, p); Abbildung x ′ 7 → a(x ′ ) Auswahlfunktion, Abbildung x ′ 7 → p(x ′ ) Auszahlungsfunktion des Mechanismus. i=1 Maximierung des ( gesellschaftlichen“) Gesamtwertes. ” Ausgabe y ∗ mit f (x, y ∗ ) maximal: soziales Optimum. Nebenbedingungen: • Budgetbalancierung: n P i=1 pi = 0. Kein Nettotransfer von Geld in das System oder heraus. P • Schwache Budgetbalancierung: Nur ni=1 pi ≤ 0. Kein Transfer von Geld in das System. Sowohl Deklarationen als auch Berechnung von m können algorithmisch aufwendig sein. 652 653 Welche Strategien werden von den Spieler gewählt? Benutze spieltheoretischen Gleichgewichtsbegriff: • Dominante Strategien: Strategie heißt (schwach) dominant für einen Spieler, falls sie bei beliebiger Fixierung der Strategien der anderen Spieler seinen Nutzen maximiert. Keine Annahmen über andere Spieler notwendig, um von rationalen Spieler gespielte Strategie zu finden! • Nash-Gleichgewicht: Hier schlecht, da private Eingaben von anderen Spielern unbekannt. • Bayes-Nash-Gleichgewicht: Wie Nash, aber mit W.-Verteilung der privaten Eingaben. Sehr verbreitet in Wirtschaftswissenschaften. Interpretation als Spiel: • Deklarationen x ′ , . . . , xn′ Strategien der Spieler. 1 • Ausgabe des Mechanismus + Nutzenfunktion der Spieler: Nutzen der Spieler für verschiedene Strategientupel. Allgemein auch mit beliebigen Strategienmengen machbar. Beliebiger Mechanismus in einen vom hier beschriebenen Typ (Aufdeckungsmechanismus) überführbar (später). 654 Definition 6.23: Mechanismus m implementiert Zielfunktion f in dominanten Strategien, falls es zu privaten Eingaben x = (x1 , . . . , xn ) jeweils x ′ = (x1′ , . . . , xn′ ) gibt, sodass für jeder Spieler i die Angabe xi′ dominante Strategie ist und 655 Satz 6.25 (Aufdeckungsprinzip): Ein beliebiger Mechanismus, der die Zielfunktion f in dominanten Strategien implementiert, kann in einen vom Aufdeckungstyp überführt werden, der f wahrheitsaufdeckend implementiert. f (x, m(x ′ )) = max f (x, y ). y Intuitive Beweisidee: Sei s ∗ (x) dominantes Strategientupel zu Eingabevektor x. Definition 6.24: Mechanismus implementiert Zielfunktion f wahrheitsaufdeckend (strategienrobust), wenn Bekanntgabe der wahren privaten Eingabe für jeden Spieler eine dominante Strategie ist. Neuer Mechanismus: Für Meldung xi′ von Spieler i simuliere ursprünglichen Mechanismus für Strategie si∗ (xi′ ) und liefere dessen Ausgabe. Dann xi′ = xi für jeden Spieler dominante Strategie. Beispiele: Öffentliches Projekt, Vickrey-Auktion. 656 657 Mechanismen-Entwurfs-Problem: Algorithmischer Mechanismenentwurf: Gegeben: Optimierungsproblem in Form der Zielfunktion f . Pionierarbeit: Nisan, Ronen (1999). Ziel: Finde Mechanismus m, der gewünschte Zielfunktion f wahrheitsaufdeckend implementiert. Verlange, dass Mechanismus Polynomialzeit-berechenbar. Mechanismenberechnung NP-schwer, falls dies für durch die Zielfunktion codiertes Optimierungsproblem gilt. Begriffe für Zielfunktion übertragen auf Mechanismus, wenn dieser eine passende Funktion so implementiert: Klassisch (und bei Nisan, Ronen): Mechanismus zentral, für typische verteilte Berechnungen unrealistisch. Für Ausgabe m(x ′ ) = (a∗ , p): • (allokations-)effizient, falls n P a∗ (x ′ ) ∈ arg max vi (a, xi′ ). a∈A Verteilter algorithmischer Mechanismenentwurf (DAMD, Feigenbaum, Papadimitriou und Shenker 2000): Will Algorithmen, die Mechanismus verteilt realisieren. i=1 • budgetbalanciert bzw. schwach budgetbalanciert, falls n P i=1 pi = 0 bzw. n P i=1 Neue Parameter wichtig für Effizienz: Gesamtanzahl Nachrichten, Anzahl Nachrichten / Link, max. Nachrichtenlänge, lokale Berechnungskomplexität. pi ≤ 0. 659 658 6.4.3 Zwei informatiknahe Beispiele Beispiel 1: Makespan-Scheduling. Lösung: Versteigere Jobs mit Vickrey-Auktion. MinWork-Mechanismus (Nisan, Ronen 1999). Szenario: • Verteilte Berechnung eines Problems im Internet, Problem zerlegt in Jobs 1, . . . , m. • Rechnerbetreiber 1, . . . , n, für jeden hat gemeinsame Lösung des Problems Wert v ≥ 0. • Private Information von Betreiber i ∈ {1, . . . , n}: Für j ∈ {1, . . . , m} Rechenzeit (Kosten) ti,j ≥ 0 für Job j. • Ziel: Jobs so verteilen, dass Beendigungszeit minimal, d. h. minimiere Makespan. Für jeden der Jobs: • Lasse alle Rechnerbesitzer Zeit für Job deklarieren. • Bieter mit niedrigster Zeit erhält Task zugewiesen. • Auszahlung für diesen Bieter zweitniedrigstes Gebot. Mechanismus ist wahrheitsaufdeckend (früheres Argument). Jeder einzelne Job auf dafür schnellstem Rechner. Belohne Rechnerbetreiber so, dass diese ihre wahren Kosten bekanntgeben. 660 661 Aber: Natürlich keine optimale Lösung (M AKESPAN -S CHEDULING ist NP-schwer). Beispiel 2: Routing. Szenario: • Kommunikationsnetz als gerichteter Graph G = (V , E), will Paket von s nach t transportieren, s, t ∈ V . • Jede Kante e ∈ E gehört Rechnerbetreiber, private Information: Kosten ce ≥ 0 für Weiterleitung. • Ziel: Routing über günstigsten Weg. Einige Ergebnisse: • Tatsächlich liefert MinWork-Mechanismus Approximation mit Güte n (Nisan, Ronen 1999). Beweis: MinWork ≤ m X j=1 m 1X min ti,j ; OPT ≥ min ti,j . n i i j=1 • Beste untere Schranke für Güte (falls P 6 = NP) ist 1 + Wieder: Geeignete Entschädigung für Kantenbetreiber, sodass diese wahre Kosten melden. √ 2 Technische Feinheit: Voraussetzen, dass G zweifachzusammenhängend. Dann hat kein Betreiber Monopol. (Christodoulou u. a. 2006). • Verteilte Realisierung: Carroll, Grosu (2005). 663 662 6.4.4 Vickrey-Clarke-Groves-Mechanismen Lösung: • Kantenbetreiber melden ihre Kosten. • Auszahlung für Betreiber von Kante e: Grenznutzen von e für kürzesten s-t-Weg, d. h. Betrag, um den sich Kosten durch Vorhandensein von e verringern. Klasse von Aufdeckungsmechanismen für quasilineare Nutzenfunktionen. Genauer: pe := dG|ce =∞ − dG|ce =0 , wobei: dG|ce =0 Kosten des kürzesten s-t-Weges in G minus ce , dG|ce =∞ Kosten des kürzesten s-t-Weges in G ′ =(V , E−{e}). Mechanismus ist wahrheitsaufdeckend (Beweis gleich). Definition 6.26: Nutzenfunktion von Spieler i sei ui ((a, p), xi ) = vi (a, xi ) + pi . Sei x ′ = (x1′ , . . . , xn′ ) Vektor der Deklarationen der Spieler. Vickrey-Clarke-Groves-Mechanismus (VCG) definiert durch: • Auswahlfunktion: n X ∗ ′ vi (a, xi′ ). a (x ) ∈ arg max a∈A i=1 • Auszahlungsfunktion: Für beliebige feste Funktionen h1 , . . . , hn : Rn−1 → R: X ′ pi (x ′ ) := vj (a∗ , xj′ ) + hi (x−i ), i = 1, . . . , n. Berechnung der Auszahlung nichttrivial. Algorithmus mit asymptotischen Kosten für nur eine SSSP-Berechnung: Hershberger, Suri (2001). j6=i 664 665 Nutzen von Spieler i für Ausgabe (a∗ (x ′ ), p(x ′ )): ui ((a∗ (x ′ ), p(x ′ )), xi ) = vi (a∗ (x ′ ), xi ) + pi (x ′ ) X ′ = vi (a∗ (x ′ ), xi ) + ). vj (a∗ (x ′ ), xj′ ) + hi (x−i Satz 6.27 (Groves 1973): VCG-Mechanismen sind wahrheitsaufdeckend und allokationseffizient. j6=i ′ ) ignorieren, Will xi′ , sodass dies maximal. Dafür hi (x−i da unabhängig von xi′ . X Zeige: vi (a∗ (x ′ ), xi ) + vj (a∗ (x ′ ), xj′ ) maximal für xi′ = xi . Beweis: Allokationseffizienz klar, wenn wahrheitsaufdeckend, da Auswahlfunktion gerade passende Zielfunktion maximiert. Zeige also, dass Mechanismus wahrheitsaufdeckend. j6=i Ausdruck hängt nur über a∗ (x ′ ) von xi′ ab. Für xi′ = xi wird aber gerade a∗ so gewählt, dass obiger Ausdruck maximal wird, denn gemäß Definition: X ′ ∗ ′ vj (a, xj ) . a (xi , x−i ) ∈ arg max vi (a, xi ) + Sei x = (x1 , . . . , xn ) Vektor der (wahren) privaten Eingaben. Zu zeigen: Für Spieler i ∈ {1, . . . , n} ist Deklaration von xi′ = xi dominante Strategie. a∈A j6=i 667 666 Routing-Mechanismus als Clarke-Mechanismus: Clarke-Mechanismen: • Alternativen a ∈ A hier s-t-Wege. • Falls s-t-Weg a gewählt: Wert für Spieler e ∈ E: Definition 6.28: Clarke-Mechanismus ist VCG-Mechanismus mit X ′ ′ ), xj′ ), vj (a∗−i (x−i ) := − hi (x−i wobei (−ce ) · [e ∈ a] (negativ, da Kosten). • Sei a∗ kürzester s-t-Weg für alle Kanten. j6=i ′ ) ∈ arg max a∗−i (x−i a∈A X j6=i ′ ), vj (a, x−i • d. h. eine optimale Alternative für Problem ohne Spieler i. Summe der deklarierten Werte für Spieler e′ 6 = e: X (−ce′ ′ )[e′ ∈ a∗ ] = −dG|ce =0 . e ′ 6=e Sei a∗−e kürzester s-t-Weg ohne e. X ′ (−ce′ ′ )[e′ ∈ a∗−e ] he (c−e ) = − e ′ 6=e = dG|ce =∞ . Auszahlung des früheren Mechanismus ist gerade X ′ pe = dG|ce =∞ − dG|ce =0 = (−ce′ ′ )[e′ ∈ a∗ ] + he (c−e ). Lösung für öffentliches Projekt, Vickrey-Auktion und Routing. Nur Routing genauer, Rest selbst überlegen. e ′ 6=e 668 669 6.4.5 Zusatzeigenschaften von Mechanismen Eindeutigkeit von Gleichgewichten: Eindeutigkeit von Gleichgewichten (Forts.): Im Allgemeinen möglich: Schwach dominante Strategientupel x ′ , x ′′ , Zielfunktion von x ′ implementiert, von x ′′ nicht. • Falls es für alle Spieler strikt dominante Strategie gibt, d. h. Nutzen für dominante Strategie immer echt größer als für alle anderen, dann resultierendes Strategientupel eindeutiges Gleichgewicht. • Mehrfache Gleichgewichte genau dann, wenn mindestens ein Spieler denselben Nutzen für verschiedene schwach dominante Strategien hat. Nimm an, dass Spieler diese Indifferenz zu unseren Gunsten auflöst. Beispiel: • Zwei Spieler, A = X1 = X2 = {0, 1}, vi (a, xi ) = 1 + (a − 1)xi , i = 1, 2. f (x, a) := a(2 − x1 − x2 ). • Mechanismus: a∗ (x) = 1, p1 (x) = p2 (x) = 0. • Für x = (0, 0): ui (a∗ (x ′ ), x ′ ) = vi (1, x ′ ) = 1, i = 1, 2. i i Damit xi′ = 0 und xi′ = 1 schwach dominante Strategien, xi′ = 1 (Lüge) führt zu suboptimalem f -Wert. Für viele wichtige Mechanismen Eindeutigkeit gegeben. 670 Schwache Budgetbalancierung? Budgetbalancierung: Erinnerung: Für beliebige x: 671 n P i=1 Erinnerung: Für beliebige x: pi (x) = 0. n P i=1 Nenne Wertefunktionen der Spieler allgemein, falls jeweils durch Wahl der privaten Eingabe alle möglichen Funktionen A → R realisierbar. pi (x) ≤ 0. Satz 6.29 (Hurwicz 1975, Green und Laffont 1977): Es gibt keinen Mechanismus für Spieler mit allgemeinen Wertefunktionen, der eine Zielfunktion in dominanten Strategien implementiert, die sowohl allokationseffizient als auch budgetbalanciert ist. Definition 6.30: Wertefunktionen vi , i = 1, . . . , n, der Spieler heißen frei von Einzelspieler-Effekten, wenn für alle Spieler P i gilt: Für ∗ jedes x und jede Lösung a (x) ∈ arg maxa∈A j vj (a, xj ) für das Szenario mit allen Spielern gibt es eine Lösung a∗−i (x−i ) für das Szenario ohne Spieler i, sodass X X vj (a∗ (x), xj ). vj (a∗−i , xj ) ≥ Damit VCG-Mechanismen im Allgemeinen nicht budgetbalanciert! Intuitiv: Entfernen von Spieler i → restliche Spieler können immer noch mindestens so hohen Gesamtwert erzielen wie in ursprünglichem Szenario. j6=i 672 j6=i 673 Proposition 6.31: Falls die Wertefunktionen der Spieler frei von EinzelspielerEffekten sind, sind Clarke-Mechanismen schwach budgetbalanciert. Beispiele: • Öffentliches Projekt: – Menge der zur Verfügung stehenden Alternativen hängt nicht von Vorhandensein von Spieler i ab. – Selbe Alternative wie mit Spieler i liefert für restliche Spieler denselben Gesamtwert. Beweis: Definition von pi und hi : X X pi = vj (a∗ (x), xj ) − vj (a∗−i (x−i ), xj ). j6=i • Auktionen: j6=i Voraussetzung: Nur Käufer und Entsorgen von Objekten sei umsonst. Keine Einzelspieler-Effekte: Dies ist für alle i nichtpositiv. Also insbesondere Summe nichtpositiv. Für umgekehrte Ungleichung in Definition 6.30 passend für nichtnegative (Belohnungs-)Zahlungen an Spieler, dann n P pi (x) ≥ 0. Restliche Spieler werfen Objekte, die Spieler i erhalten hat in optimaler Gesamtlösung in den Mülleimer und erhalten eine mindestens so gute Lösung für das reduzierte Problem. i=1 674 6.4.6 Anwendung: Multicast-Routing Aber: Trotz schwacher Budgetbalancierung möglich: • Bei Nettozahlung durch Spieler Gesamtzahlung 0. Z. B. bei kombinatorischen Auktionen problematisch. • Bei Belohnungen Gesamtzahlung deutlich größer 0. Problem der Überzahlung. Beispiel Routing: Schwache Budgetbalancierung heißt hier P Tatsächlich im Allgemeinen i pi ≫ 0. s i Arbeit: Feigenbaum, Papadimitriou, Shenker (2000). Szenario: Übertragung großer Datenmenge aus einer Quelle an viele verschiedene Empfänger im Internet, z. B. für Live-Videos. • Mit üblichem Routing: Muss für jeden Empfänger einzeln pi ≥ 0. Daten von der Quelle aus schicken. • Multicast-Routing: Sende Daten nur einmal, Duplizierung durch Router an Verzweigungen. Zahle Kante ei auf unterem Weg e / 2ℓ t dG|ce =∞ − dG|ce =0 = ℓ + 1, i e1 / 1 e2 / 1 P eℓ / 1 Kostenverteilung? i insgesamt für kürzesten Weg ℓ · (ℓ + 1) = 675 Hier: Staatliche Lösung“. ” Infrastruktur gehört Staat, kann Defizite auffangen. 2(ℓ2 ). 676 677 Netzstruktur: T: Netzstruktur: Datenquelle • Universeller Baum T : Baum mit Verbindungen von der Datenquelle aus zu allen potenziellen Empfängern. Datenquelle T: • Potenzielle Empfänger sitzen an Knoten des universellen Baumes. 2 1 1 3 1 1 1 2 1 5 Routing-Hardware konstruiert minimalen Teilbaum T (R) von T , der Empfänger in R erreicht. • Kantenmarkierung: Kosten für Verbindungsleitungen (Links). 3 5 • Übertragung an alle Empfänger in Menge R: 1 • Kosten für Baum T (R): c(R). Im Beispiel: c(R) = 15. 678 678 Mechanismus-Anforderungen (Forts.): Globale Zielfunktion: Maximiere X f (x, R) := xi − c(R), Mechanismus-Anforderungen: Ausgaben des Mechanismus: Für Benutzer i = 1, . . . , n: • Entscheidung, ob Benutzer an Übertragung angeschlossen wird: Ri = 1, falls ja; Ri = 0 sonst (im Folgenden R als Vektor aus {0, 1}n oder Menge); • Festlegung des Preises pi , den Benutzer i zahlen muss. i∈R Gesamtwert für Empfänger minus Kosten für Netzaufbau. (Diskussion später.) Will Mechanismus, der Zielfunktion wahrheitsaufdeckend implementiert, zusätzlich: • Keine Zahlungen an Benutzer (NPT): Für alle i: pi (x) ≥ 0. • Individuelle Rationalität (IR): Nutzen von Spieler i für Ausgabe (R, p): ui ((R, p), xi ) = xi Ri − pi . Für alle i: ui ((R ∗ (x), p), xi ) ≥ 0. • Der Kunde ist König (CS, customer sovereignty): Jeder Benutzer wird bei hinreichend hohem Gebot angeschlossen. wobei xi Bewertung von Benutzer i für Übertragung. 679 680 Der Grenzkosten-Mechanismus: Satz 6.32: Der Grenzkosten-Mechanismus ist wahrheitsaufdeckend, allokationseffizient und erfüllt (NPT), (IR) und (CS). Deklarationsvektor sei x = (x1 , . . . , xn ). • Welche Benutzer anschließen? Wähle größte Menge R ∗ , die f (x, R ∗ ) maximiert. Anschluss genau der Benutzer in R ∗ . • Preise? Benutzer i ∈ R ∗ zahlt Deklaration xi abzüglich Bonus, misst seinen Beitrag zum Gesamtwert der Übertragung: ∗ ). Bonusi (x) := f (x, R ∗ ) − f (x, R−i Beweisideen: Wahrheitsaufdeckung: Darstellen als Clarke-Mechanismus, dazu Kosten c(R) auf zusätzlichen Spieler 0 verbuchen. Zusatzeigenschaften mit Eigenschaft der Kostenfunktion: c(R1 ) + c(R2 ) ≥ c(R1 ∪ R2 ) (Übungsaufgabe). fqed ∗ ∪ {i}: Falls R ∗ = R−i ∗ ) (d. h. Grenzkosten für Anschluss). Kosten c(R ∗ ) − c(R−i Moulin, Shenker (2001): Grenzkosten-Mechanismus ist der einzige Mechanismus mit obigen Eigenschaften. 682 681 Verteilte Realisierung: Beobachtungen: • Falls Wu (x) ≥ 0: Wu (x) ist f -Wert des Teilbaumes unterhalb (und inklusive) u. Der Spannbaum für die Menge der anzuschließenden Benutzer enthält genau die Knoten u mit Wu (x) ≥ 0. • Für die Menge R ∗ in der Ausgabe des GrenzkostenMechanismus und einen Benutzer i an Knoten u gilt Ri∗ (x) = 1 genau dann, wenn Wu (x) ≥ 0 für alle Knoten v auf dem Weg von u zur Wurzel (inklusive v ). Phase 1: Bottom-Up-Durchlauf durch universellen Baum: • Für jeden Knoten u berechne Wu (x) := xu − cu + X Wv (x), Kinder v von u mit Wv (x) ≥ 0 wobei xu Gesamtwert aller Empfänger an u, cu Kosten für Link von u zu Elter von u (bzw. cu = 0, falls u Wurzel). • Setze vorläufig R ∗ := 1 für alle Benutzer i an Knoten u, i falls Wu (x) ≥ 0. Beweisidee: Induktion und Definition von R ∗ (größte Menge, die f -Wert im jeweiligen Teilbaum maximiert). 683 684 Korrektheit der Kostenberechnung: Phase 2: Top-Down-Durchlauf durch universellen Baum: 1. Fall, xi ≤ Wumin (x): Entfernen von Benutzer i: W -Werte der Knoten von u auf dem Weg zur Wurzel fallen alle um genau xi , keiner wird ∗ = R ∗ , f (x, R ∗ ) − f (x, R ∗ ) = x und negativ. Damit R−i i −i ∗ )) = 0. Preis für Benutzer i ist pi = xi − (f (x, R ∗ ) − f (x, R−i • Für jeden Knoten u berechne das Minimum Wumin (x) aller Wv (x) über alle Knoten v auf dem Weg von der Wurzel zu v (inklusive v ). • Für jeden Knoten u und für alle Benutzer i an u: Falls Wumin (x) < 0 setze Ri∗ := 0 und pi := 0. Sonst: 2. Fall, xi > Wumin (x): Entfernen von Benutzer i macht W -Wert eines Knotens auf dem Weg zur Wurzel negativ, wird aus Übertragungsbaum entfernt. Kettenreaktion von absinkenden W -Werten und Entfernungen stoppt an Knoten mit Wert Wumin (x), dieser wird erreicht, weil vorher Kettenreaktion nicht stoppt. Also Verlust von Wumin (x) beim f -Wert, damit Preis für Benutzer i: pi = xi − Wumin (x). – Falls xi ≤ Wumin (x), setze pi := 0. – Sonst (xi > Wumin (x)) setze pi := xi − Wumin (x). Korrektheit mit Beobachtungen, falls Wumin (x) < 0: Knoten u wird nicht angeschlossen, da nicht angeschlossener Knoten v auf dem Weg von u zur Wurzel existiert. 685 686 Netzkomplexität: Zwei Botschaften pro Link (jeweils nur W -Werte), insgesamt O(n) bei n Knoten im universellen Baum, lokale Berechnungen sehr einfach. Weitere Anwendung: BGP-Routing Fazit: • Verteilte Realisierung von Mechanismus an nichttrivialem Beispiel, Kommunikationsaufwand asymptotisch optimal. • Kritik: – Falsche Zielfunktion für die meisten realen Anwendungen! (Will Ertragsmaximierung statt Wohlfahrtsmaximierung.) – Nicht sicher gegenüber Koalitionen von Spielern. Szenario: Shapleywert-Mechanismus: Budgetbalanciert, aber nicht allokationseffizient und keine effiziente verteilte Implementierung. Realisierung mit Clarke-Mechanismus (Grenzkosten analog zu einfachem Routing-Beispiel). Kommunikationsaufwand asymptotisch wie bei BGP-Protokoll. Arbeit: Feigenbaum u. a. (2002). Realistischere Version des einführenden Routing-Beispiels. • Netz mit autonomen Systemen (AS) als Knoten. • Kosten bei Durchleitung von Paketen durch Knoten. • Für jedes Quellen-Senken-Paar Anzahl von Datenpaketen, die geroutet werden sollen. Zahlungen an ASe, sodass diese ihre wahren Kosten bekannt geben. Ziel: Minimierung der Gesamtkosten. 687 688 Auktionstheorie: 6.5 Auktionen Optimale Auktionen unter Annahmen über Verteilung der Werte der Bieter (Bayes-Nash-Gleichgewichte). Ziel ist Maximierung des erwarteten Ertrags für Auktionator. Vier grundlegende klassische Auktionsformen: • Offene Gebote (open-cry): – Aufsteigender Preis (ascending price), englische Auktion (Sotheby’s usw.) – Absteigender Preis (descending price), holländische Auktion (Blumenmärkte in Holland). • Geschlossene Gebote (sealed-bid): – Zweitpreis (second price), Vickrey-Auktion. – Erstpreis (first price). Bei festen Bieterwerten und kontinuierlich steigendem/fallendem Preis jeweilige offene Auktion wie korrespondiere geschlossene. Grob: Auktionen mit denselben Zuteilungsregeln liefern denselben erwarteten Ertrag. Satz 6.33 (Revenue-Equivalence-Theorem, Myerson 1981): Auktionen mit einem zu versteigernden Gut (evtl. mehrere Kopien), Bieter mit identischen Wertverteilungen, quasilinearen Nutzenfunktionen und gleichen Strategien bei gleichen Werten. Dann liefern alle Auktionen, für die Spieler mit niedrigstem Gebot dieselbe erwartete Auszahlung bekommen und Zuschlag an Höchstbietenden geht, jeweils dieselbe erwartete Auszahlung für alle Spieler und damit auch für den Verkäufer. 689 690 Vickrey-Auktion in der Praxis: Weitere Erkenntnisse: • Erweiterung für mehrere Güter und die Klasse der allokationseffizienten Auktionen. • Vickrey-Auktion unter allokationseffizienten und individuell rationalen Auktionen einzige, die den erwarteten Ertrag des Verkäufers maximiert. (Krishna, Perry 1997). Trotz netter theoretischer Eigenschaften spielt die geschlossene Version praktisch kaum eine Rolle. Einige Probleme: • Nicht sicher gegenüber Absprachen zwischen Bietern: Z. B. zwei Bieter mit privaten Werten 100 und 99 e, koalieren und bieten 100 und 1 e. • Betrügerischer Auktionator kann dem Gewinner gefälschtes (höheres) zweithöchstes Gebot angeben. • Wahrheitsaufdeckung kann unerwünschte Folgen haben (Firmengeheimnisse, Schwächung der Position des Käufers in späteren Verhandlungen). Für praktische Anwendungen kompliziertere Modelle, die zusätzliche Nebenbedinungen berücksichtigen. Z. B. unterschiedliche Bieter, Abhängigkeiten / Absprachen zwischen Bietern, Budgeteinschränkungen der Bieter, Reservierungspreise des Verkäufers usw. Arbeiten: Sandholm (1996), Ausubel, Milgrom (2006). 691 692 Kombinatorische Auktionen (CAs): Anwendungen: Versteigerung von LKW-Transportaufträgen, Busrouten, Sendefrequenzen (FCC, UMTS). Szenario: • Endliche Menge G von zu versteigernden Objekten. • n Bieter, Bieter i hat für jede Menge S ⊆ G Einschätzung vi (S) des Wertes von S. • Menge der möglichen Alternativen: Zuordnungen von Objektteilmengen an Bieter, A := {(S1 , . . . , Sn ) | Si ⊆ G, Si ⊆ Sj ∩ ∅ für i 6 = j}. • Strategie von Spieler i: Für jedes S ⊆ G Gebot v ′ (S). i Prinzipielle Lösungsmöglichkeit: Verallgemeinerte Vickrey-Auktion (GVA): n P • Bestimme a∗ = (S1 , . . . , Sn ), sodass vi′ (Si ) maximal. i=1 • Preis für Spieler i: pi (v ′ ) := v (a∗−i ) − Ausgabe des Auktion-Mechanismus: • Zuordnung a∗ (v ′ ) ∈ A der Objekte; • Für jeden Spieler i zu zahlender Preis pi (v ′ ). v (a∗−i ) X vj′ (Sj ), j6=i wobei der maximale Gesamtwert (bezüglich gemeldeter Gebote) im Szenario ohne Spieler i sei. 693 Komplexität: • Gebotsabgabe: Erfordert spezielle Gebotssprachen (Nisan 2000). • Bestimmung der Zuordnung a∗ : M AXIMUM W EIGHTED S ET PACKING, äquivalent bez. PTAS-Reduktionen zu M AXIMUM C LIQUE und damit insbesondere NP-schwer. • Bestimmung der Preise: Zusätzlich für jeden Bieter reduziertes Problem lösen. Abhilfe: Approximationsalgorithmen, iterative Auktionen. (Z. B. Nisan, Ronen (2000), Parkes, Ungar (2000).) Problem: Aufrechterhaltung der Wahrheitsaufdeckung, gleichzeitig Ertragsmaximierung. 695 694