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 finitade funcionesse define como una familia LSH [ 1 ] [ 6 ] [ 7 ] para
- un espacio métrico,
- un umbral,
- un factor de aproximación,
- y probabilidades
si satisface la siguiente condición. Para cualesquiera dos puntosy una función hashelegido uniformemente al azar de:
- Si, entonces(es decir, a y b chocan) con una probabilidad de al menos,
- Si, entoncescon probabilidad como máximo.
Una familia asíse llama-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.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ónelegido según D satisfacepara cada.
Amplificación
Dado un-familia sensiblepodemos construir nuevas familiasya sea mediante la construcción AND o la construcción OR de. [ 1 ]
Para crear una construcción AND, definimos una nueva familia.de funciones hash g , donde cada función g se construye a partir de k funciones aleatorias.deEntonces decimos que para una función hash,si y solo si todosparaDado que los miembros deson elegidos independientemente para cualquier,es un-familia sensible.
Para crear una construcción OR, definimos una nueva familia.de funciones hash g , donde cada función g se construye a partir de k funciones aleatorias.deEntonces decimos que para una función hash,si y solo sipara uno o más valores de i . Dado que los miembros deson elegidos independientemente para cualquier,es un-familia sensible.
Aplicaciones
LSH se ha aplicado a varios ámbitos problemáticos, entre ellos:
- Detección de duplicados cercanos [ 9 ]
- Agrupamiento jerárquico [ 10 ] [ 11 ]
- Estudio de asociación de todo el genoma [ 12 ]
- identificación de similitud de imágenes
- identificación de similitud en la expresión génica
- identificación de similitud de audio
- Búsqueda del vecino más cercano
- Huella de audio [ 13 ]
- Huella digital de vídeo [ 14 ]
- Organización de memoria compartida en computación paralela [ 4 ] [ 5 ]
- Organización física de datos en sistemas de gestión de bases de datos [ 15 ]
- Entrenamiento de redes neuronales totalmente conectadas [ 16 ] [ 17 ]
- Seguridad informática [ 18 ]
- Aprendizaje automático [ 19 ]
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.Aquí, la familiade funciones hash es simplemente la familia de todas las proyecciones de puntos en uno de loscoordenadas, es decir,, dóndees ella coordenada deUna función aleatoriadeSimplemente selecciona un bit aleatorio del punto de entrada. Esta familia tiene los siguientes parámetros:,. Es decir, cualesquiera dos vectorescon distancia de Hamming como máximocolisionar bajo una fuerza aleatoriacon probabilidad al menos. Cualquiercon distancia de Hamming al menoscolisionar con probabilidad como máximo.
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 , paradejarCada 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 conjuntosel evento quecorresponde exactamente al evento de que el minimizador de π sobreyace dentroComo h fue elegido uniformemente al azar,yDefinir 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ño, [ 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:
- El resumen que identifica cada mensaje no debería variar significativamente en caso de cambios que puedan producirse automáticamente.
- La codificación debe ser robusta frente a ataques intencionados.
- 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

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 , dejamos. Eso es, 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..
Para dos vectores u,v con ánguloEntre ellos, se puede demostrar que
Dado que la relación entreyes al menos 0,439 cuando, [ 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 ]mapea un vector d -dimensionalen el conjunto de enteros. Cada función hash de la familia está indexada por una elección aleatoria.y dóndees un vector d -dimensional con entradas elegidas independientemente de una distribución estable y es un número real elegido uniformemente del intervalo [0,r]. Para un fijo la función hashes dado por.
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 .
Algoritmo para la búsqueda del vecino más cercano
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.. 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.de funciones hash g , donde cada función g se obtiene concatenando k funcionesde, es decir,En otras palabras, una función hash aleatoria g se obtiene concatenando k funciones hash elegidas aleatoriamente de. 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 autilizando 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:donde t es el tiempo para evaluar una función.en un punto de entrada p ;
- espacio:, más el espacio para almacenar puntos de datos;
- tiempo de consulta:;
- 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 menos;
Para una relación de aproximación fijay probabilidadesy, uno puede establecery, dóndeEntonces se obtienen las siguientes garantías de rendimiento:
- tiempo de preprocesamiento:;
- espacio:, más el espacio para almacenar puntos de datos;
- tiempo de consulta:;
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:;
- tiempo de consulta:;
- El algoritmo logra encontrar al vecino más cercano con una probabilidad de al menos;
mejoras
Cuando t es grande, es posible reducir el tiempo de hash deEsto fue demostrado por [ 33 ] y [ 34 ] , que dieron
- tiempo de consulta:;
- espacio:;
También es a veces el caso que el factorpuede 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 a(sin incluir los costos de hash) y de manera similar el uso del espacio.
Véase también
- Filtro de Bloom : estructura de datos para la pertenencia aproximada a un conjunto.
- Maldición de la dimensionalidad : dificultades que surgen al analizar datos con muchos aspectos ("dimensiones").
- Hashing de características : vectorización de características mediante una función hash.
- Transformadas relacionadas con Fourier
- Geohash : sistema de geocodificación de dominio público inventado en 2008.
- Aprendizaje de subespacios multilineales : enfoque para la reducción de dimensionalidad.
- Análisis de componentes principales : método de análisis de datos
- Indexación aleatoria [ 36 ]
- Hash rodante : tipo de función hash
- Descomposición en valores singulares – Descomposición matricial
- Memoria distribuida dispersa : modelo matemático de la memoria
- Compresión wavelet : técnica matemática utilizada en la compresión y el análisis de datos. Páginas que muestran breves descripciones de destinos de redirección.
- Localidad de referencia : tendencia de un procesador a acceder a ubicaciones de memoria cercanas en el espacio o el tiempo.
Referencias
- 1 2 3 4 Rajaraman, A.; Ullman, J. (2010). "Minería de conjuntos de datos masivos, Cap. 3" .
- ↑ Zhao, Kang; Lu, Hongtao; Mei, Jincheng (2014). Hashing que preserva la localidad . Conferencia AAAI sobre Inteligencia Artificial. Vol. 28. pp. 2874–2880 .
- ^ 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 .
- 1 2 Chin, Andrew (1991). Problemas de complejidad en la computación paralela de propósito general (DPhil). Universidad de Oxford. pp. 87– 95.
- 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 .
- ↑ 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) .
- 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 .
- 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.
- ↑ 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 .
- ↑ 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 .
- ↑ 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 .
- ↑ 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
- ↑ dejavu - Identificación y reconocimiento de huellas digitales de audio en Python , 19/12/2018
- ↑ Una introducción sencilla al hash sensible a la localidad (LSH) , 27/03/2025
- ↑ 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
- ↑ 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 ].
- ^ 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
- 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.
- ↑ Fanaee-T, Hadi (2024), Aprendizaje natural , arXiv : 2404.05903
- ↑ 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 .
- ↑ Takei, Y.; Itoh, T.; Shinozaki, T. "Una construcción óptima de permutaciones exactamente min-independientes". Informe técnico COMP98-62, IEICE, 1998 .
- ↑ Matoušek , J.; Stojakovic, M. (2002). "Sobre la independencia mínima restringida de las permutaciones" . Preimpresión . Recuperado el 14 de noviembre de 2007 .
- ↑ 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 .
- ↑ 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 .
- ↑ 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 .
- ↑ "TLSH" . GitHub . Consultado el 10 de abril de 2014 .
- ↑ 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 .
- ↑ 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 .
- ↑ 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 .
- ↑ 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 .
- ↑ 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 .
- ↑ 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 .
- ^ 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.
- ↑ 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.
- ↑ Ahle, Thomas Dybdahl. "Sobre el problema deen Hashing Sensible a la Localidad." Conferencia Internacional sobre Búsqueda de Similitud y Aplicaciones. Springer, Cham, 2020.
- ↑ 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 .
Enlaces externos
- 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.
- Algoritmos de búsqueda
- Algoritmos de clasificación
- Reducción de dimensiones
- Hashing
- Estructuras de datos probabilísticas