Графовые нейронные сети: как GNN объединяют соцсети, химию и навигацию Google

MIT OpenCourseWare 7,1 тыс. 1 ч 21 мин 4 мин 11.02.2026
Главное

Профессор Массачусетского технологического института (MIT) Филип Изола открывает пятую лекцию курса по архитектурам глубокого обучения, посвящая её графовым нейронным сетям (GNN). По мнению Изолы, глубокое обучение — это «самая красивая математика», а графы — универсальный язык для описания связей в мире, от социальных сетей до молекулярных структур.

🕸️ Почему графы повсюду: от соцсетей до физики 4:06

Филип Изола начинает с того, что графовые структуры являются естественным способом представления данных во многих областях. В отличие от стандартных табличных данных, графы описывают объекты (узлы) и их взаимоотношения (ребра).

Сферы применения графовых моделей, упомянутые в лекции:

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

🧱 Архитектура GNN: как это работает 14:02

Графовая нейронная сеть принимает на вход два основных компонента:

  1. Матрица смежности (Adjacency Matrix): Описывает топологию графа (кто с кем соединен) .
  2. Атрибуты узлов: Векторы признаков для каждого узла (например, тип атома в молекуле) .

Проблема обычных нейросетей (MLP)

Если просто «развернуть» матрицу смежности в один длинный вектор и подать её в обычный перцептрон (MLP), возникнет проблема чувствительности к перестановке (permutation sensitivity) . По словам Изолы, выбор индексов для узлов (какой узел будет первым, какой — четвертым) абсолютно произволен. Модель должна выдавать один и тот же результат, как бы мы ни перемешали строки и столбцы в матрице смежности, если структура графа осталась прежней. Это свойство называется инвариантностью к перестановкам .

Алгоритм передачи сообщений (Message Passing) 32:59

Основной цикл работы GNN состоит из двух повторяющихся шагов для каждого слоя $k$:

  1. Агрегация (Aggregate): Узел собирает «сообщения» (векторы признаков) от всех своих соседей . Функция агрегации должна быть инвариантной к порядку соседей (например, сумма, среднее или максимум) .
  2. Обновление (Update): Узел объединяет собранное сообщение со своим собственным текущим вектором признаков, чтобы получить новое представление .

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

🔄 GNN как обобщение других архитектур 54:32

Изола подчеркивает, что многие знакомые архитектуры — это лишь частные случаи графовых сетей:

📐 Теоретические пределы: что GNN не могут «увидеть» 1:06:33

Один из самых глубоких разделов лекции посвящен мощности аппроксимации. Профессор объясняет, что стандартные GNN не всесильны.

Существуют пары графов, которые структурно различны, но для GNN выглядят абсолютно одинаково . Это происходит потому, что GNN видит мир через «дерево окрестностей». Если деревья развертки для всех узлов в двух разных графах совпадают, сеть выдаст идентичные предсказания для обоих .

Филип Изола проводит параллель с классической теорией графов:

🛠️ Практические нюансы и инструменты 1:15:31

Профессор приводит пример того, как мелкие детали реализации влияют на результат:

Для реализации GNN в коде участникам рекомендуется использовать специализированные библиотеки (хотя конкретные названия инструментов вроде PyTorch Geometric не звучат, упоминается общая работа в PyTorch ).

Как обучить свою GNN (пошаговый алгоритм):

  1. Подготовить данные: Представить входные данные в виде списка узлов с признаками и списка ребер (матрицы смежности) .
  2. Выбрать функции: Определить функцию агрегации (например, MLP + Sum) и функцию обновления (например, Linear + ReLU) .
  3. Определить задачу:
    • Классификация узлов (например, предсказать интересы пользователя) .
    • Классификация графа (например, предсказать токсичность молекулы) — в этом случае добавляется финальный шаг «считывания» (readout), агрегирующий все узлы в один вектор .
  4. Запустить обучение: Использовать стандартный метод обратного распространения ошибки (backpropagation) через развернутый граф вычислений .
💬 Цитаты

«Для меня глубокое обучение — это самая красивая форма математики и интеллекта, которую я могу себе представить.»

Филип Изола 00:40

«Универсальность — это на самом деле не то, к чему мы стремимся в дизайне архитектур. Мы хотим накладывать правильные ограничения.»

Филип Изола 03:22
👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
Матрица смежности
Квадратная матрица, используемая для представления связей между узлами графа.
Инвариантность к перестановкам
Свойство функции выдавать одинаковый результат независимо от порядка следования входных элементов.
Multiset (Мультимножество)
Математическая структура, похожая на множество, но позволяющая хранить повторяющиеся элементы.
WL-тест
Алгоритм Вайсфейлера — Лемана для проверки изоморфизма графов.
📊 Цифры
⚖️ Другая сторона
Наука Graph Neural Networks MIT Phillip Isola Message Passing Weisfeiler-Leman