Inicio topics Incrustación ¿Qué es la incrustación?
Explore IBM watsonx.ai
Concepto de red neuronal informático

Fecha de publicación: 22 de diciembre de 2023
Colaborador: Joel Barnard

¿Qué es la incrustación?

La incrustación es un medio para representar objetos como texto, imágenes y audio como puntos en un espacio vectorial continuo donde las ubicaciones de esos puntos en el espacio son semánticamente significativas para los algoritmos de aprendizaje automático.

La incrustación es una herramienta fundamental para los ingenieros de ML que crean motores de búsqueda de texto e imágenes, sistemas de recomendación, chatbots, sistemas de detección de fraudes y muchas otras aplicaciones. En esencia, las incrustaciones permiten que los modelos de aprendizaje automático encuentren objetos similares.

A diferencia de otras técnicas de aprendizaje automático, las incrustaciones se aprenden de datos que utilizan diversos algoritmos, como redes neuronales, en lugar de requerir explícitamente experiencia humana para definir. Permiten que el modelo aprenda patrones y relaciones complejas en los datos, que de otro modo serían imposibles de identificar para los humanos.

Por ejemplo, la implementación de incrustaciones de OpenAI hace posible que ChatGPT comprenda fácilmente las relaciones entre diferentes palabras y categorías en lugar de limitarse a analizar cada palabra de forma aislada. Gracias a las incrustaciones, los modelos GPT de OpenAI pueden generar respuestas más coherentes y contextualmente pertinentes a las preguntas e indicaciones de los usuarios.

Haga un recorrido por IBM Watsonx.ai

Estudio empresarial de próxima generación para que los creadores de IA entrenen, validen, ajusten e implementen modelos de IA.

Contenido relacionado

Suscríbase al boletín de IBM

Cómo funcionan las incrustaciones

La mayoría de los algoritmos de aprendizaje automático solo pueden tomar datos numéricos de baja dimensión como entradas. Por lo tanto, es necesario convertir los datos en un formato numérico. Esto puede implicar cosas como crear una representación de "bolsa de palabras" para datos de texto, convertir imágenes en valores de píxeles o transformar datos gráficos en una matriz numérica.

Los objetos que entran en un modelo incrustado se generan como incrustaciones, representados como vectores. Un vector es una matriz de números (p. ej. 1489, 22... 3, 777), donde cada número indica dónde se encuentra un objeto a lo largo de una dimensión especificada. El número de dimensiones puede llegar a mil o más dependiendo de la complejidad de los datos de entrada. Cuanto más cerca esté una incrustación de otras incrustaciones en este espacio n-dimensional, más similares serán. La similitud de distribución se determina por la longitud de los puntos vectoriales de un objeto al otro (medido según distancia euclidiana, coseno u otro).

Un modelo, Word2Vec (palabra a vector), desarrollado por Google en 2013, es un método para crear incrustaciones de palabras de manera eficiente mediante el uso de una red neuronal de dos capas. Toma como entrada una palabra y devuelve una coordenada de n dimensiones (el vector de incrustación) de modo que cuando traza estos vectores de palabras en un espacio tridimensional, los sinónimos se agrupan.

Así es como se representarían dos palabras, "papá" y "mamá", como vectores:

    "papá" = [0.1548, 0.4848, ..., 1.864]

    “mamá” = [0.8785, 0.8974, ..., 2.794]

Si bien existe cierta similitud entre estas dos palabras, esperaríamos que “padre” viviera mucho más cerca de “papá” en el espacio vectorial, dando como resultado un producto de puntos más alto (una medida de la dirección relativa de dos vectores y qué tan de cerca se alinean en la dirección en la que apuntan).

Un ejemplo más complejo es la incrustación de recomendaciones, que funciona representando usuarios y elementos (por ejemplo, películas, productos, artículos) como vectores de alta dimensión en un espacio vectorial continuo. Estas incrustaciones capturan características latentes que reflejan las preferencias de los usuarios y las características de los elementos. La idea es aprender una representación para cada usuario y elemento de tal manera que el producto de puntos de sus incrustaciones se correlacione con la preferencia del usuario por ese elemento.

Cada usuario y elemento está asociado a un vector de incrustación. Estos vectores generalmente se aprenden a través de un modelo de recomendación durante un proceso de entrenamiento. Las incrustaciones de usuarios y artículos se organizan en matrices. Las filas de la matriz de usuarios representan a los usuarios y las filas de la matriz de artículos representan a los artículos.

