XYZNOT

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

Publicado em cs.CL arXivPDF

Ler com tradução e IA

Resumo em três linhas

  1. 🎯 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.
  2. 🔧 Introduz o BERT, que pré-treina um codificador Transformer bidirecional multicamadas usando um objetivo de Masked Language Model (Cloze) e Next Sentence Prediction.
  3. 📈 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:

  1. Embeddings de tokens WordPiece (vocabulário de 30.000 tokens).
  2. Embeddings de segmento (embedding aprendido que identifica se um token pertence à sentença ou à sentença ).
  3. 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

  1. Masked LM: Dado o token mascarado , a representação é alimentada em uma camada softmax sobre o vocabulário com perda de entropia cruzada:
  2. 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.

Ler com tradução e IA