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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

什么是OGB数据

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

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

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

节点预测

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

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

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

连接预测

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

药物相互作用网络;

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

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

图形预测

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

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

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

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

总的来说,有许多数据集偏向于医学和生物学。张教授认为,这可能有两个原因。首先,项目负责人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采用的数据分区方法也非常有趣。例如,对于分子图数据集,分割方法可以是分子支架。具体来说,我们可以利用分子子结构进行聚类,然后利用常用的聚类作为训练集,再利用其他稀有的聚类作为验证和测试。准备好了。这种处理方法将迫使神经网络获得更高的泛化能力,否则将无法预测具有不同子结构的分子。

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

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

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

  1. cifar10数据集测试有多少张图_图神经网络的ImageNet?斯坦福开源百万量级OGB基准测试数据集...

    机器之心原创 作者:思.一鸣 在满是「MNIST」这样的小数据里,图神经网络也需要「ImageNet」这样的大基准?近日,斯坦福大学的 Jure Leskovec 教授在 NeurlPS 2019 大 ...

  2. 放弃手工标记数据吧!斯坦福大学开源弱监督框架

    https://www.toutiao.com/a6668443801553469965/ 手工标记大量数据始终是开发机器学习的一大瓶颈.斯坦福AI Lab的研究人员探讨了一种通过编程方式生成训练数据 ...

  3. KDD 18论文解读 | 斯坦福大学提出全新网络嵌入方法 — GraphWave

    在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...

  4. 斯坦福大学开源Alpaca模型源码,性能与GPT-3.5相当比GPT4逊色,训练成本不到100美元(教程含源码)

    GPT-3.5 (text-davinci-003).ChatGPT.Claude 和 Bing Chat 等指令遵循模型现在被许多用户广泛使用,包括用于与工作相关的任务.然而,尽管它们越来越受欢迎, ...

  5. 斯坦福大学开源四足机器人pupper腿部组装(上)

    上一篇:3D打印件嵌铜螺母. 本文的主题:组装pupper的腿部. 第一步:准备胯部的材料(左右腿同时进行组装),材料如下图所示,左右各一个舵盘,各4个m36内六角平头螺丝,各一个m36内六角杯头螺丝 ...

  6. 安装单机版大语言模型AI,基于LLaMA的斯坦福大学开源Alpaca

    个人电脑即可,不需要GPU,但内存最好大于8G.我是在VM虚拟机中安装成功,且流程运行. 1. 首先使用如下命令下载 alpaca.cpp 项目 git clone https://github.co ...

  7. 2008年 斯坦福大学的计算机科学家,2008年,斯坦福大学的计算机科学家设计出了第一个专家系统:1982年,加州理工学院物理学家提出了新的神经网络模型;19_题王网...

    2008年,斯坦福大学的计算机科学家设计出了第一个专家系统:1982年,加州理工学院物理学家提出了新的神经网络模型:1997年,IBM"深蓝"电脑线路国际教程世界冠军卡斯帕罗夫:2 ...

  8. 【CS224n】2斯坦福大学深度学习自然语言处理课程笔记——词向量、词义和神经分类器

    Natural Language Processing with Deep Learning 课程笔记2 1. 词向量和word2vec 2. 优化基础知识 3. 我们能否通过计数更有效地抓住词义的本 ...

  9. 一个用于网络摄像机的开源软件 --- mjpg-streamer

    一个用于网络摄像机的开源软件 --- mjpg-streamer http://sourceforge.net/projects/mjpg-streamer luther@gliethttp:~$ w ...

最新文章

  1. 2017沈阳站流水账+感想
  2. python画三维几何图-Python常见几何图形绘制
  3. TypeScript 2.1中的类型运算 一个递归的Readonly泛型
  4. ContentValues和HashTable和HashMap和properties
  5. 【转】Ubuntu Vi编辑器中文乱码问题的解决
  6. 有孚网络北京云数据中心荣获绿色建筑国际LEED金牌认证和国家CQC A级机房认证...
  7. socket接收的消息怎么更新到页面_利用socketio实现简易即时消息服务
  8. 这就是为什么您的开源项目失败
  9. VS2005 中网站转为Web应用程序的方法
  10. 这才叫会PS,普通照片分分钟P成好莱坞海报!
  11. 【北京迅为】i.MX6ULL终结者硬件资源说明
  12. 如何做一场B格满满的技术大会演讲
  13. Micrium代码规范——命名规则
  14. java 方法缺省参数
  15. HTML期末大作业~海贼王动漫的HTML网页制作(共五页有五种风格)
  16. 【ROS基础】.launch文件语法记录
  17. DateTimePicker:jQuery日期和时间插件
  18. 2018蓝桥杯 题解
  19. 7-7 字符串中的大写字母改成小写字母 (10 分)
  20. JVM笔记(三):垃圾回收篇

热门文章

  1. 酒店(宾馆)客房管理系统
  2. 微信小程序源码案例大全
  3. python普通常量_以下属于Python普通常量的是(
  4. video.js 视频播放插件使用
  5. 写出下列程序运行结果
  6. 占问事宜:我买的择日书籍何时能到?
  7. 佐治亚理工计算机科学,佐治亚理工学院计算机科学专业如何?
  8. pytorch distiller Weights Pruning Algorithms
  9. ppoe拨号服务器没响应,pppoe拨号失败怎么办 pppoe拨号失败解决方法
  10. mysql的题目_mysql经典例题