La puntuación de recomendación para un par de usuario-artículo se puede calcular tomando el producto de punto del vector de incrustación del usuario y el vector de incrustación del artículo. Cuanto más alto sea el producto de punto, más probable es que el usuario esté interesado en el artículo.

    Puntuación de recomendación = Incrustación de usuario ⋅ Incrustación de artículo

Las matrices de incrustación se aprenden mediante un proceso de entrenamiento que utiliza interacciones históricas entre usuarios y artículos. El modelo tiene como objetivo minimizar la diferencia entre las puntuaciones previstas y las preferencias reales del usuario (por ejemplo, calificaciones, clics, compras).

Una vez que se entrena el modelo, se puede utilizar para generar recomendaciones Top-N para los usuarios. Se recomiendan los artículos con las puntuaciones más altas previstas para un usuario.

Por qué usar incrustaciones

Las incrustaciones se utilizan en diversos dominios y aplicaciones debido a su capacidad para transformar datos categóricos y de alta dimensión en representaciones vectoriales continuas, capturando patrones, relaciones y semántica significativos. A continuación se muestran algunas razones por las que se utilizan incrustaciones en la ciencia de datos:

Representación semántica

Al asignar entidades (palabras, imágenes, nodos en un gráfico, etc.) a vectores en un espacio continuo, las incrustaciones capturan relaciones semánticas y similitudes, lo que permite que los modelos comprendan y generalicen mejor.

Reducción de dimensionalidad

Los datos de alta dimensión, como textos, imágenes o gráficos, pueden transformarse en representaciones de menor dimensión, lo que los hace eficientes y más fáciles de trabajar desde el punto de vista computacional.

Mejor generalización de los modelos

Al aprender representaciones significativas de los datos, los modelos pueden generalizarse bien a ejemplos no vistos, lo que hace que las incrustaciones sean cruciales para las tareas con datos etiquetados limitados.

Visualización efectiva

Se pueden aplicar técnicas como t-SNE para visualizar incrustaciones de alta dimensión en dos o tres dimensiones, lo que proporciona información sobre las relaciones y los grupos de datos.

Entrenamiento eficiente en redes neuronales

Las capas de incrustaciones se utilizan comúnmente en arquitecturas de red neuronales para mapear entradas categóricas a vectores continuos, lo que facilita la retropropagación y la optimización.

¿Qué objetos se pueden incrustar?

Las incrustaciones son representaciones versátiles que se pueden aplicar a una amplia gama de tipos de datos. Estos son algunos de los objetos más comunes que se pueden incrustar:

Palabras

Las incrustaciones de palabras capturan las relaciones semánticas y los significados contextuales de las palabras en función de sus patrones de uso en un corpus lingüístico determinado. Cada palabra se representa como un vector denso de tamaño fijo de números reales. Es lo opuesto a un vector disperso, como la codificación one-hot, que tiene muchas entradas cero.

El uso de la incrustación de palabras ha mejorado significativamente el rendimiento de los modelos de procesamiento del lenguaje natural (PLN) al proporcionar una representación más significativa y eficiente de las palabras. Estas incrustaciones permiten a las máquinas comprender y procesar el lenguaje de una manera que captura los matices semánticos y las relaciones contextuales, lo que las hace valiosas para una amplia gama de aplicaciones, incluso el análisis de sentimientos, la traducción automática y la recuperación de información.

Algunos de los modelos de incrustación de palabras más populares son Word2Vec, GloVe (vectores globales para representación de palabras), FastText e incrustaciones derivadas de modelos basados en transformadores como BERT (representaciones bidireccionales de transformadores) y GPT (transformador generativo entrenado previamente).

Texto

La incrustación de texto amplía la incrustación de palabras para representar oraciones, párrafos o documentos enteros en un espacio vectorial continuo. Las incrustaciones de texto desempeñan un papel crucial en varias aplicaciones de PLN, como el análisis de sentimientos, la clasificación de textos, la traducción automática, la respuesta a preguntas y la recuperación de información.

Los modelos como DocF2Vec, USE (codificador universal de oraciones), BERT y ELMO (incrustaciones de modelos de lenguaje) han sido entrenados con cantidades masivas de corpus de incrustación previamente entrenados, como Wikipedia y Google News.

Imágenes

La incrustación de imágenes está diseñada para capturar características visuales e información semántica sobre el contenido de las imágenes. Las incrustaciones de imágenes son particularmente útiles para diversas tareas de visión artificial, ya que permiten el modelado de similitudes de imágenes, la clasificación de imágenes, la detección de objetos y otras tareas de reconocimiento visual.

