Um mecanismo de atenção é um componente de redes neurais que calcula uma combinação ponderada de elementos em sua entrada com base em sua relevância para um determinado contexto, permitindo que um modelo se concentre dinamicamente nas partes mais pertinentes dessa entrada, em vez de tratar cada elemento de forma igual. A atenção é a ideia computacional central por trás da arquitetura transformador e, por extensão, da maioria dos modelos de linguagem de grande porte modernos.
História
A atenção foi introduzida no contexto de modelos de tradução automática Seq2seq por volta de 2014 e 2015, como uma forma de permitir que um decodificador baseado em rede neural recorrente olhasse para todos os estados ocultos do codificador ao produzir cada palavra de saída, em vez de depender de um único vetor de resumo de comprimento fixo de toda a frase de entrada. Isso abordou uma fraqueza específica dos modelos codificador-decodificador anteriores, que tendiam a perder informações de sequências de entrada longas. O artigo de 2017 Atenção é tudo o que você precisa, liderado por Ashish Vaswani e colegas, mostrou que um modelo construído inteiramente com camadas de atenção, sem nenhuma recorrência, poderia superar arquiteturas recorrentes enquanto era muito mais paralelizável para treinar, dando origem ao transformador.
Autoatenção
A inovação-chave usada nos transformadores é a autoatenção, na qual cada elemento de uma sequência presta atenção a todos os outros elementos da mesma sequência, em vez de um decodificador prestar atenção a um codificador separado. Para cada posição, o modelo calcula três vetores, comumente chamados de consulta, chave e valor, derivados do vetor de incorporação dessa posição. A similaridade entre a consulta de uma posição e as chaves de todas as outras posições determina quanto peso o valor dessa outra posição contribui para a saída na posição atual. Isso permite que um modelo que processa uma frase relacione diretamente palavras que estão distantes, como um pronome e o substantivo ao qual ele se refere, sem que a informação precise passar por muitas etapas intermediárias, como ocorreria em uma rede recorrente.
Variantes
Os transformadores normalmente usam atenção de múltiplas cabeças, executando vários cálculos de atenção em paralelo com diferentes projeções aprendidas, permitindo que o modelo capture diferentes tipos de relações, como estrutura sintática e similaridade temática, simultaneamente. A atenção cruzada, na qual uma sequência presta atenção a uma sequência separada, é usada em transformadores codificador-decodificador e em alguns sistemas multimodais, por exemplo, permitindo que um decodificador que gera uma legenda preste atenção às regiões codificadas de uma imagem.
Significância prática
O custo computacional da atenção cresce quadraticamente com o comprimento da sequência de entrada, já que cada posição deve ser comparada com todas as outras, o que tornou o processamento de entradas muito longas caro e motivou tanto variantes de atenção focadas em eficiência quanto arquiteturas alternativas, como os modelos de espaço de estados. Apesar desse custo, a capacidade da atenção de relacionar diretamente elementos distantes de uma entrada, combinada com sua paralelizabilidade em comparação à recorrência, fez dela o mecanismo que desbloqueou a escala na qual os modelos de linguagem de grande porte são treinados, incluindo o crescimento da janela de contexto que determina quanto texto um modelo pode atender em uma única interação.