Tema
Atención
- Aprendizaje profundo
- Nivel intermedio
- Con simulador interactivo
La atención calcula una media ponderada de unos valores, donde el peso de cada valor sale de comparar una consulta con la clave asociada a ese valor.
Nombre en inglés
Attention
Intuición
En lugar de comprimir toda la secuencia en un estado de tamaño fijo, cada posición pregunta al resto qué le interesa y recibe un resumen hecho a medida. La comparación entre consulta y clave produce una puntuación, el softmax la convierte en un reparto que suma uno, y el resultado es la mezcla de los valores con ese reparto. La división entre la raíz de la dimensión evita que las puntuaciones crezcan con la dimensión y saturen el softmax en un reparto casi determinista.
Fórmula
\mathrm{Atencion}(Q, K, V) = \mathrm{softmax}\left(\frac{Q K^T}{\sqrt{d_k}}\right) V
Ejemplo resuelto
Sea la dimensión de clave igual a 4, de modo que su raíz vale 2. La consulta es (2, 0, 0, 0) y las tres claves son (2, 0, 0, 0), (1, 0, 0, 0) y (0, 1, 0, 0). Los productos valen 4, 2 y 0, que al dividir entre 2 quedan en 2, 1 y 0. El softmax los exponencia y obtiene 7.389, 2.718 y 1, cuya suma da 11.107, así que los pesos son 0.665, 0.245 y 0.090 y suman 1. Con valores (1, 0), (0, 1) y (0, 0), la salida es (0.665, 0.245). Sin la división por la raíz, las puntuaciones habrían sido 4, 2 y 0, el peso mayor habría subido a cerca de 0.867 y el gradiente del softmax se habría achatado.
Errores frecuentes
- Suprimir la máscara causal en un decodificador, lo que deja que cada posición mire el futuro y produce una pérdida de entrenamiento engañosamente baja.
- Aplicar el softmax sobre la dimensión equivocada de la matriz de puntuaciones, fallo silencioso que se detecta comprobando que cada fila suma 1.
- Suponer que un peso de atención alto explica la decisión del modelo, cuando la atención reparte información y no equivale a una atribución causal.
Ejercicio
Las puntuaciones ya escaladas de tres posiciones valen 1, 1 y 0. ¿Cuánto vale el peso de atención de la tercera?
Ver la solución
El softmax exponencia las tres puntuaciones y obtiene 2.718, 2.718 y 1, cuya suma da 6.437. El peso de la tercera es 1 dividido entre 6.437, cerca de 0.155. Las dos primeras reparten el resto por partes iguales, con cerca de 0.422 cada una.
Respuesta: cerca de 0.155
Temas relacionados
- Transformador
- Redes recurrentes y memoria larga y corta
- Atención sobre secuencias
- Matrices y transformaciones lineales
Cursos a los que prepara
Simulador
Este tema tiene un simulador interactivo en la guía.