Pravděpodobnostní datové struktury: Jaký je rozdíl mezi filtry MinHash a Bloom?


Odpověď 1:

MinHash se primárně používá k rychlému a přesnému odhadu podobnosti Jaccardu mezi dvěma věcmi (například dvěma dokumenty, dvěma sadami ...).

Bloom filtr je efektivní datová struktura, která vám umožňuje rychle vyseknout prvky, které nejsou součástí sady, s možností, že se jim nepodaří všechny vyseknout.

Oba mají pravděpodobnostní charakter, ale účel je velmi odlišný.

MinHash je velmi dobře známý a velmi často používaný při získávání informací.


Odpověď 2:

Hlavní nevýhodou blokových filtrů pro hledání podobnosti je to, že nasycují, když se naplní, takže pokud vaše sady mohou mít velmi odlišné velikosti, získáte špatné odhady podobnosti pro velké.

Posloupnost minhashů však není nasycená, Hammingova vzdálenost mezi dvěma sekvencemi minhash však stále zůstává nezaujatým odhadem podobnosti Jaccard.

Často se však na výrobu náčrtků nepoužívají minhaši. Primárním případem použití pro ně je vytvoření klíčů, které se použijí pro klastrování s úložištěm klíčové hodnoty, a to je něco, co s bloomovým filtrem nemůžete udělat, pokud se nezabýváte pouze shodami, které jsou velmi přesné. Více se o tom dočtete zde: MinHashing