Охота на электроовец. Большая книга искусственного интеллекта - Сергей Сергеевич Марков
Шрифт:
Интервал:
Закладка:
Ниже показан пример «матрицы внимания» для перевода: сверху идут слова исходного предложения на английском языке, слева по вертикали — слова его перевода на французский язык, а яркость пикселя показывает соответствие конкретных слов в оригинале и в переводе, полученное в результате работы механизма внимания. Чем ярче пиксель, тем в большей мере для декодера, производящего соответствующее слово перевода, важно состояние кодировщика после получения соответствующего слова оригинала.
Рис. 130. Пример «матрицы внимания» при переводе с английского на французский
Если бы во французском переводе порядок слов был в точности таким же, как в английском оригинале, то на картинке выше мы увидели бы диагональную линию из белых точек. Но поскольку в выражениях 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.
Как часто бывает, некоторые идеи, положенные в основу трансформера, можно найти в работах[2162], [2163], [2164], написанных в начале 1990-х годов Юргеном Шмидхубером[2165]. Тип внимания, положенный в основу трансформера, называется особенно страшно — «многоголовое внутреннее внимание» [multi-headed self-attention]. Разумеется, по-русски так его никто не называет, вместо этого отечественные специалисты просто используют термин в его английском варианте.
Одна из проблем рекуррентных сетей заключается в том, что при их вычислении трудно добиться эффективного параллелизма. Действительно, для того чтобы вычислить следующее состояние сети, необходимо получить результат вычисления предыдущего состояния — сама природа рекуррентной сети последовательна, поэтому максимум, что можно сделать, это вычислять параллельно результаты для разных последовательностей либо выполнять параллельные вычисления в пределах одного состояния рекуррентной сети, однако оба этих подхода обычно не позволяют в полной мере использовать вычислительный потенциал тензорных процессоров. Нельзя ли вообще отказаться от рекуррентной сети в пользу нерекуррентной архитектуры, сохранив при этом механизм внимания, показавший свою эффективность? Оказывается, можно (именно на это ненавязчиво указывает нам заголовок статьи исследователей из Google).
Рассмотрим для примера предложение: «Люди одиноки, потому что вместо мостов они строят стены». Кто такие в данном случае «они»? Человек, прочитавший это предложение, без особого труда понимает, что в данном случае слово «они» относится к слову «люди». Можно сказать, что у нас в голове возникает представление о наличии определённого отношения (в данном случае — тождества) между словами «они» и «люди». Другое отношение связывает слова «они» и «строят», а также «люди» и «строят» — это отношения вида «A выполняет действие B». И так далее — слова в высказывании связаны определёнными отношениями. Идея multi-headed self-attention заключается в том, чтобы для разных типов отношений (за каждый из них отвечает отдельная «голова» сети внимания, так же как в свёрточной сети за каждый выявляемый слоем свёртки признак отвечает отдельный набор весов для свёрточного ядра) рассчитать матрицу выравниваний, то есть для каждой пары слов в предложении выяснить, в какой мере выражено для неё данное отношение.
На рисунке для всех слов предложения показаны отношения со словом «они» у разных «голов внимания» (обозначенных синим, зелёным и оранжевым цветом), насыщенность