Internet-Algorithmen
Transcription
Internet-Algorithmen
Spezialvorlesung Internet-Algorithmen Sommersemester 2007 Martin Sauerhoff Lehrstuhl 2, Universität Dortmund 1. Einleitung Das Internet – abstrakte Version: Hosts / Endsysteme Router Kommunikation gemäß IP In Wirklichkeit starke hierarchische Struktur, viele verbundene Einzelnetze. • Internationale Verbindungen; • nationale Backbones; • ISP-Backbones; • lokale Netze. 1 Wie groß ist das Internet? Aktuelle Schätzung für Anzahl Hosts: ca. 430 Millionen (gemäß Internet Systems Consortium, www.isc.org). # Hosts 400.000.000 300.000.000 200.000.000 Jahr 01/’06 06/’06 01/’07 01/’93 06/’93 100.000.000 2 Wie groß ist das Internet? (Forts.) Wie das ISC zu diesen Zahlen kommt: • Hosts“: Geräte mit global eindeutiger IP-Nummer. ” • Zähle alle IP-Nummern, zu denen es einen Host gibt. Dazu Abbildung IP-Nummer → Hostname per inversem DNS-Lookup. • Insgesamt 232 IP-Nummern, daher vorab Pruning“ ” von nichterreichbaren Teilnetzen. Details: www.isc.org/ops/ds/rfc1296.txt. 3 Internet im ISO/OSI-Schichtenmodell (→ BSRvS): Anwendung (application): HTTP (→ WWW), FTP, Mail Transport: TCP, UDP Vermittlung (network): IP Hier: Üblicherweise Anwendungsschicht und darüber“. ” Nicht (u. a.): • Standard-Routing-Algorithmen; • Ressourcen-Management. 4 Übersicht über den Rest der Vorlesung: 2. Der Webgraph 3. Suchmaschinen 4. Datenstromalgorithmen 5. P2P-Netze 6. Algorithmische Spieltheorie 5 2. Der Webgraph Übersicht: 2.1 Einleitung 2.2 Experimente 2.3 Modelle 6 2.1 Einleitung WWW (aka: Web, Netz, Internet (?)): • Realisiert mittels HTTP (Anwendungsschicht). • Virtuelles Netz aus HTML-Dokumenten (Webseiten) mit Hyperlinks als Verbindungen. Definition 2.1: Webgraph Gerichteter Graph G = (V , E) mit • Knotenmenge V : statische Webseiten. • Kantenmenge E: Hyperlinks. Dabei nicht erfasst: Dynamische Webseiten. • Generierung bei Anfrage durch Skript (PHP. . . ). • Oft: Zugriff auf Datenbanken. 7 Suchmaschinen: Benutzeranfrage 7 → Liste von Referenzen auf Webseiten. • Crawler: Regelmäßiger, automatischer Durchlauf (Crawl) des Webs zwecks Datensammlung. Liefert: • Index: Abbildung Webseiten-ID 7 → Inhalt. • 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 Einige Zahlen (Anfang 2007): 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). 9 2.2 Experimente 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 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. 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. TENDRILS 44 Mio. Knoten IN 44 Mio. Knoten MAXSCC 56 Mio. Knoten OUT 44 Mio. Knoten DISCONNECTED 16 Mio. Knoten 12 Fliegenstruktur des Webs (Forts.) Teilgebiet: MAXSCC: IN: OUT TENDRILS: DISC.: 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? 13 Berechnung der Teilgebietsgrößen • Graph in Adjazenzlisten-DS im Hauptspeicher (9,5 GB). – Zu jedem Knoten eingehende und ausgehende Kanten. – Komprimierte URLs als Knoten-IDs (Speicherplatz). • Starke ZKs / schwache ZKs mit bekannten Algorithmen. Sei • V gesamte Knotenmenge; • MAXWCC größte schwache ZK. Algorithmen → MAXWCC (≈ 186 Mio. Knoten), MAXSCC. Haben dann auch: DISCONNECTED = V − MAXWCC. 14 Berechnung der Teilgebietsgrößen (Forts.) • Mit BFS von MAXSCC aus erreichbare Knoten ohne MAXSCC selbst → OUT. • Analog für umgedrehte Kanten → IN. Schließlich: TENDRILS = MAXWCC − (MAXSCC ∪ IN ∪ OUT). Bemerkung: Originalarbeit: Zusammenhangskomponenten nicht abgespeichert, Sampling + Verrechnungstricks“. ” 15 Aktuellere Experimente (Donato u. a. 2004): 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% 16 2.2.2 Kleine-Welt-Phänomen Ursprünglich für soziale Netze. 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 Definition 2.3: Durchmesser Gerichteter Graph G = (V , E). • Durchmesser: diam(G) := max d(v , w ), (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| (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 Durchmesser des Webgraphen 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. 19 Durchmesser des Webgraphen (Forts.) Arbeit von Broder u. a. (2000) aus Abschnitt 2.2.1: 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 20 2.2.3 Webgemeinden Webgemeinde: Gruppe von im Web repräsentierten Individuen mit gemeinsamen Interessen zusammen mit gemeinsam von ihnen bevorzugten Webseiten. Beispiele für etablierte Gemeinden: • Case-Modder; • Star-Trek-Fans; • Freunde von Nacktmullen (?). Hinweise: Verzeichnisse wie Yahoo!, web.de,. . . ; Webrings; Newsgroups. 21 Automatisches Finden von Webgemeinden Arbeit: Kumar, Raghavan, Rajagopalan, Tomkins (1999). • Webgemeinden anhand von Linkstruktur erkennen? • Will aufstrebende Gemeinden“ entdecken. ” Beispiele aus der Arbeit von 1999: • Moslemische Studenten in den USA; • japanische Sängerin Hekiru Shiina; • australische Feuerwehr. 22 Wie soll das gehen? Autoritäten (authorities): Thematisch verwandte Seiten, für die sich Webgemeinde interessiert. Problem: Oft keine direkten Links zwischen solchen Seiten! Beispiel: Webshops für Case-Modding-Zubehör. Idee: Identifiziere Seiten, die Links auf (viele) authoritative Seiten haben. Verteiler (hubs): Seiten, die Links auf Autoritäten der Webgemeinde haben. 23 Winziger Ausschnitt Case-Modder-Gemeinde: Verteiler caseumbau.de moddfreakz.net young−modders.de Authoritäten caseking.de ichbinleise.de com−tra.de Graphisches Tool: www.touchgraph.com. 24 Formalisierung: Verteiler und Autoritäten einer Webgemeinde: • Bipartiter Teilgraph des Webgraphen. • Ignoriere evtl. vorhandene (wenige) Links innerhalb der Verteiler / Autoritäten. Vollständiger bipartiten Teilgraph: Kern (core) der Webgemeinde. Definition 2.4: Vollständiger bipartiter Graph Graph Ki, j : · V mit |V | = i, |V | = j; • Knotenmenge V ∪ 1 2 1 2 • Kantenmenge E = V1 × V2 . 25 Experimente von Kumar u. a. (1999) Daten: Alexa-Crawl von 1998, ca. 200 Mio. Seiten. 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. 26 Algorithmus F INDE (i, j)-K ERNE : • I TERATIVES P RUNING: Wiederhole bis keine Veränderung mehr: Eliminiere potenzielle Verteiler / Autoritäten mit zu kleinem Ausgangs- bzw. Eingangsgrad + zugeh. Kanten. • 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. 27 Bemerkungen: • Heuristik (nicht alle Kerne!), schwammige Originalarbeit 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. 28 Ergebnisse: • In 1999: Newsgroups, kommerzielle Verzeichnisse: 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 2.2.4 Potenzgesetze 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. Verteilungen folgen Potenzgesetzen. 30 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α x=1 Nenne α Exponent der Verteilung. Alternative Namen: Zipf-Verteilung, Zeta-Verteilung. 31 Beispiel: Exponent α = 2. 0.6 0.5 0.4 0.3 0.2 0.1 0 ∞ X π2 1 1 = = . c 6 x2 x=1 2 4 6 8 10 32 Log-Log-Plots Sei f (x) := c/x α . Dann: log10 f (x) = log10 c − α · log10 x; x. log10 f (10ex ) = log10 c − α · e 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. In Anwendungen oft einfach Plot der absoluten Häufigkeiten, für Parameter c dann beliebige Werte zulässig. 33 Webgraph: Potenzgesetze für den Knotengrad Log−Log−Plot Eingangsgrad Log−Log−Plot Ausgangsgrad 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 Anzahl Webseiten Anzahl Webseiten 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. Ausgangsgrad 34 Potenzgesetze für den Knotengrad (Forts.) Arbeit von Donato u. a. aus Abschnitt 2.2.1: Wieder Crawl aus der Stanford Webbase von 2001. α ≈ 2,0 Eingangsgrad Log−Log−Plot Ausgangsgrad Anzahl Webseiten Anzahl Webseiten Log−Log−Plot Eingangsgrad Ausgangsgrad Erkenntnisse über Webgraphen: • Eingangsgrad folgt vermutlich Potenzgesetz mit Exponent α ≈ 2,1. • Ausgangsgrad hat vermutliche andere Verteilung. 35 Weitere Potenzgesetze im Internet: • 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)). Pennock u. a. (2002): Beschränkung auf thematisch verwandte Webseiten (z. B. Uni-Homepages): Potenzgesetz für Eingangsgrad stimmt nicht mehr. 36 2.2.5 Mehr über Potenzgesetze 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 Alternativer Name: Pareto-Verteilung. Verteilungsfunktion: β b F (x) = Pr{X ≤ x} = 1 − . x Dichte: c βbβ d F (x) = 1+β = α , mit c := βbβ , α := 1 + β. f (x) = dx x x 37 Momente: Sei X gemäß Dichte f (x) = c/x 1+β verteilt, m ∈ N: Z ∞ Z ∞ m m cx m−β−1 dx x f (x)dx = E(X ) = b b ∞ c m−β = ·x . m−β b Nur endlich, falls m ≤ β. Fall β < 1: Erwartungswert und Varianz unendlich. Fall β < 2: Erwartungswert endlich, Varianz unendlich. 38 Normalverteilung: • Konzentration um Erwartungswert. • Exponentiell abfallender Auslauf (tail) der Dichtefunktion. Potenzgesetz-Verteilung: • Große Varianz. • Polynomiell abfallender Auslauf der Dichtefunktion (heavy-tailed distribution). 39 Skaleninvarianz-Eigenschaft: Sei f (x) = c/x α . Für Konstanten a 6 = 0: 1 c 1 f (ax) = α · α = α · f (x). a x a Änderung des x-Achsen-Maßstabs → • Änderung des y -Achsen-Maßstabs; • Form der Funktion bleibt erhalten. 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 Zusammenfassung Abschnitt 2.2: Eigenschaften des Webgraphen: • High-Level-Sichtweise: Fliegenstruktur. • Kleiner durchschnittlicher Durchmesser. • 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. ” 41 2.3 Modelle Wozu überhaupt? • Test von Algorithmen; • Vorhersage zukünftiger Entwicklung; • besseres Verständnis beobachteter Phänome. Anforderungen an Modelle: • Dynamische Entwicklung; • Potenzgesetze, z. B. für Eingangsgrad; • kleiner durchschnittlicher Durchmesser; • Clusterbildung, insbesondere viele Ki,j -Kopien. 42 2.3.1 Der Klassiker: Das ER-Modell • Grundlegende Arbeit: Erdős, Rényi (1960). • Das Modell für zufällige Graphen schlechthin. 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. Bemerkungen: • Oft Verhalten für n → ∞. • In der Literatur: Ungerichtete Version verbreiteter. 43 Wahl von p für Webgraphen? • Für Modelle verbreitete Annahme / Eigenschaft: (Erwartete) lineare Kantenanzahl oder sogar konstanter Ausgangsgrad. • Dann passender Wert: p = p(n) = c/n, c > 0 Konstante, E(# Anzahl Kanten) = p · n2 = cn. Plausibel, aber kaum experimentell untersucht. Muss zeitliche Entwicklung des Webgraphen verfolgen. Leskovec, Kleinberg, Faloutsos (2006): Evtl. falsch: Für einige reale Graphen |E| ≈ cnα mit α > 1! Z. B. AS-Graph, AS: Autonome Systeme. 44 Gradverteilung für ER-Modell: Proposition 2.8: Für G(n, p) gilt: • Für alle Knoten v , k ∈ {0, . . . , n − 1}: n−1 k p (1 − p)n−1−k Pr{indeg(v ) = k } = k = B(n − 1, p)(k ). (Binomialverteilung mit Parametern n − 1, p). • Sei Nk,n := # Knoten mit Eingangsgrad k . Dann: E(Nk,n ) = n · B(n − 1, p)(k ). 45 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 und . Referenz: Hagerup, Rüb, A guided tour of Chernoff bounds“. ” Information Processing Letters, 33:305–308, 1989. 46 Anwendung hier: Xv ,w := [Kante (v , w ) existiert], (v , w ) ∈ V × V . X Xv ,w , D := indeg(v ) = w6=v ED = (n − 1)p. Chernoff-Schranken (Unabhängigkeit der Xv ,w ) ⇒ Pr{D ≥ ED + k } δ:=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). 47 Allgemeiner & genauer: n→∞ Falls np → λ, λ > 0 Konstante bez. n: n→∞ Pr{indeg(v ) = k } → e−λ λk /k ! = P(λ) (Poisson-Verteilung mit Erwartungswert λ) und n→∞ E(Nk,n /n) → P(λ). • Eingangsgrade für gewünschte Kantendichte approximativ poissonverteilt, exponentiell fallender Auslauf. • Weit entfernt von Potenzgesetz-Verteilung! : – ( 48 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. Beweis: • Wähle V , W ⊆ {1, . . . , n} mit |V | = i, |W | = j, V ∩ W = ∅. Wskt. für bipartite Clique V × W : p i·j . • Anzahl Wahlen solcher V , W : n n−i . i j • Damit Erwartungswert: n n−i n i+j c i·j p i·j ≤ i j i! · j! n i·j≥i+j = O(1). 49 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.: 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). 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 Fazit für ER-Modell: • Eigenschaften ungeeignet für Webgraphen. Problem: Unabhängigkeit der Kantenwahlen • Weiterer Nachteil: Knotenanzahl fest, keine Dynamik. 51 2.3.2 Preferential Attachment Arbeiten: Barabási-Albert (1999), Bollobás u. a. (2001). 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 Beispiel für n = 32: 53 Bisher Ausgangsgrad 1, falls Schleifen ignoriert. Erzeugung von Ausgangsgrad d (ohne Schleifen): Identifiziere jeweils d Knoten von aufeinanderfolgenden Schritten. 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 ). Also Potenzgesetz-Verteilung mit Exponent α = 3 . 54 Beweis hier nicht, aber heuristisches Argument aus Barabási-Albert-Arbeit (Fall d = 1). 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). 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). 55 Neue (heuristische) Idee ( Mean-field theory“): ” Zufälliger Gradzuwachs → Erwartungswert für Zuwachs. 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 d di (t) di (t) di (t) = ≈ . dt 2t − 1 2t 56 Kontinuierliche Variante des BA-Modells: 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 d(t) (1) d(t) = ; dt 2t (2) d(t0 ) = 1. 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. Ziel: Bestimme Pr{dt0 (t) ≤ k } (t0 Zufallsvariable)! 57 Lösen der Differenzialgleichung: d ′ (t) 1 = . Integrieren: d(t) 2t Z 1 1 dt = ln t + c, also ln d(t) = 2t 2 1/2 c d(t) = t ·e . Anfangsbedingung liefert: 1/2 d(t0 ) = t0 −1/2 · ec = 1, also ec = t0 . Lösung damit: 1/2 t d(t) = . t0 58 Bestimmen der Gradverteilung: 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 . Also: Pr{d(t) ≤ k } = 1 − 1/k 2 . Verteilungsfunktion → Dichte: Dazu nach k ableiten. d Pr{d(t) ≤ k } = 2/k 3 . dk Also wie im diskreten Fall Potenzgesetz mit Exponent 3. 59 Durchmesser: Sei Gd,n der vom BA-Modell mit Ausgangsgrad d erzeugte Graph mit n Knoten. Aussage ohne Beweis: Satz 2.12: • Fall d = 1: 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: diam(Gd,n ) = 2((log n)/(log log n)). (Bollobás und Riordan 2004). 60 Kritik an BA-Modell: • Für d = 1 nur Bäume erzeugt. • Allgemein nur azyklische Graphen (|MAXSCC| = 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. Arbeit: Aiello, Chung, Lu (2001). 61 ACL-Modell A: 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 ). 62 Beobachtung: Zum Zeitpunkt t: Erwartete Knotenzahl (1 − α)t, erwartete Kantenzahl αt. Erwartete Kantendichte α/(1 − α) =: 1. 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. 63 Kontinuierliche Analyse für ACL-Modell A: Nur für Eingangsgrade. Beobachtungen: • Für alle v : win (v ) = indeg(v ) + 1. P • Nach Schritt t gilt: v win (v ) = t. 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.) Differenzialgleichung: w ′ (t)/w (t) = α/(t − 1) ≈ α/t, w (t0 ) = 1. Endergebnis: α d Pr{w (t) ≤ k } = 1+1/α . dk k 64 Weitere ACL-Modelle: • Modell B: 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 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. • Modell D: Ungerichtete Variante von Modell C. 65 2.3.3 Kopiermodelle Arbeit: Kumar, Raghavan, Rajagopalan, Sivakumar (2000). Idee: Nachahmung der Erzeugung von neuen Webseiten. • Viele Links von anerkannter Referenzseite“ ” übernommen. • Zusätzlich einige neue Ideen → zufällige“ Links zu bestehenden Seiten. ” 66 Kopiermodell mit linearem Wachstum (LGC-Modell): Parameter α ∈ (0, 1), Ausgangsgrad d. • Schritt t = 1: Knoten mit d Schleifen. • Schritt t > 1: • Erzeuge neuen isolierten Knoten w . • Wähle Prototyp vp zufällig gleichverteilt aus Knoten 1, . . . , t − 1. • 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}. 67 Bemerkung: Ziemlich haarige Analyse (nur für d = 1 durchgeführt) → Eingangsgrad hat Potenzgesetz-Verteilung mit Exponent 1 + 1/α. (Hier ohne Beweis.) Großes Plus: Kopiermodelle sind die einzigen Modelle, für die große Anzahl bipartiter Cliquen nachgewiesen. Ki,j,t := # Ki,j -Kopien im LGC-Graph nach t Schritten. 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 . 68 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 auswählt. Wskt. dafür: (1 − α)d . • Nenne Knoten voll, wenn all seine d Nachfolger verschieden sind. (Beachte: Der zufällige Auswahlprozess kann auch Multikanten erzeugen. Zu Anfang ist das sogar der Normalfall.) 69 Plan für Beweis: • M.h.W. viele volle Knoten in {1, . . . , t0 }, t0 geeignet. • Für festen vollen Knoten v : M.h.W. verschiedene Duplikatoren w1 , . . . , wi−1 aus {t0 + 1, . . . , t}. Beobachtung: Knoten v und w1 , . . . , wi−1 bilden Ki,d -Kopie. • Gefundene Kopien verschieden, da sie sich durch volle Knoten unterscheiden. 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ß). 70 Behauptung 1: Mit Wskt. 1 − 2−(t) gibt es mindestens (a/8)t0 volle Knoten in {1, . . . , t0 }, wobei a := (1 − α)d . 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}. 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 für eine geeignete Konstante c > 0. Also nur noch“ Behauptungen zu zeigen. ” 71 Beweis von Behauptung 1: 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}. Erste Frage: Wskt., dass v voll ist? 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 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 i<j Markoff-Ungleichung ⇒ Pr{S ≥ 1} ≤ Pr{S ≥ 2 · ES} ≤ 1/2. Also: Innovator aus {t0 /2 + 1, . . . , t0 } ist voll mit Wskt. mindestens 1/2. 73 Zweite Frage: Wieviele volle Innovatoren in {t0 /2 + 1, . . . , t0 } gibt es? Erinnerung: Wskt., dass Knoten Innovator ist: a = (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 0 /2 = 2−(t) . (Behauptung 1) 74 Beweis von Behauptung 2: Betrachte Knoten v ∈ {1, . . . , t0 }. Finde verschiedene Duplikatoren w1 , . . . , wi−1 in {t0 + 1, . . . , t}. Teile Zeitpunkte t0 + 1, . . . , t in Epochen ein. Für j = 0, . . . , ⌊log(t/t0 )⌋: 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 : 1− 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 . 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/α = l m i 4/α d ≥ 4i/α d . 76 Letzte Folie: 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) 77 Bemerkung: Einschränkung i konstant“ nicht essenziell: ” Beweis funktioniert auch für i ≤ γ log t, γ > 0 geeignet (→ Übungsaufgabe). Beurteilung LGC-Modell: • Vorteil: Gute Motivation, bipartite Cliquen. • Nachteil wie bei BA-Modell: Nur azyklische Graphen. 78 Kopiermodell mit exponentiellem Wachstum (EGC-Modell): Ideen: • 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. ... 79 EGC-Modell genau: Parameter: α ∈ [0, 1], d ∈ N, ℓ ∈ N, p ∈ (0, 1]. Vt := Knotenmenge nach Epoche t. • 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 + ℓ). (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 . 80 Beobachtung: |Vt | = (1 + p)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. • Anzahl neuer Knoten dann binomialverteilt mit Konzentration um Erwartungswert p|Vt |. • |Vt | konvergiert für t → ∞ gegen Grenzverteilung mit Erwartungswert (1 + p)t . 81 Wachstum der Kantenanzahl: Et := Kantenmenge nach Epoche t. 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(# neue Kanten) = ℓ · p|Vt | + · E(|Et |) d +ℓ dp · (d + ℓ)|Vt | = ℓ · p|Vt | + d +ℓ = (d + ℓ) · p|Vt |. Außerdem: Für festen Knoten wachsen auch Ein- und Ausgangsgrad exponentiell in t (o. Bew.). 82 Ergebnisse für das EGC-Modell: Aus der Originalarbeit von Kumar u. a.: • Potenzgesetz für Eingangsgrad mit von Parametern abhängigem Exponenten. • Große Anzahl bipartiter Cliquen. 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).) 83 Es gibt noch viele weitere Modelle: Insbesondere noch Varianten mit Kanten- und / oder Knoten-Löschungen interessant (Growth-Deletion-Modelle). Viele offene Fragen: • 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?) 84 Zusammenfassung Abschnitt 2.3: Modelle für den Webgraphen: 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. 85 3. Suchmaschinen Übersicht: 3.1 Einleitung 3.2 Aufbau einer Suchmaschine 3.3 HITS 3.4 PageRank 3.5 Mehr zum Crawling 3.6 Duplikatfilterung 3.7 Sampling von Webseiten 86 3.1 Einleitung Suchmaschinen-Generationen: • 1. Generation: Inhaltsbasiert, klassische Methoden des Information-Retrieval (IR). Beispiel: altes AltaVista (1995–1999). • 2. Generation: Linkanalyse (Hypertext-Struktur). Beispiel: Google (ab 1998). • 3. Generation: Natürliche Sprache, semantische Analyse. Beispiele: mehrere selbsternannte Google-Nachfolger. 87 Klassisches Information-Retrieval Hier sehr kurzer Exkurs, einige Begriffe. Weitere Details z. B. in Baeza-Yates, Ribeiro-Neto (1999). Wesentliche Schritte beim IR: • Datenaufbereitung → Index / inverser Index; • Anfrageauswertung; • Ranking der Ergebnisse. Viele Techniken zur Verarbeitung von natürlichsprachlichen Texten, auch für Suchmaschinen relevant. 88 Anfrageauswertung: 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. Ranking: Suchergebnisse absteigend sortieren nach Relevanz zur Anfrage. 89 Inhaltsbasiertes Ranking Vektormodell für Dokumente: 3.1: • Vokabular V , |V | = n. Elemente: Mögliche Suchbegriffe. • 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). • 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: 1 2 2 0 w (d1 ) = , w (d2 ) = 1 ⇒ sim(d1 , d2 ) = √ ≈ 0.82. 6 1 0 90 Inhaltsbasiertes Ranking (Forts.) Betrachte Gesamtmenge von Dokumenten D = {d1 , . . . , dk } (z. B. Web). Sei i ∈ {1, . . . , n}, n = |V |. • 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). TF-IDF-Gewichte: w (d)i := TF(d)i · IDFi , i = 1, . . . , n. 91 Inhaltsbasiertes Ranking (Forts.) Beispiel: Begriff: GraKa SuSE funzt TF(d1 )i : 12 2 0 TF(d2 )i : TF(d3 )i : 8 1 0 1 1 0 IDFi : log(3/3) = 0 log(3/2) ≈ 0.58 log(3/1) ≈ 1.58 TF-IDF(d1 ) = (12 · 0, 2 · 0.58, 0 · 1.58) = (0.00, 1.16, 0.00); TF-IDF(d2 ) = (8 · 0, 0 · 0.58, 1 · 1.58) = (0.00, 0.00, 1.58); TF-IDF(d3 ) = (1 · 0, 1 · 0.58, 0 · 1.58) = (0.00, 0.58, 0.00). 92 Web-Information-Retrieval: Was ist anders? Unterschiede Web ↔ klassische Datenbanken: • Datenmenge (siehe Kapitel 2). • 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. • Vielzahl von Sprachen. • Spam. • Hoher Gehalt an Verbindungsinformation (Hypertext). 93 Ziele für Suchmaschinen (2.Generation)? Klassische IR-Begriffe: • Genauigkeit (Precision): Anteil gefundener & relevanter Dokumente an allen gefundenen Dokumenten. • Vollständigkeit (Recall): Anteil gefundener & relevanter Dokumente an allen relevanten Dokumenten. Für Web: • Hohe Vollständigkeit illusorisch und auch nicht erwünscht. • Vielzahl an relevanten Dokumenten. 94 Ziele für Suchmaschinen (Forts.): Beobachtung Benutzerverhalten: • Unpräzise Benutzeranfragen (nur 1-3 Suchbegriffe). • Nur selten mehr als erste Seite Ergebnisse betrachtet. Ziele für Web-IR (Henzinger 1999, damals bei Google): Relevanz & Qualität (in den Augen des Benutzers), qualitativ hochwertige Ergebnis unter ersten Ergebnissen. Im Vergleich zu klassischem IR neue Ideen für Ranking erforderlich. 95 Problem für Suchmaschinen – Web Spam: • Bewusste Herbeiführung von Überbewertung des 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. 96 3.2 Aufbau von Suchmaschinen 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. Aktueller Stand der Dinge: Heuristiken, Finetuning → Firmengeheimnisse. 97 Suchmaschine – Grobaufbau: Benutzer/−in Web Daten− sammlung (Crawler) Daten− Anfrage− aufbereitung bearbeitung 98 Suchmaschinen-Aufbau genauer: Web Benutzer/−in Daten− Anfrage− sammlung Repository (Crawler) bearbeitung Lexikon Indexer Ranking Sorter Index / Inv. Index Graph−DS URL−DB 99 Datenstrukturen: • URL-DB: Übersetzung URL ↔ DocID. • Lexikon: Übersetzung Suchbegriff ↔ WordID. Repository: • Unsortierte Liste aller HTML-Dokumente, komprimiert. • URL-DB liefert Abbildung DocID 7 → Repository-Position. 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 Datenstrukturen (Forts.): Inverser Index: Abbildung WordID 7 → Liste von DocIDs. (Das ist die DS, hinter der wir her sind.) Graph-DS: • Webgraph in Adjazenzlisten-Darstellung. • Knotennummerierung mit DocIDs. • Knoten mit Zeigern auf Listen von eingehenden / ausgehenden Kanten. 101 Programme: • Crawler: – Umfangreiche Menge von Startpunkten. – Parsen von gelesener Webseite (schwierig: Robustheit), Eintrag im Repository, URL → DocID in URL-DB. • 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). • Sorter: Sortiere Index nach WordID → Invertierter Index. Von allen drei Programmen viele Kopien, die parallel auf Teilen ihrer Datenstrukturen arbeiten. 102 Ranking am Beispiel von Google (1998): So heute (lange) nicht mehr, aber wenigstens konkret, wie es prinzipiell gehen kann. Und Grundschema bleibt dasselbe. Zwei Komponenten (genaue Kombination unbekannt): • Inhaltsbasiert wie bei klassischem IR. • Linkbasiert: PageRank (→ später). 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. CW # Vorkommen • Inhaltsbasierter Rang des Dokuments: X i TWi · CW(ni ). (Übliche IR-Maße statt einfachem Skalarprodukt?) 104 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. 105 Einige Google-Details (Barroso, Dean, Hölzle 2003, Hölzle-Talk EclipseCon 2005) Grundsätzliche Philosophie: • Maximierung von Leistung/Preis, nicht Spitzenleistung. • Redundanz für – Ausfallsicherheit; – Performance (verteilte Algorithmen, Lastbalancierung). • Fehlertoleranz in Software realisiert, keine spezielle Serverhardware. 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 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. 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. 107 3.3 HITS Nachteil klassische inhaltsbasierte Suche: Zu viele relevante Seiten bei Suche im Web. 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. . . ) Diese Grundidee ist alt: • Soziologie: Maße für soziales Ansehen, Prestige. • Bibliometrie: Impact Factor (seit 1920er Jahren). 108 Beispiel: Eingangsgrad (backlink count). Ranking damit genauer: • 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“. ” 109 Zwei verschiedene Grundansätze für linkbasiertes Ranking: • Anfragebasiert: Berücksichtige Benutzeranfrage vor bzw. während Linkanalyse. Beispiel: HITS (dieser Abschnitt). • 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). 110 3.3.1 HITS (Hypertext Induced Topic Search) Arbeit: Kleinberg (1999). Ziel: Autoritäten“ für Suchanfrage finden. ” Idee analog zu Webgemeinden: Autoritäten gemeinsam verlinkt von Verteilern. Zu lösende Probleme: 1 Wie mit Suchanfrage verbinden? 2 Wie global gute Autoritäten/Verteiler finden? 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!? 111 Der fokussierte Teilgraph Zunächst Lösung des ersten Problems. Fixiere Suchbegriff q (genauso für allgemeine Anfragen). Naiv: Linkanalyse für alle Seiten, die q enthalten. Funktioniert nicht: Zu viele Seiten, Suchbegriff evtl. nicht auf relevanten Seiten. 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 . 112 Der fokussierte Teilgraph (Forts.) Zweistufiges Vorgehen: • Startmenge Sq : Kleine Auswahl von Webseiten, die q enthalten. Beste t Resultate von inhaltsbasierter Suchmaschine. • Fq := Sq ∪ Rand von Sq“, d. h. ” Sq mit Nachfolgern und Vorgängern. Für Linkanalyse von Fq induzierten Teilgraphen betrachten: Fokussierter Teilgraph des Web. 113 Der fokussierte Teilgraph (Forts.) Beispiel: Sq 114 Algorithmus F OKUSSIERTER T EILGRAPH: 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 • • • • 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 Für jeden Knoten i in Fq berechnen: • ai : Gewicht von i als Autorität; • vi : Gewicht von i als Verteiler. |Fq | = n: a := [a1 , . . . , an ]⊤ , v := [v1 , . . . , vn ]⊤ ∈ Rn . Normierung der Gewichte: Definition 3.2: Euklidische Norm von x = [x1 , . . . , xn ]⊤ ∈ Rn : X 1/2 n ⊤ 1/2 2 kxk2 := x x = xi . i=1 Wollen: kak2 = kv k2 = 1. (Es werden außerdem a1 , . . . , an ≥ 0, v1 , . . . , vn ≥ 0 sein.) 116 Verteiler & Autoritäten berechnen (Forts.) A = (ai,j )1≤i,j≤n Adjazenzmatrix von G(Fq ). V A vj1 vj2 .. .. ai (j,i)∈E vjr aj1 aj2 vi Update Autoritäten-Gewicht: n X X ai := vj = aj,i vj . .. .. ajs j=1 Update Verteiler-Gewicht: n X X vi := aj = ai,j aj . (i,j)∈E j=1 117 Algorithmus V ERTEILER & AUTORIT ÄTEN: Eingabe: n × n-Adjazenzmatrix A; Anzahl Iterationen k . Verwalte Vektoren a, v ; Zwischenergebnisse a′ , v ′ . • a := v := [1, 1, . . . , 1]⊤ . • for t := 1 to k do ai ′ := vi ′ := Pn j=1 aj,i vj , Pn j=1 ai,j aj ′, i = 1, . . . , n; i = 1, . . . , n; a := a′ /ka′ k2 ; v := v ′ /kv ′ k2 . • return (a, v ). 118 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 ai ′ := vi ′ := Pn j=1 aj,i vj , Pn j=1 ai,j aj ′, i = 1, . . . , n; i = 1, . . . , n; aalt := a; a := a′ /ka′ k2 ; valt := v ; v := v ′ /kv ′ k2 . until ka − aalt k2 ≤ ε and kv − valt k2 ≤ ε. • return (a, v ). 119 Anwendung insgesamt für Suche nach q: • 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. 120 Beispiel (ohne Normierung): 0 0 0 0 1 1 0 0 0 1 0 ⊤ 1 0 0 A= 0 0 0 1, A = 1 1 0 0 0 1 0 1 0 0 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 = 1 2 2 1 0 1 0 0 121 Beispiel (ohne Normierung): 0 0 0 0 1 1 0 0 0 1 0 ⊤ 1 0 0 A= 0 0 0 1, A = 1 1 0 0 0 1 0 1 0 0 2 1 2 0 2 4 0 4 2 2 a= 2 v = 1 1 2 2 1 1 3 2 4 0 12 6 v ′ = Aa′ = 6 a′ = A⊤v = 6 1 1 6 0 1 0 0 121 Beispiel (ohne Normierung): 0 0 0 1 1 0 0 0 1 0 ⊤ 1 0 A= 0 0 0 1, A = 1 1 0 0 0 1 0 0 2 1 6 0 6 12 0 12 6 6 a= 6 v = 1 1 6 6 1 1 3 6 4 0 0 0 1 0 1 0 0 121 Beispiel (ohne Normierung): 0 0 0 1 1 0 0 0 1 0 ⊤ 1 0 A= 0 0 0 1, A = 1 1 0 0 0 1 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 121 Beispiel (ohne Normierung): 0 0 1 1 0 0 0 1 0 ⊤ 1 A= 0 0 0 1, A = 1 0 0 1 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 0 1 0 0 121 Beispiel (ohne Normierung): 0 0 1 1 0 0 0 1 0 ⊤ 1 A= 0 0 0 1, A = 1 0 0 1 0 0 2 1 162 0 162 324 0 324 162 v = 162 a= 162 1 1 162 162 1 1 3 162 4 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 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 , A⊤ = 1 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: Seien at , vt unnormierte Gewichte nach Schritt t. a0 = v0 := [1, . . . , 1]⊤ . at+1 = A⊤vt ; vt+1 = A at+1 . Also: vt+1 = AA⊤ vt , t ≥ 0; at+1 = 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 t at = f M A⊤v0 . 122 Matrix-Vektor-Formulierung (Forts.): Verfahren allgemein: Für n × n-Matrix M: • Startvektor x0 ∈ Rn geeignet“ wählen. ” Mxt • xt+1 = , t = 0, 1, 2, . . . kMxt k2 • Fortführen bis Konvergenz“ (xt+1 ≈ xt ). ” Name: Potenziteration (bzw. Potenzmethode). Hier angewendet für M = AA⊤ (bzw. M = A⊤A) und Startvektor x0 = [1, . . . , 1]⊤ (bzw. A⊤ [1, . . . , 1]⊤ ). 123 Matrix-Vektor-Formulierung (Forts.): Hoffnung: • Konvergenz. • Eindeutige Lösung, unabhängig von Startvektor. Ansonsten: Interpretation für HITS unklar! 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⊤ . 124 3.3.2 Konvergenz des HITS-Algorithmus Dazu: Erinnerung an einige Definitionen aus der linearen Algebra. . . 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 hat die Eigenwerte 1, −1, denn: Beispiel: A = 1 0 1 1 1 1 . = −1 · ; A =1· A −1 −1 1 1 (Das sind auch alle Eigenwerte, da [1, 1]⊤ , [1, −1]⊤ bereits den ganzen R2 aufspannen.) 125 Definition 3.4: 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. Für symmetrische Matrizen (im Folgenden immer reell) hat Eigenwertproblem besonders übersichtliche Lösung: 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. 126 Für die uns hier interessierenden Matrizen gilt: 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 : x ⊤Mx ≥ 0. Dies gilt tatsächlich: x ⊤Mx = x ⊤AA⊤x = (A⊤x)⊤(Ax) = kA⊤xk2 ≥ 0. 127 Letzte Proposition zusammen mit folgender: Von uns betrachtete Matrizen haben nur nichtnegative Eigenwerte. Proposition 3.7: Sei M eine quadratische, symmetrische und positiv semidefinite Matrix. Dann sind alle Eigenwerte von M nichtnegativ. Beweis: Sei λ ein Eigenwert von M mit Eigenvektor x 6 = 0. Wegen M symmetrisch ist λ ∈ R. Außerdem gilt: 0 M pos. semidef. ⊤ ≤ x Mx = x ⊤(λx) = λ |{z} x ⊤x . >0 Division der Ungleichung durch x ⊤x liefert λ ≥ 0. 128 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. Unsere Matrizen M = AA⊤ sind nichtnegativ, da A als Adjazenzmatrix nur Einträge aus {0, 1} hat. 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 . 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 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. 131 Anwendung: Folgerung 3.11: 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. Der Startvektor v0 = [1, . . . , 1]⊤ im Standard-HITSAlgorithmus ist offensichtlich positiv. 132 Beweis: Wende Satz 3.9 an für Potenziteration mit Matrix M = AA⊤ und Folge der Verteilergewichte (vt ). 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. Konvergenz: Folge (vt ) der Verteilergewichte: Konvergenz gegen ein v ∗ direkt aus Satz 3.9. Konvergenz für (at )-Folge folgt aus der für die (vt )-Folge, da erstere in letztere eingeschachtelt“ ” (Rechnung, hier ohne Beweis). 133 Bemerkung 1: 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). Bemerkung 2: 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. Unter den Voraussetzungen von Folgerung 3.11 stimmen die Ergebnisse überein, im Allgemeinen jedoch nicht (→ Beispiel später). 134 Beweis von Satz 3.9: Potenziteration mit Normen: y0 := x0 ; 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: y0 = x0 = α1 b1 + α2 b2 + · · · + αn bn ; α1 , . . . , αn ∈ R. Gemäß Voraussetzung (x0 nicht orthogonal zu b1 ): α1 6 = 0. Dann M t bi = λti bi für i = 1, . . . , n und damit M t y0 = M t (α1 b1 + · · · + αn bn ) = λt1 α1 b1 + · · · + λtn αn bn t n X λi t ≈ λt1 α1 b1 . αi bi = λ1 α1 b1 + λ1 i=2 | {z } → 0 für t → ∞ 135 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 yt = βt · M y0 = βt · λ1 α1 b1 + αi bi . λ1 |i=2 {z } =: dt Es gilt kdt k2 n t X λi = O (λ2 /λ1 )t ). α b = i i λ1 2 i=2 Also (wegen λ2 < λ1 ): dt → Nullvektor für t → ∞. Damit: xt = α1 b1 + dt t→∞ α1 yt → · b1 . = kyt k2 kα1 b1 + dt k2 |α1 | Gezeigt: (xt )-Folge konvergiert gegen Vektor x ∗ ∈ span(b1 ) mit kx ∗ k2 = 1. 136 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. Eindeutigkeit (erster Teil des Satzes): • Alle Eigenvektoren zu λ1 in span(b1 ), da λ1 6 = λi , i 6 = 1, und Eigenvektoren b1 , . . . , bn ON-Basis bilden. • Es gibt (offensichtlich) genau einen nichtnegativen Vektor mit Norm 1 in span(b1 ). 137 Preisfrage Nr. 1: Was passiert, wenn Voraussetzung von Folgerung 3.11 nicht erfüllt? Dann HITS-Matrix M = AA⊤ mit Eigenwerten λ1 = · · · = λk > λk+1 ≥ · · · ≥ λn ≥ 0, wobei k > 1, also größter Eigenwert kommt mehrfach vor. Viele verschiedene nichtnegative, normierte Eigenvektoren zum größten Eigenwert und u1 (M) undefiniert. Pathologisches Beispiel 1: 1 0 0 1 ⊤ . , M = AA = A= 0 1 1 0 Konvergenz gegen beliebigen Startvektor v0 . 138 Pathologisches Beispiel 2: 1 1. Fall: v-Gewichte initialisieren v0 := 2 3 4 6 5 √1 6 · [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 · [1, 1, 1, 1, 1, 1] → 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 139 Preisfrage Nr. 2: Anschauliches hinreichendes Kriterium, unter dem Eindeutigkeit der Konvergenz von HITS im Sinne von Folgerung 3.11? 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 Perron-Frobenius-Theorem aus der linearen Algebra (→ Abschnitt 3.4.2, Satz 3.18) liefert: Satz 3.13: Sei M eine quadratische, nichtnegative, irreduzible Matrix. • Dann kommt der größte Eigenwert nur einmal vor und alle anderen Eigenwerte sind betragsmäßig nicht größer als dieser. • Falls M zusätzlich positiv semidefinit: Eigenwerte λ1 , . . . , λn mit λ1 > |λ2 | ≥ · · · ≥ |λn | ≥ 0. 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: A Adjazenzmatrix von fokussiertem Graphen G(Fq ), M = AA⊤ . Dann: Mi,j = Anzahl Wege i j der Länge 2 in G(Fq ) über eine Kante + eine umgedrehte Kante. 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. 142 3.3.3 Effizienz Beweis von Satz 3.9: Konvergenzgeschwindigkeit hängt vom Verhältnis zwischen zwei größten Eigenwerten λ1 , λ2 von M = AA⊤ ab. Genauer gilt für Potenziteration (Folge (xt ), Grenzvektor x ∗ ): λ2 kxt − x ∗ k2 ≤ 1 + o(1) · kxt−1 − x ∗ k, t ≥ 1. λ1 d. h., Fehler schrumpft pro Iteration um konstanten Faktor, lineare Konvergenzgeschwindigkeit. Bessere Verfahren für Eigenvektorberechnung aus der Numerik anwendbar, da Matrix M klein (Kleinberg: |Fq | ≈ 1000 . . . 5000). 143 3.3.4 Stabilität Fragestellung: Wie ändert sich Lösung (Autoritäten-/Verteiler-Gewichte), wenn kleine Änderungen am Graphen vorgenommen werden? Typisches Problem in der Numerik, will dort: Kleine Fehler in der Eingabe bzw. Rechenfehler → nur kleine Änderung der Ausgabe. Gerade für Eigenwertprobleme sehr gut untersucht. 144 Bei HITS: Stabilität hängt von Eigenwertlücke von M ab. • Möglich: Änderung in Höhe der Eigenwertlücke an jedem Eintrag → komplett andere Lösung (größter Eigenwert ↔ zweitgrößter Eigenwert). • Hinzufügen/Löschen von einzelner Kante kann globale Auswirkungen haben. (Ng, Zheng, Jordan 2001) 145 3.3.5 Varianten von HITS Arbeit: Bharat, Henzinger (1998). Identifizierte Probleme von HITS: • Mehrfachlinks zwischen zwei Seiten. • Automatisch generierte Links. • 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“. ” 146 Neue Mechanismen im HITS-Algorithmus: Nichtuniforme Kantengewichte: Gewichtsmatrizen W A→V / W V →A anstelle von Adjazenzmatrizen A / A⊤ . Alter Konvergenzbeweis (Satz 3.9) direkt anwendbar, wenn ⊤ Gewichtsmatrizen nichtnegativ und W V →A = W A→V . Anpassung für allgemeinere Gewichtsmatrizen möglich. 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 Neue Mechanismen im HITS-Algorithmus (Forts.): Knotengewichte: 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). 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. 148 3.4 PageRank Arbeit: Page, Brin, Motwani, Winograd (1998). Ziel: Maß für absolute Wichtigkeit“ von Webseiten; ” nicht Relevanz bezüglich Benutzeranfrage. Anfrageunabhängiges Ranking. Ausgangspunkt: Eingangsgrad. Problem: Alle eingehenden Links gleich bewertet. Link von www.microsoft.de genauso wichtig wie von obskurer Crackerseite. Und: Leicht zu spammen. Idee für Verbesserung: Seite wichtig, falls sie viele eingehende Links von wichtigen Seiten hat. 149 3.4.1 Der PageRank-Algorithmus PageRank – einfache Version: 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) (u,v )∈E Dies als Berechnungsvorschrift interpretieren: • Initialisierung irgendwie geeignet“: ” Z. B. rv = 1/n für alle v . • Dann iterieren, bis Konvergenz“. ” 150 PageRank – einfache Version (Forts.): Matrix-Vektor-Formulierung: Gewichtete Adjazenzmatrix A = (ai,j )1≤i,j≤n : 1 , falls (i, j) ∈ E; ai,j = outdeg(i) 0, sonst. r (t) ∈ [0, 1]n Rangvektor nach t-tem Schritt, t ≥ 1. Iteration: • r (0) := [1/n, . . . , 1/n]; • r (t) = r (t−1) A. (Beachte: Hier immer Matrix-Vektor-Multiplikation von links“, r (t) Zeilenvektoren.) ” 151 Beispiel 1: 2 1 0.250 0.250 0.250 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 = 1/4 1/4 1/4 1/4 152 Beispiel 1: 2 1 0.500 0.000 0.375 0.125 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 4/8 3/8 1/8 152 Beispiel 1: 2 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 r = 0 5/16 8/16 3/16 152 Beispiel 1: 2 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 1 0.406 0.000 0.438 0.156 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 13/32 14/32 5/32 152 Beispiel 1: 2 1 0.375 0.000 0.406 0.219 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 12/32 13/32 7/32 152 Beispiel 1: 2 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 r = 0 27/64 24/64 13/64 152 Beispiel 1: 2 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 1 0.400 0.000 0.400 0.200 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 2/5 2/5 1/5 152 Beispiel 2: 2 1 0.250 0.250 0.250 0.250 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 = 1/4 1/4 1/4 1/4 153 Beispiel 2: 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 r = 5/24 8/24 3/24 2/24 153 Beispiel 2: 2 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 1 0.097 0.118 0.063 0.056 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 = 17/144 7/72 1/16 1/18 153 Beispiel 2: 2 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 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 r = 0 0 0 0 153 Das Random-Surfer-Modell: 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. Matrixeintrag ai,j gibt Wskt. für Übergang i → j an. Bisher: Kann in Knoten stecken bleiben“ (Beispiel 2). ” 154 Problem: Sackgassen ( Dangling Links“) ” 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. Möglichkeiten für Abhilfe: • Entferne rekursiv Sackgassen (Brin, Page). • Patche Matrix der Übergangswahrscheinlichkeiten bzw. analog Update-Regel. 155 Sackgassen (Forts.): In Beispiel 2: 0 0 0 0 1/4 1/4 1/4 1/4 1/2 0 1/2 0 0 1/2 0 ′ 1/2 A = 1/3 1/3 0 1/3 → A = 1/3 1/3 0 1/3. 0 1 0 0 0 1 0 0 Allgemein: Nullzeile → Zeile [1/n, . . . , 1/n]. Analog Änderung der Update-Regel: ( 1, falls Knoten i Sackgasse; d = [d1 , . . . , dn ]⊤ mit di = 0, sonst. r (t+1) = r (t) · A + r (t) · d · [1/n, . . . , 1/n]. {z } | n × n-Matrix 156 Das Random-Surfer-Modell (Forts.): Im Folgenden: Sackgassen entfernt / in A berücksichtigt. Dann ist A stochastische Matrix: Definition 3.15: Matrix stochastisch, falls Einträge aus [0, 1] und Zeilensummen alle jeweils gleich 1. Random-Surfer-Prozess ist Markoffkette, A ist Matrix der Übergangswahrscheinlichkeiten. Hätten wieder gerne: • Konvergenz gegen Grenzverteilung auf Seiten / Knoten. • Unabhängigkeit vom Startvektor. Für das einfache Verfahren nicht gegeben (später)! 157 PageRank – Vollversion: Zusätzlicher Parameter α ∈ [0, 1], Dämpfungsfaktor. Neue Update-Regel: Graph G = (V , E), n = |V |. Für v ∈ V : rv := 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. ” 158 Matrix-Vektor-Schreibweise: r (0) = [1/n, . . . , 1/n]. r (t) = r (t−1) · M, t ≥ 1; wobei M := (1 − α)E + αA, 1/n · · · 1/n .. . E := ... . 1/n · · · 1/n Beobachtung: A stochastische Matrix ⇒ M stochastische Matrix. 159 Absoluter PageRank: Benutze Initialisierung mit PageRank 1 für jede Seite: r (0) = [1, . . . , 1]. 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. i=1 i=1 Formulierung als Update-Regel: X ru rv := (1 − α) + α · , v ∈ V. outdeg(u) (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. 160 Der Google-Toolbar-Rang Toolbar-Rang: Wert aus {0, . . . , 10}, der tatsächlichen PageRank repräsentiert. Benutze dafür absoluten PageRank. • Intervall für absoluten PageRank (falls 6 = 0): 1 − α (keine eingehenden Kanten) bis 1 1 − α + α · n. 2 ... n−1 n • Werte aus {0, . . . , 10} gemäß logarithmischer Skala auf dieses Intervall abbilden (Basis 6 . . . 7?). • Finetuning von Hand“ (?). ” 161 3.4.2 Konvergenz des PageRank-Algorithmus Wie HITS ist PageRank Spezialfall der Potenziteration: r (t) = r (0) M t , t ≥ 0. Unter geeigneten Bedingungen wieder Konvergenz gegen Eigenvektor zum (reellen) größten Eigenwert von M. Proposition 3.16: Matrix M stochastisch ⇒ größter Eigenwert von M ist 1. Falls r ∗ (linker) Eigenvektor zum größten Eigenwert 1 von M: r ∗ = r ∗ M. Später: r ∗ sogar positiv wählbar. Nach Normierung, P P kr ∗ k1 = i |ri∗ | = i ri∗ = 1: Stationäre Verteilung der Markoffkette. 162 Hinreichendes Kriterium für Konvergenz + Eindeutigkeit: Markoffkette / Matrix M irreduzibel und aperiodisch. 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: ti := ggT({ℓ | ∃ Kreis mit Startknoten i der Länge ℓ}). Dann heißt M aperiodisch, falls t1 = · · · = tn = 1. 163 Beispiel: 6 1 2 5 3 4 Knoten: Periode: 1 2 3 4 5 6 2 2 2 4 4 4 Fazit: Irreduzibel, aber nicht aperiodisch. 164 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 . 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! 165 Anwendung für Markoffketten: 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. Eigenvektor r ∗ eindeutig, wenn zusätzlich kr ∗ k1 = 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! 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 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. 168 3.4.3 Effizienz 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. 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 Auswirkung des Dämpfungsfaktors: • Je kleiner α, desto schnellere Konvergenz! • Aber: Dann auch umso kleinerer Einfluss der 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. 170 3.4.4 Stabilität 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 ke r − r k1 ≤ ri . 1−α i∈S Änderung des PageRanks also nicht zu groß, falls • α nicht zu nahe an 1 und • PageRank-Gewicht der geänderten Seiten nicht zu groß. 171 3.4.5 PageRank-Variationen Der Personalisierungs-Vektor: 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 e = [1, . . . , 1]⊤ und v = [v1 , . . . , vn ]⊤ ∈ [0, 1]n mit kv k1 = 1. Damit relative Wichtigkeit der Seiten einstellbar. Vektor v : Personalisierungs-Vektor. (Bisher Spezialfall v = (1/n) · e, uniforme Gewichte.) 172 Nichtuniforme Gewichtung von Links: Bisher bei komponentenweiser Update-Regel: X 1−α ru rv′ = +α· . n outdeg(u) (u,v )∈E Unterschiedliche Bewertung der Links auf einer Seite möglich. Benutze neue Update-Regel: X 1−α rv′ = +α· ru · wu,v , n (u,v )∈E wobei wu,v ∈ [0, 1] und für alle u muss gelten: X wu,v = 1. (u,v )∈E 173 Themenabhängiger PageRank: Arbeit: Haveliwala (2002). Vorabberechnung (analog zu üblichem PageRank): • Für jede Kategorie j des Open-Directory-Projektes (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 . 174 Themenabhängiger PageRank (Forts.): Basierend auf Suchanfrage q: Für i = 1, . . . , k sei pi (q) Wskt., dass Benutzer Anfrage q zu Themengebiet i gehörig ansieht. Z. B.: Definiere fi (q) := relative Häufigkeit von q in Ti , pi (q) := fi (q)/(f1 (q) + · · · + fk (q)). (Uniforme Gewichtung der Themengebiete.) Themenabhängiger PageRank: rt (q) := k X i=1 pi (q) · ri . 175 3.4.6 PageRank in Aktion Plan: • Energieinterpretation des PageRank. • PageRank für Mini-Beispiele von typischen“ Netz-Topologien. ” In diesem Unterabschnitt: Immer absoluter PageRank. 176 Energieinterpretation des PageRank Arbeit: Bianchini, Gori, Scarselli (2003). Betrachte durch Knotenmenge S ⊆ V induzierten Teilgraphen des Webgraphen G = (V , 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. 177 Bemerkung zur Vorgehensweise: • Hier der Einfachheit halber voraussetzen, dass Standard-Algorithmus für absoluten PageRank gegen stationären PageRank-Vektor r konvergiert. • 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). Definition 3.24: Die Energie eines Teilgraphen des Webgraphen G = (V , E) mit Knotenmenge S ⊆ V ist X rv , E(S) := v ∈S wobei r der gegebene (stationäre) PageRank-Vektor ist. 178 Satz 3.25 (Bianchini u. a. 2003): Es gilt E(S) = |S| + Ein (S) − Eout (S) − Esink (S), wobei X α fv · rv ; 1−α v ∈in(S) X α (1 − fv ) · rv ; Eout (S) = 1−α v ∈out(S) X α rv . Esink (S) = 1−α Ein (S) = v ∈sink(S) Dabei ist fv der Anteil der Kanten von v , die auf S zeigen, bezogen auf die Gesamtanzahl ausgehender Kanten von v . 179 Beispiel 1: x1 = x2 = 1, E(S) = 2. Ein (S) = Eout (S) = Esink (S) = 0. Beispiel 2: 1 2 x1 = 1 − α, x2 = 1 − α + α(1 − α) = 1 − α 2 . E(S) = x1 + x2 = 2 − α − α 2 . Esink (S) = α · (1 − α 2 ) = α(1 + α) = α + α 2 . 1−α Ein (S) = Eout (S) = 0. 180 Beispiel 3: 3 1 2 x1 = 1 − α, x2 = 1 − α + α · 3 2 1 2 E(S) = 2 − α − α 2 . Ein (S) = 0, Eout (S) = 1 1 1−α = 1 − α − α2. 2 2 2 1−α α α2 α · = , Esink (S) = α + , 1−α 2 2 2 Beispiel 4: 3 1 2 x1 = 1 − α 2 , x2 = 1 − α 3 , E(S) = 2 − α 2 − α 3 . Ein (S) = α, Eout (S) = 0, Esink (S) = α + α 2 + α 3 . 181 Regeln für hohen PageRank: Ziel: Maximiere E(S). • Seitenanzahl: – 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. • Sackgassen: 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. 182 Auswirkung der Anzahl von Seiten (1/2): Szenario: • Quelle für konstante 10 Einheiten PageRank (Seite X“), ” für Quelle selbst keine PageRank-Berechnung. • Dämpfungsfaktor α = 3/4. r1 = 266/14 = 19 X r2 = r3 = r4 = 70/14 = 5 1 r1 + r2 + r3 + r4 = 34 2 4 3 183 Auswirkung der Anzahl von Seiten (2/2): r1 = 419/35 = 11.97 X r2 = 323/35 = 9.23 1 2 r3 = 251/35 = 7.17 4 r4 = 197/35 = 5.63 r1 + r2 + r3 + r4 = 34 3 184 Wie rechnet man das am besten aus? PageRank-Berechnung mit linearem Gleichungssystem. Hier alles für absoluten PageRank, Startvektor [1, . . . , 1]. Für stationären PageRank-Zeilenvektor x muss gelten: x = (1 − α)e + αxA. wobei e := [1, . . . , 1]⊤ . Äquivalent: Finde Spaltenvektor y ∈ Rn mit (1 − α)e + αA⊤y = y = I · y , nach Umarrangieren: I − αA⊤ y = (1− α)· e. Also: Lineares Gleichungssystem. 185 Einbauen von konstanten PageRank-Quellen“: ” Vektor b = [b1 , . . . , bn ]⊤ , Knoten i ∈ {1, . . . , n} erhalte Gratis-PageRank“-Beitrag bi von außen“. ” ” (1 − α)e + α(A⊤ y +b) = y bzw. (I − αA⊤ )y = (1 − α)e + αb. Für erstes Beispiel (Folie 183): 0 1/3 1 0 A= 1 0 1 0 1 −3/4 −1/4 1 −1/4 0 −1/4 0 10 1/3 1/3 0 0 0 → , b= 0 0 0 0 0 0 −3/4 −3/4 31/4 0 0 · y =! 1/4 . 1/4 1 0 0 1 1/4 186 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. 187 3.5 Mehr zum Crawling Hier: Crawler, Spider, (Web-)Robot. Aufgabe idealisiert: BFS-Durchlauf durch Web-Graphen. Varianten: • Generische Crawler (hier). • Fokussierte Crawler: Gesteuert durch Suchanfrage → eingeschränktes Themengebiet. 188 Übersicht: Web Web− schnittstelle Dokument− Duplikatfilter Queue URL− extraktion Repository URL− Duplikatfilter URL−DB 189 Zu lösende Probleme: • Parallelisierung. • Rücksichtsvolles Verhalten (politeness policies). • 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.) • Eliminieren von URL-Duplikaten. 190 Zahlen: Google in 1998: • drei Crawler auf verschiedenen Rechnern, aber zentrale Steuerung. • 300 geöffnete HTTP-Verbindungen pro Crawler; • ca. 100 Seiten/s. Mercator/Altavista (Heydon, Najork 2001): • 50 Mio. Seiten / Tag, ca. 500 Seiten/s; • verteilte Berechnung mit vollständigen Crawlern. 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 Parallelisierung: 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. 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). 192 Rücksichtsvolles Verhalten: • Vermeide mehrfache Zugriffe auf denselben Server. • Vermeide Zugriffe in zu kurzen Abständen. Maßnahmen: • Robots Exclusion Protocol, robots.txt. – 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. • ... 193 3.5.1 Steuerung der Crawl-Reihenfolge • Da Web extrem dynamisch, müssen Crawler regelmäßig neu gestartet werden. • Crawl niemals vollständig aktuell. • 8 Mrd. Seiten: 4 Mio. US-$ (Baeza-Yates u. a. 2005). • Spam-Problematik. → Crawle möglichst wichtige“ Seiten zuerst. ” 194 Wichtigkeitsmaße: • 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. Gewichtete Kombinationen der Maße möglich. 195 Wichtigkeitsmaße (Forts.): Problem für einige Maße: Erfordern globale Info aus dem gesamten Webgraphen! Hier z. B. für Eingangsgrad, PageRank. 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. 196 Crawler-Bewertung: 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. 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 · (H/T ) k = . H T 197 Crawler-Bewertung (Forts.): Typische Situation: 100 % ideal real zufällig Güte 100 % Anteil gecrawlter Seiten k /T 198 Experimentelle Ergebnisse: Cho, Garcia-Molina, Page (1998): • Experimente mit statischen Daten aus Crawl des 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 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. 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. 200 3.4.2 Refresh Crawler haben begrenzte Ressource Gecrawlte Seiten / Zeiteinheit“. ” Wie diese auf Webseiten verteilen? Auf den ersten Blick: Seiten, die sich häufiger ändern, häufiger auffrischen.“ ” Aber: Tatsächlich uniforme Verteilung oft besser und nie schlechter! Arbeit: Cho, Garcia-Molina (2000b). 201 Szenario: • Reales Web vs. lokale Kollektion (von Webseiten). • Lokale Kollektion sei C = {1, . . . , n}. • 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. • 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. 202 Frische: • Frische einer Seite p zum Zeitpunkt t: ( 1, F (p, t) := 0, falls p aktuell zum Zeitpunkt t; wenn nicht. • (Durchschnittliche) Frische der lokalen Kollektion C zum Zeitpunkt t: n 1X F (p, t). F (C, t) := n p=1 203 Alter: • Alter einer Seite p zum Zeitpunkt t: 0, falls p aktuell A(p, t) := zum Zeitpkt. t; t − Änderungszeitpunkt, sonst. • (Durchschnittliches) Alter der lokalen Kollektion C zum Zeitpunkt t: n 1X A(p, t). A(C, t) := n p=1 204 Beispiel: F (p, t) t A(p, t) t 205 Zeitmittelwerte: Für einzelne Seite p: Z 1 t E(F (p, t))dt, F (p) := lim t→∞ t 0 Z 1 t E(A(p, t))dt. A(p) := lim t→∞ t 0 Für komplette lokale Kollektion C = {1, . . . , n}: Z n 1X 1 t E(F (C, t))dt = F (C) := lim F (p), t→∞ t 0 n 1 t→∞ t A(C) := lim Z 0 t E(A(C, t))dt = 1 n p=1 n X A(p). p=1 206 Randomisiertes Modell für Änderungen: Betrachte zunächst einzelne Seite. 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.): 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. 207 Modell für Änderungen (Forts.): Modelliere Änderungen an Seiten 1, . . . , n in lokaler Kollektion durch Poisson-Prozesse mit Parametern λ1 , . . . , λn . Name: Änderungsraten dieser Prozesse. Gerechtfertigt durch Experimente. • Uniforme Änderungsraten: λ1 = · · · = λn = λ. • Beliebige Änderungsraten: λ1 , . . . , λn selbst wieder gemäß einer geeigneten Verteilung festgelegt (Spezialfall: fest gewählt). 208 Beispiel: Erwartete Frische für einzelne Seite • Betrachte Seite p mit Änderungsrate λ. • Crawl der Seite zu Zeitpunkten t = 0 und t = I. Wahrscheinlichkeit für Änderung in (0, t]: Z t Z t λe−λt dt = 1 − e−λt . fT (t)dt = Pr{T ≤ t} = 0 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. 209 Refresh-Ressourcen Festlegung für alles Folgende: • Crawler kann n Seiten in I Zeiteinheiten crawlen (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. 210 Refresh-Reihenfolge • 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? 211 Refresh-Reihenfolge (Forts.) • Feste Reihenfolge: Feste Liste von Webseiten, bei jedem Crawl diese Liste durchlaufen. Motivation: Crawl einer Website nach vorgegebener Sitemap. • 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. 212 Ergebnisse für Refresh-Reihenfolge: 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 0.2 0.2 völlig zufällig zufällige Reihenfolge 0 1 2 3 4 5 0 feste Reihenfolge 1 2 r = λ/f 3 4 5 r = λ/f Alle Funktionen links konvex, rechts konkav.. . . 213 Ergebnisse für Refresh-Reihenfolge (Forts.): F (C) 1 • Frische von Kollektion: feste Reihenfolge zufällige Reihenfolge völlig zufällig 0.8 Änderungen einmal pro Tag, Refresh einmal pro Tag: λ = f = 1, F (C) ≈ 0,63. 0.6 0.4 • Refresh-Rate zu Frische: 0.2 0 1 2 3 4 5 r = λ/f F (C) = 0,8: r = λ/f ≈ 0,46, Refresh ≥ 1/0,46 ≈ zweimal so oft wie Änderungen. 214 Details nur für Frische und feste Reihenfolge. 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 . Beweis: Betrachte feste Seite p ∈ C. Gemäß Definition Refresh alle I = 1/f Zeiteinheiten. Dann gilt (Übungsaufgabe): Z Z 1 t 1 I E(F (p, t))dt = E(F (p, t))dt. F (p) = lim t→∞ t 0 I 0 215 Hatten bereits: E(F (p, t)) = e−λt . Also: Z 1 I E(F (p, t))dt F (p) = I 0 Z 1 I −λt 1 − e−λI 1 − e−λ/f = e dt = = . I 0 λI λ/f Für gesamte lokale Kollektion von Seiten: n 1X 1 − e−λ/f . F (C) = F (p) = n λ/f p=1 216 Refresh-Ressourcen-Zuordnung 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). 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 Refresh-Ressourcen-Zuordnung (Forts.) 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 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.) 218 Welche Strategie für Ressourcen-Verteilung ist besser? Seien F (C)uni / F (C)prop durchschnittliche Frische für uniforme / proportionale Zuordnung. Satz 3.29: Im Refresh-Modell mit beliebigen Änderungsraten λ1 , . . . , λn und mit fester Refresh-Reihenfolge gilt F (C)uni ≥ F (C)prop . Analoge Ergebnisse für • andere Refresh-Reihenfolgen; • Alter statt Frische. 219 Für den Beweis sei F (λ∗ , f ∗ ) durchschnittliche Frische bei einheitlicher Änderungsrate λ∗ und einheitlicher Refresh-Rate f ∗ für alle Seiten. Nutze aus: Dies ist konvexe Funktion in erstem Parameter. Erfüllt für Fall feste Refresh-Reihenfolge“, dort: ” 1 − e−r F (λ∗ , f ∗ ) = , r = λ∗ /f ∗ . r Reicht: Konvexität in r , checke dazu d 2 1 − e−r ! ≥ 0. r (dr )2 (Rechnung + Taylor-Reihen-Abschätzung, hier nicht.) 220 Benutze: Lemma 3.30 (Jensensche Ungleichung): Für Zufallsvariable X ∈ R und konvexe Funktion f : (Konvergenz vorausgesetzt) E(f (X )) ≥ f (EX ). R → R gilt Beweis von Satz 3.29: Erster Schritt: Drücke F (C)uni und F (C)prop mit Hilfsfunktion F (λ∗ , f ∗ ) 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 221 Für die proportionale Zuordnung: λp /fp = λ/f für alle p. Damit: F (λp , fp ) = F (λ, f ); 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 p=1 p=1 Zeige noch (∗) = (∗∗): n 1X (∗) = F (λp , f ) n p=1 ≥ F n 1 X n p=1 λp , f (Jensen) = F (λ, f ) = (∗∗) (Definition von λ). 222 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). 223 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: • 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! 224 Beispiel, Version für Fortgeschrittene: Jetzt mit Poisson-Änderungsmodell: C = {1, 2}, Änderungsraten λ1 = 9, λ2 = 1. 1 1 (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 . F (C) = 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 Plotte g(fS , x) − g(fS , 0.5) für verschiedene fS . . . 225 Plots für Beispiel: 0.1 0.1 0.2 0.4 0.6 0.8 0.2 0.4 0.6 0.8 1 0 0 –0.1 –0.1 –0.2 –0.2 –0.3 f1 + f2 = 1 –0.3 –0.4 –0.4 0.1 0.2 0.4 0.6 0.8 1 0 0 –0.1 –0.1 –0.2 –0.2 –0.4 f1 + f2 = 3 0.1 0.2 0.4 0.6 0.8 –0.3 1 f1 + f2 = 10 –0.3 –0.4 1 f1 + f2 = 100 226 Beobachtungen: • 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. 227 Optimale Auffrischraten Für gegebene Änderungsraten λ1 , . . . , λn und fS : opt opt opt opt Kann f1 , . . . , fn mit f1 + · · · + fn = fS ausrechnen, 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 ∗ ) = µ. ∗ ∂λ 228 Optimale Lösung für Beispiel: 7 6 5 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 Experimente (Cho, Garcia-Molina 2000b, 2003b): • 270 Websites, je ca. 3000 Seiten, insges. 720.000 Seiten. • Besuch dieser Seiten einmal pro Tag → Verifikation Poisson-Prozess, Schätzung für Änderungsraten. 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 230 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. 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. 231 3.6 Duplikatfilterung 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? Anwendungen: Crawling, Spam-Entdeckung, Auffinden von Clustern. Problem bekannt aus der Bioinformatik. (Vergleiche neue Gensequenz mit Gendatenbank usw.) 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: 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. • Jaccard-Koeffizient: X := {x1 , . . . , xm }, Y := {y1 , . . . , yn }, X ∪ Y 6 = ∅: |X ∩ Y | J(X , Y ) := . |X ∪ Y | 233 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). |C| = 1010 , n = 103 Wörter → zu viel! Idee für Abhilfe: Vergleiche Hashwerte von Dokumenten. 234 Hashingbasierter Dokumentvergleich • 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 ). 235 Hashingbasierter Dokumentvergleich (Forts.) • 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? 236 3.6.1 Fingerabdruckmethode von Rabin Arbeit: Rabin (1981). Zunächst einfachere Variante. Aufgabe: Elemente aus großem“ Universum ” U = {0, . . . , n − 1} vergleichen. Vorgehensweise: • Wähle p aus ersten m Primzahlen zufällig gleichverteilt → Abbildung hp : {0, . . . , n − 1} → {0, . . . , p − 1}: 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 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 ). |S| • x 6 = y : Prp {hp (x) = hp (y )} ≤ · ⌈log n⌉ / m. 2 Also: • Keine False Negatives. • Für m = O (1/ε)|S|2 log n Wskt. für False Positives durch ε > 0 beschränkt. 238 Beweis: Fall x = y: Dann gilt für alle p: hp (x) = x mod p = y mod p = hp (y ). 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). 239 Der richtige“ Rabin-Algorithmus: ” Nachteil der vorhergehenden Methode: Division durch p. 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. Ergebnisse (ohne Beweis): • Analyse liefert Aussage analog zu Satz 3.31: Fehlerwskt. O |S|2 (log n)/m . • Hashwerte berechenbar mit 2(ℓ) Bitoperationen. 240 3.6.2 Min-Hashing Arbeit: Broder (1998). Überblick: • Spezielle Berechnung von Dokument-Features: Shingling (shingle: Dachziegel). • Jaccard-Koeffizient von Shingle-Mengen. • Shingle-Mengen → Hashwerte, die Approximation des Jaccard-Koeffizienten erlauben. 241 Shingling: Beispiel: spam spam spam lovely spam wonderful spam lovely spam spam spam spam spam spam lovely lovely spam spam wonderful wonderful spam spam lovely lovely spam Shingle-Menge: { spam spam, spam lovely, lovely spam, spam wonderful, wonderful spam}. 242 Shingling (Forts.): 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 . Im Spam-Beispiel k = 2. 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. 243 Ähnlichkeitsmaß: Definition 3.33: Für Dokumente A, B: r (A, B) := J(Sk (A), Sk (B)) = |Sk (A) ∩ Sk (B)| . |Sk (A) ∪ Sk (B)| Idealerweise dies berechnen. Allerdings Universum der Shingle-Mengen viel zu groß. • Erste Idee: Shingles → Rabin-Fingerabdrücke. • Allerdings: # Shingles ≈ Anzahl Wörter im Dokument. 244 Min-Hashing – idealer Algorithmus: 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: 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) = |A ∩ B| . |A ∪ B| 245 Beweis: Fixiere einstweilen π . 1. Behauptung: y = min(π(A)) ∧ y = min(π(B)) ⇔ y = min(π(A ∪ B)) ∧ x := π −1 (y ) ∈ A ∩ B. 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)). ⇒“: 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.) 246 2. Behauptung: Für beliebige S ⊆ {0, . . . , n − 1} und x ∈ S: 1 Prπ {min(π(S)) = π(x)} = . |S| 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)} = 1 (|S| − 1)! = . |S|! |S| (Genaue Abbildung der Elemente auf Positionen irrelevant, da Anzahlen im Zähler und Nenner bei Wskt.) (2. Beh.) 247 Gemäß 2. Behauptung ist π −1 min(π(A ∪ B)) über A ∪ B gleichverteilte Zufallsvariable. Gemäß 1. Behauptung gilt π −1 min(π(A ∪ B)) ∈ A ∩ B genau dann, wenn min(π(A)) = min(π(B)). 248 Algorithmus R ABIN -M IN -H ASHING: 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 . 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). 249 Verbesserung der Fehlerwahrscheinlichkeit: 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 . Super-Shingles: • Fasse je r /r ′ Hashwerte zu neuem Bitvektor zusammen. • Berechne für diese Bitvektoren wieder Rabin-Fingerabdrücke. → Skizzen aus r ′ Hashwerten. Typische Zahlenwerte (Henzinger 2006): Rabin-Fingerabdrücke mit 64 Bits, r = 84, r ′ = 6. → Skizzen aus 48 Bytes. 250 Min-Hashklassen Hoffnung auf gutes Verhalten bei Rabin-Min-Hashing evtl. gefährlich / unbefriedigend. 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.) Geht das überhaupt? 251 Definition 3.35: Klasse H von Permutationen U → U heißt Min-Hashklasse, wenn für alle S ⊆ U und alle x ∈ S gilt: Prπ∈H {min(π(S)) = π(x)} = 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ß. 252 Satz 3.36: Sei Klasse H Min-Hashklasse über Universum mit n Elementen. Dann ist |H | = 2(n) . Brauche also (n) Bits, um Hashfunktion zu spezifizieren. 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) . 1 . |S| 253 Aufgeweichte Min-Hash-Klassendefinition – ε-approximative Min-Hashklassen: Anforderung für Wsktn. in der Definition nur bis auf einen Fehler von ε/|S|. • Führt zu relativem Fehler von ε bei Ähnlichkeitswerten. • Rabin-Min-Hashing korrespondiert zu ε-approximativer 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). 254 3.6.3 Randomisierte Projektionen Arbeit: Charikar (2002). Hier: Dokument T durch Feature-Vektor v ∈ Rd beschreiben, z. B. TF-IDF-Gewichte für Schlüsselwörter. Zunächst wieder idealisierte Variante. . . 255 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; i = 1, . . . , n. hr (vi ) := [r ⊤ vi ≥ 0] = 0, r ⊤ vi < 0; 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 1 f (t) = √ 2π 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). 256 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 − . π Anwendungen: • Approximation des Kosinusmaßes für Vektorähnlichkeit. • Falls v , w ∈ {0, 1}d charakteristische Vektoren von Mengen: cos(αv ,w ) = |v ∩ w | hv , wi . =√ kv k2 kw k2 |v ||w | Alternative zum Jaccard-Koeffizienten für Mengenähnlichkeit. 257 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. Wollen: Prr {sgn(r ⊤ v ) = sgn(r ⊤ w )} = 1 − αv ,w /π . w r • Vektor r Normalenvektor 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 258 Hashing mit randomisierten Projektionen – praktische Variante 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. 259 Algorithmus S IM H ASH • Betrachte Dokumente mit Features i = 1, . . . , d. • Wähle für jedes Feature i Vektor Zi ∈ {−1, 1}k zufällig gleichverteilt. Berechnung des Hashwertes für Dokument T : • 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 sim(T1 , T2 ) := [h(T1 )i = h(T2 )i ]. k i=1 260 Variante des Verfahrens: Alles wie gehabt, jedoch: 1 • h(T ) := √ [s1 , . . . , sk ]⊤ ∈ Rk . k • sim′ (T1 , T2 ) := k X i=1 h(T1 )i · h(T2 )i . 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 )|, d. h., relativer Fehler bei Approximation des Kosinus ist ε. 261 Experimente (Henzinger 2006): Vergleich von Min-Hashing und SimHash. In beiden Fällen HTML-Dokumente vorher in Token-String zerlegt. • 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. • SimHash: Hashwerte k = 384 Bits, also auch 48 Bytes. Dokumente ähnlich, falls mindestens 372 Bits übereinstimmen. 262 Experimente (Forts.): • Auswertung von Google-Crawl mit 1,6 Mrd. Webseiten. • 20 – 30 % Seiten mit exakten Duplikaten vorab entfernt. • 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). Ergebnis (Min-Hashing / SimHash): • Beide Verfahren schlecht für Ähnlichkeiten von Seiten von derselben Website: 34 % / 37 %. • Bei verschiedenen Websites: 38 % / 50 %. 263 3.7 Sampling von Webseiten Problem grob: Zufällig gleichverteilte Auswahl einer Webseite • aus dem Web oder • aus dem Index einer Suchmaschine. Welches Web“ ist gemeint? ” • von Suchmaschinen indizierbares Web; • im Wesentlichen Komponenten MAX-SCC und OUT. Randbedingung: Keine internen Infos von Suchmaschinen-Betreibern. 264 Motivation: • 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; – ... 265 Wie macht man’s? 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?) 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 3.7.1 Anfragebasiertes Sampling Verfahren von Bharat und Broder (1998): 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). 267 Anwendung: Größe von Suchmaschinen-Indexen vergleichen 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. 268 Anwendung: Größe von Suchmaschinen-Indexen vergleichen (Forts.) Vergleich von Suchmaschinen-Indexen S1 , S2 : • Bestimme approximativ Pr{P ∈ S2 | P ∈ S1 }, Pr{P ∈ S1 | P ∈ S2 }. Overlap zwischen den Suchmaschinen. Dazu: – 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 } Pr{P ∈ S1 | P ∈ S2 } = . Pr{P ∈ S2 | P ∈ S1 } Pr{P ∈ S2 } Relative Größe der Indexe. 269 Experimente (Gulli und Signorini 2005): Einige Ergebnisse: • Relative Größen: Google / Yahoo!: Google / MSN: Google / Ask/Teoma: 1,22 1,41 1,65 • Overlap: – – – – Google indiziert durchschnittlich 68,2 % aller anderen; MSN 49,2 %; Ask/Teoma 43,5 %; und Yahoo! 59,1 %. 270 Probleme: • Ungleichgewicht durch Anfragen: 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). 271 Anfragepoolbasierter Sampler von Bar-Yossef u. a. (2006): 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. Wie geht das genau? 272 Rejection-Sampling 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. 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. 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). 273 Rejection-Sampling (Forts.) Wähle weiterhin Konstante C > 0, sodass: b(x) q C ≥ max . p (x) x∈U b Algorithmus R EJECTION S AMPLING : forever do 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 Erste Beobachtung: C sorgt dafür, dass α ≤ 1. 274 Rejection-Sampling (Forts.) Satz 3.38: Die Wahrscheinlichkeit für die Ausgabe x ∈ U im Algorithmus Rejection-Sampling ist q(x). Beweis: Dies ist die Wskt., dass x gemäß p generiert wird, unter der Bedingung, dass x akzeptiert wird, d. h. 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) = X = q(x). q(y ) y 275 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). 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) q0 q(x) q = p(x) · α := p(x) · Cb p (x) Cp0 p(x) x∈U x∈U X q0 q(x) q0 = = . Cp0 Cp0 x∈U Der Erwartungswert der Anzahl Schleifendurchläufe ist damit (geometrische Verteilung) gerade 1/α = Cp0 /q0 . 276 Anfragepoolbasierter Sampler (Forts.): • Pool P von Suchanfragen (wie bei Bharat & Broder). • Sei D Menge von Dokumenten, die für irgendeine 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. Kann nur approximativ realisiert werden, mit einigen weiteren Tricks (u. A. Anfragen zufällig erzeugen mit Rejection-Sampling). Hier nicht. 277 Algorithmus A NFRAGEPOOLBASIERTER S AMPLER: 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 Bemerkung: Gewicht W ohne Insider-Kenntnisse über Suchmaschine, sogar ganz ohne diese, berechenbar. 278 Analyse: 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. 279 3.7.2 Random-Walk-basiertes Sampling PageRank-Sampling (Henzinger u. a. 2000): • Grundidee: Simuliere Random-Surfer-Prozess: – 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? 280 PageRank-Sampling (Forts.): Zufällige Neustarts: Abhilfe: Starte bei zufällig gleichverteiltem Knoten aus bisherigem Random Walk neu. PageRank-Approximation: • Approximiere PR(p) durch Besuchsrate VRℓ (p) := # Besuche von Seite p in Random Walk . Länge ℓ des Random Walks ℓ→∞ E VRℓ (p) → PR(p), aber evtl. schlecht für kleine ℓ. • Wie bei Crawlsteuerung PageRank auf bereits erforschtem Teil des Webgraphen berechnen. • Google-Toolbar-Rank benutzen. 281 WebWalker (Bar-Yossef u. a. 2000) Idee: Konvergenztheorie für Markoffketten: • Graph ungerichtet, nicht bipartit, zusammenhängend ⇒ Konvergenz gegen von Startverteilung unabhängige stationäre Verteilung π . Nicht bipartit ⇒ aperiodisch (Übungsaufgabe). Behauptung dann aus Perron-Frobenius-Theorem. • Graph zudem d-regulär, d. h. jeder Knoten mit genau d Nachbarn: Dann ist π Gleichverteilung. Beweis: Dies ist Eigenvektor zum Eigenwert 1. Aber: Webgraph gerichtet und alles andere als regulär!? 282 Jetzt die wirklich gute Idee: Verwaltete gepatchte Version des Webgraphen, die Anforderungen erfüllt und benutze diese für Steuerung des Random Walks. • Gerichtet → ungerichtet: 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 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. 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 ). 284 Kommentare: • Schleifen müssen nicht wirklich durchlaufen werden: Falls Grad d ′ , d. h. d − d ′ Schleifen: Pr{ℓ Schleifendurchläufe} = (1 − d ′ /d)ℓ · (d ′ /d). Offline simulieren oder direkt Erwartungswert einsetzen. • Zufällige Auswahl der eingehenden Kanten: Verhindere zu starken Einfluss von Suchmaschinen. Konkrete Werte in Experimenten: r = 0, 3, 10. • Nach Erstbesuch von Knoten v wird Nachbarschaft fixiert. 285 Analyse: Beachte: Zwei Arten von Zufallsentscheidungen: • Zufällige Fixierung der Nachbarschaft für Knoten. • Zufällige Auswahl der jeweils begangenen Kante. Annahmen im Folgenden: • Realer Webgraph statisch; • vorkommende Graphen für Walk nicht bipartit. 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 )). 286 Beweis: • Nach endlich vielen Schritten werden keine 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 ). 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. 287 Konvergenzgeschwindigkeit: • 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 . Mögliche Quellen für Ungleichgewicht bei Verteilung: • Bevorzugung von Knoten mit hohem Grad. • Bevorzugung von Knoten im Index von benutzten Suchmaschinen. • Bevorzugung der Knoten in der Nachbarschaft des Startknotens. 288 Random-Walk-Sampler (Bar-Yossef u. a. 2006) Zufällige Stichprobe aus Suchmaschinen-Index (nicht Web). 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. 289 Experimente (Bar-Yossef u. a. 2006): Auswertung über APIs von Google, MSN und Yahoo! → vermutlich nicht mehr ganz aktuelle Indexe. • Anfragepoolbasierter Sampler mit sehr wenig 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: – MSN: 46 % Yahoo!: 45 % MSN: Yahoo!: 55 % – 51 % 44 % 22 % – 290 4. Datenstromalgorithmen Ü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 291 4.1 Einleitung Einführendes Beispiel: Internet-Traffic-Management IP IP IP IP IP IP IP IP IP IP Aufgaben: • Entdeckung von Engpässen (→ Netzplanung); • Entdecken von Anomalien (→ Sicherheit). 292 4.1 Einleitung Einführendes Beispiel: Internet-Traffic-Management IP IP IP IP IP IP IP IP IP IP Technische Einschränkungen: • Datenstrom zu umfangreich für komplette Speicherung. • Hohe Anzahl Datenpakte pro Zeiteinheit. • Daten nur einmal in nicht beeinflussbarer Reihenfolge. 292 Beispiele für Anwendungsbereiche: • Telefonnetze: Verbindungsstatistiken (CDRs, call detail records), ähnlich zu Internet-Beispiel; • Weblogs: Zugriffstatistiken auf Webserver → Kundenverhalten, Angriffe; • Webcrawls: Zugriff von Indexer auf Crawl, statistische Auswertungen; • Sensorüberwachung: Wetterdaten, Teilchenbeschleuniger am CERN. • Auswertung von Börsentickern: Beispiel Traderbot. 293 Anwendungen im Bereich Datenbanken: Atypisch, auf den ersten Blick keine Datenströme. Aber verwandte Problemstellungen und Datenstromstechniken auch hier einsetzbar. • Klassisch: Sampling, Histogramme bereits bei 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. Später konkreter. 294 Typische Probleme: Siehe Liste am Anfang: Probleme aus dem Bereich Statistik / Datenaggregation. Eigenschaften: • Oft einfach im klasssischen Algorithmikszenario, 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. 295 4.1.1 Das Modell 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. Konvention: Datenstromalgorithmus“ → k = 1. ” 296 Zu den verwendeten Registermaschinen: • 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). 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. 297 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. Bemerkung: Typischerweise Zeit pro Datenelement polynomiell in Größe der internen Datenstruktur, dann Platzschranke → Zeitschranke. 298 Für viele Probleme: • Nur approximative Ergebnisse möglich und • randomisierte Algorithmen benötigt. Definition 4.2: Algorithmus berechnet y ∈ R mit Approximationsfehler ε und Misserfolgswahrscheinlichkeit δ, falls für (zufällige) Algorithmusausgabe Y gilt: 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. ” 299 High-Level-Sichtweise: Eingabe: x1 , x2 , . . . , xn ∈ U, U endliches Universum. Verwalte Datenstruktur während des Lesens des Eingabstromes. Unterstütze Operationen: • I NITIALIZE: Datenstruktur initialisieren, unabhängig von Eingabe. • U PDATE(x), x ∈ U: Verarbeite frisch gelesenes Datenstromelement x, aktualisiere Datenstruktur. • Q UERY: Ausgabe für seit I NITIALIZE / letztem Q UERY gelesenen Teil des Datenstroms. Oft: Datenstruktur Skizze (Sketch). 300 4.1.2 Beispiel: Anzahl Elemente im Datenstrom Problem A NZAHL E LEMENTE IM DATENSTROM: Eingabe: Datenstrom mit Länge aus {0, . . . , n}. Länge vorab unbekannt. Aufgabe: Berechne n. Triviale Lösung: Zähler → Platz und Zeit pro Element O(log n). Kann man das noch toppen? Jedenfalls nicht deterministisch & exakt. . . 301 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)⌉. 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! 302 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. Nicht so toll: • Erwarteter Speicherplatz um Faktor p besser, aber √ • mit positiver Wskt. relativer Fehler (1/ np) (hier ohne Beweis). 303 Ein echter Klassiker löst das Problem: Approximate Counting (Morris 1978). Idee: Speichere Logarithmus des Zählerstandes. 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!? Abhilfe: • Mit Wskt. p(r ), passend gewählt: Registerwert inkrementieren und c(r + 1) darstellen. • Sonst r beibehalten und c(r ) darstellen. 304 Wie p(r ) passend wählen? 1 }| z z c(r ) = 2r − 1 { c(r + 1) − c(r ) }| c(r ) + 1 = 2r { c(r + 1) = 2r +1 − 1 Wähle p(r ) = 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 Algorithmus A PPROXIMATE C OUNTING: Initialisierung: r := 0. 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 Faire Münze r -mal werfen; Ausgabe 1“, wenn r -mal Kopf“; ” ” sonst Ausgabe 0“. Zeit O(r ), Platz O(log r ). ” 306 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). Also (ε, δ)-Apprximation für Problem A NZAHL E LEMENTE. 307 Beweis: Erwartungswert, Varianz, Tschebbyscheff“. ” Zeige, dass für repräsentierten Zählerstand Cn gilt: ECn = n und V (Cn ) = (1/2)n(n − 1). Tschebbyscheff-Ungleichung allgemein für Zufallsvariable X , λ > 0. V (X ) Pr |X − EX | > λ ≤ . λ2 Anwendung hier: 1 1 (1/2)n(n − 1) 1 − = , Pr |Cn − n| > εn ≤ n ε 2 n2 2ε2 wie gewünscht. 308 Erwartungswert: Es ist C0 = 0. Für n > 0: n X E(Cn ) = E(Cn |Rn−1 = r ) · Pr{Rn−1 = r }, r =0 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 E(Cn ) = (c(r )+1)·Pr{Rn−1 = r } = E(Cn−1 )+1 = n. r =0 309 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 = r =0 n X = p(r )c(r + 1)2 + (1 − p(r ))c(r )2 · Pr{Rn−1 = r } = r =0 n X 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 ) · Pr{Rn−1 = r } c(r )2 · Pr{Rn−1 = r }. 310 Also folgt E Cn2 −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 ) 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. Einsetzen in obige Gleichung: n X 2 2 E Cn − E Cn−1 = (3c(r ) + 1) · Pr{Rn−1 = r } r =0 = 3E(Cn−1 ) + 1 = 3(n − 1) + 1 = 3n − 2. 311 Es folgt damit: n X 2 E Cn2 = E Cn2 − E C02 = E Ci2 − E Ci−1 i=1 = n X i=1 (3i − 2) = 3 3 1 n(n + 1) − 2n = n2 − n. 2 2 2 Varianz insgesamt: 1 1 3 V (Cn ) = E Cn2 − (ECn )2 = n2 − n − n2 = n(n − 1). 2 2 2 Also auch Varianz wie behauptet. 312 Ressourcen: Erinnerung: ECn = n und Cn = c(Rn ) = 2Rn − 1. Benötigter Speicherplatz: Anzahl Bits für Registerwert, also ⌈log(Rn + 1)⌉ = log(log Cn + 1) + 1 . Erwartungswert dafür? 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) ≤ E(loglog Cn ) + 2 ≤ loglog(E(Cn )) + 2 (Jensen) = O(loglog n). Zeit pro Element linear in Platz, außerdem (Vorüberlegung) Münzwürfe kein Problem. 313 Ergebnis noch nicht wirklich toll, nichttriviale √ Fehlerschranke nur für relativen Fehler ε > 1/ 2 ≈ 0, 71 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 α 1 − , Pr |Cn − n| > εn ≤ 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 . 314 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)). Für A NZAHL E LEMENTE damit Platz (loglog n). 315 Beweisskizze: Zunächst: r (n) → r . Erster Schritt: Zeige, dass (log r ) Eingaben existieren, für die Algo. verschiedene Ausgaben produziert. 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: (1 + ε)y ⇔ ln(1 + ε) . | {z } ≈ε −ε ≤ ln a − ln y = (ln 2)(log a − log y ) ≤ ε. (∗) 316 Hatten: Algorithmus-Ausgabe a für gewünschte Ausgabe y , dann −ε ≤ ln a − ln y = (ln 2)(log a − log y ) ≤ ε. (∗) 2j , Betrachte Zahlen yj = 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. 317 Zweiter Schritt: Zeige, dass Algorithmus logarithmisch viel Speicher in Anzahl der zu unterscheidenden Ausgabewerte benötigt. 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: Pr{A(S(yj )) = yj } ≥ 1 − δ. 318 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. 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. 319 Yaos Minimax-Prinzip: Betrachte Fehlermatrix: Mögliche Eingaben: Mögliche Zufallsbitstrings: z x F (x, z) F (x, y ) = 1, falls falsche Ausgabe auf Eingabe x bei Zufallsbits z; F (x, y ) = 0, sonst. • 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 4.2 Algorithmische Basistechniken 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 modulo irreduziblem Polynom vom Grad r (gut für Multiplikation). 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 . 321 Bemerkung: Mit schnellstem bekannten Multiplizierer für Fn Zeit O(n log n loglog n). 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. 322 4.2.2 Universelles Hashing 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|). Ü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. 323 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. Abhilfe: Hashfunktion aus kleinerer Klasse von Funktionen, im Folgenden Hashklasse, die wichtigste Eigenschaften der Gleichverteilung über alle Funktionen rettet“. ” Hash-Analysen → Vermeidung von Kollisionen entscheidend, folgende Eigenschaft ausreichend. . . 324 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: Prh∈H {h(x) = h(x ′ )} = |{ h | h(x) = h(x ′ )}| 1 ≤ . |H | m 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. Kann zeigen: Erwartete Listenlänge wieder O(1 + n/m), aber jetzt Erwartungswert über Hashfunktionsauswahl. Keine Worstcase-Schlüsselmengen mehr! 325 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 } = 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. 326 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. Beweisidee: Summiere Wsktn. über alle möglichen Ergänzungen der Projektionen auf. 327 Beispiel – Polynomielle Körperklasse: 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 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. 328 Polynomielle Körperklasse (Forts.): Ressourcenverbrauch: Betrachte HFn ,k . • Anzahl Bits für Spezifikation von Hashfunktion: k Zahlen aus Fn → O(k log n) Bits. • Auswertung: Benutze Hornerschema: 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 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. 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 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 331 Konstruktion: 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. 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.) 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 Allgemeinere Formulierung für spätere Anwendungen: Satz 4.12: Sei N = 2r ≥ n, irreduzibles Polynom über F2 vom Grad r gegeben. Es gibt Funktionen f1 , . . . , fn : Fkr 2 → F2 , sodass 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. 333 4.2.3 Probability-Amplification Bei randomisiertem Algorithmus für Enscheidungsproblem mit Zeit T , Fehlerwahrscheinlichkeit δ > 0: k unabhängige Wiederholungen → Fehlerwahrscheinlichkeit δ ck , c > 0 Konstante; Zeit k · T . 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? 334 Relativer Fehler: 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 Beweis durch einfache Rechnung. Kombination mit Tschebyscheff: k Kopien erlauben → √ Senkung des relativen Fehlers um 1/ k (nicht so toll). 335 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. 336 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. 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 Beweisskizze: 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 . 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 4.3 Sampling-Algorithmen Vorgehensweise in der Statistik: Gesamtheit von Werten durch kleine, möglichst repräsentative Stichprobe darstellen. (Vgl. z. B. Hochrechnungen für Wahlergebnisse.) 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. 339 Sampling-Algorithmen (informelle Definition): • Algorithmus hat Zugriff auf Eingabe a = (a1 , . . . , an ) nur über Blackbox (Orakel): Stellt Anfrage nach Index i ∈ {1, . . . , n}, bekommt ai . Modul Q UERY (a, i). • Nicht-adaptiv: – Bestimme Samplegröße s und Sample-Indizes i1 , . . . , is vorab, ohne Blackbox-Befragung. – Dann Q UERY (a, i1 ), . . . , Q UERY (a, is ). • 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. Am Ende immer Berechnung der Ausgabe abhängig von Stichprobe ai1 , . . . , ais . 340 Im Allgemeinen Wahl von s und Wahl der Indizes i1 , . . . , is mit randomisiertem Algorithmus. Beachte: 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. Für formalere Definition siehe Skript. Für untere Schranken oft günstig: Sichtweise als Entscheidungsbaum. 341 Sampling-Algorithmen versus Datenstromalgorithmen: • 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 Reservoir-Sampling (Vitter 1985): 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 Aufnehmen mit Wskt. s−1 / s = s/(t + 1), verwerfen sonst. • Bei Aufnahme: Zufällig gleichverteiltes altes Element aus Stichprobe verdrängen. 343 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. Ausgabe: r [1], . . . , r [s]. 344 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). 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: Pr{ Ersatz } = s/(t + 1). 345 Sei I ⊆ {1, . . . , t + 1}, |I| = s. 1. Fall, t + 1 6 ∈ I: Pr{I = Xt+1 } = Pr{I = Xt } · Pr{¬ Ersatz } 1 s 1 t +1−s = t · 1 − = = t · t +1 t +1 s s 2. Fall, t + 1 ∈ I: 1 t+1 s . 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+1 . = t s t + 1 t +1 1≤i≤t, i6∈I s Rest der Behauptung klar. s s 346 Algorithmus R ESERVOIR -S AMPLING 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; Ausgabe: r [1], . . . , r [s]. Korrektheit folgt direkt aus Analyse für Reservoir-Sampling ohne Zurücklegen“ für den Fall s = 1. ” 347 4.4 Häufigkeitsmomente 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 Fk (a) := fi (a)k , k -tes Häufigkeitsmoment von a. i=1 Konvention dabei: 00 = 0. Außerdem: F∞ (a) := max fi (a). 1≤i≤m O. B. d. A. im Folgenden U = {1, . . . , m}. Lasse außerdem a weg, falls klar aus Kontext. 348 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. Minimale und maximale Werte: • Minimaler Wert: – Fall n ≥ m: f1 = · · · = fm = n/m, dann Fk = m · (n/m)k = nk /mk−1 – Fall n < m: f1 = · · · = fn = 1, Rest = 0, dann Fk = n · 1 = nk /nk−1 . Also allgemein: Fk ≥ nk /ℓk−1 , ℓ := min{m, n}. • Fk ≤ nk . Maximaler Wert für fi0 = n, fj = 0 für j 6 = i0 . 349 Motivation allgemein: Einfachste Variante von Norm / Abstandsproblemen (später). • 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. Restliche k ? Größtenteils der Vollständigkeit halber (will derart elementares Problem restlos verstehen). 350 Algorithmen für Häufigkeitsmomente: 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 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. . . ) 351 Was man tatsächlich erreichen kann: Alles für Datenstromalgorithmen, die (ε, δ)-Approximation für Konstanten ε, δ berechnen. 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: Speicherplatz beweisbar asymptotisch optimal. 352 Datenbank-Motivation: 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. 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. Formal: σf (B)=y (R ⋊ ⋉R.A=S.A S). 353 Datenbank-Motivation (Forts.): Anfrageoptimierung (query optimization): Ausführungsreihenfolge von Operatoren möglichst effizient. Joins teuer, quadratischer Worstcase → möglichst vorher Datenreduktion. Wichtiges Hilfsmittel: Kostenabschätzung für Operationen, insbesondere Selektivitätsabschätzung. Traditionell: • Einsatz von Sampling, Histogrammen (grobe Werteverteilung für Attribut in Relation). • Heuristische Schätzregeln, basierend auf Gleichverteilungsannahmen. 354 Datenbank-Motivation (Forts.): Beispiele für F0 -Anwendung: • 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). • 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. Falls F0 (S.B) klein, dann zuerst Selektion, sonst Join. 355 Datenbank-Motivation (Forts.): Beispiel für F2 -Anwendung: • F2 (R.A) = |R ⋊ ⋉R.A=R.A R|, Self-Join von R. • Abschätzung beliebiger Joins: 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 + yi2 |R ⋊ ⋉R.A=S.A S| = xi yi ≤ 2 |R ⋊ ⋉R.A=S.A S| ≤ i=1 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. 356 4.4.1 Sampling-Algorithmen für F0 Seit langem in der Statistik untersucht, z. B.: Stichprobe von Insekten aus dem Regenwald ziehen, Schätzung für Gesamtanzahl der Spezies? 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ß. ” Beobachtung: D ≤ F0 . 357 Fehler von Schätzer D: • Universum sei wieder U = {1, . . . , m}. fi =: p i : n • Wahrscheinlichkeit, dass i ∈ U in Stichprobe der Größe s: • Wahrscheinlichkeit für Element i ∈ U: 1 − (1 − p i )s . Sei d := F0 und o. B. d. A. 1, . . . , d ∈ U verschiedene Werte in der Eingabe. Dann: d d X 1X (1 − p i )s . ED = 1 − (1 − p i )s = d · 1 − d i=1 i=1 Will: Summe möglichst klein. 358 Fehler von Schätzer D (Forts.): d 1X Hatten: F0 ≥ E(D) = d · 1 − (1 − p i )s . d i=1 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 ED = d · 1 − 1 − = d · 1 − e−s/d (1 ± o(1)) , d für d → ∞ und s = O(d). Wähle s ≈ m oder besser s ≈ m log m, dann okay. (Vgl. Coupon-Collectors-Theorem“, Vorlesung ” Randomisierte Algorithmen“.) ” 359 Fehler von Schätzer D (Forts.): d 1X s Hatten: F0 ≥ ED = d · 1 − (1 − p i ) . d i=1 2. Fall: Worstcase, minimaler Wert für ED. Z. B. für p1 = · · · = pd−1 = 1/n, pd = 1 − (d − 1)/n. Dann: 1 s 1 d − 1 s 1 − 1− ED = d · 1 − 1 − d n d n −s/n ≤d · 1−e (1 + o(1)) , für n → ∞ und s = O(n). Konvergiert für s = o(n) gegen 0. Fazit: Algorithmus benötigt Stichprobengröße (n). : – ( 360 Bemerkung: Es gibt einen Schätzer DCCMNfür F0 , der basierend auf Stichproben der Größe O ε2 n folgende Art von Fehlergarantie erreicht: ε ≤ E(DCCMN )/F0 ≤ 1/ε, wobei 0 < ε ≤ 1. (Charikar u. a. 2000) Bezüglich der Stichprobengröße asymptotisch optimal: 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 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. Betrachte Verhalten auf zwei Mengen von Eingaben: • X = {(1, . . . , 1)}; | {z n } • 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 Etwas genauer: Sei Y Ausgabe-Zufallsvariable des Sampling-Algorithmus. Falls Fehlergarantie erfüllt: z ∈ X ⇒ ε ≤ Y (z) ≤ 1/ε, z ∈ Y ⇒ ε ≤ Y (z)/m ≤ 1/ε. 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. 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 . 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. ” 364 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 Fk = f ik , i=1 f i = absolute Häufigkeit von i, i = 1, . . . , m. Was können wir aus Stichprobe darüber herausfinden? 365 Idee für Schätzer: k -fache Kollisionen in Stichprobe. 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. Für 1 ≤ i ≤ m, 1 ≤ j ≤ s: Pr{X j = i} = p i := f i /n. Damit folgt für J mit |J| = k : m XY X fi k 1 Pr{CJ = 1} = Pr{X j = i} = = k · Fk . n n i∈U j∈J i=1 Sei Ck Gesamtanzahl k -Kollisionen in Stichprobe. Dann: X s 1 ECJ = · k · Fk . ECk = k n J⊆{1,...,s}, |J|=k 366 Damit ist k ek := n · Ck C s k erwartungstreuer Schätzer für Fk . Längliche Rechnung liefert auch hinreichend gute Abschätzung für Varianz, dann Tschebyscheff. Ergebnis: 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 Sublinear, aber nicht polylogarithmisch in m und n. 367 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 . 368 4.4.3 Sketching-Algorithmus für F2 Sketching-Algorithmus: Datenstromalgorithmus, der komplette Eingabe liest, zur Unterscheidung von Sampling-Algorithmen (nur informeller Begriff). Arbeit: Alon, Mathias, Szegedy (1996). 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. 369 F2 -Algorithmus idealisiert: Eingabedatenstrom über Universum U = {1, . . . , m}. Absolute Häufigkeiten f1 , . . . , fm , f := [f1 , . . . , fm ]⊤ . • Sei Z = [Z1 , . . . , Zm ]⊤ ∈ {−1, 1}m zufällig gleichverteilt gewählt. Dann berechne randomisierte Projektion m X f 7 → hf , Z i = f i · Z i =: X . i=1 • Ausgabe Y := X 2 . Das ist alles! Tatsächlich ist EY = F2 . Später: Relativer Fehler höchstens 300 % mit Wahrscheinlichkeit mindestens 7/9 > 1/2. Probability-Amplification → (ε, δ)-Approximation. 370 Bevor wir das beweisen: Effiziente Realisierung des F2 -Algorithmus: • Wie kommen wir an die absoluten Häufigkeiten? 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 . • Dann brauchen wir aber einen Zufallsvektor Z ∈ {−1, 1}m und wahlfreien Zugriff darauf. Antwort: Problem haben wir schon in Abschnitt 4.2 gelöst. Hier reicht nämlich (Analyse) Z mit 4-fach unabhängigen Komponenten. 371 Effiziente Realisierung des F2 -Algorithmus (Forts.): 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 : • Wähle S ∈ {0, 1}ℓ , ℓ = ⌈log m⌉ zufällig gleichverteilt und irreduzibles Polynom über F2 vom Grad ℓ. Kann beides mit O(log m) Bits abspeichern. • Es gibt Funktionen h1 , . . . , hm : {0, 1}ℓ → {0, 1}, sodass 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 Algorithmus R AND P ROJECT für F2 : 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. Update für a ∈ U: x := x + ha (S). Ausgabe: y = x 2. 373 Satz 4.21: 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) . Beweis: Ressourcen: Klar mit Vorbetrachtungen. 374 Erwartungswert: EY = E X = m X i=1 = F2 . 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 375 Varianz: V (Y ) = E(Y 2 ) − (EY )2 , also E Y 2 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. Damit: m X 4 E Y2 = E fiZi i=1 = = m X i=1 m X i=1 f i4 ·E Z i4 f i4 + 6 X 4 + f i2 f j2 · E Z i2 Z 2j 2 X 1≤i<j≤m f i2 f j2 . 1≤i<j≤m 376 Hatten: E Y Außerdem: 2 (EY ) Damit: = 2 F22 = m X f i4 + 6 = m X f i4 + 2 i=1 i=1 X 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 Tschebyscheff liefert: 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 . Pr{|Y − F2 | ≥ ε · F2 } ≤ 377 4.4.4 Sketching-Algorithmen für Fk Hier k ∈ R, k ≥ 1 (k = 1 der Vollständigkeit halber). 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 . 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 . Fein, ein erwartungstreuer Schätzer! Leider: Z. B. für (f1 , . . . , fm ) = (n, 0, . . . , 0): Mit Wskt. 1 − 1/m relativer Fehler 100 %. : – ( 378 Zweiter Versuch: Gleichverteilte Wahl des gezählten Elementes trotz evtl. ungleichmäßig verteilten Häufigkeiten schlecht. Will: Proportional zu Häufigkeit wählen. 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. 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 . 379 Dritter und letzter Versuch: 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 1 E rXk | X = j-te Position von Wert i “ · ” n 1 k f + (f1 − 1)k + · · · + 2k + 1k n 1k f2 + (f2 − 1)k + · · · + 2k + 1k ··· k k fm + (fm − 1) + · · · + 2k + 1k + + + . Extrahiere Teilsumme Fk durch Teleskopsummierung. . . 380 Benutze dazu Schätzer Y := n rXk − (rX − 1)k . Dann: EY = = = = 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. 381 Algorithmus S AMPLE C OUNT für Fk : 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. 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) . 382 Beweis: 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 : 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 383 Fakt: Für beliebige x, y ∈ R mit x ≤ y und k ∈ R mit k ≥ 1: y k − x k ≤ (y − x)ky k−1 . Hatten: E Y 2 m fi 2 n2 X X = j k − (j − 1)k . n 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 kn f i2k−1 i=1 = kn · F2k−1 . 384 Noch ein Fakt: Für x ∈ Rd , r ≥ s ≥ 1: kxkr ≤ kxks . Hatten: E Y 2 = kn · F2k−1 . Sei ℓ := min{m, n}. Dann: Fakt (2k−1)/k F2k−1 ≤ Fk 2−1/k = Fk nk −1/k ℓ1−1/k ≤ Fk2 · k−1 . = Fk2 · n ℓ Insgesamt: V (Y ) ≤ E Y 2 ≤ kn · F2k−1 ≤ k ℓ1−1/k · Fk2 . Tschebyscheff: k ℓ1−1/k . ε2 Behauptung mit Probability-Amplification. Pr{|Y − Fk | ≥ εFk } ≤ 385 4.4.5 Sketching-Algorithmen für F0 Hatten bereits gesehen: Sampling-Algorithmen benötigten Stichprobengröße (n) für Approximation von F0 mit konstanten Fehlerparametern. Hier: Lösung mit Platz O(log m). Idee: Ordnungsstatistiken. 386 Ordnungsstatistiken: Zufallsvariablen X1 , . . . , Xd ∈ {1, . . . , t}. Für geeignete Permutation π ∈ Sd : Xπ(1) ≤ · · · ≤ Xπ(d) . 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 . Prominenteste Beispiele: • X(1) = min(X1 , . . . , Xd ); • X(d) = max(X1 , . . . , Xd ); • X((d+1)/2) = med(X1 , . . . , Xd ) für ungerades d. 387 Ordnungsstatistiken (Forts.): Satz 4.23: Für X1 , . . . , Xd ∈ [0, t] gemäß kontinuierlicher Gleichverteilung und unabhängig gilt: it . EX(i) = d +1 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. 388 Leider funktioniert Idee nicht direkt: it it − 1 = d. EX(i) = 6⇒ E d +1 X(i) Nicht nur das: E(1/X(1) ) existiert nicht einmal. Diskreten Fall ansehen, neue Analyse. Minimum von Hashwerten 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 Implementierung: Nimm 2-fach unabhängige Hashklasse H und h ∈ H zufällig. Z. B. polynomielle Körperklasse: • Analyse: Brauche t ≥ m, wähle t := 2ℓ mit ℓ := ⌈log m⌉, benutze Körper Fℓ2 . • Hashwerte aus {0, 1}ℓ abbilden auf {1, . . . , 2ℓ }. • Platz O(log m), Zeit für Berechnung von Hashwert O(log m · polyloglog m). 390 Algorithmus M INIMUM VON H ASHWERTEN : Intialisierung: Wähle Hashfunktion h : U → {1, . . . , t} zufällig aus 2-fach universeller Hashklasse H , t ≥ m. Setze xmin := ∞. Update für a ∈ U: xmin := min(xmin , h(a)). Ausgabe: y = t/xmin. 391 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 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). 392 Relativer Fehler bisher viel zu groß. 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). Algorithmus grob: • Berechne X(r ) , r justierbar. • Benutze als Schätzer Y := rt/X(r ) . 393 Vorbereitungen: • 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). • 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). 394 Algorithmus K LEINSTE H ASHWERTE: Initialisierung: Wähle eine Hashfunktion h ∈ H zufällig; initialisiere T als leeren binären Suchbaum für Werte aus {1, . . . , t}. 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. Ausgabe: y = rt/M AX (T ), falls N UM E LEMS (T ) = r , sonst N UM E LEMS (T ). 395 Lemma 4.25: Sei 0 < ε ≤ 1 und r ≥ 6/ε 2 . 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 . 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 Beweis von Satz 4.25: 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 ≤ ≤ (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 Nebenrechnung: Für ε ≤ 1 und r ≥ 6/ε 2 gilt: 1 1 1 (1) + ≤ ; 1+ε r 1 + ε/2 1 1 1 − ≥ . (2) 1−ε r 1 − ε/2 398 X(r) < rt/(1 + ε)d =: ℓ: Nur der Fall, wenn mindestens r Hashwerte kleiner als ℓ. 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 399 Tschebyscheff liefert: 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 400 X(r) > rt/(1 − ε)d =: u: Nur der Fall, wenn weniger als r Hashwerte obere Schranke u einhalten. 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(1 − ε/2) 4 = ≤ 2 . 2 ε r ε r 401 4.5 Metrische Einbettungen Problem: Dimensionsreduktion • Gegeben Punkte v1 , . . . , vn ∈ Rd ( hochdimensionaler Raum“). ” • Ziel: Abbilden auf e v1 , . . . , e v n ∈ Rk , k ≪ d ( niedrigdimensionaler Raum“), ” sodass Abstände nicht zu sehr verzerrt. Passende Abbildung: Metrische Einbettung. Abstände: Für Vektor x = (x1 , . . . , xd ) ∈ Rd : P 1/p d p • Lp -Normen, p > 0: . kxkp := i=1 |xi | • Maximumsnorm, L∞ : • Hammingnorm, L0 : kxk∞ := max1≤i≤d |xi |. kxk0 := |{i | xi 6 = 0}|. 402 Anwendungen: Dimensionsreduktion: • Clustering; • algorithmisches Lernen; • Approximate Nearest-Neighbor Search (ANN); • Datenstromalgorithmen, z. B. für Normen und Abstände (hier). Metrische Einbettungen allgemein: Approximationsalgorithmen für Graphprobleme. 403 4.5.1 Stabile Verteilungen 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 ∼ cX + d, wobei Z ∼ Z ′ bedeutet, dass Z und Z ′ identisch verteilt. 404 Für uns entscheidende Eigenschaft: 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: a1 X1 + · · · + ad Xd ∼ kakp · X , P 1/p d p . wobei kakp = |a | i=1 i Nenne dann Verteilung p-stabil. Analoge allgemeinere Aussage (mit komplizierterer rechter Seite) für gewichtete Summen beliebiger stabiler Verteilungen. 405 Beispiele für stabile Verteilungen: • Normalverteilung: 2-stabil. fN (x) = √ 1 2π σ ·e − 12 x−µ 2 σ 0.4 0.3 0.2 0.1 , x ∈ R. • Cauchyverteilung: 1-stabil. fC (x) = fL (x) = x > δ. γ 1 · 2π (x − δ)3/2 exp 2 4 0.4 0.3 0.2 0.1 1 γ , x ∈ R. · 2 π γ + (x − δ)2 • Lévyverteilung: 1/2-stabil. 0 –4 0 –4 2 4 0.4 −γ 2(x − δ) , 0.2 0 1 2 3 4 Diese und x 7 → fL (−x) einzige stabile Verteilungen mit bekannter geschlossener Form. 406 Eigenschaften stabiler Verteilungen: • Für p ∈ (0, 2) gilt: p-stabile Verteilung ist approximativ Potenzgesetzverteilung mit Exponent 1 + p: Dichtefunktion sei f , dann existiert c > 0 geeignet, sodass f (x)/(cx −(1+p) ) → 1 für x → ∞. Damit Skaleninvarianz und heavy tails“. ” • Für 1 < p < 2 existiert Erwartungswert, aber Varianz nicht. • Für p ≤ 1 existiert weder Erwartungswert, noch Varianz. (Ohne Beweise.) 407 Simulation von stabilen Verteilungen: Für Normalverteilung: Box-Muller-Verfahren. Allgemeines Verfahren: Sei F invertierbare Verteilungsfunktion. • Wähle U ∈ [0, 1] zufällig gleichverteilt. • Ausgabe F −1 (U). Korrektheit klar: Pr{F −1 (U) ≤ x} = Pr{U ≤ F (x)} = F (x). 408 Simulation von stabilen Verteilungen (Forts.): Beispiel: Normalisierte Cauchyverteilung 1 1 , · π 1 + x2 Verteilungsfunktion F (x) = arctan(x)/π + 1/2. Dichte f (x) = Damit: F −1 (y ) = tan(π(y − 1/2)), y ∈ (0, 1). Für Implementierung Approximation mit endlicher Genauigkeit (Standard-Numerik-Tricks, Taylorreihen. . . ). 1 0.8 0.6 0.4 0.2 –4 –2 0 2 4 409 Simulation von stabilen Verteilungen (Forts.): Allgemein gilt: 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. Für Cauchyverteilung bewiesen, ansonsten hier nicht. Für p = 2 Formel wie beim Box-Muller-Verfahren. 410 4.5.2 Randomisierte Projektionen Wichtiges positives Ergebnis für L2 -Norm: 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. . . 411 Realisierung durch randomisierte Projektionen: • Benutze k × d-Matrix X mit zufälligen Einträgen. Einträge unabhängig voneinander. • Einbettung: 1 v 7 → ve := √ Xv . k (Projektion auf den k -dimensionalen Unterraum in Rn , der von den Zeilen von X aufgespannt wird.) Wie Einträge von X wählen? 412 Wahl der Matrix X für randomisierte Projektion: • Klassisch: Einträge gemäß N(0, 1)-Verteilung. (Vgl. SimHash-Verfahren.) • Diskret & effizient: Einträge gleichverteilt aus {−1, 1}. (Vgl. praktisches SimHash-Verfahren, F2 -Algorithmus.) Kann zeigen: 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 . 413 Strategie für Beweis (Fall k = 1): 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 . Für Gleichverteilung auf {−1, 1} dasselbe, Beweis siehe Analyse F2 -Algorithmus R AND P ROJECT. Zeige nun weiter, dass sogar starke Konzentration um Erwartungswert gilt (exponentielle Verbesserung des Fehlers in spendierter Anzahl Dimensionen). Bemerkung: In schwächeren Form bei F2 -Algorithmus gesehen. Für Ergebnis hier bessere Analyse wie bei Beweis der Chernoff-Schranken erforderlich. 414 Randomisierte Projektionen für beliebige p-Normen, p ∈ (0, 2): Nur für Spezialfall k = 1. Wieder zufälliger Vektor X ∈ Rd , Komponenten unabhängig gemäß p-stabiler Verteilung D. Gemäß Satz 4.28: hX , v i ∼ kv kp · D. Problem für Anwendung bei Dimensionsreduktion: • Eventuell ist Erwartungswert oder Varianz unendlich. Abhilfe später: Erwartungswert → Median. • Kann für p = 1, L1 -Norm, zeigen: Jede approximative Einbettung mit konstantem Fehler benötigt k = n(1) Dimensionen. 415 4.6 Abstandsmaße 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. 416 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 . 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 . 417 Allgemeines Normproblem (Forts.): 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 )). • 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). • Problem wo alle Updates nichtnegativ. • Problem wo alle Updates +1: Häufigkeitsmomente. 418 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 X 1/k ∗ ∗ ∗ k Lk (a) := k(f1 (a), . . . , fm (a))kk = , |fi | i=1 falls k > 0 und für k = 0: L0 (a) := 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 ∪ {∞}: Lk (a, b) := k(f1∗ (a), . . . , fm∗ (a)) − (f1∗ (b), . . . , fm∗ (b))kk . 419 4.6.1 Sketching-Algorithmus für L2 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. i=1 j : a j =i Hier: • Datenstrom a = (a1 , . . . , an ) mit a i = (b i , d), bi ∈ {1, . . . , m}, d ∈ {−w , . . . , w }. m m X X X ∗ e • Y := fi X i = d · Xi. i=1 • Ausgabe q i=1 j : b j =i e 2. Y 420 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. Algorithmus R AND P ROJECT für L2 : 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. Update für a = (b, d) ∈ U = {1, . . . , m} × {−w , . . . , w }: x := x + d · hb (S). Ausgabe: √ y = x 2. 421 Satz 4.33: 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 )) . Beweis: Ressourcen: Wie für F2 , nur jetzt x ∈ {−nw , . . . , nw }. Damit Term O(log(nw )) in Platz / Zeit pro Element. 422 Fehleranalyse: 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 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 . Behauptung mit Probability-Amplification wie immer. 423 4.6.2 Sketching-Algorithmus für L1 Arbeiten: Indyk (2000, 2006). Idee: Sei v ∈ Rd und X = (X1 , . . . , Xd ) ∈ Rd zufällig, Komponenten unabhängige Kopien von cauchyverteilter Zufallsvariable C. Cauchyverteilung ist 1-stabil. Gemäß Satz 4.28: hX , v i ∼ kv k1 · C. Problem: EC = ∞. Daher Erwartungswert → Median. 424 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). Beobachtung 4.35: Sei a ∈ R+ , X Zufallsvariable, dann gilt med(a · X ) = a · med(X ). 425 Beziehung Median von Verteilungen ↔ Median von Stichproben gemäß dieser Verteilung: 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 − δ. Konzentrationsergebnis analog zu Ergebnissen für Erwartungswert (Chernoff für diskreten Fall, Gesetz der großen Zahlen für kontinuierlichen Fall). 426 Im Folgenden: Cauchyverteilung“ → Dichte x 7 → 1/π · 1/ 1 + x 2 . ” 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 (t)dt = F (x) = π −∞ Da tan(π/4) = 1 ist, folgt F (1) = 1/2 und damit auch med(|C|) = 1. 427 Algorithmus C AUCHY M EDIAN I DEAL für L1 : • Generiere unabhängige, cauchyverteilte Zufallsvariablen Xi,j , für i = 1, . . . , m und j = 1, . . . , r . • Für j ∈ {1, . . . , r } berechne m X Yj := fi∗ Xi,j . i=1 • Ausgabe: Z := med(|Y1 |, . . . , |Yr |). 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. 428 Beweis: 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. Gemäß Satz 4.28: Yj ∼ k(f1∗ , . . . , fm∗ )k1 · C = L1 · C. Beobachtung 4.35, Lemma 4.37 liefern: med(|Yj |) = med(L1 · |C|) = L1 · med(|C|) = L1 . 429 Für Anwendung von Satz 4.36 untersuche Steigung der Inversen der Verteilungsfunktion F von |C|. Es ist F (x) = 2 · arctan(x), F −1 (y ) = tan((π/2)y ). π Damit: 2 π ′ π F −1 (y ) = ·y . 1 + tan 2 2 Taylorreihen-Abschätzung liefert: Für γ = 0,05 gilt ′ y ∈ [1/2 − γ , 1/2 + γ ] ⇒ F −1 (y ) ≤ 4 =: d. 430 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 |): Pr{|Z − L1 | ≤ ε} ≥ 1 − δ. Diskreter Wertebereich für Vektoren ⇒ L1 ≥ 1, damit auch Schranke für relativen Fehler. 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. Indyk (2006) skizziert auch Erweiterung auf beliebige p-Normen mit p ∈ (0, 2] mit Hilfe p-stabiler Verteilungen. 431 4.6.3 Sketching-Algorithmus für L0 Erinnerung: Hammingnorm, L0 : m X L0 (x1 , . . . , xm ) = [xi 6 = 0]. i=1 Verallgemeinerung von F0 / Anzahl verschiedene Elemente. Arbeit: Cormode, Datar, Indyk und Muthukrishnan (2002). Idee: Approximation mit p-Norm, p sehr klein. Lemma 4.39: Sei x = (x1 , . . . , xm ) ∈ {−w , . . . , w }m , 0 < ε ≤ 1 und p = log(1 + ε)/ log w . Dann gilt p kxk0 ≤ kxkp ≤ (1 + ε)kxk0 . 432 Beweis: Da x1 , . . . , xm ∈ Z: m m X X p |xi |p = kxkp . [xi 6 = 0] ≤ i=1 Andererseits: m X 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 : w p = 2p log w = 1 + ε. 433 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ε. Korrektheitsbeweis in Originalarbeit unvollständig (Analyse für Lp -Algorithmus fehlt). In Experimenten aber scheinbar vernünftiges Verhalten. 434 4.6.4 Anwendung im Datenbankszenario 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). Problem effizient lösbar für k ∈ [0, 2] im Datenstromszenario mit Algorithmen aus Abschnitten 4.6.1 – 4.6.3. 435 4.6.5 Abschätzung der Join-Größe Gegeben: Relationen R1 , R2 mit gemeinsamem Attribut A. Ziel: Abschätzung von |R1 ⋊ ⋉R1 .A=R2 .A R2 |. 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 . 436 Datenbankrelationen → Skizzen. 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 S(R) := fi Xi . i=1 Für Probability-Amplification betrachte Sr (R), r Kopien für unabhängige Sätze von X1 , . . . , Xm . 437 Lemma 4.40: E(S(R1 )S(R2 )) = |R1 ⋊ ⋉ R2 | und V (S(R1 )S(R2 )) ≤ 2 · F2 (R1 ) · F2 (R2 ). Erwartungswert: Siehe Übungsaufgabe 6.3 zum (alternativen) SimHash-Verfahren. Varianz hier nicht (Standardrechnung ähnlich wie bei F2 -Algorithmus). 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 Beweis: Lemma und Tschebbyscheff liefern: Pr S(R1 )S(R2 ) − |R1 ⋊ ⋉ R2 | ≤ ε|R1 ⋊ ⋉ R2 | 2F2 (R1 )F2 (R2 ) ε2 |R1 ⋊ ⋉ R2 | 2 2B2 ≤ . ε2 B12 Probability-Amplification → Rest. ≤ 439 Algorithmische Ergebnisse für Normprobleme: Alles für Datenstromalgorithmen, die (ε, δ)-Approximation für Konstanten ε, δ berechnen. Ressourcen für Datenstromalgorithmus: L2 : S = O(log m + log n), T = O(log m polylog m + log n) (Abschnitt 4.6.1) Lk , k ∈ [0, 2] 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}. Lk , k > 2: 440 4.7 Top-k -Listen Problem: Gegeben Datenstrom, berechne Top-k -Liste: Häufigste k Werte zusammen mit ihren abs. Häufigkeiten. Motivation: • Käuferverhalten in E-Commerce-Anwendung. • Top-k -Liste von Webseiten gemäß Ranking. • Zusammenfassung von Datenbank-Relation (größte Balken in Histogramm). • Internet-Traffic-Management: Anomalien / Engpässe. Ähnliches Problem: Häufigste Elemente Finde alle Daten mit Attributwert oberhalb von Schwellwert. Namen: Heavy Hitters, Hot Items, Iceberg Queries. . . 441 Top-1-Liste ist (im Wesentlichen) das Problem F∞ . Bei Universumsgröße m Platz (m) notwendig. → Betrachte Approximationen / Problem-Relaxationen. 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. 442 Im Folgenden effienzenter Datenstromalgorithmus unter zusätzlichen Annahmen über Verteilung der Daten. 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. 443 4.7.1 Schätzung aller Häufigkeiten Datenstrom a = (a1 , . . . , an ) mit Werten aus U = {1, . . . , m}, absolute Häufigkeiten f1 ≥ · · · ≥ fm . Idee: Benutze 2-fach unabhängige ZVs X1 , . . . , Xm ∈ {−1, 1}. Berechne wie in F2 -Algorithmus: m n X X Y := fjXj = Xa j . j=1 j=1 Es gilt: E(YX i ) = E X m j=1 fjXjXi = m X j=1 f j E(X j X i ) = f i . Super, damit alle absoluten Häufigkeiten und darauf basierende Probleme. . . 444 Natürlich nicht: E (YX i )2 = E Y 2 = F2 , V (YX i ) = F2 − f i2 . Fehlerschranke mit Tschebbyscheff zu schlecht. 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“. ” 445 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 Yz := [H(a j ) = z]Xa j = fjXj, j=1 j∈H −1 (z) Schätzer für f i : X i YH(i) . 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 Neuer Schätzer tatsächlich auch mit hoher Wahrscheinlichkeit gut – für geeignete Verteilungen: 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. 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. 447 Erinnerung: Schätzer ist YH(i) X i , es gilt E(YH(i) X i ) = f i und X X Yh(i) X i = fjXjXi = fi + fjXjXi. j∈h−1 (h(i)) j∈h−1 (h(i)),j6=i 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 f j2 . j∈h−1 (z),j>k 2 j∈h−1 (z),j>k f j . 448 1. Große Varianz unwahrscheinlich: P Hatten: v >k (h) := j∈h−1 (z),j>k f j2 . Frage: Wie groß kann das für zufälliges h werden? 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 >k 2 2 E v (H) = E([H(j) = z]) · f j = f j /b j=k+1 j=k+1 = F2>k /b. Sei G ROSSE VARIANZ := [v >k (H) > 8F2>k /b]. Markoff-Ungleichung liefert: Pr{GROSSE VARIANZ } ≤ 1 . 8 449 2. Hashen von großen Häufigkeitswerten auf z = h(i) unwahrscheinlich: Sei KOLLISION := [H −1 (z) ∩ {1, . . . , k } 6 = ∅]. Mit b ≥ 8k gemäß Voraussetzung folgt: k 1 Pr{KOLLISION } ≤ ≤ . b 8 3. Große Abweichungen des Schätzers von f i unwahrscheinlich: Sei GROSSE A BWEICHUNG das Ereignis, dass |YH(i) X i − f i |2 > 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 450 Insgesamt gilt: 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 ≤ 8 8F2>k /b = 8 F2>k /b. 3 . 8 Fehlschlagswskt. 3/8 → Fehlschlagswskt. δ wie immer mit (Median-)Probability-Amplification, 2(log(1/δ)) Kopien. 451 4.7.2 Sketching-Algorithmus für Top-k -(ε, δ)-Approximation 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 . 452 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 − δ.) 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 Behauptung: Im Baum zum Schluss kein Wert i ≥ k + 1 mit Häufigkeit kleiner als (1 − ε)fk . • 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 . • e f j ≥ f j − (ε/2)fk ≥ (1 − ε/2)fk . Widerspruch. Analog: Alle Werte mit absoluter Häufigkeit größer als (1 + ε)fk zum Schluss im Suchbaum. 454 Insgesamt: 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. Speicherplatz im Wesentlichen dominiert von F2>k /fk2 (genauere Analyse Übungsaufgabe). Wann liefert das gute Ergebnisse? Verteilung fk+1 /n, . . . , fm /n nicht zu nahe an Gleichverteilung, z. B. für Potenzgesetzverteilungen. 455 4.8 Histogramme Problem in allgemeiner Form: Approximation von Funktion durch abschnittsweise konstante Funktion, mit wenigen Abschnitten. Hier: Funktion gegeben durch f1 , . . . , fn ∈ {−w , . . . , w }. Häufig: f1 , . . . , fn absolute Häufigkeiten. Motivation: Anfrageoptimierung, approximative Anfragebearbeitung, allgemein Komprimierung von Zeitreihen, . . . 456 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. Datenbank-Gemeinde: V-optimale Histogramme“. ” Auch andere Normen (z. B. k · k1 ) und viele Problemvarianten. 457 Konkretere Umformulierung: 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 fj c i = AVGi := |Ii | X j∈Ii |f j − c i |2 . j∈Ii wählen (dann VARi /|Ii | = Varianz in Intervall Ii ). Damit verbleibt Wahl der Intervalle I1 , . . . , Ik . 458 Offline-Problem: Funktionswerte f1 , . . . , fn vorab bekannt. Berechne Fehler des optimalen Histogramms und zugehörige Intervalleinteilung I1 , . . . , Ik . Idee: Dynamische Programmierung. Sei OPT[p, i] := Fehler des optimalen Histogramms für f1 , . . . , f i mit p Intervallen. VAR[a . . . b] := AVG[a . . . b] := b X i=a (f i − AVG[a . . . b])2 , wobei b X 1 fi. b−a+1 i=a 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] . 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 . 460 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.) 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 Problem für sortierte Datenströme: Werte sortiert gemäß Definitionsbereich der Funktion, Eingabedatenstrom ist a = (f1 , . . . , fn ). (Komplexer Algorithmus für unsortiertes Problem, benutzt u. a. auch hier vorgestellte Ideen.) Berechne ε-approximative Lösung, d. h. OPT[k , n] ≤ Wert der Lösung ≤ (1 + ε)OPT[k , n]. Hier: Deterministischer Algorithmus dafür. Arbeit: Guha, Koudas, Shim (2001). 462 Bei genügend Speicherplatz Anpassung des alten Algorithmus einfach: Sei OPT-Tabelle mit optimalen Werten für f1 , . . . , fn bekannt. 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). 463 Idee: Nur noch logarithmisch viele Zwischenpunkte x in OPT[k , n] = min 1≤x≤n−1 OPT[k − 1, x] + VAR[x + 1 . . . n] . Zwischenpunkte d1 , . . . , dℓ so, dass Abweichung vom Optimum nicht zu groß. Wichtige Beobachtung: Proposition 4.46: Für 1 ≤ a ≤ x ≤ b ≤ n gilt: • VAR[x, n] ≥ VAR[b, n]; • OPT[p, a] ≤ OPT[p, x]. 464 Sei OPT∗ [k , n] Optimum auf vergröbertem Definitionsbereich mit Zwischenpunkten d1 = 1, d2 , . . . , dℓ−1 , dℓ = n. Will Zwischenpunkte mit OPT∗ [k , di+1 ] ≤ (1 + δ) · OPT∗ [k , di ] für kleines δ > 0, falls di+1 > di + 1 (Wahl von δ später.) Dazu Einteilung d1 , . . . , dℓ und OPT∗ gleichzeitig mit Datenstromalgorithmus berechnen. 465 Algorithmus – Datenstrukturen: 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 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] . (p−1) (Beachte: Bei der Berechnung von VAR[d j +1 . . . n] werden alle fd (p−1) +1 , fd (p−1) +2 , . . . , fn berücksichtigt!) j j 466 Update-Operation des Algorithmus: 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 : 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: 2 (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 Lemma 4.47: OPT∗ [k , n] ≤ (1 + δ)k−1 OPT[k , n]. Beweis: Induktion über k . Trivial für k = 1, da dann optimaler Wert berechnet wird. Sei Behauptung für k − 1 anstelle von k gezeigt und sei OPT[k , n] = OPT[k − 1, x] + VAR[x + 1 . . . n]. (k) (k) Falls x = di für irgendeinen Zwischenpunkt di , dann gilt OPT∗ [k , n] = OPT[k , n] und fertig. Optimale Zerlegungsstelle x liege daher echt in irgendeinem (k) Vergröberungs-Intervall, a := di (k) < x < di+1 =: b. 468 Es gilt: OPT∗ [k , n] ≤ OPT∗ [k − 1, b] + VAR[b + 1 . . . n] Zerlegung ≤ (1 + δ)OPT∗ [k − 1, a] + VAR[b + 1 . . . n] I.V. ≤ (1 + δ)k−1 OPT[k − 1, a] + VAR[b + 1 . . . n] Monotonie ≤ (1 + δ)k−1 OPT[k − 1, x] + VAR[x + 1 . . . n] ≤ (1 + δ)k−1 OPT[k , n]. Wahl von δ : Will (1 + δ)k ≤ 1 + ε: Wähle δ so, dass log(1 + δ) = ε/k ≤ log(1 + ε)/k . Lemma ⇒ relativer Fehler höchstens ε. 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. (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 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 ) . 471 Beweis: 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 )). 472 4.9 Untere Schranken Genauer: Untere Schranken für benötigten Speicherplatz im Datenstrommodell. 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. 473 4.9.1 Kommunikationskomplexität Ziel: Verteilte Berechnung von f : {0, 1}m × {0, 1}n → {0, 1}. Alice x ∈ {0, 1}m Bob y ∈ {0, 1}n 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. 474 Praktisches, elementares Beispiel: • Alice und Bob haben jeweils lokale Kopie einer umfangreichen Datenbank (z. B. Web-Index). • Aufgabe: Teste, ob Datenbanken konsistent. 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). Triviale Lösung (für jedes Problem): Alice schickt Bob ihre komplette Eingabe (oder umgekehrt). Damit n Bits Kommunikation für EQn ausreichend. Bessere Lösung? 475 Satz 4.49: Jedes deterministische Kommunikationsprotokol für EQn benötigt n Bits Kommunikation. Beweis: Annahme, dass weniger als n Bits reichen. ⇒ Weniger als 2n verschiedene Bitstrings, die als Kommunikation auftreten können. ⇒ Es gibt x1 , x2 ∈ {0, 1}n , x1 6 = x2 : Kommunikation für Eingaben (x1 , x1 ) und (x2 , x2 ) gleich. ⇒ Dieselbe Kommunikation auch für (x1 , x2 ) und (x2 , x1 ). ⇒ Der letzte Spieler kann z. B. (x1 , x1 ) nicht von (x1 , x2 ) unterscheiden, Fehler! 476 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). Hilft das was? Rabin-Fingerprinting (z. B.) → Randomisiertes Protokoll mit beschränktem Fehler für EQn mit O(log n) Bits Kommunikation. 477 Weitere Beispielfunktionen: • DISJn , Mengendisjunktheitstest, Disjointness-Funktion: 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 . 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. 478 Mehrspieler-Kommunikationsprotokolle • 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. 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 Schranke: Sei γ > 0. Jedes randomisierte t-Spieler-Einwegprotokoll mit beschränktem Fehler für DISJt,n benötigt (n/t 1+γ ) Bits Kommunikation. 479 4.9.2 Untere Schranken für Datenstromalgorithmen 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. 480 Beweis: a1 a2 a3 aℓ aℓ+1aℓ+2 ··· Lese-Zugriffe auf Eingabe an ··· 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. 481 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. Allerdings: Bisher nur untere Schranken für Entscheidungsprobleme und exakte Berechnung. 482 Technik für Approximationsprobleme: 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 ) Datenstrom ay y ∈ {0, 1}n−ℓ Es gelte: f (x, y ) = 0 ⇒ g(a) ≤ L; f (x, y ) = 1 ⇒ g(a) ≥ H. 483 Technik für Approximationsprobleme (Forts.): Es gelte: f (x, y ) = 0 ⇒ g(a) ≤ L; f (x, y ) = 1 ⇒ g(a) ≥ H. Algorithmus A berechne ε-Approximation von g. Dann: f (x, y ) = 0 ⇒ A(a) ≤ (1 + ε)L; f (x, y ) = 1 ⇒ A(a) ≥ (1 − ε)H. 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 4.9.3 Untere Schranke für F∞ 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 ). 485 Beweis: Idee: Codiere DISJm in F∞ hinein. 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 . 486 4.9.4 Untere Schranke für Fk , k > 2 Einfache Reduktion von DISJm funktioniert nicht, da bestenfalls (H − L)/(L + H) = 2(1/m) (→ Skript). 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. Dann: tk − m H −L = k . L+H t +m 487 Wähle t so, dass t k = (1 + 3ε)m, dann ε<1/3 3εm H −L tk − m 3εm > = k = ε. = L+H 2m + 3εm 3m t +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 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 . 489 4.9.5 Untere Schranke für Häufigkeitsmomente mit D ELETEs Betrachte Variante des Problems aus Abschnitt 4.6.4 für Fk -Berechnung auf Datenbank-Relationen: 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. 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 ). 490 Beweis: Codiere DISJm in das Problem hinein. Mengen x, y ⊆ {1, . . . , m} gegeben. 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 ). Sei v = (v1 , . . . , vm ) ∈ {−n, . . . , n}m durch Update-Operationen resultierender Vektor. 491 Für i = 1, . . . , m: xi : yi : vi : 0 0 0 ⇒ vi = [xi ∧ yi = 1]. 0 1 0 1 0 1 1 1 0 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. 492 5. Peer-to-Peer-Netze Übersicht: 5.1 5.2 5.3 5.4 5.5 Einleitung Consistent Hashing Chord CAN (Content Addressable Network) Kademlia (KAD) 493 5.1 Einleitung Zwei grundlegende Prinzipien zur Organisation des Zugriffs auf verteilte Ressourcen: • 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. 494 P2P-Netze – Anwendungen: 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) Weitere (legalere) Anwendungen: • Ausfallsichere verteilte Speicherung von Daten. • Verteilung von großen Datenmengen an viele Nutzer (z. B. Linux-Distributionen, TV-Live-Streams). 495 P2P-Technik: Üblicherweise realisiert als Overlay-Netz auf der Anwendungsschicht, basierend auf TCP oder UDP (also analog z. B. zu WWW/HTTP). 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? Skalierbarkeit: Ressourcenaufwand für einzelne Knoten darf nur moderat (sublinear) in Anzahl Knoten wachsen. 496 Einteilung und Historie: Nach Netztopologie: • Zentral (Index-Server): Napster (1999-2001, in urspr. Form eingestellt). • Dezentral: Gnutella (2000). • Hybridformen: Gnutella 0.6 und Gnutella2 (2002), eDonkey (2000–2006, Einstellung offizielle Website), FastTrack (2001, z. B. KaZaA-Client). Aktuelle Themen: Verschlüsselung, Anonymisierung, P2P-Streaming. 497 Einteilung und Historie (Forts.): Nach Strategie für Netzverwaltung: • Unstrukturiert: 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). Auch in aktuellen P2P-Clients, z. B. eMule, BitTorrent. 498 5.1.1 Napster • Client meldet angebotene 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. IndexServer Clients 499 Vorteil: Suche nach Musikstück erfordert nur jeweils konstante Anzahl Botschaften zu/von Server (konstant bezüglich Gesamtanzahl Knoten im Netz). 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. Skalierbarkeit für zentralen Server nicht gegeben. 500 5.1.2 Gnutella 0.4: 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. 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. Für Suche nach aktiven Peers oder Daten: Flutung des Netzes / Broadcast. 501 Suche nach Daten: • Deskriptoren haben eindeutige ID (Hashcode), 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. Routing von Q UERY-Deskriptor: 502 Suche nach Daten: • Deskriptoren haben eindeutige ID (Hashcode), 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. Routing von Q UERY-Deskriptor: ttl = 3, hops = 1 502 Suche nach Daten: • Deskriptoren haben eindeutige ID (Hashcode), 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. Routing von Q UERY-Deskriptor: ttl = 2, Treffer! hops = 2 ttl = 2, hops = 2 502 Suche nach Daten: • Deskriptoren haben eindeutige ID (Hashcode), 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. Routing von Q UERY-Deskriptor: ttl = 1, hops = 3 ttl = 1, hops = 3 ttl = 1, hops = 3 502 Suche nach Daten: • Deskriptoren haben eindeutige ID (Hashcode), 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. Routing von Q UERY H ITS-Deskriptor: ttl = 2, hops = 1 502 Suche nach Daten: • Deskriptoren haben eindeutige ID (Hashcode), 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. Routing von Q UERY H ITS-Deskriptor: ttl = 1, hops = 2 502 Vorteile: Dezentral, einfache An-/Abmeldung von Knoten. Nachteile: • Für zu kleine TTL-Werte nur Teile des Netzes erreichbar. (Original-Client: maximal 4 Verbindungen, TTL = 5.) • 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. 503 5.1.3 Gnutella 0.6, FastTrack: Hybridform, semi-dezentral. Hierarchische Einteilung in Ultrapeers und Blätter. • Blätter: Nur verbunden mit Ultrapeers. • Ultrapeers: – 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). Ultrapeers Blätter Scheinbar bessere Skalierbarkeit, aber Suche nach wie vor nicht besonders effizient. 504 5.2 Consistent Hashing Arbeit: Karger u. a. (1997). Motivation: Hot Spots“ im Internet: Server, die durch populäre ” ” Downloads“ überlastet werden (z. B. Fußball-WM, neue Linux-Distribution etcpp.) Abhilfe: Web-Caches, verteilte Kopien der Seiten. Zuordnung von Seiten auf Caches? Idee: Lastverteilung durch Hashing. 505 Beispiel: Buckets Hashfunktion x 7 → x mod 4 3 2 1 0 2 3 4 9 10 12 17 19 Daten 506 Beispiel: Hashfunktion x 7 → x mod 5 Buckets 4 3 2 1 0 2 3 4 9 10 12 17 19 Daten 506 Beispiel: Hashfunktion x 7 → x mod 5 Buckets 4 3 2 1 0 2 3 4 9 10 12 17 19 Daten Beobachtung: Bei Update fast alle Objekte auf neue Buckets gehasht. : – ( 506 Grundlegende Operationen: • 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. 507 Entwurfsziele / Komplexitätsmaße: 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). Außerdem: – Ausfallsicherheit; – Behandlung mehrerer J OINs / L EAVEs zur gleichen Zeit. 508 Consistent Hashing – Prinzip: 0 1 Hashe Knoten und Daten unabhängig auf [0, 1]. Daten werden an nächstgelegenem“ Knoten gespeichert. ” Nach J OIN-Operation: 0 1 509 Consistent Hashing – Prinzip (Forts.): • J OIN: Aufteilung des Gebietes, für das Knoten zuständig. • L EAVE : Verschmilz Gebiet mit passenden von übrig 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. Abstandsmaße: • Chord: Abstand auf Kreis der Länge 1. • CAN: Abstand auf Einheitstorus in Rd . • Kademlia: Binärwert von XOR(ID1 , ID2 ). 510 5.3 Chord Arbeit: Stoica u. a. (2001). Konstruktion: Zwei unabhängige Hashfunktionen: • Knoten: hV : {1, . . . , n} → {0, . . . , 2m − 1}; • Schlüssel: hK : {1, . . . , k } → {0, . . . , 2m − 1}. Hashwerte im Folgenden IDs. IDs auf Kreis angeordnet, rechne modulo 2m . 511 Beispiel: n = 3, k = 4, m = 3. Schlüssel: 5, 6 Knoten 0 7 Schlüssel 1 6 2 Schlüssel: 1 3 5 4 Schlüssel: 3 Speichere Schlüssel in im Uhrzeigersinn nächsten Knoten. 512 Im Folgenden der Einfachheit halber Analysen für vollständig zufällige Hashfunktionen. Dann: X1 := hV (1), . . . , Xn := hV (n) und Y1 := hK (1), . . . , Yk := hK (k ) sind unabhängige, in {0, . . . , 2m − 1} gleichverteilte ZVs. 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). Annahme: X1 , . . . , Xn paarweise verschieden (m. h. W. erfüllt, falls m hinreichend groß). 513 Abstand: Miss Entfernung von Start zu Ziel auf Kreis im Uhrzeigersinn. Beispiel: Für {0, . . . , 7}: Von 1 nach 7: Abstand 6. Von 7 nach 1: Abstand 2. (Keine Metrik, da nicht symmetrisch.) 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 . 514 Knotenintervalle: Für Knoten v = 1, . . . , n: I(v ) := (Xu , Xv ] = {Xu + 1, Xu + 2, . . . , Xv }, u Vorgänger von v . (Rechne dabei modulo 2m .) 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 Lastverteilung (Balance): Alle Knoten bekommen ungefähr gleich viele“ Schlüssel ab. ” Ideal wären k /n pro Knoten, zeige O(log n · k /n). Lemma 5.2: Sei c > 0. Mit Wahrscheinlichkeit mindestens 1 − n−c gilt: Für alle Knoten v = 1, . . . , n ist 4 2m ′ , c′ = (c + 1). |I(v )| ≤ c log n n log e 516 Beweis: Sei Xv = x fest und ℓ = c ′ log n 2m . n Falls |I(v )| > ℓ, dann enthält insbesondere das Intervall 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−EZ /2 ≤e − 21 · log4 e (c+1) log n /2 = n−(c+1) . Die Behauptung folgt nun mit der Vereinigungsschranke. 517 Folgerung 5.3: 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. 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.) 518 Operationen: Datenstruktur: Für jeden aktiven Knoten v : v .succ = Nachfolger von v , v .pred = Vorgänger von v . L OOKUP(v, x), v irgendein aktiver Knoten, x Schlüssel: 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; # Botschaften: O(n). 519 J OIN(x), x aktiver Knoten: • Bestimme ID Xv für neuen Knoten 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: u.succ := v ; w .pred := v . • Verlagere alle Schlüssel in (Xu , Xv ], die w hat, nach v . Verlagerung von O(log n · k /n) Schlüsseln. u w Xu Xw 520 J OIN(x), x aktiver Knoten: • Bestimme ID Xv für neuen Knoten 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: u.succ := v ; w .pred := v . • Verlagere alle Schlüssel in (Xu , Xv ], die w hat, nach v . Verlagerung von O(log n · k /n) Schlüsseln. u v w Xu Xv Xw 520 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. Fazit: Balance okay, aber L OOKUP nicht schnell genug. Abhilfe: Knoten brauchen mehr lokale Routing-Info. → Zwischenknoten in exponentiell wachsenden Abständen. 521 Finger-Informationen: 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 v 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 522 L OOKUP mit Finger-Infos: Neue Datenstruktur für Knoten v : Finger-Tabelle, v .succ = v .finger[0], v .pred. F IND S UCCESSOR(s, y): 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. 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 → ∞). Beweis: Notation wie auf der letzten Folie. Sei s 6 = t (sonst fertig). Ersetzen von s durch f := s.finger[i], zum Ziel t nächster Finger von s, halbiert mindestens die Entfernung: f = s.finger[i] s s + 2i t 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 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: Pr{Z ≥ c ′ log n} ≤ Pr{Z − EZ ≥ c ′ log n − 1} ≤ n−c . Also auf dem letzten Wegabschnitt“ noch O(log n) Knoten, ” diese schlimmstenfalls trivial in Einzelschritten überbrücken. Damit auch insgesamt O(log n) Schritte und ebensoviele Anfragen an Knoten. 525 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). 526 J OIN mit Finger-Infos: 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). 527 I NIT F INGER TABLE(x, v), x aktiver Knoten, v neu: 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: Falls Xv + 2i+1 ≤ v .finger[i], dann v .finger[i + 1] = v .finger[i]. 528 U PDATE F INGER TABLES(v ), v neuer Knoten: 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. 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. 529 Im Folgenden: Nur O log2 n andere Finger-Tabellen müssen angepasst werden. → # Botschaften O log2 n . (Letzteres ohne Beweis.) 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. Beweis: Zeige, dass m. h. W. die Finger j = 0, 1, . . . , i := m − (c + 1) log n alle gleich sind. Es gilt: v .finger[0] = · · · = v .finger[i] ⇔ Intervall [Xv + 20 , Xv + 2i enthält keine Knoten-ID. 530 Erinnerung: i = m − (c + 1) log n. Z := Anzahl Knoten-IDs in Intervall [Xv + 20 , Xv + 2i , dann: EZ ≤ n · 2i = n−c . m 2 Markoff: Pr{Z ≥ 1} ≤ Pr{Z ≥ nc · EZ } ≤ n−c . Also hat Knoten mit Wskt. mindestens 1 − n−c höchstens (c + 1) log n Finger. 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: 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 Xu + 2i ∈ (Xp , Xv ]. Behauptung 1: Pr Xu + 2i ∈ (Xp , Xv ] ≤ (5 log n)/n. Behauptung 2: Mit Wskt. mindestens 1 − n−c 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. Damit insgesamt die Behauptung. 532 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 ]. Sei |y − x| ≥ ℓ := 4 log 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 ≥ 2 log n · 4 log n EZ = 2m n und Pr{x ∈ (Xp , y ]} = Pr{Z = 0} ≤ e−EZ /2 ≤ 1 . n 533 Es gilt: Pr{x ∈ (Xp , Xv ]} = = ≤ X y : y−x≥ℓ X y 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 ≤ 1 · Pr{x ∈ (Xp , y ]} {z } 2m | ≤1 5 log n . n (Behauptung 1) 534 Beweis von Behauptung 2: Zu zeigen: Mit Wskt. mindestens 1 − n−c gibt es nur O(log n) Knoten, die v als i-ten Finger haben. 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) 535 L EAVE analog zu J OIN (nur keine Initialisierung der Finger-Tabelle). Insgesamt: Anzahl Schlüssel pro Knoten: Lokaler Platz für Routing-Infos: J OIN/L EAVE: L OOKUP: 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. 536 Was noch fehlt (siehe Originalarbeit): • Gleichzeitig mehrere J OINs/L EAVEs: 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. Für beide letzte Fällen können Ausfälle von benachbarten Knoten wegen Hashing als unabhängig angesehen werden. 537 5.4 CAN (Content Addressable Network) 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. Für Implementierung endliche Approximation, hier nicht. 538 J OIN am Beispiel (d = 2): 1 0 0 1 539 J OIN am Beispiel (d = 2): 1 1 0 0 1 539 J OIN am Beispiel (d = 2): 1 1 0 0 1 539 J OIN am Beispiel (d = 2): 1 1 0 0 2 1 539 J OIN am Beispiel (d = 2): 1 1 0 0 2 1 539 J OIN am Beispiel (d = 2): 1 3 2 1 0 0 1 539 J OIN am Beispiel (d = 2): 1 3 2 1 0 0 1 539 J OIN am Beispiel (d = 2): 1 3 2 1 0 0 4 1 539 Balance: Knoten ist für alle Schlüsseln in Hyperrechteck in [0, 1]d zuständig, genannt Zone. 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. (Durchschnittliche Rechteckgröße 1/n, Rechteck der Größe c ′ (log n)/n wird nur mit kleiner Wskt. weiter unterteilt.) Datenstruktur für Knoten: • Eigene ID und Zone. • IDs und Zonen der 2d Nachbarn. Insgesamt O(d). 540 L OOKUP : Suche nach einer beliebigen ID: • Starte mit bekanntem aktiven Knoten. • Finde Nachbarn, dessen ID geringsten Abstand zum Ziel hat (Greedy-Vorgehensweise). 541 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. 542 J OIN : • Generiere zufällige ID x ∈ [0, 1]d . • L OOKUP, um aktiven Knoten zu finden, dessen ID geringsten Abstand zu x hat. • Teile Zone des aktiven Knotens. • Korrektur der Nachbarschaften. Anzahl Botschaften: O dn1/d . 543 L EAVE : • Knoten überwachen ihre Nachbarn. • Falls einer verschwunden, übernimmt dessen Zone der aktive Nachbarknoten mit kleinster Zone. • Verschmilz Zonen, falls dies legale Zone ergibt. Ansonsten muss Knoten mehrere Zonen verwalten. Aufwand O(d) für das Verschmelzen. Problem: Fragmentierung des ID-Raumes. 544 Lösung: Defragmentierungsprozedur. 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. Kosten: Tiefe des Partitionsbaumes. Falls Zonen alle gleich groß ⇒ Baum balanciert und Tiefe O(log n). Für zufällige Verteilung bisher keine Analyse. 545 Kostenübersicht: Anzahl Schlüssel pro Knoten: Lokaler Platz für Routing-Infos: L OOKUP: J OIN: L EAVE: 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. 546 5.5 Kademlia (KAD) Arbeit: Maymounkov und Mazières (2002). 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. Wichtigste neue Idee bei Kademlia: Symmetrische, XOR-basierte Abstandsfunktion. 547 Hashing und IDs: • 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. 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 genau ein y ∈ {0, 1}m mit d(x, y ) = d. 548 L OOKUP intuitiv: Von 1101 nach 0011: Abstand (1110)2 = 14. 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 1 In jedem Schritt: Finde nächsten Zwischenknoten in Teilbaum, in dem vorderstes falsches Bit geflippt. → Abstandshalbierung, O(log n) Suchzeit. 549 Datenstruktur für Knoten: 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). • Original-Kademlia: k = 20. So wählen, dass Ausfall aller k Kontakte eines Buckets innerhalb einer Stunde hinreichend unwahrscheinlich. • Typischerweise Buckets mit kleinem Index leer. Ähnlich zu Chord, aber hier mehrere Kontakte für jede Abstandsklasse → Auswahlmöglichkeiten. 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). 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 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. 552 Beispiel: 0 1 0∗∗ 0 1 0 100 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 Operationen: 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 . 554 L OOKUP : 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. 555 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. 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). 556 Redundante Datenspeicherung: Zur Absicherung gegenüber Ausfällen jedes Schlüssel-Wert-Paar k -fach gespeichert. • 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). 557 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. 558 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}. 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. Beobachtung: IDs in i-tem Bucket stimmen in höchstwertigsten m − i Bits überein. ⇒ d(s ′ , t) ≤ 2i − 1. 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 Sei s Knoten nach erster Phase mit Abstand höchstens 2m /n vom Ziel. Analog zu Argument bei Chord: M. h. W. O(log n) Knoten mit Abstand höchstens 2m /n von s. In jedem weiteren Schritt echte Abstandsverringerung oder gewünschtes Bucket leer (dann fertig). Also insgesamt O(log n) Schritte. 560 Wie Voraussetzungen erfüllen? • Kompletter Ausfall eines ganzen Buckets 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. 561 J OIN : 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. 562 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. L EAVE : Nichts tun. Bereits erledigt durch Daten-Replikation und Bucket-Refreshes (und flexibles Routing, das Umwege um evtl. Lücken findet). 563 Kostenübersicht: Anzahl Schlüssel pro Knoten: Lokaler Platz für Routing-Infos: L OOKUP: J OIN: L EAVE: 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. Algorithmenbeschreibung in der Originalarbeit ungenau, mehr Details in der Spezifikation des XLattice-Projekts: xlattice.sourceforge.net. 564 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.) • Sicherheit gegen gezielte Manipulation des Netzes. • Anonymität. Und: Theoretische Analysen bekannter Verfahren. Kosten für Netzreparatur abhängig von Zugangs-/Abgangsrate, Modelle für P2P-Netze usw. 565 6. Algorithmische Spieltheorie Übersicht: 6.1 6.2 6.3 6.4 6.5 Einleitung Klassische Theorie nichtkooperativer Spiele Egoistisches Routing Mechanismen-Entwurf Auktionen 566 6.1 Einleitung Übliche Modelle: Implementierung und Ausführung von Algorithmen unter unserer Kontrolle. Versagen allein aufgrund technischer Probleme, z. B. Hardwarefehler. 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. Hier: Ansätze eines theoretischen Rahmens dafür. 567 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. Routing muss ökonomische und politische Interessen berücksichtigen. Typischerweise nicht kürzester Weg. Wie kann man gerechte Kosten“ ermitteln? ” 568 Trittbrettfahrer in P2P-Systemen: Studie: 70 % der Gnutella-Nutzer liefern keine Dateien, 1 % liefern 37 % aller Dateien (Adar, Huberman 2000). Wie kann man große Zahl anonymer Benutzer zu Kooperation motivieren? Kombinatorische Auktionen: Bieter geben Gebote für Teilmengen von Objekten ab. Verschiedene praktische Anwendungen, z. B. Vergabe von LKW-Transportaufträgen, Busrouten, Sendefrequenzen. Vergabe so, dass Bieter ihren wahren“ Wert bieten? ” So, dass Profit des Verkäufers maximiert wird? Algorithmus für Zuordnung Objekte → Bieter? 569 Algorithmische Spieltheorie: Klassische ökonomische Theorien kombiniert mit algorithmischen Techniken und Anwendungen aus der Informatik. Klassische Spieltheorie: von Neumann, Morgenstern (1944). Einschätzung des Forschungsgebietes: Modelle, um ausgewählte Aspekte sozialen Verhaltens im Internet besser zu verstehen (zunehmend wichtiger). Direkte praktische Umsetzung bis jetzt nur in einigen wenigen Teilbereichen, z. B. Auktionen. 570 6.2 Klassische Theorie nichtkooperativer Spiele Mehrere Akteure, Agenten, Spieler, die eigene Interessen verfolgen (oft kollidierende) und miteinander in Interaktion treten. Interaktion beschrieben als Spiel. 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. . . 571 6.2.1 Zwei-Personen-Nullsummenspiele 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. Spieler 2: Papier: Stein: Schere: Spieler 1: Papier: Stein: Schere: 0 −1 1 1 0 −1 −1 1 0 572 Allgemeine Definition: 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 . 573 Welche Strategie sollte man spielen? 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. 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 Beispiel: 5 1 3 Auszahlungsmatrix A = 3 2 4 −3 0 1 Nur (2, 2) ist Sattelpunkt von A und damit Nash-Gleichgewicht. Erwarte, dass Spieler beide Strategie 2 wählen. • 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. ” 575 Eindeutigkeit des Nash-Gleichgewichts? Nein, aber zumindest haben alle gleichen Wert: 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 ′ . Beweis: Gemäß Definition von Sattelpunkten gilt ai,j ≤ ai,j ′ ≤ ai ′ ,j ′ ai ′ ,j ′ ≤ ai ′ ,j ≤ ai,j . 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? 576 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. Abhilfe: Randomisierte Auswahl. 577 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 . 1≤i≤m 1≤j≤n Menge der gemischten Strategien enthält genau die Konvexkombinationen der reinen Strategien (konvexe Hülle). 578 Erweitere Definition von Nash-Gleichgewichten auf beliebige, auch gemischte Strategien. Im Papier-Stein-Schere-Beispiel dann Strategienpaar (x, y ) mit 1 1 1 x =y = , , 3 3 3 ein Nash-Gleichgewicht (in gemischten Strategien). Denn: 0 1 −1 1/3 0 −1 0 1 · 1/3 = 0 , 1 −1 0 1/3 0 Egal welche Strategie der andere Spieler wählt – es kommt immer 0 als erwartete Auszahlung heraus. 579 In diesem neuen Szenario nun Nash-Gleichgewichte für beliebige Probleme? 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. Spieler 1 sollte also x ∈ S1 so wählen, dass v1 (x) := min x ⊤Ay y∈S2 maximal wird. 580 Für festes x ist y 7 → x ⊤Ay lineare Funktion auf konvexer Menge. Minimum wird in einem der Eckpunkte e1 , . . . , en angeommen: v1 (x) = min x ⊤Ae j . 1≤j≤n Direkter Beweis: Sei x ⊤ A = [a1 , . . . , an ]. Dann ist 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 . 581 Hatten: Spieler 1 will x ∈ S1 mit maximalem v1 (x) = min x ⊤Ae j . 1≤j≤n Können dies durch ein lineares Programm beschreiben: • Variablen x = (x1 , . . . , xm ) ∈ Rm und λ ∈ R. • Maximiere λ unter den Nebenbedinungen: x ⊤Ae j ≥ λ, 1 ≤ j ≤ m. x1 , . . . , xm ≥ 0 und x1 + · · · + xm = 1. Lösbar mit Polynomialzeitalgorithmus. In der Praxis oft mit Simplex-Algorithmus (im Worstcase exponentielle Zeit). 582 Haben also optimale Strategie x ∗ für Spieler 1 mit erwarteter Auszahlung v1 := v1 (x ∗ ). 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. Dualitätstheorem der linearen Programmierung: v1 = v2 (hier leider ohne Details). 583 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) max min x ⊤Ay = min max x ⊤Ay . x∈S1 y∈S2 y∈S2 x∈S1 584 6.2.2 Allgemeine nichtkooperative Spiele 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 . • 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 . Üblicherweise als Spiel in Normalform bezeichnet. 585 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.7: Nash-Gleichgewicht Strategientupel s = (s1 , . . . , sn ) heißt Nash-Gleichgewicht, falls für alle i = 1, . . . , n und si′ ∈ Si gilt ui (s−i , si′) ≤ ui (s). Stimmt natürlich mit dem Spezialfall für Zwei-Personen-Nullsummenspiele überein. 586 Gemischte Strategien auch analog zu Zwei-Personen-Nullsummenspielen. Erwartete Auszahlung für Spieler i bei Tupel p = (p1 , . . . , pn ) von gemischten Strategien: X ei (p) := ui (s1 , . . . , sn ) · p1 (s1 ) · · · pn (sn ). s1 ,...,sn 587 Dynamische Spiele Beschreibe Abfolge der Züge im Spiel. 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. Ü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. 588 Beispiel: Trittbrettfahrer in P2P-Netzen. Betrachte folgendes sehr einfache Modell der Situation: Zwei Spieler, jeweils zwei Strategien: • Kooperieren: Stelle eigene Dateien zur Verfügung (in allgemein als fair“ angesehenem Umfang). ” • Schmarotzen: Nur Abgreifen von Dateien. Auszahlungsmatrix: Spieler 2: K: S: Spieler 1: K: 8, 8 S: 10, −2 −2, 10 0, 0 589 Auszahlungsmatrix: K: K: S: S: 8, 8 −2, 10 10, −2 0, 0 Nash-Gleichgewichte? • 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. Abhilfe: Verträge, Seitenzahlungen. 590 Bekanntere Variante des Spiels: Beispiel: Gefangenendilemma. Sheriff hat zwei des Bankraubes Verdächtigte eingelocht, hat aber nur Beweise für kleinere Delikte und braucht Geständnis. • 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. 591 Auszahlungsmatrix: Spieler 2: K: B: Spieler 1: K: −1, −1 −10, 0 B: 0, −10 −5, −5 K: kooperieren“ (cooperate), B: betrügen“ (defect). ” ” Bis auf Skalierung wie Trittbrettfahrer“. ” Genauso: Wettrüsten“. ” Tatsächlich in diesem Kontext in den 1950er Jahren von der RAND-Corporation untersucht. 592 Iteriertes Gefangenendilemma: Endliche Rundenanzahl: Rundenanzahl ist endlich und allen Spielern bekannt. Nash-Gleichgewicht durch Rückwärtsinduktion: Strategienpaar (B, B) für alle Runden. Unendliche bzw. unbekannte Rundenanzahl: Zunächst klären: Wie Auszahlung definieren? Üblich: Diskontierter Durchschnitt: Für δ ∈ [0, 1] und Strategie s: ∞ X u(s) = (1 − δ) δ i ui (s), ui Auszahlung in i-ter Runde. r =1 Viele Gleichgewichts-Strategienpaare, z. B. Tit-for-tat. Experimente von Axelrod (1980, 1984). 593 Beispiel: Konkurrierende Standards. • Zwei Firmen, die Produkt gemäß von ihnen bevorzugten Standards A bzw. B herstellen möchten. • Strategien: Wahl des Standards: • Unterschiedliche Standards am Markt → Kunden akzeptieren Produkt nicht. Auszahlungsmatrix: A: B: A: B: 4, 2 1, 1 1, 1 2, 4 Standardname in der Literatur: Battle of the Sexes. Beispiel für Klasse der Koordinationsspiele. 594 Auszahlungsmatrix: A: B: A: B: 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 . 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? 595 Beispiel: Konkurrenzkampf. • Zwei Spieler konkurrieren um Ressource. • Strategien: nachgeben“ oder durchsetzen“. ” ” • Wenn beide nachgeben, wird Ressource geteilt. • Kampf ist extrem kostspielig für beide. Auszahlungsmatrix: N: D: 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. 596 Satz 6.8: Für jedes nichtkooperative Spiel existiert ein Nash-Gleichgewicht in gemischten Strategien. Beweis: Der Einfachheit halber nur für n = 2. 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 , 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. Behauptung 1: (x, y ) ist Nash-Gleichgewicht genau dann, wenn c1 = · · · = cm = 0 und d1 = · · · = dn = 0. 597 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. Dann“: Falls c1 = · · · = cm = 0, gilt für alle i: ” 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 (x ∗ )⊤Ay = xi∗ ei⊤Ay ≤ xi∗ x ⊤Ay = x ⊤Ay . i i (Behauptung 1) 598 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 , j = 1, . . . , n. yj′ := 1 + j dj Dann ist tatsächlich (x ′ , y ′ ) wieder ein Paar gemischter Strategien. Behauptung 2: T (x, y ) = (x ′ , y ′ ) genau dann, wenn c1 = · · · = cm = 0 und d1 = · · · = dn = 0. 599 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. 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 x ⊤Ay = xi · ei⊤Ay > xi · x ⊤Ay = x ⊤Ay . 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) . 600 Beide Behauptungen ⇒ Nash-Gleichgewichte sind genau die Fixpunkte von T . Dies ist eine stetige Abbildung auf der kompakten, konvexen und nichtleeren Menge aller Strategienpaare. Fixpunktsatz von Brouwer ⇒ Fixpunkt von T in dieser Menge existiert. 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. 601 6.2.3 Spiele mit unendlichen Strategiemengen 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. 602 6.3 Egoistisches Routing Modelle für Verkehr, wo Routing von unabhängigen Verkehrsteilnehmern ohne zentrale Steuerung durchgeführt wird. Jeder Vekehrsteilnehmer minimiert eigene Kosten: Transport des eigenen Vekehrs in möglichst kurzer Zeit, gegeben die aktuelle Verkehrslage. Betrachte Nash-Gleichgewichte, die so entstehen. Intuition: Das kann nicht optimal sein. Stau! Konkrete Beispiele später. 603 Für gegebenes Spiel: • Für Strategientupel s: 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. (Hier o. B. d. A. Copt > 0.) Koordinationsfaktor misst Preis für Anarchie“, ” Overhead für unkoordiniertes Verhalten im Vergleich zu zentraler Steuerung. Modelle (noch) weit weg von realen Routingprotokollen, aber trotzdem wichtige grundlegende Fragestellung. 604 6.3.1 Das Makespan-Scheduling-Modell Arbeit: Koutsoupias und Papadimitrious (1999). s s1 s2 .. . ··· t sm 1 2 3 m • n Spieler/Jobs mit Gewichten w1 , . . . , wn ∈ R+ . 0 • m Links mit Geschwindigkeiten s1 , . . . , sm . • Strategienmenge für jeden Spieler: Auswahl eines Links aus {1, . . . , m}. Lastverteilungsproblem, Makespan-Scheduling. 605 Kosten: Sei Zuordnung s = (j1 , . . . , jn ) ∈ {1, . . . , m}n der Jobs auf die Links gegeben (Tupel reiner Strategien). • Kosten für i-ten Link (Beendigungszeit) ℓi (s) := 1X wk . si jk =i • Gesamtkosten: C(s) := max ℓi (s). 1≤i≤m • Soziales Optimum: Copt = mins C(s). (Beachte: Hier nur reine Strategien betrachtet.) 606 Nash-Gleichgewichte: 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 jk =i • Erwartete Gesamtkosten (über Verteilungen in p): E(C(p)) = E max ℓi (p) 1≤i≤m 607 Nash-Gleichgewichte (Forts.): 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 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 . Wähle unter den Nash-Gleichgewichten dasjenige mit maximalen Kosten E(C(p)) und vergleiche mit Copt . 608 Hier ohne Beweis: 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) . 609 6.3.2 Das Kontinuierliche-Flüsse-Modell Arbeit: Roughgarden, Tardos (2000). 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. 610 Flüsse: x s 1 fP = 1/2 t s fQ = 1/2 x fP = 1/2 1 t fQ = 1/2 ℓP (f ) = ℓQ (f ) = C(f ) = • Fluss: Abbildung f : P → R+ , sodass für alle i: 0 P P∈Pi fP = ri (Emissionsrate exakt erreicht). P • Fluss über Kante e: fe = P : e∈P fP . • 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 . 611 Nichtatomare Spieler: • Jeder Spieler trägt infinitesimale Einheit zum 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: • Der Einfachheit halber hier nur Netze mit nur einem 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. Grenzwert k → ∞ liefert das nichtatomare Modell. Koordinationsfaktor in automarem Spiel höchstens so groß wie im nichtatomaren. (Roughgarden 2005) 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 falls R ∈ / {P, Q}; falls R = P; falls R = Q. 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+δ) D. h. Spieler, die Route P benutzen, haben keinen Anlass, zu Q zu wechseln. 613 Alternative Charakterisierung: 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 ). Für Nash-Gleichgewicht gilt mit Satz 6.12: Routing über kürzeste Wege, gegeben bereits vorhandener Fluss. 614 Beispiel: Will 1 Einheit von s nach t leiten: s x 1 fP = 0,5 t fQ = 0,5 Fluss fP = fQ = 1/2 ist Optimum, denn für p ∈ [0, 1]: C(p) = p · p + (1 − p) · 1 = p(p − 1) + 1. Minimum bei p = 1/2. Aber Spieler auf unterer Kante unzufrieden, ℓQ = 1 im Vergleich zu ℓP = 1/2. (Benötige hier, dass Spieler wirklich infinitesimal!) 615 Beispiel: Will 1 Einheit von s nach t leiten: s x 1 fP = 0,7 t fQ = 0,3 Fluss fP = fQ = 1/2 ist Optimum, denn für p ∈ [0, 1]: C(p) = p · p + (1 − p) · 1 = p(p − 1) + 1. Minimum bei p = 1/2. Aber Spieler auf unterer Kante unzufrieden, ℓQ = 1 im Vergleich zu ℓP = 1/2. (Benötige hier, dass Spieler wirklich infinitesimal!) 615 Beispiel: Will 1 Einheit von s nach t leiten: s x 1 fP = 0,9 t fQ = 0,1 Fluss fP = fQ = 1/2 ist Optimum, denn für p ∈ [0, 1]: C(p) = p · p + (1 − p) · 1 = p(p − 1) + 1. Minimum bei p = 1/2. Aber Spieler auf unterer Kante unzufrieden, ℓQ = 1 im Vergleich zu ℓP = 1/2. (Benötige hier, dass Spieler wirklich infinitesimal!) 615 Beispiel: Will 1 Einheit von s nach t leiten: s x 1 fP = 1 t fQ = 0 Fluss fP = fQ = 1/2 ist Optimum, denn für p ∈ [0, 1]: C(p) = p · p + (1 − p) · 1 = p(p − 1) + 1. Minimum bei p = 1/2. Aber Spieler auf unterer Kante unzufrieden, ℓQ = 1 im Vergleich zu ℓP = 1/2. (Benötige hier, dass Spieler wirklich infinitesimal!) 615 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 t e fQ = 0 C(e f) = 1 · 1 + 0 · 1 = 1 616 Beweis von Satz 6.12: Sei e f := f (P−δ,Q+δ) . Betrachte P mit fP > 0. Def. ⇒ Satz: Wegen Stetigkeit der Latenzfunktionen folgt: X δ→0 X ℓe (fe ) = ℓQ (f ). ℓe (fe + δ) → ℓQ (e f) = e∈Q e∈Q Grenzwert δ → 0 auf beiden Seiten der Ungleichung ℓP (f ) ≤ ℓQ (e f ) liefert die Behauptung. 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 e∈Q 617 Offensichtlich äquivalent: Alle benutzten Wege in Pi haben dieselbe aktuelle Latenz. Sei dies ℓi (f ). 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 ℓi (f )ri . i=1 Folgerung 6.13: Für Nash-Fluss f gilt: C(f ) = k X ℓi (f )ri . i=1 618 Existenz des Optimums? Proposition 6.14: Für Verkehrsnetze im Kontinuierliche-Flüsse-Modell mit stetigen Latenzfunktionen gibt es einen Fluss mit minimalen Kosten. 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 P∈P = i ri ) und nichtleer (wegen Pi ∩ Pj = ∅ für i 6 = j), die Funktion stetig. Die Behauptung folgt daher mit dem Satz von Weierstraß aus der Analysis. 619 Existenz und Eindeutigkeit von Nash-Flüssen? 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 ). Teil (1) mit Ergebnissen aus der konvexen Optimierung, Teil (2) Übungsaufgabe. Einfache Beispiele → keine Eindeutigkeit des Flusses selbst (vgl. Abschnitt 6.2). 620 Beispiel: Braess-Paradoxon. Ausgangsnetz: 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: ℓ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. Koordinationsfaktor: C(e f )/C(f ) = 2/(3/2) = 4/3. 621 Überblick über Rest des Abschnittes: 1 Charakterisierung von optimalen Flüssen 2 Lineare Latenzfunktionen 3 Allgemeine Latenzfunktionen 622 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. 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 + ℓ′e (fe ) · fe . | {z } Latenzerhöhung für vorhandenen Fluss 623 Beweis von Lemma 6.16: Wieder mit Methoden der konvexen Optimierung (Karush-Kuhn-Tucker-Bedingungen). Hier nur Notwendigkeit der Bedingung im Lemma. 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 e∈Q Da f optimal, insbesondere für δ > 0 hinreichend klein und e f := f (P−δ,Q+δ) : C(f ) ≤ C(e f ). 624 Es ist C(f ) − C(e f) = X ℓe (fe )fe − ℓe (fe − δ)(fe − δ) X e∈P−Q − ℓe (fe )fe − ℓe (fe + δ)(fe + δ) e∈Q−P Damit: ≤ 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 δ→0 X → ℓ′e (fe )fe + ℓe (fe ) e∈P−Q − X e∈Q−P ℓ′e (fe )fe + ℓe (fe ) ≤ 0. 625 Lemma 6.16 am Beispiel: Ausgangsnetz: Netz mit Grenzkosten: Opt s x 1 fP = 1/2 t Opt fQ = 1/2 s 2x 1 fPNash = 1/2 t fQNash = 1/2 626 Lineare Latenzfunktionen: Im Folgenden lineare Latenzfunktionen: Für e ∈ E: ℓe (x) = ae x + be , ae , be ≥ 0. Satz 6.17 (Roughgarden, Tardos 2000): Für Verkehrsnetze im Kontinuierliche-Flüsse-Modell mit linearen Latenzfunktionen ist der Koordinationsfaktor höchstens 4/3. Optimal wegen Worstcase-Beispiel. 627 Charakterisierung von optimalen Flüssen im Spezialfall für ℓe (x) = ae x + be , e ∈ E: Es ist ℓ∗e (x) = ℓe (x) + ℓ′e (x)x = ae x + be + ae x = 2ae x + 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∈Q 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 e∈Q 628 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. 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 ), e∈P e∈P also auch X X fe fe 2ae · + be . 2ae · + be ≤ 2 2 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. 629 Alternative Charakterisierung der Kosten eines Flusses: 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∈E ℓe (fe ) X fP P: e∈P ℓe (fe )fe . e∈E 630 Kleines Zwischenergebnis: Sei f Nash-Fluss und f ∗ optimaler Fluss, jeweils für die Emissionsraten r . Dann gilt X 1 1 C(f /2) = ae fe2 + be fe 4 2 e∈E be ≥0,e∈E 1 X 1 ≥ ae fe2 + be fe = C(f ). 4 4 e∈E Es ist f /2 ein optimaler Fluss für die Emissionsraten r /2 (Folgerung 6.18). 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. 631 Plan für Verbesserung auf 4/3: Ziel: Schätze C(f ∗ ) nach unten mit Hilfe von C(f ) ab. • Starte mit Fluss f /2, Kosten mindestens (1/4)C(f ). Optimal für Emissionsraten r /2. • Ergänzen zu Fluss mit Emissionsraten r . Zeige, dass dies mindestens Kosten (1/2)C(f ) verursacht. 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. 632 Sei g optimaler Fluss für Emissionsraten r . Gemäß Lemma 6.16 auf allen von g benutzen Wegen in Pi Latenz bezüglich ℓ∗e (x) = ℓe (x) + ℓ′e (x)x = 2ae x + bx gleich. Sei dies ℓ∗i (g). Lemma 6.20: Sei g optimaler Fluss für Emissionsraten r und sei h irgendein Fluss für Emissionsraten 2r . C(h) ≥ C(g) + k X ℓ∗i (g)ri . i=1 633 Anwendung für Hauptergebnis: Beweis von Satz 6.17: Seien f Nash-Fluss und f ∗ optimaler Fluss zu Emissionsraten r . 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 ℓ∗i (f /2)(ri /2). i=1 = ℓe (fe ) für alle e, folgt ℓ∗i (f /2) = ℓi (f ). Damit: k X i=1 k ℓ∗i (f /2)(ri /2) 1X = C(f /2) + ℓi (f )ri 2 i=1 1 = C(f /2) + C(f ). 2 634 Beweis von Lemma 6.20: Wegen Konvexität von ℓe (x)x = ae x 2 + be x folgt ℓe (he )he −ℓe (ge )ge ≥ (he −ge )(ℓe (ge )ge )′ = (he −ge )ℓ∗e (g). Damit: C(h) = X e∈E ℓe (he )he ≥ = C(g) + = C(g) + = C(g) + = 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 Hatten: C(h) ≥ C(g) + X (hP − gP )ℓ∗P (g). k X ℓ∗i (g) P∈P Alle Latenzen auf von g benutzten Wegen in Pi gleich ℓ∗i (g): C(h) ≥ C(g) + = C(g) + = C(g) + i=1 k X i=1 k X X P∈Pi (hP − gP ) ℓ∗i (g)(2ri − ri ) ℓ∗i (g)ri . i=1 636 Allgemeine Latenzfunktionen: Beispiel: s xd t 1 • Optimum: Für p ∈ [0, 1] minimiere C(p) = pd · p + (1 − p) · 1. Minimum bei p∗ = (1/(d + 1))(1/d) , C(p∗ ) = 2((log d)/d) (mit Taylor-Reihe). • Nash: C(f ) = 1. Koordinationsfaktor: 1/C(p∗ ) = 2(d/ log d). Fazit: Für beliebige Polynome als Latenzfunktionen: Koordinationsfaktor durch keine Konstante beschränkt. 637 Für nichtlineare Latenzen Koordinationsfaktor beliebig schlecht. Allerdings: Erreichbare Emissionsrate gegen Koordination verrechnen → bessere Ergebnisse möglich. 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 ∗ ). Hier ohne Beweis. Zentral koordiniertes Routing höchstens so gut wie unkoordiniertes Routing mit halbierten Emissionsraten. 638 Kompensation von egoistischem Routing durch Erhöhung der Bandbreite: Für Links gemäß M/M/1-Warteschlangenmodell ergibt sich Latenzfunktion. 1 , e ∈ E; ℓe (x) = be − x mit be > 0 Bandbreite für Kante e. Kann dafür zeigen, dass unkoordiniertes Routing im Vergleich zu zentral koordiniertem Routing durch Verdoppelung der Bandbreite kompensiert werden kann. 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 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“). ” Steuern / Belohnung für Spieler, sodass Wohl aller auch im Interesse jedes Einzelnen. Anwendungen: Theorie öffentlicher Investitionen, Auktionen. 640 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. Anwendungen: • Verteilte Algorithmen im Internet: Wie Kooperation sicherstellen und Trittbrettfahrer verhindern? • Auktionen: E-Commerce; Auktionen, die nichttriviale Algorithmen und Rechnerhilfe erfordern. 641 6.4.1 Einleitung Klassisches Beispiel: Öffentliches Projekt. • Spieler sollen entscheiden, ob öffentliches Projekt 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. i=1 Gerechte“ Entscheidung erfordert, dass Spieler ” wahren Wert bekanntgeben. Ziel: Stelle dies durch Zahlungen der Spieler sicher. 642 1. Versuch: Angegebener Nutzen = Kosten. Projekt wird realisiert, falls Summe der angegebenen Werte mindestens c. Spieler i zahlt dann angegebenen Wert xi′ . 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. . . 643 2. Versuch: Gerechte Verteilung der Kosten. Projekt wird realisiert, falls Summe der angegebenen Werte mindestens c. Jeder Spieler zahlt dann c/n. 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. Analog: Bespiel, wo falsche Angabe von zu kleinem Wert im Interesse des Spielers. 644 Lösung: Clarke-Steuern (Clarke 1971). • 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 pi := max 0, c − xj′ . j6=i Behauptung: Für jeden Spieler i ist es beste Strategie, xi′ = xi zu wählen, d. h. Aufdeckung des wahren Wertes. 645 Seien Angaben der Spieler 2, . . . , n irgendwie fixiert → x2′ , . . . , xn′ . Betrachte (Gesamt-)Nutzen von Spieler 1: • Projekt realisiert: x1 − p1 . • Projekt nicht realisiert: 0. Lüge x1′ > x1 : Hat nur Auswirkung auf Nutzen, wenn Projekt dadurch realisiert und vorher nicht, d. h. X x1 + xj′ < c. j6=i Nutzenin diesem Fall X X x1 − c − xj′ = x1 + xj′ − c < 0. j6=i j6=i Bei ehrlicher Angabe von x1 aber Nutzen 0. 646 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 x1 − c − xj′ = x1 + xj′ − c ≥ 0. j6=i j6=i Fazit: Strategie Angabe von wahrem Wert“ liefert ” unabhängig von den Wahlen der Mitspieler immer maximalen Nutzen. Außerdem ist dies die einzige mögliche Wahl mit dieser Eigenschaft (Übungsaufgabe). 647 Beispiel: Versteigerung eines einzelnen Objektes. Bieter haben private Einschätzungen x1 , . . . , xn für Wert des Objektes. Auktionator möchte, dass Bieter ihren wahren Wert bieten. Lösung: Vickrey-Auktion (Vickrey 1961). 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. Ähnlich: eBay, englische Auktionen. Höchstbietender zahlt zweithöchstes Gebot plus kleines Gebotsinkrement. 648 Behauptung: Für jeden Bieter ist Angabe seines wahren Wertes beste Strategie, d. h. xi′ = xi . ′ Betrachte Bieter 1 und sei xmaxRest = max{x2′ , . . . , xn′ }. ′ x1 > xmaxRest : ′ Falls Auktion gewonnen, Nutzen x1 − xmaxRest > 0. ′ ′ Für beliebige xmaxRest passende Strategie: x1 ≥ x1 . ′ x1 ≤ xmaxRest : ′ Für beliebige xmaxRest passende Strategie: x1′ ≤ x1 . Damit x1′ = x1 einzig richtige Wahl für beide Fälle. 649 6.4.2 Formales Modell: Akteure hier wieder Spieler, Anzahl n. • Ausgaben: – 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 . Privates Ziel für Spieler i: Maximiere ui . Bemerkung: Hier spezielle ui , genannt quasilineare Nutzenfunktionen (linearer Nutzen von Geld). 650 Globales Ziel: Zielfunktion f : X1 × · · · Xn × Y → R (globale Nutzenfunktion) auf allen privaten Eingaben und den Ausgaben y . 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. 651 Wichtige globale Ziele: (Allokations-)Effizienz: Zielfunktion n X f (x, (a, p)) = vi (a, xi ). 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. 652 Mechanismen: 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. Sowohl Deklarationen als auch Berechnung von m können algorithmisch aufwendig sein. 653 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 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. 655 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 f (x, m(x ′ )) = max f (x, y ). y Definition 6.24: Mechanismus implementiert Zielfunktion f wahrheitsaufdeckend (strategienrobust), wenn Bekanntgabe der wahren privaten Eingabe für jeden Spieler eine dominante Strategie ist. Beispiele: Öffentliches Projekt, Vickrey-Auktion. 656 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. Intuitive Beweisidee: Sei s ∗ (x) dominantes Strategientupel zu Eingabevektor x. 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. 657 Mechanismen-Entwurfs-Problem: Gegeben: Optimierungsproblem in Form der Zielfunktion f . Ziel: Finde Mechanismus m, der gewünschte Zielfunktion f wahrheitsaufdeckend implementiert. Begriffe für Zielfunktion übertragen auf Mechanismus, wenn dieser eine passende Funktion so implementiert: Für Ausgabe m(x ′ ) = (a∗ , p): • (allokations-)effizient, falls n P a∗ (x ′ ) ∈ arg max vi (a, xi′ ). a∈A i=1 • budgetbalanciert bzw. schwach budgetbalanciert, falls n P i=1 pi = 0 bzw. n P i=1 pi ≤ 0. 658 Algorithmischer Mechanismenentwurf: Pionierarbeit: Nisan, Ronen (1999). Verlange, dass Mechanismus Polynomialzeit-berechenbar. Mechanismenberechnung NP-schwer, falls dies für durch die Zielfunktion codiertes Optimierungsproblem gilt. Klassisch (und bei Nisan, Ronen): Mechanismus zentral, für typische verteilte Berechnungen unrealistisch. Verteilter algorithmischer Mechanismenentwurf (DAMD, Feigenbaum, Papadimitriou und Shenker 2000): Will Algorithmen, die Mechanismus verteilt realisieren. Neue Parameter wichtig für Effizienz: Gesamtanzahl Nachrichten, Anzahl Nachrichten / Link, max. Nachrichtenlänge, lokale Berechnungskomplexität. 659 6.4.3 Zwei informatiknahe Beispiele Beispiel 1: Makespan-Scheduling. 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. Belohne Rechnerbetreiber so, dass diese ihre wahren Kosten bekanntgeben. 660 Lösung: Versteigere Jobs mit Vickrey-Auktion. MinWork-Mechanismus (Nisan, Ronen 1999). 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. 661 Aber: Natürlich keine optimale Lösung (M AKESPAN -S CHEDULING ist NP-schwer). 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 . min ti,j ; OPT ≥ n i i j=1 • Beste untere Schranke für Güte (falls P 6 = NP) ist 1 + √ 2 (Christodoulou u. a. 2006). • Verteilte Realisierung: Carroll, Grosu (2005). 662 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. Wieder: Geeignete Entschädigung für Kantenbetreiber, sodass diese wahre Kosten melden. Technische Feinheit: Voraussetzen, dass G zweifachzusammenhängend. Dann hat kein Betreiber Monopol. 663 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. 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). Berechnung der Auszahlung nichttrivial. Algorithmus mit asymptotischen Kosten für nur eine SSSP-Berechnung: Hershberger, Suri (2001). 664 6.4.4 Vickrey-Clarke-Groves-Mechanismen Klasse von Aufdeckungsmechanismen für quasilineare Nutzenfunktionen. 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 ∗ ′ a (x ) ∈ arg max vi (a, xi′ ). 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. j6=i 665 Satz 6.27 (Groves 1973): VCG-Mechanismen sind wahrheitsaufdeckend und allokationseffizient. Beweis: Allokationseffizienz klar, wenn wahrheitsaufdeckend, da Auswahlfunktion gerade passende Zielfunktion maximiert. Zeige also, dass Mechanismus wahrheitsaufdeckend. Sei x = (x1 , . . . , xn ) Vektor der (wahren) privaten Eingaben. Zu zeigen: Für Spieler i ∈ {1, . . . , n} ist Deklaration von xi′ = xi dominante Strategie. 666 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 ). j6=i xi′ , ′ ) ignorieren, Will 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 . 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 ′ a∗ (xi , x−i vj (a, xj′ ) . ) ∈ arg max vi (a, xi ) + a∈A j6=i 667 Clarke-Mechanismen: Definition 6.28: Clarke-Mechanismus ist VCG-Mechanismus mit X ′ ′ hi (x−i ) := − vj (a∗−i (x−i ), xj′ ), wobei j6=i ′ a∗−i (x−i ) ∈ arg max a∈A X j6=i ′ vj (a, x−i ), d. h. eine optimale Alternative für Problem ohne Spieler i. Lösung für öffentliches Projekt, Vickrey-Auktion und Routing. Nur Routing genauer, Rest selbst überlegen. 668 Routing-Mechanismus als Clarke-Mechanismus: • Alternativen a ∈ A hier s-t-Wege. • Falls s-t-Weg a gewählt: Wert für Spieler e ∈ E: (−ce ) · [e ∈ a] (negativ, da Kosten). • Sei a∗ kürzester s-t-Weg für alle Kanten. • 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 ′ he (c−e ) = − (−ce′ ′ )[e′ ∈ a∗−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 ). e ′ 6=e 669 6.4.5 Zusatzeigenschaften von Mechanismen Eindeutigkeit von Gleichgewichten: Im Allgemeinen möglich: Schwach dominante Strategientupel x ′ , x ′′ , Zielfunktion von x ′ implementiert, von x ′′ nicht. 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. 670 Eindeutigkeit von Gleichgewichten (Forts.): • 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. Für viele wichtige Mechanismen Eindeutigkeit gegeben. 671 Budgetbalancierung: Erinnerung: Für beliebige x: n P i=1 pi (x) = 0. Nenne Wertefunktionen der Spieler allgemein, falls jeweils durch Wahl der privaten Eingabe alle möglichen Funktionen A → R realisierbar. 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. Damit VCG-Mechanismen im Allgemeinen nicht budgetbalanciert! 672 Schwache Budgetbalancierung? Erinnerung: Für beliebige x: n P i=1 pi (x) ≤ 0. 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 ) ≥ j6=i j6=i Intuitiv: Entfernen von Spieler i → restliche Spieler können immer noch mindestens so hohen Gesamtwert erzielen wie in ursprünglichem Szenario. 673 Proposition 6.31: Falls die Wertefunktionen der Spieler frei von EinzelspielerEffekten sind, sind Clarke-Mechanismen schwach budgetbalanciert. Beweis: Definition von pi und hi : X X pi = vj (a∗ (x), xj ) − vj (a∗−i (x−i ), xj ). j6=i j6=i 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. i=1 674 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. • Auktionen: Voraussetzung: Nur Käufer und Entsorgen von Objekten sei umsonst. 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. 675 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 pi ≥ 0. Zahle Kante ei auf unterem Weg e / 2ℓ t dG|ce =∞ − dG|ce =0 = ℓ + 1, i e1 / 1 e2 / 1 P eℓ / 1 i insgesamt für kürzesten Weg ℓ · (ℓ + 1) = 2(ℓ2 ). 676 6.4.6 Anwendung: Multicast-Routing 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 Daten von der Quelle aus schicken. • Multicast-Routing: Sende Daten nur einmal, Duplizierung durch Router an Verzweigungen. Kostenverteilung? Hier: Staatliche Lösung“. ” Infrastruktur gehört Staat, kann Defizite auffangen. 677 Netzstruktur: T: Datenquelle • Universeller Baum T : Baum mit Verbindungen von der Datenquelle aus zu allen potenziellen Empfängern. • Potenzielle Empfänger sitzen an Knoten des universellen Baumes. 678 Netzstruktur: Datenquelle T: 2 1 1 3 1 1 1 1 Routing-Hardware konstruiert minimalen Teilbaum T (R) von T , der Empfänger in R erreicht. • Kantenmarkierung: Kosten für Verbindungsleitungen (Links). 3 5 5 2 • Übertragung an alle Empfänger in Menge R: 1 • Kosten für Baum T (R): c(R). Im Beispiel: c(R) = 15. 678 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. Nutzen von Spieler i für Ausgabe (R, p): ui ((R, p), xi ) = xi Ri − pi . wobei xi Bewertung von Benutzer i für Übertragung. 679 Mechanismus-Anforderungen (Forts.): Globale Zielfunktion: Maximiere X f (x, R) := xi − c(R), 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): 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. 680 Der Grenzkosten-Mechanismus: 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 ∗ ∪ {i}: Falls R ∗ = R−i ∗ ) (d. h. Grenzkosten für Anschluss). Kosten c(R ∗ ) − c(R−i 681 Satz 6.32: Der Grenzkosten-Mechanismus ist wahrheitsaufdeckend, allokationseffizient und erfüllt (NPT), (IR) und (CS). 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 Moulin, Shenker (2001): Grenzkosten-Mechanismus ist der einzige Mechanismus mit obigen Eigenschaften. 682 Verteilte Realisierung: 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. 683 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 ). Beweisidee: Induktion und Definition von R ∗ (größte Menge, die f -Wert im jeweiligen Teilbaum maximiert). 684 Phase 2: Top-Down-Durchlauf durch universellen Baum: • 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: – 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 Korrektheit der Kostenberechnung: 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 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). 686 Netzkomplexität: Zwei Botschaften pro Link (jeweils nur W -Werte), insgesamt O(n) bei n Knoten im universellen Baum, lokale Berechnungen sehr einfach. 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. Shapleywert-Mechanismus: Budgetbalanciert, aber nicht allokationseffizient und keine effiziente verteilte Implementierung. 687 Weitere Anwendung: BGP-Routing Arbeit: Feigenbaum u. a. (2002). Realistischere Version des einführenden Routing-Beispiels. Szenario: • 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. Realisierung mit Clarke-Mechanismus (Grenzkosten analog zu einfachem Routing-Beispiel). Kommunikationsaufwand asymptotisch wie bei BGP-Protokoll. 688 6.5 Auktionen 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. 689 Auktionstheorie: Optimale Auktionen unter Annahmen über Verteilung der Werte der Bieter (Bayes-Nash-Gleichgewichte). Ziel ist Maximierung des erwarteten Ertrags für Auktionator. 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. 690 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). 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. 691 Vickrey-Auktion in der Praxis: 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). Arbeiten: Sandholm (1996), Ausubel, Milgrom (2006). 692 Kombinatorische Auktionen (CAs): 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 Ausgabe des Auktion-Mechanismus: • Zuordnung a∗ (v ′ ) ∈ A der Objekte; • Für jeden Spieler i zu zahlender Preis pi (v ′ ). 693 Anwendungen: Versteigerung von LKW-Transportaufträgen, Busrouten, Sendefrequenzen (FCC, UMTS). 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 ) − v (a∗−i ) X vj′ (Sj ), j6=i wobei der maximale Gesamtwert (bezüglich gemeldeter Gebote) im Szenario ohne Spieler i sei. 694 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