Inicio Topics Búsqueda de vectores ¿Qué es la búsqueda de vectores?
Explore la solución de búsqueda de vectores de IBM Regístrese para recibir actualizaciones sobre IA
Ilustración con collage de pictogramas de nubes, gráfico circular, pictogramas gráficos

Publicado: 6 de junio de 2024
Colaboradores: Meredith Syed, Erika Russi

¿Qué es la búsqueda de vectores?

La búsqueda de vectores es una técnica de búsqueda utilizada para encontrar elementos o puntos de datos similares, normalmente representados como vectores, en grandes colecciones. Los vectores, o incrustaciones, son representaciones numéricas de palabras, entidades, documentos, imágenes o vídeos. Los vectores capturan las relaciones semánticas entre elementos, lo que permite un procesamiento eficaz por parte de modelos de machine learning y aplicaciones de inteligencia artificial. 

Búsqueda de vectores vs. búsqueda tradicional

A diferencia de la búsqueda tradicional, que suele utilizar la búsqueda por palabras clave, la búsqueda de vectores se basa en técnicas de búsqueda de similitud vectorial como la búsqueda del k-vecino más cercano (knn) para recuperar puntos de datos similares a un vector de consulta en función de alguna métrica de distancia. Los vectores capturan las relaciones semánticas y las similitudes entre los puntos de datos, lo que permite la búsqueda semántica en lugar de la simple búsqueda por palabras clave.

Para ilustrar la diferencia entre la búsqueda tradicional por palabra clave y la vectorial, veamos un ejemplo. Supongamos que busca información sobre la mejor pizzería y busca "mejor pizzería" en un motor de búsqueda tradicional por palabras clave. La búsqueda por palabras clave busca páginas que contengan las palabras exactas "mejor" y "pizzería" y solo devuelve resultados como "Mejor pizzería" o "Pizzería cercana". La búsqueda tradicional por palabras clave se centra en hacer que estas coincidan en lugar de comprender el contexto o la intención detrás de la búsqueda.

Por el contrario, en una búsqueda semántica de vectores, el motor de búsqueda comprende la intención que hay detrás de la consulta. Semántico, por definición, significa relativo al significado en el lenguaje, es decir, la búsqueda semántica comprende el significado y el contexto de una consulta. En este caso, buscaría contenidos que hablen de las pizzerías mejor valoradas o más recomendadas, aunque no se utilicen las palabras exactas "mejor pizzería" en el contenido. Los resultados son más relevantes desde el punto de vista contextual y podrían incluir artículos o guías que hablen de pizzerías de alta calidad en diversas localidades.

Los métodos de búsqueda tradicionales suelen representar los datos mediante el uso de tokens o características discretos, como palabras clave, etiquetas o metadatos. Como se muestra en nuestro ejemplo anterior, estos métodos se basan en coincidencias exactas para obtener resultados relevantes. Por el contrario, la búsqueda vectorial representa los datos como vectores densos (un vector en el que la mayoría o todos los elementos son distintos de cero) en un espacio vectorial continuo, el espacio matemático en el que los datos se representan como vectores. Cada dimensión del vector denso corresponde a una característica latente o a un aspecto de los datos, es decir, a un rasgo o atributo subyacente que no se observa de manera directa, sino que se infiere de los datos a través de modelos matemáticos o algoritmos. Estas características latentes capturan los patrones y relaciones ocultos en los datos, lo que permite representaciones más significativas y precisas de los elementos como vectores en un espacio de alta dimensión.

 

Los métodos de búsqueda tradicionales pueden tener dificultades con la escalabilidad de grandes conjuntos de datos o datos de alta dimensión debido a limitaciones computacionales y de memoria. Por el contrario, las incrustaciones vectoriales son más fáciles de escalar a conjuntos de datos más grandes y modelos más complejos. A diferencia de las representaciones dispersas de datos en las que la mayoría de los valores son ceros en todas las dimensiones, las incrustaciones son representaciones vectoriales densas que tienen valores distintos de cero en la mayoría de las dimensiones. Esto permite que las incrustaciones vectoriales almacenen más información en un espacio más pequeño y de menor dimensión, lo que requiere menos memoria.1 Como resultado, los algoritmos y modelos de machine learning pueden utilizar las incrustaciones de forma más eficiente con menos recursos informáticos.

Cómo elegir el modelo fundacional de IA adecuado

Utilice este marco de selección de modelos para elegir el más adecuado y equilibrar sus requisitos de rendimiento con el coste, los riesgos y las necesidades de implementación.

Contenido relacionado

Regístrese para obtener el libro electrónico sobre almacenes de datos de IA

Proceso de vectorización

Para esta explicación, nos centraremos en las representaciones vectoriales aplicables en el procesamiento del lenguaje natural (PLN), es decir, vectores que representan palabras, entidades o documentos.

Ilustraremos el proceso de vectorización vectorizando un pequeño corpus de oraciones: “el gato se sentó en la alfombra”, “el perro jugó en el patio” y “los pájaros cantaban en los árboles”.

