Vector Search (búsqueda vectorial) es una potente técnica de recuperación de información que utiliza representaciones matemáticas de datos denominadas vectores. Los vectores encuentran elementos similares basándose en el significado semántico y no en coincidencias exactas.
El campo de la
recuperación de información es tan antiguo como la historia de los ordenadores y la búsqueda vectorial se utiliza desde hace más de 20 años. Sin embargo, últimamente está experimentando un enorme auge. En la era de la
IA generativa y el big data, vector search se ha vuelto crucial para varias aplicaciones. Entre ellas se incluyen (pero no se limitan a):
- Sistemas de recomendación.
- Modelos de machine learning.
- Reconocimiento de imágenes.
- Procesamiento del lenguaje natural (PNL).
- Detección de anomalías.
- IA Generativa.
Lo que hace que vector search funcione tan bien es su captación inherente del contexto y el significado, y su capacidad para encontrar coincidencias aproximadas en lugar de solo exactas. Esto permite a los usuarios encontrar información relevante incluso cuando su consulta no coincide exactamente con los datos almacenados. Otra gran ventaja es que vector search puede utilizarse con muchos tipos de datos, como texto, imágenes, audio, datos estructurados e incluso genomas.
Principales conclusiones
- Los motores de vector search permiten recuperar información de forma intuitiva y contextualizada en grandes y diversos conjuntos de datos.
- Lo que hace que vector search sea importante es su base para aplicaciones avanzadas de IA y machine learning en diversos sectores.
- Funciona con muchos tipos diferentes de contenidos, lo que se denomina multimodalidad.
- InterSystems IRIS ofrece funciones de vector search de alto rendimiento integradas con la gestión de datos tradicional, lo que proporciona una mayor precisión y un procesamiento en tiempo real.
Comprender vector search
¿Cómo funciona vector search? Comprender sus mecanismos internos contribuye a obtener el máximo valor del espacio vectorial.
¿Qué es un vector?
Recordemos los de las clases de álgebra del instituto. En informática, los vectores son simplemente listas de números, donde cada número representa una característica o dimensión diferente.
Mientras que los vectores estudiados en el colegio probablemente tenían dos o tres dimensiones, los sistemas modernos basados en vectores suelen utilizar cientos o miles de dimensiones. Puede parecer complejo, pero hay que considerarlo una extensión del mundo tridimensional que conocemos. Imaginemos que se añaden más y más características para describir algo, y cada una de ellas se convierte en una nueva dimensión del vector.
Por ejemplo, un vector que represente la palabra "gato" podría tener este aspecto:
[0,2, -0,5, 0,8, 0,1, -0,3, ...]
Aunque estos números puedan parecer abstractos, captan varios aspectos semánticos del concepto "gato" que permiten la comparación matemática con otros vectores. La palabra "felino" termina con un vector muy similar a la palabra "gato", porque las palabras que se usan cerca de ellas serán muy parecidas.
¿Qué es vector search?
Vector Search, en esencia, es un método para encontrar elementos similares en un gran conjunto de datos comparando sus representaciones vectoriales. A diferencia de la búsqueda tradicional basada en palabras clave, que busca coincidencias exactas de palabras o frases, los vectores tratan de comprender el significado subyacente o el contexto.
Resulta que al convertir el texto en vectores, éstos incluyen más del significado que otras representaciones, porque las palabras utilizadas en combinación con otras palabras proporcionan el contexto que permite encontrar el significado detrás de ellas.
Convertir los datos en vectores es el primer paso de vector search. Esto suele ocurrir siempre que se añaden nuevos datos a un sistema. Cuando un usuario realiza una consulta, ésta también se convierte en un vector. A continuación, la búsqueda consiste en encontrar los elementos del conjunto de datos cuyos vectores sean más similares al vector de consulta.
Este enfoque permite realizar búsquedas más matizadas. Por ejemplo, en una búsqueda vectorial basada en texto:
- Una búsqueda de "coche" también puede arrojar resultados sobre "automóvil" o "vehículo", aunque no se utilicen esas palabras exactas.
- Una consulta sobre "técnicas de análisis de datos" podría devolver resultados relevantes sobre "métodos estadísticos en big data"
Vector search es una tecnología clave para las arquitecturas smart data fabric.
Vector Search frente a búsqueda semántica tradicional
La búsqueda tradicional basada en palabras clave y vector search difieren en su enfoque y capacidades:
- Método de búsqueda: la búsqueda por palabras clave busca coincidencias exactas de palabras o frases. Vector search busca significados o conceptos similares comparando la dirección y la magnitud de diferentes vectores, y siempre es aproximada y no exacta.
- Comprender el contexto: la búsqueda de palabras clave suele tener problemas con el contexto y los sinónimos. Vector Search puede entender el contexto y encontrar contenidos semánticamente relacionados.
- Tratamiento de la ambigüedad: la búsqueda por palabra clave puede arrojar resultados irrelevantes cuando las palabras tienen varios significados. Vector search a menudo puede desambiguar basándose en el contexto general de la consulta.
- Capacidad multilingüe: la búsqueda por palabras clave suele requerir índices separados para los distintos idiomas. Vector search a menudo puede encontrar resultados relevantes en varios idiomas si se entrena con datos multilingües.
- Tratamiento de errores ortográficos y variaciones: La búsqueda de palabras clave puede perder resultados debido a pequeños errores ortográficos. Vector search es más robusta a las variaciones y a menudo puede encontrar resultados relevantes a pesar de errores menores.
Cómo se generan los vectores
La generación de vectores, también conocida como incrustación, es un paso crucial en la búsqueda de vectores. Según el tipo de datos, se utilizan técnicas diferentes:
- Datos de texto: las incrustaciones de palabras (p. ej., Word2Vec, GloVe) convierten palabras individuales en vectores, mientras que las incrustaciones de frases o documentos (p. ej., BERT, Universal Sentence Encoder) crean vectores para fragmentos de texto más grandes. Estos modelos suelen preentrenarse con grandes volúmenes de texto y pueden ajustarse a ámbitos específicos.
- Datos de imágenes: las redes neuronales convolucionales (CNN) se utilizan a menudo para generar representaciones vectoriales de imágenes. Estas redes aprenden a extraer características relevantes de las imágenes durante el entrenamiento.
- Datos de audio: técnicas como los coeficientes cepstrales de frecuencia Mel (MFCC) o los modelos de aprendizaje profundo pueden convertir el audio en representaciones vectoriales.
- Datos multimodales: algunos modelos avanzados pueden crear vectores que representan combinaciones de distintos tipos de datos, como imágenes con leyendas.
También hay tipos de datos más avanzados y especializados que pueden representarse como vectores. Esto incluye información genómica y proteómica en biología, estructuras químicas y relaciones gráficas.
¿Qué representan las dimensiones de un vector?
Las dimensiones de un vector en el contexto de la búsqueda representan diferentes características de los datos:
- Características semánticas: cada dimensión puede corresponder a un concepto semántico o atributo concreto de los datos.
- Representaciones aprendidas: en muchos casos, especialmente con modelos de aprendizaje profundo, el significado exacto de cada dimensión no se define explícitamente, sino que es aprendido por el modelo durante el entrenamiento. El término "latent semantic model" estaba de moda y es esencialmente una representación aprendida.
- Información contextual: en el caso de los datos de texto, las dimensiones suelen capturar patrones de uso contextual de palabras o frases.
- Conceptos abstractos: algunas dimensiones pueden representar conceptos abstractos que no son fácilmente interpretables por el ser humano, pero que son útiles para que el modelo comprenda los datos.Puede que no sean conceptos en el sentido acostumbrado, por ejemplo, un conjunto común de estructura subyacente en diferentes imágenes es un concepto que una máquina verá y los humanos no.
Un mayor número de dimensiones permite captar más información y realizar distinciones más precisas, también aumenta los requisitos informáticos.
Por lo tanto, a menudo hay que encontrar un equilibrio entre el número de dimensiones y consideraciones prácticas como la velocidad de búsqueda o los requisitos de almacenamiento.
Algoritmos y métodos de vector search
¿Qué es un motor de vector search?
Un motor vector search convierte datos (como texto, imágenes o audio) en vectores numéricos y encuentra elementos similares midiendo la distancia entre estos vectores en un espacio de alta dimensión.
A diferencia de la búsqueda semántica tradicional, que se basa en la concordancia de palabras clave y técnicas estadísticas, la búsqueda vectorial puede captar relaciones y similitudes más matizadas entre elementos, lo que permite obtener resultados más precisos y contextualmente relevantes, sobre todo para consultas complejas o contenidos multimedia.
¿Qué algoritmos o métodos se utilizan en vector search?
La búsqueda vectorial se basa en varios algoritmos para encontrar vectores similares en espacios de alta dimensión. Algunos de los enfoques más comunes son:
- Búsqueda del vecino más próximo exacto (NN), (del inglés, Exact Nearest Neighbor (NN) search): este método encuentra los vectores más próximos a un vector de consulta. Aunque es preciso, puede ser costoso desde el punto de vista informático para grandes conjuntos de datos.
- Búsqueda por aproximación al vecino más cercano (RNA) ( del inglés, Approximate Nearest Neighbor (ANN) search): los algoritmos RNA sacrifican parte de la precisión a cambio de mejoras significativas en la velocidad. Entre los algoritmos de RNA más conocidos se encuentran:
- Locality-Sensitive Hashing (LSH).
- Gráficos de mundos pequeños navegables jerárquicamente (HNSW).
- Cuantificación del producto (PQ).
- Métodos basados en árboles: algoritmos como los KD-trees o los Ball trees organizan los vectores en una estructura de árbol para agilizar la búsqueda. Pueden ser eficaces para datos de baja dimensión, pero pueden tener problemas con vectores de alta dimensión.
- Métodos basados en gráficos: estos algoritmos construyen un gráfico en el que los nodos son vectores y las aristas conectan elementos similares. Algunos ejemplos son los gráficos HNSW (mencionado anteriormente) y Navigable Small World (NSW).
Similitud de coseno en vector search
La similitud del coseno es vital en la búsqueda vectorial porque mide eficazmente la similitud entre vectores basándose en su orientación y no en su magnitud, lo que permite realizar comparaciones precisas en espacios de alta dimensión.
Esto la hace especialmente eficaz para tareas como la búsqueda semántica, los sistemas de recomendación y la agrupación de documentos, donde la relación entre elementos es más importante que sus valores absolutos.
Puntos clave sobre la similitud del coseno:
- Rango: Los valores de similitud del coseno van de -1 a 1, donde,
- 1 indica vectores que apuntan en la misma dirección (más similares).
- 0 indica vectores ortogonales (no relacionados).
- -1 indica vectores que apuntan en direcciones opuestas (más disímiles).
- Independencia de la magnitud: la similitud del coseno se centra en la dirección de los vectores, no en su magnitud, por lo que resulta útil para comparar documentos de distinta longitud.
- Cálculo: la fórmula de la similitud coseno es: cos(θ) = (A · B) / (||A|| * ||B||)Donde A · B es el producto punto de los vectores A y B, y ||A|| y ||B|| son sus magnitudes.
- Eficacia: la similitud del coseno puede calcularse de forma eficaz, especialmente cuando los vectores están normalizados.
La similitud del coseno es especialmente importante porque:
- Capta bien la similitud semántica, especialmente para los datos de texto.
- Es eficiente desde el punto de vista computacional, lo que permite cálculos rápidos de similitud en espacios de alta dimensión.
- Es intuitivo de entender e interpretar.
La similitud del coseno en acción: una ilustración
Imaginemos a un chef en una cocina en hora punta y que cada receta es un vector en un vasto "espacio de sabores". Las dimensiones de este espacio incluyen lo dulce, lo salado, el picante, el umami, etc. El plato estrella es como un punto concreto en este espacio de sabores y lo que se quiere es encontrar recetas similares o crear platos de fusión que complementen ese estilo.
La similitud del coseno es como una "brújula del sabor" especial que mide lo cerca que se alinean otras recetas con el perfil de sabor del plato estrella. Una receta muy parecida apuntaría casi en la misma dirección en la brújula del sabor (alta similitud coseno, cerca de 1).
Un plato algo parecido podría apuntar en una dirección relacionada, pero no idéntica (similitud coseno moderada, alrededor de 0,7). Un tipo de cocina completamente diferente apuntaría en dirección perpendicular en la brújula de sabores (similitud coseno de 0, lo que indica que no hay relación de sabores). Y lo que es más importante, la intensidad de los sabores (magnitud vectorial) no importa: un curry suave y otro intenso podrían ser muy similares en cuanto a la dirección de su sabor.
En esta analogía culinaria, un buscador vectorial actúa como un ayudante de cocina increíblemente eficiente. Esa brújula de sabores se puede consultar al instante para cada receta de un recetario amplio, de forma que sea fácil encontrar platos que armonicien con el perfil característico de sabor establecido, independientemente de su origen o intensidad.
Otras métricas de distancia utilizadas en vector search
Aunque la similitud coseno es muy utilizada, se pueden emplear otras métricas de distancia en la búsqueda de vectores:
- Distancia euclidiana: mide la distancia en línea recta entre dos puntos en el espacio euclidiano. Esto es útil cuando la magnitud de los vectores es importante.
- Distancia Manhattan: también conocida como distancia L1 o distancia entre manzanas en una calle o una ciudad. Calcula la suma de las diferencias absolutas de las coordenadas y resulta útil en determinados problemas de tipo cuadrícula o cuando se trabaja con datos dispersos.
- Producto escalar: multiplicación simple de los elementos correspondientes de dos vectores, a menudo utilizada cuando los vectores están normalizados.
- Similitud de Jaccard: mide la similitud entre conjuntos de muestras finitas, lo que resulta útil para datos binarios o categóricos.
- Distancia de Hamming: mide el número de posiciones donde los símbolos correspondientes de dos vectores son diferentes; se utiliza a menudo con datos binarios o para la detección de errores.
Aplicaciones de Vector Search
Vector Search ha cobrado cada vez más importancia en diversos sectores gracias a su capacidad para comprender el contexto y encontrar información relevante más allá de la simple coincidencia de palabras clave.
Ciencias de la salud
- Búsqueda de bibliografía médica: los investigadores pueden encontrar estudios relevantes aunque varíe la terminología.
- Cotejo de historiales de pacientes: identificación de casos de pacientes similares para planes de tratamiento personalizados.
- Descubrimiento de fármacos: encontrar compuestos químicos con propiedades o efectos similares.
Más información sobre Ciencias de la salud
Comercio electrónico y Retail
- Recomendaciones de productos: sugerir artículos basándose en la similitud semántica y no solo en la coincidencia de categorías.
- Búsqueda visual: permite a los clientes encontrar productos similares a una imagen cargada.
- Detección de fraudes: identificación de patrones inusuales en los datos de las transacciones.
Más información sobre Comercio electrónico y Retail
Servicios financieros
- Evaluación de riesgos: análisis de documentos financieros para identificar posibles riesgos.
- Análisis de tendencias de mercado: encontrar correlaciones entre diversos indicadores económicos.
- Segmentación de clientes: agrupación de clientes basada en patrones de comportamiento complejos.
Más información sobre servicios financieros
Medios de comunicación y entretenimiento
- Recomendación de contenidos: sugerir películas, música o artículos en función de las preferencias del usuario.
- Detección de plagios: identificación de contenidos similares en grandes bases de datos.
- Búsqueda de audio y vídeo: encontrar momentos concretos en los medios de comunicación a partir de transcripciones o características visuales.
Fabricación y cadena de suministro
- Control de calidad: detección de anomalías en los datos de producción.
- Gestión de inventarios: optimización de los niveles de existencias en función de patrones de demanda complejos.
- Mantenimiento predictivo: identificación de equipos susceptibles de fallar basándose en patrones de datos de sensores.
Más información sobre Manufacturing
Más información sobre Cadena de Suministro
Tecnología de la información y ciberseguridad
- Análisis de registros: detección de patrones inusuales en los registros del sistema para detectar amenazas a la seguridad.
- Búsqueda de código similar: encontrar fragmentos de código similares para su depuración u optimización.
- Análisis del tráfico de red: identificación de posibles fallos de seguridad basándose en los patrones de tráfico.
Tecnologías y plataformas Vector Search
A medida que la búsqueda vectorial gana protagonismo en diversos sectores, han surgido una serie de tecnologías y plataformas que permiten su aplicación.
Vector Databases: una base de datos vectorial está diseñada para almacenar y consultar datos vectoriales de forma eficiente. Algunos ejemplos son Faiss (Facebook AI Similarity Search) y Annoy (Approximate Nearest Neighbors Oh Yeah).
Machine Learning Frameworks: TensorFlow y PyTorch ofrecen bibliotecas para crear y manipular incrustaciones vectoriales.
Bibliotecas de PNL: bibliotecas como spaCy y Hugging Face's Transformers proporcionan modelos preentrenados para la incrustación de texto. Pueden utilizarse para generar representaciones vectoriales de datos de texto para aplicaciones de búsqueda.
Servicios de vector search basados en la nube: los principales proveedores de servicios en la nube ofrecen servicios gestionados de búsqueda vectorial que pueden integrarse en las aplicaciones. Estos servicios suelen proporcionar una infraestructura escalable para operaciones a gran escala.
Motores de búsqueda de código abierto: Algunos motores de búsqueda tradicionales ofrecen ahora capacidades de búsqueda vectorial. Pueden ser útiles para organizaciones que deseen añadir vector seach a la infraestructura de búsqueda existente.
¿Cómo incorporan vector search los principales motores de búsqueda y bases de datos?
Buscadores web: Los principales buscadores, como Google, han incorporado técnicas de búsqueda vectorial para mejorar la comprensión semántica de las consultas. Utilizan modelos de redes neuronales para generar representaciones vectoriales tanto de las consultas como de las páginas web.
Búsqueda en comercio electrónico: las plataformas de venta en línea la utilizan para mejorar el descubrimiento de productos combinándola, a menudo, con la búsqueda tradicional por palabras clave para obtener resultados óptimos.
Soluciones de búsqueda para empresas: muchas plataformas de búsqueda para empresas ofrecen ahora funciones de búsqueda vectorial. Estas soluciones suelen utilizar enfoques híbridos, que combinan la búsqueda vectorial con los métodos de búsqueda tradicionales.
Sistemas de gestión de bases de datos: algunos sistemas de bases de datos relacionales han empezado a incorporar capacidades de búsqueda vectorial, lo que permite realizar búsquedas por similitud junto con las consultas SQL tradicionales. Esta integración permite realizar consultas flexibles de datos estructurados y no estructurados dentro del mismo sistema.
Plataformas de datos en la nube: los proveedores de servicios en la nube ofrecen vector search, cada vez más, como parte de sus servicios. Esto permite una integración perfecta de sus capacidades en aplicaciones basadas en la nube y flujos de trabajo de datos.
Aprovechar la potencia de Vector Search con InterSystems IRIS
La búsqueda vectorial y la representación vectorial se han convertido en una tecnología revolucionaria en el mundo de la recuperación de información y el análisis de datos. Al representar los datos como vectores de alta dimensión, vector search permite experiencias de búsqueda más intuitivas, conscientes del contexto y ricas desde el punto de vista semántico.
A lo largo de este artículo, hemos desvelado los conceptos fundamentales que subyacen a la búsqueda vectorial y sus aplicaciones en diversos sectores. Hemos visto cómo la búsqueda vectorial destaca en la comprensión del contexto, el manejo de consultas multilingües y la búsqueda de resultados relevantes incluso cuando no hay coincidencias exactas de palabras clave.
Sin embargo, también hemos reconocido las demandas computacionales y las complejidades de la gestión de datos de alta dimensión a escala. Aquí es donde InterSystems IRIS destaca como una potente solución. InterSystems IRIS ofrece una plataforma completa y unificada que integra a la perfección las capacidades de vector search con las funciones tradicionales de gestión de datos.
Entre sus principales ventajas se incluyen:
- Integración perfecta: las funciones de vector search están totalmente integradas en la plataforma IRIS de InterSystems, lo que permite combinarlas fácilmente con consultas SQL y otras tareas de procesamiento de datos.
- Escalabilidad: InterSystems IRIS está diseñado para gestionar operaciones de vector search a gran escala y admite computación distribuida para mejorar el rendimiento.
- Flexibilidad: la compatibilidad con diversas técnicas de incrustación y métricas de distancia hace que InterSystems IRIS sea versátil para diferentes aplicaciones de búsqueda vectorial.
- Integración avanzada de NLP: InterSystems IRIS puede combinarse con sofisticadas técnicas de procesamiento del lenguaje natural para mejorar la comprensión de las consultas y la relevancia de los resultados.
- Personalización específica del dominio: la plataforma admite modelos de incrustación personalizados, lo que permite soluciones a medida en campos especializados como la sanidad o las finanzas.
- Gestión unificada de datos: InterSystems IRIS elimina la necesidad de disponer de varios sistemas independientes, lo que reduce la complejidad y las posibles incoherencias de los datos.