Графовые нейронные сети
Графовая нейронная сеть (англ. Graph Neural Network, GNN) – тип нейронной сети, которая напрямую работает со структурой графа. Типичным применением GNN является классификация узлов.
Описание
При работе с естественными языками, обработке и анализе изображений, построении моделей веб-сетей и еще широком спектре прикладных задач, бывает удобно представлять данные в виде графов. Однако для традиционных методов машинного обучения необходимо предварительно преобразовывать графово структурированные данные в другие структуры данных, к примеру числовой вектор. Такой подход может привести к потере части информации, заключающейся во взаиморасположении узлов сети.
В графе каждый узел определяется его признаками и связанными узлами. Целью GNN является изучение состояния встраивания
, которое содержит информацию об окрестностях для каждого узла. Состояние встраивания - это s-мерный вектор из вершины , который может быть использован для получения выхода (метки узла).Пусть
- это параметрическая функция, называемая локальной переходной функцией, которая является общей для всех узлов и обновляет состояние узла в соответствии с входной окрестностью. Также пусть - локальная выходная функция, которая описывает, как выход был производен. Тогда и определяются следующим образом:
где
являются признаками , признаками его ребер, состояний, и признаками узлов в окрестностях соответственно.Пусть
и - это векторы, построенные путем укладки всех состояний, всех выходных данных, всех признаков и всех признаков узлов соответственно. Тогда мы можем представить уравнения в более компактной форме:
где
- это глобальная функция перехода, а - глобальная выходная функция которая является сложенной версией и для всех узлов в графе соответственно. Значение является фиксированным и однозначно определяется в предположением о том, что - это карта сжатия.С учетом теоремы Банаха о неподвижной точке GNN использует следующую классическую итерационную схему для вычисления состояния:
где
обозначает -ую итерацию . Динамическая система из этого уравнения сходится экспоненциально быстро к решению уравнения для любого начального значения . Стоит отметить, что вычисления описанные в и , могут быть интерпретированы как нейронные сети с прямой связью.Следующие задачей становится поиск параметров
и . С помощью целевой информации ( для конкретного узла) для контроля, функция потерь может быть вычислена следующим образом:
где
- это число контролируемых узлов. Алгоритм обучения основан на стратегии градиентного спуска и состоит из следующих шагов:- Состояния итеративно обновляются до времени . Они стремятся к фиксированному значению .
- Градиент весов вычисляется из функции потерь.
- Веса обновляются в соответствии с градиентом, вычисленным на последнем шаге.
Ограничения
Несмотря на то, что экспериментальные результаты показали, что GNN является мощной архитектурой для моделирования структурных данных, существует еще несколько ограничений для обычного GNN.
Во-первых, итеративно обновлять скрытые состояния узлов для фиксированной точки неэффективно. Если ослабить предположение о неподвижной точке, мы можем спроектировать многослойную GNN, чтобы получить стабильное представление узла и его окрестности.
Во-вторых, GNN использует одни и те же параметры в итерации, в то время как большинство популярных нейронных сетей используют разные параметры в разных слоях, которые служат в качестве метода извлечения иерархических признаков.
В-третьих, есть также некоторые информативные признаки на краях, которые не могут быть эффективно смоделированы обычной GNN. Например, ребра в графе знаний имеют тип отношений, и распространение сообщения через разные ребра должно быть различным в зависимости от их типов. Кроме того, поиск скрытых состояния ребер, также является важной проблемой.
Наконец, нецелесообразно использовать фиксированные точки, если мы сосредоточимся на представлении узлов вместо графиков, поскольку распределение представления в фиксированной точке будет гораздо более гладким по значению и менее информативным для различения каждого узла.