XYZNOT

Artículos · arXiv 1810.04805

BERT: Pre-entrenamiento de Transformers bidireccionales profundos para la comprensión del lenguaje

BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

Publicado cs.CL arXivPDF

Leer con traducción e IA

Resumen en tres líneas

  1. 🎯 El pre-entrenamiento estándar de modelos de lenguaje está restringido por el contexto unidireccional (de izquierda a derecha), lo cual es subóptimo para tareas a nivel de oración y perjudicial para tareas a nivel de token como la respuesta a preguntas.
  2. 🔧 Introduce BERT, que pre-entrena un codificador Transformer bidireccional multicapa utilizando un objetivo de Masked Language Model (Cloze) y Next Sentence Prediction.
  3. 📈 Logró resultados de estado del arte en 11 tareas de PLN, incluida una puntuación GLUE de 80.5 (+7.7 puntos absolutos) y una precisión del 86.7% en MultiNLI (+4.6% absoluto).

Resumen

Presentamos un nuevo modelo de representación del lenguaje llamado BERT, que significa Bidirectional Encoder Representations from Transformers. A diferencia de los modelos recientes de representación del lenguaje, BERT está diseñado para pre-entrenar representaciones bidireccionales profundas a partir de texto no etiquetado, condicionándose de manera conjunta en el contexto tanto a la izquierda como a la derecha en todas las capas. En consecuencia, el modelo BERT pre-entrenado puede ajustarse finamente con solo una capa de salida adicional para crear modelos de vanguardia en una amplia gama de tareas, como respuestas a preguntas e inferencia de lenguaje, sin modificaciones arquitectónicas sustanciales y específicas para cada tarea. BERT es conceptualmente simple y empíricamente poderoso. Obtiene nuevos resultados de estado del arte en once tareas de procesamiento del lenguaje natural, incluyendo elevar la puntuación GLUE al 80.5% (una mejora absoluta de 7.7 puntos porcentuales), la precisión en MultiNLI al 86.7% (mejora absoluta del 4.6%), el F1 de prueba en respuestas a preguntas de SQuAD v1.1 a 93.2 (mejora absoluta de 1.5 puntos) y el F1 de prueba en SQuAD v2.0 a 83.1 (mejora absoluta de 5.1 puntos).

Resumen 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).

Guía de lectura

Problema y motivación

Los modelos anteriores de representación del lenguaje se basaban en enfoques basados en características (como ELMo) o enfoques de ajuste fino (como OpenAI GPT). Aunque efectivos, ambos paradigmas estaban limitados por objetivos de modelado del lenguaje unidireccionales: los modelos autorregresivos estándar procesan el texto estrictamente de izquierda a derecha (o de derecha a izquierda). En los modelos unidireccionales, los tokens solo pueden atender a los tokens anteriores en las capas de autoatención para evitar que las palabras se "vean a sí mismas" de manera trivial en contextos multicapa. ELMo intentó la bidireccionalidad concatenando de forma superficial LSTMs entrenadas por separado de izquierda a derecha y de derecha a izquierda, pero esto no logra capturar un condicionamiento conjunto y profundo sobre el contexto bidireccional en cada capa. Esta unidireccionalidad limita las representaciones a nivel de oración y es especialmente perjudicial para tareas posteriores a nivel de token, como la respuesta a preguntas, donde comprender simultáneamente el contexto tanto a la izquierda como a la derecha es esencial.

Ideas clave

  • Arquitectura Transformer bidireccional profunda: BERT utiliza un codificador Transformer bidireccional multicapa, lo que permite que las capas de autoatención se condicionen conjuntamente en el contexto tanto a la izquierda como a la derecha en todas las capas.
  • Masked Language Model (MLM): Inspirado en la tarea Cloze, BERT enmascara aleatoriamente el 15% de los tokens de entrada y entrena al modelo para predecir los tokens enmascarados utilizando su contexto, resolviendo el problema trivial de "verse a sí mismo".
  • Mitigación del desajuste entre pre-entrenamiento y ajuste fino: Dado que los tokens [MASK] no aparecen durante el ajuste fino, el 15% de los tokens seleccionados se reemplaza con [MASK] el 80% de las veces, con un token aleatorio el 10% de las veces, y se mantiene sin cambios el 10% de las veces.
  • Next Sentence Prediction (NSP): Para capturar las relaciones entre pares de oraciones fundamentales para la Inferencia de Lenguaje Natural (NLI) y la Respuesta a Preguntas (QA), BERT se pre-entrena en una tarea binarizada que predice si la oración sigue de manera natural a la oración () o si es una oración aleatoria del corpus ().
  • Arquitectura unificada para tareas posteriores: Se reutiliza exactamente la misma arquitectura pre-entrenada para tareas posteriores con una cantidad mínima de parámetros adicionales (por ejemplo, una simple cabeza de clasificación lineal o punteros de intervalo de inicio/fin).

