las ecuaciones de esta slide
xw ∈ ℝd,   d = 32,    ‖xw‖ = √d ≈ 5,66 (Ec. 1)
Cada palabra w del vocabulario tiene asignado un vector xw de d = 32 números reales. Esos números salen de fastText, entrenado sobre Common Crawl en español, y están reducidos de 300 a 32 dimensiones con PCA. Todos los vectores se han reescalado a la misma longitud ‖x‖ = √d, para que lo único que distinga a dos palabras sea su dirección.
cos(xa, xb) = xa · xb ‖xa‖ ‖xb‖ = Σk=1d xa,k xb,kd (Ec. 2)
El coseno mide el parecido entre dos palabras: vale 1 si apuntan igual, 0 si no tienen nada que ver y negativo si se oponen. El numerador es el producto escalar xa·xb: se multiplican las 32 componentes una a una y se suman. Es exactamente la cuenta que la atención usará como puntuación, y la misma distancia coseno del ejercicio del día.
guion paso a paso
  1. Con la frase de partida, pincha hotel y mira el panel de abajo. Sus vecinos en el vocabulario son chalet, camping, albergue, spa, balneario: el vector sabe de qué habla la palabra.
  2. Pincha ahora precio. Cambian a saldo, monto, costo, coste, importe; ninguno tiene que ver con alojamiento.
  3. Escribe una frase tuya con una palabra rara (por ejemplo «ruidosa»). La ficha se marca con una flecha y el lector avisa de qué vector ha usado en su lugar («ruidosa» → «ruidos»): fuera de las 12 000 palabras más frecuentes no hay vector propio.
  4. Fíjate en la franja de colores de arriba, fila a fila. Dos palabras parecidas tienen franjas parecidas; ese parecido entre franjas es todo lo que la atención va a medir.
Comprueba que entiendes: ¿por qué todos los vectores miden lo mismo (‖x‖ = √d)?
Porque así el producto escalar xa·xb = d·cos(xa,xb) depende solo del ángulo, no de si la palabra es frecuente. Si no lo hiciéramos, las palabras con vector largo ganarían la atención siempre, por muy poco que pinten en la frase.

Setup. Panel de arriba: las 32 componentes de cada palabra de tu frase, una fila por palabra; dorado = componente positiva, gris = negativa, la intensidad es el valor absoluto. Panel de abajo: las 10 palabras del vocabulario (12 000 en total) más parecidas a la que has seleccionado, por coseno.

Juega. Cambia la frase por una del negocio que te interese (reseñas de hotel, riesgo de impago, devoluciones de una tienda) y pincha cada palabra para ver a qué se parece.

Lee así. Si dos palabras que tú dirías relacionadas salen con coseno alto, es que la geometría del espacio ya codifica significado. Sobre esa geometría, y sin nada más, funcionará la atención de las siguientes slides.

Mensaje. Antes de atender hay que representar: una frase es una matriz X de T filas (palabras) por d = 32 columnas (números).

Términos. T: número de palabras de la frase. d: dimensión del vector de cada palabra, aquí 32. X: la matriz T×d con la frase entera. coseno: parecido entre dos vectores, entre −1 y 1.

las ecuaciones de esta slide
Q = X WQ,   K = X WK,   V = X WV (Ec. 3)
De la misma matriz X salen tres papeles. qi (query) es la pregunta que hace la palabra i; kj (key) es la etiqueta con la que se anuncia la palabra j; vj (value) es lo que la palabra j aporta si se la atiende. WQ, WK, WV son matrices d×d que en un Transformer se aprenden. Aquí puedes elegir entre W = I (identidad: no toca nada) y un W que borra la dirección de las palabras de relleno, que es la clase de cosa que el entrenamiento descubre solo.
eij = qi · kj √d = Σk=1d qi,k kj,k √d (Ec. 4)
El score eij es cuánto le interesa a la palabra i la palabra j: producto escalar de la pregunta con la etiqueta, dividido por √d. Esa división mantiene la escala fija al cambiar la dimensión: sin ella los scores crecen con d y la softmax se satura. Con ‖q‖=‖k‖=√d resulta eij = √d · cos(qi,kj), que vive en [−5,66, 5,66]: justo el rango donde la softmax discrimina.
guion paso a paso
  1. Query hotel, key centro, W = I. El producto escalar sale positivo y grande: e = +3,0 aproximadamente, con 19 de las 32 componentes empujando hacia arriba.
  2. Deja la query en hotel y pon la key en pero. El score se desploma hasta valores cercanos a cero o negativos: una conjunción no responde a un sustantivo de alojamiento.
  3. Ahora enciende el proyector y vuelve a mirar el panel de abajo con query hotel. Los scores de «un», «el», «la» bajan y los de «centro» y «calle» se quedan arriba: eso es lo que hace una WK entrenada.
  4. Pon query y key en la misma palabra. Sale el máximo posible, e = √d = 5,66, porque el coseno de un vector consigo mismo es 1.
