Attention Mechanisms/es: Difference between revisions

    From Marovi AI
    ([deploy-bot] Deploy from CI (775ba6e))
    Tag: ci-deploy
     
    ([deploy-bot] Deploy from CI (8c92aeb))
    Tags: ci-deploy Manual revert
     
    (2 intermediate revisions by the same user not shown)

    Latest revision as of 07:09, 24 April 2026

    Languages: English | Español | 中文
    Article
    Topic area Deep Learning
    Difficulty Advanced
    Prerequisites Neural Networks, Recurrent Neural Networks

    Los mecanismos de atencion son una familia de tecnicas que permiten a las redes neuronales enfocarse selectivamente en las partes relevantes de su entrada al producir cada elemento de la salida. Introducidos originalmente para superar las limitaciones de los vectores de contexto de longitud fija en los modelos secuencia a secuencia, la atencion se ha convertido en el bloque de construccion fundamental de las arquitecturas modernas como el Transformer.

    Motivacion

    Los primeros modelos secuencia a secuencia codificaban una secuencia de entrada completa en un unico vector de dimension fija utilizando una red neuronal recurrente. Este cuello de botella obligaba a comprimir las dependencias de largo alcance en un vector de tamano constante, degradando el rendimiento en secuencias largas. La atencion resuelve esto permitiendo que el decodificador consulte todos los estados ocultos del codificador en cada paso de generacion, ponderandolos mediante puntuaciones de relevancia aprendidas.

    Atencion de Bahdanau (aditiva)

    Bahdanau et al. (2015) propusieron el primer mecanismo de atencion ampliamente adoptado para la traduccion automatica. Dados los estados ocultos del codificador $ h_1, \dots, h_T $ y el estado del decodificador $ s_{t-1} $, la puntuacion de alineamiento se calcula como:

    $ e_{t,i} = v^{\!\top} \tanh(W_s\, s_{t-1} + W_h\, h_i) $

    donde $ W_s $, $ W_h $ y $ v $ son parametros aprendidos. Los pesos de atencion se obtienen aplicando softmax:

    $ \alpha_{t,i} = \frac{\exp(e_{t,i})}{\sum_{j=1}^{T} \exp(e_{t,j})} $

    El vector de contexto es la suma ponderada $ c_t = \sum_{i=1}^{T} \alpha_{t,i}\, h_i $, que se concatena con $ s_{t-1} $ y se alimenta al decodificador.

    Atencion de Luong (multiplicativa)

    Luong et al. (2015) simplificaron la funcion de puntuacion reemplazando la red aditiva con un producto escalar o una forma bilineal:

    Variante Funcion de puntuacion
    Dot $ e_{t,i} = s_t^{\!\top} h_i $
    General $ e_{t,i} = s_t^{\!\top} W_a\, h_i $
    Concat $ e_{t,i} = v^{\!\top} \tanh(W_a [s_t;\, h_i]) $

    La variante dot requiere que las dimensiones del codificador y el decodificador coincidan, mientras que la variante general introduce una matriz de pesos aprendible $ W_a $.

    Atencion de producto escalar escalado

    Vaswani et al. (2017) introdujeron la formulacion utilizada en el Transformer. Dadas las matrices de consultas $ Q $, claves $ K $ y valores $ V $:

    $ \mathrm{Attention}(Q, K, V) = \mathrm{softmax}\!\left(\frac{Q K^{\!\top}}{\sqrt{d_k}}\right) V $

    El factor de escalado $ \sqrt{d_k} $ evita que los productos escalares crezcan en magnitud a medida que la dimension de la clave $ d_k $ aumenta, lo que empujaria al softmax hacia regiones de gradientes extremadamente pequenos.

    Autoatencion

    En la autoatencion, las consultas, claves y valores se derivan de la misma secuencia. Cada posicion atiende a todas las demas posiciones (incluida ella misma), lo que permite al modelo capturar dependencias de largo alcance en una unica capa. Para una matriz de entrada $ X \in \mathbb{R}^{n \times d} $:

    $ Q = X W^Q, \quad K = X W^K, \quad V = X W^V $

    La autoatencion tiene una complejidad de $ O(n^2 d) $, lo que puede ser costoso para secuencias muy largas. Variantes eficientes como la atencion dispersa y la atencion lineal reducen este coste.

    Atencion multicabezal

    En lugar de realizar una unica funcion de atencion, la atencion multicabezal ejecuta $ h $ cabezas de atencion en paralelo con proyecciones independientes:

    $ \mathrm{MultiHead}(Q, K, V) = \mathrm{Concat}(\mathrm{head}_1, \dots, \mathrm{head}_h)\, W^O $

    donde $ \mathrm{head}_i = \mathrm{Attention}(Q W_i^Q,\, K W_i^K,\, V W_i^V) $. Cada cabeza puede aprender a atender diferentes aspectos de la entrada — por ejemplo, una cabeza podria capturar relaciones sintacticas mientras otra captura relaciones semanticas. Las configuraciones tipicas utilizan 8 o 16 cabezas.

    Codificacion posicional

    Dado que la autoatencion es invariante a la permutacion (trata la entrada como un conjunto no ordenado), la informacion posicional debe inyectarse explicitamente. El Transformer original utiliza codificaciones sinusoidales:

    $ \mathrm{PE}(pos, 2i) = \sin\!\left(\frac{pos}{10000^{2i/d}}\right), \quad \mathrm{PE}(pos, 2i+1) = \cos\!\left(\frac{pos}{10000^{2i/d}}\right) $

    Los embeddings posicionales aprendidos y las codificaciones posicionales relativas (por ejemplo, RoPE, ALiBi) son alternativas comunes que pueden generalizar mejor a longitudes de secuencia no vistas.

    Atencion cruzada

    La atencion cruzada se utiliza cuando las consultas provienen de una secuencia y las claves/valores provienen de otra. En los Transformers codificador-decodificador, el decodificador atiende a las salidas del codificador mediante atencion cruzada, lo que permite al modelo condicionar su generacion en el contexto completo de la entrada.

    Consideraciones practicas

    • Enmascaramiento: En la decodificacion autorregresiva, las posiciones futuras se enmascaran (se establecen en $ -\infty $ antes del softmax) para preservar la estructura causal.
    • Dropout en atencion: Descartar pesos de atencion aleatoriamente durante el entrenamiento actua como regularizador y reduce el sobreajuste a patrones de alineamiento especificos.
    • Cache de clave-valor: Durante la inferencia, los vectores de clave y valor previamente calculados se almacenan en cache para evitar calculo redundante, acelerando significativamente la generacion autorregresiva.

    Vease tambien

    Referencias

    • Bahdanau, D., Cho, K. and Bengio, Y. (2015). "Neural Machine Translation by Jointly Learning to Align and Translate". ICLR.
    • Luong, M.-T., Pham, H. and Manning, C. D. (2015). "Effective Approaches to Attention-based Neural Machine Translation". EMNLP.
    • Vaswani, A. et al. (2017). "Attention Is All You Need". NeurIPS.
    • Shaw, P., Uszkoreit, J. and Vaswani, A. (2018). "Self-Attention with Relative Position Representations". NAACL.
    • Su, J. et al. (2021). "RoFormer: Enhanced Transformer with Rotary Position Embedding". arXiv:2104.09864.