14. Word2Vec explicado conceptualmente

14.1 Introducción

En el tema anterior vimos qué son los embeddings de palabras y por qué representaron un cambio profundo respecto de Bag of Words y TF-IDF. Ahora toca estudiar uno de los métodos más influyentes para aprender esos embeddings: Word2Vec.

Word2Vec no fue importante solo por producir buenos vectores, sino porque mostró de forma clara y eficiente que era posible aprender representaciones densas de palabras a partir de grandes corpus textuales usando una tarea relativamente simple basada en contexto.

En este tema no nos centraremos en fórmulas detalladas, sino en la intuición conceptual detrás del método: qué intenta aprender, cómo lo hace y por qué sus embeddings resultaron tan útiles.

14.2 ¿Qué es Word2Vec?

Word2Vec es una familia de modelos diseñada para aprender embeddings de palabras a partir de texto. La idea central es entrenar una red relativamente simple para resolver una tarea relacionada con el contexto de las palabras. Al hacerlo, el modelo aprende vectores que terminan capturando relaciones útiles entre términos.

Lo importante aquí es que Word2Vec no parte de un diccionario semántico hecho a mano. Aprende directamente desde grandes cantidades de texto observando patrones de coocurrencia y contexto.

14.3 La intuición fundamental

La intuición de Word2Vec es coherente con la idea que ya vimos en embeddings: si dos palabras aparecen en contextos parecidos, probablemente tengan significados relacionados.

Por ejemplo, si en un corpus las palabras doctor y médico suelen aparecer cerca de términos como hospital, paciente o consulta, el modelo puede aprender que esas palabras deben ocupar regiones cercanas del espacio vectorial.

Word2Vec aprende embeddings no preguntando qué significa una palabra, sino observando con qué otras palabras suele convivir.

14.4 Aprender prediciendo contexto

La gran idea de Word2Vec es convertir el aprendizaje de embeddings en un problema de predicción. En lugar de pedirle al modelo que "entienda" el lenguaje directamente, se le pide que prediga palabras de contexto o palabras objetivo dentro de una ventana local del texto.

Si el modelo aprende bien esa tarea, entonces necesita construir representaciones internas que reflejen relaciones útiles entre palabras. Esas representaciones internas son precisamente los embeddings.

14.5 Ventana de contexto

Un concepto central en Word2Vec es la ventana de contexto. Cuando observamos una palabra dentro de un texto, miramos también las palabras que la rodean a cierta distancia. Esas palabras vecinas se consideran parte de su contexto local.

Por ejemplo, en la oración:

el gato negro duerme en el sillón

si tomamos como palabra central negro, las palabras cercanas como gato y duerme pueden formar parte de su contexto, dependiendo del tamaño de la ventana elegida.

La ventana de contexto define qué relaciones locales aprende el modelo.

14.6 Dos variantes principales: CBOW y Skip-Gram

Word2Vec suele presentarse mediante dos variantes principales:

  • CBOW (Continuous Bag of Words).
  • Skip-Gram.

Ambas aprenden embeddings, pero formulan la tarea predictiva de manera inversa entre sí.

14.7 CBOW: predecir la palabra central

En CBOW, el modelo intenta predecir una palabra a partir de su contexto. Es decir, observa las palabras vecinas y trata de inferir cuál es la palabra central faltante.

Si tenemos una frase y ocultamos una palabra, el sistema usa las palabras alrededor para intentar adivinarla. Para hacer bien esa tarea, necesita aprender representaciones coherentes del vocabulario.

Intuitivamente, CBOW responde a una pregunta como: "dadas estas palabras cercanas, ¿qué palabra encaja en el medio?".

14.8 Skip-Gram: predecir el contexto

En Skip-Gram, el proceso es inverso. El modelo toma una palabra central y trata de predecir las palabras de su contexto.

Aquí la intuición es: "si conozco esta palabra, ¿qué palabras suelen aparecer cerca de ella?".

Para responder bien esa pregunta, el modelo debe aprender qué tipos de contextos son típicos para cada palabra, y eso conduce naturalmente a embeddings útiles.

14.9 Diferencia intuitiva entre CBOW y Skip-Gram

Podemos resumir la diferencia así:

  • CBOW: usa contexto para predecir la palabra.
  • Skip-Gram: usa la palabra para predecir el contexto.

Ambos enfoques aprenden vectores similares en espíritu, aunque con comportamientos y tradeoffs algo diferentes según el tamaño del corpus, la frecuencia de las palabras y el objetivo práctico.

14.10 ¿Dónde están los embeddings dentro del modelo?

En Word2Vec, los embeddings aparecen como parte de los parámetros internos que el modelo ajusta durante el entrenamiento. Aunque la tarea explícita es predecir contexto o palabra central, el resultado más valioso no suele ser la predicción en sí, sino los vectores aprendidos para cada palabra.

Es decir, el entrenamiento es el medio. Los embeddings aprendidos son el fin práctico que luego reutilizamos en otras tareas.

14.11 ¿Por qué Word2Vec fue tan influyente?