Comprueba que entiendes: ¿por qué dividir entre √d y no entre d?
Porque el producto escalar de dos vectores de norma √d crece como d, y su desviación típica como √d. Dividir entre √d deja los scores con escala constante al cambiar la dimensión; dividir entre d los aplastaría hacia cero y la softmax daría pesos casi iguales a todas las palabras.

Setup. Panel de arriba: las 32 contribuciones qi,k·kj,k del producto escalar del par que has elegido; la suma de todas ellas, dividida entre √d, es el score. Panel de abajo: el score de la query contra todas las palabras de la frase.

Juega. Cambia la key barra a barra y observa qué componentes empujan hacia arriba y cuáles hacia abajo. Enciende y apaga el proyector.

Lee así. Barra dorada = esa dimensión está de acuerdo en las dos palabras; barra gris = discrepan. El score es el saldo neto.

Mensaje. La atención puntúa pares de palabras con un producto escalar, y toda la sofisticación vive en las W que lo preceden.

Términos. qi: query, la pregunta de la palabra i. kj: key, la etiqueta de la palabra j. eij: score sin normalizar del par (i, j). W: matriz d×d que reproyecta los vectores antes de puntuar.

las ecuaciones de esta slide
αij = softmaxj(eij/τ) = exp(eij/τ) Σl=1T exp(eil/τ),    Σj=1T αij = 1 (Ec. 5)
La softmax convierte los T scores de la palabra i en T pesos de atención αij positivos que suman 1: un reparto de 100 puntos de mirada entre las palabras de la frase. El exp amplifica diferencias (dos puntos más de score multiplican el peso por e² ≈ 7,4) y el denominador es la suma que normaliza. τ es la temperatura: divide los scores antes de exponenciar.
Hi = −Σj αij log2 αij,   palabras efectivas = 2Hi (Ec. 6)
La entropía Hi resume en un número si la mirada está concentrada o repartida: vale 0 si toda la atención va a una sola palabra y log2T si va repartida por igual. 2H se lee directamente como «a cuántas palabras está mirando de verdad».
guion paso a paso
  1. Query hotel, τ = 1, sin quitar diagonal. Casi todo el peso, más del 80 %, se lo lleva «hotel» ella misma: ninguna palabra se parece tanto a una palabra como ella misma.
  2. Marca «quitar la diagonal». Ahora se ve a quién mira de verdad: «centro» se lleva el peso mayor, sobre 0,34, seguido de «calle».
  3. Baja τ hasta 0,2 con la diagonal quitada. «centro» supera el 90 % y las palabras efectivas 2H caen por debajo de 1,5: la mirada se vuelve casi determinista.
  4. Sube τ hasta 3. Los pesos se aplanan hacia 1/T y 2H se acerca al número de palabras de la frase: la atención deja de elegir.
Comprueba que entiendes: si sumas 10 a todos los scores de una fila, ¿cambian los pesos?
No. exp(e+10) = e10exp(e) aparece igual arriba y abajo en la fracción y se cancela. La softmax solo mira diferencias de score. Por eso el cálculo se implementa restando antes el máximo de la fila: mismo resultado, sin desbordar el exponencial.

