Inicio Topics incrustaciones de palabras ¿Qué son las incrustaciones de palabras?
Explore nuestra plataforma de IA Suscríbase para conocer lo último en IA
Ilustración con collage de pictogramas de nubes, gráfico circular, pictogramas gráficos

Publicado: 23 de enero de 2024
Colaboradores: Joel Barnard

¿Qué son las incrustaciones de palabras?

Las incrustaciones de palabras son una forma de representar palabras como vectores en un espacio multidimensional, donde la distancia y la dirección entre vectores reflejan la similitud y las relaciones entre las palabras correspondientes.

El desarrollo de la incrustación para representar texto ha desempeñado un papel crucial en el avance de las aplicaciones de procesamiento del lenguaje natural (PLN) y machine learning (ML). Las incrustaciones de palabras se han convertido en parte integrante de tareas como la clasificación de textos, el análisis de sentimientos y la traducción automática, entre otras.

Los métodos tradicionales para representar las palabras de forma comprensible para las máquinas, como la codificación one-hot, representan cada palabra como un vector disperso con una dimensión igual al tamaño del vocabulario. Aquí, sólo un elemento del vector es "hot" (se fija en 1) para indicar la presencia de esa palabra. Aunque es simple, este enfoque sufre la maldición de la dimensionalidad, carece de información semántica y no capta las relaciones entre palabras.

Las incrustaciones de palabras, por su parte, son vectores densos con valores continuos que se entrenan mediante técnicas de machine learning, a menudo basadas en redes neuronales. La idea es aprender representaciones que codifiquen el significado semántico y las relaciones entre palabras. Las incrustaciones de palabras se entrenan exponiendo un modelo a una gran cantidad de datos de texto y ajustando las representaciones vectoriales en función del contexto en el que aparecen las palabras.

Un método popular para entrenar la incrustación de palabras es Word2Vec, que utiliza una red neuronal para predecir las palabras que rodean a una palabra objetivo en un contexto determinado. Otro enfoque muy utilizado es GloVe (Global Vectors for Word Representation), que aprovecha las estadísticas globales para crear incrustaciones.

Las incrustaciones de palabras han demostrado ser muy valiosas para las tareas de PLN, ya que permiten a los algoritmos de machine learning comprender y procesar las relaciones semánticas entre las palabras de una forma más matizada en comparación con los métodos tradicionales.

Por qué la gobernanza de IA es un imperativo empresarial para escalar la IA empresarial

Conozca los obstáculos para la adopción de la IA, en particular la falta de soluciones de gestión de riesgos y gobernanza de la IA.

Contenido relacionado

Regístrese para recibir la guía sobre modelos fundacionales

Cómo se utilizan las incrustaciones de palabras

Las incrustaciones de palabras se utilizan en diversas tareas de PLN para mejorar la representación de las palabras y capturar las relaciones semánticas, entre ellas:

Clasificación de textos

Las incrustaciones de palabras se utilizan a menudo como características en tareas de clasificación de textos, como el análisis de sentimientos, la detección de spam y la categorización de temas.

Named Entity Recognition (NER)

Para identificar y clasificar con precisión entidades (por ejemplo, nombres de personas, organizaciones, lugares) en un texto, las incrustaciones de palabras ayudan al modelo a comprender el contexto y las relaciones entre las palabras.

traducción automática

En los sistemas de traducción automática, las incrustaciones de palabras ayudan a representar las palabras de forma independiente del idioma, lo que permite al modelo comprender mejor las relaciones semánticas entre las palabras de los idiomas de origen y destino.

Recuperación de información

En los sistemas de recuperación de información, las incrustaciones de palabras pueden permitir una correspondencia más precisa de las consultas de los usuarios con los documentos pertinentes, lo que mejora la eficacia de los motores de búsqueda y los sistemas de recomendación.

Respuesta a preguntas

La incrustación de palabras contribuye al éxito de los sistemas de respuesta a preguntas al mejorar la comprensión del contexto en el que se plantean las preguntas y se encuentran las respuestas.

