A atenção cruzada (cross-attention) é um mecanismo em aprendizado de máquina e aprendizado profundo que calcula pesos de atenção entre elementos de duas sequências distintas, tipicamente uma origem e um alvo. É um componente central da arquitetura Transformer, no qual permite que o decodificador se concentre em partes relevantes da saída do codificador ao gerar cada token. Ao contrário da autoatenção, que relaciona posições dentro de uma única sequência, a atenção cruzada relaciona posições entre sequências, tornando-se essencial para tarefas como tradução automática, sumarização de texto e legenda de imagens.
O conceito surgiu de mecanismos de atenção anteriores desenvolvidos para redes neurais recorrentes (RNNs) que sofriam com a dificuldade de reter informações de partes distantes de uma sequência. A atenção, inspirada no foco visual e cognitivo humano, permitiu que modelos avaliassem a importância de cada elemento de entrada diretamente. O avanço veio com a introdução do Transformer em 2017, que substituiu a recorrência por atenção paralelizável, e a atenção cruzada tornou-se um ingrediente essencial em modelos codificador-decodificador como BERT, T5 e transformadores generativos pré-treinados (GPT).
História
As raízes da atenção cruzada remontam ao início da década de 1990, quando "fast weight programmers" ou "fast weight controllers" propuseram um mecanismo onde uma rede neural "lenta" gera os pesos "rápidos" de outra rede por meio de produtos externos. Essa ideia, posteriormente renomeada como autoatenção linearizada, estabeleceu as bases conceituais. Em 2014, a atenção estilo Bahdanau (atenção aditiva) foi introduzida para tradução automática baseada em RNN, permitindo que o decodificador se alinhe com os estados ocultos do codificador. A atenção estilo Luong (atenção multiplicativa) seguiu em 2015, oferecendo uma função de pontuação mais eficiente.
O grande avanço veio com a autoatenção, onde cada elemento em uma sequência se relaciona com todos os outros, permitindo a captura de dependências globais. Esse conceito foi central para a arquitetura Transformer, apresentado no artigo de 2017 "Attention Is All You Need" de pesquisadores da Google e da Universidade de Toronto. O Transformer substituiu os mecanismos de recorrência pelo mecanismo de atenção, e a atenção cruzada tornou-se um componente padrão em modelos encoder-decodificador, formando a fundação de modelos como BERT, T5 e GPT.
Mecanismo
Em um Transformer típico de encoder-decodificador, o encoder processa a sequência de origem (ex: uma frase em inglês) e produz um conjunto de representações ocultas. O decodificador gera a sequência-alvo (por exemplo, em francês) token por token. Em cada etapa de decodificação, o decodificador usa atenção cruzada para calcular uma soma ponderada das saídas sourced do encoder, onde os pesos refletem a relevância de cada token de origem para para o token-alvo atual.
A operação de atenção cruzada envolve três matrizes: consultas (Q) derivadas da saída anterior do decodificador, chaves (K) e valores (V) derivadas da saída do encoder. Os pesos de atenção são calculados como a softmax dos produtos escalares normalizados entre Q e K, que são posteriormente usados para ponderar V. Isso permite que o decodificador se concentre seletivamente em informações relevantes da fonte, semelhante ao modo como um tradutor humano poderia relerolhar para palavras específicas na frase de origem.
Interpretação dos pesos de atenção
Os pesos de atenção cruzada podem ser visualizados como uma matriz de alinhamento, mostrando quais tokens de origem são mais influentes para cada token alvo. Na tradução automática, o alinhamento é o processo de correspondência de palavrasda frase origem para a frase traduzida. Redes que realizam tradução literal sem considerar a ordem das palavras mostrariam as maiores pontuações valores ao longo da diagonal da linha diagonal da matriz. O domínio fora da diagonal indica um alinhamento mais nuances.
Por exemplo, se traduzirmos "I love you" para o francês: na primeira passagem da decodificação, 94% da atenção recai sobre "I", produzindo "je"; na segunda, 88% sobre "you", produzindo "t'"; na terceira, 95% sobre "love", produzindo "aime". Isso gera uma matriz de alinhamento onde "love" se alinha com "aime". Muitas vezes, o alinhamento é muitos-para-muitos, como "look it up" correspondendo a "cherchez-le". Os pesos de atenção soft, que distribuem o peso, distribuem o peso e atenção em múltiplos tokens, funcionam melhor do que a atenção rígida (definir um peso igual a 1 e os outros a 0), porque uma soma ponderada de vetores ocultos frequentemente fornece um contexto mais rico do que selecionar um único vetor da melhor forma.
Variantes
A atenção cruzada tem várias variantes, que diferenciam-se na forma como os scores de atenção são computados:
- Atenção aditiva (estilo Bahdanau): usa uma rede feed-forward para computar scores de notificação pontuação de alinhamento.
- Atenção multiplicativa (estilo Luong): usa produtos escalares entre vetores de consulta e chave.
- Atenção posicional: incorpora representações posicionais para considerar a ordem dos tokens.
- Atenção posicional fatoréd: reduz a complexidade facturando a atenção entre textos diferentes.
Para redes neurais convolucionais, os mecanismos de atenção podem operar em dimensões espaciais (atenção espacial), dimensões de canais (atenção de canais) ou combinações. Essas variantes recombinam entradas do lado do encoder para redistribuir efeitos a cada saída no lado do target, geralmente usando uma matriz de correlação que usa produtos escalares para redefinição dos pesos.
Otimizações
Flash Attention
O tamanho da matriz de atenção cresce de forma quadrática com o número de tokens de entrada, exigindo memória significológica da GPU para sequências longas. A atenção flash (flash attention), introduzida em 2022, reduz as necessidades de memória e melhora a eficiência sem sacrificar a precisão. Ela particiona o cálculo da atenção em blocos menores que cabem na memória de alta velocidade da GPU, reduzindo a necessidade de armazenar grandes matrizes intermediárias e diminuindo o consumo de memória enquanto melhora o desempenho computacional.
FlexAttention
FlexAttention é um kernel de atenção desenvolvido pela Meta que permite aos usuários modificar os scores de atenção antes da normalização softmax e escolher dinamicamente o algoritmo de atenção mais adequado. Essa flexibilidade possibilita padrões de atenção para fins específicos, como esparsidade ou mascaras, sem reduzir o desempenho.
Aplicações
A atenção cruzada é amplamente usada em processamento de linguagem natural, visão computacional e reconhecimento de fala. A PLN, melhora a compreensão de contexto em tarefas como resposta a perguntas e sumarização. Na visão, a atenção visual ajuda os modelos a se concentrar em regiões relevantes de uma imagem, melhorando a detecção de objetos e a legenda de imagens. No reconhecimento de fala, a atenção cruzada alinha características acústicas à saída de texto.
Mapas de atenção como explicações para Transformers de visão
No contexto da arquitetura de visão originada no Transformer de visão (ViT), visualizar os scores de atenção como mapas de temperatura (saliency maps ou attention maps) tornou-se uma prática comum para inspecionar o processo de decisensão dos modelos ViT2T. Pode-se computar mapas de atenção para qualquer cabeça de atenção em qualquer camada, com camadas mais internas mostrando visualizações mais semanticamente significativas. A propagação de atenção é um algoritmo recursivo que combina os scores de atenção de todas as camadas calculando o produto escalar de sucessivos mapas de atenção.
Porque os visão transformers tipicamente são treinados de forma auto supervisionada, os mapas de atenção geralmente não são sensíveis às classes. Quando uma cabeça de classificação é conectada à estrutura do ViT, mapas de atenção discriminativa de classes (CDAM) combinam os mapas de atenção e os gradientes relativos à classe token. Alguns métodos metodologias de interpretabilidade sensíveis a classe, originalmente desenvolvidos para CNNs, podem ser adaptados para ViTs, fornecendo insights sobre quais regiões da imagem influenciam as previsões.