【图神经网络】5分钟快速了解Open Graph Benchmark

OpenGraphBenchmark(OGB)提供了一个集合,包含图机器学习的基准数据集、数据加载器和评估器,支持PyTorchGeometric和DGL框架。它涵盖了节点分类、链路预测和图属性预测任务,数据规模多样,领域丰富。安装OGB后,可以利用其易于使用的数据加载器和标准化评估器进行实验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Open Graph Benchmark (OGB)

Open Graph Benchmark(OGB)是用于图机器学习的基准数据集、数据加载器和评估器的集合。数据集涵盖了各种图机器学习任务和现实世界中的应用程序。OGB数据加载器与流行的图深度学习框架完全兼容,包括PyTorch Geometric和Deep Graph Library(DGL)。它们提供自动数据集下载、标准化数据集拆分和统一的性能评估。
OGB数据流程
OGB旨在提供涵盖重要的图机器学习任务、不同数据集规模和丰富领域的图数据集。

  • Graph ML任务:涵盖了三个基本的图机器学习任务:节点、链接和图级别的预测。
  • 规模多样化:小型图数据集可以在单个GPU内处理,而中大型图可能需要多个GPU或巧妙的采样/分区技术。
  • 丰富的领域:图数据集来自从科学网络到社会/信息网络的不同领域,也包括异构知识图。

任务领域和尺度

安装OGB

可以使用Python包管理器pip安装。

pip install ogb

检查ogb的版本:

python -c "import ogb; print(ogb.__version__)"
# This should print "1.3.6". Otherwise, please update the version by
pip install -U ogb

其他相关的依赖包 是:

  • Python>=3.6
  • PyTorch>=1.6
  • DGL>=0.5.0 or torch-geometric>=2.0.2
  • Numpy>=1.16.0
  • pandas>=0.24.0
  • urllib3>=1.24.0
  • scikit-learn>=0.20.0
  • outdated>=0.2.0

简单使用

主要强调了OGB的两个关键特性,即(1)易于使用的数据加载器和(2)标准化的评估器
(1)Data loaders
OGB有易于使用的PyTorch Geometric和DGLdata loaders。可以处理数据集下载以及标准化的数据集拆分。下面的示例是在PyTorch Geometric上数据准备和拆分数据集!当然对于DGL也是非常方便的!

from ogb.graphproppred import PygGraphPropPredDataset
from torch_geometric.loader import DataLoader

# Download and process data at './dataset/ogbg_molhiv/'
dataset = PygGraphPropPredDataset(name = 'ogbg-molhiv')

split_idx = dataset.get_idx_split() 
train_loader = DataLoader(dataset[split_idx['train']], batch_size=32, shuffle=True)
valid_loader = DataLoader(dataset[split_idx['valid']], batch_size=32, shuffle=False)
test_loader = DataLoader(dataset[split_idx['test']], batch_size=32, shuffle=False)

(2)Evaluators
OGB还准备了标准化的评估器,以便于评估和比较不同的方法。evaluator将input_dict(格式在evaluator.expected_input_format中指定的字典)作为输入,并返回一个存储适用于给定数据集的性能度量的字典。标准化的评估协议使研究人员能够可靠地比较他们的方法。

from ogb.graphproppred import Evaluator

evaluator = Evaluator(name = 'ogbg-molhiv')
# You can learn the input and output format specification of the evaluator as follows.
# print(evaluator.expected_input_format) 
# print(evaluator.expected_output_format) 
input_dict = {'y_true': y_true, 'y_pred': y_pred}
result_dict = evaluator.eval(input_dict) # E.g., {'rocauc': 0.7321}

节点分类任务数据集

节点分类任务
注意:对于无向图,加载的图将具有双倍的边数,因为OGB会自动添加双向边。

链路预测任务数据集

链路预测任务
注意:对于无向图,加载的图将具有双倍的边数,因为OGB会自动添加双向边。*表示外部提供的数据集。

图属性预测任务数据集

图属性预测
注意:对于无向图,加载的图将具有双倍的边数,因为OGB会自动添加双向边。

Large-Scale Graph ML Datasets

有三个OGB-LSC数据集:MAG240MWikiKG90Mv2PCQM4Mv2,它们分别在节点、链接和图的级别上具有前所未有的规模和覆盖预测。下面提供了三个OGB-LSC数据集的说明性概述。
OGB-LSC

  • MAG240M是一个异质的学术图,其任务是预测位于异质图中的论文的主题领域(节点分类)。
  • WikiKG90Mv2是一个知识图,其任务是估算缺失的三元组(链接预测)。
  • PCQM4Mv2是一个量子化学数据集,其任务是预测给定分子的一个重要分子性质,即HOMO-LUMO间隙(图回归)。

对于每个数据集,OGB仔细设计其预测任务和数据分割,以便在任务上实现高预测性能将直接影响相应的应用。在每个数据集页面中提供了进一步的详细信息。数据集统计数据和基本信息总结如下,表明OGB的数据集非常大。
OGB-LSC
†:PCQM4Mv2数据集在SMILES字符串中提供。将它们处理成图形对象后,最终的文件大小将在8GB左右。

内容来源

OGB home

### OGBN 图神经网络数据集下载与使用教程 #### 什么是OGBN? 开放图基准(Open Graph Benchmark,简称OGB)是一个用于评估机器学习模型性能的大规模标准数据集合[^4]。其中,`ogbn`代表的是针对节点分类、链接预测以及图表征学习等任务的一系列大规模真实世界的数据集。 #### 如何安装OGB库? 为了方便获取和处理这些数据集,可以先通过pip命令来安装 `ogb` 库: ```bash pip install ogb ``` #### 加载OGBN数据集实例 下面展示如何加载一个典型的OGBN数据集并查看其基本信息: ```python from ogb.nodeproppred import NodePropPredDataset # 定义要使用的具体数据集名称 dataset_name = 'ogbn-arxiv' # 初始化NodePropPredDataset对象 dataset = NodePropPredDataset(name=dataset_name) # 获取图形结构及相关属性 graph, labels = dataset[0] print(f"Number of nodes: {graph['num_nodes']}") print(f"Number of edges: {len(graph['edge_index'][0])}") # 查看标签形状 print(f"Labels shape: {labels.shape}") ``` 上述代码片段展示了从指定的OGBN数据集中读取图及其对应标签的过程,并打印了一些基本统计数据[^5]。 #### 可视化图数据 虽然 PyTorch Geometric (PyG) 自身并不直接支持可视化功能,但是可以通过将其转换成 NetworkX 格式的图来进行更直观的表现形式[^2]: ```python import networkx as nx from torch_geometric.utils.convert import to_networkx # 假设data是我们已经拥有的PyG Data对象 networkx_graph = to_networkx(data) # 绘制简单版本的图表示 nx.draw(networkx_graph, with_labels=True) plt.show() ``` #### 关于异构图的应用场景 对于更加复杂的异质图情况,比如电影推荐系统中的多类型实体关系建模,则可能需要用到专门设计用来解决这类问题的方法和技术栈。例如,在LastFM这个音乐社交平台上的用户行为分析案例里提到的任务就是属于此类范畴之一[^3]。 #### 总结 综上所述,无论是同质还是异质类型的图神经网络研究领域,都可以借助像OGB这样的公共资源快速开展实验验证工作;而当涉及到具体的实现细节时,则需灵活运用各种框架所提供的API接口完成相应操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

镰刀韭菜

看在我不断努力的份上,支持我吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值