Essencial

Positional encoding I: sinusoidal e aprendido

Como attention sozinha é permutation-equivariant, Transformers precisam de um sinal explícito que diferencie posição e ordem.

Atualizada em

1

Conceito

Self-attention compara representações por conteúdo. Se uma camada recebe os mesmos vetores em outra ordem, sem nenhum sinal adicional, suas saídas são permutadas da mesma forma. Essa permutation equivariance serve para conjuntos, mas não para linguagem. “Cachorro morde pessoa” e “pessoa morde cachorro” contêm os mesmos tokens com papéis diferentes. O Transformer precisa de informação de posição.

A arquitetura original somava um vetor posicional a cada embedding antes da primeira camada:

xt=etokent+pt.x_t=e_{token_t}+p_t.

Como ambos possuem largura dmodeld_{model}, compartilham o residual stream. Projeções aprendidas usam combinações de conteúdo e posição ao formar queries, keys, values e ativações feed-forward. A soma é barata e preserva o shape, embora não obrigue o modelo a manter conteúdo e posição em coordenadas separadas.

O esquema sinusoidal de 2017 define pares de dimensões com frequências diferentes:

PE(pos,2i)=sin(pos/100002i/dmodel),PE(pos,2i)=\sin\left(pos/10000^{2i/d_{model}}\right), PE(pos,2i+1)=cos(pos/100002i/dmodel).PE(pos,2i+1)=\cos\left(pos/10000^{2i/d_{model}}\right).

Pares de índice baixo mudam rapidamente; pares altos, devagar. O vetor funciona como um banco de ponteiros com períodos distintos. Posições próximas não recebem o mesmo padrão completo, e offsets relativos podem ser expressos por relações lineares entre seno e cosseno. Os valores são fixos, portanto o modelo não gasta parâmetros numa tabela de posições.

Um embedding aprendido de posição absoluta usa uma matriz treinável com uma linha por posição suportada. A posição 37 consulta a linha 37 assim como um token ID consulta um embedding. O modelo adapta os vetores à distribuição de treinamento em vez de aceitar uma geometria predeterminada. BERT e modelos GPT já usaram tabelas absolutas com sucesso.

O tradeoff não é “matemático bom contra aprendido bom”. Uma tabela aprendida tem tamanho máximo e nenhuma linha além dele. Estendê-la exige redimensionamento ou interpolação, e as linhas novas não foram treinadas. A fórmula sinusoidal gera valores para qualquer posição inteira, mas estar definida fora do alcance não garante que o restante da rede funcione bem. Extrapolação é propriedade do sistema treinado completo.

Posições absolutas ligam um evento a um índice, não diretamente a uma distância. Para aprender “olhe três tokens atrás”, a camada deduz a relação entre os sinais absolutos de query e key. Métodos relativos modificam attention segundo o offset. RoPE gira queries e keys; ALiBi adiciona um bias de distância.

Padding e packing complicam índices. Com padding à esquerda, numerar o tensor inteiro muda os position IDs de um conteúdo idêntico. Alguns modelos esperam reiniciar depois do padding. Documentos empacotados podem reiniciar nas fronteiras ou continuar globalmente. Divergir do contrato do treinamento prejudica a saída mesmo com shapes válidos.

Uma visualização útil coloca posição num eixo e dimensão no outro. Encodings sinusoidais mostram faixas de várias frequências; uma tabela aprendida mostra a estrutura descoberta pela otimização. A figura não revela significado sozinha. Importa como projeções posteriores usam as direções.

O modelo mental é quebra de simetria. Attention sem posição trata a sequência como cartões sem assentos. Positional encoding marca os lugares para o roteamento distinguir “antes”, “depois”, “perto” e regiões específicas do contexto.

2

Como explicar para uma criança de cinco anos

Imagine cartões soltos com as falas de uma peça. As palavras identificam o que cada ator diz, mas embaralhar os cartões muda a história. Encoding sinusoidal carimba cada cartão com vários ponteiros de relógio girando em velocidades diferentes; cartões próximos têm carimbos relacionados, e ciclos longos distinguem regiões amplas. Embeddings aprendidos dão a cada assento do roteiro seu próprio rótulo editável.

3

Ensine de volta

Explique por que self-attention precisa de posição e compare encodings sinusoidais com embeddings aprendidos de posição absoluta.

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

Salvo somente neste dispositivo.

Ver uma resposta-modelo

Sem posição, permutar os vetores de tokens permuta as saídas de attention da mesma maneira, então a camada não distingue sequências com os mesmos tokens em ordens diferentes. Encodings sinusoidais atribuem frequências fixas de seno e cosseno e podem ser calculados além das posições treinadas, embora isso não garanta extrapolação. Embeddings absolutos aprendem um vetor por posição suportada, mas dependem de uma tabela finita.

4

Teste seu entendimento

1. Que propriedade de ordem falta a self-attention baseada apenas em conteúdo?
Resposta e explicação

Ela não distingue permutações sem um sinal posicional — Attention sobre um conjunto não ordenado é permutation-equivariant; a posição quebra essa simetria.

2. Qual diferença estrutural existe entre encodings sinusoidais e absolutos aprendidos?
Resposta e explicação

Sinusoidais seguem uma fórmula fixa; aprendidos vêm de uma tabela treinada — O esquema sinusoidal não tem parâmetros de tabela, enquanto embeddings absolutos otimizam um vetor para cada índice.

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. Jacob Devlin, Ming-Wei Chang, Kenton Lee e Kristina Toutanova (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding.