Глубокое понимание модели Google BERT

NLP
Глубокое понимание модели Google BERT

Модель BERT — это модель НЛП, предложенная Google в 2018 году, и за последние годы она стала самой прорывной технологией в области НЛП. Он обновил предыдущие записи по задачам в 11 доменах НЛП, таких как GLUE, SquAD1.1, MultiNLI и т. д.

1. Введение

Документ Google «BERT: предварительная подготовка глубоких двунаправленных преобразователей для Модель BERT предлагается в разделе «Понимание языка». Модель BERT в основном использует структуру кодировщика Transformer и принимает самый примитивный Transformer. Для детской обуви, которая не знакома с Transformer, обратитесь к предыдущей статье.«Детали модели трансформатора»илиБлог Джея Аламмара: Иллюстрированный трансформер. В целом, BERT имеет следующие характеристики:

структура:Используется структура Encoder Transformer, но структура модели глубже, чем у Transformer. Кодер-трансформер содержит 6 блоков кодировщика, базовая модель BERT содержит 12 блоков кодировщика, а большая модель BERT содержит 24 блока кодировщика.

тренироваться:Обучение в основном делится на два этапа: этап предварительной подготовки и этап тонкой настройки. Этап предобучения аналогичен Word2Vec, ELMo и т. д. Он обучается на большом наборе данных по некоторым предобучающим задачам. Этап тонкой настройки используется для последующей тонкой настройки некоторых нижестоящих задач, таких как классификация текста, маркировка частей речи, системы ответов на вопросы и т. д. BERT можно тонко настроить на различные задачи без корректировки структуры.

Предтренировочное задание 1:Первая предварительная задача для BERT:Masked LM, случайным образом охватывать часть слов в предложении, а затем использовать контекстную информацию для одновременного прогнозирования охватываемых слов, чтобы можно было лучше понять значение слов в соответствии с полным текстом. Маскированный LM находится в центре внимания BERT, который отличается от метода прогнозирования biLSTM, который будет обсуждаться позже.

Предтренировочное задание 2:Вторая предтренировочная задача для BERT:Next Sentence Prediction (NSP), следующая задача прогнозирования предложения, эта задача в основном предназначена для того, чтобы модель лучше понимала взаимосвязь между предложениями.

2. Структура БЕРТ

BERT_jiegou.png

На рисунке выше представлена ​​структурная схема BERT, рисунок слева представляет процесс предварительной подготовки, а рисунок справа — процесс тонкой настройки для конкретных задач.

2.1 Ввод BERT

Входные данные для BERT могут состоять из пары предложений (предложение A и предложение B) или одного предложения. В то же время BERT добавляет несколько специальных флагов:

  • Флаг [CLS] помещается в начало первого предложения, а вектор представления, полученный с помощью BERTCмогут быть использованы для последующих задач классификации.
  • Флаг [SEP] используется для разделения двух входных предложений, таких как входные предложения A и B, а флаг [SEP] следует добавлять после предложений A и B.
  • Флаг [MASK] используется для покрытия некоторых слов в предложении.После покрытия слов с помощью [MASK] вектор [MASK], выводимый BERT, используется для предсказания того, что это за слово.

Например, учитывая два предложения «моя собака милая» и «он любит играть» в качестве входных образцов, BERT превратится в «[CLS] моя собака милая [SEP] ему нравится играть ##ing [SEP] ". В BERT используется метод WordPiece, который разбивает слово на подслова (SubWord), поэтому некоторые слова будут разбивать корень, например, «palying» станет «paly» + «##ing».

После того, как BERT получает предложение для ввода, ему необходимо преобразовать слова предложения во встраивание.EВыражать. В отличие от Transformer, встраивание ввода BERT получается путем добавления трех частей: встраивания токена, встраивания сегмента и встраивания позиции.

BERT_Embedding.png

Token Embedding:Вложения слов, таких как [CLS] собака и т. д., изучаются путем обучения.

Segment Embedding:Используется, чтобы различать, принадлежит ли каждое слово предложению A или предложению B, если введено только одно предложение, используйте толькоEА, узнал на тренировках.

