Графовые нейронные сети — различия между версиями
Glosus (обсуждение | вклад) (→Графовые нейронные сети: Проверка 1) |
Glosus (обсуждение | вклад) (→Графовые нейронные сети: Описание) |
||
Строка 3: | Строка 3: | ||
== Описание == | == Описание == | ||
При работе с естественными языками, обработке и анализе изображений, построении моделей веб-сетей и еще широком спектре прикладных задач, бывает удобно представлять данные в виде графов. Однако для традиционных методов машинного обучения необходимо предварительно преобразовывать графово структурированные данные в другие структуры данных, к примеру числовой вектор. Такой подход может привести к потере части информации, заключающейся во взаиморасположении узлов сети. | При работе с естественными языками, обработке и анализе изображений, построении моделей веб-сетей и еще широком спектре прикладных задач, бывает удобно представлять данные в виде графов. Однако для традиционных методов машинного обучения необходимо предварительно преобразовывать графово структурированные данные в другие структуры данных, к примеру числовой вектор. Такой подход может привести к потере части информации, заключающейся во взаиморасположении узлов сети. | ||
+ | |||
+ | <tex>G = (V,E)</tex> | ||
+ | |||
+ | В графе каждый узел определяется его признаками и связанными узлами. Целью GNN является изучение состояния встраивания <tex>h_v \in R^{S}</tex>, которое содержит информацию об окрестностях для каждого узла. Состояние встраивания <tex>h_v</tex> - это s-мерный вектор из вершины <tex>v</tex>, который может быть использован для получения выхода <tex>O_v</tex> (метки узла). | ||
+ | |||
+ | Пусть <tex>f</tex> - это параметрическая функция, называемая ''локальной переходной функцией'', которая является общей для всех узлов и обновляет состояние узла в соответствии с входной окрестностью. Также пусть <tex>g</tex> - ''локальная выходная функция'', которая описывает, как выход был производен. Тогда <tex>h_v</tex> и <tex>o_v</tex> определяются следующим образом: | ||
+ | |||
+ | <tex>h_v = f{(x_v, x_{co[v]}, h_{ne[v]}, x_{ne[v]})}</tex> | ||
+ | |||
+ | <tex>o_v = g{(h_v,X_v)}</tex> | ||
+ | |||
+ | где <tex>x_v, x_{co[v]}, h_{ne[v]}, x_{ne[v]}</tex> являются признаками <tex>v</tex>, признаками его ребер, состояний, и признаками узлов в окрестностях <tex>v</tex> соответственно. | ||
+ | |||
+ | Пусть <tex>H, O, X</tex> и <tex>X_N</tex> - это векторы, построенные путем укладки всех состояний, всех выходных данных, всех признаков и всех признаков узлов соответственно. Тогда мы можем представить уравнения в более компактной форме: | ||
+ | |||
+ | <tex>H = F{(H,X)}</tex> | ||
+ | |||
+ | <tex>O = G{(H,X_N)}</tex> | ||
+ | |||
+ | где <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> для конкретного узла) для контроля, функция потерь может быть вычислена следующим образом: | ||
+ | |||
+ | <tex>loss = \sum_{i=1}^{p}{(t_i-o_i)}</tex> | ||
+ | |||
+ | где <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> обновляются в соответствии с градиентом, вычисленным на последнем шаге. | ||
+ | |||
+ | == Ограничения == | ||
+ | |||
+ | Несмотря на то, что экспериментальные результаты показали, что GNN является мощной архитектурой для моделирования структурных данных, существует еще несколько ограничений для обычного GNN. | ||
+ | |||
+ | Во-первых, итеративно обновлять скрытые состояния узлов для фиксированной точки неэффективно. Если ослабить предположение о неподвижной точке, мы можем спроектировать многослойную GNN, чтобы получить стабильное представление узла и его окрестности. | ||
+ | |||
+ | Во-вторых, GNN использует одни и те же параметры в итерации, в то время как большинство популярных нейронных сетей используют разные параметры в разных слоях, которые служат в качестве метода извлечения иерархических признаков. | ||
+ | |||
+ | В-третьих, есть также некоторые информативные признаки на краях, которые не могут быть эффективно смоделированы обычной GNN. Например, ребра в графе знаний имеют тип отношений, и распространение сообщения через разные ребра должно быть различным в зависимости от их типов. Кроме того, поиск скрытых состояния ребер, также является важной проблемой. | ||
+ | |||
+ | Наконец, нецелесообразно использовать фиксированные точки, если мы сосредоточимся на представлении узлов вместо графиков, поскольку распределение представления в фиксированной точке будет гораздо более гладким по значению и менее информативным для различения каждого узла. |
Версия 00:40, 18 марта 2020
Графовая нейронная сеть (англ. Graph Neural Network, GNN) – тип нейронной сети, которая напрямую работает со структурой графа. Типичным применением GNN является классификация узлов.
Описание
При работе с естественными языками, обработке и анализе изображений, построении моделей веб-сетей и еще широком спектре прикладных задач, бывает удобно представлять данные в виде графов. Однако для традиционных методов машинного обучения необходимо предварительно преобразовывать графово структурированные данные в другие структуры данных, к примеру числовой вектор. Такой подход может привести к потере части информации, заключающейся во взаиморасположении узлов сети.
В графе каждый узел определяется его признаками и связанными узлами. Целью GNN является изучение состояния встраивания
, которое содержит информацию об окрестностях для каждого узла. Состояние встраивания - это s-мерный вектор из вершины , который может быть использован для получения выхода (метки узла).Пусть
- это параметрическая функция, называемая локальной переходной функцией, которая является общей для всех узлов и обновляет состояние узла в соответствии с входной окрестностью. Также пусть - локальная выходная функция, которая описывает, как выход был производен. Тогда и определяются следующим образом:
где
являются признаками , признаками его ребер, состояний, и признаками узлов в окрестностях соответственно.Пусть
и - это векторы, построенные путем укладки всех состояний, всех выходных данных, всех признаков и всех признаков узлов соответственно. Тогда мы можем представить уравнения в более компактной форме:
где
- это глобальная функция перехода, а - глобальная выходная функция которая является сложенной версией и для всех узлов в графе соответственно. Значение является фиксированным и однозначно определяется в предположением о том, что - это карта сжатия.С учетом теоремы Банаха о неподвижной точке GNN использует следующую классическую итерационную схему для вычисления состояния:
где
обозначает -ую итерацию . Динамическая система из этого уравнения сходится экспоненциально быстро к решению уравнения для любого начального значения . Стоит отметить, что вычисления описанные в и , могут быть интерпретированы как нейронные сети с прямой связью.Следующие задачей становится поиск параметров
и . С помощью целевой информации ( для конкретного узла) для контроля, функция потерь может быть вычислена следующим образом:
где
- это число контролируемых узлов. Алгоритм обучения основан на стратегии градиентного спуска и состоит из следующих шагов:- Состояния итеративно обновляются до времени . Они стремятся к фиксированному значению .
- Градиент весов вычисляется из функции потерь.
- Веса обновляются в соответствии с градиентом, вычисленным на последнем шаге.
Ограничения
Несмотря на то, что экспериментальные результаты показали, что GNN является мощной архитектурой для моделирования структурных данных, существует еще несколько ограничений для обычного GNN.
Во-первых, итеративно обновлять скрытые состояния узлов для фиксированной точки неэффективно. Если ослабить предположение о неподвижной точке, мы можем спроектировать многослойную GNN, чтобы получить стабильное представление узла и его окрестности.
Во-вторых, GNN использует одни и те же параметры в итерации, в то время как большинство популярных нейронных сетей используют разные параметры в разных слоях, которые служат в качестве метода извлечения иерархических признаков.
В-третьих, есть также некоторые информативные признаки на краях, которые не могут быть эффективно смоделированы обычной GNN. Например, ребра в графе знаний имеют тип отношений, и распространение сообщения через разные ребра должно быть различным в зависимости от их типов. Кроме того, поиск скрытых состояния ребер, также является важной проблемой.
Наконец, нецелесообразно использовать фиксированные точки, если мы сосредоточимся на представлении узлов вместо графиков, поскольку распределение представления в фиксированной точке будет гораздо более гладким по значению и менее информативным для различения каждого узла.