Internet-Algorithmen

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