Статьи · arXiv 1810.04805
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
Кратко в трёх строках
- 🎯 Стандартное предобучение языковых моделей ограничено однонаправленным контекстом (слева направо), что неоптимально для задач уровня предложений и губительно для задач уровня токенов, таких как вопросно-ответные системы.
- 🔧 Представлен BERT, обучающий многослойный двунаправленный энкодер Transformer с использованием задачи маскированного языкового моделирования Masked Language Model (тест Клоза) и Next Sentence Prediction.
- 📈 Достигнуты результаты state-of-the-art в 11 задачах NLP, включая результат 80,5 на бенчмарке GLUE (+7,7 пункта абсолютно) и точность 86,7% на MultiNLI (+4,6% абсолютно).
Аннотация
Мы представляем новую модель языковых представлений BERT, что означает Bidirectional Encoder Representations from Transformers (двунаправленные представления энкодера из трансформеров). В отличие от недавних моделей языковых представлений, BERT спроектирован для предварительного обучения глубоких двунаправленных представлений на неразмеченном тексте путем одновременного учета как левого, так и правого контекста на всех слоях. В результате предварительно обученная модель BERT может быть дообучена всего с одним дополнительным выходным слоем для создания моделей уровня state-of-the-art для широкого спектра задач, таких как вопросно-ответные системы и логический вывод на естественном языке, без существенных изменений архитектуры под конкретную задачу. BERT концептуально прост и эмпирически мощен. Он достигает новых результатов state-of-the-art на одиннадцати задачах обработки естественного языка, включая повышение показателя GLUE до 80,5% (абсолютное улучшение на 7,7 процентных пункта), точности MultiNLI до 86,7% (абсолютное улучшение на 4,6%), тестового F1 на задаче ответов на вопросы SQuAD v1.1 до 93,2 (абсолютное улучшение на 1,5 пункта) и тестового F1 на SQuAD v2.0 до 83,1 (абсолютное улучшение на 5,1 пункта).
Оригинальная аннотация (англ.)
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).
Разбор статьи
Проблема и мотивация
Предыдущие модели языковых представлений полагались либо на подходы на основе признаков (такие как ELMo), либо на подходы с дообучением (такие как OpenAI GPT). Будучи эффективными, обе парадигмы были ограничены однонаправленными целями языкового моделирования: стандартные авторегрессионные модели обрабатывают текст строго слева направо (или справа налево). В однонаправленных моделях токены могут обращать внимание только на предыдущие токены в слоях self-attention, чтобы слова тривиально «не видели самих себя» сквозь многослойные контексты. В ELMo была предпринята попытка достичь двунаправленности путем поверхностной конкатенации раздельно обученных сетей LSTM (слева направо и справа налево), однако это не позволяет захватить глубокую совместную обусловленность двунаправленным контекстом на каждом слое. Такая однонаправленность ограничивает представления на уровне предложений и особенно вредна для прикладных задач на уровне токенов, таких как ответы на вопросы, где одновременное понимание левого и правого контекстов критически важно.
Ключевые идеи
- Архитектура глубокого двунаправленного Transformer: BERT использует многослойный двунаправленный энкодер Transformer, позволяя слоям self-attention совместно опираться как на левый, так и на правый контекст на всех слоях.
- Masked Language Model (MLM): Вдохновленный тестом Клоза (Cloze), BERT случайным образом маскирует 15% входных токенов и обучает модель предсказывать замаскированные токены, используя их контекст, что решает проблему тривиального «видения самого себя».
- Сглаживание несоответствия между предобучением и дообучением: Поскольку токен
[MASK]отсутствует на этапе fine-tuning, выбранные 15% токенов заменяются на[MASK]в 80% случаев, на случайный токен в 10% случаев и остаются неизменными в 10% случаев. - Next Sentence Prediction (NSP): Чтобы улавливать отношения между парами предложений, критически важные для логического вывода на естественном языке (NLI) и вопросно-ответных систем (QA), BERT предварительно обучается на бинарной задаче: определить, следует ли предложение естественно за предложением () или же это случайное предложение из корпуса ().
- Единая архитектура для прикладных задач: Абсолютно та же предварительно обученная архитектура повторно используется для прикладных задач с минимальным количеством добавленных параметров (например, простой линейный слой классификации или указатели начала/конца спана).
Метод
Конфигурация модели
BERT оценивается в основном в двух размерах:
- : слоев, размер скрытого слоя , голов внимания, общее количество параметров = .
- : слоя, размер скрытого слоя , голов внимания, общее количество параметров = . Размер фильтров в полносвязных слоях составляет .
Представления входов и выходов
Входные данные могут представлять собой одну текстовую последовательность или объединенную пару предложений. Эмбеддинги строятся путем суммирования:
- Токенных эмбеддингов WordPiece (словарь из 30 000 токенов).
- Сегментных эмбеддингов (обучаемый эмбеддинг, определяющий, относится ли токен к предложению или к предложению ).
- Обучаемых позиционных эмбеддингов.
Каждая последовательность начинается с токена [CLS]. Его финальный скрытый вектор представляет собой агрегированное состояние всей последовательности. Пары предложений разделяются токеном [SEP]. Финальные скрытые представления токенов обозначаются как .
Задачи предварительного обучения
- Masked LM: Для замаскированного токена представление подается в слой softmax по всему словарю с функцией потерь cross-entropy:
- Next Sentence Prediction: Агрегированный вектор подается в модуль бинарной классификации: Общая функция потерь предобучения представляет собой сумму среднего правдоподобия masked LM и среднего правдоподобия next sentence prediction.
Адаптация при дообучении (Fine-tuning)
- Классификация (GLUE): Добавляется матрица проекции , функция потерь вычисляется как .
- Извлечение спанов (SQuAD v1.1): Обучаются вектор начала и вектор конца . Вероятность того, что токен является началом спана ответа, равна: Оценка для спана равна , которая максимизируется при условии .
- Вопросы без ответа (SQuAD v2.0): Задача расширяется за счет использования токена
[CLS]в качестве пустого спана ответа со скором ; непустой ответ предсказывается только тогда, когда .
Результаты
BERT был протестирован на 11 задачах NLP:
- Лидерборд GLUE: достиг среднего результата на GLUE в 80,5% (абсолютное улучшение на 7,7% по сравнению с предыдущим state of the art) и точности 86,7% на MNLI (абсолютный прирост на 4,6%).
- SQuAD v1.1: достиг 84,1 EM и 90,9 F1 на валидационной выборке (Dev) как отдельная модель; ансамбль с предварительным обучением на TriviaQA достиг 87,4 EM и 93,2 F1 на тестовой выборке (Test), превзойдя уровень человека (82,3 EM / 91,2 F1).
- SQuAD v2.0: показал 80,0 EM и 83,1 F1 на тестовой выборке, превзойдя предыдущую лучшую систему на +5,1 F1.
- SWAG: набрал точность 86,3% на тесте, превзойдя OpenAI GPT (78,0%) и базовый уровень экспертов-людей (85,0%).
- Результаты абляционных исследований (Ablation): Удаление NSP ухудшило результаты на MNLI (-0,5%), QNLI (-3,5%) и F1 на SQuAD (-0,6%). Замена MLM на стандартную языковую модель LTR (слева направо) привела к значительному падению метрик на SQuAD (-10,7 F1) и MRPC (-9,2% точности).
Ограничения и открытые вопросы
- Несоответствие между предобучением и дообучением: Искусственный токен
[MASK]никогда не встречается во время дообучения, что требует эвристических правил замены (80/10/10) для уменьшения этого расхождения. - Эффективность предварительного обучения: Поскольку BERT предсказывает только 15% токенов в батче вместо 100% токенов, как в стандартных авторегрессионных моделях, ему требуется больше шагов предобучения (1 000 000 шагов при 128 000 токенах в батче) для сходимости.
- Квадратичное узкое место внимания: Вычислительная сложность механизма внимания стандартного Transformer растет квадратично () от длины последовательности, что делает работу с длинными последовательностями ресурсоемкой и требует двухфазного графика предобучения (90% шагов с длиной последовательности 128, 10% шагов — с длиной 512).
- Неприменимость к генерации текста: Являясь двунаправленным энкодером, BERT напрямую структурирован для представлений и дискриминативных задач и не способен напрямую выполнять авторегрессионную генерацию слева направо без изменения архитектуры.
Ключевые термины
- Masked Language Model (MLM)
- Задача предварительного обучения, вдохновленная тестом Клоза, в которой случайные входные токены заменяются маской, а модель обучается восстанавливать исходный токен из глубокого двунаправленного контекста.
- Next Sentence Prediction (NSP)
- Бинаризованная задача предварительного обучения, в которой модель определяет, логически ли следует второй сегмент предложения за первым, или он был случайно выбран из корпуса.
- [CLS]
- Специальный классификационный токен, помещаемый в начало каждой последовательности, финальное скрытое состояние которого используется как агрегированное представление последовательности для задач классификации.
- [SEP]
- Специальный токен, используемый для разделения непоследовательных или разнородных сегментов предложений внутри одной объединенной входной последовательности.
- WordPiece
- Алгоритм токенизации на подслова (subword tokenization), используемый в BERT со словарем из 30 000 токенов для работы со словами вне словаря и разбиения слов на подсловные единицы.
- Segment Embeddings
- Обучаемые эмбеддинги, добавляемые к эмбеддингам токенов для различения того, принадлежит ли токен к сегменту предложения A или сегменту предложения B в объединенных парах.
- Fine-tuning
- Стратегия обучения для прикладных задач, при которой все предварительно обученные параметры BERT обновляются сквозным образом (end-to-end) вместе с минимальными дополнительными выходными слоями на размеченных данных.
- Feature-based approach
- Альтернативная стратегия, при которой фиксированные контекстные представления извлекаются из слоев BERT без обновления его параметров и затем подаются в отдельные специфичные для задачи архитектуры.
Вопросы
Почему BERT заменяет маскированные токены случайными токенами или оставляет их без изменений вместо того, чтобы всегда использовать [MASK]?
Поскольку токен [MASK] никогда не появляется на этапе fine-tuning, замена каждого целевого токена на [MASK] привела бы к расхождению между предварительным обучением и дообучением. BERT смягчает это тем, что заменяет выбранные токены на [MASK] в 80% случаев, на случайный токен в 10% случаев и сохраняет токен неизменным в 10% случаев, вынуждая модель сохранять непрерывное распределенное представление для всех токенов.
В чем разница между BERT и OpenAI GPT?
Хотя обе модели основаны на архитектуре Transformer и механизме fine-tuning, в OpenAI GPT используется декодер Transformer, работающий слева направо, где внимание ограничено так, что каждый токен может обращать внимание только на предыдущие токены. BERT использует двунаправленный энкодер Transformer, где внимание обращается как к левому, так и к правому контексту на всех слоях благодаря задаче предобучения Masked Language Model.
Можно ли использовать BERT как экстрактор признаков вместо сквозного дообучения (fine-tuning)?
Да. В задаче распознавания именованных сущностей CoNLL-2003 извлечение и конкатенация активаций токенов из четырех верхних скрытых слоев BERT с последующей подачей в 2-слойную BiLSTM позволили достичь F1 96,1 на Dev, что всего на 0,3 F1 ниже полного дообучения всей модели (96,4 F1).
Почему в BERT использовалось двухфазное расписание по длине последовательности при предобучении?
Вычислительная сложность механизма self-attention квадратично зависит от длины последовательности. Чтобы сократить время вычислений, BERT предварительно обучался с длиной последовательности 128 на протяжении первых 900 000 шагов (90% обучения), а оставшиеся 100 000 шагов обучался с длиной последовательности 512 для изучения позиционных эмбеддингов длинных последовательностей.
Обзор на этой странице написан ИИ по тексту статьи и может содержать ошибки. Подробности смотрите в самой статье.