Трансформеры сейчас популярны. Они становятся передовыми во всех областях с момента своего первого дебюта в статье Васвани и др. «Внимание - это все, что вам нужно». [1]. Хотя мы просто называем их «преобразователем», это механизм внимания, который мы впервые увидели в статье «Нейронный машинный перевод путем совместного обучения выравниванию и переводу», написанном Bahdanau et al. [2]. В этой статье я хотел бы объяснить, что такое механизм внимания, насколько трансформаторы эффективны в том, что они делают, и о последних достижениях в области трансформаторов.

Начнем с механизма внимания. В исходной статье механизм внимания определяется как вероятность (alpha_t) получения ожидаемого результата (y_t) и принятия решения о следующем состоянии (s_t) встраивание (h_t) относительно состояния на предыдущем временном шаге (s_ {t-1}). Другими словами, из всех текущих встраиваний, сколько внимания мы должны уделять конкретному для генерации ожидаемого результата при переходе к следующему состоянию.

Хотя первоначальный информационный документ касался области НЛП, тот же метод применим и к задачам компьютерного зрения. Действительно, первая статья, в которой используется тот же метод, - это работа Сюй и др. «Покажи, посети и расскажи: создание титров нейронных изображений с визуальным вниманием» [3]. Я слышал, что некоторые говорят, что в знаменитой статье Мних и др. «Рекуррентные модели зрительного внимания» [4] и Ба и др. «Распознавание множественных объектов с визуальным вниманием» [5] также упоминается внимание, но у них есть другой метод, который теперь мы называем «пристальное внимание», как описано у Xu et al.

Узри Трансформер!

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

Итак, ответ на этот вопрос - «трансформатор». Без использования рекуррентной сети кодер-декодер в архитектуре преобразователя используется только механизм внимания (отсюда и название статьи). Но почему и как эта архитектура более эффективна, чем исходная модель рекуррентной сети кодировщика-декодера, основанная на внимании?

Почему это эффективно?

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

  1. Снижение вычислительной сложности
  2. Максимальное распараллеливание операций
  3. Максимальное увеличение длины пути между зависимостями на большом расстоянии.

Чтобы понять, что означают эти три пункта, мы должны взглянуть на самовнимание.

Самовнимание

Как следует из названия, самовнимание - это внимание среди входных токенов. Допустим, у вас есть вводимое предложение: «Сегодня дождливая погода, поэтому я беру свой зонтик». Когда вы токенизируете это предложение, вы получите набор слов X = («Сегодня», «то», «погода», «сейчас», «дождливо», «так», «я», «принеси», «мой», «зонт») . Самовнимание даст вам матрицу 10x10, которая показывает важность каждой пары этого набора.

Обратите внимание, что это набор, и порядок элементов в наборе не имеет значения! Таким образом, исходный документ также предлагает другую технику для рассмотрения положения токена. Этот метод называется позиционным кодированием, о котором мы поговорим чуть позже…

Большой ах!

Все мы знакомы с вычислительной сложностью и, конечно же, с известной большой буквой O. Таким образом, самовнимание имеет постоянное время O (1) в последовательных операциях, где повторяющиеся слои имеют O (n), где n - длина набора токенов X (в нашем примере это 10). С точки зрения непрофессионала, самовнимание происходит быстрее, чем повторяющиеся слои (при разумной длине последовательности).

Помни, Помни Трансформатор

Помимо того, что он эффективен с точки зрения вычислительной сложности, преобразователь может обрабатывать более длинные зависимости более эффективно, чем повторяющиеся модели. Рекуррентные модели должны проходить всю последовательность в порядке, который не поддерживается самовниманием, поэтому проверка зависимости может выполняться между любой парой за постоянное время O (1).

Как это работает?

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

Позиционное вложение

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

Запрос, ключ и значение

Преобразователь вычисляет вектор запроса, ключа и значения из входных данных. Интуиция здесь аналогична поисковой системе. Мы вводим запрос, наш запрос согласовывается с ключами, и поисковая система связывает совпадение ключа запроса со значениями. Здесь наше вложение ввода запрашивается против самого себя. Итак, для каждого внедрения ввода мы вычисляем вектор запроса, вектор ключа и вектор значения. На практике мы формируем все векторы сразу, поэтому у нас есть матрица Q, матрица K и матрица V. Затем мы оцениваем, насколько наши запросы согласованы с ключами (конечно, с коэффициентом нормализации). Затем мы пропускаем оценки через softmax, чтобы повысить релевантные оценки и снизить нерелевантные. Затем мы вычисляем, сколько нам следует обращать внимание на ценности. Помните, что Q, K и V генерируются самим входом (т. Е. Самовниманием). Следовательно, преобразователь изучает весовые матрицы W_q, W_k и W_v, которые мы используем для генерации Q, K и V.

