Эволюция модели предварительной подготовки BERT! (с кодом)

машинное обучение

1. Что такое БЕРТ

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

Берт очень популярен в последнее время.Это должна быть самая популярная разработка ИИ в последнее время.Онлайн-оценка очень высокая,достоин ли Берт такой высокой оценки? По моему личному мнению, оно того стоит. Так почему такой высокий рейтинг? Это потому, что у него есть значительные теоретические или модельные инновации? На самом деле нет, с точки зрения модельных инноваций, инновации невелики. Но эффект слишком хорош. Он в основном обновляет лучшую производительность многих задач НЛП, а некоторые задачи были максимальными. Это ключ. Еще один момент заключается в том, что Берт обладает широким диапазоном универсальности, а это означает, что большинство задач НЛП могут использовать аналогичный двухэтапный режим для непосредственного улучшения эффекта, что является вторым ключом. Объективно говоря, более соответствует фактам считать Берта кульминацией основных достижений НЛП за последние два года.

2. Переход от встраивания Word к модели Берта

2.1 Предварительное обучение на изображениях

Из-за популярности глубокого обучения процесс предварительной подготовки является относительно обычной практикой в ​​​​области изображений или видео, имеет относительно долгую историю, и этот метод очень эффективен и может значительно повысить эффект от применения.

Итак, как сделать предварительную тренировку в поле изображения?На картинке выше показан этот процесс,

  1. После того, как мы спроектируем структуру сети, для изображений это, как правило, многослойная наложенная сетевая структура CNN, Мы можем использовать определенный обучающий набор, такой как обучающий набор A или обучающий набор B, для предварительной подготовки сети к задаче A или задача B. Пойдите в школу, чтобы узнать параметры сети и сохранить их для дальнейшего использования.

  2. Предположим, что мы сталкиваемся с третьей задачей C, и структура сети принимает ту же структуру сети.В более мелких слоях структуры CNN параметры, полученные из задачи A или задачи B, могут быть загружены, когда параметры сети инициализируются, а другие CNN параметры высокого уровня по-прежнему инициализируются случайным образом.

  3. Затем мы используем обучающие данные задачи C для обучения сети.На данный момент есть два способа:

    своего родазаключается в том, что мелко загруженные параметры не двигаются во время обучающей задачи C, этот метод называется «замороженным»;

    ДругаяХотя базовые сетевые параметры инициализируются, они продолжают изменяться в процессе обучения во время процесса обучения задачи C. Обычно это называется «тонкой настройкой». Как следует из названия, лучше настроить параметры, чтобы сделать их более подходящими для текущей задачи C.

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

Почему предварительная подготовка работает

Для иерархической структуры CNN нейроны на разных уровнях изучают различные типы функций изображения, а восходящие функции образуют иерархическую структуру, поэтому параметры предварительно обученной сети, особенно функции, извлеченные из базовых сетевых параметров, более точно связанные с конкретными задачами.Неважно, чем более универсальна задача, поэтому параметры новой сети задач обычно инициализируются базовыми предварительно обученными параметрами. Однако функции высокого уровня тесно связаны с задачами и на самом деле могут использоваться без них, или тонкая настройка может использоваться для очистки экстракторов нерелевантных функций высокого уровня с новыми наборами данных.

2.2 Word Embedding

Идея нейросетевой языковой модели (NNLM). Сначала поговорим о тренировочном процессе. Учебная задача состоит в том, чтобы вписать слова в предложение

[公式]
Слова t-1 предыдущего предложения требуют, чтобы сеть правильно предсказывала слово Bert, то есть максимизировала:

[公式]

любое слово перед

[公式]
Используйте кодировку Onehot (например: 0001000) в качестве исходного ввода слова, а затем умножьте матрицу Q, чтобы получить вектор
[公式]
, для каждого слова
[公式]
Сращивание, подключение к скрытому слою, а затем подключение к softmax, чтобы предсказать, за каким словом следует следовать. это
[公式]
что это? На самом деле это значение встраивания слова, соответствующее слову.Матрица Q содержит V строк, V представляет размер словаря, а содержимое каждой строки представляет значение встраивания в Word соответствующего слова. Однако содержание Q также является сетевым параметром, который необходимо изучить.В начале обучения матрица Q инициализируется случайными значениями.При обучении сети содержимое матрицы Q назначается корректно, и каждый row представляет значение внедрения слова, соответствующее слову. Итак, вы видите, изучая задачу языковой модели через эту сеть, эта сеть может не только предсказать, какое следующее слово будет основано на вышеизложенном, но и получить побочный продукт, матрицу Q, которая представляет собой встраивание слова в слово. .

