¿Qué son las incrustaciones de vectores?

Definición de incrustaciones de vectores

Las incrustaciones de vectores son una forma de convertir palabras, oraciones y otros datos en números que captan su significado y relaciones. Representan diferentes tipos de datos como puntos en un espacio multidimensional, donde puntos de datos similares están agrupados más juntos en clústeres. Estas representaciones numéricas ayudan a las máquinas a comprender y procesar estos datos de manera más efectiva.

Las incrustaciones de palabras y oraciones son dos de los subtipos más comunes de incrustaciones de vectores, pero existen otros. Algunas incrustaciones de vectores pueden representar documentos completos, así como vectores de imágenes diseñados para hacer coincidir el contenido visual, vectores de perfil de usuario para determinar las preferencias de un usuario, vectores de productos que ayudan a identificar productos similares y muchos otros. Las incrustaciones de vectores ayudan a los algoritmos de machine learning a encontrar patrones en los datos y realizar tareas como análisis de sentimientos, traducción de idiomas, sistemas de recomendación y muchas más.

Diagram of how a vector search engine works using vector embeddings

Tipos de incrustaciones de vectores

Existen varios tipos diferentes de incrustaciones de vectores que se usan comúnmente en diversas aplicaciones. Estos son algunos ejemplos:

Las incrustaciones de palabras representan palabras individuales como vectores. Técnicas como Word2Vec, GloVe y FastText aprenden incrustaciones de palabras captando relaciones semánticas e información contextual de grandes corpus de texto.

Las incrustaciones de oraciones representan oraciones completas como vectores. Modelos como Universal Sentence Encoder (USE) y SkipThought generan incrustaciones que captan el significado general y el contexto de las oraciones.

Las incrustaciones de documentos representan documentos (cualquier cosa, desde artículos periodísticos y académicos hasta libros) como vectores. Captan la información semántica y el contexto de todo el documento. Técnicas como Doc2Vec y Paragraph Vectors están diseñadas para aprender a incrustar documentos.

Las incrustaciones de imágenes representan imágenes como vectores mediante la captura de diferentes características visuales. Técnicas como las redes neuronales convolucionales (CNN) y modelos previamente entrenados como ResNet y VGG generan incrustaciones de imágenes para tareas como clasificación de imágenes, detección de objetos y similitud de imágenes.

Las incrustaciones de usuarios representan a los usuarios de un sistema o plataforma como vectores. Captan las preferencias, los comportamientos y las características del usuario. Las incrustaciones de usuarios se pueden utilizar en todo, desde sistemas de recomendación hasta marketing personalizado y segmentación de usuarios.

Las incrustaciones de productos representan productos en sistemas de recomendación o comercio electrónico como vectores. Captan los atributos, las características y cualquier otra información semántica disponible de un producto. Luego, los algoritmos pueden utilizar estas incrustaciones para comparar, recomendar y analizar productos en función de sus representaciones vectoriales.

¿Son las incrustaciones y los vectores lo mismo?

En el contexto de las incrustaciones de vectores, sí, las incrustaciones y los vectores son lo mismo. Ambos se refieren a representaciones numéricas de datos, donde cada punto de datos está representado por un vector en un espacio de alta dimensión.

El término "vector" simplemente se refiere a una serie de números con una dimensionalidad específica. En el caso de incrustaciones de vectores, estos vectores representan cualquiera de los puntos de datos mencionados anteriormente en un espacio continuo. Por el contrario, "incrustaciones" se refiere específicamente a la técnica de representar datos como vectores de tal manera que capten información significativa, relaciones semánticas o características contextuales. Las incrustaciones están diseñadas para captar la estructura subyacente o las propiedades de los datos, y por lo general, se aprenden mediante algoritmos o modelos de entrenamiento.

Si bien las incrustaciones y los vectores se pueden usar indistintamente en el contexto de las incrustaciones de vectores, "incrustaciones" enfatiza la noción de representar datos de una manera estructurada y significativa, mientras que "vectores" se refiere a la representación numérica en sí.

¿Cómo se crean las incrustaciones de vectores?

Las incrustaciones de vectores se crean mediante un proceso de machine learning en el que se entrena un modelo para convertir cualquiera de los datos enumerados anteriormente (y otros) en vectores numéricos. Esta es una visión general breve de cómo funciona:

  • Primero, recopila un conjunto de datos grande que represente el tipo de datos para los que deseas crear incrustaciones, como texto o imágenes.
  • A continuación, preprocesarás los datos. Esto requiere limpiar y preparar los datos eliminando ruido, normalizando el texto, cambiando el tamaño de las imágenes o varias otras tareas según el tipo de datos con los que estés trabajando.
  • Seleccionarás un modelo de red neuronal que se ajuste bien a tus objetivos de datos e ingestarás los datos preprocesados en el modelo.
  • El modelo aprende patrones y relaciones dentro de los datos ajustando sus parámetros internos durante el entrenamiento. Por ejemplo, aprende a asociar palabras que suelen aparecer juntas o a reconocer características visuales en imágenes.
  • A medida que el modelo aprende, genera vectores numéricos (o incrustaciones) que representan el significado o las características de los datos. Cada punto de datos, como una palabra o una imagen, está representado por un vector único.
  • En este punto, puedes evaluar la calidad y la eficacia de las incrustaciones midiendo su desempeño en tareas específicas o utilizando humanos para evaluar qué tan similares son los resultados obtenidos.
  • Una vez que hayas determinado que las incrustaciones están funcionando bien, puedes ponerlas a trabajar analizando y procesando tus conjuntos de datos.

