Связь сетей Хопфилда и механизмов внимания в современных ИИ-моделях

Yannic Kilcher 112 тыс. 1 ч 5 мин 7 мин 09.08.2020
Главное

В научном сообществе произошло глубокое переосмысление механизмов работы архитектуры Transformer, лежащей в основе современных больших языковых моделей. Исследователи из Университета Иоганна Кеплера в Линце и Университета Осло представили фундаментальную работу «Hopfield Networks is All You Need», в которой доказали математическую эквивалентность механизма внимания (attention) и классических сетей Хопфилда. Популярный ИТ-исследователь Янник Кильхер (Yannic Kilcher) подробно разобрал эту статью, показав, как старые концепции нейробиологии и ассоциативной памяти внезапно объяснили феноменальный успех и внутреннюю логику глубокого обучения.

🧠 Возвращение к истокам: что такое сеть Хопфилда? 1:36

Для понимания сути открытия необходимо вернуться к классической концепции сетей Хопфилда, разработанной еще в 1980-х годах. Янник Кильхер предлагает представить такую сеть как простую полносвязную модель ассоциативной памяти, состоящую из фиксированного набора нейронов. Главная цель сети Хопфилда — надежно сохранять и воспроизводить определенные бинарные шаблоны (последовательности нулей и единиц).

Процесс извлечения информации из классической памяти выглядит следующим образом:

В основе этого процесса лежит биологический принцип «обучения Хебба» (fire together, wire together). Долгое время считалось, что емкость такой памяти крайне ограничена: если сеть имеет $N$ нейронов, то в ней нельзя зафиксировать много паттернов без риска их взаимного наложения и искажения. Однако развитие математического аппарата современных сетей Хопфилда показало удивительный факт: при правильном выборе функции обновления они способны хранить экспоненциально много шаблонов относительно размерности векторов.

📈 Непрерывные состояния и революция емкости памяти 6:00

Главное теоретическое новшество обсуждаемой статьи заключается в обобщении современных сетей Хопфилда с жестких бинарных строк на непрерывные состояния. Теперь шаблоны представляют собой не последовательности нулей и единиц, а векторы, состоящие из чисел с плавающей запятой.

В геометрии высоких размерностей непрерывные векторы могут быть хорошо отделены друг от друга. Авторы исследования математически доказали, что все ключевые свойства хранения информации сохраняются и для непрерывных паттернов. Сеть по-прежнему способна удерживать экспоненциальное число векторов. По словам Янника Кильхера, это крайне неожиданный и интригующий вывод, поскольку интуитивно кажется, что после превышения лимита «один вектор на одно измерение» стабильность системы должна резко упасть.

Любая сеть Хопфилда неразрывно связана с понятием энергетической функции. Работа алгоритма обновления сводится к поиску глобального или локального минимума этой энергии. В коде инженеры не оптимизируют энергию напрямую с помощью градиентного спуска — вместо этого они используют аналитическое правило обновления, которое гарантированно ведет систему к энергетическому минимуму, позволяя извлечь нужный вектор. При подаче непрерывного запроса сеть возвращает тот сохраненный вектор, с которым у запроса наблюдается наибольшее скалярное произведение.

🤝 Механизм внимания как шаг в сети Хопфилда 11:17

Фундаментальный мост между двумя мирами строится на замене математических переменных. Если переписать формулу температуры распределения softmax как $1/\sqrt{d}$, принять матрицу запросов трансформера за состояние сети, а матрицу ключей — за сохраненные шаблоны, то функция обновления непрерывной сети Хопфилда становится абсолютно идентичной механизму внимания в трансформерах. Таким образом, классический self-attention — это не что иное, как ровно один шаг итеративного поиска в ассоциативной памяти Хопфилда.

Для наглядности Янник Кильхер приводит лингвистический пример работы механизма внимания на предложении «My cat is very pretty» (Моя кошка очень милая). Механизм работает как система маршрутизации информации:

С позиции сетей Хопфилда этот процесс выглядит так: ключи — это паттерны, зашитые в память, а запрос — это вектор направления, с помощью которого модель извлекает из памяти наиболее подходящий информационный контекст.

⚖️ Динамика сходимости и метастабильные состояния 24:37

Поскольку классическое внимание делает всего один шаг вычислений, возникает логичный вопрос: что произойдет, если запустить этот цикл многократно? В теории, если мы возьмем взвешенное среднее ключей, полученное после первого шага softmax, и подставим его обратно в качестве нового запроса, распределение начнет обостряться. При многократном повторении одна доминирующая вершина полностью поглотит всю массу распределения, и сеть сойдется к одному четкому вектору-шаблону.

Однако такая идеальная картина работает только тогда, когда шаблоны в пространстве строго изолированы друг от друга. Если же векторы перекрываются, система ведет себя иначе:

