[НЛП] Подробное объяснение универсальных трансформеров

Google искусственный интеллект NLP

Последний трансформер писался две недели. . Чтение слишком медленное. . В основном потому, что я сам это понимаю, и у меня нет времени смотреть исходный код. Мне очень стыдно. Если я скажу что-то не так, надеюсь, большие ребята мне напомнят.

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

  1. [НЛП] Принцип внимания и анализ исходного кода

2. [НЛП] Подробный преобразователь

Появление Universal Transformer связано с двумя недостатками Transformer на практике и в теории (см. предыдущую статью): Universal представляет собой вычислительно универсальный, то есть Тьюринг-полный (см. третий раздел подробного объяснения Transformer). Основное изменение заключается в добавлении петли, но не временной петли, а петли глубины. Обратите внимание, что модель Transformer фактически использует 6 слоев, которые имеют фиксированную глубину, а в универсале применяется механизм для управления количеством петель.

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

Структура модели по-прежнему очень похожа на традиционный Трансформер, поэтому здесь я не буду повторять трактовку, а расскажу в основном о некоторых изменениях универсального трансформера:

1.1 Рекуррентный механизм

В Transformer вход войдет в полносвязный слой после прохождения мультиголовного внутреннего внимания, а здесь он входит в переходный слой черезОбщий весФункция перехода продолжает расчет цикла:

Положение по вертикали здесь относится к положению каждого символа в последовательности (то есть к временному шагу в rnn), а время по горизонтали в основном относится к порядку вычисления, например последовательности(a,b,c,d), сначала представленный вложением как(h_a^t, h_b^t, h_c^t, h_d^t), после слоя внимание+переход выражается как(h_a^{t+1}, h_b^{t+1}, h_c^{t+1}, h_d^{t+1}). Если это rnn, то его нужно сначала вычислитьh_a^t, а затем вычислитьh_a^{t+1}иh_b^t, и собственное внимание трансформатора можно рассчитать одновременно(h_a^t, h_b^t, h_c^t, h_d^t), а затем вычислить t+1.

Таким образом, результат каждого самовнимания+переходаH^tЭто может быть выражено как:

H^t = LayerNorm(A^{t-1}+Transition(A^t)) \\

where\  A^t = LayerNorm(H^{t-1}+MultiHeadSelfAttention(H^{t-1}+P^t)) \\

Здесь функция перехода может быть полносвязным слоем, как и раньше, или отделяемым слоем свертки.

1.2 Coordinate embeddings

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

P^t_{pos, 2j} = sin(pos/10000^{2j/d})\oplus sin(t/10000^{2j/d}) \\

P^t_{pos, 2j+1} = cos(pos/10000^{2j/d})\oplus cos(t/10000^{2j/d}) \\

Я пока не понял, зачем делается эта операция, но я хорошенько об этом подумаю. .

1.3 Adaptive Computation Time (ACT)

ACTКоличество шагов расчета можно регулировать, а универсальный преобразователь, который присоединяется к механизму ACT, называется адаптивным универсальным преобразователем. Следует отметить, что ACT каждой позиции не зависит, если позиция a остановлена ​​в момент времени t,h_a^tОн будет копироваться до тех пор, пока не остановится последняя позиция, и, конечно же, будет установлено максимальное время, чтобы избежать бесконечного цикла.

2. Резюме

Универсальный преобразователь устранил недостатки преобразователя и показал лучшие результаты в таких задачах, как ответы на вопросы, языковая модель и перевод, и стал новой современной моделью seq2seq. Его ключевыми особенностями являются в основном два момента:

  • Разделение веса:индуктивное смещениеЭто предположение о целевой функции CNN и RNN предполагают инвариантность пространственного перевода и инвариантность перевода времени соответственно, которые отражаются в распределении веса ядра свертки CNN в пространстве и распределении веса единицы RNN во времени, поэтому универсальный преобразователь также добавляет такого рода Гипотетически разделение весов в рекуррентном механизме повышает выразительность модели и приближает индуктивное смещение rnn.
  • Условное вычисление: добавляя ACT для управления количеством вычислений модели, он достигает лучших результатов, чем универсальный преобразователь с фиксированной глубиной.

После внимательного прочтения осталось еще много деталей, в которые стоит покопаться.

Фокус: универсальность вычислений, индуктивное смещение, встраивание координат

выше.


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

  1. Universal Transformers
  2. Академики | Модель машинного перевода Google Transformer теперь можно использовать для чего угодно