В 2013 году самым популярным инструментом для встраивания Word с языковой моделью был Word2Vec, а позже появились Glove и Word2Vec. Для тех, кто не знаком с этими двумя моделями, можно обратиться к моим предыдущим статьям, которые здесь повторяться не будут:

Вышеупомянутая модельная практика является типичной практикой предварительного обучения в области НЛП 18 лет назад.Как я уже говорил, встраивание слов на самом деле полезно для многих последующих задач НЛП, но оно помогает зрителям, которые не слишком слепы, носить солнцезащитные очки. Просто глаза. Итак, возникает новый вопрос, почему эффект от обучения и использования Word Embedding не так хорош, как ожидалось? Ответ очень прост, потому что есть проблема с встраиванием Word. Это кажется относительно умственно отсталым ответом.Ключ в том, в чем проблема с встраиванием Word? На самом деле это хороший вопрос.

**Что это за темная туча, которая годами висела над Word Embedding? Это проблема полисемии. ** Мы знаем, что полисемия — частое явление в естественном языке, а также проявление языковой гибкости и эффективности. Каковы негативные последствия полисемии при встраивании слов? Как показано на рисунке выше, многозначное слово Bank, например, имеет два общих значения, но когда Word Embedded кодирует слово bank, оно не может различить два значения, потому что, хотя слова, встречающиеся в контексте, различны, но при обучении с языковой моделью, независимо от того, какие контекстные предложения проходят через word2vec, предсказывается один и тот же банк слов, и одно и то же слово занимает пространство параметров одной и той же строки, что приводит к тому, что две разные контекстные данные будут закодированы в один и тот же. пространство для встраивания слов. Следовательно, встраивание слов не может различать различную семантику полисемии, что является серьезной проблемой.

Есть ли простое и элегантное решение? ELMO предлагает аккуратное и элегантное решение.

2.3 ELMO

ELMO — это аббревиатура от «Встраивание из языковых моделей». На самом деле название не отражает его сути. Название диссертации ELMO: «Глубокое контекстуализированное представление слов» может лучше отражать его суть, а где же суть? Во фразе «глубокий контекстуализированный» одно является глубоким, а другое — контекстом, причем контекст более важен.

Предыдущее вложение слов по сути является статическим методом.Так называемый статический означает, что выражение каждого слова фиксируется после обучения.При его последующем использовании, независимо от контекста слова нового предложения, встраивание слова этого слова Это не будет меняться с изменением контекста сцены, поэтому для слова Банк он смешал несколько семантик в Word Embedding, которые он изучил заранее, и в приложении появляется новое предложение, даже если оно исходит из контекста (например, предложение содержит такие слова, как деньги). Можно ясно видеть, что оно представляет значение «банк», но соответствующее содержание Word Embedded не изменится, оно по-прежнему смешивает различные семантики. Вот почему говорят, что он статичен, и в этом проблема.

Основная идея ELMO заключается в том,: Я использовал языковую модель, чтобы заранее изучить Word Embedded слова.В это время многозначные слова нельзя различить, но это не имеет значения. Когда я фактически использую Word Embedded, слово уже имеет определенный контекст. В это время я могу настроить представление Word Embedded слова в соответствии с семантикой контекстного слова, чтобы скорректированное Word Embedded могло лучше выражаться в этом контексте. Конкретное значение естественным образом решает проблему полисемии. Так что сам ELMO — это идея динамической настройки Word Embedding в соответствии с текущим контекстом.

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

На приведенном выше рисунке показан процесс предварительной подготовки.В его сетевой структуре используется двухуровневый двунаправленный LSTM.Текущая задача обучения языковой модели состоит в том, чтобы

[公式]
контекст для правильного предсказания слов
[公式]
,
[公式]
Последовательность слов Context-before before вызывается выше, а последовательность слов Context-after after вызывается ниже.

Прямой двухуровневый LSTM в левой части рисунка представляет кодировщик прямого направления, и входные данные упорядочены слева направо, за исключением предсказанного слова.

