Articulo de referencia

Hashing sensible a la localidad

En informática , el hashing sensible a la localidad ( LSH ) es una técnica de hashing difuso que asigna elementos de entrada similares a los mismos "cubos" con alta probabilidad...

En informática , el hashing sensible a la localidad ( LSH ) es una técnica de hashing difuso que asigna elementos de entrada similares a los mismos "cubos" con alta probabilidad. [ 1 ] El número de cubos es mucho menor que el universo de posibles elementos de entrada. [ 1 ] Dado que los elementos similares terminan en los mismos cubos, esta técnica se puede utilizar para la agrupación de datos y la búsqueda del vecino más cercano . Se diferencia de las técnicas de hashing convencionales en que las colisiones de hash se maximizan, no se minimizan. Alternativamente, la técnica puede verse como una forma de reducir la dimensionalidad de datos de alta dimensión; los elementos de entrada de alta dimensión se pueden reducir a versiones de baja dimensión mientras se preservan las distancias relativas entre los elementos.

Los algoritmos de búsqueda aproximada del vecino más cercano basados ​​en funciones hash generalmente utilizan una de dos categorías principales de métodos de hash: métodos independientes de los datos, como el hash sensible a la localidad (LSH); o métodos dependientes de los datos, como el hash que preserva la localidad (LPH). [ 2 ] [ 3 ]

El hash que preserva la localidad se ideó inicialmente como una forma de facilitar el procesamiento en paralelo de datos en implementaciones de algoritmos masivamente paralelos que utilizan enrutamiento aleatorio y hash universal para reducir la contención de memoria y la congestión de la red . [ 4 ] [ 5 ]

Definiciones

Una familia finitaF{\displaystyle {\mathcal {F}}}de funcionesh:METROS{\displaystyle h\colon M\to S}se define como una familia LSH [ 1 ] [ 6 ] [ 7 ] para

  • un espacio métricoMETRO=(METRO,d){\displaystyle {\mathcal {M}}=(M,d)},
  • un umbralr>0{\displaystyle r>0},
  • un factor de aproximacióndo>1{\displaystyle c>1},
  • y probabilidadespag1>pag2{\displaystyle p_{1}>p_{2}}

si satisface la siguiente condición. Para cualesquiera dos puntosa,bMETRO{\displaystyle a,b\in M}y una función hashh{\displaystyle h}elegido uniformemente al azar deF{\displaystyle {\mathcal {F}}}:

  • Sid(a,b)r{\displaystyle d(a,b)\leq r}, entoncesh(a)=h(b){\displaystyle h(a)=h(b)}(es decir, a y b chocan) con una probabilidad de al menospag1{\displaystyle p_{1}},
  • Sid(a,b)dor{\displaystyle d(a,b)\geq cr}, entoncesh(a)=h(b){\displaystyle h(a)=h(b)}con probabilidad como máximopag2{\displaystyle p_{2}}.

Una familia asíF{\displaystyle {\mathcal {F}}}se llama(r,dor,pag1,pag2){\displaystyle (r,cr,p_{1},p_{2})}-sensible.

LSH con respecto a una medida de similitud

Alternativamente [ 8 ] es posible definir una familia LSH en un universo de elementos U dotado de una función de similitud.ϕ:U×U[0,1]{\displaystyle \phi \colon U\times U\to [0,1]}En este contexto, un esquema LSH es una familia de funciones hash H acopladas con una distribución de probabilidad D sobre H tal que una funciónhH{\displaystyle h\in H}elegido según D satisfacePAGr[h(a)=h(b)]=ϕ(a,b){\displaystyle Pr[h(a)=h(b)]=\phi (a,b)}para cadaa,bU{\displaystyle a,b\in U}.

Amplificación

Dado un(d1,d2,pag1,pag2){\displaystyle (d_{1},d_{2},p_{1},p_{2})}-familia sensibleF{\displaystyle {\mathcal {F}}}podemos construir nuevas familiasGRAMO{\displaystyle {\mathcal {G}}}ya sea mediante la construcción AND o la construcción OR deF{\displaystyle {\mathcal {F}}}. [ 1 ]

