Конференция по обнаружению знаний и интеллектуальному анализу данных (KDD) прошла на Аляске с 4 по 8 августа. Это мое первое посещение, и я обнаружил, что оно содержит хорошее сочетание исследований и практической работы по науке о данных в области глубоких нейронных сетей. В этом посте я хочу поделиться некоторыми знаниями, особенно в отношении графовых нейронных сетей (GNN).

Почему ГНН?

Так почему же GNN и чем он отличается от известных нам CNN и RNN? В «Книге почему» Джудеи Перл он подчеркивает важность графа для когнитивных способностей. Это не просто статистика, а причинно-следственный анализ и логический вывод. И логический вывод привязан к графику. Если мы сравним человека с этими сетями глубокого обучения, CNN и RNN, а также модели внимания, такие как Берт, больше походят на систему I, а нейронные сети Graph больше похожи на систему два, где мы делаем логические выводы о вещах, которые мы уже знаем. Другая причина использования графа заключается в том, что не все можно представить в виде последовательности (RNN) или сетки (CNN). В реальной жизни есть более сложные сети.

GNN следуют схеме агрегации соседства, где вектор представления узла вычисляется путем рекурсивного агрегирования и преобразования векторов представления его соседних узлов. Было предложено много вариантов GNN, и они достигли самых современных результатов как в задачах классификации узлов, так и в задачах классификации графов.

Графическое представление

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

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

Сетевое встраивание

Но просто представить график недостаточно. По мере роста числа узлов матрица растет экспоненциально. Использование матрицы смежности в качестве пространства признаков для больших графов практически невозможно. Итак, представьте себе граф с 1 миллионом узлов и матрицей смежности 1 миллион x 1 миллион. Вложения более практичны, чем матрица смежности, поскольку они упаковывают свойства узлов в вектор меньшего размера. Сетевое встраивание — это сжатая версия представления графа.

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

Ключевое различие между подходами к обучению представлению и предыдущими работами заключается в том, как они решают проблему сбора структурной информации о графе. Предыдущая работа рассматривала эту проблему как этап предварительной обработки, используя созданную вручную статистику для извлечения структурной информации. Напротив, подходы к репрезентативному обучению рассматривают эту проблему как саму задачу машинного обучения, используя подход, основанный на данных, для изучения вложений, которые кодируют структуру графа.

Развитие сетевого встраивания

Существует множество способов встраивания сети, разработанных с течением времени, и люди классифицируют их по-разному.

Одна из причин, по которой GNN не используется широко, заключается в том, что граф намного сложнее, чем последовательность и сетки, и не существует стандартного способа представления графа. Дополнительные трудности перечислены ниже:

  • Большое и переменное выходное пространство: для n узлов нам нужно сгенерировать значение nxn Размер графика (узлы, ребра) варьируется
  • Неуникальные представления: граф с n узлами может быть представлен в виде n! способы. Трудно вычислить/оптимизировать целевые функции (например, ошибка реконструкции).
  • Сложные зависимости: формирование краев имеет долгосрочные зависимости

Встраивание графиков на основе скип-грамм — DeepWalk

Первый вид — встраивание графов на основе Skip-gram, вдохновленное Word2Vec.

Word2vec — это метод встраивания, который преобразует слова в векторы встраивания. Подобные слова должны иметь похожие вложения. Word2vec использует сеть skip-gram, которая представляет собой нейронную сеть с одним скрытым слоем. Скип-грамма обучена предсказывать соседнее слово в предложении. Встраивание графа на основе скип-граммы использует принцип встраивания из Word2vec: точно так же, как Word2vec использует сеть скип-грамм для предсказания соседнего слова в предложении, скип-грамма в DeepWalk принимает узел из случайного блуждания как однократный вектор в качестве вектора. ввод и максимизирует вероятность предсказания соседних узлов.

Подробнее о встраивании графиков на основе Skip-gram

Ниже приведено более подробное описание встраивания графа на основе Skip-gram, варианты обхода узла.

GCN — встраивание на основе свертки

Другой тип — GCN, вдохновленный сверточными сетями. GCN — это архитектура нейронной сети для машинного обучения на графах, которая работает с графами. Для графа G = (V, E) GCN принимает матрицу входных признаков N × F⁰, матрицу признаков, X, где N — количество узлов, а F⁰ — количество входных признаков для каждого узла, а N × N матричное представление структуры графа, такое как матрица смежности A графа G.

ГрафикSAGE

В отличие от предыдущих методов, GraphSAGE создает вложения узлов для ранее невиданных данных. Это общая индуктивная структура, которая использует информацию об особенностях узлов (например, текстовые атрибуты) для эффективного создания вложений узлов для ранее невидимых данных. Вместо обучения отдельных вложений для каждого узла GraphSAGE изучает функцию, которая генерирует вложения путем выборки и агрегирования функций из локального окружения узла, что позволяет быстро генерировать вложения для невидимых узлов.

Рекомендуемые документы

Другие интересные вещи

Первоначально опубликовано на http://pretteyandnerdy.wordpress.com 12 сентября 2019 г.