Autoatención explicada para expertos


La autoatención es un mecanismo en el que, para una secuencia de entrada X = (x_1, x_2, ..., x_n), se calcula para cada elemento x_i una suma ponderada de todos los elementos, donde los pesos están determinados por la compatibilidad de x_i con cada x_j.

Formalmente, esto se realiza a menudo mediante las matrices Query (Q), Key (K) y Value (V), donde los puntajes de atención se calculan a partir del producto escalar de Q y K, normalizados mediante Softmax:

Attention(Q,K,V) = softmax( (Q K^T) / sqrt(d_k) ) V

Aquí, d_k es la dimensión de los vectores Key, que se utiliza para la escala.

Este mecanismo permite modelar dependencias contextuales de forma flexible y paralela, lo que se utiliza especialmente en arquitecturas Transformer (Vaswani et al., 2017).


Definición:
«La autoatención es un mecanismo en redes neuronales que, mediante el cálculo de combinaciones ponderadas de los elementos de una secuencia de entrada, modela sus relaciones contextuales, atendiendo cada elemento a todos los demás elementos de la secuencia.»


Fuente:
Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., Kaiser, Ł., & Polosukhin, I. (2017). Attention is All You Need. En Advances in Neural Information Processing Systems (NeurIPS).