Essencial
Self-attention desde os primeiros princípios: Q, K e V
Self-attention permite que cada token construa uma representação sensível ao contexto, escolhendo o que ler nas outras posições.
Atualizada em
1
Conceito
O embedding de um token começa como uma consulta sem contexto. O token equivalente a “banco” recebe o mesmo vetor inicial em “banco da praça” e “conta no banco”. Um modelo de linguagem útil precisa de uma representação que mude depois de ler a sequência ao redor. Self-attention é a operação do Transformer que realiza essa mistura contextual: cada posição decide quanta informação deve buscar nas outras posições.
Comece com uma sequência representada pela matriz . Cada linha corresponde a uma posição de token e contém as features atuais dessa posição. A camada de attention aprende três matrizes de projeção, , e . A multiplicação de por elas cria três matrizes:
Os nomes descrevem funções, não três sequências de entrada diferentes. Queries expressam o que cada posição receptora procura. Keys descrevem como cada posição disponível deve ser comparada. Values carregam a informação que pode ser transferida. Toda posição cria os três a partir da sua representação atual.
Para uma posição receptora, pegue sua query e calcule o produto escalar com cada key. Um produto maior indica vetores apontando em direções mais compatíveis. Reunir todos os pares de uma só vez produz a matriz de pontuações . A linha de uma query contém sua compatibilidade com cada key. O Transformer divide essas pontuações pela raiz quadrada da dimensão da key e normaliza cada linha com softmax:
Os valores de softmax são pesos de attention. Eles não são negativos, e cada linha soma um. Multiplicar os pesos por produz, para cada posição de query, uma soma ponderada de vetores de value. Esta separação é fundamental: keys determinam onde ler, enquanto values determinam o que é lido. Se keys e values tivessem de ser idênticos, endereço e conteúdo ficariam presos numa única representação.
Considere “A cozinheira colocou sal porque a sopa estava insossa”. A query em “insossa” pode combinar mais com as keys de “sopa” e “estava” do que com a key de “cozinheira”. Sua nova representação mistura informação dos values dessas posições. Em outra frase, a mesma palavra parte do mesmo embedding, mas recebe contexto diferente. Self-attention transforma a identidade estática do token em um estado contextual.
A palavra self indica que queries, keys e values vêm da mesma sequência. Em cross-attention, as queries pertencem a uma sequência, enquanto keys e values vêm de outra, como ocorre quando um decoder lê estados do encoder. O mesmo mecanismo de endereçamento atende aos dois casos.
Modelos de linguagem decoder-only acrescentam uma máscara causal. Ao prever o token na posição , essa posição não pode ler tokens futuros. Antes de softmax, as pontuações das posições proibidas recebem um valor muito negativo, fazendo seu peso normalizado ficar praticamente zero. Sem a máscara no treinamento, o modelo conseguiria espiar a resposta que deveria prever.
Um único cálculo de attention não precisa capturar todas as relações. Transformers usam múltiplas heads: projeções aprendidas separadas executam attention em paralelo, e suas saídas são concatenadas e projetadas novamente. Heads distintas podem se especializar em padrões úteis diferentes, embora uma interpretação humana limpa não seja garantida. O bloco completo também contém conexões residuais, normalização e uma rede feed-forward. Attention é uma operação de roteamento dentro desse sistema maior, não o Transformer inteiro.
Self-attention tem duas propriedades computacionais marcantes. Primeiro, todos os pares podem ser calculados por operações matriciais, permitindo processar posições em paralelo durante o treinamento, em vez de avançar por um estado recorrente token a token. Segundo, a matriz possui uma entrada para cada par de posições, causando crescimento quadrático no comprimento da sequência. Kernels eficientes como FlashAttention reduzem tráfego de memória sem alterar o resultado matemático exato; variantes esparsas e lineares mudam o cálculo de modo mais profundo.
Pesos de attention são interessantes para inspeção, mas não explicam sozinhos o raciocínio do modelo. Um peso alto mostra que uma head transferiu informação de value por uma aresta em determinada camada. O residual stream, outras heads, blocos feed-forward e camadas posteriores podem ampliar, transformar ou cancelar essa contribuição. Dizer “o modelo prestou attention neste token” é evidência de roteamento, não uma prova isolada de importância causal.
O modelo mental durável é um sistema de consulta diferenciável. Cada posição escreve uma query, expõe uma key e oferece um value. A semelhança entre queries e keys produz endereços; softmax converte endereços em pesos de mistura; os values ponderados viram contexto. Como as projeções são aprendidas de ponta a ponta, o modelo descobre quais perguntas, rótulos e conteúdos ajudam a prever linguagem.
2
Como explicar para uma criança de cinco anos
Imagine uma redação de jornal movimentada. Cada repórter escreve uma pergunta num cartão: essa é a query. Cada fonte usa um crachá que descreve os assuntos em que pode ajudar: essa é a key. A repórter compara a pergunta com todos os crachás e distribui sua attention. Aquilo que a fonte realmente informa é o value. Um crachá pode combinar muito com a pergunta e, ainda assim, o conteúdo entregue ser outra representação. Self-attention repete essa pequena redação para cada token, em paralelo.
3
Ensine de volta
Usando uma frase concreta, explique os papéis diferentes de queries, keys e values em self-attention e por que a saída depende do contexto.
Mínimo: 80 caracteres e 15 palavras. Seu texto fica somente neste navegador.
Salvo somente neste dispositivo.
Ver uma resposta-modelo
Em “O animal não atravessou a rua porque estava cansado”, a posição relevante forma uma query que representa o que precisa descobrir. Cada posição oferece uma key para comparação e um value com a informação que pode ser recuperada. A query pode combinar mais com a key de “animal” do que com a de “rua”. Softmax transforma as pontuações em pesos, e a saída é uma soma ponderada dos values. Como os pesos dependem de todos os tokens da frase, a representação final muda com o contexto.
4
Teste seu entendimento
Conclua o teach-back e acerte o quiz para finalizar a aula.
Fontes
- Ashish Vaswani et al. (2017). Attention Is All You Need.
- Dzmitry Bahdanau, Kyunghyun Cho e Yoshua Bengio (2015). Neural Machine Translation by Jointly Learning to Align and Translate.