Locality Sensitive Hashing (LSH) est une méthode de recherche approximative dans des espaces de grande dimension. C'est une solution au problème de la malédiction de la dimension qui apparait lors d'une recherche des plus proches voisins en grande dimension. L'idée principale est d'utiliser une famille de fonction de hachage choisies telles que des points proches dans l'espace d'origine aient une forte probabilité d'avoir la même valeur de hachage. La méthode a de nombreuses applications en vision artificielle, traitement automatique de la langue, bio-informatique...
Une famille LSH
Par construction, les fonctions de hachage doivent permettre aux points proches d'entrer fréquemment en collision (i.e. h(p) = h(q)) et inversement, les points éloignés ne doivent entrer que rarement en collision. Pour que la famille LSH soit intéressante, il faut donc P1 > P2. La famille
Une définition alternative est définie par rapport à un univers U possédant une fonction de simlarité
Une façon simple de construire une famille LSH est par échantillonnage de bit. Cette approche est adaptée à la distance de Hamming dans un espace binaire de dimension d, i.e. un point de l'espace appartient à {0,1}d. La famille
Cette famille possède les paramètres suivants :
LSH a été appliqué dans plusieurs domaines, en particulier pour la recherche d'image par le contenu, la comparaison de sequence d'ADN, la recherche par similarité de documents audios.
L'application principale de LSH est de fournir un algorithme efficace de recherche des plus proches voisins.
L'algorithme donne une méthode de construction d'une famille LSH
En pré-traitement, l'algorithme définit donc une nouvelle famille
L'algorithme construit ensuite L tables de hachage, correspondant chacune à une fonction de hachage g. La je table de hachage contient alors les points de
Pour un point requête q, l'algorithme itère sur les L fonctions de hachage g. Pour chaque g considérée, on trouve les points hachés à la même position que le point requête q dans la table correspondante. Le processus s'arrête dès qu'un point r est trouvé tel que
Étant donné les paramètres k et L, l'algorithme a les garanties de performance suivantes :