Para crear una construcción AND, definimos una nueva familia.GRAMO{\displaystyle {\mathcal {G}}}de funciones hash g , donde cada función g se construye a partir de k funciones aleatorias.h1,,hk{\displaystyle h_{1},\ldots ,h_{k}}deF{\displaystyle {\mathcal {F}}}Entonces decimos que para una función hashgramoGRAMO{\displaystyle g\in {\mathcal {G}}},gramo(incógnita)=gramo(y){\displaystyle g(x)=g(y)}si y solo si todoshi(incógnita)=hi(y){\displaystyle h_{i}(x)=h_{i}(y)}parai=1,2,,k{\displaystyle i=1,2,\ldots ,k}Dado que los miembros deF{\displaystyle {\mathcal {F}}}son elegidos independientemente para cualquiergramoGRAMO{\displaystyle g\in {\mathcal {G}}},GRAMO{\displaystyle {\mathcal {G}}}es un(d1,d2,pag1k,pag2k){\displaystyle (d_{1},d_{2},p_{1}^{k},p_{2}^{k})}-familia sensible.

Para crear una construcción OR, definimos una nueva familia.GRAMO{\displaystyle {\mathcal {G}}}de funciones hash g , donde cada función g se construye a partir de k funciones aleatorias.h1,,hk{\displaystyle h_{1},\ldots ,h_{k}}deF{\displaystyle {\mathcal {F}}}Entonces decimos que para una función hashgramoGRAMO{\displaystyle g\in {\mathcal {G}}},gramo(incógnita)=gramo(y){\displaystyle g(x)=g(y)}si y solo sihi(incógnita)=hi(y){\displaystyle h_{i}(x)=h_{i}(y)}para uno o más valores de i . Dado que los miembros deF{\displaystyle {\mathcal {F}}}son elegidos independientemente para cualquiergramoGRAMO{\displaystyle g\in {\mathcal {G}}},GRAMO{\displaystyle {\mathcal {G}}}es un(d1,d2,1(1pag1)k,1(1pag2)k){\displaystyle (d_{1},d_{2},1-(1-p_{1})^{k},1-(1-p_{2})^{k})}-familia sensible.

Aplicaciones

LSH se ha aplicado a varios ámbitos problemáticos, entre ellos:

Métodos

Muestreo de bits para la distancia de Hamming

Una de las formas más sencillas de construir una familia LSH es mediante el muestreo de bits. [ 7 ] Este enfoque funciona para la distancia de Hamming sobre vectores de d dimensiones.{0,1}d{\displaystyle \{0,1\}^{d}}Aquí, la familiaF{\displaystyle {\mathcal {F}}}de funciones hash es simplemente la familia de todas las proyecciones de puntos en uno de losd{\displaystyle d}coordenadas, es decir,F={h:{0,1}d{0,1}h(incógnita)=incógnitai para algunos i{1,,d}}{\displaystyle {\mathcal {F}}=\{h\colon \{0,1\}^{d}\to \{0,1\}\mid h(x)=x_{i}{\text{ para algún }}i\in \{1,\ldots ,d\}\}}, dóndeincógnitai{\displaystyle x_{i}}es eli{\displaystyle i}la coordenada deincógnita{\displaystyle x}Una función aleatoriah{\displaystyle h}deF{\displaystyle {\mathcal {F}}}Simplemente selecciona un bit aleatorio del punto de entrada. Esta familia tiene los siguientes parámetros:PAG1=1R/d{\displaystyle P_{1}=1-R/d},PAG2=1doR/d{\displaystyle P_{2}=1-cR/d}. Es decir, cualesquiera dos vectoresincógnita,y{\displaystyle x,y}con distancia de Hamming como máximoR{\displaystyle R}colisionar bajo una fuerza aleatoriah{\displaystyle h}con probabilidad al menosPAG1{\displaystyle P_{1}}. Cualquierincógnita,y{\displaystyle x,y}con distancia de Hamming al menosdoR{\displaystyle cR}colisionar con probabilidad como máximoPAG2{\displaystyle P_{2}}.

Permutaciones independientes mínimas

