Inicio topics word embeddings ¿Qué son las incrustaciones de palabras?
Explore nuestra plataforma de IA Suscríbase para recibir actualizaciones sobre 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 de lenguaje natural (PLN) y aprendizaje automático (ML). Las incrustaciones de palabras se han convertido en parte integral de tareas como la clasificación de textos, el análisis de opiniones, la traducción automática y más.

Los métodos tradicionales de representar palabras de una manera que las máquinas puedan entender, como la codificación one-hot, representan cada palabra como un vector disperso con una dimensión igual al tamaño del vocabulario. Aquí, solo un elemento del vector es "caliente" (establecido en 1) para indicar la presencia de esa palabra. Si bien simple, este enfoque sufre de la maldición de la dimensionalidad, carece de información semántica y no captura relaciones entre palabras.

Las incrustaciones de palabras, por otro lado, son vectores densos con valores continuos que se entrenan mediante técnicas de aprendizaje automático, a menudo basadas en neural networks. La idea es aprender representaciones que codifiquen el significado semántico y las relaciones entre las 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 las incrustaciones de palabras es Word2Vec, que utiliza una neural network para predecir las palabras circundantes de una palabra objetivo en un contexto dado. Otro enfoque ampliamente utilizado es Glove (Global Vectors for Word Representation), que aprovecha las estadísticas globales para crear incrustaciones.

Las incrustaciones de palabras han demostrado ser invaluables para las tareas de NLP, ya que permiten que los algoritmos de aprendizaje automático comprendan y procesen las relaciones semánticas entre palabras de una manera más matizada en comparación con los métodos tradicionales.

Por qué la gobernanza de la 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 gobernanza y gestión de riesgos.

Contenido relacionado

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

Cómo se utilizan las incrustaciones de palabras

Las incrustaciones de palabras se utilizan en una variedad de tareas de NLP para mejorar la representación de palabras y capturar relaciones semánticas, que incluyen:

Clasificación de texto

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

Reconocimiento de entidades nombradas (NER)

Para identificar y clasificar entidades con precisión (por ejemplo, nombres de personas, organizaciones, ubicaciones) en el 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 una manera independiente del idioma, lo que permite que el modelo comprenda mejor las relaciones semánticas entre las palabras en los idiomas de origen y de destino.

Recuperación de información

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

Respuesta a preguntas

Las incrustaciones de palabras contribuyen 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 agrupamiento

Las integraciones de palabras permiten medir la similitud semántica entre palabras o documentos para tareas como agrupar artículos relacionados, encontrar documentos similares o recomendar elementos similares en función de su contenido textual.

Generación de texto

En las tareas de generación de texto, como el modelado de 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 se pueden usar 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" como "hombre" es a "mujer").

Modelos previos al entrenamiento

Las incrustaciones de palabras previamente entrenadas sirven como base para el entrenamiento previo de modelos de representación del lenguaje más avanzados, como BERT (Representaciones de Codificador Bidireccional de Transformadores) y GPT (Transformador Generativo Previamente Entrenado).

Una breve historia de las incrustaciones de palabras

En la década de 2000, los investigadores comenzaron a explorar los modelos de lenguaje neural (NLMs), que utilizan neural networks para modelar las relaciones entre palabras en un espacio continuo. Estos primeros modelos sentaron las bases para el desarrollo posterior de las incrustaciones de palabras.

Bengio et al. (2003) introdujeron neural networks de alimentación anticipada para el modelado del lenguaje. Estos modelos eran capaces de capturar representaciones distribuidas de palabras, pero tenían una capacidad limitada para manejar grandes vocabularios.

Algunos investigadores, como Mnih y Hinton (2009), exploraron modelos probabilísticos para el aprendizaje de representaciones distribuidas de palabras. Estos modelos se centraban en capturar las relaciones semánticas entre las palabras y fueron 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 cuerpos y se han adoptado ampliamente debido a 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 co-ocurrencia de palabras) para aprender representaciones vectoriales de palabras. Se ha utilizado en varias aplicaciones de NLP y es conocido por su capacidad para capturar relaciones semánticas.

