[NLP] Подробное объяснение Google BERT

NLP

Привет всем, я беспокойная молодая женщина-слуха, которая крутится и прыгает на переднем крае алгоритма.

Поскольку был предложен механизм внимания, модель Seq2seq с вниманием была усовершенствована в различных задачах, поэтому текущая модель seq2seq относится к модели, объединяющей RNN и внимание. После этого Google предложил модель Transformer для решения проблемы Seq2Seq, заменив lstm на структуру полного внимания, и добился лучших результатов в задаче перевода. Эта статья в основном представляет собой статью "Внимание - это все, что вам нужно". Я все еще не понял ее, когда впервые прочитал. Надеюсь, я смогу заставить всех понять эту модель быстрее в моей собственной интерпретации ^ ^

Те, кто не знаком с принципами Внимания и Преобразователя, могут увидеть:

После запуска BERT появлялось все больше и больше результатов исследований.Вот краткое содержание для всех.В каждой ноде больше заметок.Можно добавить V "leerumorrr",чтобы получить xmind версию,и подружиться кстати.(๑•̀ㅂ•́) ✧

![](https://pic4.zhimg.com/80/v2-0321c5f0e1601e458989864629644323_1440w.jpg)

1. Модель БЕРТ

Полное название BERT — представление двунаправленного кодировщика от преобразователей, которое является кодировщиком двунаправленного преобразователя, поскольку декодер не может получить информацию, которую нужно предсказать. Основные новшества модели заключаются в методе предварительной подготовки, который использует Masked LM и Next Sentence Prediction для захвата представлений на уровне слов и предложений соответственно.

1.1 Структура модели

Так как Transformer, составляющий элемент модели, разобран, больше ничего говорить не буду.Структура модели BERT такова, как показано на крайнем левом рисунке:

![](https://pic1.zhimg.com/80/v2-d942b566bde7c44704b7d03a1b596c0c_1440w.jpg)

По сравнению с OpenAI GPT (генеративным предварительно обученным преобразователем), BERT представляет собой двустороннее блочное соединение трансформатора; точно так же, как разница между односторонним rnn и двусторонним rnn, интуитивно эффект будет лучше.

По сравнению с ELMo, хотя оба являются «двусторонними», целевая функция на самом деле отличается. ELMo делится на

и

 

В качестве целевой функции два представления обучаются независимо друг от друга, а затем объединяются, в то время как BERT основан на

Обучите LM как целевую функцию.

1.2 Embedding

Вложение здесь состоит из суммы трех вложений:

в:

  • Token Embeddings — это вектор слов, первое слово — это логотип CLS, который можно использовать для последующих задач классификации.
  • Встраивание сегментов используется для различения двух предложений, потому что предварительное обучение выполняет не только LM, но и задачу классификации с двумя предложениями в качестве входных данных.
  • Встраивание позиций отличается от преобразования в предыдущей статье, это не тригонометрическая функция, а изученная

1.3 Pre-training Task 1#: Masked LM

Целью первого шага предварительной подготовки является создание языковой модели.Из приведенной выше структуры модели мы можем увидеть отличие этой модели, то есть двунаправленность.О том, почему такое двунаправленное, автор вredditКак объяснялось выше, это означает, что если предварительно обученные модели используются для решения других задач, людям нужна не только информация в левой части определенного слова, но и информация в левой и правой частях. Модель ELMo, которая учитывает это, просто сшивает обучение слева направо и справа налево по отдельности. Интуитивно, мы на самом деле хотим глубоко двунаправленную модель, но обычный LM не может этого сделать, потому что он может «пересекаться» во время обучения (Я не очень согласен с этим пунктом, я опубликую статью о том, как сделать двунаправленный LM позже.). Вот автор и применил трюк с маской.

В процессе обучения автор случайным образом маскирует 15% токенов, вместо того, чтобы предсказывать каждое слово, как cbow.Что касается того, почему это делается, я думаю, что это может быть сама структура модели.Со структурной точки зрения вход и выход представляют собой последовательности одинаковой длины, так что модель фактически выполняет LM на уровне последовательности.

Как сделать маску тоже сложно.Если вместо этого всегда использовать метку [MASK] (вы не можете трогать эту метку в фактическом прогнозе), это повлияет на модель, поэтому 10% слов будут заменены другими словами при использовании случайной маски 10 % слов не заменяются, а остальные 80 % заменяются на [MASK]. Автор не сказал, почему она так выделена. . . Следует отметить, что на этапе предобучения Masked LM модель не знает, какое слово на самом деле замаскировано, поэтому модель должна обращать внимание на каждое слово.

1.4 Pre-training Task 2#: Next Sentence Prediction

Поскольку он включает в себя такие задачи, как QA и NLI, добавляется вторая задача предварительного обучения, чтобы модель понимала связь между двумя предложениями. Входными данными обучения являются предложения A и B, и B имеет половинный шанс быть следующим предложением A. Введите эти два предложения, и модель предскажет, является ли B следующим предложением A. Точность 97-98% может быть достигнута во время предварительной тренировки.

1.5 Fine-tunning

Классификация: для задач классификации на уровне последовательности BERT напрямую берет окончательное скрытое состояние первого [CLS] токена, и после добавления слоя весов softmax предсказывает вероятность метки:

Другие задачи прогнозирования требуют некоторых корректировок, как показано на рисунке:

Поскольку большинство параметров такие же, как и в предварительной тренировке, тонкая настройка будет проходить быстрее, поэтому автор рекомендует попробовать больше параметров.

2. Преимущества и недостатки

2.1 Преимущества

BERT — это новейшая современная модель по состоянию на октябрь 2018 года. Она охватила 11 задач НЛП с помощью предварительной подготовки и тонкой настройки. Прежде всего, это самое большое преимущество. И он также использует Transformer, который более эффективен, чем rnn, и может захватывать зависимости на больших расстояниях. По сравнению с предыдущей моделью предварительного обучения она собирает истинную двунаправленную контекстную информацию.

2.2 Недостатки

Автор в основном упоминает проблему маски во время пре-тренинга МЛМ:

  1. [MASK] Метка не отображается в фактическом прогнозе, и использование слишком большого количества [MASK] во время обучения влияет на производительность модели.
  2. Прогнозируется только 15% токенов на пакет, поэтому BERT сходится медленнее, чем модели слева направо (они предсказывают каждый токен).

3. Резюме

Перечитывая снова и снова, я чувствую, что использую существующие вещи, но я не ожидал, что эффект будет таким хорошим, и другие не ожидали. Тем не менее, есть много моментов, которые специально не объяснены в статье.Видно, что такие отличные результаты также получены путем непрерывных экспериментов, а обучающие данные больше, чем OpenAI GPT с аналогичной структурой, поэтому структура данных и модели незаменимы.

Добро пожаловать, чтобы обратить внимание на мой официальный аккаунт и получить самую современную интерпретацию алгоритма как можно скорее⬇️

【Использованная литература】:

  1. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
  2. Полностью превосходит людей! Google доминирует над SQuAD, BERT лидирует в 11 лучших тестах НЛП
  3. Чжиху: Как оценить модель BERT?