Перевод / Департамент Али ТаоF(x) Team- звезда с
Оригинальный адрес:BERT — современная языковая модель для НЛП
BERT (представления двунаправленного кодировщика для преобразователей) — документ, опубликованный исследователями из Google AI Languages. Он произвел фурор в области машинного обучения, поскольку достиг самых современных результатов во многих задачах НЛП, включая ответы на вопросы (SQuAD v1.1), вывод на естественном языке (MNLI) и другие.
Ключевым технологическим нововведением BERT является применение двунаправленного обучения популярной модели внимания Transformer к языковому моделированию, которое отличается от предыдущего обучения слева направо или комбинированного обучения входного текста слева направо и справа налево. последовательности Путь. Результаты показывают, что языковые модели с двунаправленным обучением являются более контекстно-зависимыми, чем языковые модели с однонаправленным обучением. В статье исследователи подробно описывают новую технику под названием «маскированный LM» (MLM), которая обеспечивает двунаправленное обучение моделей.
задний план
В области компьютерного зрения исследователи неоднократно демонстрировали ценность трансферного обучения — предварительной подготовки моделей нейронных сетей на известных задачах (таких как imagnet), а затем тонкой настройки приложения с использованием обученной нейронной сети в качестве новой модели конкретного назначения. Основы. В последние годы исследователи показали, что подобные методы эффективны во многих задачах на естественном языке.
Помимо трансферного обучения, другим подходом является обучение на основе признаков, которое также популярно в задачах НЛП и используется в недавних исследованиях.Документы ELMoбыло проверено. В этом подходе предварительно обученная нейронная сеть создает представления встраивания слов, которые затем используются в качестве функций для моделей обработки естественного языка.
Как работает Берт
BERT использует механизм внимания Transformer для изучения контекстных отношений между словами в тексте. В общем виде Transformer состоит из двух независимых механизмов: кодировщика, считывающего текстовый ввод, и декодера, генерирующего прогнозы задач. Поскольку целью BERT является создание языковой модели, требуется только механизм кодировщика. Гугл в статьебумагаПодробный принцип работы Transformer описан в .
В отличие от направленных моделей, которые последовательно считывают вводимый текст (слева направо или справа налево), кодировщики Transformer считывают сразу всю последовательность слов. Так что он считается двунаправленным, или, точнее сказать, ненаправленным. Эта функция позволяет модели изучать контекст слова на основе его окружения (слева и справа от слова).
На рисунке ниже представлено абстрактное описание энкодера Transformer. Вход представляет собой последовательность токенов, которые векторизованы встраиванием слов, которые затем могут быть обработаны и использованы в нейронной сети. Выход представляет собой последовательность векторов размера H, где каждый вектор соответствует последовательности входных векторов того же индекса.
При обучении языковой модели трудно правильно определить цель предсказания. Многие модели последовательно предсказывают следующее слово (например, «Ребенок пришел домой из ( )», что представляет собой однонаправленный метод обучения, который ограничивает изучение контекста модели. Чтобы преодолеть этот недостаток, Берт использовал две стратегии обучения. :
Masked LM (MLM)
Перед вводом последовательностей слов в BERT 15% слов в каждой последовательности заменяются токеном [MASK]. Затем модель пытается предсказать замаскированное слово на основе контекста, обеспечиваемого другими немаскированными словами в последовательности. С технической точки зрения предсказание выходного слова нужно делать:
-
Слой, используемый для классификации после вывода модели кодировщиком.
-
Преобразуйте выходное измерение в размерность словаря путем умножения выходного вектора на матрицу вложения словаря.
-
Используйте softmax для расчета вероятности того, что слово [MASK] является каждым словом в словаре.
Функция потерь BERT учитывает только предсказания замаскированных слов и игнорирует предсказания незамаскированных слов. Следовательно, скорость сходимости модели будет ниже, чем у обычной направленной модели, но, учитывая, что этот подход может повысить осведомленность о контексте, преимущества перевешивают недостатки.
Next Sentence Prediction (NSP)
Во время обучения BERT модель получает на вход пары предложений и учится предсказывать, является ли второе предложение в ней последующим предложением в обучающем тексте. При обучении 50 % входных данных составляют пары, где второе предложение является последующим предложением в обучающем тексте, а в остальных 50 % входных данных в качестве второго предложения случайным образом выбирается предложение из корпуса. Предположим, что случайное предложение не будет связано с первым предложением.
Чтобы помочь модели различать два предложения во время обучения, перед подачей модели входные данные необходимо обработать следующим образом:
-
Вставьте токен [CLS] в начале первого предложения и токен [SEP] в конце каждого предложения.
-
Добавьте вложение предложения, представляющее либо предложение A, либо предложение B к каждому токену. Вложения предложений концептуально аналогичны вложениям слов.
-
Вектор положения добавляется к каждому токену, чтобы представить положение слова в последовательности.
Выполните следующие шаги, чтобы предсказать, действительно ли второе предложение связано с первым предложением:
-
Вся входная последовательность подается в модель Transformer.
-
Используя простой слой классификации (обученные веса и параметры смещения), преобразуйте выходные данные, соответствующие токену [CLS], в вектор формы 2 × 1.
-
Используйте softmax для расчета вероятности того, является ли это следующим предложением.
Модель BERT обучается путем объединения MLM и NSP с целью минимизации комбинированной функции потерь двух стратегий.
Как использовать BERT (обучение тонкой настройке)
BERT можно относительно просто использовать для самых разных языковых задач, и для этого требуется лишь добавить небольшой слой в базовую модель:
-
Применяется к задачам классификации предложений, подобным NSP, таким как анализ настроений, путем добавления слоя классификации поверх выходных данных Transformer, помеченных [CLS].
-
В задачах на ответы на вопросы (таких как SQuAD v1.1) система получает вопрос о существующей текстовой последовательности и просит пометить ответ в существующей текстовой последовательности. Используя BERT, модель ответа на вопрос можно обучить, изучив два дополнительных вектора, которые отмечают, где ответ начинается и заканчивается в тексте.
-
При распознавании именованных сущностей (NER) система получает последовательность текста и должна маркировать различные типы сущностей (таких как люди, организации, даты и т. д.), которые появляются в тексте. С помощью BERT модель NER можно обучить, передав выходной вектор каждого токена классификационному слою, который предсказывает метки NER.
При обучении тонкой настройке большинство гиперпараметров согласуются с обучением BERT, и в документе даются конкретные рекомендации по гиперпараметрам, которые необходимо настроить (раздел 3.5). Команда BERT использовала эту технику для достижения самых современных результатов в широком спектре сложных задач на естественном языке, которые подробно описаны в разделе 4 статьи.
Суммировать
Bert, несомненно, является прорывом в машинном обучении обработки естественного языка. На самом деле, его можно быстро настроить и использовать простые в использовании функции, которые, вероятно, будут широко использоваться в будущем. В этой статье мы постараемся описать основную идею статьи, не утопая в слишком большом количестве технических подробностей. Для тех, кто хочет провести более глубокое исследование, мы настоятельно рекомендуем прочитать полную статью и статьи, цитируемые в ней. Еще одна полезная ссылка находится в открытом доступе исследовательской группы.Исходный код BERTА предварительно обученную модель, охватывающую 103 языка, можно напрямую использовать в реальных сценариях.