От RNN к Transformer: что на самом деле выбирает механизм внимания
Attention появился раньше трансформеров и использовался для перевода, внешней памяти и распределения вычислений. Прослеживаем устройство механизма по шести оригинальным публикациям, не смешивая разные архитектуры.

Сначала последовательность сжимали в один вектор
В работе Ilya Sutskever, Oriol Vinyals и Quoc Le «Sequence to Sequence Learning with Neural Networks» две LSTM решают задачу преобразования последовательностей разной длины. Первая читает вход и получает представление фиксированной размерности. Вторая использует это представление для генерации выходных символов. Вероятность всего ответа раскладывается на вероятности следующих элементов при условии уже полученных.
Это позволяет переводить предложения, не требуя заранее известного соответствия между позициями входа и выхода. Отдельный символ конца последовательности даёт модели возможность завершить ответ. В исходной реализации использовались разные многослойные LSTM для чтения и генерации, а не один рекуррентный блок с двумя формальными названиями.
Авторы также обнаружили полезность переворота порядка слов входного предложения в своей экспериментальной постановке. Смысл приёма заключался в сокращении некоторых временных зависимостей при обучении; выходной перевод при этом оставался в нормальном порядке. Это исторический механизм конкретной модели 2014 года, а не универсальный способ подготовки текста для современных систем. Внимание впоследствии изменило сам маршрут доступа декодера к исходной последовательности: обращаться можно стало не только к одному её конечному представлению.
Контекст стал зависеть от генерируемого слова
В модели Dzmitry Bahdanau, Kyunghyun Cho и Yoshua Bengio декодер получает собственный контекстный вектор для каждого шага перевода. Кодировщик создаёт последовательность аннотаций исходных слов, причём двунаправленная рекуррентная сеть учитывает окружение с обеих сторон. Декодеру уже не требуется извлекать всю информацию только из единственного сжатого состояния.
Контекст рассчитывается как взвешенная сумма аннотаций. Обучаемая модель выравнивания определяет, насколько каждая исходная позиция соответствует текущему состоянию генерации. Нормированные веса складываются в мягкое распределение, а не в жёсткий выбор одного слова. Поэтому механизм допускает одновременно учитывать несколько участков входа и остаётся дифференцируемым.
Выравнивание обучается вместе с переводом: для его получения не требуется отдельно размечать каждую пару слов. Разница между языками при этом не исчезает. Одно слово может соответствовать нескольким словам другого языка, а порядок фрагментов способен меняться. Механизм предоставляет вычислительный путь к подходящим исходным представлениям. Он не задаёт готовый словарь соответствий и не превращает коэффициенты в обязательное буквальное объяснение всей принятой моделью лексической конструкции.
Глобальное и локальное внимание — разные области поиска
Minh-Thang Luong, Hieu Pham и Christopher Manning разделили внимание в нейронном переводе на глобальный и локальный варианты. В глобальном случае текущий шаг декодера сравнивается со всеми состояниями кодировщика. Полученный вектор выравнивания имеет длину исходной последовательности и определяет вклад её позиций в контекст.
Локальный вариант ограничивает рассматриваемый фрагмент вокруг выбранной или предсказываемой позиции. Это отличается и от полного просмотра входа, и от недифференцируемого выбора единственного элемента. В первичной статье исследуются монотонный и предсказывающий способы определения центра такого окна. После получения контекста обе разновидности объединяют его с текущим скрытым состоянием и рассчитывают распределение следующего слова.
Важная деталь предложенной архитектуры — input feeding. Информация об уже полученном внимательном скрытом состоянии подаётся на следующий шаг, чтобы модель могла учитывать прежние решения о выравнивании. Таким образом, attention — не единственная строка с softmax, добавленная к неизменной сети. Результат зависит от функции сравнения, области рассматриваемых позиций и того, как контекст включён в дальнейшие вычисления. Опубликованные результаты относятся к переводным корпусам и базовым моделям авторов, а не к общей шкале качества любого механизма внимания.
Тот же принцип может адресовать внешнюю память
Neural Turing Machines Alex Graves, Greg Wayne и Ivo Danihelka соединяют нейросетевой контроллер с отдельной матрицей памяти. Каждая её строка хранит вектор. Головка чтения задаёт нормированные неотрицательные веса по строкам и возвращает их взвешенную сумму. Благодаря этому изменение адреса можно обучать градиентным методом, не вводя обязательный дискретный выбор ячейки.
Запись устроена сложнее чтения. Сначала в выбранных весами местах частично стирается содержимое, затем добавляется новый вектор. Управление возможно не только по адресу целой строки: векторы стирания и добавления действуют на её компоненты. Несколько головок могут выполнять собственные операции с памятью.
Для адресации авторы соединяют поиск по содержимому и перемещение по расположению. Первый позволяет искать близкий ключу вектор, второй — последовательно двигаться по памяти. В экспериментах рассматривались копирование, повторное копирование и ассоциативное извлечение. Это не описание аппаратной оперативной памяти и не утверждение, что модель автоматически исполняет произвольную программу. Здесь внимание обеспечивает управляемый доступ к обучаемой вычислительной системе, а не только сопоставляет слова в машинном переводе.
| Архитектура | Объекты взвешивания | Назначение |
|---|---|---|
| Перевод с attention | Аннотации исходных позиций | Контекст текущего слова |
| Локальное внимание Luong | Позиции ограниченного окна | Контекст из части исходной последовательности |
| Neural Turing Machine | Строки внешней памяти | Мягкое чтение и управление записью |
| Transformer self-attention | Представления одной последовательности | Обмен сведениями между её позициями |
Внимание применяли и к количеству вычислительных шагов
В обзоре Chris Olah и Shan Carter «Attention and Augmented Recurrent Neural Networks» сопоставлены расширения рекуррентных моделей, работающие с разными объектами выбора. Для переводчика это входные позиции, для внешней памяти — её ячейки. В Adaptive Computation Time рассматривается ещё одна ось: сколько внутренних шагов выполнить для одного элемента последовательности.
Обычная рекуррентная схема выполняет одинаковое число операций на каждом временном шаге. В адаптивном варианте модель может несколько раз обновить состояние перед переходом к следующему входу. Обучаемый механизм остановки распределяет веса между внутренними состояниями; итог собирается как их взвешенная комбинация. Остаток бюджета остановки при завершении относится к последнему рассчитанному шагу.
При обучении добавляется стоимость размышления, которая связывает качество задачи с расходом вычислений. Поэтому механизм не просто разрешает бесконечно повторять блок. Его постановка содержит явный стимул сокращать лишнюю работу. Материал Distill относится к исследовательским архитектурам 2016 года и показывает общность дифференцируемого мягкого выбора, а не объявляет все перечисленные модели разновидностями Transformer. Их память, последовательность состояний и управляющие сигналы устроены по-разному.

