Это 8-й день моего участия в ноябрьском испытании обновлений.Подробности о событии:Вызов последнего обновления 2021 г.
Introduction
Поскольку вы зашли в этот блог, я предполагаю, что вы понимаете самые основные концепции графов, включая, помимо прочего, определения ориентированных графов и неориентированных графов.
Нейронная сеть графа — это нейронная сеть, которая работает непосредственно со структурами графа. Типичным применением GNN являетсяКлассификация узлов. По сути, каждый узел в графе связан с меткой. Как показано на рисунке ниже, вектор узла представлен как[0.3, 0.02, 7, 4, ...]
, и отправить вектор в нисходящий поток для продолжения классификации, чтобы получить категорию узла a
Как именно получается векторное представление узла а, я подробно объясню позже, а здесь можно просто подумать, векторное представление узла а должно отличаться от исходного.соседний узелисоседний крайСуществует связь, предполагающая, что каждый узелГорячий вектор представлен как,но
взначит сГорячее представление связанных ребер,значит сВложение соседних узлов,значит сГорячее представление соседних узлов. наконец-тоВекторы и реальные метки рассчитывают потери, но есть и места, гдевекторная суммаПосле раунда слияния подсчитываются потери, например
Приведенные выше формулы и символы могут быть трудны для понимания, но здесь можно сравнить Word2Vec. В Word2Vec вводом является однократное, соответствующее каждому слову, то есть. Выход представляет собой вложение, соответствующее слову, то есть
DeepWalk: первый алгоритм неконтролируемого обучения внедрению узлов
DeepWalk можно описать одним предложением: случайным образом сгенерировать последовательность узлов графа, а затем выполнить Word2Vec для этой последовательности.
В частности, для данного графа мы случайным образом выбираем узел для начала, а затем случайным образом «ходим» к соседним узлам, пока длина последовательности узлов не достигнет заданного максимального значения. Например, на рисунке ниже выберите d, e и f в качестве начальной точки для обхода и получите три последовательности узлов.
В этом случае мы можем рассматривать узлы и последовательности узлов как «слова» и «предложения» соответственно, а затем использовать алгоритм skip-gram или cbow для обучения получению встраивания каждого узла.
node2vec: смещение случайного блуждания
Общая формула случайного блуждания
в,выражатьколичество узлов-соседей узла,представляет текущий узел,узел, представляющий следующий выбор
Общее случайное блуждание имеет следующие проблемы:
- Если это взвешенный граф, то влияние весов ребер не учитывается.
- Слишком случайно для того, чтобы модель узнала, в какую сторону идти лучше
На самом деле обход графа делится на две категории, а именно DFS и BFS.
Чтобы ввести веса ребер и выбрать DFS или BFS в соответствии с вероятностью, нам сначала нужно изменить общую формулу случайного блуждания
в,по стоимости сравны,Может пониматься как нормализованный коэффициент масштабирования
установить узелиГраничный вес между, тогда ты можешьпереписать как
в,Указывает текущий узелСоседи первого порядка узла к узлурасстояние
- : Контролирует, как часто случайное блуждание «возвращается»
-
: контролирует, будет ли случайное блуждание смещено в сторону DFS или BFS.
- больше, стремящийся к БФС
- меньше, стремящийся к DFS
- час,
Пока я не буду описывать алгоритм встраивания узла в GNN, на самом деле есть много лучших алгоритмов, таких как LINE, Struct2vec и т. д., но лично мне кажется, что эти алгоритмы встраивания не важны, или они не являются ядром части GNN., просто используйте его как инструмент, аналогичный статусу Word Embedding в Transformer
References
- An introduction to Graph Neural Networks
- Random Walk in Node Embeddings (DeepWalk, node2vec, LINE, and GraphSAGE)
- How to do Deep Learning on Graphs with Graph Convolutional Networks
- A Gentle Introduction to Graph Neural Networks (Basics, DeepWalk, and GraphSage)
- Hands-on Graph Neural Networks with PyTorch & PyTorch Geometric
- Команда мирового чемпиона PGL поможет вам сломать графовую нейронную сеть
- Доцент Ли Хунъи из Национального тайваньского университета объяснил нейронную сеть графа GNN
- Подробное объяснение нейронной сети графа