Setup. Vocabulario de juguete con 8 palabras de tres sectores: banca (hipoteca, préstamo, crédito), retail (camiseta, vestido, zapatos) y energía (turbina, panel solar). Arriba: las dos palabras elegidas como vectores one-hot (8 casillas, un único 1). Abajo: las mismas 8 palabras como embeddings densos de dimensión d = 2, dibujados como flechas en el plano; A y B van resaltadas y el arco marca su ángulo. Spotify hace exactamente esto con 100 millones de canciones: nadie las etiqueta a mano; cada una es un vector y la cercanía es similitud.
Juega. Recorre pares dentro del mismo sector y entre sectores. En el one-hot, el coseno es un interruptor (1 si son la misma palabra, 0 si no); en el denso es una escala continua que ordena: préstamo está más cerca de hipoteca que de crédito, y los tres lejísimos de camiseta. El slider de |V| no toca la geometría: solo te enseña la factura de memoria de cada formato a escala real.
Lee así. El lector da los dos cosenos y la memoria por palabra: |V| números (casi todos 0) en one-hot contra d = 300 números con información en denso. La razón |V|/d es el factor de compresión.
Mensaje. Un embedding convierte datos complejos en vectores donde la cercanía es similitud. Todo lo demás del día (coseno, word2vec, búsqueda semántica, recomendación) es explotar esa geometría.
Términos. one-hot: vector indicador con un 1 en la posición de la palabra y 0 en el resto. denso: vector de d coordenadas reales, todas informativas. φ(w): el embedding de la palabra w. |V|: tamaño del vocabulario.
Setup. Dos vectores 2D, u (tinta) y v (dorado), controlados por su ángulo y su módulo. El arco marca el ángulo entre ambos; la circunferencia gris es la de norma 1, donde viven los embeddings normalizados. El lector calcula en vivo u·v, las normas, el coseno con la fórmula completa y la distancia dcos = 1 − cos.
Juega. El experimento clave es el primero del guion: cambia los módulos cuanto quieras y comprueba que el coseno no se inmuta. Es la propiedad que lo hace adecuado para embeddings: "lo mismo dicho más alto" (un vector más largo en la misma dirección) sigue siendo lo mismo. Después juega con el ángulo, que es donde vive toda la información.
Lee así. En 2D, cos(u,v) coincide con el coseno trigonométrico del ángulo θu − θv, y el lector te enseña ambos números para que verifiques que la fórmula algebraica y la geometría dicen lo mismo. En dimensión 768 no puedes dibujar el ángulo, pero la fórmula es idéntica.
Mensaje. Cuándo dudar: si tus vectores no están normalizados y la magnitud sí codifica algo (por ejemplo frecuencia), la euclídea puede tener sentido. En RAG, sentence-similarity y búsqueda semántica: coseno, y normaliza al guardar.
Términos. u·v: producto escalar, Σuivi. ‖u‖2: norma euclídea, √(Σui²). normalizar: dividir el vector por su norma para dejarlo en la esfera unidad. umbral: corte de decisión sobre el coseno; lo eliges tú, no el modelo.
Setup. El ejemplo a mano del deck, hecho manipulable: una query q de 3 componentes (sliders) y tres documentos fijos d1 = (1,1,0), d2 = (0,0,1), d3 = (1,0,1). Piensa cada componente como "cuánto habla de" un tema: 1 = hipotecas, 2 = rebajas, 3 = energía. Arriba: las cuatro barras de componentes. Abajo: los tres cosenos como barras ordenadas. La tabla da la cuenta completa: producto escalar, normas, coseno y ranking.
Juega. La gracia está en ver el ranking reordenarse en vivo: cada slider mueve la query por el espacio de temas y los tres documentos, quietos, suben y bajan en la tabla. Eso es literalmente lo que hace un buscador semántico con tu pregunta: la codifica, calcula tres (o tres millones de) cosenos y ordena.
Lee así. En la tabla, comprueba que el coseno nunca sale del rango [0,1] aquí: con componentes no negativas no hay ángulos obtusos. El −1 del rango teórico solo aparece con coordenadas negativas, que los embeddings reales sí tienen.
Mensaje. No hay magia: la búsqueda semántica de BBVA o de un buscador corporativo es esta tabla con d = 1024 en vez de d = 3 y un millón de documentos en vez de tres. La cuenta por celda es la misma multiplicación y la misma división.
Términos. query: la pregunta del usuario, convertida en vector. documento: cada texto del corpus, convertido en vector al indexar. ranking: orden descendente por coseno; el top-k se le enseña al usuario.
Setup. Veinte términos de negocio con coordenadas fijas en un plano semántico de juguete, agrupados en cuatro barrios direccionales: banca (hipoteca, préstamo, ahorro, interés, BBVA), retail (camiseta, vestido, rebajas, tienda, Zara), energía (turbina, panel solar, gas, red eléctrica, Iberdrola) y streaming (serie, película, playlist, podcast, Netflix). La flecha dorada es tu query; las líneas finas la conectan con sus k vecinos más próximos por coseno, y la tabla da el ranking exacto.
Juega. Mueve la query como si fuera la pregunta de un usuario que va cambiando de tema. Fíjate en que el ranking es continuo: no hay un salto brusco al cruzar de barrio, sino un relevo gradual de cosenos. Esa suavidad es la que permite a un buscador semántico responder bien preguntas ambiguas.
Lee así. En la tabla, la columna cos es el número que una base vectorial calcula para cada documento del índice; la columna barrio te deja verificar que la geometría coincide con la semántica. En producción el mapa tiene d = 1024 dimensiones y no se puede dibujar, pero el ranking se construye igual.
Mensaje. Un mapa semántico es un índice: indexar = colocar cada elemento en su sitio del espacio; buscar = colocar la query y mirar quién cae cerca. Inditex lo hace con productos, Spotify con canciones, BBVA con documentos hipotecarios.
Términos. base vectorial: almacén optimizado para "dame los k vectores de mayor coseno con este" (FAISS, Milvus, Qdrant). vecino: elemento del índice con coseno alto respecto a la query. k: cuántos resultados devuelves.
Setup. Cuatro analogías con vectores 2D de juguete cuyos ejes son interpretables (por ejemplo, eje x = "género / es-marca / es-ciudad", eje y = "realeza / sector / país"). El canvas dibuja las cuatro palabras implicadas, el vector diferencia c − b (flecha discontinua) y el paseo a + t·(c − b), que con t = 1 completa el paralelogramo. Los puntos grises son el resto del vocabulario de esa analogía: los distractores entre los que el argmax tiene que acertar.
Juega. El slider t convierte la ecuación en un viaje: en t = 0 estás en a; según creces, le vas restando b y sumando c. Mira cómo la tabla de vecinos del punto móvil se reordena durante el viaje: a mitad de camino el punto está "entre dos significados".
Lee así. El lector da el vector r = a − b + c calculado en vivo, su palabra más cercana excluyendo las entradas y el coseno con la respuesta correcta. Si el coseno del ganador es bajo, la analogía es dudosa: con embeddings reales ocurre constantemente, y conviene mirar siempre el número, no solo el argmax.
Mensaje. La aritmética es el test de calidad clásico de un espacio de embeddings: verifica que las direcciones codifican relaciones. Para negocio importa porque las mismas direcciones (sector, gama, urgencia) se pueden explotar para navegar catálogos y carteras sin etiquetar nada a mano.
Términos. analogía: a es a b lo que c es a ¿? paralelogramo: la figura que completa a − b + c. distractor: palabra del vocabulario que podría ganar el argmax por error.
Setup. Corpus de juguete con 7 frases de negocio ("el banco concede la hipoteca", "la tienda lanza rebajas de ropa"…), con los artículos y preposiciones ya filtrados. Arriba: la frase elegida como tira de tokens, con la palabra central wt en dorado y su ventana Ct (m palabras a cada lado) en dorado pálido. Abajo: la matriz de co-ocurrencia de TODO el corpus construida en vivo con la ventana m: la celda (i,j) cuenta cuántas veces la palabra j cayó en la ventana de la palabra i.
Juega. La ventana es el único hiperparámetro y decide qué significa "contexto": con m = 1 solo cuentan los vecinos inmediatos (señal sintáctica); con m = 4 casi toda la frase co-ocurre con casi todo (señal temática, más difusa). Google entrenó el word2vec original con este mismo mecanismo sobre 100 000 millones de palabras de Google News.
Lee así. El lector enumera los pares (central, contexto) de la posición elegida: son exactamente los sumandos de L(θ) que esa posición aporta. El heatmap es la "contabilidad" agregada de todos esos pares; el entrenamiento de la slide siguiente no ve la matriz, ve los pares de uno en uno, pero converge a la misma información.
Mensaje. Un embedding no sabe diccionario: sabe estadística de compañías. La hipótesis distribucional (palabras que aparecen en contextos parecidos significan cosas parecidas) convertida en un objetivo de predicción es todo el secreto de word2vec.
Términos. wt: palabra central en la posición t. Ct: su ventana de contexto, m palabras a cada lado. co-ocurrencia: número de veces que dos palabras comparten ventana. T: longitud del corpus en tokens.
Setup. Diez palabras del corpus de la slide anterior, con embeddings 2D inicializados al azar (semilla reproducible). Los pares positivos son las co-ocurrencias reales del corpus (banco–hipoteca, tienda–rebajas, playlist–música…), dibujados como líneas doradas. Cada "paso de entrenamiento" recorre todos los pares positivos, muestrea k negativos al azar para cada uno y aplica el gradiente exacto del panel de ecuaciones con tasa η. El panel inferior registra la pérdida media por par en cada paso.
Juega. Esta slide es el corazón del día: el plano moviéndose ES word2vec entrenando, a escala 10 palabras y d = 2 en vez de un millón de palabras y d = 300. Todo lo que ajustes (k, η) son los mismos hiperparámetros que ajustaría un ingeniero de Google en 2013.
Lee así. El lector da tres números: pérdida media actual, coseno medio de los pares positivos (debe subir hacia 1) y coseno medio de pares no relacionados (debe bajar hacia 0 o negativo). La diferencia entre ambos cosenos es la "calidad semántica" del espacio: cuando se estanca, el modelo ha convergido.
Mensaje. Entrenar embeddings = geometría con dos fuerzas: acercar lo que co-ocurre, alejar lo aleatorio. El softmax completo haría la repulsión contra el vocabulario entero en cada paso; el negative sampling la aproxima con k muestras y hace el problema tratable.
Términos. vt, vc, vn: embeddings de la palabra central, del contexto real y del negativo muestreado. σ: sigmoide, convierte un producto escalar en una probabilidad. η: tasa de aprendizaje. época: una pasada por todos los pares positivos.
Setup. El plano muestra dos anclas de sentido (ancla "entidad financiera" y ancla "asiento de parque"), los vectores de las palabras de contexto (gris), el embedding estático de "banco" (tinta, fijo) y su embedding contextual (dorado, móvil), calculado en vivo con la atención de juguete del panel: softmax real sobre productos escalares, mezcla con peso γ, normalización final. La tabla da los pesos de atención aw de cada palabra de la frase, que suman 1.000.
Juega. El experimento central es el contraste entre las frases 1 y 2: idéntico token, vectores finales opuestos. La frase 3 añade el caso interesante de verdad: contexto mixto, vector intermedio. Con γ = 0 recuperas exactamente word2vec; con γ = 1 el contexto domina.
Lee así. En el lector, los dos cosenos (a sentido financiero y a sentido asiento) cuantifican la desambiguación; el badge declara el sentido ganador. En BERT real esto mismo lo hacen 12 capas de atención con cientos de dimensiones, pero la lógica (mezclar el token con sus vecinos ponderados por afinidad) es la que acabas de tocar.
Mensaje. Estático → contextual es el salto de 2013 a 2018 (word2vec → ELMo/BERT) y la razón de que la búsqueda semántica moderna funcione con lenguaje ambiguo. El Día 09 abre la caja del Transformer que calcula esta atención en serio.
Términos. MLM: Masked Language Modeling, ocultar tokens y reconstruirlos. atención: pesos softmax con los que un token mira a sus vecinos. T°: temperatura del softmax; baja = atención concentrada. mean pooling: promediar los vectores contextuales de una frase para obtener su embedding de oración (SBERT, MPNet).
Setup. Mini-buscador sobre 10 documentos de juguete (frases de banca, retail, energía, streaming, y un "banco del parque" puesto ahí con toda la intención), con embeddings 2D precalculados coherentes con el mapa semántico de la slide 4. Para cada query: el panel superior sitúa documentos y query en el plano; el inferior compara las dos puntuaciones por documento (barra dorada = coseno, barra tinta = BM25 reescalado); la tabla da números y rankings exactos. El BM25 se calcula de verdad sobre los textos tokenizados: tf, df, longitudes y todo.
Juega. Las cuatro queries están elegidas para cubrir la casuística completa: ambos aciertan / el léxico se queda corto (sinonimia) / el léxico devuelve vacío (vocabulario disjunto) / el léxico acierta de más (polisemia de "banco"). Recorre las cuatro mirando primero el badge y luego la tabla.
Lee así. En la tabla, rks y rkl son las posiciones en cada ranking. Las discrepancias grandes entre ambas columnas son exactamente los casos que justifican pagar por un buscador semántico; donde coinciden, BM25 (gratis y rapidísimo) ya bastaba.
Mensaje. La receta de 10 líneas del deck (SentenceTransformer + normalize + producto escalar) implementa la columna dorada de esta tabla. En el Día 15 le añadiremos la generación encima: eso es RAG.
Términos. tf: frecuencia del término en el documento. df: número de documentos que contienen el término. idf: peso que premia términos raros. búsqueda híbrida: combinar score léxico y semántico (p. ej. suma ponderada o reciprocal rank fusion).
Setup. Doce productos de un e-commerce con embeddings 2D fijos en dos ejes interpretables (afinidad a moda, afinidad a tecnología) y un precio cada uno: camisetas de 15€ en una esquina, portátiles de 999€ en la otra, productos puente (smartwatch, cámara) en medio. Tus dos sliders definen el vector del usuario en ese mismo espacio. El canvas dibuja catálogo, usuario (flecha dorada) y el top-k recomendado (resaltado); la tabla calcula coseno, CTR estimado y contribución en euros de cada recomendación.
Juega. Piensa cada movimiento de slider como un segmento de clientes distinto: la fashionista, el gadgetero, el indeciso. El mismo espacio y la misma fórmula sirven para los tres; lo único que cambia es dónde está u. Esto es lo que significa "recomendación personalizada a escala": no hay una regla por cliente, hay un espacio compartido y un coseno.
Lee así. El KPI del lector es ingreso esperado por usuario y sesión. Multiplícalo mentalmente por los 5 millones de sesiones mensuales de un retailer mediano: una mejora de céntimos en esta pantalla son millones al año. Por eso Netflix atribuye más de 1000 M$/año a su recomendador.
Mensaje. Búsqueda y recomendación son el mismo problema geométrico: vecinos por coseno en un espacio compartido. Si entendiste el buscador de la slide anterior, ya entiendes Discover Weekly: cambia documentos por canciones y queries por tu historial.
Términos. u: vector de perfil del usuario. pi: embedding del producto i. CTR: probabilidad de clic. top-k: los k productos de mayor afinidad. arranque en frío: usuario o producto sin historial.
En una frase. Un embedding convierte significado en geometría; el coseno convierte geometría en ranking; y el ranking, puesto delante de un cliente, convierte semántica en negocio. El Día 09 abre la máquina que fabrica los mejores embeddings: el Transformer.