Setup. Panel de arriba: para la query elegida, los scores eij en gris (escala izquierda) y los pesos αij en dorado (escala derecha), palabra a palabra. Panel de abajo: cómo cambia el peso máximo y las palabras efectivas 2H al barrer τ, con tu τ marcada.

Juega. Mueve τ despacio y mira las dos curvas de abajo a la vez que las barras de arriba.

Lee así. Los scores pueden ser negativos y de cualquier tamaño; los pesos viven entre 0 y 1 y suman 1, o sea que son una probabilidad sobre las palabras de la frase.

Mensaje. La softmax es el paso que convierte «cuánto me interesa» en «cuánto miro», y τ decide si la mirada es un foco o una linterna.

Términos. αij: peso de atención de i sobre j. τ: temperatura. H: entropía en bits. 2H: número efectivo de palabras atendidas.

las ecuaciones de esta slide
zi = Σj=1T αij vj,   vj = xj WV (Ec. 7)
La salida de la atención para la palabra i es una media ponderada de los valores de todas las palabras de la frase, con los pesos αij que acaba de calcular la softmax. Como los pesos suman 1, zi es un punto del mismo espacio de significados: un vector de 32 números que ya no representa a la palabra aislada sino a la palabra en esta frase. Aquí WV = I, así que vj = xj y podemos buscar a qué palabras del vocabulario se parece zi.
cos(zi, xi)  vs   cos(zi, xw) para todo w del vocabulario (Ec. 8)
Comparando zi con el vector original xi se mide cuánto la ha movido el contexto; comparándolo con las 12 000 palabras del vocabulario se lee hacia dónde la ha movido.
guion paso a paso
  1. Pulsa el ejemplo banco / crédito y selecciona la palabra banco. Los vecinos de z son financieros: nómina, aval, crédito, pago, servicio, salarial.
  2. Pulsa ahora el ejemplo banco / parque, otra vez la palabra banco. Los vecinos cambian por completo: parque, campus, museo, recinto, campo. Mismo vector de entrada, distinta salida, porque el contexto es otro.
  3. Desmarca «quitar la diagonal». z se pega a la palabra original: cos(z, x) sube por encima de 0,9 y los vecinos vuelven a ser los de «banco» a secas.
  4. Sube τ a 3 con la diagonal quitada. z se pega al promedio de la frase entera (coseno con esa media por encima de 0,97) y los vecinos se vuelven genéricos: mezclar con todo es no decir nada.
Comprueba que entiendes: ¿por qué esto resuelve la ambigüedad que una red recurrente arrastraba?
Porque zi se construye mirando directamente a todas las palabras de la frase, con un peso explícito por palabra, sin tener que pasar la información paso a paso por un estado oculto que se degrada. La palabra «parque» influye en «banco» en un solo producto escalar, esté a dos posiciones o a doscientas.

Setup. Panel de arriba: el vector original xi (fila gris), las aportaciones ponderadas αijvj de las tres palabras que más pesan, y el resultado zi (fila dorada). Panel de abajo: las palabras del vocabulario más próximas a zi.

Juega. Escribe la misma palabra ambigua en dos frases de tu negocio («la carta del restaurante» / «una carta al director», «el cambio de divisa» / «el cambio del coche»).

Lee así. Con el mismo vocabulario de partida, lo que cambia es el punto del espacio al que la frase empuja a la palabra.

Mensaje. Atender es mezclar. La salida de la atención es la palabra reescrita con lo que le aporta su contexto, y por eso el mismo token puede significar cosas distintas en dos frases.

Términos. vj: value, lo que aporta la palabra j. zi: salida de la atención para la palabra i, contextual. WV: matriz que transforma los valores; aquí la identidad.

