Охота на электроовец. Большая книга искусственного интеллекта - Марков Сергей Николаевич
В классическом варианте модели «кодировщик — декодер» в качестве вектора контекста используется внутреннее состояние кодировщика, возникшее после обработки завершающего элемента последовательности. Представим себе, что наша модель переводит с английского на русский фразу better late than never [лучше поздно, чем никогда]. Кодировщик, представляющий собой LSTM-сеть, последовательно получает на вход векторы, соответствующие словам better, late, than, never. Возникшее внутреннее состояние кодировщика передаётся как стартовое состояние в декодер. После этого на первом шаге выдачи декодер должен выдать на выход слово «лучше», однако информация о нём в полученном состоянии уже отчасти «забыта» LSTM-сетью. Именно поэтому Суцкевер и его коллеги обнаружили, что точность перевода увеличивается, если слова входной последовательности будут подаваться в кодировщик в обратном порядке: never, than, late, better. Исследователи тестировали свою систему для пары «английский — французский», и в такой родственной паре порядок следования слов в предложении нередко был практически одинаковым. Очевидно, что точность перевода можно было бы повысить ещё больше, если бы для первого слова перевода («лучше») наш декодер использовал состояние кодировщика, возникшее после подачи в него слова better, для второго слова перевода («поздно») — состояние, возникшее после подачи в кодировщик слов better и late, и так далее. Для этого нам нужно использовать на входе декодера все состояния кодировщика, возникавшие в процессе обработки последовательности, а также некоторый механизм, который позволил бы определить, в какой степени эти состояния важны для выбора правильного слова в текущем контексте. Именно такой механизм получил название «механизм внимания».
Человек может с лёгкостью понять принципы отображения фрагментов входной последовательности во фрагменты выходной последовательности. Нашей же модели для этого потребуется отдельная нейронная сеть, которая должна будет «постичь» эти принципы в процессе обучения. На вход этой сети (называемой «сетью внимания») мы будем подавать все состояния кодировщика, а также текущее состояние декодера, а на выходе будем получать набор весов для каждого из состояний кодировщика. Этот набор весов обычно нормализуется при помощи функции softmax и носит название «баллы выравнивания» [alignment scores]. Каждый вес будет соответствовать степени «внимания», которую декодер должен «уделить» соответствующему состоянию кодировщика. Состояния кодировщика умножаются на соответствующие им веса, а затем суммируются. Полученный вектор путём конкатенации соединяется с выходом декодера на предыдущем шаге декодирования и подаётся на вход декодера, который в результате меняет своё внутреннее состояние и производит очередной элемент выходной последовательности. После чего вновь рассчитываются баллы выравнивания и так далее. Операция продолжается до тех пор, пока декодер не выдаст элемент, обозначающий конец последовательности. Этот механизм получил название «внимание Багданау» или «внимание Богданова» (Bahdanau attention), поскольку впервые был описан в статье «Нейросетевой машинный перевод путём совместного обучения выравниванию и переводу» (Neural Machine Translation by Jointly Learning to Align and Translate) [2155] за авторством Богданова, Чо и Бенджио, препринт которой впервые был представлен общественности в сентябре 2014 г. Так что годом рождения механизма внимания следует признать 2014-й, а его создатель — Дмитрий Богданов — родом из Гомеля, неоднократный призёр международных олимпиад по программированию, выпускник Белорусского государственного университета, Бременского университета Якобса (Jacobs University Bremen, ныне — Constructor University) и аспирант Йошуа Бенджио (а ныне — преподаватель в Университете Макгилла). Именно во время стажировки у Бенджио в Монреале Богданов и предложил механизм внимания, что позволило добиться значительного прогресса в решении задачи машинного перевода [2156].
Ниже показан пример «матрицы внимания» для перевода: сверху идут слова исходного предложения на английском языке, слева по вертикали — слова его перевода на французский язык, а яркость пикселя показывает соответствие конкретных слов в оригинале и в переводе, полученное в результате работы механизма внимания. Чем ярче пиксель, тем в большей мере для декодера, производящего соответствующее слово перевода, важно состояние кодировщика после получения соответствующего слова оригинала.

Если бы во французском переводе порядок слов был в точности таким же, как в английском оригинале, то на картинке выше мы увидели бы диагональную линию из белых точек. Но поскольку в выражениях European Economic Area и zone économique européenne соответствующие слова следуют в обратном порядке, то соответствующие им точки выбиваются из общего ряда.
Механизм внимания быстро завоевал популярность в сообществе специалистов по глубокому обучению, что привело к появлению множества модификаций этого метода. В конце 2014 г. на суд публики в виде препринтов или официальных публикаций было представлено сразу несколько работ, посвящённых применению механизма внимания при обработке изображений. Часть из них [2157], [2158], [2159] была написана исследователями из Google и DeepMind, среди которых было несколько аспирантов Хинтона, в том числе Володимир Мних, брат Андрия Мниха, а также уже знакомый нам соавтор Хинтона в деле разработки каскадного метода обучения глубоких сетей Руслан Салахутдинов. Использование механизма внимания для обработки изображений напоминает моделирование процесса разглядывания картинки, при котором человек поочерёдно концентрируется на отдельных частях изображения, чтобы рассмотреть их более детально, и только после этого делает окончательный вывод в отношении всего изображения в целом. Отсюда и специфическая терминология, использованная при описании модели: «сеть быстрого взгляда» [glimpse network], «кодирование сетчатки» [retina encoding] и так далее.
В ещё одной статье, под названием «Покажи, проследи и скажи: нейросетевая генерация подписей к изображениям с использованием визуального внимания» (Show, Attend and Tell: Neural Image Caption Generation with Visual Attention) [2160], написанной группой молодых исследователей под руководством Бенджио, на свет появилась «жёсткая» [hard] разновидность внимания, в которой вектор баллов выравнивания был one-hot-вектором. По сути, такая модель внимания на каждом шаге должна выбрать какое-то одно определённое состояние кодировщика, которое будет использовано декодером, в то время как классическое «мягкое» [soft] внимание может «смешивать» состояния кодировщика в некоторой пропорции.
Помимо жёсткого и мягкого, внимание может быть локальным [local] и глобальным [global]. Глобальное внимание работает с полным набором состояний кодировщика, в то время как локальное использует только некоторые состояния, находящиеся внутри некоторого «окна» заданного размера. Если в качестве центра этого окна используется номер шага декодера, такое локальное внимание называется монотонным [monotonic], если же положение центра окна определяется на основе внутреннего состояния декодера, то такое локальное внимание называется предиктивным [predictive].
6.3.3.5 Вторая революция в NLP: трансформеры
Список моделей внимания можно продолжать ещё очень долго. Были изобретены латентное [latent] и активное [active] внимание, гауссовское [Gaussian] внимание, свёрточные нейронные сети на базе внимания (Attention Based Convolutional Neural Network, ABCNN), разложимая модель внимания [Decomposable Attention Model], областное внимание [Area Attention] и даже нейросетевой трансдьюсер (преобразователь) для онлайн-внимания [Neural Transducer for Online Attention]. Из описаний различных моделей на основе внимания и полученных при их помощи результатов можно было бы составить отдельную книгу, но здесь мы подробно остановимся лишь на одной из них, тем более что ей было суждено положить начало второй коннекционистской революции в области обработки естественного языка. Эта модель называется «трансформер» [transformer]. Она была представлена научному сообществу в 2017 г. в статье с программным названием «Внимание — это всё, что вам нужно» (Attention Is All You Need) [2161], написанной группой исследователей из Google Brain и Google Research.