🧠 Word Embeddings y Topic Models

Word2Vec, GloVe, BERT, LDA y modelos de tópicos estructurales

Word2Vec LDA BERT
Módulo 9 de 12
💡 Piénsalo así: Las word embeddings son como un mapa de ciudades donde la distancia entre palabras representa su similitud. "Rey" - "Hombre" + "Mujer" ≈ "Reina" es como decir: si estás en la ciudad "Rey" y restas la dirección hacia "Hombre" pero sumas "Mujer", llegas a "Reina". LDA, por otro lado, es como un archivista que nunca recibió instrucciones: observa cómo ciertas palabras aparecen juntas repetidamente y deduce que existen "cajones" temáticos ("deportes", "política", "economía") sin que nadie le haya dicho los nombres.
Teoría: Embeddings y Topic Models

Word2Vec: CBOW y Skip-gram

Intuición: Word2Vec aprende vectores densos (de 50 a 300 dimensiones) para cada palabra entrenándose en un gran corpus de texto. La idea es simple: "dime con quién andas y te diré quién eres". Una palabra se define por el contexto de palabras que la rodean. Si "rey" y "reina" aparecen en contextos similares ("el ___ gobernaba", "la ___ del país"), sus vectores serán similares.

Fórmula explicada: CBOW predice la palabra objetivo w_t dado su contexto (w_{t-2}, w_{t-1}, w_{t+1}, w_{t+2}). Maximiza P(w_t | contexto). Skip-gram hace lo inverso: predice el contexto dada la palabra objetivo. Maximiza P(contexto | w_t). Skip-gram funciona mejor con corpus pequeños; CBOW es más rápido.

Caso real: En finanzas, entrenar Word2Vec en 10 años de noticias económicas produce vectores donde "inflación" y "precios" están cerca, y "PIB" y "crecimiento" también. Podemos cuantificar similitud entre conceptos económicos.

Error común: Usar Word2Vec con un corpus pequeño (menos de 10 millones de palabras). Los vectores resultantes no capturarán relaciones semánticas robustas. Para textos pequeños, mejor usar embeddings pre-entrenados.

CBOW: P(wt | wt-2, wt-1, wt+1, wt+2)

GloVe (Global Vectors)

Intuición: Mientras Word2Vec aprende de ventanas locales de contexto, GloVe aprovecha información global: cuenta cuántas veces cada par de palabras aparece junto en TODO el corpus (matriz de co-ocurrencia). La idea es que la probabilidad de que dos palabras co-ocurran codifica su relación semántica.

Fórmula explicada: GloVe factoriza la matriz de co-ocurrencia para aprender vectores w_i y w̃_j tales que w_i · w̃_j + b_i + b̃_j ≈ log(X_{ij}), donde X_{ij} es el número de veces que la palabra j aparece en el contexto de i. La función de pérdida pondera las co-ocurrencias para que las más frecuentes tengan más peso.

Caso real: GloVe pre-entrenado en Common Crawl (840 mil millones de tokens) viene con vectores de 300 dimensiones para 2.2 millones de palabras. Se descargan y se usan directamente en análisis de texto económico.

Error común: Pensar que GloVe y Word2Vec son intercambiables. GloVe captura mejor relaciones de analogía a gran escala ("Rey:Reina :: Hombre:Mujer"), mientras Word2Vec captura mejor relaciones locales de contexto.

wi · w̃j + bi + b̃j ≈ log(Xij)

BERT y Embeddings Contextuales

Intuición: A diferencia de Word2Vec y GloVe (que dan el MISMO vector para "banco" en "banco central" y "banco del parque"), BERT produce vectores DISTINTOS según el contexto. Usa un transformer bidireccional que "lee" la oración completa antes de representar cada palabra. Es como un traductor que entiende el significado de "banco" porque vio las palabras alrededor.

Fórmula explicada: BERT usa el mecanismo de self-attention: cada palabra "atiende" a todas las demás palabras de la oración. La representación de cada token es una suma ponderada de todas las posiciones. Se entrena con "masked language model" (MLM): se oculta el 15% de las palabras y el modelo debe predecirlas usando el contexto completo.

Caso real: En econometría, se extraen embeddings de BERT para cada párrafo de actas de la Fed. Como BERT entiende el contexto, distingue entre "las tasas subieron" (positivo para la moneda) y "las tasas subieron demasiado" (negativo).

Error común: Usar el embedding de la capa incorrecta. BERT tiene 12-24 capas; las primeras capturan sintaxis, las intermedias semántica, las últimas información de la tarea específica. Para representaciones generales, promediar las últimas 4 capas suele funcionar mejor.

BERT: hi = Σ aij Vj (self-attention sobre contexto completo)

LDA (Latent Dirichlet Allocation)

Intuición: LDA es un modelo generativo que asume que cada documento fue creado combinando un puñado de temas latentes. Piensa en un escritor que decide: "este artículo será 60% economía, 30% política, 10% tecnología". Luego, para cada palabra, elige un tema según esas proporciones y luego una palabra típica de ese tema. LDA invierte este proceso: observa las palabras y deduce los temas.

Fórmula explicada: LDA es un modelo bayesiano: θ_d ~ Dirichlet(α) (distribución de temas del documento d), φ_k ~ Dirichlet(β) (distribución de palabras del tema k). Para cada palabra i del documento d: se elige un tema z_{di} ~ Multinomial(θ_d), luego se elige una palabra w_{di} ~ Multinomial(φ_{z_{di}}). La inferencia se realiza con Gibbs Sampling o Variational Inference.

