Кайфовую статью подсказал коллега:

https://arxiv.org/pdf/2103.03404.pdf

"Attention is not all you need: Pure Attention Loses Rank Doubly Exponentially with Depth"



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



Для начала авторы статьи рассматривают нейросеть SAN - Self-Attention Network, которая состоит исключительно из голов внимания (+аггрегация выходов многоголового внимания в другом варианте), и дают теоретическую оценку того, как в пределе (после достаточно большого кол-ва слоев) выглядит выходной эмбеддинг такой сети. Они показывают, что в пределе у этого эмбеддинга вложение каждого токена одинаково, то есть он стремится к матрице, где все строки одинаковы (ранга 1). Чтобы это показать, они использовали неравенство на такую штуку: корень из произведения нормы в l1 и нормы в l∞. Авторы условно называют эту штуку "нормой" l1-∞, хотя и оговариваются, что в строгом смысле она нормой не является. Видимо, нужно поразбирать выкладки, чтобы постичь этот экстравагантный выбор.

Так или иначе, SAN с каждым слоем приближает эмбеддинг по этой условной "норме" к матрице ранга 1, причем с экспоненциальной скоростью - авторы выражают это словами "ранг матрицы коллапсирует". Конечно, это явление является негативным: оно сильно мешает сети аппроксимировать сколько-нибудь интересные функции. Как же быть? Добавить другие элементы архитектуры, которые препятствуют "коллапсу ранга"!

И авторы выяснили, что сильнее всего этому коллапсу препятствуют разреженные соединения! Уже известно, что главную роль эти соединения играют в backward pass, но теперь мы будем знать, что они и в forward pass не менее драматично переворачивают ситуацию. Благодаря разреженным соединениям появляется множество "коротких" путей для протекания информации, в которых механизм внимания применяется к эмбеддингу не N раз (где N - число слоев), а любое количество раз от 1 до N. Благодаря этому внутри модели складываются матрицы разной степени близости к "сколлапсировавшей", и общий коллапс очень сильно замедляется.

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

Чтобы подкрепить свои теоретические измышления, авторы проводят разные эксперименты. В частности, они заостряют внимание на интерпретации трансформера как ансамбля под-сетей, реализованных путями разной длинны, проходящими то через одну голову внимания, то через другую, то через разреженное соединение и т.д.. (Рис. 1 ниже, также известный как Figure 1). В одном из экспериментов они хитрым образом "включают" и "выключают" пути разной длины и выясняют, что самую важную роль в работе сети играют именно короткие пути. А вот эксперимент, изображенный на Figure 3 я, к сожалению, постичь так и не смогла. 😔 Он описан непонятно.

Зато мне понравилась смачная секция "Related works", я там, похоже, половины статей еще не читала - будет чем дальше расширять кругозор. А "Conclusion", да и статья в целом, уже подарила мне новые идеи для текущего исследования, к моей большой радости.



#объяснения_статей