Многоголовое внимание

На практике, обращая внимание на все вложения ввода сразу, усредняют по всем позициям. Вместо этого мы можем параллельно обращать внимание на подпространства, которые могут относиться к различным представлениям в подпространствах. В статье этот параллелизм равен 8, поэтому вместо вычисления внимания во всех 512 измерениях он применяется к восьми различным 64 суб-измерениям.

Заключение

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

Трансформеры выкатываются!

Если я скажу, что бумага-трансформер подорвала все сообщество AI / ML, я не буду преувеличивать. Сейчас мы видим целое направление работы, основанное на преобразователях, не только в исходной области НЛП, но и в области компьютерного зрения. Хочу перечислить пару последних популярных работ, вышедших в последнее время:

  • В области NLP актуальными стали GPT-2 [6], BERT [7] и, в последнее время, GPT-3 [8]. Не нужно упоминать, насколько они стали популярными.
  • В области компьютерного зрения стоит упомянуть Image Transformer [9], а недавно и Vision Transformer [10].

Примечание: это далеко не полный список, и я пропустил кучу отличных статей.

Заключение

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

использованная литература

[1] Васвани А., Шазир Н., Пармар Н., Ушкорейт Дж., Джонс Л., Гомес А. Н., Кайзер Э., Полосухин И., Кайзер Л., Полосухин И. ., Кайзер, Э., & Полосухин, И. (2017). Внимание - это все, что вам нужно. Достижения в системах обработки нейронной информации, 2017 - Decem, 5999–6009. Https://arxiv.org/pdf/1706.03762.pdf

[2] Богданау Д., Чо К. Х. и Бенжио Ю. (2014). Нейронный машинный перевод путем совместного обучения выравниванию и переводу. Электронные отпечатки ArXiv, arXiv: 1409.0473.

[3] Сюй К., Ба, Дж. Л., Кирос, Р., Чо, К., Курвиль, А. К., Салахутдинов, Р., Земель, Р. С., и Бенжио, Ю. (2015). Покажи, посети и расскажи: создание подписи к нейронным изображениям с визуальным вниманием. CoRR, abs / 1502.0, 2048–2057. Http://arxiv.org/abs/1502.03044

[4] Мних, В., Хесс, Н., Грейвс, А., & kavukcuoglu, К. (2014). Рекуррентные модели зрительного внимания. Достижения в системах обработки нейронной информации, 3 (январь), 2204–2212.

[5] Ба, Дж. Л., Мних, В., и Кавукчуоглу, К. (2015). Распознавание множественных объектов с визуальным вниманием. 3-я Международная конференция по обучающим представлениям, ICLR 2015 - Материалы конференции, 1–10. Http://arxiv.org/abs/1412.7755

[6] Рэдфорд, А., Ву, Дж., Чайлд, Р., Луан, Д., Амодеи, Д., и Суцкевер, И. (2019). Языковые модели - это многозадачные ученики без учителя.

[7] Девлин, Дж., Чанг, М.-В., Ли, К., и Тутанова, К. (2019). BERT: Предварительная подготовка глубоких двунаправленных преобразователей для понимания языка. Материалы конференции Северо-Американского отделения Ассоциации компьютерной лингвистики 2019 года: технологии человеческого языка, том 1 (длинные и краткие статьи), 4171–4186. Https://doi.org/10.18653/v1/N19-1423

[8] Браун, Т. Б., Манн, Б., Райдер, Н., Суббиа, М., Каплан, Дж., Дхаривал, П., Нилакантан, А., Шьям, П., Састри, Г., Аскелл, А. ., Агарвал, С., Герберт-Фосс, А., Крюгер, Г., Хениган, Т., Чайлд, Р., Рамеш, А., Зиглер, Д.М., Ву, Дж., Винтер, К.,… Амодеи , Д. (2020). Языковые модели изучают мало. В arXiv. arXiv. Http://arxiv.org/abs/2005.14165

[9] Пармар, Н., Васвани, А., Ушкорейт, Дж., Кайзер, Л., Шазир, Н., Ку, А., и Тран, Д. (2018). Преобразователь изображений. 35-я Международная конференция по машинному обучению, ICML 2018, 9, 6453–6462. Http://arxiv.org/abs/1802.05751

[10] Досовицкий, А., Бейер, Л., Колесников, А., Вайссенборн, Д., Жай, X., Унтертинер, Т., Дехгани, М., Миндерер, М., Хейголд, Г., Гелли, С., Uszkoreit, J., & Houlsby, N. (2020). Изображение стоит 16x16 слов: преобразователи для распознавания изображений в масштабе. Http://arxiv.org/abs/2010.11929