El primer paso para crear incrustaciones vectoriales es limpiar y procesar el conjunto de datos en bruto. Esto puede implicar la eliminación del ruido y la estandarización del texto. Para nuestro ejemplo, no haremos ninguna limpieza ya que el texto ya está limpio y estandarizado.

A continuación, se elige un modelo de incrustación para entrenarlo en el conjunto de datos. El modelo de incrustación entrenado se utiliza para generar incrustaciones para cada punto del conjunto de datos. Para los datos de texto, los modelos de incrustación de código abierto más populares incluyen Word2Vec, GloVe, FastText o modelos basados en transformadores preentrenados como BERT o RoBERTa2.

Para nuestro ejemplo, utilizaremos Word2Vec para generar las incrustaciones.

 

A continuación, las incrustaciones se almacenan en una base de datos vectorial o se utiliza un complemento de búsqueda vectorial para un motor de búsqueda, como Elasticsearch. En la búsqueda vectorial, la relevancia de un resultado de búsqueda se establece evaluando la similitud entre el vector de consulta, que se genera al vectorizar la misma, y el vector de documento, que es una representación de los datos que se consultan. Es necesario crear índices en la base de datos vectorial para permitir una recuperación rápida y eficiente de incrustaciones basadas en consultas similares. Se pueden utilizar técnicas como el pequeño mundo navegable jerarquizado (HNSW) para indexar las incrustaciones y facilitar la búsqueda de similitudes en el momento de la consulta. El HNSW organiza el conjunto de datos y permite la búsqueda rápida de vecinos más cercanos agrupando vectores similares durante el proceso de creación del índice.

Por último, debe establecerse un mecanismo o procedimiento para generar vectores para nuevas consultas. Esto suele implicar la creación de una API o servicio que tome las consultas de búsqueda de los usuarios como entrada en tiempo real, las procese utilizando el mismo modelo vectorial y genere una representación vectorial correspondiente. Este vector se puede utilizar para buscar en la base de datos y obtener los resultados más relevantes.

Búsqueda de similitud con medidas de distancia y algoritmos ANN

En la búsqueda vectorial, la relevancia se determina midiendo la similitud entre los vectores de consulta y documento. Para comparar dos vectores entre sí y determinar su similitud, se pueden utilizar algunas medidas de distancia, como la distancia euclidiana o la similitud coseno3.

Distancia euclidiana

La distancia euclidiana es una medida de la distancia en línea recta entre dos puntos. Se calcula como la raíz cuadrada de la suma de las diferencias al cuadrado entre las coordenadas correspondientes de los dos puntos.

Esta fórmula se puede ampliar a espacios de dimensiones superiores añadiendo más términos para tener en cuenta las dimensiones adicionales.

Similitud de coseno

La similitud coseno es una medida de similitud entre dos vectores en un espacio multidimensional. Calcula el coseno del ángulo entre los dos vectores, lo que indica lo cerca que se alinean los vectores entre sí.

Matemáticamente, la similitud coseno o cos(θ) entre dos vectores se calcula como el producto escalar de los dos vectores dividido por el producto de sus magnitudes.

La similitud coseno oscila entre -1 y 1, donde: 

  • 1 indica que los vectores están perfectamente alineados (apuntando en la misma dirección),
  • 0 indica que los vectores son ortogonales (perpendiculares entre sí) y
  • -1 indica que los vectores apuntan en direcciones opuestas.

La similitud coseno es especialmente útil cuando se trata de vectores, ya que se centra en la relación direccional entre ellos más que en sus magnitudes.

Vecino más cercano aproximado (ANN)

Aunque las métricas de distancia mencionadas anteriormente pueden utilizarse para medir la similitud de los vectores, resulta ineficaz y lento comparar todos los vectores posibles con el vector de consulta en el momento de realizar la búsqueda de similitud. Para solucionar esto, podemos utilizar una búsqueda por vecino más cercano aproximado (ANN).

En lugar de encontrar una coincidencia exacta, los algoritmos ANN buscan de manera eficiente los vectores que están aproximadamente más cerca de una consulta determinada en función de alguna métrica de distancia como la distancia euclidiana o la similitud coseno. Al permitir cierto nivel de aproximación, estos algoritmos pueden reducir significativamente el coste computacional de la búsqueda del vecino más cercano sin la necesidad de calcular las similitudes de incrustación en todo un corpus.

Uno de los algoritmos ANN más populares son los gráficos HNSW. La estructura de gráfico del pequeño mundo navegable jerarquizado indexa el conjunto de datos y facilita la búsqueda rápida de vecinos más cercanos agrupando vectores similares a medida que crea el índice. El HNSW organiza los datos en vecindarios, vinculándolos con conexiones probables. Al indexar un vector denso, identifica la vecindad adecuada y sus conexiones potenciales, almacenándolas en una estructura gráfica. Durante una búsqueda HNSW con una consulta vectorial densa, localiza el punto de entrada óptimo del vecindario y devuelve los vecinos más cercanos.

Aplicaciones de la búsqueda de vectores

La búsqueda vectorial tiene numerosos casos de uso en todos los dominios debido a su capacidad de recuperar elementos similares de forma eficiente en función de sus representaciones vectoriales. Algunas aplicaciones comunes de la búsqueda de vectores incluyen:

