1. ЭЛМО (2018.2.15)
Elmo основан на двунаправленном LSTM и обучается с использованием идей классических языковых моделей. Предварительно нужно предварительно потренироваться на большом количестве корпуса, а т.н.deep contextualizedЗатем векторы слов объединяются в различных задачах НЛП с помощью определенных методов.
1. Модель пророчества
для последовательности N слов, через известную последовательностьвычислять, поэтому форвардная модель оракула получает формулу вероятности каждого токена следующим образом:В соответствии с приведенной выше моделью прогнозирования используется предложение (каждый токен представлен традиционным независимым вложением слов).LSTM слоя может получить представление независимо от контекста.
на этослой LSTM,Соответствующие представления токенов. Вывод верхнего уровня LSTMh^{LM}_{k,L} использует слой Softmax для предсказания следующего слова $$t_{k+1}.
Вышеприведенный пример — прямой LSTM, обратный LSTM — та же идея:
Максимизируйте как прямые, так и обратные вероятности во время обучения.
Параметры вектора слова и слоя Softmax являются общими, а прямой LSTM и обратный LSTM обучают свои соответствующие параметры.
2.Elmo
дляДвунаправленный LSTM слоев на токенможно иметьКаждый вектор представляет:Для каждого слояРавные j-слою прямые и обратные векторы объединяются вместе, чтобы получить.
ELMO интегрирует выходные данные многослойного biLSTM в вектор, в простейшем случае ELMo использует только вектор верхнего уровня.
Однако говорят, что лучшая модель ELMo — добавить все выходные данные biLSTM к нормализованному softmax, чтобы узнать веса, что немного похоже на принцип внимания.
в, - коэффициент масштабирования, который эквивалентен использованиюРанее использовалась нормализация слоя для каждого слоя biLSTM:
3. Доступ к нижестоящим методам задач
(1) Прямое преобразование вектора слов ELMoс обычными векторами словсплайсинг (concat). (2) Прямое преобразование вектора слов ELMoс выходным вектором скрытого слоясоединение, в SNLI, SQuAD улучшились.
2. GPT, GPT2.0, GPT3.0
GPT — это модель прогнозирования перед обучением, более ранняя, чем Bert, а также новаторская работа в режиме предварительной подготовки + тонкой настройки. Но все версии GPT используют модель одностороннего оракула. И используйте декодер-трансформер.
- GPT1.0
Как показано на рисунке выше, структура модели GPT состоит из 12 декодеров Transformer, расположенных друг над другом. Ввод модели на этапе тонкой настройки с использованиемStart,Delim, Extractсшивание.
- GPT 2.0
Структура модели и метод предварительной подготовки практически такие же, как и до GPT1.0. Разница:
- Используйте больший корпус и корпус лучшего качества.
- Экспериментальная настройка нулевого выстрела, без акцента на использование тонкой настройки.
- более крупная модель.
- GPT 3.0
Несколько ключевых моментов:
- более крупная модель
- Больше нет необходимости в тонкой настройке
- Лучше всего работает экспериментальная установка с несколькими выстрелами.
- Это по-прежнему модель одностороннего прогнозирования, реализованная Transformer.
2. BERT (2018.10.11)
Берт использует Transformer как компонент для совместного обучения и конвергенции для двух контролируемых задач одновременно. Эти две задачи состоят в том, чтобы предсказать слово маски и предсказать отношения между двумя предложениями.Первая задача может рассматриваться как модель обучения информации на уровне маркера, и она является двунаправленной. Вторая задача — изучить информацию на уровне предложений и даже на уровне документов. Слои описаны ниже:
- Input/Output Representations
Используйте пару предложений {A, B} для создания входных данных, соедините их с [SEP] и начните с [CLS], а скрытое состояние соответствующего последнего слоя [CLS] можно использовать для задач классификации предложений. Создайте входное представление, используя три слоя закодированных сумм:
- Вложения WordPiece для создания вложений токенов
- Используется для указания того, принадлежит ли токен предложению A или предложению B, называемому внедрением сегмента.
- позиционные вложения, изученный вектор встраивания.
- Pre-training BERT
- 2.1 Pre-training Task 1#: Masked LM(masked language model)
Поскольку традиционные условные языковые модели могут обучаться только слева направо или справа налево, чтобы получить двустороннее представление для обучения, BERT просто случайным образом маскирует некоторые токены, а затем только предсказывает замаскированные слова, это называется ЛМ в маске.
Потому что нижестоящая задача не будет иметь флаг [MASK]. Таким образом, будет несоответствие между предварительной подготовкой и тонкой настройкой, поэтому стратегия маски, принятая автором, такова: Вместо того, чтобы всегда заменять замаскированный токен на [MASK], в обучающих данных случайным образом выберите 15% токенов для предсказания, а затем замените i-й токен на 80% [MASK], 10% случайный токен и 10% сам. Другие ссылки на объяснения:appendix-A
Затем используйте перекрестную потерю энтропии (перекрестную потерю энтропии), чтобы использовать скрытые переменные последнего слоя., чтобы предсказать исходный токен. Потеря для этой задачи обозначается как masked_lm_loss.
Примечание: masked_lm_loss предсказывает только замаскированный токен, а не другие токены.
- 2.2 Pre-training Task 2#: Next Sentence Prediction
Потому что многие последующие задачи, такие как QA и NLI, должны изучать взаимосвязь между уровнями предложений. Поэтому другой задачей BERT является выполнение бинарной классификации задачи предсказания следующего предложения (Next Sentence Prediction, NSP). При построении обучающих данных 50% пар предложений {A,B} являютсяIsNextотношения, остальные 50%NotNextсвязь. Потеря этой задачи записывается как next_sentence_loss.
Затем совместно тренируйтесь, окончательная потеря представляет собой сумму двух потерь задачи: total_loss = masked_lm_loss + next_sentence_loss
- Fine-tuning
После предварительной подготовки выходные данные модели и представление токена проходят через сетевой уровень для выполнения задач на уровне токенов, таких как маркировка объектов, mrc и т. д. Представление [CLS] головы используется для задач классификации, таких как анализ настроений, предсказание отношений наследования предложений и т. д. Конечно, для разных задач нужно настраивать разные функции потерь, например:
-
КЛЕЙ Используя токен [CLS] в начале, его представление записывается как, сетевой вес классификационного слоя записывается как. Затем используйте стандартную задачу классификации потерь:.
-
Отряд v1.1 Строительный вход A — это вопрос, а B — проход. Затем введите два вектора, вектор начального положенияи вектор конечного положения.
Представление i-го слова записывается как, то его распределение вероятностей в качестве нижнего индекса начала ответа:Распределение вероятностей конца нижнего индекса ответа использует ту же формулу. Тогда вероятность диапазона ответов кандидата (от позиции i до позиции j) равна:. Максимальное количество баллов и удовлетворить оба, окончательный результат прогноза. Целью обучения является сумма логарифмических вероятностей правильного начала и окончания.
Сценарии для BERT
- Решите задачи на сопоставление предложений или абзацев
- Включите ответ на самом языке, не полагаясь конкретно на другие функции, кроме текста.
- Bert больше подходит для решения задач NLP, где длина ввода не слишком велика.
- Применимый сценарий Берта связан со степенью востребованности глубоких семантических признаков в задачах НЛП. Чем больше задач, требующих глубоких семантических особенностей, тем более подходит Берт для их решения.
3. RoBERTa(2019.7.26)
RoBERTa (надежно оптимизированный подход к предтренировке BERT) — это улучшенный BERT. Основные пункты этой статьи:
-
Статическая маскировка против динамической маскировки
Изначально Берт случайным образом выбрал 15% токенов для каждой последовательности и заменил их на [MASK].Чтобы устранить несоответствие с последующими задачами, он также заменил эти 15% токенов на [MASK] для (1) 80% время; (2) ) 10% времени остается без изменений; (3) 10% времени заменяется другими словами. Однако в течение всего процесса обучения после выбора 15% токенов они не изменятся, а это означает, что 15% токенов выбираются случайным образом с самого начала и не изменятся в следующие N эпох. Это называется статической маскировкой. В начале RoBERTa скопировал 10 предтренировочных данных, каждый из которых случайным образом выбрал 15% токенов для маскирования, то есть существует 10 различных методов маскирования для одного и того же предложения. Затем каждые данные обучаются для N/10 эпох. Это эквивалентно тому, что при обучении этих N эпох будут меняться замаскированные токены каждой последовательности. Это называется динамической маскировкой. Так действительно ли это изменение работает? Автор провел эксперимент, заменив только статическую маскировку на динамическую маскировку и сохранив другие параметры без изменений.Динамическая маскировка действительно может улучшить производительность.
2. с ПОШ и без ПОШ
3. Большие мини-партии
4. Больше данных, дольше обучение
4. AlBert (2019.12.26)
Основное исследование AlBert заключается в том, как уменьшить параметры и уменьшить модель.Модель сокращает время обучения, и время прогнозирования будет сокращено, конечно, производительность не может быть снижена. В общей сети Берта пусть размер встраивания словаря будет, уровень кодировщика, размер скрытого слоя, затем установите размер прямой связи/фильтра на, количество головок внимания равно. Основная структура модели АльБерта и Берта осталась неизменной, и были внесены три основных улучшения:
1.Factorized embedding parameterizatio
В Bert и последующих улучшениях, таких как XLNet и RoBERTa, размер вектора слова WordPieceразмер скрытого слоясвязанных, таких каквсегда равно. Эта настройка может не понадобиться. Автор считает, что вектор слова WordPiece является обучаемым * контекстно-независимым (контекстно-независимым), а вектор скрытого слоя изучаетсяКонтекстно-зависимые* представления. В то время как модель, подобная модели Берта, имеет преимущество обучения контекстно-независимым представлениям путем получения сигналов из контекста, поэтому размер встраивания слова WordPiece составляетразмер из скрытого слоявыделены так, чтобы общие параметры модели можно было использовать более эффективно, гденамного больше, чем.
Если размер словаря, размер матрицы вложения модели класса Берта равен, на этот раз легко достигая значения параметра уровня миллиарда.
так,Альберт хочет порватьиСвязывание связи между ними, тем самым уменьшая количество параметров модели, улучшая при этом производительность модели.
В AlBert параметры вложения разложены на две меньшие матрицы. вместо отображения горячего вектора непосредственно наскрытый вектор размера, в AlBert, сначала сопоставьте его сразмер встраивания, а затем поместите его в скрытый слой. Это разложение матрицы вложения на двеиматрица. Таким образом, вы можете встроить вектор изстать,когданамного больше, чем, снижение параметров очень существенное.
На приведенном выше рисунке показан вход BERT с одним горячим вектором.Первая проекция заключается в том, что между словами нет взаимодействия (не зависит от контекста). Только когда дело доходит до внимания, происходит взаимодействие между словами (зависит от контекста). Таким образом, первая проекция не требует векторов очень большой размерности.
На изображении АльБерта выше вы можете поместить первое сопоставление в очень низкое измерение, а затем увеличить масштаб до большого измерения, когда делаете внимание в контексте. Словарный запас модели обучения НЛП обычно очень велик, поэтому первое горячее векторное сопоставление с параметрами встраивания будет много. В этом есть два преимущества:
- параметры значительно снижены
- Разблокируйте между контекстно-независимым представлением слова и контекстно-зависимым представлением, вы можете свободно усиливать контекстно-зависимое представление, то есть сеть становится шире
2.Cross-layer parameter sharing
Существует несколько методов совместного использования параметров на выбор, например, совместное использование только параметров сети прямой связи (FFN) между слоями и совместное использование только параметров внимания. Стратегия, принятая AlBert, заключается в совместном использовании всех параметров между слоями.
3.Inter-sentence coherence loss
В Берте используются две потери, однаmasked_lm_loss, другойnext_sentence_loss. Есть статья об удаленииnext_sentence_loss, обнаружил, что производительность модели не оказала большого влияния. Так думает авторnext_sentence_lossПричина небольшого эффекта в том, что эта задача слишком проста, модели нужно выучить только два предложения с разными темами, и она повторяется с МЛМ, из-за чего Берт выучивает почти все из МЛМ. Поэтому Альберт принимаетsentence-order prediction (SOP)loss, структура обучающих данных аналогична Берту: в качестве положительного примера берутся два последовательных предложения из одного и того же документа, а в качестве отрицательного примера те же два предложения переворачиваются. Довольно мистический.
анализировать:
- Эффект: AlBert лучше, чем Bert, за исключением того, что вышеприведенная версия large лучше, чем Bert, например, xlarge и xxlarge.
- Скорость: На этапе прогнозирования (прямое распространение) разницы между AlBert и Bert в той же версии почти нет, Строго говоря, Albert еще медленнее, потому что Embedding AlBert также должен выполнять операцию декомпозиции матрицы. так,AlBert не улучшает скорость предсказания!
5. ELECTRA (2020.4.23)
Языковая модель, которую использует Берт, представляет собой MLM, т. е. она случайным образом маскирует 15% токенов, а затем обучает модель прогнозировать токены в замаскированных позициях. Тогда всем известна сложность обучения Берта.Эта ELECTRA опирается на идею GAN для построения модели. Берт только предсказывает токен замаскированной позиции, эта задача слишком проста (последняя статья АльБерт думает Next Sentence Prediction, вроде бы улучшение Берта заключается в том, чтобы усложнить задачу, надо сначала потрудиться, поработать мышцами, и сожрать кожу своего тела, ,). Итак, как ввести более сложную задачу? Сначала он использует модель MLM, которую автор называет Генератор, чтобы переписать предложение, то есть заменить позицию MASK некоторыми токенами, а затем использует другую сеть, которую автор называет Дискриминативной, чтобы предсказать, является ли каждый токен в предложении правильным. заменены (проблема маркировки последовательности). Эту задачу авторы называютreplaced token detection.
- Pre-training
Структура модели показана выше, Генератор и Дискриминатор являются энкодерами Берта. На этапе pre_training G и D обучаются вместе, на этапе Fine_tuning G остается неизменным, и только D выполняет обновление параметров.
Для ввода:, кодирование для получения вектора:
На этапе pre_training, поскольку обратное распространение между Генерато и Дискриминатором невозможно, левая и правая сети фактически обучаются независимо:
- Generator
Сеть генератора слева, которая является стандартным MLM, вычисляет вероятность предсказания токена во всех позициях [MASK] для позиции, Генератор генерирует токенВероятность:
убыток определяется как:
- Discriminator
Используемая обучающая выборка, называемая в статье поврежденным примером., который создается с помощью генератора для замены замаскированного маркера.
Затем позвольте Дискриминатору предсказатьБыло ли заменено:
Потеря диска справа определяется как:
- loss
Окончательный режим тренировки представляет собой взвешенную сумму двух потерь:Поскольку задача дискриминатора относительно проста, потери RTD будут малы по сравнению с потерями MLM, поэтому добавляется коэффициент, и автор использует для обучения 50.
6. XLNet (2019.6.19)
Автор определяет два режима предварительной подготовки, представленные в настоящее время на рынке, как AR (авторегрессивный) и AE (автокодирование).режим дополненной реальностиЕсть ELMO и GPT.Проблема в том, что он использует одностороннюю модель прогнозирования для прогнозирования.Хотя ELMO использует двухсторонние языковые модели, эффект все еще очень слабый.Режим автоэкспозиции, такие как BERT, черезMasked LMДвунаправленная языковая модель может быть хорошо реализована, но есть две проблемы: 1. Символы [MASK] находятся только в предварительной подготовке, но не в тонкой настройке, поэтому это вызываетдвухэтапное отклонение. 2. Предположение BERT состоит в том, что прогнозируемые токены полностью независимы, что слишком просто для естественного языка, чтобы иметь длинные зависимости. Например, ввод во время предварительного обучения: «естественная [Маска] [Маска] обработка», целевая функция на самом деле, в то время как при использовании AR это должно быть. Таким образом, распределение вероятностей, полученное с помощью BERT, также основано на этом предположении.Игнорировать связь между этими токенами.
Поэтому XLNet предложила схему По сравнению с BERT есть три изменения:
- Используйте моделирование языка перестановок. Автор предлагаетtwo-stream attentionреализовать.
- Основываясь на идее Transformer-XL, он больше подходит для длинных текстов, поэтому лучше справляется с задачей SQuAD.
- Задача NSP (предсказание следующего предложения) больше не используется. XLNet использует относительное кодирование сегментов,Только судите, находятся ли два токена в сегменте, а не к какому сегменту они принадлежат.
- Больше и лучше корпус.
Реализация XLNet
- Permutations
для последовательностиx = [This, is, a, sentence], длина последовательности, то количество комбинаций равноКусок. Например, при расчете вероятности того, что третья позиция жетона задана двумя первыми. Предположим, что есть три комбинации: [1, 2, 3, 4], [1, 2, 4, 3] и [4, 3, 2, 1] , тогда соответствующая вероятность равна:,и.
Следовательно, целевая функция XLNet состоит в том, чтобы выполнить модель прогнозирования AR для всех комбинаций, чтобы максимизировать комбинированную вероятность правдоподобия однонаправленного прогнозирования:
2. Attention Mask
Модель решает проблему порядка токена.В преобразователе в качестве входных данных одновременно добавляются встраивание позиции и встраивание слова. Например,. Однако в XLNet порядок следования уже перемешан, поэтому использовать такое относительное положение неправильно. использовать здесьattention maskЧтобы добиться, например, для комбинации [3, 2, 4, 1], модель вычисляет вероятность первой позиции, а именно «а», потому что впереди нет токена, поэтому нет контекста, тогда его соответствующая маска [0,0,0,0]. Таким же образом можно получить матрицу маски этой комбинации:Другое представление (Указывает, что эта позиция является маской):
- Two-stream self-attention
Это еще одна проблема, которую следует учитывать: нам нужно не только рассчитать условную вероятность предсказания токена в определенном месте в контексте, нам также нужно знать, какое место предсказывает модель. То есть для расчета:, это, естьВероятность. Но Transformer напрямую добавляет встраивание позиций и встраивание слов вместе, то есть:. Но в XLNet, поскольку порядок токенов перемешивается, модель не знает, что это, даже не знаю, есть ли это в последовательности. Решение заключается в использованииtwo-stream self-attention mechanism, на слое m каждыйМаркер местоположения, представленный двумя векторами:и.Инициализация представляет собой встраивание слов + встраивание позиции, иИнициализация представляет собой общее встраивание + встраивание позиции.Он обновляется в потоке контента, который является обычным вниманием к себе, которое обновляется с помощью Q, K и V.Обновите в потоке запроса, используйте вектор содержимого немаскированной части как K и V и обновите себя как Q в предыдущем слое.
На рисунке ниже показано, что вЭтаж,Как обновляется:
Давайте еще раз посмотрим на примеры и рисунки в статье: Для входной последовательности (1,2,3,4), если вы хотите вычислить комбинацию (3,2,4,1), передайтекрая матрицы маскиможно реализовать,Но на самом деле его входная последовательность все еще (1,2,3,4)Что вычисляется через эту маску:, , , , то есть может быть реализована комбинация вычислений (3, 2, 4, 1). По сути, это стандартное внимание к себе. Таким образом, XLNet одновременно «считывает» следующий токен при построении модели оракула.
В матрице маски на рисунке красными точками обозначены части, которые не маскируются.
Ссылка 1 Принцип и анализ кода работы внутреннего внимания и маски в Transformer
7. SpanBERT (2019.7.24)
По сравнению с Bert, SpanBERT имеет два основных изменения:
- MLM не является случайной маской, а каждый раз маскирует все токены в интервале, а длина и начальная позиция этого интервала выбираются случайным образом.
- Больше не используйте задачу NSP (прогнозирование следующего предложения), вместо этого используйте задачу SBO (цель границы диапазона).
На приведенном выше рисунке показан режим обучения SpanBERT. Интервал «игра в американский футбол» маскируется, и SBO использует вектор скрытого слоя маркеров с обеих сторон интервала (,) для прогнозирования каждого токена в диапазоне. Вышеприведенный рисунок представляет собой описание потери двух задач MLM и SBO при прогнозировании футбола, где футбол является третьим токеном в отрезке, а его вектор положения равен.
1.mask span
Для ввода предложения итеративно создайте ввод маски.Когда часть маски достигает 15%, процесс заканчивается. Длина пролета и начальная позиция пролета, выбираемые каждый раз, являются случайными, и длина пролета подчиняетсягеометрическое распределение, а максимальная длина может быть только 10. Авторы экспериментально определили, что наилучшие показатели были при p=0,2, когда средняя длина пролета составляла 3,8.
В Bert для всех токенов, которым требуется маска, 80% слов будут заменены на [MASK], 10% слов будут случайным образом заменены другими словами, а 10% слов останутся без изменений. Та же стратегия используется в SpanBERT, за исключением того, что она применяется к каждому промежутку.
2.SBO task
Когда размах маски,вУказывает начальную и конечную позиции пролета, а задача SBO состоит в том, чтобы использовать представление токенов с обеих сторон пролета (, ), чтобы предсказать каждый токен в диапазоне. когда предсказыватьМестонахождение токена:
где вектор положения относительноотносительное положениеПросто используйте простую двухслойную нейронную сеть.
Затем используйте векторное представление позиции iпредсказывать, потеря заключается в расчете перекрестной энтропии.
3.loss
Потери предыдущих заданий суммируются.
4. Реализация
- Вектор положения использует 200-мерный вектор.
- Введите, чтобы использовать более длинное предложение.
5. Эксперименты и анализ
- SpanBERT особенно хорошо работает при экстрактивных ответах на вопросы.
- Обучение длинным предложениям, которое отбрасывает NSP, как правило, лучше, чем оригинальный двухсегментный метод BERT.
6. Ссылка
8. Bert-WWM
Разница между Bert-WWM (Whole Word Masking) и Bert заключается в методе маскирования. В английском корпусе WordPiece используется для разделения предложений, то есть для разделения более длинных слов и маскирования их отдельно («##токен» используется в словаре, чтобы указать, что токен является отдельной частью). В китайском Bert маска обычно выполняется непосредственно на уровне token_level. И Bert-WWM заключается в том, чтобы маскировать определенную лексему после сегментации предложения, и в то же время маскировать другие лексемы слова, где находится лексема, а вход модели все еще находится на уровне лексемы. Следующий пример более нагляден:
инструкция | Образец |
---|---|
Первоначальный текст | Используйте языковую модель, чтобы предсказать вероятность следующего слова. |
текст сегментации слов | Используйте языковую модель, чтобы предсказать вероятность следующего слова. |
Результаты Маски Берта | Используйте тип языка [MASK] для [MASK] для измерения pro [MASK] ##lity следующего слова. |
Результаты маски для Bert-WWM | Используйте язык [MASK] [MASK] для [MASK] [MASK] [MASK] [MASK] [MASK] следующего слова. |
Дальше все как у Берта.
Посмотрите на его экспериментальные результаты на LCQMC:
9. ERNIE (2019.3)
Во-первых, нет никакой разницы между структурой модели Baidu RENIE и BERT, разница в том, что слова его маски не полностью случайны, а используют знание карты. Согласно статье, таким образом, ERNIE напрямую моделирует семантические знания и повышает способность модели семантического представления.
-
Различные методы маски
Как показано на рисунке, bert маскирует только один токен, а ERNIE использует три метода маскирования, а именно токен, сущность и фразу.
-
Представляем беседу об обучении DLM
ERNIE также вводит данные диалога на форуме, использует DLM (модель языка диалога) для моделирования структуры диалога «запрос-ответ», принимает диалоговую пару в качестве входных данных и позволяет модели научиться определять, является ли текущий многоэтапный диалог реальным или фальшивым. .
10. ERNIE 2.0
Познакомить с многозадачным обучением. Введите до 7 задач для тонкой настройки модели (не на этапе предварительного обучения) и используйте метод дополнительных задач для предварительного обучения.