¿Qué es la búsqueda de vectores?

Joven empresaria de pie junto a la ventana con el teléfono móvil en la oficina de inicio

Autores

Meredith Syed

Technical Content, Editorial Lead

IBM

Erika Russi

Data Scientist

IBM

¿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.

Diagrama que muestra la tokenización de una frase mediante la búsqueda vectorial Vectores de oraciones

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 memoria1.Como resultado, los algoritmos y modelos de machine learning pueden utilizar las incrustaciones de forma más eficiente con menos recursos informáticos.

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.

Vamos a ilustrar el proceso de vectorización al vectorizar un pequeño corpus de oraciones: "el gato se sentó en la alfombra", "el perro jugó en el jardín" y "los pájaros piaban 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.

Diagrama que demuestra la vectorización para la palabra "in" Vector de la palabra "en"
Diagrama que demuestra la vectorización de la palabra "the" Vector de la palabra "los"
Diagrama que demuestra la vectorización de la palabra "trees" Vector de la palabra "árboles"

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.

Diagrama de la fórmula de la distancia euclidiana para dos dimensiones que se obtiene aplicando el teorema de Pitágoras a un triángulo rectángulo de lados horizontales y verticales, que tiene como hipotenusa el segmento de recta que va de A a B. Las dos fórmulas al cuadrado dentro de la raíz cuadrada dan las áreas de los cuadrados de los lados horizontal y vertical, y la raíz cuadrada exterior convierte el área del cuadrado de la hipotenusa en la longitud de la hipotenusa. Fórmula de la distancia euclidiana

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.

Diagrama de fórmula de similitud de coseno Fórmula de similitud coseno

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 (Transformador generativo preentrenado) de OpenAI o los modelos Granite de IBM, para construir respuestas basadas en la instrucción 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.

Diseño 3D de bolas rodando por un circuito

Las últimas noticias + conocimientos de IA 


Descubra ideas y noticias de expertos sobre IA, nube y mucho más en el boletín semanal Think. 

Mixture of Experts | 12 de diciembre, episodio 85

Descifrar la IA: resumen semanal de noticias

Únase a nuestro panel de ingenieros, investigadores, responsables de producto y otros profesionales de talla mundial que se abren paso entre el bullicio de la IA para ofrecerle las últimas noticias y conocimientos al respecto.

Soluciones relacionadas
IBM watsonx.ai

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

Explore watsonx.ai
Soluciones de inteligencia artificial

Ponga la IA al servicio de su negocio con la experiencia líder del sector y el portfolio de soluciones de IA de IBM.

Explore las soluciones de IA
Servicios y consultoría de inteligencia artificial (IA)

Los servicios de IA de IBM Consulting ayudan a reinventar la forma de trabajar de las empresas usando IA para la transformación.

Explore los servicios de IA
Dé el siguiente paso

Obtenga acceso único a capacidades que abarcan el ciclo de vida de desarrollo de la IA. Produzca potentes soluciones de IA con interfaces intuitivas, flujos de trabajo y acceso a API y SDK estándar del sector.

Explore watsonx.ai Solicite una demo en directo
Notas a pie de página

Bahaaldine Azarmi y Jeff Vestal. Vector Search for Practitioners with Elastic. Packt Publishing. 2023

2 Vicki Boykis. “What are embeddings”. 2023. https://vickiboykis.com/what_are_embeddings 

3 Trey Grainger, Doug Turnbull y Max Irwin. AI Powered Search. Manning Publications. 2024