Word2Vec fue muy influyente por varias razones:

  • Fue impulsado por Tomas Mikolov y otros investigadores mientras trabajaban en Google.
  • Mostró una forma eficiente de aprender embeddings útiles a gran escala.
  • Produjo vectores con relaciones semánticas y sintácticas sorprendentes.
  • Ayudó a popularizar el aprendizaje de representaciones en NLP.
  • Sirvió como base conceptual para muchos avances posteriores.

En otras palabras, no solo fue una técnica puntual, sino un cambio de dirección en la forma de pensar la representación del lenguaje.

14.12 Relaciones capturadas por Word2Vec

Los embeddings aprendidos por Word2Vec mostraron que el espacio vectorial podía reflejar regularidades interesantes. Palabras relacionadas temáticamente, sintácticamente o por analogía tendían a organizarse de manera no arbitraria.

Lo importante aquí no es memorizar ejemplos famosos, sino entender la idea general: el modelo no solo agrupa palabras parecidas, sino que descubre estructuras del lenguaje a partir de uso contextual.

14.13 Word2Vec no "entiende" como un humano

Aunque los resultados de Word2Vec fueron impresionantes, conviene no exagerar lo que hace. El modelo no comprende el significado del lenguaje como una persona. Aprende regularidades estadísticas de coocurrencia.

Sin embargo, esas regularidades son lo suficientemente ricas como para producir representaciones muy útiles en la práctica.

14.14 Ventajas del enfoque

Word2Vec aportó ventajas muy importantes:

  • Embeddings densos y compactos.
  • Captura de similitud semántica basada en contexto.
  • Aprendizaje escalable sobre grandes corpus.
  • Reutilización de embeddings preentrenados en otras tareas.

Esto lo convirtió en una herramienta muy valiosa tanto para investigación como para aplicaciones prácticas.

14.15 Limitaciones del enfoque

Word2Vec también tiene limitaciones importantes:

  • Aprende un solo vector fijo por palabra.
  • No distingue fácilmente significados distintos de una palabra polisémica.
  • Se apoya principalmente en contexto local.
  • No modela secuencias complejas como lo harían arquitecturas posteriores.

Estas limitaciones motivaron la aparición de métodos posteriores más sofisticados.

14.16 CBOW y Skip-Gram como tareas auxiliares

Un aspecto conceptualmente interesante de Word2Vec es que la tarea explícita de entrenamiento no suele ser la tarea final que nos interesa en producción. Nadie usa normalmente Word2Vec solo para predecir palabras vecinas. Lo que realmente nos interesa son los embeddings que surgen al resolver esa tarea auxiliar.

Esta idea fue muy poderosa porque mostró que se puede aprender una buena representación interna resolviendo una tarea proxy relativamente simple.

14.17 Eficiencia y escalabilidad

Parte del éxito de Word2Vec se debió a que permitió entrenar embeddings sobre grandes cantidades de texto de manera bastante eficiente para su época. Eso hizo posible disponer de vectores útiles entrenados sobre corpora grandes, algo que impulsó enormemente su adopción.

14.18 Relación con embeddings preentrenados

Una vez aprendido un conjunto de embeddings con Word2Vec, esos vectores podían reutilizarse en otras tareas como clasificación, análisis de sentimiento o etiquetado. Esto permitió que muchos sistemas comenzaran ya con una representación semánticamente razonable del vocabulario.

En este sentido, Word2Vec ayudó a instalar la idea de preentrenar representaciones y luego reutilizarlas en tareas posteriores.

14.19 Diferencia con TF-IDF

TF-IDF pondera términos según su importancia relativa en documentos. Word2Vec, en cambio, aprende relaciones entre palabras a partir de contexto. No son técnicas equivalentes ni competidoras directas en todos los casos.

Podemos decir que:

  • TF-IDF responde mejor a la pregunta de qué términos caracterizan un documento.
  • Word2Vec responde mejor a la pregunta de qué palabras se comportan de manera parecida en el lenguaje.

14.20 Ejemplo conceptual

Imaginemos que un modelo observa muchísimas frases donde aparecen palabras como rey, reina, príncipe, princesa, trono y palacio. Si aprende a predecir contexto o palabra central, tenderá a descubrir que estas palabras comparten cierto vecindario semántico.

Ese tipo de organización del espacio vectorial es lo que hizo tan valioso a Word2Vec.

Word2Vec aprende embeddings obligando al modelo a mirar el contexto local del lenguaje y a predecir relaciones entre palabras cercanas.

14.21 Qué dejó instalado Word2Vec

Más allá del método en sí, Word2Vec dejó varias ideas que marcaron el rumbo del NLP moderno:

  • Las representaciones del lenguaje pueden aprenderse desde datos.
  • El contexto es una fuente poderosa de supervisión.
  • Los embeddings pueden reutilizarse en muchas tareas distintas.
  • La geometría del espacio vectorial puede reflejar relaciones lingüísticas útiles.

14.22 Resumen comparativo