Similitud semántica y agrupación (clustering)

Las incrustaciones de palabras permiten medir la similitud semántica entre palabras o documentos para tareas como agrupar artículos relacionados, encontrar documentos similares o recomendar artículos parecidos basándose en su contenido textual.

Generación de textos

En las tareas de generación de textos, como el modelado del lenguaje y los autocodificadores, las incrustaciones de palabras se utilizan a menudo para representar el texto de entrada y generar secuencias de salida coherentes y contextualmente relevantes.

Similitud y analogía

Las incrustaciones de palabras pueden utilizarse para realizar tareas de similitud de palabras (por ejemplo, encontrar palabras similares a una palabra dada) y tareas de analogía de palabras (por ejemplo, "rey" es a "reina" lo que "hombre" es a "mujer").

Modelos de preentrenamiento

Las incrustaciones de palabras preentrenadas sirven de base para preentrenar modelos de representación lingüística más avanzados, como BERT (Bidirectional Encoder Representations from Transformers) y GPT (Generative Pre-trained Transformer).

Breve historia de la incrustación de palabras

En la década de 2000, los investigadores empezaron a explorar los modelos neuronales de lenguaje (NLM, por sus siglas en inglés), que utilizan redes neuronales para modelar las relaciones entre palabras en un espacio continuo. Estos primeros modelos sentaron las bases para el posterior desarrollo de la incrustación de palabras.

Bengio et al. (2003) introdujeron las redes neuronales prealimentadas para el modelado del lenguaje. Estos modelos eran capaces de captar representaciones distribuidas de palabras, pero su capacidad para manejar grandes vocabularios era limitada.

Algunos investigadores, como Mnih y Hinton (2009), exploraron modelos probabilísticos para el aprendizaje de representaciones distribuidas de palabras. Estos modelos se centraban en captar las relaciones semánticas entre las palabras y supusieron un paso importante hacia la incrustación de palabras.

El modelo Word2Vec, introducido por Tomas Mikolov y sus colegas de Google en 2013, supuso un avance significativo. Word2Vec aprovecha dos modelos, Continuous Bag of Words (CBOW) y Continuous Skip-gram, que aprenden eficazmente las incrustaciones de palabras a partir de grandes corpus y se han generalizado por su sencillez y eficacia.

GloVe (Global Vectors for Word Representation), introducido por Pennington et al. en 2014, se basa en la idea de utilizar estadísticas globales (frecuencias de coocurrencia de palabras) para aprender representaciones vectoriales de palabras. Se ha utilizado en varias aplicaciones de PLN y es conocido por su capacidad para capturar relaciones semánticas.

Hoy en día, con el auge del deep learning, las capas de incrustación se han convertido en un componente estándar de las arquitecturas de redes neuronales para tareas de PLN. Las incrustaciones se utilizan ahora no sólo para palabras, sino también para entidades, frases y otras unidades lingüísticas. En gran medida, las incrustaciones de palabras han permitido que modelos lingüísticos como las redes neuronales recurrentes (RNN), las redes de memoria a corto plazo (LSTM), las incrustaciones de modelos lingüísticos (ELMo), BERT, ALBERT (un BERT ligero) y GPT evolucionen a un ritmo vertiginoso. 

Cómo se crean las incrustaciones de palabras

El objetivo principal de las incrustaciones de palabras es representarlas de forma que capten sus relaciones semánticas y la información contextual. Estos vectores son representaciones numéricas en un espacio vectorial continuo, donde las posiciones relativas de los vectores reflejan las similitudes y relaciones semánticas entre las palabras.

La razón por la que se utilizan vectores para representar palabras es que la mayoría de los algoritmos de machine learning, incluidas las redes neuronales, son incapaces de procesar texto sin formato. Necesitan números para realizar cualquier tarea.