Método

Configuración del modelo

BERT se evalúa principalmente en dos tamaños:

  • : capas, tamaño oculto , cabezas de atención, parámetros totales = .
  • : capas, tamaño oculto , cabezas de atención, parámetros totales = . Los tamaños de los filtros feed-forward son de .

Representaciones de entrada y salida

Las entradas pueden representar una única secuencia de texto o un par de oraciones empaquetadas juntas. Los embeddings se construyen sumando:

  1. Embeddings de tokens WordPiece (vocabulario de 30,000 tokens).
  2. Embeddings de segmento (embedding aprendido que identifica si un token pertenece a la oración o a la oración ).
  3. Embeddings posicionales aprendidos.

Cada secuencia comienza con [CLS]. Su vector oculto final representa el agregado de la secuencia. Los pares de oraciones se separan mediante [SEP]. Las representaciones ocultas finales de los tokens se denotan como .

Objetivos de pre-entrenamiento

  1. Masked LM: Dado un token enmascarado , la representación se pasa a una función softmax sobre el vocabulario con pérdida de entropía cruzada:
  2. Next Sentence Prediction: El vector agregado se pasa a una clasificación binaria: La pérdida general de pre-entrenamiento es la suma de la verosimilitud media del masked LM y la verosimilitud media de la predicción de la siguiente oración.

Adaptaciones para el ajuste fino

  • Clasificación (GLUE): Añadiendo una matriz de proyección , la pérdida se calcula como .
  • Extracción de intervalos (SQuAD v1.1): Aprendiendo un vector de inicio y un vector de fin . La probabilidad de que el token sea el inicio del intervalo de respuesta es: La puntuación para el intervalo es , maximizada sobre .
  • Preguntas sin respuesta (SQuAD v2.0): Se extiende permitiendo que el token [CLS] sirva como el intervalo de respuesta nula, puntuando , y prediciendo una respuesta no nula solo cuando .

Resultados

BERT fue evaluado en 11 tareas de PLN:

  • Tabla de clasificación de GLUE: logró una puntuación media en GLUE de 80.5% (una mejora absoluta del 7.7% sobre el estado del arte anterior) y una precisión de 86.7% en MNLI (una ganancia absoluta del 4.6%).
  • SQuAD v1.1: alcanzó 84.1 de EM y 90.9 de F1 en el conjunto de desarrollo como modelo individual; un ensemble con pre-entrenamiento en TriviaQA alcanzó 87.4 de EM y 93.2 de F1 en el conjunto de prueba, superando el rendimiento humano (82.3 EM / 91.2 F1).
  • SQuAD v2.0: alcanzó 80.0 de EM y 83.1 de F1 en el conjunto de prueba, superando al mejor sistema previo por +5.1 F1.
  • SWAG: obtuvo una precisión del 86.3% en la prueba, superando a OpenAI GPT (78.0%) y a la línea base de expertos humanos (85.0%).
  • Hallazgos de ablación: Eliminar NSP degradó el rendimiento en MNLI (-0.5%), QNLI (-3.5%) y en el F1 de SQuAD (-0.6%). Reemplazar MLM por un LM estándar de izquierda a derecha (LTR) provocó grandes caídas en SQuAD (-10.7 F1) y MRPC (-9.2% de precisión).

Limitaciones y preguntas abiertas

  • Discrepancia entre pre-entrenamiento y ajuste fino: El token artificial [MASK] nunca aparece durante el ajuste fino, lo que requiere reglas heurísticas de sustitución (80/10/10) para mitigar esta diferencia.
  • Eficiencia del pre-entrenamiento: Debido a que BERT solo predice el 15% de los tokens por lote en lugar del 100% como en los modelos autorregresivos estándar, requiere más pasos de pre-entrenamiento (1,000,000 de pasos con 128,000 tokens/lote) para converger.
  • Cuello de botella cuadrático de la atención: La atención estándar de los Transformers escala cuadráticamente () con la longitud de la secuencia, lo que hace costosas las secuencias largas y requiere una estrategia de pre-entrenamiento en dos fases (90% de los pasos con una longitud de secuencia de 128, y 10% de los pasos con 512).
  • Inaplicabilidad para la generación de texto: Al ser un codificador bidireccional, BERT está estructurado directamente para la representación y tareas discriminativas posteriores, y no puede realizar directamente una generación autorregresiva de izquierda a derecha sin modificaciones arquitectónicas.

