Attention mechanism, Multi Head Attention | Text Generation | I.A
- Attention mechanism, Multi Head Attention | Text Generation | I.A
O que é Attention (atenção), em ideia simples
Atenção é o mecanismo que permite ao modelo atribuir diferentes níveis de importância às palavras de uma sequência ao processar um determinado token.
Em vez de tratar todas as palavras igualmente, o modelo foca mais nas partes do texto que são relevantes para o contexto atual.
Exemplo:
“O gato que estava com fome comeu o peixe”
Para compreender a palavra “comeu”, o modelo precisa considerar principalmente “gato” (quem executa a ação) e “peixe” (o objeto da ação), enquanto palavras como “que” ou “estava” têm menor relevância nesse momento.
Scaled Dot-Product Attention (atenção básica)
Este é o núcleo matemático do mecanismo de atenção.
O que ela faz:
- Compara cada palavra com todas as outras
- Mede o grau de relevância entre elas
- Converte essas medidas em pesos normalizados
- Usa esses pesos para construir uma representação contextualizada
Em termos simples, ela responde à pergunta:
“Para esta palavra, quais outras palavras da frase são mais importantes agora?”
O termo scaled (escalado) refere-se a um ajuste numérico aplicado para:
- evitar valores excessivamente grandes
- tornar o treinamento mais estável
Essa forma de atenção considera um único ponto de vista por vez.
Multi-Head Attention (atenção com múltiplas visões)
O Multi-Head Attention estende a atenção básica ao permitir que o modelo observe a sequência sob diferentes perspectivas simultaneamente.
Em vez de realizar uma única atenção, o modelo executa várias atenções em paralelo, chamadas de heads (cabeças).
Cada head funciona como um especialista que aprende a focar em um tipo diferente de relação no texto.
Analogia intuitiva
Imagine analisar uma frase com várias pessoas ao mesmo tempo:
- Uma observa quem executa as ações
- Outra analisa quando ou em que contexto elas ocorrem
- Outra foca na estrutura gramatical
- Outra observa o significado geral
O Multi-Head Attention funciona de forma semelhante: cada head aprende a capturar um aspecto distinto da linguagem.
O que cada head faz
Cada head:
- executa sua própria Scaled Dot-Product Attention
- aprende padrões específicos de relacionamento entre palavras
- opera em paralelo às demais
Por exemplo:
- Head 1: relações sujeito–verbo
- Head 2: contexto semântico
- Head 3: dependências de longo alcance
- Head 4: estrutura sintática da frase
Esses focos não são definidos manualmente; eles são aprendidos durante o treinamento do modelo.
Combinação final das heads
Após todas as heads processarem a sequência:
- As saídas individuais são concatenadas
- O modelo produz uma única representação integrada
- Essa representação é enviada para a próxima camada do Transformer
Por isso, a saída final é descrita como uma representação coesa, que combina múltiplos pontos de vista sobre o mesmo texto.
Por que isso é tão poderoso?
O Multi-Head Attention permite que o modelo:
- compreenda frases longas com mais eficiência
- capture relações entre palavras distantes
- processe informações de forma paralela
- aprenda padrões complexos de linguagem
Essas características explicam por que os Transformers superaram arquiteturas anteriores como RNNs e LSTMs.
Resumo direto
- Attention: destaca o que é relevante em um contexto
- Scaled Dot-Product Attention: calcula a relevância entre palavras
- Multi-Head Attention: executa várias atenções em paralelo
- Cada head aprende um padrão diferente
- A combinação final gera uma representação mais rica
Attention na prática — exemplo simples
Frase de exemplo:
"O gato come peixe"
Após a tokenização:
["O", "gato", "come", "peixe"]
Cada palavra é convertida em um vetor numérico (embedding). Para simplificar, suponha vetores de duas dimensões:
O → [1, 0]
gato → [0, 2]
come → [1, 1]
peixe → [0, 3]
Scaled Dot-Product Attention em ação
Para a palavra “come”, o modelo avalia a relevância das demais:
come × O → baixa
come × gato → média
come × come → alta
come × peixe → alta
Valores ilustrativos:
[0.1, 0.6, 1.0, 0.9]
Após normalização:
[0.03, 0.20, 0.37, 0.40]
Interpretação:
- “peixe” e “come” têm maior peso
- “gato” é relevante
- “O” contribui pouco
Esses pesos são usados para gerar a representação final da palavra “come”.
Multi-Head Attention no exemplo
Em vez de repetir esse processo uma única vez, o modelo o executa várias vezes em paralelo.
Por exemplo:
- Head 1 foca em quem realiza a ação → “gato”
- Head 2 foca no objeto da ação → “peixe”
- Head 3 foca na estrutura e no contexto geral
Cada head produz uma representação diferente, que é posteriormente combinada.
Conexão com código
Quando você utiliza:
nn.MultiheadAttention(...)
O que acontece internamente é:
- múltiplas Scaled Dot-Product Attentions em paralelo
- cada uma com pesos distintos
- seguida de uma etapa de combinação final
Resumo final
- Attention define onde focar
- Scaled Dot-Product mede relevância
- Multi-Head permite múltiplos focos simultâneos
- Cada head captura um tipo diferente de informação
- O resultado é uma compreensão mais profunda do texto
--