Supongamos que U está compuesto por subconjuntos de algún conjunto base de elementos enumerables S y que la función de similitud de interés es el índice de Jaccard J. Si π es una permutación de los índices de S , paraAS{\displaystyle A\subseteq S}dejarh(A)=minaA{π(a)}{\displaystyle h(A)=\min _{a\in A}\{\pi (a)\}}Cada posible elección de π define una única función hash h que asigna conjuntos de entrada a elementos de S.

Definimos la familia de funciones H como el conjunto de todas esas funciones y sea D la distribución uniforme . Dados dos conjuntosA,BS{\displaystyle A,B\subseteq S}el evento queh(A)=h(B){\displaystyle h(A)=h(B)}corresponde exactamente al evento de que el minimizador de π sobreAB{\displaystyle A\cup B}yace dentroAB{\displaystyle A\cap B}Como h fue elegido uniformemente al azar,PAGr[h(A)=h(B)]=J(A,B){\displaystyle Pr[h(A)=h(B)]=J(A,B)\,}y(H,D){\displaystyle (H,D)\,}Definir un esquema LSH para el índice de Jaccard.

Debido a que el grupo simétrico de n elementos tiene tamaño n !, elegir una permutación verdaderamente aleatoria del grupo simétrico completo es inviable incluso para un tamaño moderado de n !. Debido a este hecho, se ha trabajado significativamente en encontrar una familia de permutaciones que sea "independiente en min.", una familia de permutaciones para la cual cada elemento del dominio tiene la misma probabilidad de ser el mínimo bajo un π elegido aleatoriamente . Se ha establecido que una familia de permutaciones independiente en min." tiene al menos tamañolcm{1,2,,norte}minorteo(norte){\displaystyle \operatorname {lcm} \{\,1,2,\ldots ,n\,\}\geq e^{no(n)}}, [ 20 ] y que este límite es estrecho. [ 21 ]

Debido a que las familias min-independientes son demasiado grandes para aplicaciones prácticas, se introducen dos nociones variantes de independencia min-independiente: familias de permutaciones min-independientes restringidas y familias min-independientes aproximadas. La independencia min-independiente restringida es la propiedad de independencia min-independiente restringida a ciertos conjuntos de cardinalidad como máximo k . [ 22 ] La independencia min-independiente aproximada difiere de la propiedad en como máximo un ε fijo . [ 23 ]

métodos de código abierto

Hachís de Nilsimsa

Nilsimsa es un algoritmo de hash sensible a la localidad utilizado en esfuerzos antispam . [ 24 ] El objetivo de Nilsimsa es generar un resumen hash de un mensaje de correo electrónico de tal manera que los resúmenes de dos mensajes similares sean similares entre sí. El artículo sugiere que Nilsimsa satisface tres requisitos:

  1. El resumen que identifica cada mensaje no debería variar significativamente en caso de cambios que puedan producirse automáticamente.
  2. La codificación debe ser robusta frente a ataques intencionados.
  3. La codificación debería admitir un riesgo extremadamente bajo de falsos positivos.

Las pruebas realizadas en el artículo sobre una variedad de tipos de archivos identificaron que el hash Nilsimsa tiene una tasa de falsos positivos significativamente mayor en comparación con otros esquemas de resumen de similitud como TLSH, Ssdeep y Sdhash. [ 25 ]

TLSH

TLSH es un algoritmo de hash sensible a la localidad diseñado para una variedad de aplicaciones de seguridad y forense digital. [ 18 ] El objetivo de TLSH es generar resúmenes hash para mensajes de tal manera que las distancias bajas entre los resúmenes indiquen que sus mensajes correspondientes probablemente sean similares.

Existe una implementación de TLSH disponible como software de código abierto . [ 26 ]

Proyección aleatoria

