Графовая нейронная сеть

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
 
(1 промежуточная версия не показана)
Строка 1: Строка 1:
 +
{{well|Статья написана с использованием LLM '''Claude Sonnet 3.5''' и '''DeepSeek V4-Flash''' и проверена участником [[Участник:Dan-Кhaiaa Lakpazhap|Dan-Кhaiaa Lakpazhap]] 20:16, 30 июня 2026 (MSD). Промпт приводится полностью в [[Обсуждение:Графовая нейронная сеть]].}}
{{TOCright}}
{{TOCright}}
'''Гра́фовая нейро́нная сеть''' (англ. ''Graph Neural Network'', '''GNN''') — класс [[Искусственная нейронная сеть|искусственных нейронных сетей]], предназначенных для работы с данными, представленными в виде [[Граф|графа]]: с [[Вершина графа|вершинами]] (узлами) и [[Ребро графа|рёбрами]], которые задают произвольные, не обязательно регулярные связи между объектами. В отличие от [[Свёрточная нейронная сеть|свёрточных нейронных сетей]] (работающих с сеткой пикселей) и [[Рекуррентная нейронная сеть|рекуррентных сетей]] (работающих с последовательностями), графовые нейронные сети обобщают идею локальной свёртки на данные без фиксированной структуры соседства, что делает их естественным инструментом [[Машинное обучение|машинного обучения]] на [[Социальная сеть (математика)|социальных сетях]], молекулах, дорожных сетях, [[Рекомендательная система|рекомендательных системах]], базах знаний и других графовых структурах<ref name="scarselli2009">{{статья |автор=Scarselli F., Gori M., Tsoi A. C., Hagenbuchner M., Monfardini G. |заглавие=The Graph Neural Network Model |ссылка=https://ieeexplore.ieee.org/document/4700287 |язык=en |издание=IEEE Transactions on Neural Networks |год=2009 |том=20 |номер=1 |страницы=61—80 |doi=10.1109/TNN.2008.2005605}}</ref><ref name="zhou2020">{{статья |автор=Zhou J., Cui G., Hu S., Zhang Z., Yang C., Liu Z., Wang L., Li C., Sun M. |заглавие=Graph neural networks: A review of methods and applications |ссылка=https://arxiv.org/abs/1812.08434 |язык=en |издание=AI Open |год=2020 |том=1 |страницы=57—81 |doi=10.1016/j.aiopen.2021.01.001}}</ref>.
'''Гра́фовая нейро́нная сеть''' (англ. ''Graph Neural Network'', '''GNN''') — класс [[Искусственная нейронная сеть|искусственных нейронных сетей]], предназначенных для работы с данными, представленными в виде [[Граф|графа]]: с [[Вершина графа|вершинами]] (узлами) и [[Ребро графа|рёбрами]], которые задают произвольные, не обязательно регулярные связи между объектами. В отличие от [[Свёрточная нейронная сеть|свёрточных нейронных сетей]] (работающих с сеткой пикселей) и [[Рекуррентная нейронная сеть|рекуррентных сетей]] (работающих с последовательностями), графовые нейронные сети обобщают идею локальной свёртки на данные без фиксированной структуры соседства, что делает их естественным инструментом [[Машинное обучение|машинного обучения]] на [[Социальная сеть (математика)|социальных сетях]], молекулах, дорожных сетях, [[Рекомендательная система|рекомендательных системах]], базах знаний и других графовых структурах<ref name="scarselli2009">{{статья |автор=Scarselli F., Gori M., Tsoi A. C., Hagenbuchner M., Monfardini G. |заглавие=The Graph Neural Network Model |ссылка=https://ieeexplore.ieee.org/document/4700287 |язык=en |издание=IEEE Transactions on Neural Networks |год=2009 |том=20 |номер=1 |страницы=61—80 |doi=10.1109/TNN.2008.2005605}}</ref><ref name="zhou2020">{{статья |автор=Zhou J., Cui G., Hu S., Zhang Z., Yang C., Liu Z., Wang L., Li C., Sun M. |заглавие=Graph neural networks: A review of methods and applications |ссылка=https://arxiv.org/abs/1812.08434 |язык=en |издание=AI Open |год=2020 |том=1 |страницы=57—81 |doi=10.1016/j.aiopen.2021.01.001}}</ref>.
Строка 65: Строка 66:
</tex>
</tex>
-
где <tex>W</tex> и <tex>a</tex> — обучаемые параметры, а <tex>\|</tex> — операция конкатенации. Итоговое представление вершины — взвешенная сумма представлений соседей с этими коэффициентами. Такой подход позволяет модели самой определять относительную значимость разных соседей, не завися от нормировки по степени вершины.
+
где <tex>W</tex> и <tex>a</tex> — обучаемые параметры, а <tex>{|}</tex> — операция конкатенации. Итоговое представление вершины — взвешенная сумма представлений соседей с этими коэффициентами. Такой подход позволяет модели самой определять относительную значимость разных соседей, не завися от нормировки по степени вершины.
=== Сети передачи сообщений и графовая изоморфная сеть (GIN) ===
=== Сети передачи сообщений и графовая изоморфная сеть (GIN) ===
Строка 143: Строка 144:
* {{статья |автор=Jumper J., Evans R., Pritzel A. и др. |заглавие=Highly accurate protein structure prediction with AlphaFold |ссылка=https://www.nature.com/articles/s41586-021-03819-2 |язык=en |издание=Nature |год=2021 |том=596 |страницы=583—589 |doi=10.1038/s41586-021-03819-2}}
* {{статья |автор=Jumper J., Evans R., Pritzel A. и др. |заглавие=Highly accurate protein structure prediction with AlphaFold |ссылка=https://www.nature.com/articles/s41586-021-03819-2 |язык=en |издание=Nature |год=2021 |том=596 |страницы=583—589 |doi=10.1038/s41586-021-03819-2}}
* {{статья |автор=Derrow-Pinion A., She J., Wong D. и др. |заглавие=ETA Prediction with Graph Neural Networks in Google Maps |ссылка=https://arxiv.org/abs/2108.11482 |язык=en |издание=Proceedings of the 30th ACM International Conference on Information & Knowledge Management (CIKM) |год=2021 |страницы=3767—3776 |doi=10.1145/3459637.3481916}}
* {{статья |автор=Derrow-Pinion A., She J., Wong D. и др. |заглавие=ETA Prediction with Graph Neural Networks in Google Maps |ссылка=https://arxiv.org/abs/2108.11482 |язык=en |издание=Proceedings of the 30th ACM International Conference on Information & Knowledge Management (CIKM) |год=2021 |страницы=3767—3776 |doi=10.1145/3459637.3481916}}
-
 
-
{{well|Статья написана с использованием LLM '''Claude Sonnet 3.5''' и проверена участником [[Участник:Dan-Кhaiaa Lakpazhap|Dan-Кhaiaa Lakpazhap]] 20:16, 30 июня 2026 (MSD). Промпт приводится полностью в [[Обсуждение:Графовая нейронная сеть]].}}
 

Текущая версия

Статья написана с использованием LLM Claude Sonnet 3.5 и DeepSeek V4-Flash и проверена участником Dan-Кhaiaa Lakpazhap 20:16, 30 июня 2026 (MSD). Промпт приводится полностью в Обсуждение:Графовая нейронная сеть.


Содержание

Гра́фовая нейро́нная сеть (англ. Graph Neural Network, GNN) — класс искусственных нейронных сетей, предназначенных для работы с данными, представленными в виде графа: с вершинами (узлами) и рёбрами, которые задают произвольные, не обязательно регулярные связи между объектами. В отличие от свёрточных нейронных сетей (работающих с сеткой пикселей) и рекуррентных сетей (работающих с последовательностями), графовые нейронные сети обобщают идею локальной свёртки на данные без фиксированной структуры соседства, что делает их естественным инструментом машинного обучения на социальных сетях, молекулах, дорожных сетях, рекомендательных системах, базах знаний и других графовых структурах[1][1].

Ключевая идея GNN — передача сообщений (англ. message passing): каждая вершина итеративно обновляет своё векторное представление (эмбеддинг), агрегируя информацию от своих соседей. После нескольких раундов такого обновления представление вершины отражает не только её собственные признаки, но и структуру её локального (а при достаточной глубине — и более широкого) окружения в графе[1].

История

Идея применения нейронных сетей к графовым данным восходит к работам конца 1990-х — начала 2000-х годов о рекурсивных нейронных сетях для обработки направленных ациклических графов[1]. Термин «графовая нейронная сеть» и первая общая формализация модели, способной обрабатывать произвольные (в том числе циклические) графы через итеративный процесс распространения состояния до достижения неподвижной точки, были предложены Марко Гори, Габриэле Монфардини и Франко Скарселли в 2005 году[1], а в развёрнутом виде — в статье Скарселли и соавторов 2009 года The Graph Neural Network Model[1].

Современный этап развития начался с переноса идей свёртки на графы. В 2013—2014 годах появились спектральные графовые свёртки, определяемые через спектр графового лапласиана[1]; в 2016 году Деффар, Брессон и Вандергейнст предложили эффективное приближение спектральных фильтров через полиномы Чебышёва (ChebNet)[1]. Переломным моментом стала статья Томаса Кипфа и Макса Веллинга 2017 года, упростившая спектральный подход до простого и эффективного слоя — графовой свёрточной сети (GCN)[1], после чего число публикаций по GNN стало расти экспоненциально. В последующие годы были предложены индуктивная модель GraphSAGE[1], механизм внимания на графах GAT[1], единый фреймворк сетей передачи сообщений (MPNN)[1] и теоретически наиболее выразительная в своём классе графовая изоморфная сеть (GIN)[1].

Формальные основания

Представление графа

Граф задаётся парой G = (V, E), где V — множество вершин, а E \subseteq V \times V — множество рёбер. Структуру связей часто удобно описывать матрицей смежности A размера |V| \times |V|, а признаки вершин — матрицей X \in \mathbb{R}^{|V| \times d}, где строка x_v — вектор признаков вершины v. Рёбра также могут иметь собственные признаки (например, тип связи или вес), а граф в целом может быть направленным, взвешенным, гетерогенным (с несколькими типами вершин и рёбер) или динамическим (меняющимся во времени)[1].

Три типа задач

Задачи, решаемые GNN, обычно делят на три уровня[1]:

  • на уровне вершины (англ. node-level) — например, классификация вершин (предсказание категории пользователя в социальной сети) или регрессия на вершинах;
  • на уровне ребра (англ. edge-level) — например, предсказание связей (англ. link prediction), то есть оценка вероятности существования ребра между двумя вершинами;
  • на уровне графа (англ. graph-level) — классификация или регрессия над графом целиком, например предсказание свойства молекулы по её структуре.

Передача сообщений

Большинство современных архитектур GNN укладываются в единую вычислительную схему — фреймворк сетей передачи сообщений (англ. Message Passing Neural Networks, MPNN), предложенный Гилмером и соавторами[1]. На каждом слое k представление h_v^{(k)} вершины v обновляется по правилу


h_v^{(k)} = \text{UPDATE}^{(k)}\Big(h_v^{(k-1)},\; \text{AGGREGATE}^{(k)}\big(\{\,h_u^{(k-1)} \,|\, u \in \mathcal{N}(v)\,\}\big)\Big),

где \mathcal{N}(v) — множество соседей вершины v, \text{AGGREGATE} — некоторая функция агрегации, инвариантная к порядку элементов множества (например, сумма, среднее, максимум или обучаемая функция внимания), а \text{UPDATE} — обучаемая функция объединения (обычно однослойный перцептрон или рекуррентный блок). Начальное представление обычно полагают равным исходному вектору признаков: h_v^{(0)} = x_v. После K слоёв представление вершины отражает информацию из её K-окрестности (так называемое «рецептивное поле», по аналогии со свёрточными сетями).

Для задач уровня графа итоговые представления вершин объединяются функцией считывания (англ. readout), например суммированием или более сложным дифференцируемым пулингом:


h_G = \text{READOUT}\big(\{\,h_v^{(K)} \,|\, v \in V\,\}\big).

Основные архитектуры

Спектральные графовые свёрточные сети

Первый подход к обобщению свёртки на графы опирался на теорию обработки сигналов на графах: свёртка определялась как операция в спектральной области, заданной собственными векторами лапласиана графа[1]. Такой подход требовал дорогостоящего разложения матрицы O(|V|^3) и был плохо переносим между графами разной структуры. Деффар и соавторы предложили аппроксимировать спектральные фильтры полиномами Чебышёва степени K, что позволило вычислять свёртку локально, без явного разложения лапласиана[1].

Графовая свёрточная сеть (GCN)

Кипф и Веллинг показали, что при ограничении полинома Чебышёва первым порядком спектральный фильтр упрощается до одного линейного слоя, действующего на всю матрицу признаков[1]:


H^{(l+1)} = \sigma\Big(\tilde{D}^{-1/2}\,\tilde{A}\,\tilde{D}^{-1/2}\,H^{(l)}\,W^{(l)}\Big),

где \tilde{A} = A + I — матрица смежности с добавленными петлями (самопересылка), \tilde{D} — соответствующая ей диагональная матрица степеней, W^{(l)} — обучаемая матрица весов слоя, а \sigma — нелинейная функция активации (обычно ReLU). Эта модель, известная как GCN, стала одной из самых цитируемых работ в области и фактическим ориентиром для последующих архитектур благодаря простоте и хорошей масштабируемости[1].

GraphSAGE

Модель GCN исходно является трансдуктивной: она обучается сразу на всём графе, включая тестовые вершины, и плохо переносится на новые, ранее не виденные вершины. Хэмилтон, Ин и Лесковец предложили GraphSAGE (от SAmple and aggreGatE) — индуктивный подход, в котором для каждой вершины на каждом слое выбирается (сэмплируется) фиксированное число соседей, а функция агрегации обучается один раз и применяется затем к произвольным, в том числе ранее не встречавшимся, вершинам и графам[1]:


h_v^{(k)} = \sigma\Big(W^{(k)} \cdot \text{CONCAT}\big(h_v^{(k-1)},\; \text{AGG}_k(\{h_u^{(k-1)} \,|\, u \in \mathcal{N}(v)\})\big)\Big).

Это сделало GNN применимыми к очень большим и постоянно растущим графам, например к промышленным рекомендательным системам[1].

Графовые сети внимания (GAT)

Велкович и соавторы предложили заменить фиксированные (нормированные по степени) веса соседей на веса, вычисляемые механизмом внимания, — по аналогии с трансформерами[1]. Коэффициент внимания между вершинами i и j вычисляется как


\alpha_{ij} = \frac{\exp\big(\text{LeakyReLU}(a^{T}[W h_i \| W h_j])\big)}{\sum_{k \in \mathcal{N}(i)} \exp\big(\text{LeakyReLU}(a^{T}[W h_i \| W h_k])\big)},

где W и a — обучаемые параметры, а {|} — операция конкатенации. Итоговое представление вершины — взвешенная сумма представлений соседей с этими коэффициентами. Такой подход позволяет модели самой определять относительную значимость разных соседей, не завися от нормировки по степени вершины.

Сети передачи сообщений и графовая изоморфная сеть (GIN)

Гилмер и соавторы обобщили GCN, GraphSAGE, GAT и ряд других моделей (в том числе более ранние управляемые графовые сети, Gated Graph Neural Networks[1]) в единый фреймворк MPNN, включающий также признаки на рёбрах, что оказалось особенно полезным для задач хемоинформатики — предсказания свойств молекул[1].

Отдельный теоретический вопрос — какова предельная различающая способность GNN. Сю, Ху, Лесковец и Йегелка показали, что стандартные архитектуры (GCN, GraphSAGE) не могут различать некоторые простые, но неизоморфные графы, и что различающая способность любой GNN с передачей сообщений ограничена сверху классическим комбинаторным тестом Вейсфейлера — Лемана на изоморфизм графов. Они предложили графовую изоморфную сеть (англ. Graph Isomorphism Network, GIN) с агрегирующей функцией


h_v^{(k)} = \text{MLP}^{(k)}\Big((1+\epsilon^{(k)}) \cdot h_v^{(k-1)} + \sum_{u \in \mathcal{N}(v)} h_u^{(k-1)}\Big),

которая при подходящем выборе \text{MLP} доказуемо достигает различающей способности, равной тесту Вейсфейлера — Лемана, то есть является максимально мощной в классе GNN на основе суммирующей агрегации[1].

Обучение

Трансдуктивная и индуктивная постановки

В трансдуктивном сценарии обучения модель видит весь граф целиком (включая признаки и связи тестовых вершин), но не видит их меток; типичный пример — классификация вершин одного большого графа цитирования. В индуктивном сценарии модель должна уметь строить представления для вершин и графов, отсутствовавших на этапе обучения, — например, для новых пользователей социальной сети или новых молекул[1].

Функции потерь

Как и в остальном глубоком обучении, параметры GNN оптимизируются методом обратного распространения ошибки и вариантами стохастического градиентного спуска. Выбор функции потерь зависит от задачи: перекрёстная энтропия для классификации вершин, рёбер или графов; среднеквадратичная ошибка для регрессии; при отсутствии размеченных данных применяются задачи самообучения (англ. self-supervised learning), например реконструкция скрытых рёбер или максимизация взаимной информации между локальными и глобальными представлениями графа (Deep Graph Infomax).

Масштабирование на больших графах

Полный проход по всему графу на каждом шаге обучения неприменим для графов из миллионов и миллиардов вершин. Для решения этой проблемы применяются сэмплирование соседей (GraphSAGE)[1], сэмплирование подграфов (например, кластеризация графа перед формированием мини-пакетов) и другие методы приближённого вычисления градиента.

Проблемы и ограничения

Переобучение сглаживанием (over-smoothing)

При увеличении числа слоёв GNN представления разных, даже далёких друг от друга вершин имеют тенденцию становиться неразличимыми — этот эффект называют переобучением сглаживанием (англ. over-smoothing). Ли, Хань и Ву показали, что операция свёртки в GCN эквивалентна разновидности лапласова сглаживания признаков, из-за чего глубокие GCN быстро теряют дискриминативную способность[1]. Уно и Судзуки формально доказали, что с ростом глубины информация об исходных признаках и локальной структуре графа экспоненциально затухает, если не используются пропускающие соединения или другие компенсирующие механизмы[1].

Over-squashing («переобжатие» информации)

Алон и Яхав описали смежную проблему — over-squashing: при передаче сообщений через «узкие места» графа (например, длинные пути или мосты) экспоненциально растущий объём информации из дальней окрестности вынужденно «сжимается» в вектор фиксированной размерности, что искажает или теряет часть сигнала и ограничивает способность GNN учитывать дальние взаимодействия между вершинами[1].

Устойчивость

Как и другие нейросетевые модели, GNN уязвимы к состязательным (adversarial) возмущениям — небольшим изменениям структуры графа или признаков вершин, способным существенно изменить предсказание модели, что породило отдельное направление исследований по устойчивости и защите графовых моделей.

Применения

  • Химия и науки о материалах — предсказание физико-химических свойств молекул и поиск новых соединений на основе их графового представления (атомы — вершины, связи — рёбра)[1].
  • Структурная биология — GNN-подобные архитектуры, оперирующие графами атомов и остатков и обучающиеся на парных взаимодействиях, стали важной частью системы AlphaFold, позволившей резко повысить точность предсказания трёхмерной структуры белков[1].
  • Рекомендательные системы — представление пользователей и товаров как двудольного графа и обучение их эмбеддингов свёрточными GNN легло в основу промышленной системы PinSAGE, применяемой в Pinterest[1].
  • Транспортные и дорожные сети — GNN, моделирующая дорожную сеть как граф, используется компанией Google для предсказания времени прибытия (ETA) в сервисе Google Maps[1].
  • Социальные сети и анализ графов знаний — классификация пользователей, обнаружение сообществ, предсказание связей и дополнение баз знаний.
  • Компьютерное зрение и физика — распознавание сцен через графы объектов, моделирование физических систем частиц как взаимодействующих графов (Interaction Networks)[1].

Современные направления

Среди активных направлений исследований последних лет — графовые трансформеры, объединяющие идеи механизма внимания без ограничения на локальное соседство; согласование GNN с большими языковыми моделями для работы с текстово-атрибутированными графами; и построение так называемых «графовых фундаментальных моделей» — предобученных на разнородных графах моделей, переносимых на новые предметные области без дообучения с нуля[1].

См. также

Примечания

Литература

Личные инструменты