Essencial

Multi-head attention

Múltiplas heads criam subespaços paralelos de roteamento aprendido e combinam seus resultados por uma projeção de saída.

Atualizada em

1

Conceito

Uma única operação de attention cria uma distribuição de pontuações para cada query e retorna uma mistura ponderada de values. Ela é expressiva, mas obriga um conjunto de projeções a servir a todas as relações úteis. Multi-head attention cria várias operações em paralelo. Cada head recebe seu próprio subespaço aprendido de query, key e value, permitindo vários padrões de roteamento antes da combinação.

Se a largura do modelo é dmodeld_{model} e o número de heads é hh, um projeto comum define dhead=dmodel/hd_{head}=d_{model}/h. Implementações costumam usar três projeções lineares grandes e depois mudar o shape, em vez de criar módulos separados:

Q,K,VRB×T×dmodelRB×h×T×dhead.Q,K,V\in\mathbb{R}^{B\times T\times d_{model}} \rightarrow\mathbb{R}^{B\times h\times T\times d_{head}}.

BB é batch e TT é comprimento. Attention roda de forma independente no eixo das heads:

Hj=softmax(QjKjdhead+M)Vj.H_j=\operatorname{softmax}\left(\frac{Q_jK_j^\top}{\sqrt{d_{head}}}+M\right)V_j.

A máscara MM impõe causalidade ou padding. As saídas são transpostas e concatenadas de volta para B×T×dmodelB\times T\times d_{model}, depois multiplicadas por WOW_O. A projeção final permite misturar features entregues por heads distintas antes de somar o resultado ao residual stream.

Por que dividir a largura? Uma query talvez precise de informação sobre pontuação próxima, um substantivo correferente e o início de uma citação. Heads separadas formam espaços de similaridade diferentes; “relevante” não precisa significar a mesma coisa em todos. Uma pode privilegiar posição relativa, outra conteúdo. Camadas posteriores compõem essas rotas.

Isso é uma capacidade, não uma promessa de interpretabilidade limpa. Pesquisas mostraram que muitas heads de certos modelos e tarefas podem ser removidas com pouco dano imediato, enquanto um subconjunto menor é importante. Redundância pode ajudar otimização ou robustez, e um cálculo significativo pode estar distribuído por heads e camadas. Batizar uma head de “head de sintaxe” com poucos exemplos é uma hipótese a testar causalmente.

Se a largura total permanece fixa e hdhead=dmodelh d_{head}=d_{model}, as grandes projeções de QQ, KK, VV e saída têm aproximadamente a mesma contagem de parâmetros sob diferentes números de heads. Mais heads não significam automaticamente parâmetros proporcionalmente maiores; mudam a partição da largura. Ainda assim, alteram eficiência de kernels, armazenamento de matrizes e gargalos de representação.

Heads muito estreitas podem perder capacidade por rota. Heads muito largas reduzem o número de padrões independentes. Arquiteturas modernas às vezes usam quantidades diferentes de query heads e key/value heads para acelerar inference; MQA e GQA preservam várias queries enquanto compartilham keys e values no cache.

Na implementação, a ordem dos eixos é uma fonte frequente de bugs. A multiplicação deve parear cada query com keys dentro do mesmo item e head. Softmax roda sobre o eixo das posições de key. Depois da mistura dos values, o código restaura a ordem dos tokens antes da concatenação. Shapes não são burocracia em torno do algoritmo; eles expressam o algoritmo.

O modelo mental durável é um banco de canais aprendidos de comunicação. Cada head decide onde ler em seu próprio sistema de coordenadas, produz uma mensagem contextual e a entrega a um misturador comum de saída.

2

Como explicar para uma criança de cinco anos

Uma editora de cinema revisa a mesma cena em vários monitores sincronizados. Um acompanha diálogo, outro continuidade, outro iluminação e outro movimento. Cada monitor só pode voltar aos frames permitidos e produz suas próprias anotações. A editora-chefe concatena as notas e decide o que entra no corte. Vários monitores oferecem subespaços úteis, mas comprar 16 não garante 16 insights distintos.

3

Ensine de volta

Descreva as projeções e a mudança de shape em multi-head attention e explique por que heads são oportunidades, não papéis humanos garantidos.

Mínimo: 80 caracteres e 15 palavras. Seu texto fica somente neste navegador.

Salvo somente neste dispositivo.

Ver uma resposta-modelo

A camada projeta o residual stream em queries, keys e values, divide a dimensão de features em h heads de largura d_head, executa scaled attention por head, concatena as saídas e aplica uma projeção de saída. Projeções separadas deixam heads aprenderem roteamentos diferentes, mas a otimização pode torná-las redundantes ou distribuídas; uma head não corresponde automaticamente a um conceito linguístico limpo.

4

Teste seu entendimento

1. O que ocorre após calcular as saídas das heads?
Resposta e explicação

Elas são concatenadas e passam por uma projeção de saída — A concatenação recupera a largura total, e a matriz de saída mistura informação entre heads.

2. Usar oito heads garante oito funções linguísticas distintas?
Resposta e explicação

Não; heads podem ser redundantes ou representar features distribuídas — A arquitetura cria rotas parametrizadas separadas, mas não impõe uma interpretação de um conceito por head.

Conclua o teach-back e acerte o quiz para finalizar a aula.

Fontes

  1. Ashish Vaswani et al. (2017). Attention Is All You Need.
  2. Paul Michel, Omer Levy e Graham Neubig (2019). Are Sixteen Heads Really Better than One?.