Transformer заменил рекуррентный маршрут обменом между позициями
В «Attention Is All You Need» внимание становится основой построения представлений без рекуррентного прохода по позициям. Запросы сравниваются с ключами, а нормированные коэффициенты применяются к значениям. В scaled dot-product attention скалярные произведения дополнительно делятся на квадратный корень из размерности ключа. Несколько голов используют разные обучаемые проекции и объединяют результаты.
Самовнимание связывает позиции одной последовательности. В encoder–decoder attention запросы относятся к декодеру, а ключи и значения — к выходу кодировщика. В декодерном самовнимании маска запрещает использовать последующие позиции. Такой запрет сохраняет авторегрессионную постановку: при предсказании следующего элемента ещё нельзя обращаться к неизвестному продолжению.
Поскольку рекуррентный порядок больше не переносит сведения о позиции, исходная архитектура добавляет позиционные кодировки к эмбеддингам. Помимо внимания в блоках остаются полносвязные преобразования, остаточные связи и нормализация. Параллельность обработки при обучении не означает одновременную выдачу всего авторегрессионного ответа: генерация по-прежнему использует уже созданные элементы. Поэтому различие с ранними RNN лежит прежде всего в устройстве обмена информацией внутри представлений, а не в исчезновении последовательной зависимости итоговых символов.

Источники
- Sutskever et al. — Sequence to Sequence Learning with Neural Networks ↗
- Bahdanau et al. — Neural Machine Translation by Jointly Learning to Align and Translate ↗
- Luong et al. — Effective Approaches to Attention-based Neural Machine Translation ↗
- Graves et al. — Neural Turing Machines ↗
- Olah, Carter — Attention and Augmented Recurrent Neural Networks ↗
- Vaswani et al. — Attention Is All You Need ↗


