XLNet в деталях

искусственный интеллект NLP
XLNet в деталях

Во время обучения BERT некоторые слова маскируются, чтобы модель могла использовать двунаправленную информацию предложений и достигать хороших результатов во многих задачах NLU. Но BERT игнорирует взаимосвязь между словами-масками, и процесс тонкой настройки несовместим с процессом предварительной подготовки (слова без маски во время тонкой настройки). XLNet использует PLM (модель языка перестановок), случайным образом упорядочивает предложения, а затем тренируется методом авторегрессии для получения двунаправленной информации и изучения зависимостей между токенами. Кроме того, XLNet использует Transformer-XL, использующий более широкую контекстную информацию.

1. Введение

В статье XLNet впервые выдвигается интересный момент, который разделяет текущую предобучающую модель на две категории: AR (Auto Regression, авторегрессия) и AE (Auto Encoder, автокодировщик).

GPT — это метод дополненной реальности, который постоянно использует доступную в настоящее время информацию для прогнозирования следующего результата (авторегрессия). BERT — это метод AE, который маскирует некоторые слова входного предложения, а затем восстанавливает данные с помощью BERT, процесса, аналогичного автокодировщику шумоподавления (DAE). Детская обувь, не знакомая с GPT и BERT, может обратиться к предыдущей статье,«Сведения о моделях OpenAI GPT и GPT2»и«Полное понимание модели Google BERT».

Метод AR может лучше изучить зависимости между токенами, в то время как метод AE может лучше использовать глубокую двунаправленную информацию. Поэтому XLNet надеется объединить преимущества методов AR и AE.Permutation Language Model (PLM)добиться этого.

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

XLNet_permutation_example.png

Затем вводятся детали реализации в XLNet.Для реализации PLM XLNet предлагает двухпотоковое самообслуживание и частичное предсказание. Кроме того, XLNet также использует механизм повторения сегментов и относительное позиционное кодирование в Transformer-XL.Дети, которые не знакомы с Transformer-XL, могут обратиться к предыдущей статье.«Языковая модель Transformer-XL».

2.Permutation Language Model

PLM (модель языка перестановок) является основной идеей XLNet.Во-первых, токены предложений располагаются случайным образом, а затем AR используется для прогнозирования слов в конце предложения, так что XLNet может иметь преимущества как АЕ и АР.

2.1 Введение в PLM

Внедрение PLM через маску внимания в XLNet без фактического изменения порядка токенов предложений. Например, исходное предложение — [1,2,3,4], если случайно сгенерированная последовательность — [3,2,4,1], входное предложение в XLNet по-прежнему [1,2,3,4], но маску необходимо изменить, как показано ниже.

Query_mask_example.png

В матрице маски на рисунке красный цвет означает отсутствие маскирования, а белый цвет означает маскирование. Строка 1 представляет маску для токена 1, как вы можете видеть, 1 — это последний токен предложения, поэтому вы можете видеть все предыдущие токены (3,2,4). 3 — это первая лексема предложения, информация о предложении не видна, поэтому строка 3 полностью белая (указывает на окклюзию).

2.2 Two-Stream Self-Attention

Двухпоточная концепция

XLNet нарушает порядок предложений. В это время информация о местоположении токена будет очень важна при прогнозировании. В то же время информация о содержании токена также должна быть охвачена при прогнозировании (иначе ввод содержит информацию о содержании быть предсказанным, и модель не может получить знания).То есть XLNet должен видеть информацию о местоположении токена, но не может видеть информацию о содержимом токена., поэтому XLNet использует для этой цели два потока:

  • Query Stream, для каждого маркера соответствующий ему поток запросов содержит только информацию о местоположении маркера, обратите внимание, что информация о местоположении маркера в исходном предложении, а не измененная информация о местоположении.
  • Content Stream, для каждого маркера соответствующий ему поток содержимого содержит информацию о содержимом маркера.

Расчет потока запросов

Поток запросов дляgУказывает, что Content Stream используетhУказывает, что при использовании Query Stream для прогнозирования прогнозируемой позиции используется вектор Q (Query).gВычисляется, содержит информацию о позиции, используются K (ключ) и V (значение).hВычисляется, содержит информацию о содержимом других токенов. На следующем рисунке показано, как передать текущий слойgРассчитать следующий слойgпроцесса расположение на рисунке [3,2,4,1], а вычисляемый токен равен 1.

Query_stream.png

Видно, что при расчете Q вектора q токена 1 используется только поток запроса токена 1g, то есть модель получает только информацию о местоположении токена 1. Векторы K и V рассчитываются с использованием токена 3, 2, 4, поэтому модель может получить информацию о содержимом токена 3, 2, 4. Поскольку токен 1 — это последняя цифра перестановки [3,2,4,1]. Матрица маски этого процесса такая же, как и в предыдущем разделе, а все диагональные линии белые, то есть информация о содержании текущей позиции прогнозирования маскируется.h.

