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