斯坦福大学开源用于网络神经百万量级OGB基准测试的数据集

 最近,斯坦福大学的Jure Leskovec教授在NeurlPS 2019大会上发表演讲,宣布了开源开放图形基准,这是朝着图形神经网络建模统一基准迈出的重要一步。

图神经网络是近年来迅速发展起来的机器学习的一个分支。通过将非结构化数据转换成结构化节点和边的图,然后利用图神经网络进行学习,往往可以取得更好的效果。

然而,图神经网络发展至今,还没有公认的基准数据集。许多论文中使用的方法通常是在缺少节点和边缘特征的较小数据集上执行的。因此,很难说在这些数据集上获得的模型性能是最好的,而且不一定可靠,这阻碍了进一步的发展。

在NeurlPS 2019的图形演示学习讲座中,Jure Leskovec宣布了图形神经网络的开放性能基准数据集OGB(开放图形基准)。通过这个数据集,可以更好地评估模型性能等指标。

  • 项目地址:
  • //ogb.stanford.edu
  • 图为学习演讲集:
  • https://slideslive.com/38921872/graph-representation-learning-3

斯坦福大学开源用于网络神经百万量级OGB基准测试的数据集_第1张图片

演讲嘉宾是斯坦福大学计算机科学副教授Jure Leskovec。

Jure Leskovec前段时间在清华大学做了一场演讲,相关PPT可以公总号之前发的文章里面搜索下载。

值得注意的是,OGB数据集还支持两种常用的图形神经网络框架PYG和DGL。DGL项目的发起人之一、AWS 上海 AI 研究院院长、上海纽约大学张教授说:“在现阶段,我认为OGB最大的作用是推动学术界走出玩具型数据集。一个统一的、更加复杂的、更加多样化的数据集将使研究者重新聚集力量,虽然会存在模型过度拟合标准数据集的弊端,但重要的是要提高模型和算法的性能,提高DGL等平台的能力效果。”

张教授说,开放式图形基准测试是图形神经网络非常必要和必要的一步。

图神经网络的第一个统一开放基准

Jure-Leskovec在演讲中说,目前常用的节点分类数据集也有2k到3k的节点和4k到5k的边缘,这太小了。我们迫切需要一个多样的、具有挑战性的、同时非常接近实际业务的数据基准。

开放图基准测试就是在这种背景下提出的。它包括各种图形数据、用于加载和处理图形数据的代码库以及用于测量图形模型的代码库。在整个实验过程中,研究者只需关注核心模型的构建,其余的可以交给开放图基准。

以下是Jure Leskovec在NeurIPS研讨会上介绍的OGB:

斯坦福大学开源用于网络神经百万量级OGB基准测试的数据集_第2张图片

OGB可以支持PyG和DGL等主流的图形神经网络框架,以及新颖的数据集分割。在图神经网络中,数据集的分割尤为重要,这与一般的机器学习任务有很大的不同。

随着研究的发展,OGB将继续滚动。目前它在视觉领域与CIFAR相似。张教授说:“OGB数据在异构图中所占的比例太小,任务仅限于点和边。图的分类、对图的推理、时间的重要维数等都没有考虑。

什么是OGB数据

毕竟,它是一个基准数据集,而OGB的数据自然是最高优先级。根据官方网站提供的信息,OGB的数据根据任务要求分为以下几类:

  1. 节点预测
  2. 连接预测(边缘)预测;
  3. 图形预测

以下是每个任务中包含的数据集:

节点预测

  1. odbn蛋白质:蛋白质数据集,在蛋白质之间有一个关联网络,包括多个有机体;
  2. odbn维基:维基百科数据形成的网络;
  3. ogbn产品:亚马逊客户同时购买的产品网络。

斯坦福大学开源用于网络神经百万量级OGB基准测试的数据集_第3张图片

目前包含在此基准中的数据集

从数据集的类型来看,它涵盖了需要图形表示学习的几个现有领域:生物/分子化学、自然语言处理和产品推荐系统网络。此外,这些图中的数据量也非常大。例如,ogbn wiki的数据量已经达到了数百万个层次(节点),最小的ogbn蛋白是100K,这比以前的许多图形数据都要大得多,因此可以更好地评价模型的性能。

连接预测

在连接预测中有更多的数据集,包括:

药物相互作用网络;

  1. ogbi-ddi:人类生物医学知识图谱;
  2. ogbi-ppa:蛋白质之间的关系网络;
  3. ogbi评论:亚马逊用户项目评论数据集;
  4. ogbi引文:微软学术引文网络图。

斯坦福大学开源用于网络神经百万量级OGB基准测试的数据集_第4张图片

与节点数据集相比,连接预测数据集更为丰富,类型也更为多样。

图形预测

OGB还提供用于预测图形的任务数据集,这些数据集包括:

ogbg-mol:从分子网络预测分子;

ogbg-code:一种语法树结构的代码段网络;

ogbg-ppi:蛋白质间的相互作用网络;

斯坦福大学开源用于网络神经百万量级OGB基准测试的数据集_第5张图片

总的来说,有许多数据集偏向于医学和生物学。张教授认为,这可能有两个原因。首先,项目负责人Jure和其他人在这方面做了很多工作,因此推广这些数据集的开源是合乎逻辑的。另一个原因是药物分子的图形数据相对干净,噪声较小。药物的结构是三维的,可能需要更复杂和更深入的模型来解决相关问题。