las ecuaciones de esta slide
Atención(Q, K, V) = softmax( Q K⊤ √d + M) V (Ec. 9)
La fórmula entera del scaled dot-product attention, tal cual aparece en Vaswani et al. (2017). QK⊤ es la matriz T×T de todos los productos escalares pregunta-etiqueta a la vez; la softmax se aplica por filas; multiplicar por V hace las T medias ponderadas de golpe. M es la máscara: 0 donde se puede mirar y −∞ donde no.
Mij = 0 si j ≤ i,   Mij = −∞ si j > i (Ec. 10)
La máscara causal del decoder: al generar la palabra i solo se puede mirar a las anteriores, porque las siguientes todavía no existen. exp(−∞) = 0, así que esas casillas reciben peso exactamente cero.
coste ≈ 2 T2 d multiplicaciones (T2d en QK⊤ y otras tantas en αV) (Ec. 11)
Hay T² pares de palabras y cada producto escalar cuesta d multiplicaciones: el coste crece con el cuadrado de la longitud del texto. Doblar la frase cuadruplica la cuenta. Ese T² es el motivo de que la ventana de contexto de un modelo sea cara.
guion paso a paso
  1. Mira la matriz con la frase de partida y el proyector encendido. La diagonal es la línea más brillante: cada palabra se atiende a sí misma por encima de todo.
  2. Marca «quitar la diagonal» y busca las casillas doradas fuera de ella. Aparecen bloques simétricos: hotel-centro-calle por un lado, precio-alto por otro. La atención ha encontrado los temas de la frase.
  3. Marca la máscara causal. Todo el triángulo superior se queda en blanco (peso 0) y la primera fila se lleva el 100 % a sí misma: no tiene pasado al que mirar.
  4. Alarga la frase escribiendo más palabras y mira el panel de coste. Con 10 palabras son 100 pares; con 20, 400. El punto sube por una parábola, no por una recta.
Comprueba que entiendes: ¿por qué la matriz de scores es simétrica aquí pero la de pesos no?
Porque con WQ = WK se cumple eij = eji, pero la softmax normaliza por filas: cada fila se divide entre su propia suma, que es distinta en la fila i y en la j. En un Transformer de verdad WQ ≠ WK y ni siquiera los scores son simétricos.

Setup. Panel de arriba: la matriz T×T de pesos; la fila i dice a quién mira la palabra i y suma 1. Pincha cualquier casilla para leer su cuenta. Panel de abajo: el coste en productos escalares frente a la longitud del texto, con tu frase marcada.

Juega. Compara la matriz con y sin proyector: sin él, las columnas de «el», «la», «del» se iluminan enteras.

Lee así. Filas = quién pregunta, columnas = quién responde. Una columna brillante es una palabra que todo el mundo mira.

Mensaje. Una sola multiplicación de matrices calcula la frase entera en paralelo, y ese paralelismo (que una red recurrente no tiene) es lo que permitió entrenar Transformers gigantes. Se paga con un coste T².

Términos. QK⊤: matriz de todos los scores. M: máscara. máscara causal: prohíbe mirar al futuro. T²: número de pares palabra-palabra.

las ecuaciones de esta slide
PEp,2k = sin(p / 100002k/d),    PEp,2k+1 = cos(p / 100002k/d) (Ec. 12)
La atención, tal como está escrita, no sabe en qué orden van las palabras: si barajas la frase, la matriz se baraja igual. Se le da el orden sumando a cada palabra un codificado posicional PEp, un vector de 32 números fabricado con senos y cosenos de distintas frecuencias, donde p es la posición (1, 2, 3, ...) y k indexa las frecuencias.
x̃p = xp + λ PEp,    eij = x̃i · x̃j / √d (Ec. 13)
Con λ = 0 la cabeza solo ve significado; al subir λ empieza a ver posición, porque PEi·PEj es grande cuando i y j están cerca y decae al alejarse. Una cabeza con λ alto se fija en las palabras vecinas, la sintaxis local.
MultiCabeza(X) = Concat(cabeza1, ..., cabezah) WO (Ec. 14)
Un Transformer no usa una atención sino h en paralelo (h = 8 en el artículo original), cada una con sus propias W. Cada cabeza se especializa: una en concordancias, otra en el sujeto del verbo, otra en el tema del párrafo. Se concatenan las h salidas y WO las recombina en un solo vector por palabra.
guion paso a paso
  1. Con λ = 0 compara las dos matrices. Son idénticas: sin codificado posicional la cabeza 2 es la cabeza 1.
  2. Sube λ hasta 1,5. En la cabeza 2 aparece una banda diagonal: ya son más de la mitad las palabras cuya máxima atención va a una vecina inmediata, y la distancia media atendida cae de 5,2 a 4,0 posiciones.
  3. Sube λ hasta 3. La banda se estrecha del todo: el 100 % de las palabras atiende sobre todo a la de al lado, gane o pierda sentido. La posición se ha comido al significado.
  4. Selecciona una palabra y lee el lector con las dos cabezas a la vez. La cabeza 1 la manda a una palabra del mismo tema; la cabeza 2, a una contigua. Concatenar las dos da una representación que sabe de qué habla y dónde está.