El proceso de creación de incrustaciones de palabras implica entrenar un modelo en un corpus de texto de gran tamaño (por ejemplo, Wikipedia o Google News). El corpus se preprocesa dividiendo el texto en palabras, eliminando las palabras vacías y los signos de puntuación y realizando otras tareas de limpieza del texto.

Se aplica al texto una ventana de contexto deslizante y, para cada palabra objetivo, las palabras circundantes dentro de la ventana se consideran palabras de contexto. El modelo de incrustación de palabras se entrena para predecir una palabra objetivo basándose en sus palabras contextuales o viceversa.

Esto permite a los modelos captar diversos patrones lingüísticos y asignar a cada palabra un vector único, que representa la posición de la palabra en un espacio vectorial continuo. Las palabras con significados similares se colocan cerca unas de otras, y la distancia y la dirección entre los vectores codifican el grado de similitud.

El proceso de entrenamiento consiste en ajustar los parámetros del modelo de incrustación para minimizar la diferencia entre las palabras predichas y las reales en el contexto.

A continuación se muestra un ejemplo simplificado de incrustación de palabras para un corpus muy pequeño (6 palabras), en el que cada palabra se representa como un vector tridimensional:

    gato          [0,2, -0,4 0,7]
    perro         [0,6, 0,1, 0,5]
    manzana      [0,8 -0,2, -0,3]
    naranja    [0,7, -0,1, -0,6]
    feliz     [-0,5, 0,9, 0,2]
    triste         [0,4, -0,7, -0,5]

En este ejemplo, cada palabra (por ejemplo, "gato", "perro", "manzana") se asocia a un vector único. Los valores del vector representan la posición de la palabra en un espacio vectorial continuo de 3 dimensiones. Se espera que las palabras con significados o contextos similares tengan representaciones vectoriales similares. Por ejemplo, los vectores de "gato" y "perro" están muy juntos, lo que refleja su relación semántica. Del mismo modo, los vectores de "feliz" y "triste" tienen direcciones opuestas, lo que indica sus significados contrastados.

El ejemplo anterior está muy simplificado a efectos ilustrativos. Las incrustaciones de palabras reales suelen tener cientos de dimensiones para captar relaciones y matices de significado más intrincados.

Aspectos fundamentales de la incrustación de palabras

Las incrustaciones de palabras se han convertido en una herramienta fundamental del PLN, ya que proporcionan una base para comprender y representar el lenguaje de un modo que se ajusta a la semántica subyacente de palabras y frases.

A continuación se exponen algunos de los conceptos y desarrollos clave que han hecho de la incrustación de palabras una técnica tan poderosa para el avance del PLN.

Hipótesis distributiva

La hipótesis de la distribución postula que las palabras con significados similares tienden a aparecer en contextos similares. Este concepto constituye la base de muchos modelos de incrustación de palabras, ya que pretenden captar las relaciones semánticas analizando patrones de coocurrencia de palabras.

Reducción de dimensionalidad

A diferencia de la codificación one-hot tradicional, las incrustaciones de palabras son vectores densos de baja dimensionalidad. Esto reduce la complejidad computacional y los requisitos de memoria, lo que los hace adecuados para aplicaciones PLN a gran escala.

Representación semántica

Las incrustaciones de palabras captan las relaciones semánticas entre ellas, lo que permite a los modelos comprender y representar las palabras en un espacio vectorial continuo en el que las palabras similares están cerca unas de otras. Esta representación semántica permite una comprensión más matizada del lenguaje.

Información contextual

Las incrustaciones de palabras captan la información contextual teniendo en cuenta las palabras que coocurren en un contexto determinado. Esto ayuda a los modelos a comprender el significado de una palabra basándose en las palabras que la rodean, lo que permite representar mejor las frases y oraciones.

Generalización

Las incrustaciones de palabras se generalizan bien a palabras no vistas o raras porque aprenden a representar palabras basándose en su contexto. Esto resulta especialmente ventajoso cuando se trabaja con vocabularios diversos y en evolución.

Dos métodos de incrustación de palabras