[公式]
Вышеупомянутый контекст-до; обратный двухслойный LSTM на правом конце представляет кодировщик обратного направления, а вход представляет собой контекст предложения-после в обратном порядке справа налево; глубина каждого кодировщика представляет собой суперпозицию двух слоев ЛСТМ.

Эта сетевая структура на самом деле очень часто используется в НЛП. Использование этой сетевой структуры для использования большого количества корпусов для задач языковой модели может предварительно обучить сеть.Если сеть обучена, введите новое предложение

[公式]
, каждое слово в предложении может получить соответствующие три вложения:

  • Нижний слой — это встраивание слова в слово;
  • Подъем вверх — это встраивание соответствующей позиции слова в первый слой двунаправленного LSTM, который кодирует больше синтаксической информации слов;
  • Подъем вверх — это встраивание соответствующей позиции слова во второй слой LSTM, который кодирует больше семантической информации слова.

То есть процесс предварительной подготовки ELMO не только изучает встраивание слов в слова, но также изучает двухуровневую двунаправленную сетевую структуру LSTM, и оба они пригодятся позже.

Выше представлен первый этап ELMO: этап предварительной подготовки. Затем, после предварительной подготовки структуры сети,Как использовать его для последующих задач? На рисунке выше показано использование нижестоящих задач, например, наша нижестоящая задача по-прежнему является проблемой контроля качества:

  1. В это время для вопроса X мы можем сначала использовать предложение X в качестве входных данных предварительно обученной сети ELMO, чтобы каждое слово в предложении X могло получить соответствующие три вложения в сети ELMO;
  2. После этого каждому из трех вложений присваивается вес a, который можно узнать, и три вложения объединяются в одно в соответствии с кумулятивной суммой их соответствующих весов;
  3. Затем интегрированное вложение используется в качестве ввода соответствующего слова в сетевой структуре предложения X в своей собственной задаче и используется в качестве дополнительной новой функции для последующей задачи. То же самое верно и для ответного предложения Y в нисходящей задаче QA, показанной на рисунке выше.

Поскольку ELMO предоставляет форму признаков каждого слова нижестоящим, этот тип метода предварительного обучения называется «Предварительное обучение на основе признаков».

Ранее мы упоминали, что статическое встраивание слов не может решить проблему полисемии, поэтому проблема полисемии решена после того, как ELMO представил контекстно-динамически корректируемое встраивание слов? Решено, и лучше, чем мы ожидали. Для словесного вложения, обученного Перчаткой, многозначные слова, такие как игра, большинство ближайших других слов, найденных по его вложению, сосредоточены в спортивном поле, что, очевидно, потому, что обучающие данные содержат количество спортивных площадок в предложении игры. Явно доминантным; а с помощью ELMO динамическое встраивание в соответствии с контекстом может не только найти предложение с той же семантикой соответствующего «спектакля», но и обеспечить, чтобы соответствующая пьесе часть речи в найденном предложении также была то же самое превосходит все ожидания. Причина этого в том, что мы упоминали выше, что первый уровень LSTM кодирует много синтаксической информации, которая играет здесь важную роль.

Какие недостатки ELMO стоит исправить??

  • Прежде всего, очень очевидным недостатком является выбор экстракторов признаков.ELMO использует LSTM вместо выскочки Transformer.Отличный ответ, многие исследования доказали, что способность Transformer извлекать признаки намного сильнее, чем LSTM. Если ELMO примет Transformer в качестве экстрактора признаков, по оценкам, реакция Берта будет намного меньше, чем текущая горячая сцена.
  • Другой момент заключается в том, что способность ELMO использовать функцию слияния двунаправленного сплайсинга может быть слабее, чем у Берта, объединяющего функции слияния.Однако это только подозрение, вытекающее из рационального вывода, и в настоящее время нет конкретного эксперимента, иллюстрирующего это. точка.

2.4 GPT

GPT — это аббревиатура от «Generative Pre-Training», и его значение относится к генеративному предварительному обучению из названия. GPT также использует двухэтапный процесс: на первом этапе используется языковая модель для предварительной подготовки, а на втором этапе решается следующая задача в режиме тонкой настройки.