对于未来会增加哪些数据集,张教授认为,目前关于异构图的数据还不够,现实中很多数据都是用异构图来表示的。然而,OGB的作用仍然显而易见。它可以提高开源图形神经网络框架的能力,促进开源社区专注于解决实际问题。

此外,OGB数据集在财务和信用报告领域缺乏数据集,特别是在反欺诈领域。这可能是反欺诈数据集脱敏后特征过度丢失的问题造成的,但缺陷并没有被掩盖。OGB无疑帮助图形神经网络摆脱了所谓的“玩具模型”阶段,开始逐步进入工业应用。

数据加载和评估

OGB的大量数据需要特殊的代码来提取。据报道,所有开源数据集都可以用特定的代码进行提取和加载。使用过程类似于深度学习框架中的数据加载器。但在使用之前,我们只需要使用“pip install ogb”来完成安装。目前,OGB库主要依赖于常用的建模库,如PyTorch、NumPy和Scikit Learn。当然,图形神经网络库也可以自由选择DGL或PyTorch几何。

DGL:https://github.com/dmlc/DGL

PyG:https://github.com/rusty1s/pytorch_geometric

现在以节点预测为例,OGB支持PYG图和DGL图来表示学习框架中的数据加载方法。加载代码如下:

PYG

from ogb.nodeproppred.dataset_pyg import PygNodePropPredDataset

dataset = PygNodePropPredDataset(name = d_name)

num_tasks = dataset.num_tasks # obtaining number of prediction tasks in a dataset

splitted_idx = dataset.get_idx_split()

train_idx, valid_idx, test_idx = splitted_idx["train"], splitted_idx["valid"], splitted_idx["test"]

graph = dataset[0] # pyg graph object

DGL

from ogb.nodeproppred.dataset_dgl import DglNodePropPredDataset

dataset = DglNodePropPredDataset(name = d_name)

num_tasks = dataset.num_tasks # obtaining number of prediction tasks in a dataset

splitted_idx = dataset.get_idx_split()

train_idx, valid_idx, test_idx = splitted_idx["train"], splitted_idx["valid"], splitted_idx["test"]

graph, label = dataset[0] # graph: dgl graph object, label: torch tensor of shape (num_nodes, num_tasks)

代码非常简单,易于使用。”“D_name”可以替换为任何数据集的名称。

同时,该项目提供了一些示例代码来评估每个数据集。具体如下:

from ogb.nodeproppred import Evaluator

evaluator = Evaluator(name = d_name)

print(evaluator.expected_input_format)

print(evaluator.expected_output_format)

在此,用户可以了解此数据集的输入和输出的特定格式。

然后,用户可以将输入字典传递给计算器,以查看实际性能:

# In most cases, input_dict is

# input_dict = {"y_true": y_true, "y_pred": y_pred}

result_dict = evaluator.eval(input_dict)

据悉,OGB已经正式指定上海AWS人工智能研究院的主要开源框架DGL作为数据导入平台之一。目前,DGL与PyTorch和MxNet作为后端引擎兼容,TensorFlow也在开发中。事实上,DGL已经做了很长一段时间的异构图形和可伸缩性工作,因此下一步可能是在相关领域将新技术与OGB结合起来,促进开源框架的发展。

张教授说,“DGL目前在医药领域有一个很好的模型库。使用OGB数据集,之后应该进一步改进模型库的迭代。”

为什么分割图数据是个问题?

在演讲中,Jure Leskovec特别强调了OGB所采用的数据划分方法,这种方法可以建立一个更加合理的评估方案。他说,看起来随机数据分割并不令人担心,但当我们将数据随机分成训练、验证和测试集时,很可能预测的准确率看起来非常好。但事实上,随机分割模型验证的效果被高估了。

举了例子,比如自然科学研究人员,他们每次收集的数据绝对不是重复的,他们每次都需要做一系列新的实验,所以模型每次都是在分布之外做预测。这就要求数据分割方法必须非常合理,并且模型的泛化能力必须足够强,以处理这些分布之外的数据预测。

斯坦福大学开源用于网络神经百万量级OGB基准测试的数据集_第6张图片

在谈到数据分割时,张教授说:“在与制药行业的研究人员讨论时,我们被提醒,在训练集上进行随机分割是不可取的,因为分子图样本具有结构性质,并且是独立且均匀分布的假设将有一个对模型泛化能力的影响,我认为其他领域也会出现同样的问题。”

为了处理这种情况,OGB采用的数据分区方法也非常有趣。例如,对于分子图数据集,分割方法可以是分子支架。具体来说,我们可以利用分子子结构进行聚类,然后利用常用的聚类作为训练集,再利用其他稀有的聚类作为验证和测试。准备好了。这种处理方法将迫使神经网络获得更高的泛化能力,否则将无法预测具有不同子结构的分子。

按物种或代码基划分是同样的原因。实际上,这些数据部门试图将一小部分作为一个整体进行测试。

斯坦福大学开源用于网络神经百万量级OGB基准测试的数据集_第7张图片

最后,更多论文地址或源码下载地址:关注“图像算法”wx公众号,Jure-Leskovec还表示,他们不仅将OGB视为一种广泛使用的研究资源,而且还将其视为各种新任务或新模型的真实测试环境。在不久的将来,OGB将进一步支持更多的图形数据集、更多的图形建模任务,同时提供一个开放的导板。有了这样的导板,我们可以更直观地评估各种图形神经网络的特性,并了解它们在哪些情况下可以表现最好。

 

你可能感兴趣的:(图像算法)