L'auto-attention est un mécanisme dans lequel, pour une séquence d'entrée X = (x_1, x_2, ..., x_n), une somme pondérée de tous les éléments est calculée pour chaque élément x_i, les poids étant déterminés par la compatibilité de x_i avec chaque x_j.
Formellement, cela est souvent réalisé par les matrices Query (Q), Key (K) et Value (V), où les scores d'attention sont calculés à partir du produit scalaire de Q et K, normalisés via Softmax :
Attention(Q,K,V) = softmax( (Q K^T) / sqrt(d_k) ) V
où d_k est la dimension des vecteurs Key, utilisée pour la mise à l'échelle.
Ce mécanisme permet de modéliser de manière flexible et parallèle les dépendances contextuelles, ce qui est particulièrement utilisé dans les architectures Transformer (Vaswani et al., 2017).
Définition :
« L'auto-attention est un mécanisme dans les réseaux neuronaux qui modélise les relations contextuelles des éléments d'une séquence d'entrée en calculant des combinaisons pondérées de ces éléments, chaque élément portant attention à tous les autres éléments de la séquence. »
Source :
Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., Kaiser, Ł., & Polosukhin, I. (2017). Attention is All You Need. In Advances in Neural Information Processing Systems (NeurIPS).