Estructuras de datos probabilísticas: ¿Cuál es la diferencia entre los filtros MinHash y Bloom?


Respuesta 1:

MinHash se utiliza principalmente para estimar de forma rápida y precisa la similitud de Jaccard entre dos cosas (por ejemplo, dos documentos, dos conjuntos ...).

Un filtro Bloom es una estructura de datos eficiente que le permite eliminar rápidamente elementos que no forman parte de un conjunto, con la posibilidad de que no pueda eliminarlos todos.

Ambos son de naturaleza probabilística, pero el propósito es muy diferente.

MinHash es muy conocido y se usa con mucha frecuencia en la recuperación de información.


Respuesta 2:

La principal desventaja de los filtros de floración para la búsqueda de similitud es que se saturan cuando se llenan, por lo que si sus conjuntos pueden tener tamaños muy diferentes, obtendrá estimaciones pobres de la similitud para los grandes.

Sin embargo, una secuencia de minhashes no se satura, la distancia entre dos secuencias minhash sigue siendo una estimación imparcial de la similitud de Jaccard.

Sin embargo, a menudo, los minhashes no se usan para producir bocetos. Un caso de uso principal para ellos es crear claves para usar para la agrupación con un almacén de valores clave, y esto es algo que no puede hacer con un filtro de floración a menos que solo le interesen las coincidencias que están muy próximas a las exactas. Puede leer más sobre eso aquí: MinHashing