Los métodos de incrustación basados en la frecuencia y los basados en la predicción representan dos grandes categorías de enfoques en el contexto de la incrustación de palabras. Estos métodos difieren principalmente en la forma de generar representaciones vectoriales de las palabras.

Incrustaciones basadas en la frecuencia

Las incrustaciones basadas en la frecuencia se refieren a representaciones de palabras que se derivan de la frecuencia de las palabras en un corpus. Estas incrustaciones se basan en la idea de que la importancia o el significado de una palabra puede deducirse de la frecuencia con que aparece en el texto.

Un ejemplo de incrustación basada en frecuencias es la frecuencia de término - frecuencia inversa de documento (TF-IDF, por sus siglas en inglés). El TF-IDF está diseñado para resaltar palabras que son frecuentes en un documento concreto y relativamente raras en todo el corpus, lo que ayuda a identificar términos significativos para un documento concreto.

La puntuación TF-IDF de un término (palabra) en un documento se calcula mediante la siguiente fórmula:

    TF-IDF (t,d,D) = TF(t,d) x IDF(t, D)

Las aplicaciones del TF-IDF incluyen la recuperación de información, la clasificación de documentos, el resumen de textos y la minería de textos.

Aunque las incrustaciones basadas en la frecuencia son sencillas y fáciles de entender, carecen de la profundidad de la información semántica y el conocimiento del contexto que proporcionan las incrustaciones basadas en la predicción más avanzadas.

Incrustaciones basadas en predicciones

Las incrustaciones basadas en predicciones son representaciones de palabras derivadas de modelos entrenados para predecir determinados aspectos del contexto de una palabra o de las palabras vecinas. A diferencia de las incrustaciones basadas en la frecuencia, que se centran en las estadísticas de aparición de palabras, las incrustaciones basadas en la predicción captan las relaciones semánticas y la información contextual, proporcionando representaciones más ricas de los significados de las palabras.

Las incrustaciones basadas en predicciones pueden diferenciar entre sinónimos y manejar la polisemia (múltiples significados de una palabra) con mayor eficacia. Las propiedades de espacio vectorial de las incrustaciones basadas en predicciones permiten realizar tareas como medir la similitud de las palabras y resolver analogías. Las incrustaciones basadas en predicciones también pueden generalizarse bien a palabras o contextos no vistos, lo que las hace sólidas a la hora de manejar términos fuera de vocabulario.

Los métodos basados en la predicción, en particular los de Word2Vec y GloVe (analizados más adelante), se han impuesto en el campo de la incrustación de palabras por su capacidad para captar el significado semántico y generalizarlo a diversas tareas de PLN.

Word2Vec

Desarrollada por un equipo de investigadores de Google, entre ellos Tomas Mikolov, en 2013, Word2Vec (Word to Vector) se ha convertido en una técnica fundacional para el aprendizaje de incrustaciones de palabras en modelos de procesamiento del lenguaje natural (PLN) y machine learning.

Word2Vec consists of two main models for generating vector representations: Continuous Bag of Words (CBOW) y Continuous Skip-gram.

En el contexto de Word2Vec, el modelo Continuous Bag of Words (CBOW) pretende predecir una palabra objetivo basándose en las palabras contextuales que la rodean dentro de una ventana determinada. Utiliza las palabras del contexto para predecir la palabra objetivo, y las incrustaciones aprendidas capturan las relaciones semánticas entre las palabras.

Por su parte, el modelo Continuous Skip-gram toma una palabra objetivo como entrada y trata de predecir las palabras contextuales que la rodean.

Cómo se entrenan los modelos

Dada una secuencia de palabras en una frase, el modelo CBOW toma como entrada un número fijo de palabras de contexto (palabras que rodean a la palabra objetivo). Cada palabra contextual se representa como una incrustación (vector) a través de una capa de incrustación compartida. Estas incrustaciones se aprenden durante el proceso de formación.

