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

Publicado: 22 de diciembre de
2023Colaboradores: Joel Barnard

¿Qué es la incrustación?

La incrustación es un medio de 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 machine learning.

La incrustación es una herramienta fundamental para los ingenieros de ML (aprendizaje automático) que crean motores de búsqueda de texto e imágenes, sistemas de recomendación, chatbots, sistemas de detección del fraude y muchas otras aplicaciones. En esencia, la incrustación permite que los modelos de machine learning encuentren objetos similares.

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

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

Realice una visita guiada de IBM watsonx.ai

Un estudio empresarial de nueva 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 funciona la incrustación

La mayoría de los algoritmos de machine learning solo pueden tomar datos numéricos de baja dimensión como entradas. Por lo tanto, es necesario convertir los datos a 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 de gráficos en una matriz numérica.

Los objetos que entran en un modelo de incrustación se emiten como incrustaciones, representadas como vectores. Un vector es una matriz de números (por ejemplo 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 en función 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 viene determinada por la longitud de los puntos vectoriales de un objeto a otro (medida euclidiana, coseno u otra).

Un modelo, Word2Vec (word to 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 escupe una coordenada n-dimensional (el vector de incrustación) de modo que cuando se trazan estos vectores de palabras en un espacio tridimensional, los sinónimos se agrupan.

Así es como se representarían dos palabras: "dad" y "mom" como vectores:

    “dad” = [0,1548, 0,4848, ..., 1,864]

    “mom” = [0,8785, 0,8974, ..., 2,794]

Aunque existe cierta similitud entre estas dos palabras, cabría esperar que "father" estuviera mucho más cerca de "dad" en el espacio vectorial, lo que daría como resultado un producto escalar más alto (una medida de la dirección relativa de dos vectores y cómo estrechamente se alinean en la dirección a 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 inserciones de usuario e inserciones de elementos se organizan en matrices. Las filas de la matriz de usuarios representan a los usuarios y las filas de la matriz de elementos representan los elementos.

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

    Puntuación de recomendación = Inserción de usuario ⋅ Inserción de elemento

Las matrices de incrustación se aprenden a través de un proceso de capacitación que utiliza interacciones históricas entre el usuario y el elemento. 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 entrenado el modelo, se puede utilizar para generar las mejores recomendaciones para los usuarios. Se recomiendan los elementos con las puntuaciones más altas previstas para un usuario.

¿Por qué utilizar la incrustación?

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 utiliza la incrustación en la ciencia de datos:

Representación semántica

Al asignar entidades (palabras, imágenes, nodos de un gráfico, etc.) a vectores en un espacio continuo, las incrustaciones captan las relaciones y similitudes semánticas, lo que permite a los modelos comprender y generalizar 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 computacionalmente eficientes y más fáciles de trabajar.

Mejor generalización de los modelos

Al aprender representaciones significativas a partir de los datos, los modelos pueden generalizar bien a ejemplos no vistos, lo que hace que las incrustaciones sean cruciales para 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, proporcionando información sobre las relaciones y clústeres de los datos.

Formación eficiente en redes neuronales

Las capas de incrustación se utilizan habitualmente en arquitecturas de redes neuronales para asignar entradas categóricas a vectores continuos, facilitando la retropropagación y la optimización.

¿Qué objetos se pueden incrustar?

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

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, incluido el análisis de sentimientos, la traducción automática y la recuperación de información.

Entre los modelos de incrustación de palabras más conocidos figuran Word2Vec, GloVe (Global Vectors for Word Representation), FastText e incrustaciones derivadas de modelos basados en transformadores como BERT (Bidirectional Encoder Representations from Transformers) y GPT (Generative Pre-trained Transformer).

Texto

La incrustación de texto amplía la incrustación de palabras para representar frases, 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.

Modelos como Doc2Vec, USE (Universal Sentence Encoder), BERT y ELMO (Embed from Language Models) se han entrenado en cantidades masivas de empresas incorporadas previamente entrenadas, 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 computer vision, 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 (Visual Geometry Group), ResNet (Residual Networks), Inception (GoogLeNet) y EfficientNet. Estos modelos se han entrenado previamente en conjuntos de datos de imágenes a gran escala y se pueden utilizar como potentes extractores de funciones.

Audio

Al igual que las incrustaciones de imágenes y texto, las incrustaciones de audio se generan a menudo utilizando arquitecturas de deep learning, especialmente redes neuronales recurrentes, redes neuronales convolucionales (CNN) o modelos híbridos que combinan ambos. Estas incrustaciones capturan las características relevantes de los datos de audio, lo que permite un análisis, procesamiento y métricas de similitud 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 se aplican en el análisis de redes sociales, sistemas de recomendación, análisis de redes biológicas, detección del fraude y otros ámbitos en los que los datos pueden representarse como grafos.

Cómo se crean las incrustaciones

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

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

  2. Prepare sus datos: formatee sus datos de una manera compatible con el modelo de incrustación elegido. Para el texto, esto implica la tokenización y posiblemente el preprocesamiento. Para las imágenes, es posible que tenga que 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 sus datos de entrenamiento preparados al algoritmo.

  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 su vector correspondiente.

  5. Integra las inserciones en tu aplicación: use las inserciones generadas como características en su modelo de machine learning, o para buscar similitud, recomendación, clustering, etc., dependiendo de la 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 en función de la función objetivo elegida. Una vez entrenadas, las incrustaciones se pueden utilizar para varias tareas posteriores.

Ejemplos reales de incrustación

Las inserciones se utilizan ampliamente en varias aplicaciones del mundo real en diferentes dominios. Algunos ejemplos son:

Procesamiento del lenguaje natural (PLN)

 

  • Inserciones 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 relevante.

  • Similitud de texto conDoc2Vec: 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.

 

Computer vision

 

  • Clasificación de imágenes con CNN: los 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 de 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 caras.

 

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 usando incrustaciones de palabras. Se pueden recomendar productos similares en función de la similitud semántica de sus incrustaciones.

 

Aplicaciones multimodales

 

  • Traducción multimodal con MUSE: MUSE (Multilingual Universal Sentence Encoder) permite la comprensión multilingüe e intermodal. Se puede utilizar para tareas como traducir texto entre idiomas o conectar imágenes con las descripciones correspondientes.

  • Búsqueda multimodal mediante incrustaciones conjuntas: Se aprenden incrustaciones conjuntas para distintas modalidades, como imágenes y texto. Esto permite la búsqueda entre modales, 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 del fraude 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 watsonx Natural Language Understanding utiliza el deep learning para extraer significado y metadatos de datos de texto no estructurados. Adéntrese en sus datos mediante el análisis de texto para extraer categorías, clasificaciones, entidades, palabras clave, sentimientos, emociones, relaciones y sintaxis.

Explore NLU

IBM watsonx

Multiplique el poder de la IA con nuestra plataforma de IA y datos de última generación. IBM watsonx es una cartera de herramientas, aplicaciones y soluciones listas para el negocio, 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

Haga operativa la IA en toda su empresa para obtener beneficios de forma rápida y ética. Nuestra amplia cartera de productos de IA y soluciones analíticas de calidad empresarial está diseñada para reducir los obstáculos en la adopción de la IA y establecer una adecuada base de datos de datos y, al mismo tiempo, optimizar los resultados y el uso responsable.

Explore las soluciones de IA
Recursos ¿Qué es el machine learning (ML) o aprendizaje automático?

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

Grandes modelos lingüísticos de código abierto: ventajas, riesgos y tipos

Obtenga más información sobre los diferentes tipos de grandes modelos lingüísticos (LLM) y los beneficios, los riesgos y los casos prácticos empresariales de los LLM de código abierto para la IA generativa.

Guía para principiantes de Python

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 empezar a utilizar este sencillo lenguaje de programación.

Dé el siguiente paso

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

Demostración watsonx.ai