Трансформеры сейчас популярны. Они становятся передовыми во всех областях с момента своего первого дебюта в статье Васвани и др. «Внимание - это все, что вам нужно». [1]. Хотя мы просто называем их «преобразователем», это механизм внимания, который мы впервые увидели в статье «Нейронный машинный перевод путем совместного обучения выравниванию и переводу», написанном Bahdanau et al. [2]. В этой статье я хотел бы объяснить, что такое механизм внимания, насколько трансформаторы эффективны в том, что они делают, и о последних достижениях в области трансформаторов.
Начнем с механизма внимания. В исходной статье механизм внимания определяется как вероятность (alpha_t) получения ожидаемого результата (y_t) и принятия решения о следующем состоянии (s_t) встраивание (h_t) относительно состояния на предыдущем временном шаге (s_ {t-1}). Другими словами, из всех текущих встраиваний, сколько внимания мы должны уделять конкретному для генерации ожидаемого результата при переходе к следующему состоянию.
Хотя первоначальный информационный документ касался области НЛП, тот же метод применим и к задачам компьютерного зрения. Действительно, первая статья, в которой используется тот же метод, - это работа Сюй и др. «Покажи, посети и расскажи: создание титров нейронных изображений с визуальным вниманием» [3]. Я слышал, что некоторые говорят, что в знаменитой статье Мних и др. «Рекуррентные модели зрительного внимания» [4] и Ба и др. «Распознавание множественных объектов с визуальным вниманием» [5] также упоминается внимание, но у них есть другой метод, который теперь мы называем «пристальное внимание», как описано у Xu et al.
Узри Трансформер!
Теперь мы знаем, что либо в НЛП, либо в CV, либо в мультимодальной настройке, внимание используется для вычисления важности ввода в контексте текущего временного шага. Более того, в своей простой форме механизм внимания помещается между кодером и декодером при моделировании последовательности. Итак, наступает прорыв, можем ли мы избавиться от этого повторения спирали кодер-внимание-декодер?
Итак, ответ на этот вопрос - «трансформатор». Без использования рекуррентной сети кодер-декодер в архитектуре преобразователя используется только механизм внимания (отсюда и название статьи). Но почему и как эта архитектура более эффективна, чем исходная модель рекуррентной сети кодировщика-декодера, основанная на внимании?
Почему это эффективно?
Секрет успеха трансформера - это уверенность в себе. В исходной статье приводятся три причины, по которым они использовали самовнимание:
- Снижение вычислительной сложности
- Максимальное распараллеливание операций
- Максимальное увеличение длины пути между зависимостями на большом расстоянии.
Чтобы понять, что означают эти три пункта, мы должны взглянуть на самовнимание.
Самовнимание
Как следует из названия, самовнимание - это внимание среди входных токенов. Допустим, у вас есть вводимое предложение: «Сегодня дождливая погода, поэтому я беру свой зонтик». Когда вы токенизируете это предложение, вы получите набор слов 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