Las incrustaciones individuales de palabras contextuales se agregan, normalmente sumándolas o promediándolas. Esta representación agregada sirve de entrada a la siguiente capa.

A continuación, la representación agregada se utiliza para predecir la palabra objetivo mediante una función de activación softmax. El modelo se entrena para minimizar la diferencia entre su distribución de probabilidad predicha sobre el vocabulario y la distribución real (representación codificada one-hot) para la palabra objetivo.

El modelo CBOW se entrena ajustando los pesos de la capa de incrustación en función de su capacidad para predecir la palabra objetivo con precisión.

El modelo Continuous Skip-gram utiliza datos de entrenamiento para predecir las palabras contextuales basándose en la incrustación de la palabra objetivo. En concreto, genera una distribución de probabilidad sobre el vocabulario, indicando la probabilidad de que cada palabra esté en el contexto dada la palabra objetivo.

El objetivo del entrenamiento es maximizar la probabilidad de las palabras del contexto real dada la palabra objetivo. Esto implica ajustar los pesos de la capa de incrustación para minimizar la diferencia entre las probabilidades predichas y la distribución real de las palabras contextuales. El modelo también permite un tamaño flexible de la ventana contextual. Puede ajustarse en función de los requisitos específicos de la tarea, lo que permite a los usuarios capturar relaciones de contexto tanto locales como globales.

El modelo Skip-gram básicamente "salta" de la palabra objetivo para predecir su contexto, lo que lo hace especialmente eficaz para captar las relaciones y similitudes semánticas entre palabras.

Ventajas y limitaciones

Ambos modelos utilizados por Word2Vec tienen sus propias ventajas y limitaciones. Skip-gram funciona bien con grandes cantidades de datos de texto y representa bien las palabras raras. En cambio, CBOW es más rápido y tiene mejores representaciones para las palabras más frecuentes.

En cuanto a las limitaciones, es posible que Word2Vec no gestione eficazmente la polisemia, cuando una sola palabra tiene varios significados. El modelo puede promediar o mezclar las representaciones de los distintos sentidos de una palabra polisémica. Word2Vec también trata las palabras como unidades atómicas y no captura información de subpalabras.

Abordar algunas de estas limitaciones ha sido la motivación para el desarrollo de modelos más avanzados, como FastText, GloVe y los modelos basados en transformadores (analizados más adelante), que pretenden superar algunas de las deficiencias de Word2Vec.

GloVe

GloVe (Global Vectors for Word Representation) es un modelo de incrustación de palabras diseñado para capturar información estadística global sobre patrones de coocurrencia de palabras en un corpus.

Introducido por Jeffrey Pennington, Richard Socher y Christopher D. Manning en 2014, el modelo GloVe difiere de Word2Vec al hacer hincapié en el uso de información global en lugar de centrarse únicamente en el contexto local.

GloVe se basa en la idea de que las estadísticas globales de coocurrencia de palabras en todo el corpus son cruciales para capturar la semántica de las palabras. Tiene en cuenta la frecuencia con la que las palabras coinciden entre sí en todo el conjunto de datos y no sólo en el contexto local de las palabras individuales.

El objetivo del modelo es minimizar la diferencia entre las probabilidades de coocurrencia previstas y las probabilidades reales derivadas de las estadísticas del corpus.

GloVe es eficiente desde el punto de vista computacional en comparación con otros métodos, ya que se basa en estadísticas globales y emplea técnicas de factorización matricial para aprender los vectores de palabras. El modelo puede entrenarse con grandes corpus sin necesidad de grandes recursos informáticos.

GloVe introduce pesos escalares para los pares de palabras con el fin de controlar la influencia de los distintos pares de palabras en el proceso de formación. Estas ponderaciones ayudan a mitigar el impacto de los pares de palabras muy frecuentes o poco frecuentes en las incrustaciones aprendidas.

Mecanismo de entrenamiento