Las redes neuronales convolucionales populares (CNN) para incrustaciones de imágenes incluyen modelos como VGG (grupo de geometría visual), ResNet (redes residuales), Incepción (GoogLeNet) y EfficientNet. Estos modelos han sido preentrenados en conjuntos de datos de imágenes a gran escala y pueden utilizarse como potentes extractores de características.

Audio

Al igual que las incrustaciones de imágenes y texto, las incrustaciones de audio suelen generarse utilizando arquitecturas de aprendizaje profundo, en particular redes neuronales recurrentes (RNN), redes neuronales convolucionales (CNN) o modelos híbridos que combinan ambas. Estas incrustaciones capturan las características pertinentes de los datos de audio, lo que permite que el análisis, procesamiento y métricas de similitud sean eficaces. Las incrustaciones de audio son especialmente útiles en aplicaciones como el reconocimiento de voz, la clasificación de audio y el análisis de música, entre otras.

Gráficos

La incrustación de gráficos es esencial para diversas tareas, incluida la clasificación de nodos, la predicción de enlaces y la detección de comunidades en redes complejas. Estas incrustaciones encuentran aplicaciones en el análisis de redes sociales, sistemas de recomendación, análisis de redes biológicas, detección de fraudes y otros dominios donde los datos se pueden representar como gráficos.

Cómo se crean las incrustaciones

Las incrustaciones se crean a través de un proceso llamado "aprendizaje incrustado". Aunque el método específico utilizado depende del tipo de datos que se incrustan, las incrustaciones se crean siguiendo estos pasos generales:

  1. Elegir o entrenar un modelo de incrustación: Seleccione un modelo de incrustación preexistente que sea adecuado para sus datos y tareas, o entrene uno nuevo si es necesario. Para texto, puede elegir Word2Vec, GloVe o BERT. Para imágenes, puede utilizar CNN previamente entrenadas como VGG o ResNet.

  2. Preparar los datos: Formatee los datos de manera que sean compatibles con el modelo de incrustación elegido. Para textos, esto implica tokenización y posiblemente preprocesamiento. Para imágenes, es posible que deba cambiar el tamaño y normalizar las imágenes.

  3. Cargar o entrenar el modelo de incrustación: Si utiliza un modelo preentrenado, cargue los pesos y la arquitectura. Si entrena un nuevo modelo, proporcione al algoritmo los datos de entrenamiento preparados.

  4. Generar incrustaciones: Para cada punto de datos, utilice el modelo entrenado o cargado para generar incrustaciones. Por ejemplo, si usa un modelo de incrustación de palabras, ingrese una palabra para obtener el vector correspondiente.

  5. Integrar las incrustaciones en su aplicación: Utilice las incrustaciones generadas como características en su modelo de aprendizaje automático. o para búsqueda de similitudes, recomendaciones, agrupaciones, etc., en función de su tarea específica.

En todos los casos de incrustación, la idea es representar los datos en un espacio vectorial continuo donde se conservan las relaciones significativas. El proceso de entrenamiento implica ajustar los parámetros del modelo para minimizar la diferencia entre los valores previstos y los reales según la función objetivo elegida. Una vez entrenadas, las incrustaciones se pueden utilizar para diversas tareas posteriores.

Ejemplos reales de incrustación

Las incrustaciones se utilizan ampliamente en diversas aplicaciones del mundo real en diferentes dominios. Ejemplos:

Procesamiento de lenguaje natural (PLN)

 

  • Incrustaciones de palabras en el análisis de sentimientos: Las incrustaciones de palabras como Word2Vec o GloVe se utilizan para representar palabras en un espacio vectorial continuo. Los modelos de análisis de sentimiento pueden aprovechar estas incrustaciones para comprender y clasificar el sentimiento de un fragmento de texto.

  • BERT para responder a preguntas: Las incrustaciones BERT se utilizan en sistemas de preguntas y respuestas. El modelo puede entender el contexto de la pregunta y del documento para extraer información pertinente.

  • Similitud de texto con Doc2Vec: Las incrustaciones de Doc2Vec se aplican en tareas como la búsqueda de documentos similares. Las incrustaciones de documentos se comparan para medir la similitud semántica entre los documentos.

 

