Artigos · arXiv 1810.04805
BERT: Pré-treinamento de Transformers Bidirecionais Profundos para Compreensão de Linguagem
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
Resumo em três linhas
- 🎯 O pré-treinamento padrão de modelos de linguagem é limitado pelo contexto unidirecional (esquerda para a direita), o que é subótimo para tarefas em nível de sentença e prejudicial para tarefas em nível de token, como resposta a perguntas.
- 🔧 Introduz o BERT, que pré-treina um codificador Transformer bidirecional multicamadas usando um objetivo de Masked Language Model (Cloze) e Next Sentence Prediction.
- 📈 Alcançou resultados de estado da arte em 11 tarefas de PLN, incluindo uma pontuação GLUE de 80,5 (+7,7 pontos absolutos) e 86,7% de acurácia no MultiNLI (+4,6% absoluto).
Resumo
Apresentamos um novo modelo de representação de linguagem chamado BERT, que significa Bidirectional Encoder Representations from Transformers. Ao contrário de modelos recentes de representação de linguagem, o BERT foi projetado para pré-treinar representações bidirecionais profundas a partir de texto não rotulado, condicionando conjuntamente o contexto à esquerda e à direita em todas as camadas. Como resultado, o modelo BERT pré-treinado pode ser ajustado com apenas uma camada de saída adicional para criar modelos de estado da arte para uma ampla gama de tarefas, como resposta a perguntas e inferência de linguagem, sem modificações substanciais na arquitetura específica da tarefa. O BERT é conceitualmente simples e empiricamente poderoso. Ele obtém novos resultados de estado da arte em onze tarefas de processamento de linguagem natural, incluindo o avanço da pontuação GLUE para 80,5% (melhoria absoluta de 7,7 pontos percentuais), a acurácia no MultiNLI para 86,7% (melhoria absoluta de 4,6%), o F1 de teste em resposta a perguntas no SQuAD v1.1 para 93,2 (melhoria absoluta de 1,5 ponto) e o F1 de teste no SQuAD v2.0 para 83,1 (melhoria absoluta de 5,1 pontos).
Resumo original (inglês)
We introduce a new language representation model called BERT, which stands for Bidirectional Encoder Representations from Transformers. Unlike recent language representation models, BERT is designed to pre-train deep bidirectional representations from unlabeled text by jointly conditioning on both left and right context in all layers. As a result, the pre-trained BERT model can be fine-tuned with just one additional output layer to create state-of-the-art models for a wide range of tasks, such as question answering and language inference, without substantial task-specific architecture modifications. BERT is conceptually simple and empirically powerful. It obtains new state-of-the-art results on eleven natural language processing tasks, including pushing the GLUE score to 80.5% (7.7% point absolute improvement), MultiNLI accuracy to 86.7% (4.6% absolute improvement), SQuAD v1.1 question answering Test F1 to 93.2 (1.5 point absolute improvement) and SQuAD v2.0 Test F1 to 83.1 (5.1 point absolute improvement).
Guia de leitura
Problema e motivação
Modelos anteriores de representação de linguagem baseavam-se em abordagens baseadas em atributos (como o ELMo) ou abordagens de fine-tuning (como o OpenAI GPT). Embora eficazes, ambos os paradigmas eram restritos por objetivos de modelagem de linguagem unidirecionais: modelos autorregressivos padrão processam o texto estritamente da esquerda para a direita (ou da direita para a esquerda). Em modelos unidirecionais, os tokens só podem prestar atenção aos tokens anteriores nas camadas de autoatenção para evitar que as palavras se "autoenxerguem" trivialmente através de contextos multicamadas. O ELMo tentou a bidirecionalidade concatenando superficialmente LSTMs treinadas separadamente da esquerda para a direita e da direita para a esquerda, mas isso não captura o condicionamento conjunto e profundo no contexto bidirecional em todas as camadas. Essa unidirecionalidade limita as representações em nível de sentença e é especialmente prejudicial para tarefas subsequentes em nível de token, como resposta a perguntas, onde compreender simultaneamente o contexto à esquerda e à direita é essencial.
Principais ideias
- Arquitetura Transformer Bidirecional Profunda: O BERT utiliza um codificador Transformer bidirecional multicamadas, permitindo que as camadas de autoatenção realizem o condicionamento conjunto nos contextos à esquerda e à direita em todas as camadas.
- Masked Language Model (MLM): Inspirado pela tarefa de Cloze, o BERT mascara aleatoriamente 15% dos tokens de entrada e treina o modelo para prever os tokens mascarados usando seu contexto, resolvendo o problema de trivialidade do token "se autoenxergar".
- Mitigação do Descompasso entre Pré-treinamento e Fine-tuning: Como os tokens
[MASK]não aparecem durante o fine-tuning, os 15% de tokens selecionados são substituídos por[MASK]em 80% das vezes, por um token aleatório em 10% das vezes e mantidos inalterados nos 10% restantes. - Next Sentence Prediction (NSP): Para capturar as relações entre pares de sentenças críticas para Inferência em Linguagem Natural (NLI) e Resposta a Perguntas (QA), o BERT é pré-treinado em uma tarefa binarizada que prevê se a sentença sucede naturalmente a sentença () ou se é uma sentença aleatória do corpus ().
- Arquitetura Unificada para Tarefas Subsequentes: A mesma arquitetura pré-treinada é reutilizada para tarefas downstream com adição mínima de parâmetros (por exemplo, uma cabeça de classificação linear simples ou ponteiros de início/fim de trecho).
Método
Configuração do Modelo
O BERT é avaliado principalmente em dois tamanhos:
- : camadas, tamanho oculto , cabeças de atenção, parâmetros totais = .
- : camadas, tamanho oculto , cabeças de atenção, parâmetros totais = . Os tamanhos dos filtros feed-forward são de .
Representações de Entrada e Saída
As entradas podem representar uma única sequência de texto ou um par de sentenças empacotadas juntas. Os embeddings são construídos pela soma de:
- Embeddings de tokens WordPiece (vocabulário de 30.000 tokens).
- Embeddings de segmento (embedding aprendido que identifica se um token pertence à sentença ou à sentença ).
- Embeddings posicionais aprendidos.
Toda sequência começa com [CLS]. Seu vetor oculto final representa o agregado da sequência. Pares de sentenças são separados por [SEP]. As representações ocultas finais dos tokens são denotadas por .
Objetivos de Pré-treinamento
- Masked LM: Dado o token mascarado , a representação é alimentada em uma camada softmax sobre o vocabulário com perda de entropia cruzada:
- Next Sentence Prediction: O vetor agregado é alimentado em uma classificação binária: A perda geral de pré-treinamento é a soma da verossimilhança média do masked LM e da verossimilhança média do next sentence prediction.
Adaptações para Fine-tuning
- Classificação (GLUE): Adicionando uma matriz de projeção , a perda é calculada como .
- Extração de Trecho (SQuAD v1.1): Aprendendo um vetor inicial e um vetor final . A probabilidade de o token ser o início do trecho da resposta é: A pontuação para o trecho é , maximizada para .
- Perguntas sem Resposta (SQuAD v2.0): Estendido permitindo que o token
[CLS]sirva como o trecho de resposta nula, pontuando , e prevendo uma resposta não nula apenas quando .
Resultados
O BERT foi avaliado em 11 tarefas de PLN:
- Tabela de Classificação do GLUE: O alcançou uma pontuação média no GLUE de 80,5% (uma melhoria absoluta de 7,7% em relação ao estado da arte anterior) e 86,7% de acurácia no MNLI (um ganho absoluto de 4,6%).
- SQuAD v1.1: O obteve 84,1 de EM e 90,9 de F1 no conjunto Dev como modelo único; um ensemble com pré-treinamento no TriviaQA alcançou 87,4 de EM e 93,2 de F1 no conjunto de Teste, superando o desempenho humano (82,3 de EM / 91,2 de F1).
- SQuAD v2.0: O alcançou 80,0 de EM e 83,1 de F1 no conjunto de Teste, superando o sistema líder anterior em +5,1 pontos de F1.
- SWAG: O obteve acurácia de 86,3% no Teste, superando o OpenAI GPT (78,0%) e a linha de base de especialistas humanos (85,0%).
- Achados da Ablação: A remoção do NSP degradou o desempenho no MNLI (-0,5%), QNLI (-3,5%) e F1 do SQuAD (-0,6%). Substituir o MLM por um LM padrão da esquerda para a direita (LTR) causou grandes quedas no SQuAD (-10,7 de F1) e no MRPC (-9,2% de acurácia).
Limitações e questões em aberto
- Discrepância entre Pré-treinamento e Fine-tuning: O token artificial
[MASK]nunca aparece durante o fine-tuning, exigindo regras heurísticas de substituição (80/10/10) para mitigar o descompasso. - Eficiência do Pré-treinamento: Como o BERT prevê apenas 15% dos tokens por lote, em vez de 100% dos tokens como nos modelos autorregressivos padrão, ele requer mais passos de pré-treinamento (1.000.000 de passos com 128.000 tokens/lote) para convergir.
- Gargalo Quadrático da Atenção: A atenção padrão do Transformer escala quadraticamente () com o comprimento da sequência, tornando sequências longas computacionalmente caras e exigindo uma estratégia de pré-treinamento em duas fases (90% dos passos com comprimento de sequência 128, 10% dos passos com 512).
- Inaplicabilidade à Geração de Texto: Como um codificador bidirecional, o BERT é estruturado diretamente para representação e tarefas downstream discriminativas, não podendo realizar diretamente a geração autorregressiva da esquerda para a direita sem modificações arquiteturais.
Termos-chave
- Masked Language Model (MLM)
- Um objetivo de pré-treinamento inspirado na tarefa de Cloze, onde tokens de entrada aleatórios são substituídos por uma máscara e o modelo é treinado para reconstruir o token original a partir do contexto bidirecional profundo.
- Next Sentence Prediction (NSP)
- Uma tarefa binarizada de pré-treinamento em que o modelo prevê se um determinado segundo segmento de sentença sucede logicamente o primeiro segmento ou se foi amostrado aleatoriamente do corpus.
- [CLS]
- Um token especial de classificação colocado no início de cada sequência cujo estado oculto final é usado como a representação agregada da sequência para tarefas de classificação.
- [SEP]
- Um token especial usado para separar segmentos de sentenças distintos ou não consecutivos dentro de uma única sequência de entrada empacotada.
- WordPiece
- Um algoritmo de tokenização de subpalavras utilizado pelo BERT com um vocabulário de 30.000 tokens para lidar com palavras fora do vocabulário e dividir palavras em unidades de subpalavras.
- Segment Embeddings
- Embeddings aprendidos adicionados aos embeddings de tokens de entrada para distinguir se um token pertence ao trecho da sentença A ou ao trecho da sentença B em pares empacotados.
- Fine-tuning
- A estratégia de treinamento downstream em que todos os parâmetros pré-treinados do BERT são atualizados de ponta a ponta junto a camadas de saída mínimas específicas da tarefa usando dados rotulados.
- Feature-based approach
- Uma estratégia alternativa em que representações contextuais fixas são extraídas das camadas do BERT sem atualizar seus parâmetros, sendo então fornecidas a arquiteturas separadas específicas da tarefa.
Perguntas
Por que o BERT substitui tokens mascarados por tokens aleatórios ou os mantém inalterados em vez de sempre usar [MASK]?
Como o token [MASK] nunca aparece durante o fine-tuning, substituir todos os tokens-alvo por [MASK] criaria uma discrepância entre o pré-treinamento e o fine-tuning. O BERT mitiga isso substituindo os tokens escolhidos por [MASK] em 80% das vezes, por um token aleatório em 10% das vezes e mantendo o token original inalterado em 10% das vezes, forçando o modelo a manter uma representação distribuída de todos os tokens.
Qual é a diferença entre o BERT e o OpenAI GPT?
Embora ambos sejam modelos baseados em Transformer voltados para fine-tuning, o OpenAI GPT utiliza um decodificador Transformer da esquerda para a direita, no qual a atenção é restrita para que cada token só possa prestar atenção aos tokens anteriores. O BERT utiliza um codificador Transformer bidirecional no qual a atenção abrange tanto o contexto à esquerda quanto à direita em todas as camadas, possibilitado pelo seu objetivo de pré-treinamento com masked language model.
O BERT pode ser usado como um extrator de atributos em vez de ser ajustado de ponta a ponta?
Sim. Na tarefa de Reconhecimento de Entidades Nomeadas CoNLL-2003, extrair e concatenar as ativações de tokens das quatro camadas ocultas superiores do BERT e alimentá-las em uma BiLSTM de 2 camadas alcançou 96,1 de F1 no conjunto Dev, apenas 0,3 ponto de F1 atrás do fine-tuning completo de todo o modelo (96,4 de F1).
Por que o BERT usou um cronograma de comprimento de sequência de pré-treinamento em duas fases?
A complexidade computacional da autoatenção é quadrática em relação ao comprimento da sequência. Para reduzir o tempo de computação, o BERT foi pré-treinado com um comprimento de sequência de 128 durante os primeiros 900.000 passos (90% do treinamento) e depois treinado com um comprimento de sequência de 512 para os 100.000 passos restantes para aprender os embeddings posicionais.
A explicação desta página foi escrita por IA a partir do artigo e pode conter erros. Consulte o artigo para os detalhes.