Cómo implementar un hashing sensible a la localidad

Interesante pregunta.

Si convierte la función para valores numéricos a 1 o 0 según un umbral, entonces tiene una distancia de Hamming entre los puntos y es muy fácil construir familias LSH para eso.

Si convierte cada variable categórica en una variable binaria a través de una codificación única o similar, puede usar la distancia euclidiana entre vectores y nuevamente hay familias LSH para la distancia euclidiana.

Otra opción es tener dos implementaciones LSH diferentes, una para los atributos categóricos basados ​​en Hamming y otra para los atributos numéricos basados ​​en la distancia euclidiana (o angular) y luego combinar los resultados de ambas familias LSH usando construcciones AND u OR.

El método que funcionará mejor depende en gran medida de los datos reales y del uso que tenga en mente para LSH, por lo que deberá realizar algunos experimentos.