Реальные данные

Во взрослом возрасте, когда мы слышим слово «данные», наш разум почти интуитивно переключается на типичные таблицы/электронные таблицы, основанные на строках и столбцах. В большинстве контролируемых соревнований Kaggle по машинному обучению наборы данных представлены в файле .csv, который позже преобразуется в DataFrame с использованием pandas в Python. Хотя наследие реляционных баз данных продолжается, большинство реальных данных, таких как социальные сети, карты, последовательности ДНК, не могут быть представлены в виде реляционных таблиц и вместо этого естественным образом принимают произвольную форму графиков или сетей.

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

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

Задачи

Однако не все так сладко и весело, когда дело доходит до GNN. GNN создают серьезные проблемы.

  1. Существующие среды глубокого обучения не всегда легко поддерживают обучение и логические выводы GNN в масштабе. TensorFlow, PyTorch и Caffe2 изначально были разработаны для обработки ситуаций, когда модель и коллекция данных могут быть большими, но каждая выборка коллекции относительно мала (например, одно изображение может быть выбрано из набора данных размером 100 тыс. изображения), однако, как мы разбиваем или группируем граф?
  2. Вычисление операции градиентного спуска требует сохранения всего графа в виде одной обучающей партии. С увеличением размера графа или плотности ребер время и сложность памяти для этих вычислений могут расти экспоненциальнои создавать узкое место. Большинство существующих платформ GNN, таких как DGL и PyG, не поддерживают графики, данные которых не помещаются на одном устройстве.

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

Исследовательская работа

Теперь, когда мы понимаем проблемы и ограничения GNN, мы рассмотрим четыре исследовательские работы, в которых исследуются методы лучшего масштабирования и распараллеливания обучения в GNN.

  1. Анализ производительности графовых нейронных сетей с конвейерным параллелизмом; Мэттью Т. Диринг, Сяоянь Ван; Материалы конференции MLSys 2021 Workshop on Graph Neural Networks and Systems (GNNSys 2021)
  2. Повышение точности, масштабируемости и производительности графовых нейронных сетей с помощью ROC; Чжихао Цзя, Сина Лин, Мингю Гао, Матей Захария, Алекс Айкен; Труды машинного обучения и систем (MLSys 2020)
  3. На пути к более глубоким графовым нейронным сетям; Мэн Лю, Хунъян Гао, Шуйван Цзи; KDD ’20: Материалы 26-й Международной конференции ACM SIGKDD по обнаружению знаний и интеллектуальному анализу данных
  4. Бенчмаркинг графовых нейронных сетей; Виджай Пракаш Двиведи, Чайтанья К. Джоши, Томас Лоран, Йошуа Бенжио, Ксавье Брессон; Препринт arXiv arXiv: 2003.00982

Документ-I

В первой статье под названием «Анализ производительности графовых нейронных сетей с конвейерным параллелизмом» исследуется возможность распараллеливания GNN с использованием существующих современных фреймворков. В частности, в статье исследуется применение конвейерного параллелизма к моделям GNN с помощью GPipe.

GPipe, масштабируемая конвейерная библиотека параллелизма, представленная Google Brain, продемонстрировала заметный успех в достижении параллелизма и сокращении времени обучения в глубоких нейронных сетях. Согласно бумаге, GPipe может обучать модель в 25 раз больше, используя 8-кратные устройства (TPU), и обучать модель в 3,5 раза быстрее, используя 4-кратные устройства. Однако его применение дает, как мы увидим дальше, ограниченные результаты для GNN.

В исследованиях задействованы -

Набор данных. В документе используются хорошо зарекомендовавшие себя наборы данных сети цитирования, а именно наборы данных Cora, CiteSeer и PubMed.

Задача: классифицировать каждый узел по классам C, используя встроенную информацию о функциях через реберное соединение между узлами по всему графу. Эксперименты включали измерения производительности для одного ЦП, одного графического процессора и конвейерного параллельного распределения между четырьмя графическими процессорами с микропакетной обработкой графических данных и без нее.

Сеть.Документ основан на Graph Attention Network (GAT). GAT — это новая архитектура GNN, в которой используются уровни внимания поверх сверток графа.

