Графовые нейронные сети (GNN) — это тип алгоритма машинного обучения, который может извлекать важную информацию из графиков и делать полезные прогнозы. Поскольку графы становятся все более распространенными и богатыми информацией, а искусственные нейронные сети становятся все более популярными и способными, GNN стали мощным инструментом для многих важных приложений.
Графики окружают нас повсюду. Ваша социальная сеть — это граф людей и отношений. Как и ваша семья. Дороги, по которым вы идете из пункта А в пункт Б, составляют граф. Ссылки, которые соединяют эту веб-страницу с другими, образуют график. Когда ваш работодатель платит вам, ваш платеж проходит через график финансовых учреждений.
По сути, все, что состоит из связанных объектов, может быть представлено в виде графа. Графики — превосходные инструменты для визуализации отношений между людьми, объектами и концепциями. Однако помимо визуализации информации графики также могут быть хорошими источниками данных для обучения моделей машинного обучения сложным задачам.
Преобразование графов для обработки нейронной сети
Каждый граф состоит из узлов и ребер. Например, в социальной сети узел может представлять пользователей и их характеристики (например, имя, пол, возраст, город), а ребра могут представлять отношения между пользователями. Более сложный социальный граф может включать другие типы узлов, такие как города, спортивные команды, новостные агентства, а также ребра, описывающие отношения между пользователями и этими узлами.
К сожалению, структура графа плохо подходит для машинного обучения. Нейронные сети рассчитывают получать свои данные в едином формате. Многослойные персептроны ожидают фиксированное количество входных признаков. Сверточные нейронные сети ожидают сетку, которая представляет различные измерения данных, которые они обрабатывают (например, ширину, высоту и цветовые каналы изображений).
Графики могут иметь разную структуру и размеры, что не соответствует прямоугольным массивам, ожидаемым нейронными сетями. У графиков есть и другие характеристики, отличающие их от того типа информации, для которого предназначены классические нейронные сети. Например, графы «инвариантны к перестановкам», что означает, что изменение порядка и положения узлов не имеет значения, пока их отношения остаются прежними. Напротив, изменение порядка пикселей приводит к другому изображению и заставляет нейронную сеть, которая их обрабатывает, вести себя по-другому.
Чтобы сделать графики полезными для алгоритмов глубокого обучения, их данные должны быть преобразованы в формат, который может быть обработан нейронной сетью. Тип форматирования, используемый для представления графических данных, может различаться в зависимости от типа графа и предполагаемого приложения, но в целом ключевой момент заключается в представлении информации в виде ряда матриц.
Например, рассмотрим граф социальной сети. Узлы могут быть представлены в виде таблицы пользовательских характеристик. Таблица узлов, где каждая строка содержит информацию об одном объекте (например, о пользователе, клиенте, банковской транзакции), представляет собой тип информации, которую вы бы предоставили обычной нейронной сети.
Графовые нейронные сети
Но графовые нейронные сети также могут учиться на другой информации, содержащейся в графе. Ребра, линии, соединяющие узлы, могут быть представлены таким же образом, где каждая строка содержит идентификаторы пользователей и дополнительную информацию, такую как дата дружбы, тип отношений и т. д. Наконец, общая связность графа можно представить в виде матрицы смежности, показывающей, какие узлы связаны друг с другом.
Когда вся эта информация предоставляется нейронной сети, она может извлекать закономерности и идеи, выходящие за рамки простой информации, содержащейся в отдельных компонентах графика.
Вложения графов
Графовые нейронные сети можно создавать, как и любые другие нейронные сети, с использованием полносвязных слоев, сверточных слоев, объединенных слоев и т. д. Тип и количество слоев зависят от типа и сложности данных графа и желаемого результата.
GNN получает отформатированные данные графа в качестве входных данных и создает вектор числовых значений, которые представляют релевантную информацию об узлах и их отношениях.
Это векторное представление называется «встраиванием графа». Вложения часто используются в машинном обучении для преобразования сложной информации в структуру, которую можно дифференцировать и изучать. Например, системы обработки естественного языка используют встраивание слов для создания числовых представлений слов и их взаимосвязей.
Как GNN создает вложение графа? Когда данные графа передаются в GNN, характеристики каждого узла объединяются с характеристиками соседних узлов. Это называется «передача сообщений». Если GNN состоит из более чем одного уровня, то последующие уровни повторяют операцию передачи сообщений, собирая данные от соседей соседей и агрегируя их со значениями, полученными от предыдущего уровня.
Например, в социальной сети первый слой GNN будет объединять данные пользователя с данными его друзей, а следующий слой будет добавлять данные от друзей друзей и так далее. Наконец, выходной слой GNN создает вложение, которое представляет собой векторное представление данных узла и его знаний о других узлах в графе.
Интересно, что этот процесс очень похож на то, как сверточные нейронные сети извлекают признаки из пиксельных данных. Соответственно, одной очень популярной архитектурой GNN является сверточная нейронная сеть графа (GCN), которая использует слои свертки для создания вложений графа.
Приложения графовых нейронных сетей
Если у вас есть нейронная сеть, которая может изучать вложения графа, вы можете использовать ее для выполнения различных задач.
Вот несколько приложений для графовых нейронных сетей:
Классификация узлов. Одним из мощных приложений GNN является добавление новой информации к узлам или заполнение пробелов там, где информация отсутствует. Например, предположим, что вы управляете социальной сетью и обнаружили несколько учетных записей ботов. Теперь вы хотите узнать, есть ли в вашей сети другие учетные записи ботов. Вы можете обучить GNN классифицировать других пользователей в социальной сети как «ботов» или «не ботов» в зависимости от того, насколько близки их графические вложения к тем, которые используются известными ботами.
Предсказание границ: еще один способ использовать GNN — найти новые грани, которые могут повысить ценность графа. Возвращаясь к нашей социальной сети, GNN может найти пользователей (узлов), которые находятся рядом с вами в пространстве встраивания, но которые еще не являются вашими друзьями (т. е. нет ребра, соединяющего вас друг с другом). Затем эти пользователи могут быть представлены вам в качестве предложений друзей.
Кластеризация: GNN могут собирать новую структурную информацию из графиков. Например, в социальной сети, где все так или иначе связаны с другими (через друзей, или друзей друзей и т. д.), GNN может найти узлы, образующие кластеры в пространстве встраивания. Эти кластеры могут указывать на группы пользователей со схожими интересами, действиями или другими незаметными характеристиками, независимо от того, насколько близки их отношения. Кластеризация — один из основных инструментов, используемых в маркетинге на основе машинного обучения .
Графовые нейронные сети — очень мощные инструменты. Они уже нашли эффективное применение в таких областях, как планирование маршрутов, обнаружение мошенничества, оптимизация сети и исследование лекарств. Везде, где есть граф связанных сущностей, GNN могут помочь получить максимальную отдачу от существующих данных.
Новые комментарии: