В новом видео популярный ИИ-исследователь Янник Килчер (Yannic Kilcher) подробно разбирает нашумевшую научную работу «Linear Transformers Are Secretly Fast Weight Memory Systems». Авторы статьи — Иммануэль Шлаг, Казуки Ири и знаменитый Юрген Шмидхубер — доказывают фундаментальную математическую связь между современными линейными трансформерами и концепцией сетей с «быстрыми весами», предложенной еще в 1990-х годах. По мнению Килчера, эта работа радикально меняет взгляд на механизмы ИИ, предлагая эффективные способы преодоления ограничений памяти в последовательных моделях.
🧠 Возвращение к истокам: что такое системы с быстрыми весами? 1:33
Для понимания сути исследования необходимо вернуться к классической концепции нейронных сетей. Системы с быстрыми весами (Fast Weight Memory Systems) — это архитектурный подход, в рамках которого одна нейросеть динамически генерирует веса для другой. Как объясняет Янник Килчер, в этой связке базовую сеть можно назвать носителем «медленных весов» (slow weights), которые обучаются стандартным методом обратного распространения ошибки, в то время как генерируемые ей «быстрые веса» (fast weights) меняются на каждом шаге в зависимости от текущего контекста.
Фактически, одна сеть учится программировать другую прямо в процессе работы. В работах Юргена Шмидхубера прошлых десятилетий описывались системы, использующие внешнее произведение векторов (outer product) для непрерывного обновления этой динамической матрицы весов. В авторегрессионном режиме, когда модель предсказывает каждый следующий элемент последовательности на основе предыдущих (например, в языковом моделировании), такой подход позволяет эффективно удерживать контекст.
💾 Распределенная база данных на матрицах 7:08
Принцип работы памяти в подобных системах можно наглядно представить в виде распределенной базы данных, оперирующей непрерывными векторами. Чтобы сохранить ассоциативные пары «ключ-значение» ($key$ и $value$), система вычисляет их внешнее произведение и прибавляет полученный результат к общей матрице памяти.
По словам ведущего, магия этого процесса раскрывается при извлечении информации:
- Когда к матрице применяется вектор-запрос ($query$), происходит обычное матричное умножение.
- Если вектор-запрос совпадает с одним из сохраненных ключей, система должна вернуть соответствующее значение.
- Главным математическим условием для безошибочной работы такой базы данных является ортогональность и нормализация всех векторов-ключей.
Если ключи строго ортогональны, то при перемножении все «лишние» элементы матрицы зануляются, оставляя только искомое значение. Если же запрос представляет собой суперпозицию нескольких ключей, система выдаст интерполированный результат. Янник Килчер проводит прямую аналогию с современным механизмом внимания (Attention), отмечая, что слой внимания — это фактически полносвязный слой, веса которого динамически вычисляются другой частью сети на основе входных данных.
🔄 Секретная связь трансформеров и старых алгоритмов 13:27
Основной фокус авторов статьи направлен на каузальное (причинно-следственное) внимание в авторегрессионных трансформерах. В стандартных архитектурах каждый элемент последовательности может взаимодействовать только с элементами из прошлого, образуя своеобразный конус распространения информации. При вычислении выхода текущего шага используются матрицы накопленных ключей и значений всей предыстории.
Обычно узким горлышком этой операции является нелинейная функция Softmax, которая распределяет веса внимания. Однако, как демонстрирует Янник Килчер, если убрать Softmax, математическая структура слоя внимания драматически упрощается. Вместо скалярного произведения ключей и запросов с последующим умножением на значения, формулу можно переписать через ассоциативное свойство матриц.
В результате получается внешнее произведение значений на ключи, умножаемое на вектор-запрос. Этот шаг напрямую связывает трансформеры с алгоритмами быстрых весов: текущую матрицу памяти можно представить как сумму матрицы предыдущего шага и внешнего произведения новых векторов.
🎭 Ядра и возвращение Softmax через Performer 22:11
Просто отказаться от Softmax нельзя, так как модель потеряет важные нелинейные свойства. Чтобы решить эту проблему, исследователи обращаются к концепции ядерных методов (kernels), реализованной в архитектуре Performer. Функция Softmax аппроксимируется через явное отображение признаков (feature map) в высокомерное пространство с помощью функции $\phi$.
Благодаря линейной разложимости ядра, формулу авторегрессионного внимания снова удается представить в виде системы быстрых весов. Отличие заключается лишь в необходимости отслеживать дополнительный вектор-аккумулятор для нормализации. Таким образом, авторы работы доказывают, что любые линейные трансформеры фундаментально являются замаскированными системами памяти с быстрыми весами.
⚠️ Проблема перегрузки и новая формула обновления памяти 27:30
Главная ценность статьи, по мнению Килчера, заключается в анализе ограничений емкости линейной памяти. Поскольку информация записывается в матрицу фиксированного размера, бесконечно добавлять новые ассоциации без искажений невозможно. В $d$-мерном пространстве ключей может существовать не более $d$ взаимно ортогональных векторов. Как только длина обрабатываемой последовательности превышает размерность ключей, неизбежно возникают конфликты и ошибки извлечения.
Для преодоления этого барьера Шлаг, Ири и Шмидхубер предлагают принципиально новое правило обновления памяти. Вместо слепого суммирования новых пар, алгоритм сначала отправляет текущий ключ в качестве запроса в матрицу прошлых весов, чтобы узнать, что там уже сохранено.
Затем вычисляется разница («diff») между старым и новым значениями. Модель также генерирует специальный коэффициент $\beta$ с помощью легковесной однослойной подсети, который определяет степень обновления. Новая матрица формируется путем интерполяции старых данных и взвешенной разницы, что позволяет динамически перезаписывать неактуальную информацию.
🗺️ Квадранты и детерминированное картирование признаков 37:41
Эффективность системы быстрых весов сильно зависит от выбора функции отображения $\phi$. Ведущий разбирает критику авторов в адрес существующих решений, таких как ELU+1 или FAVOR+ (используемый в Performer). Функция ELU+1 не позволяет гибко управлять емкостью памяти, а FAVOR+ опирается на случайное сэмплирование из нормального распределения, что может приводить к нестабильности результатов от запуска к запуску.
В качестве альтернативы в статье предлагается детерминированное отображение, основанное на разделении векторов по квадрантам пространства с применением функции ReLU. Ключ разбивается на положительные и отрицательные составляющие его координат, которые перемножаются между собой. Это гарантирует стопроцентную ортогональность векторов, попавших в разные квадранты.
Размерность выходного пространства регулируется гиперпараметром $\nu$. При этом Янник Килчер, изучив код проекта, указывает на небольшую теоретическую ошибку в тексте статьи касательно ограничений выбора максимального значения $\nu$, однако признает, что на практике авторы используют лишь значения 1, 2 и 3, поэтому баг не влияет на результаты экспериментов.
📊 Эксперименты: от синтетики до реальных задач 46:15
В серии тестов на извлечение случайно сгенерированных пар «ключ-значение» предложенный метод показал строгое соответствие теоретическим ожиданиям. Обычный линейный трансформер с размерностью ключей 64 начинал резко терять точность ровно после 60–64 сохраненных элементов из-за конфликтов памяти.
Внедрение нового правила обновления с параметром $\nu=1$ сдвинуло порог разрушения памяти до 120 элементов, а при $\nu=2$ и $\nu=3$ стабильность сохранялась до 240 и 300+ элементов соответственно. Настоящий Softmax показал более сложную нелинейную динамику, которую нельзя описать простыми линейными ограничениями.
В экспериментах по языковому моделированию и машинному переводу новая архитектура уверенно превзошла классический Performer на промежуточных размерностях. Примечательно, что авторегрессионные модели успешно обучались даже без использования позиционного кодирования. По мнению Килчера, это логично, ведь такие системы начинают вести себя подобно рекуррентным сетям (RNN), способным самостоятельно формировать внутренний счетчик шагов внутри механизма обновления.
В финальном комментарии Янник отмечает, что хотя жесткое тестирование емкости на случайных векторах и выглядит излишне синтетическим (ведь в реальном языке нам важна именно интерполяция синонимов и схожих понятий), предложенный авторами подход является крайне перспективным для длинных последовательностей и символьных задач.