¿Cómo funciona LSH, ‘hashing local sensible’, para calcular el valor de hash?

Depende de la métrica que use para juzgar la similitud entre los datos. LSH intenta mezclar elementos similares al mismo cubo y la forma de hacerlo depende de lo que usemos como medida de similitud / distancia.

Si usa Jaccard como su medida de distancia / similitud, entonces LSH se puede construir a través de hashes mínimos. Si usa la distancia euclidiana, LSH se basa en proyecciones aleatorias.

Considere que usa la distancia euclidiana. Sus datos consisten en vectores en n dimensiones y su objetivo es hacer hash vectores que estén cerca del mismo cubo.

Por lo tanto, puede crear un vector aleatorio de n dimensiones y calcular el producto de punto entre ese vector aleatorio y sus datos. Los resultados son números reales, por lo que proyecta desde n dimensiones hasta una línea aleatoria. Entonces, si tienes b cubos, divides los números reales en intervalos b. Entonces la función hash es

H (x) = punto (r, x) / w

Donde r es un vector de proyección aleatorio yw es un parámetro.

Piensa ahora en 2d imagina que tus puntos están muy separados en la dimensión y pero área igual en x si tu proyección aleatoria es paralela a x, entonces la función dividirá los puntos en el mismo cubo. Para evitar falsos negativos y falsos positivos, debe utilizar no una sino varias funciones hash y tablas hash y luego combinar sus resultados.

Luis.