Recuperación de información

La búsqueda vectorial se utiliza en los motores de búsqueda para recuperar documentos, artículos, páginas web u otro contenido textual en función de su similitud con una consulta. Permite a los usuarios encontrar información relevante incluso si los términos exactos utilizados en la consulta no están presentes en los documentos.

Generación aumentada por recuperación (RAG)

La búsqueda vectorial es fundamental en el marco de la generación aumentada por recuperación (RAG) para recuperar el contexto relevante de un gran corpus de texto. La RAG es un marco para la IA generativa que combina la búsqueda de vectores con modelos de lenguaje generativos para generar respuestas.

En las tareas tradicionales de generación de lenguaje, se utilizan modelos de lenguaje de gran tamaño (LLM), como el GPT (Generative Pre-trained Transformer) de OpenAI o los modelos Granite de IBM, para construir respuestas basadas en el prompt de entrada. Sin embargo, estos modelos pueden tener dificultades para producir respuestas contextualmente relevantes, objetivamente precisas o actualizadas. La RAG aborda esta limitación incorporando un paso de recuperación antes de la generación de la respuesta. Durante la recuperación, la búsqueda vectorial puede utilizarse para identificar información contextualmente pertinente, como pasajes o documentos relevantes de un gran corpus de texto, normalmente almacenado en una base de datos vectorial. A continuación, se utiliza un LLM para generar una respuesta basada en el contexto recuperado.

Más allá de la generación de lenguaje, la RAG y la búsqueda vectorial tienen otras aplicaciones en varias otras tareas del PLN, como la respuesta a preguntas, los chatbots, el resumen y la generación de contenidos.

Búsqueda híbrida

La búsqueda vectorial puede integrarse en enfoques de búsqueda híbridos para mejorar la eficacia y la flexibilidad del proceso de búsqueda. La búsqueda híbrida combina la búsqueda de vectores con otras técnicas de búsqueda, como la búsqueda basada en palabras clave o la búsqueda basada en metadatos. La búsqueda vectorial puede utilizarse para recuperar elementos basándose en su similitud con una consulta, mientras que otros métodos de búsqueda pueden utilizarse para recuperar elementos basándose en coincidencias exactas o criterios específicos.

Búsqueda de vídeos e imágenes

Los almacenes vectoriales se utilizan en los motores de búsqueda de imágenes y vídeos para indexar y recuperar contenidos visuales basándose en la similitud. Las incrustaciones de imágenes y vídeos se almacenan como vectores, lo que permite a los usuarios buscar imágenes o vídeos visualmente similares en grandes conjuntos de datos.

Sistemas de recomendación

Los motores de recomendación de los servicios de streaming, así como las plataformas de comercio electrónico, redes sociales y medios visuales, pueden funcionar con búsqueda vectorial. La búsqueda de vectores permite recomendar productos, películas, música u otros elementos en función de su similitud con los elementos con los que los usuarios han interactuado o les han gustado anteriormente.

Análisis geoespacial

La búsqueda vectorial se utiliza en aplicaciones de datos geoespaciales para recuperar datos espaciales como puntos de interés, características geográficas o trayectorias espaciales en función de su proximidad o similitud con una ubicación o patrón de consulta. Permite realizar búsquedas y análisis espaciales eficientes en sistemas de información geográfica y servicios basados en la localización.

Recursos relacionados Cómo afectan los almacenes de datos y el gobierno a sus iniciativas de IA

Las organizaciones con almacenes de datos adaptados y gobierno de la IA están mejor preparadas para maximizar los esfuerzos de la IA y los beneficios empresariales.

Los modelos watsonx Granite desarrollados por IBM y preparados para la empresa ya están disponibles

IBM anuncia la disponibilidad general de los primeros modelos de la serie Granite de watsonx, una colección de modelos de IA generativa para avanzar en la infusión de la misma en las aplicaciones y flujos de trabajo empresariales.

¿Qué es la generación aumentada por recuperación?

RAG es un marco de IA para recuperar hechos de una base de conocimientos externa con el fin de basar los LLM en la información más precisa y actualizada y ofrecer a los usuarios una visión del proceso generativo de los LLM.

Dé el siguiente paso

Entrene, valide, ajuste e implemente IA generativa, modelos fundacionales y capacidades de machine learning con IBM watsonx.ai, un estudio empresarial de próxima generación para constructores de IA. Cree aplicaciones de IA en menos tiempo y con menos datos.

Explore watsonx.ai Solicite una demostración en directo
Notas a pie de página

Bahaaldine Azarmi y Jeff Vestal. Vector Search for Practitioners with Elastic [Búsqueda vectorial para profesionales con Elastic]. Packt Publishing. 2023.

2 Vicki Boykis. “What are embeddings” [Qué son las incrustaciones]. 2023. https://vickiboykis.com/what_are_embeddings/ (enlace externo a ibm.com).

3 Trey Grainger, Doug Turnbull y Max Irwin. AI Powered Search [Búsqueda con IA]. Manning Publications. 2024.