Skróty filtra Bloom: więcej czy więcej?


15

Podczas wdrażania filtra Bloom tradycyjne podejście wymaga wielu niezależnych funkcji skrótu. Kirsch i Mitzenmacher pokazali, że tak naprawdę potrzebujesz tylko dwóch, a resztę możesz wygenerować jako kombinacje liniowe.

Moje pytanie brzmi: jaka tak naprawdę jest różnica między dwiema funkcjami skrótu i ​​jedną z podwójną entropią?

Wynika to z patrzenia na to, co faktycznie robisz z wynikami funkcji skrótu: weźmiesz (powiedzmy) 64-bitową wartość skrótu i ​​przeskalujesz ją do rozmiaru wektora bitowego, który prawdopodobnie jest znacznie mniejszy niż 2 64 . Jest to wyraźnie transformacja tracąca entropię (z wyjątkiem rzadkiego przypadku, gdy rozmiar skrótu i ​​pojemność filtra dokładnie się pokrywają). Zakładając, że mój filtr ma mniej niż 2 32 wpisy, co powstrzyma mnie przed podzieleniem mojej 64-bitowej wartości skrótu na dwa 32-bitowe skróty i przyjmowanie ich liniowych kombinacji? Lub używając go do wysiewu PRNG?

Innymi słowy, ile informacji faktycznie muszę wiedzieć o każdym elemencie, który wstawiam do filtra Blooma, aby mieć pewność, że utrzymuje się standardowy współczynnik fałszywie dodatnich? Lub bardziej ogólnie, jaki jest związek między tym, jak dobrze potrafię odróżnić elementy (ile bitów używam do ich opisania), a tym, jak działa mój filtr Bloom?

Wygląda na to, że mogę uniknąć bitów dla filtra o rozmiarze lub równoważnie bitów do przechowywania elementów z fałszywie dodatnim prawdopodobieństwem ....2)lg(m)m2)(lg(-nlnp)-2)lg(ln2)))np

Odpowiedzi:


16

Masz rację, myśląc o funkcjach skrótu w kategoriach „losowych bitów wyprodukowanych”. Więc jeśli masz funkcję skrótu, która tworzy skrót 64-bitowy, możesz traktować go jako 4 skróty 16-bitowe (przez podział) i tak dalej.

Dla schematu opisanego powyżej (który należy przypisać Dillingerowi i Manoliosowi; Kirsch / Mitzenmacher właśnie go przeanalizował), oznacza to, że masz rację; jeśli masz pojedynczą funkcję skrótu z bitami , wszystko powinno być w porządku.2)lg(m)


5
Witaj w cstheory, Michael :)
Suresh Venkat
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.