Términos clave

Masked Language Model (MLM)
Objetivo de pre-entrenamiento inspirado en la tarea Cloze donde tokens de entrada aleatorios se reemplazan por una máscara y el modelo se entrena para reconstruir el token original a partir del contexto bidireccional profundo.
Next Sentence Prediction (NSP)
Tarea de pre-entrenamiento binarizada donde el modelo predice si un segundo segmento de oración dado sigue de forma lógica al primer segmento o si fue muestreado aleatoriamente del corpus.
[CLS]
Token de clasificación especial colocado al comienzo de cada secuencia cuyo estado oculto final se utiliza como la representación agregada de la secuencia para tareas de clasificación.
[SEP]
Token especial utilizado para separar segmentos de oraciones no consecutivos o distintos dentro de una misma secuencia de entrada empaquetada.
WordPiece
Algoritmo de tokenización por subpalabras utilizado por BERT con un vocabulario de 30,000 tokens para manejar palabras fuera de vocabulario y dividir palabras en unidades de subpalabras.
Segment Embeddings
Embeddings aprendidos que se suman a los embeddings de los tokens de entrada para distinguir si un token pertenece al intervalo de la oración A o al de la oración B en pares empaquetados.
Fine-tuning
Estrategia de entrenamiento para tareas posteriores donde todos los parámetros pre-entrenados de BERT se actualizan de extremo a extremo junto con capas de salida mínimas específicas de la tarea utilizando datos etiquetados.
Feature-based approach
Estrategia alternativa donde se extraen representaciones contextuales fijas de las capas de BERT sin actualizar sus parámetros, para luego introducirlas en arquitecturas separadas específicas de la tarea.

Preguntas

¿Por qué BERT reemplaza los tokens enmascarados con tokens aleatorios o los mantiene sin cambios en lugar de usar siempre [MASK]?

Dado que el token [MASK] nunca aparece durante el ajuste fino, reemplazar cada token objetivo con [MASK] crearía una discrepancia entre el pre-entrenamiento y el ajuste fino. BERT mitiga esto reemplazando los tokens elegidos con [MASK] el 80% de las veces, con un token aleatorio el 10% de las veces, y con el token original sin cambios el 10% de las veces, forzando al modelo a mantener una representación distribuida de todos los tokens.

¿Cuál es la diferencia entre BERT y OpenAI GPT?

Aunque ambos son modelos basados en Transformer diseñados para ajuste fino, OpenAI GPT utiliza un decodificador Transformer de izquierda a derecha donde la atención está restringida para que cada token solo pueda atender a los tokens anteriores. BERT utiliza un codificador Transformer bidireccional donde la atención opera sobre el contexto tanto a la izquierda como a la derecha en todas las capas, gracias a su objetivo de pre-entrenamiento mediante masked language model.

¿Se puede usar BERT como extractor de características en lugar de ajustarlo finamente de extremo a extremo?

Sí. En la tarea de Reconocimiento de Entidades Nombradas (NER) de CoNLL-2003, extraer y concatenar las activaciones de los tokens de las cuatro capas ocultas superiores de BERT y alimentarlas a una BiLSTM de 2 capas logró un F1 de desarrollo de 96.1, apenas a 0.3 de F1 respecto al ajuste fino completo de todo el modelo (96.4 F1).

¿Por qué utilizó BERT un esquema de longitud de secuencia en dos fases durante el pre-entrenamiento?

La complejidad computacional de la autoatención es cuadrática respecto a la longitud de la secuencia. Para reducir el tiempo de cómputo, BERT se pre-entrenó con una longitud de secuencia de 128 durante los primeros 900,000 pasos (90% del entrenamiento), y luego se entrenó con una longitud de secuencia de 512 durante los 100,000 pasos restantes para aprender los embeddings posicionales.

La explicación de esta página la escribió una IA a partir del artículo y puede contener errores. Consulte el artículo para los detalles.

Leer con traducción e IA