На приведенном выше рисунке показан процесс предварительной подготовки GPT, который на самом деле похож на ELMO, но с двумя основными отличиями:

  • Прежде всего, средство извлечения признаков использует не RNN, а Transformer.Как упоминалось выше, его способность извлечения признаков сильнее, чем RNN.Этот выбор, очевидно, очень разумен;
  • Во-вторых, хотя предварительная подготовка GPT по-прежнему использует языковую модель в качестве целевой задачи, она использует одностороннюю языковую модель.Так называемая «односторонняя» означает: цель задачи обучения языковой модели основана на
    [公式]
    контекст слова, чтобы правильно предсказать слова
    [公式]
    ,
    [公式]
    Последовательность слов Context-before before вызывается выше, а последовательность слов Context-after after вызывается ниже.

Если вы мало знаете о модели Transformer, вы можете обратиться к статье, которую я написал:Transformer

ELMO предсказывает слова при предварительном обучении языковой модели

[公式]
Используются как выше, так и последующее, в то время как GPT использует только приведенный выше текст слова Context-before для прогнозирования и игнорирует следующее. Этот выбор сейчас не является хорошим выбором, причина очень проста, он не интегрирует текст слова, что ограничивает его действие в других сценариях приложений, таких как задачи на понимание прочитанного, это можно сделать при выполнении задач. Разрешено чтобы увидеть выше и ниже, чтобы принимать решения вместе. Если текст слова не встроить в Word Embedding при предобучении, это будет очень невыгодно, и много информации будет потеряно зря.

2.5 BERT

Берт использует точно такую ​​же двухэтапную модель, что и GPT: сначала выполняется предварительное обучение языковой модели, а затем используется режим тонкой настройки для решения последующих задач. Основное отличие от GPT в том, что на этапе предобучения используется двунаправленная языковая модель, аналогичная ELMO, то есть двунаправленный Transformer.Конечно, другой момент в том, что размер данных языковой модели больше, чем у GPT. Поэтому о предтренировочном процессе Берта здесь говорить не нужно. Структура модели следующая:

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

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

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

Модель предварительного обучения BERT разделена на следующие три этапа:Встраивание, маскирование LM, предсказание следующего предложения

2.5.1 Embedding

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

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

2.5.2 Masked LM

МЛМ можно понимать как клоуз, автор будет случайным образом маскировать 15% слов в каждом предложении и использовать его контекст для предсказаний, например: моя собака волосатая → моя собака [МАСКА]

Здесь волосатый маскируется, а затем используется метод неконтролируемого обучения, чтобы предсказать, какое слово находится в позиции маски, но у этого метода есть проблема, потому что это слово с 15% маски, и его количество уже очень высокий, что приведет к определенному Эти слова никогда не встречались на этапе тонкой настройки.Чтобы решить эту проблему, автор сделал следующую обработку:

80% используют [маску], моя собака волосатая → моя собака [МАСКА]

10% — это случайное слово для замены слова-маски, моя собака волосатая -> моя собака — яблоко

10% остается прежним, моя собака волосатая -> моя собака волосатая

Примечание: 10% здесь 15% требует 10% маски

Так зачем использовать случайные слова с некоторой вероятностью? Это связано с тем, что преобразователь должен поддерживать распределенное представление каждого входного токена, иначе преобразователь, вероятно, запомнит, что [MASK] является «волосатым». Что касается негативного влияния использования случайных слов, в статье объясняется, что все остальные токены (т. е. не «волосатые») имеют вероятность 15% * 10% = 1,5%, а влияние незначительно. Глобальная видимость Transformer увеличивает получение информации, но не позволяет модели получать полную информацию.

2.5.3 Next Sentence Prediction

Выберите несколько пар предложений A и B, из которых 50 % данных B являются следующими предложениями A, а оставшиеся 50 % данных B выбираются из корпуса случайным образом, и изучите корреляцию между ними. такое предварительное обучение заключается в том, что в настоящее время существует множество задач NLP, таких как QA и NLI, которые должны понимать взаимосвязь между двумя предложениями, чтобы предварительно обученные модели можно было лучше адаптировать к таким задачам. Личное понимание:

  • Берт сначала использовал Маску для увеличения объема информации, получаемой в поле зрения, добавляя дублирующую, а затем случайную Маску, которая ничем не отличается от метода РНС для обучения прогнозированию в последовательности за исключением разных положений маски;
  • Глобальное представление значительно снижает сложность обучения, а затем в качестве образца используется A+B/C, так что каждый образец имеет 50%-ю вероятность увидеть примерно половину шума;
  • Однако невозможно выучить маску A+B/C напрямую, потому что я не знаю, какие из них являются шумом, поэтому я добавляю задачу предсказания next_sentence и обучаю ее одновременно с MLM, так что next используется для помощи модель для определения шума/не шума. Большая часть изучения семантики выполняется с помощью MLM.

