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

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

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

Графики

Графы - это реляционные структуры данных, которые могут коллективно определять информацию. Это компиляция узлов и ссылок в нелинейном формате. Реальная информация, такая как ваши социальные сети LinkedIn и Facebook, структура фильмов Netflix, карты Google, оптимизация пути, может быть представлена ​​только в виде графиков. Возьмем пример семейного древа:

Каждый член семьи является вершиной (V) в графе семейного дерева (G) с отношениями, определяемыми ребрами (E). Если необходимо получить информацию о конкретном члене семьи, то его / ее родственник также должен быть известен, иначе данные будут казаться неполными. Каждый узел и ссылка имеют свое собственное значение и данные. Кроме того, один и тот же граф может быть представлен множеством разных способов, то есть этот граф предков также может быть нарисован снизу вверх с разными значениями ссылок.

Графики вычислений

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

Преимущества графиков

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

  • Структура узловых связей - отчетливая структура узловых связей графиков может хранить большой объем информации. Сетевые и реляционные проблемы могут быть представлены только в этом формате. Хотя для представления графиков существуют другие структуры, такие как матрицы, древовидные карты, первичная композиция имеет приоритет.
  • Распределенные вычисления. Огромные проблемы с миллиардами узлов / элементов не могут быть обработаны одним ядром или системой. Тот факт, что распределенные вычисления могут быть напрямую реализованы в графах, позволяет сэкономить много вычислений и уменьшить временную сложность.
  • Проблемы отношения. Обычно мы работаем с наборами данных, которые содержат независимые входные значения и соответствующие им выходные метки. Что, если бы я хотел спрогнозировать фильм для себя на основе моих недавних просмотров, любимых актеров, музыки и так далее. Это относительная проблема, которую можно решить только с помощью графов. Даже при попытке обучения без учителя можно было предсказать кластеры, но не определить точную метку или соединение. Мы попытаемся вкратце разобраться в одной из таких проблем предсказания фильмов Netflix:

Представьте жанр, актеров, язык, дату выпуска как основные узлы графа. Ряд фильмов связан с указанными выше узлами на основе их меток. В зависимости от фильмов, которые я смотрю, хранятся мои предпочтительные узлы атрибутов. Netflix использует алгоритм персонализированного ранжирования видео (PVR), который прогнозирует фильмы по жанрам и названиям на основе этих сохраненных графических данных. В каждом жанре или названии он снова применяет алгоритм Top-N Video Ranker, который смешивает популярные и личные варианты для предсказания фильмов.

Графики в ML

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

Давайте разберемся с этим с точки зрения прямого распространения в нейронных сетях.

Считайте, что это граф из 8 узлов и 16 ссылок. Входные нейроны (узлы) x1 и x2 плотно связаны с узлами скрытого слоя. Затем эти узлы подключаются аналогично выходному слою. Значения x1, x2 переносятся на скрытый слой. Скрытый слой выполняет A = WX + B. Ссылки, соединяющие скрытый и выходной слой, активируют эти значения. Их уравнение H = function (A). Аналогичный процесс выполняется и в выходном слое. В целом, этот график может представить уравнение прямого распространения в нейронных сетях.

Эволюция

Это основной раздел статьи. Завершив изучение основ, мы перейдем к вопросу о том, почему появились GNN и чем они отличаются от ANN.

ИСТОРИЯ:

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

РАМКИ ГРАФИЧЕСКОГО ДВИГАТЕЛЯ:

Было сделано много попыток преодолеть разрыв между графами и алгоритмами машинного обучения. В графах отсутствуют свойства, необходимые для обучения этих алгоритмов. Отсутствие поддержки с точки зрения циклов, неоднородности и согласованности данных, абстракция данных были основными темами, вызывающими беспокойство при объединении вычислений на графах и машинного обучения. Фреймворки графического движка, такие как TUX2 и GraphLab, предлагали модели, которые устраняли некоторые проблемы. Они успешно объединили вычисление распределенного графа с матричной факторизацией и алгоритмами латентного распределения Дирихле, но не смогли реализовать нейронные сети. В отличие от фреймворков глубокого обучения, которые могут использовать GPU для вычислений, эти движки использовали только распределенные вычисления.

ВВЕДЕНИЕ GNN (ANN против GNN):

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

Графические нейронные сети - это развивающаяся область глубокого обучения, которая учится на графических данных. С появлением сверточных сетей Graph, сетей LSTM и т. Д. Этот домен продемонстрировал огромный потенциал. Эти сети сами по себе являются графовыми структурами и используют аналогичные данные для обучения. Наборы данных графиков, такие как CORA и SNAP, используются для их сравнительного анализа.

Если искусственные нейронные сети - это вычислительные графы, тогда зачем нам GNN?

Ответ временами может сбивать с толку, но давайте вернемся к основам.

  • ИНС принимают входные данные в матричном формате, который представляет собой более или менее упорядоченные данные, тогда как в таких проблемах, как социальные сети, приоритет отдается связям, а не порядку. Технически в графах порядок может быть получен путем выбора корневого узла и определенной ссылки через него.
  • ИНС, являющиеся графами вычислений, просто подразумевают, что они являются связанными друг с другом математическими выражениями с прямой связью. Графики зависимостей для обеих сетей, а также данные, с которыми они работают, различаются.
  • Что касается уровней и функций, обе сети содержат плотный, softmax, ReLU и т. Д., Но в каждой из них вычисления и обработка различны. Нормальный плотный слой подразумевает полное соединение, но в GNN это может быть не так.
  • Наши традиционные нейронные сети могут решать два типа задач: классификацию и регрессию. Они терпят неудачу, когда дело доходит до социальных сетей или графов знаний. Они относятся к реляционным задачам, требующим прямого ввода графа.
  • В ИНС архитектура модели определяется и снабжается входными и соответствующими выходными данными. Обучение и прогнозирование сетей на основе графов в некоторой степени не контролируются. Поэтому, если я хочу предсказать имя конкретного участника LinkedIn, я должен иметь возможность сделать это, используя его / ее 1-е, 2-е связи, компанию, аффилированность с институтом и не зная его / ее настоящего лейбла.

Заключение

Мы рассмотрели основы графиков, их значение для машинного обучения и эволюцию со временем. Разработка графических нейронных сетей в их нынешнем виде довольно интуитивна. Как они появились, зачем они нам нужны и чем они уникальны - вот ответы на некоторые вопросы в этой статье. В будущем я планирую писать более подробные статьи о GNN и их реализации на python. Если вы хотите оставаться в курсе, подключайтесь к GitHub и LinkedIn для получения новых проектов и статей.

References:
1. A Gentle Introduction to Graph Neural Networks (Basics, DeepWalk, and GraphSage)
2. Distributed Graph Computation Meets Machine Learning
3. Graphlab: A new framework for parallel machine learning
4. The Netflix Recommender system