¿Cómo se ve la incrustación de vectores?

La longitud o dimensionalidad del vector depende de la técnica de incrustación específica que estés utilizando y de cómo deseas que se representen los datos. Por ejemplo, si estás creando incrustaciones de palabras, a menudo tendrán dimensiones que van desde unos pocos cientos hasta unos pocos miles, algo que es demasiado complejo para que los humanos lo diagramen visualmente. Las incrustaciones de oraciones o de documentos pueden tener dimensiones mayores porque captan información semántica aún más compleja.

La incrustación del vector en sí generalmente se representa como una secuencia de números, como [0.2, 0.8, -0.4, 0.6...]. Cada número de la secuencia corresponde a una característica o dimensión específica, y contribuye a la representación general del punto de datos. Dicho esto, los números reales dentro del vector no son significativos por sí solos. Son los valores relativos y las relaciones entre los números los que captan la información semántica y permiten que los algoritmos procesen y analicen los datos de manera efectiva.

Aplicaciones de incrustaciones de vectores

Las incrustaciones de vectores tienen una amplia gama de aplicaciones en varios campos. Estas son algunas de las más comunes que puedes encontrar:

El procesamiento del lenguaje natural (NLP) utiliza ampliamente la incrustación de vectores para tareas como análisis de sentimientos, reconocimiento de entidades nombradas, clasificación de texto, traducción automática, respuesta a preguntas y similitud de documentos. Al utilizar incrustaciones, los algoritmos pueden comprender y procesar datos relacionados con el texto de manera más efectiva.

Los motores de búsqueda utilizan incrustaciones de vectores para recuperar información y ayudar a identificar relaciones semánticas. Las incrustaciones de vectores ayudan al motor de búsqueda a atender la búsqueda del usuario y devolver páginas web temáticas relevantes, recomendar artículos, corregir palabras mal escritas en la búsqueda y sugerir consultas relacionadas similares que el usuario podría encontrar útiles. Esta aplicación se utiliza a menudo para potenciar la búsqueda semántica.

Los sistemas de recomendación personalizados utilizan incrustaciones de vectores para captar las preferencias del usuario y las características de los elementos. Ayudan a hacer coincidir los perfiles de usuario con elementos que también podrían gustarle al usuario, como productos, películas, canciones o artículos de noticias, basándose en coincidencias cercanas entre el usuario y los elementos dentro del vector. Un ejemplo familiar es el sistema de recomendaciones de Netflix. ¿Alguna vez te has preguntado cómo selecciona películas que se alinean con tus gustos? Es mediante el uso de medidas de similitud elemento-elemento para sugerir contenido similar al que el usuario suele ver.

El contenido visual también se puede analizar mediante incrustaciones de vectores. Los algoritmos entrenados en este tipo de incrustaciones de vectores pueden clasificar imágenes, identificar objetos y detectarlos en otras imágenes, buscar imágenes similares, y ordenar todo tipo de imágenes (así como videos) en distintas categorías. La tecnología de reconocimiento de imágenes que utiliza Google Lens es una herramienta de análisis de imágenes de uso frecuente.

Los algoritmos de detección de anomalías utilizan incrustaciones de vectores para identificar patrones inusuales o valores atípicos en varios tipos de datos. El algoritmo se entrena con incrustaciones que representan un comportamiento normal para que pueda aprender a detectar desviaciones de la norma que pueden detectarse en función de distancias o medidas de disimilitud entre incrustaciones. Esto es especialmente útil en aplicaciones de ciberseguridad.

La analítica de grafos utiliza incrustaciones de grafos, donde los grafos son una colección de puntos (llamados «nodos») conectados por líneas (llamadas «bordes»). Cada nodo representa una entidad, como una persona, una página web o un producto, y cada borde representa una relación o conexión entre esas entidades. Estas incrustaciones de vectores pueden hacer de todo, desde sugerir amigos en redes sociales hasta detectar anomalías de ciberseguridad (como se describe anteriormente).

El audio y la música también se pueden procesar e incrustar. Las incrustaciones de vectores captan características de audio que permiten a los algoritmos analizar datos de audio de manera efectiva. Esto se puede utilizar para una variedad de aplicaciones, como recomendaciones de música, clasificaciones de géneros, búsquedas de similitudes de audio, reconocimiento de voz y verificación de oradores.

Comienza con la incrustación de vectores con Elasticsearch

La plataforma Elasticsearch integra de forma nativa el potente machine learning y la IA en las soluciones, lo que te ayuda a crear aplicaciones que beneficien a tus usuarios y que realicen el trabajo más rápido. Elasticsearch es el componente principal del Elastic Stack, un conjunto de herramientas gratuitas y abiertas para la ingesta, el enriquecimiento, el almacenamiento, el análisis y la visualización de datos.

Elasticsearch te ayuda a:

  • Mejorar las experiencias de los usuarios y aumentar las conversiones
  • Habilitar nueva información, automatización, analíticas y reportes
  • Aumentar la productividad de los empleados en las aplicaciones y en los documentos internos

Conoce más sobre las bases de datos vectoriales de Elasticsearch