Fecha de publicación: 22 de diciembre de 2023
Colaborador: Joel Barnard
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.
Estudio empresarial de próxima generación para que los creadores de IA entrenen, validen, ajusten e implementen modelos de IA.
Suscríbase al boletín de IBM
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.
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:
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.
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.
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.
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.
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.
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.
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:
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.
Las incrustaciones se utilizan ampliamente en diversas aplicaciones del mundo real en diferentes dominios. Ejemplos:
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.
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.
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.
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.
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.
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.
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.