Здравствуйте! Сегодня мы обсудим довольно сложную тему — графовые сверточные сети, или GCN. Мы разберём все её ключевые принципы и постараемся понять, как они применяются для анализа графовых структур. Ну и...приступ!
Введение
GCN (Graph Convolutional Networks) — это масштабируемый подход к полуконтролируемому обучению, который применяется к данным, представленным в виде графов. Он основывается на принципах сверточных нейронных сетей (CNN).
Выбор сверточной архитектуры в GCN объясняется тем, что она предлагает локализованное приближение первого порядка спектральных сверток для графов. Локализованное приближение означает, что мы рассматриваем не всю структуру графовой сети, а лишь небольшую группу узлов и связей. Первый порядок указывает на размер этого локального приближения: поскольку это первый порядок, то мы будем изучать только ближайших соседей выбранного узла. Спектральная свертка — это более общее понятие, которое охватывает методы, использующие спектр графа для извлечения информации. Мы вернемся к этому более подробно позже.
Метод
Рассмотрим задачу классификации узлов в графе, где информация о метках доступна лишь для небольшого числа узлов. Эту задачу можно сформулировать как графо-ориентированное полу-контрольное обучение, в котором информация о метках распределяется по графу. Это достигается с помощью явной графо-ориентированной регуляризации, например, с использованием регуляризационного члена Лапласа в функции потерь.
Теперь давайте подробнее рассмотрим функцию потерь, используемую для классификации узлов в графе с учетом графовой регуляризации.
Формула состоит из двух частей:
Контролируемая потеря (оценивает, насколько хорошо модель предсказывает метки для известных узлов):
где Y — множество узлов с известными метками, — конкретная истинная метка узла, а — предсказанная вероятность для этой метки. ? — весовой коэффициент.Регуляризационная потеря (улучшает обобщающую способность):
где — элемент матрицы смежности графа, который стремится к 1, если узлы i и j связаны, и к 0, если нет. и — векторные представления (или "эмбеддинги") узлов i и j.
Если два узла связаны (то есть = 1), мы хотим уменьшить разницу между их представлениями f(Xi) и f(Xj). Это означает, что если узлы близки в графе, их предсказания должны быть похожи.
В этой работе мы кодируем структуру графа напрямую (представления графа с помощью определенного типа данных), используя модель нейронной сети f(X, A). Мы обучаем модель на контролируемой цели L0 для всех узлов с метками, что позволяет избежать явной графово-ориентированной регуляризации в функции потерь.
Ускоренное вычисление свертки
В этом разделе мы подробно рассмотрим теоретическую основу конкретной модели GCN. Первым шагом станет изучение правила распространения информации между слоями.
Здесь , где ? – матрица смежности неориентированного графа (графа без направления), а – единичная матрица. Зачем мы добавляем эту ? в нашу формулу?
Этот процесс демонстрирует, что каждый узел может взаимодействовать не только с соседями, но и сам с собой, что улучшает его представление в процессе работы сети.
Теперь давайте рассмотрим, что такое . Это , которое показывает, сколько ребер выходит из узла i в графе. Но почему ? Дело в том, что узлы в графах могут иметь разное количество связей. Без нормализации, узлы с большим числом связей будут значительно влиять на результаты, и модель может стать нестабильной.
Перейдем к – это обучаемая матрица весов, где ? обозначает слой (как в сверточной сети). ? – наша функция активации (Relu, sigmoid, tanh и т.п.). И наконец, представляет собой матрицу признаков узлов на ? слое нейронной сети GCN.
Spectral Graph Convolution или спектральные графовые свертки
Для начала давайте по быстрому разберемся в спектральной свертки. Смысл спектральной свертки заключается в том, что мы хотим применять некоторую операцию фильтрации (свёртки) к сигналам на графе. Этот сигнал может представлять разные данные (например, активность людей в социальных сетях). Спектральная свертка позволяет нам изучать сигналы, используя свойства графа (структура и его связи).
Теперь рассмотрим более углубленно, спектральные графовые свертки (позволяют анализировать графы через из частоты(на сколько сильно связаны узлы)), определенные как умножение сигнала (скаляр для каждой вершины) с фильтром (тот же фильтр, что и в сверточной сети(окошко 3х3), но только здесь фильтр состоит из диагональной матрицы), параметризованным (содержат информацию о том, как следует усиливать или ослаблять значения сигнала на каждой из N вершин графа.) в диапазоне Фурье(позволяет выделить частотные компоненты сигнала, что облегчает анализ его свойств) , т.е.:
где U — это матрица собственных векторов нормализованного лапласиана графа () , с диагональной матрицей собственных значений и — преобразованием Фурье графа сигнала x. Мы можем рассматривать как функцию собственных значений (Лапласиан графа ( , где - — диагональная матрица степеней, где каждый элемент равен степени вершины (количеству рёбер, соединяющих её с другими вершинами)) т.е. . Однако использование этой формулы требует больших вычислительных ресурсов, поэтому был предложен другой вариант.
Здесь мы предлагает использовать многочлены Чебышева для апроксимации (предсказание в диапазоне) функции фильтра где это пересчитанное . И опять же где обозначает наибольший собственный вектор .
теперь является вектором коэффициентов Чебышёва. Полиномы Чебышёва рекурсивно определяются как. при и . Теперь не много подравняем формулу для более точного определения и получим.
В общем все тоже самое только мы заменяем на, но нахождение L прежнее . Кстати это максимальное расстояние шагов от центрального узла.
Хорошо, давайте снова упростим наше уравнения до такого вида:
Где мы будем приближать (параметр являющимся компромиссом между сложностью модели и стабильностью её обучения). и будут свободными параметрами. Про все остальное уже говорили.
Однако если у вас будет проблема с переобучением или может вы захотите ускорить процесс минимазацией числа операций. То можем просто убрать один свободный параметр, что приведет к:
Классификация узлов с неполным контролем
Введя простую, но гибкую модель ( данные, матрица смежности) для эффективного распространения информации по графам, мы можем вернуться к проблеме полу-контролируемого классифицирования узлов. Как ранее было сказано мы можем ослабить определенные предположения , обычно делаемые в рамках графового полу-контролируемого обучения, путем внедрения контекста как данных , так и структуры графа в нашу модель. Это позволяет нам использовать дополнительную информацию, которая может быть неявно представлена в матрице смежности, такой как связи между узлами, даже если сами узлы не помечены.
Примеры:
В этом разделе мы рассмотрим двухслойную GCN для полу-контролируемого классифицирования узлов на графе с симметричной матрицей смежности (матрица, которая удовлетворяет условию (, где A может быть двоичной или взвешенной( матрица состоящий из 0 и 1 или матрица со любыми значениями). Сначала мы вычисляем ( (используется для нормализации матрицы смежности графа) на этапе предварительной обработки. Затем наша модель принимает простую форму:
Здесь — это матрица весов для скрытого слоя, которая связывает входные данные с скрытыми нейронами и имеет () признаковых карт.— это матрица весов, связывающая скрытые нейроны с выходами. Функция активации softmax, определяемая как: где , применяется по строкам(на выходном слое выводит вектор вероятностей сумма которых не превышает 1).
(То есть этим всем мы определяем выходной слой, что он будет выводить).
И на последок рассмотрим как мы будем оценивать нашу ошибку для полу-контролируемой многоклассовой классификации. А будем мы ее оценивать с помощью cross-entropy по всем маркированным примерам:
Где — это индикаторная переменная, указывающая на наличие метки для узла и класса f . — это предсказанная вероятность того, что узел принадлежит классу f . А — множество индексов узлов, которые имеют метки.
Ну и сама сверточная графовая сеть (GCN)
Вот как будет выглядеть схема многослойной графовой сверточной сети (GCN). На рисунке (a) слева изображен входной слой с C входными каналами, а справа — F признаковыми картами на выходном слое, а также скрытые слои.
В (b) представлена визуализация активаций скрытых слоев, созданная с помощью t-SNE на основе данных Cora. Для классификации документов, отличающихся по цвету, используются 5% меток.
На этом всё! Надеюсь, мне удалось объяснить, что такое GCN, простыми словами. Если у вас остались вопросы, пишите в комментариях, и я с радостью отвечу на них.