# Конец эпохи Attention? Как Google заменил внимание школьной математикой

Источник: https://www.youtube.com/watch?v=JJR3pBl78zw
Канал: Yannic Kilcher
Опубликовано: 21.05.2021

---

Исследователи из Google Research предложили радикальный подход к оптимизации нейросетевых архитектур, заменив классический механизм внимания в трансформерах на стандартное преобразование Фурье. В своем видео популярный AI-блогер Янник Килчер (Yannic Kilcher) подробно разбирает научную статью «FNet: Mixing Tokens with Fourier Transforms». Он приходит к выводу, что для успеха современных моделей последовательностей критически важно эффективное перемешивание информации между токенами, а не точечная, ресурсоемкая маршрутизация.

## ⚠️ Проблема квадратичной сложности и тупик традиционного внимания
[[JUMP:0:00]]

Янник Килчер отмечает, что долгое время в сфере глубокого обучения доминировали трансформеры, базовые слои которых состоят из подслоев внимания (attention) и полносвязных подслоев (feed-forward). Полносвязные слои работают индивидуально для каждого токена, благодаря чему их веса легко масштабировать и параллелить. Однако сам механизм внимания всегда оставался «костью в горле» для разработчиков из-за огромных требований к вычислительным ресурсам и памяти. Задача внимания — выполнять функцию маршрутизации, определяя, какие данные из текущего слоя должны перейти в определенные участки следующего. 

Вычислительная и пространственная сложность этого алгоритма составляет $O(N^2)$, где $N$ — длина последовательности. Это жестко ограничивает размер контекста, который способна обработать нейросеть. По словам ведущего, именно это ограничение долгое время мешало применять трансформеры в компьютерном зрении, пока инженеры не догадались разбивать изображения на отдельные патчи вместо попиксельного анализа. В течение последних двух лет исследователи пытались линеаризовать внимание, создавая такие архитектуры, как Linformer, Longformer, Reformer, Performer и другие, чтобы снизить сложность до $O(N)$ или $O(N \log N)$. Теперь же, как утверждает Янник Килчер, наступила новая эра: ученые задались вопросом, нужен ли нам механизм внимания вообще.

## 🧬 Архитектура FNet: как заменить внимание на математическую функцию
[[JUMP:4:59]]

Вместо привычного блока внимания авторы статьи из Google Research предлагают использовать архитектуру FNet. На первый взгляд модель выглядит идентично классическому BERT: на входе текст разбивается на токены, преобразуется в эмбеддинги слов, позиций и типов, а затем передается в стек из $N$ одинаковых слоев. Разница кроется исключительно в одном подслое — вместо механизма внимания там находится слой Фурье.



На вход подается серия векторов (токенов), к которым применяется дискретное преобразование Фурье. Сначала одномерное преобразование Фурье выполняется по скрытому измерению (hidden domain), а затем — по измерению последовательности (sequence domain). При этом от результата берется только вещественная (реальная) часть. Янник Килчер подчеркивает критически важную деталь: в самом слое Фурье нет абсолютно никаких обучаемых параметров. Преобразование Фурье — это просто фиксированная обратимая линейная трансформация данных, которую можно представить в виде умножения на заранее построенную матрицу синусов и косинусов. Единственными обучаемыми весами в этой части сети остаются параметры последующего полносвязного слоя (feed-forward).

## 🔄 Философия «перемешивания токенов» против точной маршрутизации
[[JUMP:11:16]]

По мнению Янника Килчера, главная ценность статьи заключается не в самом преобразовании Фурье, а в концепции «перемешивания токенов» (token mixing). Для понимания всей последовательности информация должна циркулировать между ее элементами. В сверточных нейросетях (CNN) этот поток ограничен локальной окрестностью, что логично для изображений, где соседние пиксели связаны сильнее всего. Но в текстах локальность часто не работает. Ведущий приводит пример из немецкого языка, где глагол в самом конце предложения может напрямую ссылаться на второе слово в предложении.



Механизм внимания анализировал абсолютно все попарные связи и выбирал лучшие из них. Однако новые исследования (включая архитектуры класса MLP-Mixer) показывают, что для большинства задач точная маршрутизация может быть не так важна, как сам факт того, что информация просто перемешивается. Преобразование Фурье разрушает временную область и распределяет влияние каждого токена по всем частотам последовательности. Когда затем применяется полносвязный слой, он работает уже не с изолированными токенами, а с частотами, отражающими структуру всей строки целиком. Это позволяет эффективно передавать информацию из любого конца последовательности в другой всего за два шага вместо одного сложного. Преобразование Фурье было выбрано авторами просто потому, что оно доступно в любой математической библиотеке, однако, как считает ведущий, могут существовать и более эффективные линейные трансформации.

## 📊 Результаты тестов: скорость в обмен на точность
[[JUMP:21:52]]

Янник Килчер заявляет, что эпоха погони за абсолютным рекордом точности (SOTA) постепенно сменяется эпохой компромиссов, когда модели работают чуть хуже, но значительно быстрее. В экспериментах авторы сравнивали базовый BERT со следующими альтернативами:

* **FNet:** полная замена внимания на слои Фурье.
* **Linear Encoder:** замена внимания на две обучаемые плотные матрицы (аналог архитектуры MLP-Mixer).
* **Random Encoder:** замена внимания на две константные случайные матрицы (простое хаотичное перемешивание).
* **Feed-Forward only:** модель вообще без перемешивания токенов.
* **FNet Hybrid:** гибридная модель, где в первых слоях используется Фурье, а в последних нескольких — классическое внимание.

На этапе предобучения (в задачах маскированного языкового моделирования) классический BERT безоговорочно побеждает по точности. За ним следует Linear Encoder, а FNet обходит случайный энкодер, что доказывает: структура преобразования Фурье имеет значение и это не просто случайный шум. Однако на стороне FNet колоссальное преимущество в скорости: модель демонстрирует приличный прирост на TPU и огромный — на GPU. 

На бенчмарке GLUE классический BERT также лидирует в большинстве задач, хотя гибридная версия FNet Hybrid и линейный энкодер идут следом с минимальным отставанием. Ведущий призывает относиться к этим бенчмаркам с осторожностью из-за высокой дисперсии результатов между разными запусками обучения. В тестах на длинный контекст Long-Range Arena (LRA) трансформеры по-прежнему точнее, но альтернативные модели вроде FNet расходуют значительно меньше памяти и вычислительных ресурсов, благодаря чему не падают с ошибками нехватки памяти (OOM) и обучаются кратно быстрее. В конечном итоге, для многих практических задач архитектуры без внимания могут стать отличной альтернативой.