Algorithmus C AUCHY M EDIAN I DEAL für L1 : • Generiere unabhängige, cauchyverteilte Zufallsvariablen Xi,j , für i = 1, . . . , m und j = 1, . . . , r . • Für j ∈ {1, . . . , r } berechne m X Yj := fi∗ Xi,j . i=1 • Ausgabe: Z := med(|Y1 |, . . . , |Yr |). Satz 4.38: Sei 0 ≤ ε ≤ 0,2 und δ > 0. Dann berechnet der Algorithmus C AUCHY M EDIAN I DEAL für eine geeignete Konstante c > 0 und r = c log(1/ε)/δ 2 eine (ε, δ)-Approximation der L1 -Norm der Eingabe. 423 Beweis: Falls L1 (a) = 0: Dann f1∗ = · · · = fm∗ = 0, Xi,j = 0 für alle i, j und damit auch Ausgabe Z = 0. Im Folgenden L1 (a) > 0. Sei C Zufallsvariable mit (normalisierter) Cauchyverteilung. Gemäß Satz 4.28: Yj ∼ k(f1∗ , . . . , fm∗ )k1 · C = L1 · C. Beobachtung 4.35, Lemma 4.37 liefern: med(|Yj |) = med(L1 · |C|) = L1 · med(|C|) = L1 . 424 Für Anwendung von Satz 4.36 untersuche Steigung der Inversen der Verteilungsfunktion F von |C|. Es ist F (x) = 2 · arctan(x), F −1 (y ) = tan((π/2)y ). π Damit: 2 π ′ π F −1 (y ) = ·y . 1 + tan 2 2 Taylorreihen-Abschätzung liefert: Für γ = 0,05 gilt ′ y ∈ [1/2 − γ , 1/2 + γ ] ⇒ F −1 (y ) ≤ 4 =: d. 425 Satz 4.36 liefert: Sei 0 ≤ ε ≤ γ d = 0,2, δ > 0, dann existiert c > 0, sodass für r = c log(1/δ)/ε 2 und Z = med(|Y1 |, . . . , |Yr |): Pr{|Z − L1 | ≤ ε} ≥ 1 − δ. Diskreter Wertebereich für Vektoren ⇒ L1 ≥ 1, damit auch Schranke für relativen Fehler. Effiziente Realisierung: • Simulation von Cauchyverteilung gemäß Satz 4.29. • Diskretisierung und Approximation mit endlicher Genauigkeit. • Arbeiten mit Pseudozufallszahlengenerator für Algorithmen mit beschränktem Speicherplatz. Indyk (2006) skizziert auch Erweiterung auf beliebige p-Normen mit p ∈ (0, 2] mit Hilfe p-stabiler Verteilungen. 426 4.6.3 Sketching-Algorithmus für L0 Erinnerung: Hammingnorm, L0 : m X L0 (x1 , . . . , xm ) = [xi 6 = 0]. i=1 Verallgemeinerung von F0 / Anzahl verschiedene Elemente. Arbeit: Cormode, Datar, Indyk und Muthukrishnan (2002). Idee: Approximation mit p-Norm, p sehr klein. Lemma 4.39: Sei x = (x1 , . . . , xm ) ∈ {−w , . . . , w }m , 0 < ε ≤ 1 und p = log(1 + ε)/ log w . Dann gilt p kxk0 ≤ kxkp ≤ (1 + ε)kxk0 . 427 Beweis: Da x1 , . . . , xm ∈ Z: m m X X p |xi |p = kxkp . [xi 6 = 0] ≤ i=1 Andererseits: m X i=1 |xi |p ≤ i=1 p xi ≤ w p [xi 6 = 0], damit m X w p [xi 6 = 0] = w p kxk0 . i=1 Wegen p = log(1 + ε)/ log w : w p = 2p log w = 1 + ε. 428 Grobalgorithmus für L0 damit: • Für p := log(1 + ε)/ log w : Berechne Ausgabe Y von Algorithmus mit randomisierten Projektionen gemäß p-stabiler Verteilung, (ε, δ)-Approximation von Lp . • Ausgabe Z = Y p . Falls erster Schritt korrekt, folgt mit Lemma: Abweichung nach oben höchstens um Faktor (1 + ε)2 ≤ 1 + 3ε, Abweichung nach unten höchstens um Faktor 1 − ε. ⇒ Relativer Fehler höchstens 3ε. Korrektheitsbeweis in Originalarbeit unvollständig (Analyse für Lp -Algorithmus fehlt). In Experimenten aber scheinbar vernünftiges Verhalten. 429 4.6.4 Anwendung im Datenbankszenario Problemvariante hier: Attribut mit Werten aus {1, . . . , m}. • Verwalte Vektor v ∈ Nm . Zu Anfang v = (0, . . . , 0). 0 • Operationen für x ∈ {1, . . . , m}: – I NSERT (x): vx := vx + 1. – D ELETE (x): vx := vx − 1. – Q UERY : Liefert Fk (v ). Versprechen: D ELETE-Operation nur, wenn vx > 0. Sonst für Algorithmen beliebige Ausgabe erlaubt. Motivation für Versprechen: • Praktisch sinnvoll, da Datenbank Absicherung übernimmt. • Problemvariante, wo D ELETE Nulloperation“, falls vi = 0: ” Benötigt Speicherplatz (m) (ohne Beweis). Problem effizient lösbar für k ∈ [0, 2] im Datenstromszenario mit Algorithmen aus Abschnitten 4.6.1 – 4.6.3. 430 4.6.5 Abschätzung der Join-Größe Gegeben: Relationen R1 , R2 mit gemeinsamem Attribut A. Ziel: Abschätzung von |R1 ⋊ ⋉R1 .A=R2 .A R2 |. Arbeit: Alon, Gibbons, Mathias, Szegedy (2002). Dort gezeigt: Für Relationen R1 , R2 mit je n Tupeln und Versprechen, dass Join-Größe mindestens B, n ≤ B ≤ n2 /2: Sampling-Algorithmen für (ε, δ)-Approximation von √ Join-Größe benötigen Samplegröße (n − B)2 /B . 431 Datenbankrelationen → Skizzen. Attribut habe Werte aus {1, . . . , m}. • Seien X1 , . . . , Xm ∈ {−1, 1} 4-fach unabhängige Zufallsvariablen. • Relation R mit absoluten Häufigkeiten f1 , . . . , fm : Definiere m X S(R) := fi Xi . i=1 Für Probability-Amplification betrachte Sr (R), r Kopien für unabhängige Sätze von X1 , . . . , Xm . 432 Lemma 4.40: E(S(R1 )S(R2 )) = |R1 ⋊ ⋉ R2 | und V (S(R1 )S(R2 )) ≤ 2 · F2 (R1 ) · F2 (R2 ). Erwartungswert: Siehe Übungsaufgabe 6.3 zum (alternativen) SimHash-Verfahren. Varianz hier nicht (Standardrechnung ähnlich wie bei F2 -Algorithmus). Satz 4.41: Seien R1 , R2 Relationen mit |R1 ⋊ ⋉ R2 | ≥ B1 und F2 (R1 ), F2 (R2 ) ≤ B2 . Seien ε, δ > 0. Dann lässt sich für r = 2 log(1/δ)/ε2 · B22 /B12 aus Sr (R1 ) und Sr (R2 ) eine (ε, δ)-Approximation von |R1 ⋊ ⋉ R2 | berechnen. 433 Beweis: Lemma und Tschebbyscheff liefern: Pr S(R1 )S(R2 ) − |R1 ⋊ ⋉ R2 | ≤ ε|R1 ⋊ ⋉ R2 | 2F2 (R1 )F2 (R2 ) ε2 |R1 ⋊ ⋉ R2 | 2 2B2 ≤ . ε2 B12 Probability-Amplification → Rest. ≤ 434 Algorithmische Ergebnisse für Normprobleme: Alles für Datenstromalgorithmen, die (ε, δ)-Approximation für Konstanten ε, δ berechnen. Ressourcen für Datenstromalgorithmus: L2 : S = O(log m + log n), T = O(log m polylog m + log n) (Abschnitt 4.6.1) Lk , k ∈ [0, 2] S, T = polylog(m, n, w ) (Abschnitte 4.6.2 (k = 1), 4.6.3 (k = 0)). S = O ℓ1−2/k · polylog(m, n) , T = poly(log m, log n, w ), ℓ = min{m, n}. Lk , k > 2: 435 4.7 Top-k -Listen Problem: Gegeben Datenstrom, berechne Top-k -Liste: Häufigste k Werte zusammen mit ihren abs. Häufigkeiten. Motivation: • Käuferverhalten in E-Commerce-Anwendung. • Top-k -Liste von Webseiten gemäß Ranking. • Zusammenfassung von Datenbank-Relation (größte Balken in Histogramm). • Internet-Traffic-Management: Anomalien / Engpässe. Ähnliches Problem: Häufigste Elemente Finde alle Daten mit Attributwert oberhalb von Schwellwert. Namen: Heavy Hitters, Hot Items, Iceberg Queries. . . 436 Top-1-Liste ist (im Wesentlichen) das Problem F∞ . Bei Universumsgröße m Platz (m) notwendig. → Betrachte Approximationen / Problem-Relaxationen. Definition 4.42: Top-k -(ε, δ)-Approximation Gegeben Datenstrom über U = {1, . . . , m} mit absoluten Häufigkeiten f1 ≥ f2 ≥ · · · ≥ fm . Will Menge T von k Paaren (Wert, absolute Häufigkeit), sodass mit Wahrscheinlichkeit mindestens 1 − δ: • Jeder Wert in T hat absolute Häufigkeit mindestens (1 − ε)fk . • Alle Werte mit absoluter Häufigkeit größer als (1 + ε)fk kommen in T vor. 437 Im Folgenden effienzenter Datenstromalgorithmus unter zusätzlichen Annahmen über Verteilung der Daten. Arbeit: Charikar, Chen und Farach-Colton (2004). Unter hier beschriebenen Annahmen sogar Schätzung aller absoluten Häufigkeiten möglich. Weitere Anwendungen z. B. bei raffinierteren Datenstromalgorithmen für Häufigkeitsmomente. 438 4.7.1 Schätzung aller Häufigkeiten Datenstrom a = (a1 , . . . , an ) mit Werten aus U = {1, . . . , m}, absolute Häufigkeiten f1 ≥ · · · ≥ fm . Idee: Benutze 2-fach unabhängige ZVs X1 , . . . , Xm ∈ {−1, 1}. Berechne wie in F2 -Algorithmus: m n X X Y := fjXj = Xa j . j=1 j=1 Es gilt: E(YX i ) = E X m j=1 fjXjXi = m X j=1 f j E(X j X i ) = f i . Super, damit alle absoluten Häufigkeiten und darauf basierende Probleme. . . 439 Natürlich nicht: E (YX i )2 = E Y 2 = F2 , V (YX i ) = F2 − f i2 . Fehlerschranke mit Tschebbyscheff zu schlecht. Idee für Abhilfe: • Intuition: Für kleine f i Summe Y zu sehr durch große Häufigkeitswerte verunreinigt“. ” • Verteile Gesamtsumme Y auf mehrere Zähler, die für Teilmengen des Wertebereichs zuständig. Genauer: • Benutze b ≤ m Zähler (typischerweise b ≪ m). • Ordne Wert j ∈ {1, . . . , m} zufälligen Zähler zu, der für diesen Wert zuständig“. ” 440 Algorithmus C OUNT S KETCH : • Wähle H ∈ H zufällig, H 2-fach unabhängige Hashklasse. • Berechne für z ∈ {1, . . . , b}: n X X Yz := [H(a j ) = z]Xa j = fjXj, j=1 j∈H −1 (z) Schätzer für f i : X i YH(i) . Behauptung: E(YH(i) X i ) = f i . Beweis: Für eine feste Hashfunktion h ∈ H ist X X Yh(i) X i = fjXjXi = fi + fjXjXi. j∈h−1 (h(i)) j∈h−1 (h(i)),j6=i Behauptung per Satz von der totalen Wahrscheinlichkeit. 441 Neuer Schätzer tatsächlich auch mit hoher Wahrscheinlichkeit gut – für geeignete Verteilungen: Satz 4.43 (Charikar u. a. 2004): q Pm >k 2 Sei b ≥ 8k , F2 := i=k+1 f i und γ := F2>k /b. Dann gilt für i ∈ {1, . . . , m}: Pr{|YH(i) X i − f i | ≤ 8γ } ≥ 5/8. Beweis: Übersicht über Schritte: 1 Kleine Varianz, falls keiner der sehr häufigen Werte“ ” 1, . . . , k auf Zähler für f i gehasht. 2 Sehr häufige Werte nur mit kleiner Wskt. auf Zähler für f i gehasht. 3 Falls kleine Varianz, dann mit großer Wskt. Abweichung des Schätzers von f i klein. 442 Erinnerung: Schätzer ist YH(i) X i , es gilt E(YH(i) X i ) = f i und X X Yh(i) X i = fjXjXi = fi + fjXjXi. j∈h−1 (h(i)) j∈h−1 (h(i)),j6=i Varianz: Feste Hashfunktion h, sei z := h(i). Arbeite unter Bedingung, dass h−1 (z) ∩ {1, . . . , k } = ∅. Dann: 2 V (Yh(i) X i ) = E Yh(i) X i − E(Yh(i) X i ) X = E(f j X j X i · fℓ Xℓ X i ) j,ℓ∈h−1 (z)−{i} = X f j2 ≤ j∈h−1 (z),j6=i Definiere v >k (h) := P X f j2 . j∈h−1 (z),j>k 2 j∈h−1 (z),j>k f j . 443