Comprueba que entiendes: ¿por qué hacen falta varias cabezas si la fórmula es la misma?
Porque una única softmax por palabra reparte 100 puntos y obliga a elegir un solo criterio: si miras al tema no miras a la vecina. Con h cabezas hay h repartos independientes, cada uno con sus W, y WO decide después cuánto pesa cada criterio. Es la misma idea que usar varios filtros en una capa convolucional.

Setup. Dos matrices de atención sobre tu frase: la cabeza 1 (λ = 0, solo significado) y la cabeza 2 (λ ajustable, significado + posición). Abajo, el perfil de atención por distancia |i−j| de cada cabeza.

Juega. Mueve λ y mira cómo la cabeza 2 pasa de copiar a la cabeza 1 a convertirse en una banda diagonal.

Lee así. Curva plana en el panel de abajo = la cabeza no distingue posiciones; curva que cae con la distancia = la cabeza es local. El porcentaje del lector dice cuántas palabras tienen a una vecina como palabra más atendida.

Mensaje. Sumar posición y repetir la operación con varias cabezas es todo lo que separa la fórmula de esta slide de la de un Transformer real.

Términos. PEp: codificado posicional de la posición p. λ: cuánto pesa la posición frente al significado. cabeza: una atención independiente. WO: matriz que recombina las cabezas.

De dónde salen los números. Los vectores de palabra son los de fastText (Grave et al., 2018) entrenados sobre Common Crawl y Wikipedia en español, 300 dimensiones, reducidos aquí a 32 con PCA sobre las 12 000 palabras más frecuentes y reescalados a norma √d. Todo lo que se pinta en estas slides se calcula en tu navegador con esos vectores y con las fórmulas (Ec. 1) a (Ec. 14): no hay ninguna cifra inventada ni ningún dibujo decorativo. Lo único que no está entrenado son las matrices WQ, WK, WV: en un Transformer se aprenden con descenso de gradiente, y aquí son o bien la identidad o bien un proyector fijo construido a mano.

1 — Representar
Slide 1 · Ec. 1–2
«Cada palabra es un vector xw de d = 32 números con norma √d; el coseno entre dos vectores ya mide significado parecido.»
↓
2 — Puntuar
Slide 2 · Ec. 3–4
«eij = qi·kj/√d: un producto escalar por par de palabras, con las matrices W delante decidiendo qué relación se busca.»
↓
3 — Normalizar
Slide 3 · Ec. 5–6
«αij = softmax(eij/τ): los scores se vuelven un reparto de 100 puntos de mirada que suma 1.»
↓
4 — Mezclar
Slide 4 · Ec. 7–8
«zi = Σj αijvj: la palabra sale reescrita por su contexto, y por eso «banco» significa una cosa con «crédito» al lado y otra con «parque».»
↓
5 — Todo a la vez
Slide 5 · Ec. 9–11
«softmax(QK⊤/√d + M)V calcula la frase entera en paralelo, con máscara causal si se está generando, y cuesta T².»
↓
6 — Repetir
Slide 6 · Ec. 12–14
«Súmale posición, ponlo h veces en paralelo y apila el bloque N veces: eso es un Transformer, y de ahí salen los modelos de lenguaje que usa tu empresa.»

En una frase. La atención puntúa cada par de palabras con un producto escalar, convierte esos puntos en un reparto que suma 1 y devuelve la media ponderada de la frase: tres operaciones de bachillerato, aplicadas T² veces en paralelo, sostienen todo lo que hoy llamamos IA generativa.

Garrido-Merchán — ecgarrido@comillas.edu — Deep Learning para Business Analytics — Día 07 · Atención