3. Оценка BERT

Суммируйте основные вклады BERT:

  • Представлен Masked LM, использующий двунаправленный LM для предварительной подготовки модели.
  • Для предварительного обучения вводится новый целевой NSP, который может изучать отношения между предложениями.
  • Дальнейшая проверка того, что более крупные модели работают лучше: 12 --> 24 слоя.
  • Для последующих задач вводится очень общая структура решения, и для задач больше не требуется настройка модели.
  • Он обновил записи многих задач НЛП и взорвал технологию неконтролируемой предварительной подготовки НЛП.

Преимущества БЕРТ

  • Поскольку Transformer Encoder имеет механизм самоконтроля, BERT имеет собственную двунаправленную функцию.
  • Из-за двунаправленной функции и многоуровневого механизма самоконтроля BERT должен использовать Cloze-версию языковой модели Masked-LM для выполнения предварительного обучения на уровне токенов.
  • Чтобы получить семантические представления на уровне предложений выше, чем слова, BERT присоединяется к предсказанию следующего предложения для совместного обучения с Masked-LM.
  • Чтобы адаптироваться к передаче обучения в условиях многозадачности, BERT разрабатывает более общий входной слой и выходной слой.
  • Стоимость тонкой настройки небольшая.

Недостатки БЕРТ

  • Стратегия случайной окклюзии задачи 1 немного грубая.Рекомендуется прочитать «Выделение данных как сглаживание в языковых моделях нейронных сетей».
  • Метка [MASK] не отображается в фактическом прогнозе, и использование слишком большого количества [MASK] во время обучения влияет на производительность модели. Прогнозируется только 15% токенов на пакет, поэтому BERT сходится медленнее, чем модели слева направо (они предсказывают каждый токен).
  • BERT потребляет много аппаратных ресурсов (16 tpu для большой модели, которая проработала четыре дня; более крупная модель, 64 tpu, которая продержалась четыре дня.

Оценка

Берт является важной вехой в НЛП, и нет сомнений, что она окажет долгосрочное влияние на исследования и промышленное применение НЛП в будущем. Однако из приведенного выше введения видно, что с точки зрения модели или метода Берт опирается на ELMO, GPT и CBOW и в основном предлагает модель маскированного языка и прогнозирование следующего предложения, но здесь прогнозирование следующего предложения в основном не влияет на общий результат. ситуации, при этом Masked LM явно заимствован из идеи CBOW. Таким образом, в модели Берта нет серьезных нововведений. Она больше похожа на мастер важного прогресса НЛП за последние годы. Если вы понимаете вышеизложенное, считается, что особых возражений нет. Если у вас есть серьезные возражения, большая шляпа Я готов надеть его тебе в любое время. Если резюмировать эти события следующим образом:

  • Первая представляет собой двухэтапную модель.Первый этап представляет собой предварительную подготовку двусторонней языковой модели.Обратите внимание, что здесь используется двусторонний, а не односторонний.На втором этапе используются конкретные задачи.Точная настройка или интеграция функций;
  • Во-вторых, использовать Transformer в качестве экстрактора признаков вместо RNN или CNN для извлечения признаков;
  • В-третьих, двусторонняя языковая модель может быть реализована в методе CBOW (конечно, я думаю, что это вопрос деталей, не слишком критично, первые два фактора более критичны).

Самой большой изюминкой Берта является его хороший эффект и сильная универсальность.Почти все задачи НЛП могут применять двухэтапное решение Берта, и эффект должен быть значительно улучшен. Можно предвидеть, что Transformer будет доминировать в области приложений НЛП в течение некоторого времени, и этот двухэтапный метод предварительного обучения также будет доминировать в различных приложениях.

4. Реализация кода

практика китайской классификации Берта

Машинное обучение легко понять серия статей

5. Ссылки


автор:@mantchs

GitHub:GitHub.com/NLP-love/ml…

Приглашаются все желающие присоединиться к обсуждению! Улучшайте этот проект вместе! Номер группы: [541954936]NLP面试学习群