Инфраструктура. Для тестов с одним устройством: ЦП Intel(R) Xeon(R) с тактовой частотой 2,20 ГГц и графический процессор NVIDIA Tesla T4. Для параллельных экспериментов с распределенным конвейером 4 графических процессора NVIDIA Tesla V100-SXM2 (DGX)

Здесь следует отметить следующее: чтобы максимизировать возможности этих устройств для параллельных вычислений, Gpipe дополнительно разбивает входной мини-пакет из обучающих выборок на «микропакеты» для распределения по устройствам. Это то, что называется микропакетированием. Благодаря этому подходу несколько устройств эффективно обрабатывают один и тот же мини-пакет (или весь набор данных) одновременно в течение периода обучения.

По мере проведения экспериментов были отмечены следующие 4 ключевых момента -

  1. Сравнение времени обучения на разных устройствах и платформах

Наблюдалось среднее время за эпоху обучения для ЦП и ГП и для двух графических фреймворков — DLG и PyG. Как видно, модели GNN, которые были обучены на отдельных устройствах, показали, что время обучения на графическом процессоре было быстрее для обеих структур графа во всех наборах данных.

2. Сравнение времени обучения на трех вычислительных архитектурах, включая один ЦП и ГП, с системой DGX, состоящей из четырех ГП, использующих параллелизм конвейера GPipe без микропакетной обработки между платформами.

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

3.Исследование влияния параллелизма данных внутри GPipe, т.е. активирована микропакетная обработка

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

4. Сравнение точности, полученной в разных платформах и архитектурах

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

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

Бумага-II

Теперь, когда мы изучили существующую современную инфраструктуру, которая пытается лучше масштабировать GNN, мы переходим к следующему документу под названием «Повышение точности, масштабируемости и производительности нейронных сетей Graph с помощью ROC».

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

В исследованиях задействованы -

Набор данных. В исследовании для оценки используются четыре реальных набора графических данных, а именно: Pubmed (набор данных сети цитирования), PPI (белковый графики взаимодействия белков), Reddit (дискуссионный онлайн-форум) и Amazon (набор данных о продуктах).

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

Архитектура. В документе используются три реальные архитектуры GNN для оценки ROC. Три архитектуры: GCN, GIN, CommNet.

Инфраструктура.Все эксперименты проводились на кластере GPU с 4 вычислительными узлами, каждый из которых содержит два 10-ядерных процессора Intel E5-2600, 256 ГБ DRAM и четыре графических процессора NVIDIA Tesla P100. сильный>. Графические процессоры на одном узле подключены к NVLink, а узлы подключены к EDR Infiniband со скоростью 100 Гбит/с.

ROC фокусируется на двух основных аспектах, чтобы получить прирост производительности:

а) Разбиение графа

б) Управление памятью

Как видно из приведенной выше архитектуры ROC, у нас есть два раздела — один разделитель на основе обучения и два раздела DPMM (управление памятью динамического программирования).

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

ROC использует онлайн-модель линейной регрессии для оптимизации разбиения графа. На этапе обучения архитектуры GNN ROC изучает модель затрат для прогнозирования времени выполнения операции GNN на входном (под)графе.

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

Разбиение графа на основе линейной регрессии повышает производительность до 1,4 раза.

Второй аспект говорит об ограничениях памяти,

Вычисление даже одной вершины требует доступа к потенциально большому количеству соседних вершин, которые могут охватывать несколько графических процессоров и вычислительных узлов. Платформа решает, в какой памяти устройства (CPU/GPU) хранить каждый промежуточный тензор, чтобы минимизировать затраты на передачу данных. В статье оптимизация передачи данных сформулирована как задача минимизации затрат и представлен алгоритм динамического программирования для быстрого поиска глобально оптимальной стратегии, сводящей к минимуму передачу данных между памятью ЦП и ГП.

ROC снижает затраты на передачу данных между ЦП и ГП в два раза по производительности.

В документе анализируются четыре ключевых аспекта, как показано ниже:

  1. Анализ производительности обучения трех архитектур

