Skip to content

Графовые нейронные сети

Графовые нейронные сети (Graph Neural Networks, GNNs)

Графовые нейронные сети - это частный класс нейронных сетей, которые предназначены для работы с графовыми данными. В привычных для нас сетях, таких как полносвязные или сверточные нейронные сети, входные данные обычно представляют собой векторы или тензоры, но в графовых нейронных сетях входные данные представляют собой графы.

Граф

Граф обычно определяется как \(G = (V, E)\), где \(V\) - множество вершин (узлов), а \(E\) - множество ребер. Вершина \(v_i \in V\) может иметь признаки, обозначаемые как \(x_i\). Ребро \((v_i, v_j) \in E\) может иметь свои признаки, обозначаемые как \(e_{ij}\).

Графовая свертка

Одним из основных компонентов графовых нейронных сетей является операция графовой свертки. В сверточных нейронных сетях, свертка обеспечивает агрегацию информации от ближайших соседей. Аналогичная идея применяется в графовых нейронных сетях, где ближайшими соседями являются соседние вершины в графе.

Операция графовой свертки может быть формализована следующим образом: для каждой вершины \(v_i\) мы агрегируем информацию от ее соседей \(N_i\) следующим образом:

\[h_i^{(l+1)} = \sigma \left( W^{(l)} h_i^{(l)} + \sum_{j \in N_i} W^{(l)} h_j^{(l)} \right)\]

где \(h_i^{(l)}\) - это скрытое состояние вершины \(v_i\) на слое \(l\), \(W^{(l)}\) - это матрица весов на слое \(l\), \(\sigma\) - это функция активации, и \(N_i\) - это множество соседей вершины \(v_i\).

Графовая сверточная сеть (Graph Convolutional Network, GCN)

Одним из основных типов графовых нейронных сетей является Графовая Сверточная Сеть (GCN). Она вычисляет скрытые состояния вершин в графе с помощью операции графовой свертки:

\[H^{(l+1)} = \sigma \left( D^{-\frac{1}{2}} A D^{-\frac{1}{2}} H^{(l)} W^{(l)} \right)\]

где \(A\) - матрица смежности графа, \(D\) - диагональная матрица степеней (где \(D_{ii}\) - это степень вершины \(i\)), \(H^{(l)}\) - матрица скрытых состояний на слое \(l\), и \(W^{(l)}\) - матрица весов на слое \(l\).

Примечание: обычно \(A\) модифицируется для включения self-loops (петель), что позволяет учитывать собственные признаки вершин в свертке.

Применения GNNs

Графовые нейронные сети широко применяются в различных задачах, таких как предсказание свойств молекул, классификация графов, связность узлов, и других задачах, где данные имеют структуру графа.