В приложении к статье (объем которого составляет внушительные 70 страниц) математически доказано пять ключевых теорем. Теоремы 1 и 2 подтверждают, что предложенное правило гарантированно сходится к фиксированной точке и минимизирует энергию. Теорема 3 постулирует нижнюю границу экспоненциальной емкости непрерывной памяти. Теоремы 4 и 5 доказывают, что при хорошем разделении векторов алгоритм приближается к фиксированной точке экспоненциально быстро.

«Если я чему-то и научился на курсах по быстрому коду, так это тому, что константы имеют значение, когда мы не имеем дела с бесконечностью», — иронизирует Янник Кильхер.

Он отмечает, что задекларированная авторами скорость сходимости «всего за один шаг» на практике сильно зависит от квадратичной константы длины последовательности $N$, поэтому безоговорочно принимать этот теоретический тезис для реальных вычислительных сред не стоит.

🔍 Эксперименты с BERT: где прячется «мышление» модели? 48:17

Чтобы проверить, в каком режиме работают реальные нейросети, авторы провели изящный эксперимент на базе предобученной модели BERT от Hugging Face. Они пропускали через нее тексты и замеряли метрику $k$ — количество токенов в распределении softmax, которое необходимо суммировать, чтобы набрать 90% всей массы внимания.

Результаты выявили четкую функциональную специализацию слоев модели:

  1. Нижние слои (Layer 1): Здесь метрика $k$ оказалась очень высокой (в медиане — 231 токен из 512). Это означает, что нижние слои работают в режиме глобального усреднения, собирая фоновый контекст со всей последовательности и почти не обращая внимания на конкретные слова.
  2. Средние слои: Здесь графики резко смещаются к значению $k=1$. Головы внимания становятся ультраспецифичными. Они ищут и извлекают из памяти один конкретный шаблон. По мнению Кильхера, именно на этих средних слоях и происходит основное логическое «мышление» и глубокий анализ связей модели.
  3. Верхние слои (Layer 12): Ближе к выходу модели значения $k$ снова начинают расти, распределяясь в умеренном диапазоне. Сеть возвращается в метастабильный режим, формируя обобщенные кластеры концептов для финального решения задачи языкового моделирования или классификации.

🔬 Практическое применение: от оптимизации ИНС до иммунологии 58:40

Понимание природы слоев позволило провести успешные эксперименты по оптимизации архитектур. Исследователи попробовали принудительно заменить сложный механизм вычисления внимания на первом слое BERT обычным тривиальным усреднением. Выяснилось, что перплексия (качество работы) модели от этого практически не пострадала. Это открывает огромные перспективы для ускорения вычислений: зная, какие слои просто агрегируют фон, их математический аппарат можно радикально упростить без потери точности.

В динамике обучения также были замечены удивительные фазовые переходы. На средних слоях головы внимания долгое время находятся в размытом состоянии, но в определенный момент обучения происходит резкий скачок — голова внезапно «понимает», на какой именно лингвистической подзадаче ей нужно специализироваться, и ее показатель $k$ мгновенно падает до единицы. Верхние же слои не демонстрируют таких скачков и продолжают плавно дообучаться в метастабильной зоне на протяжении всего цикла.

В качестве финального аккорда авторы применили разработанный ими универсальный слой Хопфилда (реализованный в виде удобного drop-in модуля на PyTorch) к сложнейшей задаче из области биологии — классификации иммунного репертуара человека. Задача относится к классу обучения на множествах (multi-instance learning): у медиков есть данные о десятках тысяч иммунных рецепторов конкретного пациента, но имеется лишь одна бинарная метка — болен человек или защищен. Неизвестно, какой именно рецептор или их комбинация отвечают за иммунитет.

Комбинация одномерных сверточных нейросетей (1D CNN) и слоев внимания Хопфилда с обучаемыми запросами позволила модели успешно агрегировать информацию по гигантским массивам данных и показать результаты на уровне SOTA (state-of-the-art), значительно превзойдя классические ИНС-базовые линии.

💬 Цитаты

«Механизм внимания — это просто одношаговый алгоритм поиска шаблонов в сети Хопфилда с определенным правилом обновления.»

Янник Кильхер 26:00

«Если я чему-то и научился на курсах по быстрому коду, так это тому, что константы имеют значение, когда мы не имеем дела с бесконечностью.»

Янник Кильхер 43:39
👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
Сеть Хопфилда
Полносвязная нейронная сеть с симметричными связями, работающая как ассоциативная память за счет минимизации энергетической функции.
Метастабильное состояние
Состояние системы, при котором алгоритм сходится не к одному конкретному шаблону, а застревает в усредненном значении группы перекрывающихся паттернов.
Механизм внимания (Attention)
Компонент нейросети, позволяющий динамически вычислять взаимную релевантность элементов последовательности и распределять информационные потоки.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект Hopfield Networks Механизм внимания Transformers Янник Кильхер