θ(,v)π{\displaystyle {\frac {\theta (u,v)}{\pi }}}es aproximadamente proporcional a1porque(θ(,v)){\displaystyle 1-\cos(\theta (u,v))}en el intervalo [0,π{\displaystyle \pi }

El método de proyección aleatoria de LSH debido a Moses Charikar [ 8 ] llamado SimHash (también llamado a veces arccos [ 27 ] ) utiliza una aproximación de la distancia coseno entre vectores. La técnica se utilizó para aproximar el problema de corte máximo NP-completo . [ 8 ]

La idea básica de esta técnica consiste en elegir inicialmente un hiperplano aleatorio (definido por un vector unitario normal r ) y utilizar dicho hiperplano para aplicar una función hash a los vectores de entrada.

Dado un vector de entrada v y un hiperplano definido por r , dejamosh(v)=sgn(vr){\displaystyle h(v)=\operatorname {sgn}(v\cdot r)}. Eso es, h(v)=±1{\displaystyle h(v)=\pm 1}dependiendo de en qué lado del hiperplano v se encuentre. De esta manera, cada posible elección de un hiperplano aleatorio r puede interpretarse como una función hash.h(v){\displaystyle h(v)}.

Para dos vectores u,v con ánguloθ(,v){\displaystyle \theta (u,v)}Entre ellos, se puede demostrar que

PAGr[h()=h(v)]=1θ(,v)π.{\displaystyle Pr[h(u)=h(v)]=1-{\frac {\theta (u,v)}{\pi }}.}

Dado que la relación entreθ(,v)π{\displaystyle {\frac {\theta (u,v)}{\pi }}}y1porque(θ(,v)){\displaystyle 1-\cos(\theta (u,v))}es al menos 0,439 cuandoθ(,v)[0,π]{\displaystyle \theta (u,v)\in [0,\pi ]}, [ 8 ] [ 28 ] la probabilidad de que dos vectores estén en lados diferentes del hiperplano aleatorio es aproximadamente proporcional a la distancia coseno entre ellos.

Distribuciones estables

La función hash [ 29 ]ha,b(υ):Rdnorte{\displaystyle h_{\mathbf {a} ,b}({\boldsymbol {\upsilon }}):{\mathcal {R}}^{d}\to {\mathcal {N}}}mapea un vector d -dimensionalυ{\displaystyle {\boldsymbol {\upsilon }}}en el conjunto de enteros. Cada función hash de la familia está indexada por una elección aleatoria.a{\displaystyle \mathbf {a} }y b{\displaystyle b}dóndea{\displaystyle \mathbf {a} }es un vector d -dimensional con entradas elegidas independientemente de una distribución estable y b{\displaystyle b}es un número real elegido uniformemente del intervalo [0,r]. Para un fijo a,b{\displaystyle \mathbf {a} ,b}la función hashha,b{\displaystyle h_{\mathbf {a} ,b}}es dado porha,b(υ)=aυ+br{\displaystyle h_{\mathbf {a} ,b}({\boldsymbol {\upsilon }})=\left\lfloor {\frac {\mathbf {a} \cdot {\boldsymbol {\upsilon }}+b}{r}}\right\rfloor }.

Se han propuesto otros métodos de construcción para funciones hash para que se ajusten mejor a los datos. [ 30 ] En particular, las funciones hash k-means son mejores en la práctica que las funciones hash basadas en proyección, pero sin ninguna garantía teórica.

Hashing semántico

El hash semántico es una técnica que intenta asignar elementos de entrada a direcciones de manera que las entradas más cercanas tengan una mayor similitud semántica . [ 31 ] Los códigos hash se encuentran mediante el entrenamiento de una red neuronal artificial o un modelo gráfico .

Una de las principales aplicaciones de LSH es proporcionar un método para algoritmos de búsqueda de vecinos más cercanos aproximados eficientes . Consideremos una familia LSH.F{\displaystyle {\mathcal {F}}}. El algoritmo tiene dos parámetros principales: el parámetro de ancho k y el número de tablas hash L .

En el primer paso, definimos una nueva familia.GRAMO{\displaystyle {\mathcal {G}}}de funciones hash g , donde cada función g se obtiene concatenando k funcionesh1,,hk{\displaystyle h_{1},\ldots ,h_{k}}deF{\displaystyle {\mathcal {F}}}, es decir,gramo(pag)=[h1(pag),,hk(pag)]{\displaystyle g(p)=[h_{1}(p),\ldots ,h_{k}(p)]}En otras palabras, una función hash aleatoria g se obtiene concatenando k funciones hash elegidas aleatoriamente deF{\displaystyle {\mathcal {F}}}. A continuación, el algoritmo construye L tablas hash, cada una correspondiente a una función hash g diferente elegida aleatoriamente .

En el paso de preprocesamiento, aplicamos una función hash a todos los puntos n- dimensionales del conjunto de datos S en cada una de las L tablas hash. Dado que las tablas hash resultantes tienen solo n entradas distintas de cero, se puede reducir la cantidad de memoria utilizada por cada tabla hash aO(norte){\displaystyle O(n)}utilizando funciones hash estándar .

Dado un punto de consulta q , el algoritmo itera sobre las L funciones hash g . Para cada g considerada, recupera los puntos de datos que se encuentran en el mismo cubo que q . El proceso se detiene tan pronto como se encuentra un punto a una distancia cR de q .

Dados los parámetros k y L , el algoritmo ofrece las siguientes garantías de rendimiento:

  • tiempo de preprocesamiento:O(norteLkt){\displaystyle O(nLkt)}donde t es el tiempo para evaluar una función.hF{\displaystyle h\in {\mathcal {F}}}en un punto de entrada p ;
  • espacio:O(norteL){\displaystyle O(nL)}, más el espacio para almacenar puntos de datos;
  • tiempo de consulta:O(L(kt+dnortePAG2k)){\displaystyle O(L(kt+dnP_{2}^{k}))};
  • El algoritmo logra encontrar un punto dentro de una distancia cR de q (si existe un punto dentro de una distancia R ) con una probabilidad al menos1(1PAG1k)L{\displaystyle 1-(1-P_{1}^{k})^{L}};

Para una relación de aproximación fijado=1+ϵ{\displaystyle c=1+\epsilon }y probabilidadesPAG1{\displaystyle P_{1}}yPAG2{\displaystyle P_{2}}, uno puede establecerk=registronorteregistro1/PAG2{\displaystyle k=\left\lceil {\tfrac {\log n}{\log 1/P_{2}}}\right\rceil }yL=PAG1k=O(norteρPAG11){\displaystyle L=\lceil P_{1}^{-k}\rceil =O(n^{\rho }P_{1}^{-1})}, dóndeρ=registroPAG1registroPAG2{\displaystyle \rho ={\tfrac {\log P_{1}}{\log P_{2}}}}Entonces se obtienen las siguientes garantías de rendimiento:

  • tiempo de preprocesamiento:O(norte1+ρPAG11kt){\displaystyle O(n^{1+\rho }P_{1}^{-1}kt)};
  • espacio:O(norte1+ρPAG11){\displaystyle O(n^{1+\rho }P_{1}^{-1})}, más el espacio para almacenar puntos de datos;
  • tiempo de consulta:O(norteρPAG11(kt+d)){\displaystyle O(n^{\rho }P_{1}^{-1}(kt+d))};

Encontrar el vecino más cercano sin dimensionalidad fija

Para generalizar el algoritmo anterior sin que el radio R sea fijo, podemos tomar el algoritmo y realizar una especie de búsqueda binaria sobre R. Se ha demostrado [ 32 ] que existe una estructura de datos para el vecino más cercano aproximado con las siguientes garantías de rendimiento:

  • espacio:O(norte1+ρPAG11dregistro2norte){\displaystyle O(n^{1+\rho }P_{1}^{-1}d\log ^{2}n)};
  • tiempo de consulta:O(norteρPAG11(kt+d)registronorte){\displaystyle O(n^{\rho }P_{1}^{-1}(kt+d)\log n)};
  • El algoritmo logra encontrar al vecino más cercano con una probabilidad de al menos1((1PAG1k)Lregistronorte){\displaystyle 1-((1-P_{1}^{k})^{L}\log n)};

mejoras

Cuando t es grande, es posible reducir el tiempo de hash deO(norteρ){\displaystyle O(n^{\rho })}Esto fue demostrado por [ 33 ] y [ 34 ] , que dieron

  • tiempo de consulta:O(tregistro2(1/PAG2)/PAG1+norteρ(d+1/PAG1)){\displaystyle O(t\log ^{2}(1/P_{2})/P_{1}+n^{\rho }(d+1/P_{1}))};
  • espacio:O(norte1+ρ/PAG1+registro2(1/PAG2)/PAG1){\displaystyle O(n^{1+\rho }/P_{1}+\log ^{2}(1/P_{2})/P_{1})};

También es a veces el caso que el factor1/PAG1{\displaystyle 1/P_{1}}puede ser muy grande. Esto sucede, por ejemplo, con los datos de similitud de Jaccard , donde incluso el vecino más similar a menudo tiene una similitud de Jaccard bastante baja con la consulta. En [ 35 ] se mostró cómo reducir el tiempo de consulta aO(norteρ/PAG11ρ){\displaystyle O(n^{\rho }/P_{1}^{1-\rho })}(sin incluir los costos de hash) y de manera similar el uso del espacio.

Véase también

Referencias

  1. 1 2 3 4 Rajaraman, A.; Ullman, J. (2010). "Minería de conjuntos de datos masivos, Cap. 3" .
  2. Zhao, Kang; Lu, Hongtao; Mei, Jincheng (2014). Hashing que preserva la localidad . Conferencia AAAI sobre Inteligencia Artificial. Vol. 28. pp. 2874–2880 .  
  3. ^ Tsai, Yi-Hsuan; Yang, Ming-Hsuan (octubre de 2014). "Hashing que preserva la localidad". Conferencia internacional IEEE 2014 sobre procesamiento de imágenes (ICIP) . págs. 2988–2992 . doi : 10.1109/ICIP.2014.7025604 . ISBN  978-1-4799-5751-4. ISSN 1522-4880 . S2CID 8024458 .  
  4. 1 2 Chin, Andrew (1991). Problemas de complejidad en la computación paralela de propósito general (DPhil). Universidad de Oxford. pp. 87– 95. 
  5. 1 2 Chin, Andrew (1994). "Funciones hash que preservan la localidad para computación paralela de propósito general" (PDF) . Algorithmica . 12 ( 2–3 ): 170–181 . doi : 10.1007/BF01185209 . S2CID 18108051 . 
  6. Gionis, A.; Indyk, P. ; Motwani, R. (1999). "Búsqueda de similitud en altas dimensiones mediante hashing" . Actas de la 25.ª Conferencia de bases de datos muy grandes (VLDB) .
  7. 1 2 Indyk, Piotr .; Motwani, Rajeev . (1998). "Vecinos más cercanos aproximados: hacia la eliminación de la maldición de la dimensionalidad." . Actas del 30º Simposio sobre Teoría de la Computación .
  8. 1 2 3 4 Charikar, Moses S. (2002). "Técnicas de estimación de similitud a partir de algoritmos de redondeo". Actas del 34.º Simposio Anual de la ACM sobre Teoría de la Computación . págs. 380–388 . CiteSeerX 10.1.1.147.4064 . doi : 10.1145/509907.509965 . ISBN   1-58113-495-9.
  9. Das, Abhinandan S.; et al. (2007), "Personalización de noticias de Google: filtrado colaborativo en línea escalable", Actas de la 16.ª conferencia internacional sobre la World Wide Web , págs. 271–280 , doi : 10.1145/1242572.1242610 , ISBN   9781595936547, S2CID 207163129 .
  10. Koga, Hisashi; Tetsuo Ishibashi; Toshinori Watanabe (2007), "Algoritmo rápido de agrupamiento jerárquico aglomerativo mediante hash sensible a la localidad", Knowledge and Information Systems , 12 (1): 25–53 , doi : 10.1007/s10115-006-0027-5 , S2CID 4613827 .
  11. Cochez, Michael; Mou, Hao (2015), "Twister Tries", Actas de la Conferencia Internacional ACM SIGMOD de 2015 sobre Gestión de Datos (PDF) , págs. 505–517 , doi : 10.1145/2723372.2751521 , ISBN  9781450327589, S2CID 14414777 .
  12. Brinza, Dumitru; et al. (2010), "Detección rápida de interacciones gen-gen en estudios de asociación de genoma completo", Bioinformatics , 26 (22): 2856– 2862, doi : 10.1093/bioinformatics/btq529 , PMC 3493125 , PMID 20871107   
  13. dejavu - Identificación y reconocimiento de huellas digitales de audio en Python , 19/12/2018
  14. Una introducción sencilla al hash sensible a la localidad (LSH) , 27/03/2025
  15. Aluç, Güneş; Özsu, M. Tamer; Daudjee, Khuzaima (2018), "Building self-clustering RDF databases using Tunable-LSH", The VLDB Journal , 28 (2): 173– 195, doi : 10.1007/s00778-018-0530-9 , S2CID 53695535 
  16. Chen, Beidi; Medini, Tharun; Farwell, James; Gobriel, Sameh; Tai, Charlie; Shrivastava, Anshumali (2020-02-29). "SLIDE : En defensa de los algoritmos inteligentes frente a la aceleración por hardware para sistemas de aprendizaje profundo a gran escala". arXiv : 1903.03129 [ cs.DC ]. 
  17. ^ Chen, Beidi; Liu, Zichang; Peng, Binghui; Xu, Zhaozhuo; Li, Jonathan Lingjie; Dao, Tri; Canción, Zhao; Shrivastava, Anshumali; Re, Christopher (2021), "MONGOOSE: A Learnable LSH Framework for Efficient Neural Network Training" , Conferencia internacional sobre representación del aprendizaje
  18. 1 2 Oliver, Jonathan; Cheng, Chun; Chen, Yanggui (2013). "TLSH: un hash sensible a la localidad". Cuarto Taller sobre Ciberdelincuencia e Informática Confiable de 2013. págs. 7–13 . doi : 10.1109/CTC.2013.9 . ISBN  978-1-4799-3076-0.
  19. Fanaee-T, Hadi (2024), Aprendizaje natural , arXiv : 2404.05903
  20. Broder, AZ ; Charikar, M.; Frieze , AM ; Mitzenmacher, M. (1998). "Permutaciones independientes mínimas" . Actas del Trigésimo Simposio Anual de la ACM sobre Teoría de la Computación . págs. 327–336 . CiteSeerX 10.1.1.409.9220 . doi : 10.1145/276698.276781 . Recuperado el 14 de noviembre de 2007 .  
  21. Takei, Y.; Itoh, T.; Shinozaki, T. "Una construcción óptima de permutaciones exactamente min-independientes". Informe técnico COMP98-62, IEICE, 1998 .
  22. Matoušek , J.; Stojakovic, M. (2002). "Sobre la independencia mínima restringida de las permutaciones" . Preimpresión . Recuperado el 14 de noviembre de 2007 .
  23. Saks, M .; Srinivasan, A.; Zhou, S.; Zuckerman, D. (2000). "Los conjuntos de baja discrepancia producen familias de permutaciones independientes mínimas aproximadas" . Information Processing Letters . 73 ( 1–2 ): 29–32 . CiteSeerX 10.1.1.20.8264 . doi : 10.1016/S0020-0190(99)00163-5 . Recuperado el 14 de noviembre de 2007 . 
  24. Damiani; et al. (2004). "Una técnica basada en Open Digest para la detección de spam" (PDF) . Recuperado el 1 de septiembre de 2013 . 
  25. Oliver; et al. (2013). "TLSH - Un hash sensible a la localidad" . 4.º Taller sobre ciberdelincuencia e informática confiable . Recuperado el 4 de junio de 2015 . 
  26. "TLSH" . GitHub . Consultado el 10 de abril de 2014 .
  27. Alexandr Andoni; Indyk, P. (2008). "Algoritmos de hash casi óptimos para el vecino más cercano aproximado en altas dimensiones". Communications of the ACM . 51 (1): 117– 122. CiteSeerX 10.1.1.226.6905 . doi : 10.1145/1327452.1327494 . S2CID 6468963 .  
  28. Goemans, Michel X.; Williamson, David P. (1995). "Algoritmos de aproximación mejorados para problemas de corte máximo y satisfacibilidad mediante programación semidefinida" . Journal of the ACM . 42 (6). Association for Computing Machinery (ACM): 1115– 1145. doi : 10.1145/227683.227684 . ISSN 0004-5411 . S2CID 15794408 .  
  29. Datar, M.; Immorlica, N. ; Indyk, P. ; Mirrokni, VS (2004). "Esquema de hash sensible a la localidad basado en distribuciones p-estables" . Actas del Simposio sobre Geometría Computacional .
  30. Pauleve, L.; Jegou, H.; Amsaleg, L. (2010). "Hashing sensible a la localidad: una comparación de tipos de funciones hash y mecanismos de consulta" . Pattern Recognition Letters . 31 (11): 1348– 1358. Bibcode : 2010PaReL..31.1348P . doi : 10.1016/j.patrec.2010.04.004 . S2CID 2666044 . 
  31. Salakhutdinov, Ruslan; Hinton, Geoffrey (2008). "Hashing semántico" . International Journal of Approximate Reasoning . 50 (7): 969– 978. doi : 10.1016/j.ijar.2008.11.006 .
  32. Har-Peled, Sariel; Indyk, Piotr; Motwani, Rajeev (2012). "Vecino más cercano aproximado: hacia la eliminación de la maldición de la dimensionalidad" (PDF) . Theory of Computing . 8 (Número especial en honor a Rajeev Motwani): 321–350 . doi : 10.4086/toc.2012.v008a014 . Consultado el 23 de mayo de 2025 .
  33. ^ Dahlgaard, Søren, Mathias Bæk Tejs Knudsen y Mikkel Thorup. "Dibujo rápido de similitudes". 58º Simposio Anual del IEEE 2017 sobre Fundamentos de la Informática (FOCS). IEEE, 2017.
  34. Christiani, Tobias. «Marcos de hash rápidos y sensibles a la localidad para la búsqueda aproximada de vecinos cercanos». Conferencia Internacional sobre Búsqueda de Similitud y Aplicaciones. Springer, Cham, 2019.
  35. Ahle, Thomas Dybdahl. "Sobre el problema depag11{\displaystyle p_{1}^{-1}}en Hashing Sensible a la Localidad." Conferencia Internacional sobre Búsqueda de Similitud y Aplicaciones. Springer, Cham, 2020.
  36. Gorman, James y James R. Curran. «Escalado de la similitud distribucional a grandes corpus». Actas de la 21.ª Conferencia Internacional sobre Lingüística Computacional y la 44.ª reunión anual de la Asociación de Lingüística Computacional. Asociación de Lingüística Computacional, 2006.

Lecturas adicionales

  • Samet, H. (2006) Fundamentos de estructuras de datos multidimensionales y métricas . Morgan Kaufmann. ISBN 0-12-369446-9
  • Indyk, Piotr ; Motwani, Rajeev ; Raghavan, Prabhakar; Vempala, Santosh (1997). "Hashing que preserva la localidad en espacios multidimensionales". Actas del vigésimo noveno simposio anual de la ACM sobre Teoría de la Computación . STOC '97 . págs. 618–625 . CiteSeerX 10.1.1.50.4927 . doi : 10.1145/258533.258656 . ISBN   978-0-89791-888-6. S2CID 15693787 . 
  • Chin, Andrew (1994). "Funciones hash que preservan la localidad para computación paralela de propósito general" (PDF) . Algorithmica . 12 ( 2–3 ): 170–181 . doi : 10.1007/BF01185209 . S2CID 18108051 . 
  • Página principal de LSH de Alex Andoni
  • LSHKIT: Una biblioteca de hash sensible a la localidad en C++
  • Una biblioteca de Python para el cálculo de hashes con sensibilidad a la localidad que admite opcionalmente la persistencia a través de Redis.
  • Caja de herramientas de búsqueda de imágenes a gran escala de Caltech : una caja de herramientas de Matlab que implementa varias funciones hash LSH, además de árboles Kd, K-medias jerárquicas y algoritmos de búsqueda de archivos invertidos.
  • Slash: Una biblioteca LSH de C++ que implementa LSH esférico por Terasawa, K., Tanaka, Y.
  • LSHBOX: Una caja de herramientas de código abierto en C++ para el hash sensible a la localidad en la recuperación de imágenes a gran escala. También es compatible con Python y MATLAB.
  • SRS: Implementación en C++ de un algoritmo de procesamiento de consultas de vecino más cercano aproximado, eficiente en memoria y espacio, basado en proyección aleatoria p-estable.
  • TLSH de código abierto en Github
  • Versión en JavaScript de TLSH (Trend Micro Locality Sensitive Hashing) empaquetada como módulo de Node.js.
  • Versión para Java de TLSH (Trend Micro Locality Sensitive Hashing) empaquetada como paquete Maven.