Query_mask.png

Расчет потока контента

Content Stream содержит информацию о содержимом токена, поскольку XLNet имеет много уровней, содержимое токена необходимо передать на следующий уровень. Q, K, V этого слоя все используютсяhвычислительный. Расчет Content Stream показан на рисунке ниже.

Content_stream.png

Видно, что при расчете следующего слояh1, также будет использоваться текущая информация о содержимом токена 1, чтобы содержимое токена можно было передать на следующий уровень, но обратите внимание, что XLNet использует толькоg(Поток запросов). Матрица маски при расчете Content Stream показана на следующем рисунке.

Content_mask.png

Отличием от матрицы маски Query Stream является диагональ, Content Stream не маскирует диагональ, чтобы информация текущего токена могла быть передана на следующий слой.

Сочетание потока запросов и потока контента

XLNet объединяет поток запросов и поток контента, как показано на следующем рисунке.

Query_Content_Stream.png

Нижний слой на рисунке — это входной слой, где e(x) — это вектор слов слова, представляющий входной поток контента, а w представляет информацию о входном местоположении, то есть поток запросов.

2.3 Partial Prediction

XLNet переупорядочивает предложения, а затем использует метод AR для прогнозирования в соответствии с отсортированным порядком, но поскольку предложения расположены случайным образом, это приведет к сложной оптимизации и медленной сходимости. Поэтому XLNet использует частичное предсказание для обучения.Для упорядоченных предложений предсказываются только 1/K токенов в конце предложения.

Например, K=4, что означает, что прогнозируется только последняя 1/4 токена. Учитывая предложения [1,2,3,4,5,6,7,8] и случайную перестановку [2,8,3,4,5,1,7,6], предсказываются только 7 и 6. K, использованный при обучении XLNet-Large в статье, равен 6, что соответствует концу прогноза.14.3%токен.

3. Советы по оптимизации XLNet

3.1 Transformer-XL

XLNet использует Transformer-XL вSegment Recurrence Mechanism(сегментная петля) иRelative Positional Encoding(кодирование относительного положения) для оптимизации.

Механизм Segment Recurrence Mechanism сохранит выходную информацию предыдущего текста и использует ее для расчета текущего текста, чтобы модель могла иметь более широкую контекстную информацию.

После введения информации предыдущего абзаца может быть два маркера с одинаковой информацией о положении, например, информация о положении первого слова предыдущего абзаца и первого слова текущего абзаца совпадают. Поэтому Transformer-XL использует Relative Positional Encoding (относительное позиционное кодирование), которое не использует фиксированное положение, а использует для кодирования относительное положение между словами. в предыдущих статьях«Языковая модель Transformer-XL»Существует более подробное введение, и заинтересованная детская обувь может обратиться к нему.

XLNet использует Transformer-XL, как показано ниже.memОн представляет информацию о содержимом предыдущего сегмента XLNet, а вход потока запросов в XLNet — это w, который сохраняет информацию о местоположении и использует относительное позиционное кодирование.

XLNet_segment.png

3.2 Relative Segment Encodings

XLNet хочет принять как BERT[A, SEP, B, SEP, CLS]В виде задач обработки предложений в BERT есть два вектора представления.EAиEBпредставляют предложения A и B соответственно. Однако после того, как XLNet примет механизм петли сегмента Transformer-XL, возникнет проблема: оба сегмента имеют предложения A и B, тогда два предложения A принадлежат разным сегментам, но они будут иметь один и тот же вектор сегмента.

XLNet предлагает кодирование относительных сегментов, добавляя 3 обучаемых вектора к каждой голове внимания.s+, s-, b, а затем используйте следующую формулу для расчета показателя внимания.

Relative_segment_encoding.png

вqЭто вектор запроса.Рассчитанный показатель внимания будет добавлен к исходному показателю внимания, а затем будет рассчитан softmax. Относительные кодировки сегментов плюс вектор смещенияb, и относительное кодирование сегментов также можно использовать для задач с более чем двумя входными предложениями.

4. Резюме

Основная идея XLNet — PLM, выравнивание исходных предложений, а затем предсказание слов в конце. Таким образом, можно узнать зависимости между словами и использовать информацию токена вперед и назад.

Реализация XLNet PLM требует использования двухпотокового самоконтроля, который содержит два потока, а для прогнозирования используется поток запросов, который содержит только информацию о текущей позиции. Поток содержимого сохраняет содержимое токена.

XLNet также использует метод оптимизации Transformer-XL.

5. Ссылки