Transformer — это усовершенствованная модель НЛП, предложенная Google, которая позволяет добиться лучших результатов, чем традиционная RNN, во многих задачах. Transformer использует механизм Self-Attention, чтобы обеспечить прямую связь между словами, поэтому способность кодировать информацию и изучать функции сильнее, чем RNN. Тем не менее, Transformer по-прежнему имеет некоторые ограничения в своей способности запоминать долговременную зависимую информацию.Transformer-XL — это языковая модель, которая может улучшить способность Transformer запоминать долговременную зависимую информацию.
1.vanilla Transformer
Прежде чем представить Transformer-XL, давайте рассмотрим еще один основанный на Transformer подход к обучению языковых моделей.vanilla Transformer, детская обувь, незнакомая с Трансформером, может обратиться к предыдущей статье«Детали модели трансформатора». Ванильный трансформер был предложен в статье «Моделирование языка на уровне персонажей с более глубоким самовниманием». Ниже описывается процесс обучения и процесс оценки ванильного трансформера для понимания его дефектов.
1.1 Процесс обучения ванильного трансформера
На приведенном выше рисунке показан процесс обучения ванильного преобразователя языковой модели. Видно, что когда ванильный преобразователь обучает языковую модель, он будет предсказывать информацию о следующем моменте в соответствии с предыдущей информацией. Например, после получения [x1, x2 , x3], можно предсказать вывод, соответствующий x3.Это информация после x3 будет замаскирована.
Однако в языковой модели, обученной ванильным Трансформером, есть изъян: в процессе обучения прогноз разбивается на разделы для обучения., обучающие данные на приведенном выше рисунке разделены на два сегмента [x1, x2, x3, x4] и [x5, x6, x7, x8]. При обучении второго сегмента модель не знает информации о первом сегменте. Например, есть два связанных предложения «У меня есть кошка» и «Он не любит есть рыбу». Если ванильный трансформер разделит эти два предложения на два сегмента и обучит их отдельно, то при обучении второго предложения модель не знает точного значения слова «это» в предложении.
1.2 Процесс оценки ванильного трансформатора
На приведенном выше рисунке показан процесс ванильного трансформатора во время оценки.Видно, что при прогнозировании вывода модель должна каждый раз перемещаться на один шаг вправо и предсказывать слово в данный момент в соответствии с новой последовательностью выше.Для Например, первое изображение будет основано на [x1, x2, x3, x4] прогнозировании вывода в следующий момент, а второе изображение будет прогнозировать вывод в следующий момент в соответствии с [x2, x3, x4, x5].
Vanilla Transformer использует текущую последовательность и прогнозирует с нуля, что приводит к более медленным прогнозам и неиспользованию более ранней информации. Например, на втором изображении выше используйте [x2, x3, x4, x5] для предсказания, не используя информацию x1. Предсказание de novo означает, что Transformer пройдёт процесс обучения, сначала используя x2 для предсказания x3, затем используя x2, x3 для предсказания x4 и, наконец, используя x2, x3, x4, x5 для предсказания вывода в следующий момент.
1.3 Недостатки ванильного трансформера
Длительная зависимость ограничена:Vanilla Transformer обучает данные в сегментах, и зависимости, которые могут быть получены по словам в каждом сегменте, ограничены этим сегментом, и долгосрочная зависимая информация не может быть использована.
Семантика сегментированных данных неполна:Когда ванильный преобразователь сегментирует данные, он напрямую разделяет предложения в корпусе в соответствии с фиксированной длиной, не учитывая границы предложений, так что сегментированные сегменты имеют неполную семантику. То есть предложение будет разделено на два сегмента.
Медленно при оценке:При оценке модели каждый раз при предсказании слова приведенный выше текст слова необходимо пересчитывать, что неэффективно.
2.Transformer-XL
Transformer-XL - это метод обучения языковой модели, предложенный Google в 2019 году. Чтобы решить долгосрочную зависимость Transformer, его статья называется «Transformer-XL: внимательные языковые модели вне контекста фиксированной длины». Transformer-XL имеет две основные инновации:
Во-первых, предложилSegment-Level Recurrence, в Transformer введен механизм цикла, при обучении текущего сегмента будет сохраняться и использоваться выходной вектор каждого слоя предыдущего сегмента. Таким образом, информация предыдущего сегмента может быть использована для улучшения долгосрочной зависимости Преобразователя.Во время обучения выходные данные предыдущего сегмента участвуют только в прямом расчете без обратного распространения.
Во-вторых, выдвинутьRelative Positional Encodings, Чтобы представить позицию каждого слова, Transformer добавит позицию Embedding к Embedding слова, а позицию Embedding можно рассчитать или изучить с помощью тригонометрических функций. Но этот метод нельзя использовать в Transformer-XL, потому что каждый сегмент будет иметь Embedding в одной и той же позиции, поэтому Embedding в одной и той же позиции в двух сегментах будет одинаковым. Поэтому Transformer-XL предлагает новый метод кодирования положения, относительное позиционное кодирование.
2.1 Segment-Level Recurrence
На приведенном выше рисунке показан процесс обучения Transformer-XL.Вы можете видеть, что Transformer-XL будет использовать информацию предыдущего сегмента при обучении нового сегмента.Если позволяет память или видеопамять, он также может сохранять несколько сегментов. Сегмент зеленой линии на рисунке указывает, что текущий сегмент использует информацию предыдущего сегмента.
Итак, обучение сегментут+1Когда Трансформер-XLnВходные данные слоя включают:
- segment тпервоеn-1Выходные данные слоя, зеленая линия на рисунке, не вычисляют обратный градиент.
- segment т+1первоеn-1Выходные данные слоя, серая линия на рисунке, вычисляют обратный градиент.
обучениет+1При количестве сегментов Transformer-XLnВыход слоя рассчитывается по следующей формуле:
Видно, что во время обученият+1Когда сегмент используется, он будет использовать информацию предыдущего сегмента для расчетаk, vвектор. Обратите внимание на вычисление вектора n-го слоя Transformer.qиспользовать толькот+1Информация сегмента, то есть выход n-1-го слоя.
Вышеприведенное изображение представляет собой схематическую диаграмму этапа оценки Transformer-XL. В предыдущем разделе мы узнали, что при оценке ванильного трансформатора он может выводить только одно слово за раз вправо, и ему необходимо начать расчет. с нуля. В Transformer-XL вы можете продвигаться по одному сегменту за раз и использовать предыдущий сегмент для прогнозирования текущего вывода.
Самая длинная зависимость, которую может поддерживать Transformer-XL, составляет примерно O(NL)., L — длина сегмента, а N — количество слоев Трансформера. Самая длинная зависимость, поддерживаемая Transformer-XL, показана в зеленой области выше.
2.2 Relative Positional Encodings
Традиционный Transformer использует Embedding позиции для представления позиции слова, а Embedding позиции можно вычислить с помощью тригонометрических функций или получить путем обучения. Однако в Transformer-XL используется информация предыдущего сегмента.Если используется традиционная позиция Embedding, модель не сможет различить слова текущего сегмента и предыдущего сегмента, как показано в следующей формуле.
Eвекторы слов, представляющие слова,Uэто вектор положения, вы можете увидеть текущий сегментт+1вектор слова с предыдущим сегментомтВложение одной и той же позиции вектора слова одинаково. Модель не может определить, к какому сегменту принадлежит слово на определенной позиции.
Для решения этой проблемы Transformer-XL предлагаетОтносительное положение, сначала посмотрите на метод расчета оценки внимания в традиционном Transformer:
Выше показано, как Transformer вычисляет показатель внимания.Ui представляет вложение в i-й позиции,Uj представляет вложение в j-й позиции. Transformer-XL удаляетUя иUДж, потому чтоUя иUj для фиксированного положения, поэтому Transformer-XL изменяет формулу следующим образом.
Transformer-XL внес некоторые изменения в формулу расчета оценки внимания, убрав всеАбсолютная позиция. Встраивание U удалено.
- Вычислить вектор через (b) (d) формулыkизUj заменяется относительной позицией.Ri-j, то есть заботиться только об относительном положении между словами.RРассчитывается по тригонометрическим формулам.
- В терминах (c) (d) формулы векторqВычислительная часть заменяется двумя обучаемыми векторамиuиv, потому что вектор запросаqОн одинаков для каждой позиции запроса, а это означает, что смещение внимания к разным словам должно оставаться одинаковым независимо от позиции запроса.
- будетkматрица преобразования веса вектораWk делится на два,Wк, Е иWk, R, для содержания слова и позиции слова, соответственно.
2.3 Общая формула расчета Transformer-XL
После двух вышеупомянутых механизмов повторения на уровне сегмента и относительного позиционного кодирования общая формула расчета Transformer-XL выглядит следующим образом.
3. Резюме Transformer-XL
Transformer-XL улучшает ванильную модель Transformer и вводит два механизма: повторение на уровне сегментов и относительное позиционное кодирование, так что Transformer имеет возможность изучать долгосрочные зависимости. Самая длинная зависимость, которую может поддерживать Transformer-XL, составляет приблизительно O(NL). Следующая модель XLNet, предложенная Google, также использует структуру Transformer-XL.