Последние новости
Статья о машинном обучении для представления знаний была принята к публикации! (2022.05.06)
PGL v2.2 2021.12.20
Graph4Rec: Мы выпустили универсальный инструмент для крупномасштабного распределённого обучения представлению графов для рекомендательных систем. Подробности см. здесь.
Graph4KG: Мы выпустили инструмент для крупномасштабного обучения представлению знаний в графах. Подробности см. здесь.
GNNAutoScale: PGL теперь поддерживает GNNAutoScale — фреймворк для обучения графовых нейронных сетей на гетерогенных устройствах. Подробности см. здесь.
🔥 🔥 🔥 OGB-LSC KDD CUP 2021 — чемпион объявлен!! (2021.06.17)
С радостью объявляем, что наша команда PGL заняла два первых места и одно второе место на OGB-LSC KDD CUP 2021 в трёх соревнованиях. Официальный рейтинг можно посмотреть здесь.
MAG240M-LSC — первое место: Код и технический отчёт можно найти здесь.
WikiKG90M-LSC — первое место: Код и технический отчёт можно найти здесь.
PCQM4M-LSC — второе место: Код и технический отчёт можно найти здесь.
Две статьи с использованием PGL были приняты к публикации!! (2021.06.17)
Paddle Graph Learning (PGL) — это высокопроизводительный и удобный в использовании фреймворк машинного обучения для работы с графами, основанный на PaddlePaddle.
В последней версии PGL добавлена поддержка гетерогенных графов, а также MetaPath для выборки на гетерогенных графах, которая позволяет использовать различные типы узлов и рёбер. Кроме того, в PGL появился новый механизм передачи сообщений на гетерогенных графах, который позволяет легко создавать передовые алгоритмы на основе передачи сообщений. Также в последней версии PGL добавлены распределённое хранение графов и некоторые распределённые алгоритмы обучения, такие как распределённый DeepWalk и распределённый GraphSage. В сочетании с фреймворком глубокого обучения PaddlePaddle наш фреймворк может покрыть большинство приложений графовых сетей, включая представление графов и графовые нейронные сети.
По сравнению с обычными моделями, графовые нейронные сети имеют преимущество в том, что они используют информацию о связях между узлами. Однако реализация моделирования этих связей в коде может быть сложной задачей. PGL использует парадигму передачи сообщений, аналогичную DGL, в качестве интерфейса для построения графовых нейронных сетей. Для создания простой GCN-сети достаточно написать функции send и recv. Как показано на рисунке ниже, функция send определяется на рёбрах между узлами, и пользовательская функция send будет передавать сообщение от исходного узла к целевому узлу. Затем функция recv объединяет эти сообщения с помощью функции объединения.
Пользователь может реализовать простую функцию суммирования всего лишь несколькими строками кода.
import pgl
import paddle
import numpy as np
num_nodes = 5
edges = [(0, 1), (1, 2), (3, 4)]
feature = np.random.randn(5, 100).astype(np.float32)
g = pgl.Graph(num_nodes=num_nodes,
edges=edges,
node_feat={
"h": feature
})
g.tensor()
def send_func(src_feat, dst_feat, edge_feat):
return src_feat
def recv_func(msg):
return msg.reduce_sum(msg["h"])
msg = g.send(send_func, src_feat=g.node_feat)
ret = g.recv(recv_func, msg)
Графы могут легко представлять связи между объектами реального мира, но объекты и связи могут быть разнообразными, поэтому в гетерогенных графах необходимо различать типы узлов и типы рёбер. PGL моделирует особенности гетерогенных графов, позволяя описывать сложные взаимосвязи между различными типами объектов.
На рисунке слева изображён социальный граф покупок, где есть два основных типа узлов: пользователи и товары, и три типа рёбер: отношения между пользователями, отношения между пользователями и товарами и отношения между товарами. На рисунке справа показан простой процесс выборки MetaPath, где входной metapath равен UPU (пользователь-товар-пользователь), а результат выборки выглядит следующим образом: Затем, на основе этого, можно использовать методы, подобные word2vec, для поддержки алгоритмов машинного обучения на основе метапути, таких как metapath2vec.
Алгоритмы машинного обучения на графах могут эффективно обрабатывать сложные структуры данных, такие как социальные сети, биологические сети и транспортные сети. Они используются для задач, связанных с анализом данных, таких как рекомендации, классификация и кластеризация. Текст запроса:
在异构图上由于节点类型不同,消息传递也方式也有所不同。如上图左边,它有五个邻居节点,属于两种不同的节点类型。如上图右边,在消息传�ча необходимо разделить узлы разных типов, а затем объединить их в окончательное сообщение и обновить целевой узел. На этой основе PGL поддерживает алгоритмы для работы с гетерогенными графами на основе передачи сообщений, такие как GATNE и другие.
Особенности: масштабируемость — поддержка распределённого хранения графов и распределённых алгоритмов обучения.
В крупномасштабном обучении на графах обычно требуется распределённое хранение графов на нескольких машинах и распределённое обучение на нескольких машинах. Как показано на рисунке ниже, PGL предоставляет комплексное решение для крупномасштабного обучения, мы используем PaddleFleet (поддерживает крупномасштабное распределённое обучение Embeddings) в качестве модуля сервера параметров и простую схему распределённого хранилища, что позволяет легко реализовать распределённый метод крупномасштабного обучения на графе в кластере MPI.
Рисунок: Распределённая структура PGL.
Разнообразие: охватывает большинство моделей обучения на графах в отрасли.
Ниже приведены некоторые модели графовых нейронных сетей, реализованные в рамках. Более подробную информацию можно найти здесь.
Модель | Характеристика |
---|---|
ERNIE-Sage | Может одновременно моделировать текст и структуру графа ERNIE SAmple aggreGatE |
GCN | Графовая свёрточная сеть |
GAT | Графовая свёрточная сеть на основе внимания |
GraphSAGE | Крупномасштабная графовая свёрточная сеть на основе соседства |
unSup-GraphSAGE | Неконтролируемое обучение GraphSAGE |
LINE | Обучение представлению на основе первого и второго порядка соседей |
DeepWalk | Обучение представлению DFS случайного блуждания |
MetaPath2Vec | Обучение представлению на основе метапути |
Node2Vec | Обучение представлению, сочетающее DFS и BFS |
Struct2Vec | Обучение представлению на основе структурной схожести |
SGC | Упрощённая графовая свёрточная сеть |
GES | Метод обучения представлению графа с добавлением признаков узлов |
DGI | Неконтролируемый метод обучения представлению на основе графовой свёрточной сети |
GATNE | Метод обучения представлению гетерогенного графа на основе MessagePassing |
Вышеупомянутые модели включают обучение представлению графов, графовые нейронные сети и три части гетерогенных графов, а в гетерогенных графах также есть обучение представлению и графовые нейронные сети.
PGL зависит от:
PGL поддерживает Python 3.
Вы можете легко установить PGL с помощью pip.
pip install pgl
Команда:
PGL разработан и поддерживается командой Baidu NLP и Paddle.
Контакты: E-mail: nlp-gnn[at]baidu.com
Лицензия: PGL использует Apache License 2.0.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )