1. Introducción
Las computadoras no entienden palabras directamente — necesitan números. Los word embeddings son la solución: asignan a cada palabra un vector de números de alta dimensionalidad donde la distancia entre vectores refleja la similitud semántica.
“Gato” y “perro” están cerca porque comparten propiedades semánticas (son animales, mascotas). “Gato” y “justicia” están lejos porque no comparten contextos.
Lo más sorprendente es la aritmética vectorial: las relaciones semánticas se codifican como direcciones en el espacio. La dirección “masculino → femenino” es consistente: \vec{\text{rey}} - \vec{\text{hombre}} + \vec{\text{mujer}} \approx \vec{\text{reina}}.
Esta simulación genera embeddings sintéticos para ~200 palabras en español organizadas en 12 campos semánticos (animales, colores, verbos, países, familia, emociones…). Los vectores de 50 dimensiones se proyectan a 2D mediante PCA para visualizarlos como una constelación donde puedes explorar clusters, buscar vecinos, y realizar analogías.
2. Conceptos Fundamentales
2.1 De palabras a vectores
Un embedding es una función que asigna cada palabra a un vector denso:
f: \text{Vocabulario} \to \mathbb{R}^d
donde d es la dimensión del embedding (en esta simulación, d = 50).
A diferencia de one-hot encoding (d = |\text{vocab}|, sparse), los embeddings son densos y de dimensión fija, capturando semántica en cada componente.
2.2 Similitud coseno
La similitud entre dos palabras se mide con el coseno del ángulo entre sus vectores:
\text{sim}(a, b) = \frac{\vec{a} \cdot \vec{b}}{\|\vec{a}\| \cdot \|\vec{b}\|}
- \text{sim} = 1: vectores paralelos (máxima similitud)
- \text{sim} = 0: vectores ortogonales (sin relación)
- \text{sim} = -1: vectores opuestos (antónimos en algunos espacios)
2.3 Clusters semánticos
Palabras del mismo campo semántico tienden a agruparse:
- Animales: gato, perro, león, águila → cluster
- Colores: rojo, azul, verde → cluster
- Emociones: feliz, triste, miedo → cluster
Estos clusters emergen naturalmente cuando los embeddings se entrenan con texto real, porque palabras similares aparecen en contextos similares.
2.4 Aritmética vectorial
Las relaciones semánticas se codifican como direcciones constantes:
\vec{\text{rey}} - \vec{\text{hombre}} + \vec{\text{mujer}} \approx \vec{\text{reina}}
La dirección \vec{\text{hombre}} \to \vec{\text{mujer}} (género) es la misma que \vec{\text{rey}} \to \vec{\text{reina}}.
3. La Interfaz
3.1 Estructura general
| Área | Ubicación | Función |
|---|---|---|
| Canvas principal | Izquierda | Mapa 2D de palabras como estrellas, coloreadas por campo semántico |
| Tooltip | Flotante | Nombre de la palabra y campo semántico al pasar el mouse |
| Panel de controles | Derecha (360px) | Búsqueda, aritmética, visualización, audio, vecinos |
3.2 La constelación
El canvas muestra las ~200 palabras como puntos en un espacio 2D:
- Color: cada campo semántico tiene un color distinto
- Etiquetas: nombres de las palabras junto a cada punto
- Conexiones: líneas a los K vecinos más cercanos de la palabra seleccionada
- Resultado de analogía: la palabra resultado se resalta con un estilo diferente (verde)
- Zoom y pan: navega por el espacio con el mouse
3.3 Header
Muestra el número total de palabras y la proyección (50D \to 2D).
4. Controles Interactivos
4.1 Buscar palabra
| Control | Función |
|---|---|
| Campo de texto | Escribe una palabra para localizarla en el mapa |
| Resultado | Muestra si la palabra existe y su campo semántico |
4.2 Aritmética vectorial
| Control | Función |
|---|---|
| Input A | Primera palabra (ej: “rey”) |
| Input B | Palabra a restar (ej: “hombre”) |
| Input C | Palabra a sumar (ej: “mujer”) |
| Calcular Analogía | Computa A − B + C y encuentra la palabra más cercana al resultado |
| Resultado | Muestra la palabra encontrada con estilo visual |
4.3 Visualización
| Parámetro | Rango | Descripción |
|---|---|---|
| Vecinos K | 1–15 | Número de vecinos más cercanos a mostrar |
| Zoom | 0.5×–3.0× | Nivel de zoom del mapa |
| Campo semántico | Todos, Animales, Colores, Verbos, Números, Países, Familia, Emociones | Filtrar por campo |
4.4 Audio
- Volumen: 0-100%
- Silenciar: toggle
4.5 Vecinos cercanos
| Métrica | Descripción |
|---|---|
| Palabra seleccionada | La palabra actualmente seleccionada (clic en el mapa) |
| Lista de vecinos | K vecinos más cercanos con su distancia |
5. Las Matemáticas
5.1 PCA: de 50D a 2D
Principal Component Analysis encuentra las direcciones de máxima varianza en los datos:
- Centrar los datos: \bar{x} = \frac{1}{n}\sum_i x_i, \tilde{x}_i = x_i - \bar{x}
- Calcular la matriz de covarianza: \Sigma = \frac{1}{n}\tilde{X}^T\tilde{X}
- Encontrar los eigenvectores v_1, v_2 de los dos mayores eigenvalores
- Proyectar: z_i = [v_1^T \tilde{x}_i, \; v_2^T \tilde{x}_i]
La proyección 2D preserva las dos dimensiones con mayor varianza, pero pierde información de las otras 48 dimensiones. Palabras que aparecen lejos en 2D podrían estar cerca en 50D (y viceversa).
5.2 Distancia euclidiana
d(a, b) = \|\vec{a} - \vec{b}\| = \sqrt{\sum_{i=1}^{50}(a_i - b_i)^2}
Se usa para encontrar los K vecinos más cercanos (K-Nearest Neighbors).
5.3 Construcción de los embeddings (sintéticos)
Esta simulación genera embeddings sintéticos que preservan propiedades clave:
- Cada campo semántico tiene un centro c_f \in \mathbb{R}^{50} (vector aleatorio)
- Campos similares tienen centros más cercanos (animales ↔︎ naturaleza, familia ↔︎ emociones)
- Cada palabra tiene un vector: \vec{w} = c_f + \epsilon, donde \epsilon \sim \mathcal{N}(0, \sigma^2 I) es ruido
\text{sim}_\text{intra-campo} > \text{sim}_\text{inter-campo}
5.4 Aritmética vectorial: geometría
La analogía A - B + C \approx D funciona cuando existe un paralelogramo en el espacio:
\vec{A} - \vec{B} \approx \vec{D} - \vec{C}
Es decir, la relación entre A y B es la misma que entre D y C. La simulación busca:
D^* = \arg\min_{w \in \text{vocab}} \|\vec{w} - (\vec{A} - \vec{B} + \vec{C})\|
excluyendo A, B y C del resultado.
5.5 Hipótesis distribucional
La base teórica de los embeddings: “You shall know a word by the company it keeps” (Firth, 1957). Palabras que aparecen en contextos similares tienen significados similares:
- “El gato duerme en el sofá” y “El perro duerme en el sofá” → gato ≈ perro
Algoritmos como Word2Vec y GloVe formalizan esta hipótesis con funciones objetivo específicas.
6. Sonificación
6.1 Mapeo audio
| Evento | Sonido | Parámetro mapeado |
|---|---|---|
| Seleccionar palabra | Nota | Frecuencia según la posición y en el mapa 2D |
| Vecinos cercanos | Notas en cascada | Una nota por vecino, frecuencia según distancia |
| Analogía exitosa | Acorde mayor | La palabra resultado suena como resolución armónica |
| Analogía fallida | Tono plano | No se encontró una analogía clara |
| Cambio de campo | Cambio de timbre | Cada campo semántico tiene un timbre asociado |
6.2 Interpretación
Al explorar la constelación, el audio da una sensación de “paisaje semántico”: clusters cercanos suenan armónicamente similares, y saltar entre campos distantes produce contrastes tímbricos.
7. Guía Paso a Paso
7.1 Explorar la constelación
- Observa el mapa 2D: las palabras forman clusters visibles
- Identifica los campos semánticos por color
- Haz clic en una palabra (ej: “gato”) para seleccionarla
- Observa los K vecinos más cercanos conectados con líneas
- La lista de vecinos muestra las palabras más similares con su distancia
7.2 Buscar y filtrar
- Escribe “león” en el buscador — se resalta en el mapa
- Selecciona “Animales” en el filtro de campo — solo se muestran los animales
- Nota cómo los animales forman un cluster compacto
- Cambia a “Colores” — un cluster diferente en otra región del espacio
- Vuelve a “Todos” para ver la constelación completa
7.3 Aritmética vectorial
- Escribe: A = “rey”, B = “hombre”, C = “mujer”
- Pulsa Calcular Analogía
- Resultado esperado: “reina” (o la palabra más cercana al vector resultante)
- Prueba: A = “padre”, B = “hombre”, C = “mujer” → ¿“madre”?
- Experimenta con otras analogías
7.4 Ajustar K vecinos
- Con “gato” seleccionado, pon K = 1: solo el vecino más cercano
- Aumenta K a 15: observa cómo el “barrio” semántico se expande
- Con K alto, ¿empiezan a aparecer palabras de otros campos?
- ¿A partir de qué K se “rompe” la frontera del campo semántico?
8. Conceptos Avanzados
8.1 Word2Vec: Skip-gram y CBOW
Word2Vec (Mikolov et al., 2013) entrena embeddings con dos arquitecturas:
- Skip-gram: dada una palabra, predice las palabras del contexto
- CBOW: dado el contexto, predice la palabra central
Objetivo Skip-gram:
\max \sum_{t} \sum_{-c \leq j \leq c, j \neq 0} \log P(w_{t+j} | w_t)
P(w_O | w_I) = \frac{\exp(\vec{w_O} \cdot \vec{w_I})}{\sum_{w \in V} \exp(\vec{w} \cdot \vec{w_I})}
8.2 GloVe: Global Vectors
GloVe (Pennington et al., 2014) factoriza la matriz de co-ocurrencias:
J = \sum_{i,j=1}^{|V|} f(X_{ij})(w_i^T \tilde{w}_j + b_i + \tilde{b}_j - \log X_{ij})^2
donde X_{ij} es cuántas veces la palabra i aparece en el contexto de j.
8.3 Subword embeddings (BPE)
Los modelos modernos no usan word embeddings sino subword embeddings (Byte Pair Encoding):
- “desconocida” → [“des”, “conoc”, “ida”]
- Permite manejar palabras fuera del vocabulario
- Usado en GPT, BERT, y la mayoría de LLMs actuales
8.4 Embeddings contextuales
Los embeddings estáticos (Word2Vec, GloVe) asignan un único vector por palabra. Los embeddings contextuales (BERT, GPT) generan vectores que cambian según el contexto:
- “banco” (financiero) → vector cercano a “dinero”
- “banco” (mueble) → vector cercano a “parque”
8.5 Limitaciones de la proyección 2D
PCA preserva solo 2 de 50 dimensiones. Esto causa:
- Falsas vecindades: palabras que parecen cercanas en 2D pueden estar lejos en 50D
- Falsas lejanías: palabras distantes en 2D pueden ser vecinas en 50D
- Clusters solapados: clusters que son separables en 50D se pueden superponer en 2D
Alternativas: t-SNE (mejor para preservar estructura local, pero distorsiona distancias globales), UMAP (balance entre local y global).
8.6 Sesgo en embeddings
Los embeddings heredan los sesgos del texto de entrenamiento. Por ejemplo, “doctor” puede estar más cerca de “hombre” que de “mujer” si los datos de entrenamiento reflejan ese sesgo. Debiasing es un área activa de investigación.
9. Ejercicios
Ejercicio 1: Explorando campos
Selecciona palabras de 3 campos diferentes (animales, colores, emociones). Para cada una, anota sus 5 vecinos más cercanos. ¿Todos los vecinos pertenecen al mismo campo? ¿Hay “intrusos” de otros campos?
Ejercicio 2: Frontera semántica
Selecciona “agua” y aumenta K de 1 a 15. ¿En qué punto aparecen vecinos de un campo diferente al de “agua”? “Agua” pertenece a naturaleza pero también a comida — ¿aparecen vecinos de ambos campos?
Ejercicio 3: Analogías de género
Prueba las siguientes analogías y anota el resultado: - padre − hombre + mujer = ? - hermano − hombre + mujer = ? - actor − hombre + mujer = ? - maestro − hombre + mujer = ? ¿Son todos correctos? ¿Cuáles fallan y por qué?
Ejercicio 4: Analogías de campo
Inventa 3 analogías basadas en relaciones distintas al género: - país − capital + capital = ? (ej: españa − madrid + paris = ?) - animal − tierra + agua = ? (ej: gato − tierra + agua = ?) Pruébalas en la simulación. ¿Funcionan? ¿Por qué algunas analogías son más fáciles que otras?
Ejercicio 5: PCA y distorsión
Encuentra dos palabras que parecen cercanas en el mapa 2D pero tienen una distancia alta en la lista de vecinos (no aparecen como vecinos mutuos). Esto demuestra la distorsión de la proyección. ¿Por qué PCA puede crear estas ilusiones?
Ejercicio 6: Simetría de similitud
Selecciona “gato” y mira si “perro” está entre sus vecinos. Luego selecciona “perro” y verifica si “gato” está entre sus vecinos. ¿La relación de vecindad es simétrica? Matemáticamente, d(a,b) = d(b,a), pero ¿los K-NN son simétricos?
10. Glosario
| Término | Definición |
|---|---|
| Word embedding | Representación de una palabra como vector denso en \mathbb{R}^d |
| Similitud coseno | Medida de similitud basada en el ángulo entre vectores: \cos(\theta) = \frac{a \cdot b}{\|a\|\|b\|} |
| PCA | Análisis de Componentes Principales: proyección que preserva la máxima varianza |
| Campo semántico | Grupo de palabras relacionadas por significado (animales, colores, etc.) |
| Cluster | Agrupación de puntos cercanos en el espacio de embeddings |
| K-NN | K vecinos más cercanos: las K palabras con menor distancia al vector dado |
| Aritmética vectorial | Operaciones A - B + C que capturan relaciones semánticas como analogías |
| Word2Vec | Algoritmo que entrena embeddings prediciendo contexto (Skip-gram) o palabra central (CBOW) |
| GloVe | Global Vectors: embeddings basados en factorización de la matriz de co-ocurrencia |
| One-hot | Representación sparse donde cada palabra es un vector con un solo 1 |
| Distancia euclidiana | \|a - b\| = \sqrt{\sum(a_i - b_i)^2}: distancia geométrica entre vectores |
| Embedding contextual | Vector que cambia según el contexto de la palabra (BERT, GPT) |
| Subword | Unidad sub-léxica usada en tokenización moderna (BPE) |
| t-SNE | Técnica de visualización no lineal que preserva estructura local |
| UMAP | Técnica de reducción dimensional que balancea estructura local y global |
| Hipótesis distribucional | Palabras con contextos similares tienen significados similares |
| Sesgo | Prejuicios sociales codificados en los embeddings por los datos de entrenamiento |
| Dimensionalidad | Número de componentes del vector de embedding (d = 50 en esta simulación) |
11. Referencias
- Mikolov, T. et al. (2013). “Efficient Estimation of Word Representations in Vector Space.” ICLR Workshop.
- Mikolov, T. et al. (2013). “Distributed Representations of Words and Phrases and their Compositionality.” NeurIPS.
- Pennington, J., Socher, R. & Manning, C.D. (2014). “GloVe: Global Vectors for Word Representation.” EMNLP.
- Bojanowski, P. et al. (2017). “Enriching Word Vectors with Subword Information.” TACL.
- Bolukbasi, T. et al. (2016). “Man is to Computer Programmer as Woman is to Homemaker? Debiasing Word Embeddings.” NeurIPS.
- van der Maaten, L. & Hinton, G. (2008). “Visualizing Data using t-SNE.” JMLR, 9, 2579-2605.