Position Embedding:Позиция закодированного слова отличается от расчета Преобразователя с использованием фиксированной формулы. Встраивание позиции BERT также получается путем обучения. В BERT предполагается, что самое длинное предложение равно 512.

2.2 Предварительная подготовка BERT

После того, как BERT вводит встраивание слов в предложение, модель обучается с помощью предварительного обучения, которое имеет две задачи.

Первый — Masked LM, который случайным образом заменяет некоторые слова на [MASK] в предложении, затем передает предложение в BERT для кодирования информации о каждом слове и, наконец, использует закодированную информацию [MASK]T[MASK] Угадайте правильное слово для этой позиции.

Второй - это прогнозирование следующего предложения, ввод предложений A и B в BERT, прогнозирование того, является ли B следующим предложением A, использование информации о кодировании [CLS]CДелать предсказания.

Процесс предварительной подготовки BERT можно представить на следующем рисунке.

BERT_Pretrain.png

2.3 BERT для конкретных задач НЛП

Предварительно обученную модель BERT можно позже настроить для конкретных задач НЛП (Этап доводки), модель BERT можно применять ко многим различным задачам НЛП, как показано на рисунке ниже.

BERT_NLP_Task.png

Задание на классификацию пары предложений:Например, вывод на естественном языке (MNLI), оценка семантической эквивалентности предложений (QQP) и т. д., как показано на рисунке (a) выше, два предложения должны быть переданы в BERT, а затем используется выходное значение [CLS].CКлассификация пар предложений.

Задание на классификацию отдельных предложений:Например, анализ тональности предложения (SST-2), оценка приемлемости грамматики предложения (CoLA) и т. д., как показано на рисунке (b) выше, требует только ввода предложения без использования флага [SEP], а затем также используйте вывод значения [CLS]CСортировать.

Задания на вопросы и ответы:Например, в наборе данных SQuAD v1.1 образец представляет собой пару предложений (Вопрос, Абзац), Вопрос представляет собой вопрос, Абзац — это фрагмент текста из Википедии, а Абзац содержит ответ на вопрос. Цель обучения — найти начальную позицию (Начало, Конец) ответа в Абзаце. Как показано на рисунке (c) выше, вопрос и абзац передаются в BERT, и BERT прогнозирует позиции начала и конца на основе вывода всех слов в абзаце.

Задача пометки одним предложением:Например, распознавание именованных объектов (NER), возьмите одно предложение в качестве входных данных, а затем выведите каждое слово в соответствии с BERT.TПредсказать, принадлежит ли слово Человеку, Организации, Местоположению, Разному или Другому (неназванному объекту).

3. Предтренировочные задания

Предварительная подготовка находится в центре внимания BERT. Далее узнайте о деталях предварительной подготовки BERT. BERT включает две предварительные задачиMasked LMипредсказание следующего предложения.

3.1 Masked LM

Давайте сначала рассмотрим предыдущие методы предварительного обучения языковых моделей, используя в качестве примера предложение «Мне/нравится/обучение/естественный/язык/обработка». При обучении языковой модели обычно необходимо выполнить некоторыеMaskОперация, чтобы предотвратить проблему утечки информации, утечка информации относится к знанию информации «естественного» заранее при прогнозировании слова «естественный». Причины утечки информации Transformer Encoder будут рассмотрены позже.

CBOW Word2Vec:Слово i предсказывается по информации выше и ниже слова i, но используется модель мешка слов, и информация о порядке слов неизвестна. Например, при предсказании слова «естественный» для предсказания будут использоваться приведенные выше «Мне/Нравится/Обучение» и следующие «Язык/Обработка». CBOW эквивалентно маскированию слова «естественный» во время тренировки.

ELMo:ELMo использует biLSTM во время обучения.При прогнозировании «естественного» прямой LSTM будет маскировать все слова после «естественного» и использовать приведенный выше прогноз «мне/нравится/учиться»; обратный LSTM будет маскировать слова перед «естественными» словами , рассчитанный с использованием приведенного ниже параметра «Язык/обработка». Выходные данные прямого LSTM и обратного LSTM затем сшиваются вместе, поэтому ELMo разделяет контекстную информацию для прогнозирования, а не использует контекстную информацию для прогнозирования одновременно.