Caso real: Con 5,000 artículos académicos de economía, LDA descubre temas como "macroeconomía" (palabras: PIB, inflación, desempleo), "microeconometría" (selección, sesgo, tratamiento) y "finanzas" (riesgo, retorno, volatilidad).

Error común: Elegir mal el número de temas K. Si K es muy pequeño, los temas son demasiado generales. Si K es muy grande, los temas se repiten o capturan ruido. La coherencia del tópico ayuda a elegir K.

P(w|d) = Σk=1..K P(w|φk) × P(tema=k|θd)

Structural Topic Models (STM)

Intuición: STM extiende LDA permitiendo que las variables del documento (tiempo, ubicación, partido político, tratamiento) influyan en (1) la prevalencia de los temas (qué tan presente está cada tema) y (2) el contenido de los temas (qué palabras aparecen). Es especialmente útil en ciencias sociales para estudiar cómo el discurso cambia con el tiempo o entre grupos.

Fórmula explicada: θ_d ~ LogisticNormal(X_d γ, Σ): la distribución de temas del documento depende de las covariables X_d. γ es un vector de coeficientes que dice cómo cada covariable afecta la prevalencia de cada tema. Además, el contenido del tema puede variar con covariables: φ_k ~ MultinomialLogit(X_d κ_k). Esto permite que temas como "economía" usen palabras distintas en 1990 vs 2020.

Caso real: Analizar discursos políticos de 1980-2020. STM detecta cómo el tema "economía" crece en prevalencia durante crisis y cómo el lenguaje cambia: en 1980 usa "inflación, recesión", en 2020 usa "estímulo, recuperación".

Error común: Incluir demasiadas covariables sin regularización. STM con muchas X puede sobreajustar. Es útil usar selección de covariables con la función selectModel() del paquete stm en R.

θd ~ LogisticNormal(Xdγ, Σ)

Evaluación de Tópicos

Intuición: Un modelo de tópicos produce K temas, pero no todos son interpretables. Necesitamos métricas para evaluar si un tópico tiene sentido: (1) Coherence mide si las palabras del tema aparecen juntas en el corpus de referencia. (2) Exclusivity mide si las palabras del tema son exclusivas de ese tema y no aparecen en otros. Un buen tema tiene alta coherencia Y alta exclusividad.

Fórmula explicada: Coherence = Σ_{i

Caso real: Después de entrenar LDA con K=10, calculamos coherence para cada tema. Dos temas tienen coherence < -100 y los eliminamos. Con K=8, la coherence media mejora de -80 a -40. Esto indica que 8 temas son más interpretables que 10.

Error común: Usar solo coherence para elegir K. La coherence aumenta con K (más temas son más específicos y coherentes), pero puede llevar a sobreajuste. Combinar coherence con exclusivity y validación humana (que 2-3 personas etiqueten los temas) da mejores resultados.

Coherence = Σ log(P(wi, wj) / P(wi) P(wj))
Ejemplo paso a paso

Aplicamos embeddings y LDA a un corpus de 5 documentos económicos para descubrir temas latentes y relaciones semánticas.

Paso 1: Entrenamos Word2Vec en el corpus. Cada palabra (mercado, inflación, fútbol, equipo) se convierte en un vector de 100 dimensiones.

Las palabras que aparecen en contextos similares (por ejemplo, "inflación" y "precios" aparecen cerca de "subieron", "bajaron", "BCRA") obtienen vectores cercanos en el espacio. La distancia coseno entre "inflación" y "precios" será pequeña (coseno ≈ 0.85), indicando alta similitud semántica.

Paso 2: Aplicamos LDA con K=4 temas. Cada documento se representa como una mezcla de estos 4 temas.

El modelo asigna al Documento 1 (noticia económica): 60% Tema 1 (Economía/Mercados), 20% Tema 3 (Tecnología), 10% Tema 2 (Deportes), 10% Tema 4 (Política). Al Documento 2 (noticia deportiva): 70% Tema 2, 15% Tema 1, etc. Esta representación captura la mezcla de temas en cada texto.

Paso 3: Interpretamos los temas por sus top palabras. El Tema 1 contiene [mercado, inflación, crecimiento, PIB, tasas] → lo etiquetamos como "Macroeconomía".

El Tema 2 contiene [fútbol, equipo, partido, gol, liga] → "Deportes". El Tema 3: [datos, software, algoritmo, inteligencia] → "Tecnología". El Tema 4: [gobierno, elecciones, congreso, voto] → "Política". Estas etiquetas las asigna el investigador basado en las palabras más probables de cada tema.

Paso 4: Evaluamos la calidad con coherence. El Tema 1 tiene coherence = -45, el Tema 2 = -38, ambos aceptables. El Tema 3 = -120 y lo descartamos.

Con K=4, el Topic 3 combina palabras de tecnología y medicina que no co-ocurren en la realidad. Al aumentar K a 5, este tema se separa en dos temas coherentes: "Tecnología" y "Salud". La coherence del primero sube a -40 y del segundo a -35.

Simulación: LDA Topic Model

Selecciona un documento para ver su distribución de temas LDA y las palabras más representativas de cada tema latente.

Presiona "Actualizar" para ver los tópicos LDA.
Selecciona un documento y presiona Actualizar para ver las palabras clave y su similitud coseno.
Mini Quiz: Embeddings y Topic Models
💡 Responde las preguntas sobre Embeddings y Topic Models.