Aspecto CBOW Skip-Gram
Objetivo Predecir la palabra central desde el contexto. Predecir el contexto desde la palabra central.
Intuición Qué palabra encaja aquí. Qué palabras suelen rodear a esta.
Resultado práctico Aprendizaje de embeddings útiles del vocabulario.

14.23 Ejemplo en Python: entrenar un Word2Vec pequeño

Con gensim podemos entrenar un Word2Vec diminuto sobre un corpus de ejemplo y consultar palabras similares. En un entorno real se usaría un corpus mucho más grande, pero este experimento ya deja ver la idea.

Antes de ejecutar esta aplicación conviene instalar la biblioteca necesaria con:

pip install gensim

from gensim.models import Word2Vec

corpus = [
    ["cliente", "feliz", "compra", "producto", "excelente"],
    ["cliente", "enojado", "reclama", "envio", "tardio"],
    ["producto", "excelente", "calidad", "duradera"],
    ["envio", "rapido", "cliente", "feliz"],
    ["soporte", "rapido", "resuelve", "reclamo"],
]

modelo = Word2Vec(
    sentences=corpus,
    vector_size=50,
    window=2,
    min_count=1,
    workers=1,
    epochs=200
)

print(modelo.wv.most_similar("cliente", topn=3))
print(modelo.wv.most_similar("rapido", topn=3))

La aplicación puede leerse paso a paso:

  • from gensim.models import Word2Vec importa la clase que permite entrenar embeddings de palabras.
  • corpus es el conjunto de frases ya tokenizadas. Cada sublista representa una oración y cada palabra aparece separada como un token.
  • sentences=corpus indica cuál es el material de entrenamiento que el modelo recorrerá para aprender relaciones de contexto.
  • vector_size=50 fija que cada palabra se representará con un vector de 50 números.
  • window=2 define una ventana de contexto de 2 palabras a izquierda y derecha aproximadamente, según la posición disponible en cada oración.
  • min_count=1 hace que no se descarte ninguna palabra del corpus, incluso si aparece una sola vez.
  • workers=1 indica que el entrenamiento usará un único hilo.
  • epochs=200 hace que el modelo recorra muchas veces el corpus para intentar aprender mejor, algo razonable aquí porque el conjunto es mínimo.
  • modelo.wv.most_similar("cliente", topn=3) busca las tres palabras cuyo vector quedó más cerca del vector de cliente.

Una salida como [('compra', 0.229...), ('tardio', 0.195...), ('enojado', 0.171...)] significa que, dentro del espacio vectorial aprendido por este corpus, las palabras más cercanas a cliente fueron compra, tardio y enojado. El segundo número es un puntaje de similitud coseno entre vectores: cuanto más cerca esté de 1, más parecidas resultan las palabras para el modelo; cuanto más cerca de 0, menos relación encontró.

En este ejemplo, los valores son bajos porque el corpus es muy pequeño y el entrenamiento es apenas ilustrativo. Aun así, la salida sugiere que cliente aparece en contextos relacionados con compra, reclamos y demoras, por eso esas palabras terminan relativamente cerca. No significa que sean sinónimos, sino que el modelo observó contextos parecidos.

De manera similar, una salida como [('producto', 0.137...), ('reclama', 0.094...), ('reclamo', 0.093...)] para rapido indica cuáles fueron los vecinos más próximos de esa palabra en este corpus. Otra vez, no debe interpretarse como una verdad lingüística fuerte: solo refleja asociaciones estadísticas aprendidas a partir de unas pocas frases.

Lo importante es entender la idea general: Word2Vec transforma cada palabra en un vector y luego puede comparar esos vectores. Si dos palabras terminan cerca en ese espacio, es porque el modelo detectó que suelen vivir en contextos parecidos.

Lo interesante aquí no es solo obtener vecinos parecidos, sino entender que Word2Vec aprende esas relaciones observando contexto. Si el corpus es rico, el espacio vectorial resultante empieza a reflejar regularidades semánticas útiles.

14.24 Qué debes recordar de este tema

  • Word2Vec es una familia de métodos para aprender embeddings de palabras a partir de contexto.
  • Su idea central es aprender representaciones prediciendo palabras o contextos cercanos.
  • Las dos variantes más conocidas son CBOW y Skip-Gram.
  • El valor práctico de Word2Vec está en los embeddings aprendidos, no solo en la tarea de predicción.
  • Fue un método clave para popularizar el aprendizaje de representaciones en NLP.
  • Sus embeddings son útiles, pero siguen siendo vectores fijos por palabra.

14.25 Conclusión

Word2Vec fue uno de los métodos más influyentes de la historia del NLP porque mostró que era posible aprender embeddings de palabras útiles a partir de una tarea simple basada en contexto. Gracias a eso, la representación del lenguaje dio un salto importante desde los conteos clásicos hacia espacios semánticos aprendidos.

Su impacto fue enorme no solo por la calidad de los vectores, sino por la forma de pensar que instaló: aprender representaciones desde datos mediante tareas auxiliares.

En el próximo tema estudiaremos GloVe y otros embeddings clásicos, para comparar Word2Vec con otros enfoques históricos que también buscaron construir buenos espacios vectoriales para palabras.