1632
правки
Изменения
м
<tex>G = (V,E)</tex>= Идея ==
В графе каждый узел определяется его признаками При работе с естественными языками, обработке и связанными узлами. Целью GNN является изучение состояния встраивания <tex>h_v \in R^{S}</tex>анализе изображений, которое содержит информацию об окрестностях для каждого узла. Состояние встраивания <tex>h_v</tex> построении моделей веб- это sсетей и еще широком спектре прикладных задач, бывает удобно представлять данные в виде графов: {|align="center" |-мерный вектор из вершины <tex>v</tex>, который может быть использован для получения выхода <tex>O_v</tex> (метки узла)valign="top" |[[Файл:Social_network.PNG|250px|thumb|Социальные сети]] |[[Файл:TextGNN.PNG|thumb|540px|Анализ текста]] |[[Файл:MoleculeGNN. PNG|400px|thumb|Молекулы]] |}
Пусть <tex>f</tex> - это параметрическая функцияОднако для традиционных методов машинного обучения необходимо предварительно преобразовывать графово структурированные данные в другие структуры данных, к примеру числовой вектор. Такой подход может привести к потере части информации, называемая заключающейся во взаиморасположении узлов сети.{{Определение|definition='''Граф'локальной переходной функцией''{{---}} это структура данных, которая является общей для всех узлов состоящая из двух компонентов: вершин и обновляет состояние узла в соответствии с входной окрестностьюребер. Также пусть Граф <tex>gG</tex> - ''локальная выходная функция'', которая описывает, как выход был производен. Тогда описывается множеством вершин (узлов) <tex>h_vV</tex> и ребер <tex>o_vE</tex> определяются следующим образом:, которые он содержит <tex>G = (V,E)</tex>. }}Использование GNN позволяет работать с данными графов, без предварительной обработки. Такой подход позволяет сохранить топологические отношения между узлами графа.
<tex>h_v = f{В основе GNN заложен механизм распространения информации. Граф обрабатывается набором модулей, которые связаны между собой в соответствии со связями графа. Также каждый из модулей связан с узлами графа. В процессе обучения, модули обновляют свои состояния и обмениваются информацией. Это продолжается до тех пор, пока модули не достигнут устойчивого равновесия (x_vдля того, x_{co[v]}чтобы была гарантия того, h_{ne[v]}что такое устойчивое состояние существует, x_{ne[v]}этот механизм распространения ограничен)}</tex>. Выходные данные GNN вычисляются на основе состояния модуля на каждом узле.
<tex>o_v = g{(h_v,X_v)}</tex>[[Файл:GNNanimation.gif]]
где == Описание == В графе каждый узел определяется его признаками и связанными узлами. Целью GNN является изучение состояния встраивания <tex>x_v, x_h_v \in R^{co[v]S}</tex>, h_которое содержит информацию об окрестностях для каждого узла. Состояние встраивания <tex>h_v</tex> {ne[{---}} это s-мерный вектор из вершины <tex>v]}</tex>, x_{ne[v]}который может быть использован для получения выхода <tex>O_v</tex> являются признаками (метки узла). Пусть <tex>vf</tex>{{---}} это параметрическая функция, признаками его ребер, состоянийназываемая ''локальной переходной функцией'', которая является общей для всех узлов и признаками узлов обновляет состояние узла в окрестностях соответствии с входной окрестностью. Также пусть <tex>vg</tex> соответственно{{---}} ''локальная выходная функция'', которая описывает, как выход был производен.Тогда <tex>h_v</tex> и <tex>o_v</tex> определяются следующим образом:
Пусть <center><tex>Hh_v = f{(x_v, Ox_{co[v]}, Xh_{ne[v]}, x_{ne[v]})}</tex> и <tex>X_N</texcenter> - это векторы, построенные путем укладки всех состояний, всех выходных данных, всех признаков и всех признаков узлов соответственно. Тогда мы можем представить уравнения в более компактной форме:
где Пусть <tex>FH, O, X</tex> - это ''глобальная функция перехода'', а и <tex>GX_N</tex> {{- ''глобальная выходная функция'' которая является сложенной версией <tex>f</tex> --}} это векторы, построенные путем укладки всех состояний, всех выходных данных, всех признаков и <tex>g</tex> для всех признаков узлов в графе соответственно. Значение <tex>H</tex> является фиксированным и однозначно определяется Тогда мы можем представить уравнения в предположением о том, что <tex>F</tex> - это карта сжатия.более компактной форме:
С учетом теоремы Банаха о неподвижной точке GNN использует следующую классическую итерационную схему для вычисления состояния:<center><tex>H = F{(H,X)}</tex></center>
rollbackEdits.php mass rollback
[[Файл:GnnGraph.png|thumb|250px|Граф]]
'''Графовая нейронная сеть''' (англ. Graph Neural Network, GNN) – {{---}} тип нейронной сети, которая напрямую работает со структурой графа. Типичным применением GNN является классификация узлов. == Описание ==При Концепция графовой нейронной сети была впервые предложена в 2009 году в работе с естественными языками<ref>[https://ro.uow.edu.au/infopapers/3165/ The graph neural network model, обработке и анализе изображенийUniversity of Wollongong Australia]</ref>, построении моделей веб-сетей и еще широком спектре прикладных задач, бывает удобно представлять данные в виде графов. Однако которая расширила существующие нейронные сети для традиционных методов машинного обучения необходимо предварительно преобразовывать графово структурированные данные в другие структуры обработки данных, к примеру числовой вектор. Такой подход может привести к потере части информации, заключающейся во взаиморасположении узлов сетипредставленных в графовых областях.
<center><tex>H o_v = Fg{(Hh_v,XX_v)}</tex></center>
где <tex>O = Gx_v, x_{co[v]}, h_{(Hne[v]},X_N)x_{ne[v]}</tex>являются признаками <tex>v</tex>, признаками его ребер, состояний, и признаками узлов в окрестностях <tex>v</tex> соответственно.
<center><tex>H^{t+1} O = FG{(H^t,XX_N)}</tex></center>
где <tex>F</tex> {{---}} это ''глобальная функция перехода'', а <tex>G</tex> {{---}} ''глобальная выходная функция'', которая является сложенной версией <tex>f</tex> и <tex>g</tex> для всех узлов в графе соответственно. Значение <tex>H</tex> является фиксированным и однозначно определяется в предположением о том, что <tex>F</tex> {{---}} это карта сжатия. С учетом теоремы Банаха о неподвижной точке GNN использует следующую классическую итерационную схему для вычисления состояния: <tex>H^{t+1} = F{(H^t,X)}</tex>, где <tex>H^t</tex> обозначает <tex>t</tex>-ую итерацию <tex>H</tex>. Динамическая система из этого уравнения сходится экспоненциально быстро к решению уравнения <tex>H = F{(H,X)}</tex> для любого начального значения <tex>H(0)</tex>. Стоит отметить, что вычисления описанные в <tex>f</tex> и <tex>g</tex>, могут быть интерпретированы как нейронные сети с прямой связью.
Следующие задачей становится поиск параметров <tex>f</tex> и <tex>g</tex>. С помощью целевой информации (<tex>t_v</tex> для конкретного узла) для контроля, функция потерь может быть вычислена следующим образом:
<center><tex>loss = \sum_{i=1}^{p}{(t_i-o_i)}</tex></center>
где <tex>p</tex> {{- --}} это число контролируемых узлов. Алгоритм обучения основан на стратегии градиентного спуска и состоит из следующих шагов:
* Состояния <tex>h_v^t</tex> итеративно обновляются <tex>h_v = f{(x_v, x_{co[v]}, h_{ne[v]}, x_{ne[v]})}</tex> до времени <tex>T</tex>. Они стремятся к фиксированному значению <tex>H(T) \approx H</tex>.
* Градиент весов <tex>W</tex> вычисляется из функции потерь.
* Веса <tex>W</tex> обновляются в соответствии с градиентом, вычисленным на последнем шаге.
== Развитие ==
[[Файл:GCNex.png|thumb|300px|Пример Graph Convolutional Network]]
В последние годы системы, основанные на вариантах графовых нейронных сетей, таких как '''GCN (Graph Convolutional Network)'''<ref>[https://arxiv.org/pdf/1609.02907.pdf Semi-Supervised Classification with Graph Convolutional Networks, Thomas N. Kipf]</ref>, '''GAT (Graph Attention Network)'''<ref>[https://arxiv.org/pdf/1710.10903.pdf Graph Attention Networks, Petar Velickovic]</ref>, '''GGNN (Gated Graph Neural Network)'''<ref>[https://arxiv.org/pdf/1511.05493.pdf Gated Graph Sequence Neural Networks, Yujia Li & Richard Zemel]</ref>, продемонстрировали высокую производительность при решении многих задач.
Для тестирования алгоритмов часто используются датасеты наборов данных сети цитирования, такие как '''Citeseer''', '''Cora''' and '''Pubmed'''. В них узлы {{---}} это документы, а ребра {{---}} это ссылки на цитаты. '''GCN''' на этих данных удается добиться точности в районе '''70.3%, 81.5%, 79.0%''' соответственно, а результаты '''GAC''' составляют '''83.0%, 72.5%, 79.0%'''.
'''При решении же реальных задач, данные алгоритмы применяются в следующих областях:'''
* '''GCN''' применяют в задачах классификации текстовых данных, изображений, болезней и прогнозировании побочных эффектов;
* '''GAT''' используют для классификации текста, обнаружения объектов на изображениях, задач комбинаторной оптимизации;
* '''GGNN''' применяют для нейронного машинного перевода, для анализа социальных отношений.
== Ограничения ==
Наконец, нецелесообразно использовать фиксированные точки, если мы сосредоточимся на представлении узлов вместо графиков, поскольку распределение представления в фиксированной точке будет гораздо более гладким по значению и менее информативным для различения каждого узла.
==См. также==
*[[:Рекуррентные нейронные сети|Рекуррентные нейронные сети]]
*[[:Рекурсивные нейронные сети|Рекурсивные нейронные сети]]
== Примечания ==
<references/>
== Источники информации==
* [https://ieeexplore.ieee.org/document/4700287 The Graph Neural Network Model]
* [https://arxiv.org/pdf/1812.08434.pdf Graph Neural Networks: A Review of Methods and Applications]
* [https://towardsdatascience.com/a-gentle-introduction-to-graph-neural-network-basics-deepwalk-and-graphsage-db5d540d50b3 A Gentle Introduction to Graph Neural Networks (Basics, DeepWalk, and GraphSage)]
* [https://towardsdatascience.com/hands-on-graph-neural-networks-with-pytorch-pytorch-geometric-359487e221a8 Hands-on Graph Neural Networks with PyTorch & PyTorch Geometric]
* [https://cyberleninka.ru/article/n/grafovye-neyronnye-seti Графовые нейронные сети]
[[Категория: Машинное обучение]]
[[Категория: Нейронные сети]]