Для набора данных Pubmed наблюдается более высокая пропускная способность для ROC из-за минимизации передачи данных из DRAM в GPU. TensorFlow, DGL и PyG не смогли запустить набор данных Reddit, который является большим набором данных, из-за ошибок нехватки памяти устройства. ROC по-прежнему может обучать Reddit на одном графическом процессоре.

2. Анализ производительности обучения по количеству графических процессоров

Для экспериментов на одном вычислительном узле, как видно снизу, ROC превосходит NeuGraph до 4 раз.

Ускорение в основном связано с разбиением графа. NeuGraph использует стратегию равного разделения вершин для распределения вершин между несколькими графическими процессорами.

3. Анализ точности теста относительно время

Здесь каждая точка обозначает одну эпоху обучения для GraphSAGE и FastGCN и пять эпох для ROC. ROC требует около 20 эпох для достижения той же точности теста, потому что ROC использует полное пакетное обучение. Несмотря на то, что ROC использует больше эпох, он по-прежнему так же быстр или быстрее, чем другие, для любого заданного уровня точности.

4. Анализ более крупных и глубоких архитектур GNN, выходящих за рамки обычно используемых двухуровневых GNN.

В результате с ROC архитектуры GNN достигают точности тестирования набора данных Reddit до 96,9%, превосходя современные методы выборки на 1,5%.

Учитывая полученные результаты, можно сказать, что ROC значительно помогает повысить точность, масштабируемость и производительность GNN.

Документ-III

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

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

Граф сверточная сеть (GCN) — это вариант GNN, который использует свертки вместо полносвязных слоев для выполнения агрегации. Это значительно ускоряет агрегацию для обучения и вывода и существенно снижает параметры сети. Однако предыдущие работы были ограничены использованием GCN на глубине менее 4–5 слоев, и производительность начинает ухудшаться, когда возникает необходимость анализа большего рецептивного поля. Мы наблюдаем сбои в масштабировании, когда возникает необходимость сделать выводы и отношения, как правило, на расстоянии более 5 связей, что является требованием в критических случаях использования, таких как поиск лекарств, где данные из 50 слоев глубины также могут оказаться полезными. быть полезным.

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

Эта работа имеет два важных вклада:

  1. Предлагаемый механизм для обнаружения чрезмерного сглаживания на графиках с использованием нового значения показателя гладкости (SMV) и метода визуализации t-SNE.
  2. Предлагаемая архитектура Deep Adaptive Graph Neural Network (DAGNN), которая демонстрирует возможность проникновения в 10 раз глубже, чем существующие GCN, и сообщает о значительно лучших результатах и ​​большей точности по сравнению с современное состояние благодаря рассмотрению больших рецептивных полей

Механизм расчета значения показателя гладкости (SMV) любого графа G:

Шаг (1). Вычислите евклидово расстояние между объектами двух заданных узлов. Каждый признак в векторе признаков нормализуется с использованием евклидовой нормы, чтобы исключить влияние величины его признаков. Меньшее евклидово расстояние указывает на более высокое сходство между двумя представлениями объектов, что является признаком чрезмерного сглаживания.

Шаг (2). Рассчитайте SMV для одного узла i. Это делается путем вычисления среднего евклидова расстояния всех узлов, окружающих узел i.

Шаг (3). Рассчитайте среднее значение всех SMV, рассчитанных для всех узлов на графике. SMV графа G отрицательно пропорционален общей гладкости представления узлов, что означает, что более низкое значение, стремящееся к нулю, представляет собой сильное сглаживание признаков в графе.

Визуализация t-SNE может отображать как локальную, так и глобальную структуру, такую ​​как кластеры в многомерном пространстве данных, и используется по этим причинам для визуализации функций узлов. Из визуализации видно, что по мере увеличения количества слоев, от использования простого многослойного персептрона (MLP) до использования глубокой GNN, функции становятся более идентичными и менее разделимыми друг от друга, поскольку классы становятся неразличимыми. всего после четырех прыжков.

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

Архитектура нейронной сети с глубоким адаптивным графом (DAGNN):

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

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

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

Визуализируя результаты архитектуры DAGNN с помощью визуализации t-SNE, авторы сообщают, что они достигли более высокой разделимости между классами даже после распространения на 30 слоев в глубину, а производительность начинает ухудшаться только после распространения более чем на 100 слоев в глубину сети.