OpenAI GPT:OpenAI GPT — это еще один алгоритм, использующий Transformer для обучения языковых моделей, но OpenAI GPT использует декодер Transformer, который представляет собой одностороннюю структуру. При предсказании «естественного» используйте только описанное выше «Мне/Нравится/Узнать».Декодер содержит операцию «Маска», которая маскирует слова после текущего предсказанного слова.

На рисунке ниже показана разница между BERT и ELMo, OpenAI GPT.

BERT_ELMo_GPT.png

Авторы BERT считают, что при предсказании слов для предсказания лучше всего использовать как левую (выше), так и правую (ниже) информацию. Модель ELMo, которая выполняет слева направо и справа налево соответственно, называетсянеглубокая двунаправленная модель, BERT надеется обучить глубокую двунаправленную модель на структуре Transformer Encoder.deep bidirectional model, поэтому для обучения предлагается метод Mask LM.

Маска LM используется для предотвращения утечки информацииНапример, при прогнозировании слова «естественный», если маска «естественного» входной части не удалена, «естественная» информация может быть получена непосредственно там, где прогнозируется вывод.

BERT_Masked_LM.png

BERT предсказывает только слова в позиции [Mask] во время обучения, чтобы одновременно можно было использовать контекстную информацию. Однако при последующем использовании слово [Маска] не будет фигурировать в предложении, что повлияет на производительность модели. Поэтому при обучении принята следующая стратегия: 15% слов в предложении случайным образом выбираются для Маски, среди слов, отобранных как Маска, 80% действительно заменяются на [Маска], 10% не заменяются, а остальные Используется 10% Случайная замена слова.

Например, в предложении «моя собака волосатая» для Маска выбрано слово «волосатая», тогда:

  • Преобразуйте предложение «моя собака волосатая» в предложение «моя собака [Маска]» с вероятностью 80%.
  • С вероятностью 10% оставить предложение «моя собака волосатая» без изменений.
  • В 10% случаев замените слово «волосатый» другим случайным словом, например «яблоко». Преобразуйте предложение «моя собака волосатая» в предложение «моя собака — яблоко».

Выше — Masked LM, первая предтренировочная задача для BERT.

3.2 Предсказание следующего предложения

Вторая предтренировочная задача для BERT:Next Sentence Prediction (NSP), следующее предсказание предложения, учитывая два предложения A и B, чтобы предсказать, является ли предложение B следующим предложением предложения A.

Основная причина, по которой BERT использует эту задачу предварительного обучения, заключается в том, что многие последующие задачи, такие как ответы на вопросы (QA), вывод на естественном языке (NLI), требуют, чтобы модель понимала взаимосвязь между двумя предложениями, но это не может быть достигнуто путем обучения. языковая модель для этой цели.

Когда BERT обучается, существует вероятность 50 %, что он выберет два связанных предложения AB, и вероятность 50 %, что он выберет два несвязанных предложения AB, а затем передаст вывод флага [CLS] .CПредскажите, является ли следующее предложение предложения А предложением В.

  • Enter = [CLS] Мне нравится играть в [Mask] League [SEP] Моя лучшая [Mask] — Ясуо [SEP]

    Категория = B - это следующее предложение A

  • Enter = [CLS] Я люблю играть [Mask] League [SEP] Погода сегодня очень [Mask] [SEP]

    Категория = B не является следующим предложением A

4. Резюме BERT

Поскольку для предварительного обучения BERT используется Masked LM, в каждом пакете обучается только 15% слов, поэтому требуется больше шагов предварительного обучения. Последовательные модели, такие как ELMo, делают прогнозы для каждого слова.

BERT использует методы предварительного обучения Transformer Encoder и Masked LM, поэтому он может выполнять двунаправленное предсказание; в то время как OpenAI GPT использует структуру Transformer Decoder и использует Mask in Decoder, которые можно предсказывать только последовательно.

5. Ссылки