Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Ungefähr Populär

Ungefähr Populär

Trackingdaten zur Sortierung von Suchergebnissen nutzen

Bb0a552dd05cc0f869884cfb41e69084?s=128

Tobias Kässmann

June 29, 2016
Tweet

More Decks by Tobias Kässmann

Other Decks in Technology

Transcript

  1. Ungefähr populär Jörg Rathlev & Tobias Kässmann Trackingdaten zur Sortierung

    von Suchergebnissen nutzen
  2. None
  3. None
  4. < 3M 100M Zeit Produkte we are here

  5. Sonstiges 20 % Suche 80 %

  6. vs.

  7. • Global • pro Portal • pro Suchanfrage • …

  8. rock hose tv jeans 129 64 202 98 120 …

  9. None
  10. Bloomfilter Zugehörigkeit zu Mengen

  11. 0 0 0 0 0 0 0 0 0 0

  12. 0 1 0 1 0 0 0 0 0 1

    „Otto“ hash1 hash2 hash3
  13. 0 1 1 1 0 1 0 0 0 1

    „OGdev“ hash1 hash2 hash3
  14. 0 1 1 1 0 1 0 0 0 1

    „OGdev“ hash1 hash2 hash3 Wenn alle Werte Eins sind,
 ist das Wort wahrscheinlich in der Menge enthalten
  15. 0 1 1 1 0 1 0 0 0 1

    „Kollision“ hash1 hash2 hash3 Kollisionen bei allen Hash-
 Funktionen führen zu falsch positiven Antworten
  16. 0 1 1 1 0 1 0 0 0 1

    „Test“ hash1 hash2 hash3 Wenn an mindestens einer
 Stelle eine Null steht, ist das
 Wort definitiv nicht enthalten
  17. Demo

  18. Bloom-Filter: Eigenschaften • Konstante Speichergröße • Konstante Zugriffszeit (Einfügen &

    Abfrage) • Falsch positive Antworten möglich;
 negative Antworten sind exakt • Elemente können nicht entfernt werden
  19. Bloom-Filter: Parameter • Anzahl Hash-Funktionen (k) • Größe des Bitsets

    (m) • Wahrscheinlichkeit falsch positiver Antworten:
 1 − 1 − 1 m kn k
  20. Guava Library BloomFilter<Thing> filter = BloomFilter.create(funnel, 100, 0.01);
 filter.put(element); if

    (filter.mightContain(element)) { … } Hash-Funktion erwartete Anzahl Elemente Falsch-Positiv-Rate
  21. Bloom-Filter: Anwendungsfälle • Langsame Zugriffe auf nicht existierende Elemente vermeiden

    • Elemente erst beim zweiten Zugriff in einen Cache einfügen • …
  22. Count-Min-Sketch Zählung von Häufigkeit

  23. 0 0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 3
  24. 0 0 1 0 0 0 0 0 0 0

    0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 2 3 „Otto“ hash1 hash2 hash3
  25. 0 0 2 0 0 0 0 0 0 0

    0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 2 3 „Otto“ hash1 hash2 hash3
  26. 0 0 2 0 0 0 0 0 1 0

    0 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 2 1 2 3 „OGdev“ hash2 hash1 hash3
  27. 0 0 3 0 0 0 0 0 1 0

    0 2 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 2 0 0 0 0 2 1 2 3 „Kollision“ hash1 hash2 hash3
  28. 0 0 3 0 0 0 0 0 1 0

    0 2 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 2 0 0 0 0 2 1 2 3 „Otto“ hash1 hash2 hash3 3 2 2
  29. 0 0 3 0 0 0 0 0 1 0

    0 2 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 2 0 0 0 0 2 1 2 3 „Otto“ hash1 hash2 hash3 3 2 2 min=2
  30. 0 0 3 0 0 0 0 0 1 0

    0 2 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 2 0 0 0 0 2 1 2 3 „OGdev“ 1 1 2 min=1 hash1 hash2 hash3
  31. Count-Min-Sketch: Eigenschaften • Konstante Speichergröße • Konstante Zugriffszeit (Einfügen &

    Abfrage) • Ausgelesener Wert ist möglicherweise zu hoch, aber nicht zu niedrig • Elemente können nicht entfernt werden
  32. Count-Min-Sketch: Parameter • Tiefe (Anzahl Hash-Funktionen) • Breite (Anzahl Werte

    pro Zeile) • Auswahl über akzeptierte Abweichung mit Konfidenz (max. ε Abweichung mit Wahrscheinlichkeit p)
  33. None
  34. Relevanz Zeit

  35. Exponentielles Abstrafen

  36. Search Technology Meetup Hamburg