Hoy en día, con el auge del aprendizaje profundo, las capas de incrustación se han convertido en un componente estándar de las arquitecturas de neural networks para tareas de NLP. Las incrustaciones se utilizan ahora no sólo para palabras, sino también para entidades, frases y otras unidades lingüísticas. En gran parte, las incrustaciones de palabras han permitido que modelos de lenguaje como neural networks recurrentes (RNNs), largas redes de memoria a corto plazo (LSTM), incrustaciones de modelos de lenguaje (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 capturen sus relaciones semánticas e 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 aprendizaje automático, incluyendo neural networks, son incapaces de procesar texto sin formato. Requieren números como entradas para realizar cualquier tarea.

El proceso de creación de incrustaciones de palabras implica entrenar un modelo en un gran cuerpo de texto (por ejemplo, Wikipedia o Google News). El cuerpo se preprocesa tokenizando el texto en palabras, eliminando palabras vacías y puntuación y realizando otras tareas de limpieza de texto.

Se aplica una ventana de contexto deslizante al texto y, para cada palabra objetivo, las palabras que la rodean dentro de la ventana se consideran palabras de contexto. El modelo de incrustación de palabras está entrenado para predecir una palabra objetivo en función de sus palabras de contexto 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 posicionan cerca unas de otras, y la distancia y la dirección entre los vectores codifican el grado de similitud.

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

Aquí hay un ejemplo simplificado de incrustaciones de palabras para un cuerpo muy pequeño (6 palabras), donde cada palabra se representa como un vector tridimensional:

    cat          [0.2, -0.4, 0.7]
    dog         [0.6, 0.1, 0.5]
    apple      [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") está asociada a un vector único. Los valores en el vector representan la posición de la palabra en un espacio vectorial tridimensional continuo. 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. De igual manera, los vectores para "feliz" y "triste" tienen direcciones opuestas, lo que indica sus significados contrastantes.

El ejemplo anterior está muy simplificado con fines ilustrativos. Las incrustaciones de palabras reales suelen tener cientos de dimensiones para capturar relaciones y matices de significado más complejos.

Aspectos fundamentales de las incrustaciones de palabras

Las incrustaciones de palabras se han convertido en una herramienta fundamental en la NLP, ya que proporcionan una base para comprender y representar el lenguaje de una manera que se alinee con la semántica subyacente de palabras y frases.

A continuación se presentan algunos de los conceptos y desarrollos clave que han hecho que el uso de las incrustaciones de palabras sea una técnica tan poderosa para ayudar a avanzar en la NLP.

Hipótesis distribucional

En la Hipótesis distribucional se plantea que las palabras con significados similares tienden a darse en contextos similares. Este concepto forma la base de muchos modelos de incrustación de palabras, ya que tienen como objetivo capturar relaciones semánticas mediante el análisis de patrones de co-ocurrencia de palabras.

Reducción de dimensionalidad

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

Representación semántica

Las incrustaciones de palabras capturan las relaciones semánticas entre las palabras, lo que permite a los modelos comprender y representar palabras en un espacio vectorial continuo donde 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 capturan información contextual considerando las palabras que coexisten en un contexto determinado. Esto ayuda a los modelos a comprender el significado de una palabra en función de las palabras que la rodean, lo que lleva a una mejor representación de 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 enfoques para las incrustaciones de palabras

Los métodos de incrustación basados en la frecuencia y en la predicción representan dos amplias categorías de enfoques en el contexto de las incrustaciones de palabras. Estos métodos difieren principalmente en la forma en que generan representaciones vectoriales para 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 cuerpo. Estas incrustaciones se basan en la idea de que la importancia o el significado de una palabra se puede inferir de la frecuencia con la que aparece en el texto.

Un ejemplo de incrustaciones basadas en la frecuencia es Term Frequency-Inverse Document Frequency (TF-IDF). TF-IDF está diseñado para resaltar palabras que son frecuentes dentro de un documento específico y relativamente raras en todo el cuerpo, lo que ayuda a identificar términos que son importantes para un documento en particular.

La puntuación TF-IDF para 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 de TF-IDF incluyen recuperación de información, clasificación de documentos, resumen de texto y minería de texto.

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 predicciones más avanzadas.

Incrustaciones basadas en la predicción

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

Las incrustaciones basadas en la predicción pueden diferenciar entre sinónimos y manejar la polisemia (múltiples significados de una palabra) de manera más efectiva. Las propiedades del espacio vectorial de las incrustaciones basadas en la predicción permiten tareas como medir la similitud de palabras y resolver analogías. Las incrustaciones basadas en la predicción también pueden generalizarse bien a palabras o contextos invisibles, lo que las hace sólidas en el manejo de términos fuera del vocabulario.

Los métodos basados en la predicción, en particular aquellos como Word2Vec y GloVe (que se analizan a continuación), se han vuelto dominantes en el campo de las incrustaciones de palabras debido a su capacidad para capturar un rico significado semántico y generalizar bien a varias tareas de NLP.

Word2Vec

Desarrollado por un equipo de investigadores de Google, incluido Tomas Mikolov, en 2013, Word2Vec (Word to Vector) se ha convertido en una técnica fundamental para aprender incrustaciones de palabras en modelos de procesamiento de lenguaje natural (NLP) y aprendizaje automático.

Word2Vec consta de dos modelos principales para generar representaciones vectoriales: Continuous Bag of Words (CBOW) y Continuous Skip-gram.

En el contexto de Word2Vec, el modelo Continuous Bag of Words (CBOW) tiene como objetivo predecir una palabra objetivo en función de las palabras de contexto que la rodean dentro de una ventana determinada. Utiliza las palabras de 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 oración, el modelo CBOW toma un número fijo de palabras de contexto (palabras que rodean la palabra objetivo) como entrada. Cada palabra de contexto 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 entrenamiento.

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

La representación agregada se utiliza entonces para predecir la palabra objetivo mediante una función de activación de softmax. El modelo está entrenado para minimizar la diferencia entre su distribución de probabilidad prevista 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 de contexto en función de la incrustación de la palabra objetivo. Específicamente, resulta en 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 de entrenamiento es maximizar la probabilidad de que las palabras de contexto real se den a la palabra objetivo. Esto implica ajustar los pesos de la capa de incrustación para minimizar la diferencia entre las probabilidades previstas y la distribución real de las palabras de contexto. El modelo también permite un tamaño de ventana de contexto flexible. Se puede ajustar en función de los requisitos específicos de la tarea, lo que permite a los usuarios capturar las relaciones de contexto locales y globales.

El modelo Skip-gram esencialmente "salta" la palabra objetivo para predecir su contexto, lo que lo hace particularmente efectivo para capturar relaciones semánticas y similitudes entre palabras.

Ventajas y limitaciones

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

En cuanto a las limitaciones, es posible que Word2Vec no maneje eficazmente la polisemia, donde una sola palabra tiene múltiples significados. El modelo podría promediar o mezclar las representaciones de diferentes 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 modelos basados en transformadores (discutidos a continuación), que tienen como objetivo superar algunas de las deficiencias de Word2Vec.

GloVe

GloVe (Vectores globales para la representación de palabras) es un modelo de incorporación de palabras diseñado para capturar información estadística global sobre patrones de co-ocurrencia de palabras en un cuerpo.

Introducido por Jeffrey Pennington, Richard Socher y Christopher D. Manning en 2014, el modelo GloVe se diferencia de Word2Vec al enfatizar 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 co-ocurrencia de palabras en todo el cuerpo son cruciales para capturar la semántica de las palabras. Considera la frecuencia con la que las palabras coexisten entre sí en todo el conjunto de datos y no solo en el contexto local de palabras individuales.

El modelo tiene como objetivo minimizar la diferencia entre las probabilidades de co-ocurrencia predichas y las probabilidades reales derivadas de la estadística del cuerpo.

GloVe es computacionalmente eficiente en comparación con otros métodos, ya que se basa en estadísticas globales y emplea técnicas de factorización de matrices para aprender los vectores de palabras. El modelo se puede entrenar en grandes cuerpos sin necesidad de grandes recursos computacionales.

GloVe introduce pesos escalares para pares de palabras para controlar la influencia de diferentes pares de palabras en el proceso de entrenamiento. Estas ponderaciones ayudan a mitigar el impacto de pares de palabras muy frecuentes o poco comunes en las incrustaciones aprendidas.

Mecanismo de entrenamiento

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

El primer paso es construir una matriz de co-ocurrencia que represente la frecuencia con la que las palabras aparecen juntas en el cuerpo.

Lo siguiente es formular una función objetiva que describa la relación entre los vectores de palabras y sus probabilidades de co-ocurrencia.

La función objetiva 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 co-ocurrencia predichas y las reales.

Aplicaciones y casos de uso

Los usuarios pueden descargar incrustaciones de GloVe previamente entrenadas y ajustarlas para aplicaciones específicas o usarlas directamente.

Las incrustaciones de GloVe se utilizan ampliamente en tareas de NLP, como clasificación de texto, análisis de sentimientos, traducción automática y más.

GloVe sobresale en escenarios donde capturar relaciones semánticas globales, comprender el contexto general de las palabras y aprovechar las estadísticas de co-ocurrencia son críticas para el éxito de las tareas de procesamiento de lenguaje natural.

Más allá de Word2Vec y GloVe

El éxito de Word2Vec y GloVe ha inspirado nuevas investigaciones sobre modelos de representación del lenguaje 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 de manera efectiva las incrustaciones de dimensiones más altas.

Incrustaciones de subpalabras

Las incrustaciones de subpalabras, como FastText, representan palabras como combinaciones de unidades de subpalabras, lo que proporciona más flexibilidad y maneja 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 incorpora palabras tratando cada palabra como compuesta por n-gramas de caracteres en lugar de una palabra completa. Esta característica le permite no solo aprender palabras raras sino también palabras fuera del vocabulario.

Mecanismos de atención y transformadores

Los mecanismos de atención y los modelos transformadores consideran la información contextual y las relaciones bidireccionales entre las palabras, lo que lleva a representaciones del lenguaje más avanzadas.

Se introdujeron mecanismos de atención para mejorar la capacidad de las neural networks para 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 que el modelo atienda selectivamente las partes relevantes de la entrada.

Los transformadores se han convertido en la columna vertebral de varios modelos de última generación en NLP, incluyendo BERT, GPT y T5 (Transformador de transferencia de texto a texto), entre otros. Se destacan en tareas como modelado de lenguaje, traducción automática, generación de texto y respuesta a preguntas.

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

Los transformadores permiten un mayor paralelismo durante el entrenamiento en comparación con las RNNs y son computacionalmente eficientes.

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.

IA, aprendizaje automático, aprendizaje profundo y redes neuronales: ¿cuál es la diferencia?

Si bien IA, aprendizaje automático (ML), aprendizaje profundo y neural networks son tecnologías relacionadas, los términos a menudo se usan indistintamente. Esta entrada de blog aclarará parte de la ambigüedad.

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

Entrene, valide, ajuste y despliegue IA generativa, modelos fundacionales y capacidades de aprendizaje automático con IBM® watsonx.ai, un estudio empresarial de próxima generación para creadores de IA. Cree aplicaciones de IA en menos tiempo y con menos datos.

Explore watsonx.ai Reserve una demostración en vivo