На визуализации мы можем наблюдать, что по мере увеличения количества прыжков точность заметно возрастает даже для 50 слоев в глубину. SMV не стремится к 0 до глубины не менее 100 слоев.

Бумага-IV

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

Все работы SOTA с GNN выполняются с тремя наборами данных: Cora, CiteSeer и TU. Однако эти "стандартные" наборы данных очень малы и недостаточно сложны, чтобы оценить реальное обобщение графовых нейронных сетей. Задачи, выполняемые для всех этих наборов данных, аналогичны и не обнаруживают недостатков, которые могут быть у сети, когда фреймворки обучаются и оцениваются для других задач.

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

  1. Благодаря представлению сложных наборов данных среднего размера, каждый из которых выполняет свою задачу, эта платформа способна определять преимущества и недостатки каждой сети для разных задач. Каждый набор данных имеет согласованный тест проверки поезда, разделенный на все модели, чтобы обеспечить справедливость оценки.
  2. Общие уровни в GNN были модульными, чтобы обеспечить воспроизводимость производительности новых моделей. Это требует, чтобы предлагаемые модели использовали модульные слои, построенные на PyTorch и DGL.
  3. Улучшенная инфраструктура конвейера потока данных, а также сценарии обучения и тестирования были включены в структуру, чтобы сделать сравнительный анализ более плавным.

Сводка по 6 доменам набора данных, представленным в этой структуре:

  1. Химия. Набор данных ZINC состоит из реальных молекулярных графиков. Этот набор данных используется для проверки регрессионных возможностей модели и регрессии молекулярных свойств молекулы. Элементы узлов обычно представляют собой типы атомов, а элементы ребер — типы связей между этими атомами.
  2. Математическое моделирование: PATTERN и CLUSTER – это искусственные графики, созданные на основе стохастических блочных моделей. Эти наборы данных используются для проверки возможности классификации узлов в сети. Сеть нацелена на поиск вложений шаблонов фиксированных графов в большие графы переменного размера.
  3. Компьютерное зрение: изображения MNIST и CIFAR-10 преобразуются в графики с использованием суперпикселя изображений SLIC, которые представляют собой наборы данных для проверки работоспособности. Задача состоит в том, чтобы проверить способность сети к классификации графов путем классификации всей структуры графа с помощью небольших областей пикселей с однородной интенсивностью.
  4. Комбинаторная оптимизация: набор данных TSP состоит из равномерно сгенерированных искусственных евклидовых графов. Задача коммивояжёра (TSP) — это задача комбинаторной оптимизации, требующая NP-сложности, и этот набор данных используется для проверки способности графов генерировать приблизительно правильные решения NP-трудной задачи. проблемы с помощью задачи классификации граней.
  5. Социальные сети: набор данных COLLAB — это набор данных для предсказания ссылок, который состоит из данных о сотрудничестве между всеми учеными, собирающими данные, и проверяет возможность классификации границ. путем прогнозирования будущего сотрудничества между учеными.
  6. Круговые ссылки: набор данных CSL состоит из изоморфных графов, каждый узел которых имеет одинаковую степень. Это NP-промежуточная задача, для которой WL-тест может дать достаточные, но недостаточные доказательства за полиномиальное время. Этот набор данных предназначен для проверки возможности классификации графов сети, которая в конечном итоге проверяет выразительность GNN.

Авторы сделали несколько важных наблюдений после тщательного сравнительного анализа различных моделей, недавно заявивших о себе SOTA:

Недавно предложенные трехслойные WLGNN и кольцевые GNN, как утверждается, обладают более высокой выразительной силой, чем современные графовые нейронные сети. Хотя теоретически они были мощными, они не могли превзойти GCN на наборах данных, включенных в эталонную инфраструктуру. Кроме того, WLGNN продолжали сталкиваться с ошибками памяти, потому что они использовали плотные тензоры ранга 2 переменных размеров. Ранее эта проблема не возникала, поскольку наборы данных Cora, CiteSeer и TU были очень маленькими. Все эти факторы показали ограничение возможности использования WLGNN и кольцевых GNN в наборах данных реального размера.

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

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