Visión artificial

 

  • Clasificación de imágenes con CNN: Las CNN, como VGG o ResNet, se emplean para tareas de clasificación de imágenes. Las características de la capa final o de las capas intermedias pueden servir como incrustaciones de imágenes.

  • Recuperación de imágenes mediante CLIP: El modelo CLIP aprende incrustaciones conjuntas para imágenes y texto. Esto permite aplicaciones como la recuperación de imágenes basadas en consultas en lenguaje natural.

  • Reconocimiento facial con FaceNet: FaceNet crea incrustaciones para rostros que se pueden usar para el reconocimiento facial. Estas incrustaciones se utilizan a menudo para medir la similitud entre diferentes rostros.

 

Sistemas de recomendación

 

  • Filtrado colaborativo con incrustaciones: Las incrustaciones se utilizan para representar usuarios y elementos en modelos de filtrado colaborativo. Los métodos de factorización de matriz aprovechan estas incrustaciones para hacer recomendaciones personalizadas.

  • Recomendaciones de productos con incrustaciones de palabras: En el comercio electrónico, las descripciones o reseñas de productos se pueden incrustar utilizando incrustaciones de palabras. Se pueden recomendar productos similares en base a la similitud semántica de sus incrustaciones.

 

Aplicaciones multimodales

 

  • Traducción multimodal con MUSE: MUSE (codificador de oraciones universal y multilingüe) permite una comprensión multilingüe y multimodal. Se puede usar para tareas como traducir texto entre idiomas o conectar imágenes con descripciones correspondientes.

  • Búsqueda multimodal mediante incrustaciones conjuntas: Las incrustaciones conjuntas se aprenden para distintas modalidades, como imágenes y texto. Esto permite la búsqueda multimodal, donde una consulta en una modalidad recupera resultados en otra modalidad.

 

Detección de anomalías

 

  • Detección de anomalías de red con incrustaciones de gráficos: Las incrustaciones de nodos de red se pueden utilizar para detectar anomalías. Los cambios en el espacio de incrustación pueden indicar un comportamiento inusual.

  • Detección de fraudes con incrustaciones de transacciones: Las incrustaciones de datos de transacciones pueden ayudar a identificar patrones asociados con actividades fraudulentas. Las incrustaciones inusuales pueden indicar transacciones potencialmente fraudulentas.

 

Estos ejemplos ponen de manifiesto la versatilidad de las incrustaciones en diversas aplicaciones, lo que demuestra su capacidad para capturar representaciones y relaciones significativas en diferentes tipos de datos.

 

Soluciones relacionadas
IBM Natural Language Understanding

IBM Watson Natural Language Understanding utiliza el aprendizaje profundo para extraer significado y metadatos de datos de texto no estructurados. Profundice en sus datos utilizando análisis de texto para extraer categorías, clasificaciones, entidades, palabras clave, opiniones, emociones, relaciones y sintaxis.

Explorar NLU

IBM watsonx

Multiplique el poder de la IA con nuestra plataforma de IA y datos de próxima generación. IBM watsonx es una cartera de herramientas, aplicaciones y soluciones listas para su empresa diseñadas para reducir los costos y los obstáculos de la adopción de la IA, al tiempo que optimiza los resultados y el uso responsable de la IA.

Explore watsonx

Soluciones de IA de IBM

Ponga en funcionamiento la IA en todos los ámbitos de su empresa para obtener beneficios de forma rápida y ética Nuestra amplia cartera de productos de IA y soluciones analíticas de nivel empresarial está diseñada para reducir los obstáculos de la adopción de la IA, establecer el cimiento de datos adecuado y, al mismo tiempo, optimizar los resultados y el uso responsable.

Explore las soluciones de IA
Recursos ¿Qué es el aprendizaje automático?

Conozca cómo el aprendizaje automático (ML) aprovecha los datos y algoritmos, sus casos de uso y las preocupaciones asociadas para potenciar un uso responsable e innovador de la tecnología.

Modelos de lenguaje de gran tamaño de código abierto: beneficios, riesgos y tipos

Obtenga más información sobre los diferentes tipos de modelos de lenguaje de gran tamaño (LLM) y los beneficios, los riesgos y los casos de uso empresarial de los LLM de código abierto para la IA generativa.

Guía de Python para principiantes

Python es un lenguaje de programación comúnmente utilizado con incrustación. Esta guía le presentará algunos conceptos básicos que necesita saber para comenzar con este sencillo lenguaje de programación.

Dé el siguiente paso

Acelere la adopción de la IA generativa con Watsonx.ai, un estudio empresarial de próxima generación para que los creadores de IA entrenen, validen, ajusten e implementen modelos de IA.

Demostración de watsonx.ai