En los temas anteriores vimos dos formas clásicas de representar texto: Bag of Words y TF-IDF. Ambas fueron muy importantes porque permitieron convertir documentos en vectores utilizables por modelos de Machine Learning. Sin embargo, también comparten limitaciones fuertes: no capturan bien el significado, no entienden similitud semántica y producen vectores muy dispersos.
Frente a esas limitaciones surgió una idea muy poderosa: representar las palabras no como posiciones aisladas dentro de un vocabulario enorme, sino como vectores densos aprendidos a partir de su uso en contexto. A esos vectores se los conoce como embeddings de palabras.
En este tema veremos qué son los embeddings, por qué marcaron un cambio conceptual tan importante en NLP y qué ventajas ofrecen respecto de las representaciones clásicas.
Bag of Words y TF-IDF representan palabras como dimensiones independientes. Eso significa que, desde el punto de vista del modelo, cada término es una entidad separada sin relación directa con las demás.
Por ejemplo, en una representación clásica:
perro y can son dimensiones distintas.rey y reina no tienen relación explícita.médico y hospital no aparecen cercanos por significado.El modelo solo ve coincidencias literales o diferencias de frecuencia, pero no una noción explícita de similitud semántica.
Un embedding es una representación vectorial densa de una palabra. En lugar de describirla con un vector enorme y casi lleno de ceros, se la representa con un vector relativamente corto donde casi todas las posiciones contienen información.
Por ejemplo, una palabra puede quedar representada por un vector de 50, 100 o 300 dimensiones, en lugar de un vector de miles o decenas de miles de posiciones como ocurre en Bag of Words.
Lo importante no es el valor aislado de cada componente, sino la posición relativa de la palabra dentro de un espacio vectorial aprendido.
Se las llama densas porque, a diferencia de representaciones como Bag of Words, no están llenas de ceros. Cada dimensión del vector suele contener un valor numérico que aporta algo a la representación.
Esto permite trabajar con vectores más compactos y, al mismo tiempo, capturar relaciones más ricas entre palabras.
Uno de los principios más influyentes detrás de los embeddings es la idea de que las palabras que aparecen en contextos similares tienden a tener significados relacionados.
Por ejemplo, si en muchos textos las palabras doctor y médico aparecen rodeadas por términos parecidos, un modelo puede aprender que esas palabras están relacionadas semánticamente.
Esta intuición permitió pasar de una representación puramente basada en conteos a una representación basada en patrones de uso contextual.
El cambio de embeddings respecto de las técnicas clásicas es profundo:
Eso significa que ahora dos palabras distintas pueden estar cerca entre sí si comparten contextos o significados parecidos, algo que las representaciones clásicas no capturan naturalmente.
Imaginemos que en un corpus aparecen palabras como:
gatoperroloboautoEn una buena representación con embeddings, sería esperable que gato, perro y lobo queden más cerca entre sí que respecto de auto, porque sus contextos de uso tienden a compartir más similitudes.
Esto no significa que el modelo "entienda" como un humano, pero sí que aprende regularidades estadísticas útiles del lenguaje.
En un espacio de embeddings, la cercanía entre vectores suele interpretarse como similitud de uso o afinidad semántica. No es una cercanía física real, sino matemática.
Si dos vectores están próximos según alguna medida de similitud, eso sugiere que las palabras aparecen en contextos parecidos o cumplen roles lingüísticos relacionados.
Este punto es muy importante porque los embeddings convierten relaciones cualitativas del lenguaje en relaciones geométricas dentro de un espacio vectorial.
Otra ventaja importante es que los embeddings reducen mucho la dimensionalidad comparados con Bag of Words o TF-IDF. En lugar de un vector con miles de posiciones, usamos uno relativamente pequeño.
Esto ayuda a:
En Bag of Words, cada palabra equivale a una dimensión independiente. En embeddings, cada palabra se representa mediante varias dimensiones que, en conjunto, codifican patrones de uso.
Esto quiere decir que ya no interpretamos cada coordenada por separado. Lo relevante es la configuración global del vector dentro del espacio semántico aprendido.
Los embeddings representan un gran ejemplo de aprendizaje de representación. En lugar de diseñar manualmente qué características usar para una palabra, dejamos que el sistema aprenda una representación útil a partir de datos.
Esta idea fue muy importante porque redujo la dependencia de ingeniería manual de características y abrió el camino a modelos más expresivos.
Los embeddings ofrecen ventajas muy importantes frente a las representaciones clásicas:
Aunque fueron un gran avance, los embeddings clásicos también tienen límites. Una de las limitaciones principales es que, en su forma más básica, asignan un solo vector fijo a cada palabra.
Eso significa que palabras con varios significados, como banco, quedan representadas por un único vector, aunque en contextos distintos cambie su sentido.
Más adelante veremos que este problema motivó el desarrollo de embeddings contextuales y modelos más avanzados.
En una representación basada en embeddings, dos palabras no necesitan ser iguales para estar cerca. Ese es justamente uno de los grandes cambios respecto de Bag of Words.
Por ejemplo, dos palabras sinónimas o cercanas en significado pueden terminar con vectores próximos, aunque sean términos completamente distintos a nivel superficial.
Esto hace que los embeddings sean mucho más útiles para capturar relaciones semánticas que los enfoques clásicos basados en coincidencia exacta.
Uno de los aspectos que hizo famosos a los embeddings fue que, en algunos casos, las relaciones semánticas y sintácticas aparecían reflejadas geométricamente en el espacio vectorial. Esto permitió mostrar que ciertas analogías podían modelarse de manera sorprendente.
Más allá de ejemplos célebres, lo importante aquí es la idea general: el espacio aprendido no es arbitrario, sino que organiza palabras de forma estructurada según patrones de uso.
Otro concepto importante es que los embeddings pueden aprenderse previamente sobre grandes corpus y luego reutilizarse en otras tareas. Esto permitió aprovechar conocimiento léxico aprendido a gran escala sin entrenar todo desde cero.
De esta forma, un modelo podía comenzar ya con una representación razonable de muchas palabras del idioma.
Los embeddings encajan de manera natural con redes neuronales. En lugar de alimentar palabras como índices puros o como vectores dispersos, se las convierte en vectores densos que luego pueden procesarse con arquitecturas neuronales.
Esto fue un paso fundamental para la evolución del NLP moderno, porque permitió construir modelos secuenciales y más adelante modelos basados en atención con representaciones mucho más ricas.
TF-IDF sigue siendo muy útil, pero embeddings introducen una idea distinta. TF-IDF representa importancia relativa de términos dentro de documentos. Embeddings representan relaciones entre palabras en un espacio semántico.
No resuelven exactamente el mismo problema:
Por eso ambos enfoques pueden ser valiosos, según la tarea.
Desde el punto de vista histórico, los embeddings marcan una transición importante en NLP: pasar de contar palabras a aprender representaciones de palabras.
Este cambio fue clave porque acercó el NLP al aprendizaje profundo y abrió el camino a modelos mucho más potentes y flexibles.
Imaginemos un sistema que procesa reseñas. Con TF-IDF, palabras como excelente y buenísimo seguirán siendo términos distintos, aunque ambas expresen algo positivo. Con embeddings, en cambio, es más probable que aparezcan relativamente cerca si suelen usarse en contextos similares.
Ese tipo de relación es justamente lo que vuelve tan poderosas a estas representaciones.
| Aspecto | Bag of Words / TF-IDF | Embeddings |
|---|---|---|
| Tipo de representación | Dispersa. | Densa. |
| Relación entre palabras | No se modela directamente. | Puede capturar similitud semántica. |
| Dimensionalidad | Alta. | Más compacta. |
| Interpretabilidad inmediata | Alta. | Menor. |
| Ventaja principal | Simplicidad y claridad. | Representación semántica más rica. |
Antes de entrenar modelos complejos, conviene ver con un ejemplo simple qué significa que dos palabras estén “cerca” en un espacio vectorial. En este caso usaremos vectores manuales y similitud coseno.
import numpy as np
from sklearn.metrics.pairwise import cosine_similarity
embeddings = {
"gato": np.array([0.9, 0.1, 0.2]),
"perro": np.array([0.85, 0.15, 0.25]),
"auto": np.array([0.1, 0.9, 0.8]),
"camion": np.array([0.15, 0.85, 0.75]),
"pelicula": np.array([0.4, 0.3, 0.9]),
}
palabras = list(embeddings.keys())
matriz = np.vstack([embeddings[p] for p in palabras])
sim = cosine_similarity(matriz)
for i, palabra in enumerate(palabras):
vecinos = np.argsort(sim[i])[::-1][1:3]
print(f"\nVecinos de {palabra}:")
for j in vecinos:
print(f" {palabras[j]} -> {sim[i, j]:.3f}")
Aunque los vectores aquí son inventados, el ejemplo muestra la lógica central: palabras semánticamente cercanas tienden a ocupar regiones próximas del espacio. Esa es precisamente la intuición que hizo tan valiosos a los embeddings.
Los embeddings de palabras representan uno de los cambios conceptuales más importantes en la historia del NLP. Gracias a ellos, las palabras dejaron de ser tratadas como casilleros aislados y pasaron a representarse como vectores capaces de reflejar similitudes y relaciones útiles para el modelado.
Este cambio no solo mejoró la representación del lenguaje, sino que abrió la puerta a toda una nueva generación de modelos basados en aprendizaje profundo.
En el próximo tema estudiaremos Word2Vec explicado conceptualmente, uno de los métodos más influyentes para aprender embeddings de palabras a partir de grandes corpus textuales.