A diferencia de los modelos Word2Vec (CBOW y Skip-gram), que se centran en predecir palabras contextuales a partir de una palabra objetivo o viceversa, GloVe utiliza un enfoque diferente que consiste en optimizar los vectores de palabras en función de sus probabilidades de coocurrencia. El proceso de entrenamiento está diseñado para aprender incrustaciones que capturen eficazmente las relaciones semánticas entre las palabras.

El primer paso consiste en construir una matriz de coocurrencias que represente la frecuencia con la que las palabras aparecen juntas en el corpus.

Lo siguiente es formular una función objetivo que describa la relación entre los vectores de palabras y sus probabilidades de coocurrencia.

La función objetivo se optimiza mediante el descenso de gradiente u otros algoritmos de optimización. El objetivo es ajustar los vectores de palabras y los sesgos para minimizar la diferencia al cuadrado entre las probabilidades logarítmicas de coocurrencia predichas y las reales.

Aplicaciones y casos de uso

Los usuarios pueden descargar incrustaciones GloVe preentrenadas y ajustarlas para aplicaciones específicas o utilizarlas directamente.

Las incrustaciones de GloVe se utilizan ampliamente en tareas de PLN, como la clasificación de textos, el análisis de sentimientos y la traducción automática, entre otras.

GloVe destaca en situaciones en las que la captura de relaciones semánticas globales, la comprensión del contexto general de las palabras y el aprovechamiento de las estadísticas de coocurrencia son cruciales para el éxito de las tareas de procesamiento del lenguaje natural.

Más allá de Word2Vec y GloVe

El éxito de Word2Vec y GloVe ha inspirado nuevas investigaciones sobre modelos de representación lingüística más sofisticados, como FastText, BERT y GPT. Estos modelos aprovechan las incrustaciones de subpalabras, los mecanismos de atención y los transformadores para manejar eficazmente incrustaciones de mayor dimensión.

Incrustación de subpalabras

Las incrustaciones de subpalabras, como FastText, representan palabras como combinaciones de unidades de subpalabras, lo que ofrece más flexibilidad y permite manejar palabras raras o fuera de vocabulario. Las incrustaciones de subpalabras mejoran la solidez y la cobertura de las incrustaciones de palabras.

A diferencia de GloVe, FastText incrusta palabras tratando cada palabra como si estuviera compuesta de n-gramas de caracteres en lugar de una palabra entera. Esta característica le permite no sólo aprender palabras raras, sino también palabras fuera de vocabulario.

Mecanismos de atención y transformadores

Los mecanismos de atención y los modelos transformadores tienen en cuenta la información contextual y las relaciones bidireccionales entre las palabras, lo que da lugar a representaciones lingüísticas más avanzadas.

Los mecanismos de atención se introdujeron para mejorar la capacidad de las redes neuronales de centrarse en partes específicas de la secuencia de entrada al hacer predicciones. En lugar de tratar todas las partes de la entrada por igual, los mecanismos de atención permiten al modelo atender selectivamente a las partes relevantes de la entrada.

Los transformadores se han convertido en la columna vertebral de varios modelos de vanguardia en PLN, como BERT, GPT y T5 (transformador de transferencia de texto a texto), entre otros. Destacan en tareas como el modelado del lenguaje, la traducción automática, la generación de textos y la respuesta a preguntas.

Los transformadores utilizan un mecanismo de autoatención para captar las relaciones entre las distintas palabras de una secuencia. Este mecanismo permite que cada palabra atienda a todas las demás palabras de la secuencia, capturando las dependencias de largo alcance.

Los transformadores permiten una mayor paralelización durante el entrenamiento en comparación con las RNN y son eficientes desde el punto de vista computacional.

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.

IA vs. machine learning vs. deep learning vs. redes neuronales: ¿cuál es la diferencia?

Aunque IA, ML, deep learning y redes neuronales son tecnologías relacionadas, los términos se utilizan a menudo indistintamente. Esta entrada del blog aclarará algunas ambigüedades.

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

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

Explore watsonx.ai Solicite una demostración en directo