Глубокое понимание принципа графовой сверточной нейронной сети (GCN)
@TOC
предисловие
Развитие глубокого обучения меняется с каждым днем, от классических глубоких сетей (DNN, CNN, RNN) до GAN и обучения с подкреплением. Сценариев приложений, охватываемых глубоким обучением, становится все больше и больше. Представленная сегодня графовая нейронная сеть — это еще один класс методов глубокого обучения. Хотя нейронную сеть на графе тоже можно отнести к разряду глубокого обучения, она имеет свои уникальные сценарии применения и реализации алгоритма, что не очень дружелюбно к новичкам. GCN, полное название Graph Convolutional Network, представляет собой граф сверточной сети, Эта статья в основном реализует глубокое понимание GCN и помогает быстро понять принцип и использование GCN.
1. Зачем вам GCN
Вход сверточной нейронной сети (CNN) представляет собой структуру графа с евклидовой структурой, такой как изображение, которое представляет собой такой граф:Ядро свертки (ядро) используется для извлечения признаков из евклидова пространства.Поскольку изображение представляет собой относительно регулярную структуру графа, ядро свертки можно использовать для перевода и извлечения узловых признаков, то есть ядро CNN лежит в его ядре , а ядро маленькое.Окно транслируется на изображение, а фичи извлекаются свёрткой. Ключевым моментом здесь является трансляционная инвариантность структуры изображения: независимо от того, куда маленькое окно перемещается на изображение, его внутренняя структура точно такая же, поэтому CNN может добиться совместного использования параметров. В этом суть CNN. Но обычно мы сталкиваемся с топологическими сетями или социальными сетями, которые выглядят следующим образом
Как и эта структура графа, она не является аккуратной, сеть содержит разное количество узлов, а разные узлы также содержат разных соседей, что делает традиционную СНС неспособной работать в этой структуре графа, и обычно существует разница между каждым узлом в график Есть связь, поэтому, когда GCN вышел, он решил эту проблему.
Во-вторых, принцип GCN
1. Определение графа
Структура графа представлена G = (V, E). Граф включает в себя ориентированные графы или неориентированные графы, но в GCN рассматриваются только неориентированные графы. V представляет геометрию узла, E представляет геометрию ребра, а n представляет узел. , а m представляет количество ребер. Ниже мы вводим значение различных символов в GCN для структуры графа:
2. Глобальная сеть контекстной рекламы приближается
Магия GCN заключается в том, что он может агрегировать функции узлов рядом с узлом и изучать функции узлов посредством взвешенного агрегирования для выполнения ряда задач прогнозирования.
2.1 Формула расчета матрицы
Предположим, у нас есть пакет данных графа под рукой, есть n узлов (узлов), каждый узел имеет свой собственный вектор признаков, мы устанавливаем признаки этих узлов, чтобы сформировать n×d-мерную матрицу признаков X, а затем отношение также сформируетразмерная матрица смежности A. X и A являются входными данными для нашей модели.
Для всех узлов, т.е.представляет матрицу собственных векторов, когда все этапы находятся в слое l,Представляет матрицу собственных векторов после одной операции свертки. Формула операции свертки выглядит следующим образом: В этой формуле:
- ,— единичная матрица, то есть диагональ равна 1, а все остальные — 0
- даМатрица степеней , метод расчета
- - матрица собственных векторов всех узлов в каждом слое для входного слоя,эквивалентно,измерение
- σ - нелинейная функция активации, такая как
- Представляет обучаемую матрицу параметров сверточной трансформации текущего слоя.
Фактически он осуществляет взвешенное суммирование узлов-соседей каждого узла в графе и использует умножение на матрицу параметров для получения характеристик нового слоя узлов.Итеративно вычисляет характеристики каждого узла в виде матрицы, затем выполняет операции свертки посредством распространения слоя и, наконец, обновляет характеристики узла.
2.2 Объясните смысл формулы с мелкомасштабной матрицей
Формула рассчитывается с точки зрения матрицы, так зачем нужна такая сложная матричная форма?Во-первых, давайте рассмотрим простейший матричный расчет.
В приведенной выше формуле W — параметр преобразования свертки, который можно обучить и оптимизировать. Матрица A является матрицей смежности, и если Aij не равно 0, это означает, что вершина i, j является соседом, а ij имеет ребро. H — матрица собственных векторов всех узлов, каждая строка — собственный вектор узла, а H(0) — матрица X. Произведение A и H фактически складывает все векторы соседних узлов, как показано на следующем рисунке, указывая, что.
представляет матрицу смежности,Представляет 4 узла, каждый узел имеет 5-мерный вектор признаков, который будетПрямое умножение даст результат матрицы AH справа. После получения AH он умножается на параметр обучения W, и, наконец, вектор признаков следующего слоя из 4 узлов получается через функцию активации σ.
Но есть некоторые проблемы с приведенной выше формулой,Получается только информация о соседях узла, а информация о самом узле игнорируется. Чтобы решить эту задачу, мы можем преобразовать матрицуЗначение диагональной линии посередине установлено равным 1, то есть каждый узел будет указывать на себя.Новая формула свертки выглядит следующим образом:
I — единичная матрица, то есть диагональ равна 1, а остальные — 0. Даже используя приведенную выше формулу свертки, можно учесть информацию о самом узле,Но есть еще проблемы с этой формулой:Матрица A не нормирована, и AH будет складывать векторы всех соседей узла, так что значение собственных векторов некоторых узлов после многослойной свертки будет очень большим. Поскольку матрица смежности не нормализована, это может быть проблематично при извлечении функций графа, например, узлы с большим количеством соседей, как правило, имеют большие собственные значения.Обычно используется метод симметричной нормализации: Нормализация означает, что при агрегировании характеристик узлов-соседей узлового узла
2.3 Подводя итог:
Во-первых, чтобы рассмотреть собственные характеристики всех узлов в A, мы будемплюсстать, а затем для того, чтобы учесть явление, что вектор признаков будет продолжать складываться при агрегировании признаков соседних узлов узла, что приводит к тому явлению, что признаки узлов с большим количеством соседних узлов больше, мы используем симметричная нормализация. Таким образом, можно получить формулу распространения GCN по слоям,
Возьмем двухслойную GCN в качестве примера.
GCN может использовать вектор признаков узла, полученный последним слоем слоя свертки, для прогнозирования, то есть последний слой выходного слоя должен использовать операцию softmax, а нелинейная функция возбуждения предыдущего слоя от 0 до уровня 1 использует.
3. Насколько хороша GCN
После прочтения приведенной выше формулы и метода обучения GCN не кажется чем-то особенным, но в сочетании с результатами, опубликованными в статье GCN, оказывается, что GCN настолько хорош, а узлы той же категории в исходных данных извлечено GCN.embedding, которое было автоматически кластеризовано в пространствеПричина, по которой GCN настолько сильна, заключается в том, что на самом деле учитывается отношение соседей каждого узла в графе, что отличается от традиционной CNN, и красота математической формулы, стоящей за ней, также достойна нашего изучения.Как понять граф сверточной сети (GCN)
Суммировать
До сих пор мы глубоко понимали связанные концепции GCN, фактически используяКаждое соединение на рисунке не влияет на изменение своего состояния до тех пор, пока сосед и чем дальше точки, тем больше сосед влияет на отношения соседей.Благодаря взаимному влиянию между узлами и обучению матрицы параметров W окончательно изучаются характеристики каждого узла.
При этом количество слоев НКС не должно быть слишком большим., ** Проще говоря, количество слоев gcn сделает вложение каждой точки относительно похожим, что не очень хорошо для функций потерь, таких как классификация узлов позже.Конечно, некоторые эффекты могут быть компенсированы различными нормализациями. С термодинамической точки зрения каждое вложение узла рассматривается как температура узла, а каждая свертка gcn может рассматриваться как теплообмен между каждым узлом и окружающими узлами. При отсутствии внешнего источника тепла (узлы не имеют дополнительных меток), если граф полносвязный, множественные свертки в итоге сделают температуру каждого узла, то есть вложения, одинаковой.
В следующей статье мы обсудим использование DGL для реализации GCN и внедрение GAT.