转载

目录

0 引言

1 预训练介绍

2 GCN 预训练模型框架介绍

2.1 预训练任务介绍

本节小结

2.2 应用于下游任务

本节小结

后记


0 引言

虽然 GNN 模型及其变体在图结构数据的学习方面取得了成功,但是训练一个准确的 GNN 模型需要大量的带标注的图数据,而标记样本需要消耗大量的人力资源,为了解决这样的问题,一些学者开始研究Graph Pre-training的框架以获取能够迁移到不同任务上的通用图结构信息表征。

在NLP和CV领域中,学者已经提出了大量的预训练架构。比如:BERT(Devlin et al., 2018)和VGG Nets (Girshick et al., 2014),这些模型被用来从未标注的数据中学习输入数据的通用表征,并为模型提供更合理的初始化参数,以简化下游任务的训练过程。

这篇博文将向大家介绍图上的预训练模型,来自论文Pre-Training Graph Neural Networks for Generic Structural Feature Extraction 重点讨论下面两个问题:

  1. GNNs 是否能够从预训练中受益?

  2. 设置哪几种预训练任务比较合理?

1 预训练介绍

本节将向大家介绍什么是模型的预训练。对于一般的模型,如果我们有充足的数据和标签,我们可以通过有监督学习得到非常好的结果。但是在现实生活中,我们常常有大量的数据而仅仅有少量的标签,而标注数据需要耗费大量的精力,若直接丢掉这些未标注的数据也很可惜。因此学者们开始研究如何从未标注的数据中使模型受益。

一个简单的做法是我们自己为这些未标注数据"造标签",当然这些标签和我们学习任务的最终标签不一样,否则我们也不用模型学习了。举个简单例子,比如我们想用图神经网络做图上节点的分类,然而有标签的节点很少,这时候我们可以设计一些其他任务,比如利用图神经网络预测节点的度,节点的度信息可以简单的统计得到,通过这样的学习,我们希望图神经网络能够学习到每个节点在图结构中的局部信息,而这些信息对于我们最终的节点分类任务是有帮助的。

在上面的例子中,节点的标签是我们最终想要预测的标签,而节点的度是我们造出来的标签,通过使用图神经网络预测节点的度,我们可以得到1)适用于节点度预测的节点embedding 2)适用于节点度预测任务的图神经网络的权重矩阵,然后我们可以1)将节点embedding接到分类器中并使用有标签的数据进行分类学习 2)直接在图神经网络上使用有标签的数据继续训练,调整权重矩阵,以得到适用于节点分类任务的模型。

以上就是预训练的基本思想,下面我们来看图神经网络中的预训练具体是如何做的。

2 GCN 预训练模型框架介绍

如果我们想要利用预训练增强模型的效果,就要借助预训练为节点发掘除了节点自身embedding之外的其他特征,在图数据集上,节点所处的图结构特征很重要,因此本论文中使用三种不同的学习任务以学习图中节点的图结构特征。通过精心设计这三种不同任务,每个节点学到了从局部到全局的图结构特征,这三个任务如下:

  • 边重建:首先mask一些边得到带有噪声的图结构,训练图神经网络预测mask掉的边;

  • Centrality Score Ranking:通过对每个节点计算不同的 Centrality Score,其中,包括:Eigencentrality, Betweenness, Closeness和 Subgraph Centrality;然后,通过各个 Centrality Score 的排序值作为label训练 GCN;

  • 保留图簇信息:计算每个节点所属的子图,然后训练 GNNs 得到节点特征表示,要求这些节点特征表示仍然能保留节点的子图归属信息。

整个预训练的框架如下图所示,首先从图中抽取节点的结构特征比如(Degree, K-Core, Clustering Coefficient等),然后将这些结构特征作为embedding来学习设定的三个预训练任务,label使用的是从图中抽取的各个任务对应的label,最后得到节点embedding表征接到下游的学习任务中。

Screen Shot 2019-07-15 at 20.53.02

图注:应用 GCN 作为子模块的图预训练框架

2.1 预训练任务介绍

任务 1:边重建

通过边重建任务,预训练的GNN能够学习到节点embedding的一种较为鲁棒的表示,这种表示在含有噪声或者边信息部分丢失的图数据中很有效。

任务 2:Centrality Score Ranking

作为图的重要指标之一,Centrality Score 能够根据节点位于图中的结构角色来衡量节点的重要性。通过预训练 GNN来对节点的各种 Centrality Score 进行排序,GNN便能够捕获每个节点位于图中的结构角色。论文中,作者主要用了如下4中Centrality Score:

  1. Eigencentrality:从高分节点对邻居贡献更多的角度衡量节点的影响,它描述了节点的在图中的'hub'角色,和PageRank非常类似。

  2. Betweenness 衡量某节点位于其他节点之间的最短路径上的次数,他描述了节点在整个图中的 'bridge' 角色;

  3. Closeness 衡量某节点与其他节点间的最短路径的总长度,他描述了节点在整个图中的 'broadcaster' 角色。

  4. Subgraph Centrality 衡量某节点对所有子图的参与度(到所有子图最近路径长度的和),他描述了节点在整个图中的'motif'角色。

以上四种Centrality Score描述了节点在整个图中所承担的不同角色,因此,通过这四种Centrality Score的学习任务节点的embedding能够标注不同粒度的图结构信息。

通过Centrality Score Ranking任务,预训练的GNN能够学习到图中的每一个节点在全局中起到的作用。

任务 3:保留图簇信息

通过保留图簇信息的预训练任务,GNN能够学习到将图中的节点嵌入到可以保留对应簇信息的表示空间中。

本节小结

在此做一个小结,我们设计了边重建、Centrality Score Ranking、保留图簇信息三种图预训练任务,这三个任务能够生成节点embedding对图结构的局部到全局表示,有利于下游的学习任务。

2.2 应用于下游任务

通过上面所提到的带有  、 和  的三种任务上的预训练能够捕GNN来为图中节点生成结构相关的通用表征。接下去,我们可以将这些表征用于下游的任务,主要有两种应用方式:

  1. 作为额外特征:前面我们说到了,预训练GNN后学习到的节点表征与图的结构信息相关,那么这些表征可以结合节点自身的embedding作为节点新的embedding参与下游模型中。

  2. 微调(Fine Tuning,FT):预训练GNN后我们不仅得到节点的表征,还得到了GNN的网络参数,这些参数也和图结构学习息息相关,那么我们可以通过在预训练模型之后添加一个与下游任务相关的输出层,以根据特定任务对预训练模型参数进行微调。

本节小结

在此做一个小结,利用 2.1 节所提到方法预训练模型,使预训练模型能够从局部到全局上捕获图结构信息的不同属性,然后将预训练模型在特定的任务中做微调,最终应用于该特定任务中。举个例子,2.1 节所提到的训练预训练模型过程好比我们在高中阶段所学习的语、数、英、物、化、生等基础学科,主要用于夯实基础知识;而2.2节所提到的预训练模型在特定任务中的特征提取和微调过程,相当于我们在大学期间基于已有的基础知识,针对所选专业进行进一步强化,从而获得能够应用于实际场景的作用技能。

后记

本篇博文重点介绍了 GNN 的预训练模型,该模型通过捕获未标注图数据中通用的结构信息以提供有用的表征信息或者参数来提高 GCN 下游任务的性能。图上的预训练任务有很多种,本篇论文中精心设计的三种从局部到全局捕获图结构信息,在下一篇博文中,我们还将介绍其他可行的预训练任务。

GNN教程:预训练模型相关推荐

  1. GNN教程:与众不同的预训练模型!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:秦州,算法工程师,Datawhale成员 0 引言 虽然 GNN ...

  2. MindNLP-基于Mindspore2.0的GPT2预训练模型迁移教程

    前言 动机 大家好,我是Super_WZB,最近MindSpore快要上线2.0版本了,由于之前主要是参与MindSpore的开发工作,一直想找机会多用一用.而自春节开始也是参与到了一项基于MindS ...

  3. 基于Mindspore2.0的GPT2预训练模型迁移教程

    摘要: 这篇文章主要目的是为了让大家能够清楚如何用MindSpore2.0来进行模型的迁移. 本文分享自华为云社区<MindNLP-基于Mindspore2.0的GPT2预训练模型迁移教程> ...

  4. Caffe2教程实例,加载预训练模型

    Caffe2教程实例,加载预训练模型 概述 本教程使用模型库中的预训练模型squeezenet 里分类我们自己的图片.我们需要提供要分类图片的路径或者URL信息作为输入.了解ImageNet对象代码可 ...

  5. mmsegmentation使用教程 使用 OpenMMLab 的 MM segmention 下Swin-T 预训练模型 语义分割 推理的记录

    前言: 给大家说一下怎么使用mmsegmention时,毕竟自己用mmsegmention走过很多弯路,然后结合其他人的文章和mmsegmention自己的doc来写下这个教程 第一部分: 我的电脑配 ...

  6. 工具篇Flair之使用预训练模型教程

    更多实时更新的个人学习笔记分享,请关注: 知乎:https://www.zhihu.com/people/yuquanle/columns 微信订阅号:AI小白入门 ID: StudyForAI Fl ...

  7. 教程丨一文入门图像预训练模型

    作者:Dr. Dataman 译者:刘媛媛 过去三十年来,研究学者在图像识别算法和图像数据集方面做了许多工作,积累了宝贵的知识经验.如果你对图像训练感兴趣,但又不知道从何开始.那么,我希望这篇文章可以 ...

  8. Bert,Albert,Roberta,XLNet的中英文预训练模型下载网址及教程

    自然语言处理的各大热门的中英文预训练模型下载网址,包含了Bert,Albert, Roberta, XLNet等模型的base和large.tensorflow和pytorch版本的预训练模型. ht ...

  9. TorchProtein教程--预训练的蛋白质结构表示(5)

    TorchProtein教程–预训练的蛋白质结构表示(5) 本教程来自唐建团队的开源框架torchprotein 目录 torchprotein安装 蛋白质数据结构 基于序列的蛋白质特性预测 基于结构 ...

最新文章

  1. 详解原生AJAX请求demo(兼容IE5/6)
  2. 24张图带你彻底理解Java中的21种锁
  3. 开发asp.net2.0手机用网站 点滴[xgluxv]
  4. UNIX-LINUX编程实践教程-第三章-实例代码注解-ls2
  5. linux rdate
  6. svn导出项目到myeclipse,运行报ClassNotFoundException
  7. 基于Pytorch实现CNN卷积神经网络-Mnist数据集
  8. 3.4 小乌龟git使用说明
  9. php 爬虫图片,随机图片API-json格式基于python爬虫和PHP
  10. excel自动调整列宽_Knime数据分析入门- 06 自动调整Excel中列序
  11. Cisco三层交换机的详细配置
  12. 对泊松分布的一点理解
  13. yarn下载报错There appears to be trouble with your network connection. Retrying.
  14. cocos2dx使用TiledMap模拟3D地图场景----斜45度2D地图的靠墙直线移动
  15. python提取身份证信息_Python selenium 身份证信息在线解析爬取
  16. biogeme-nest_logit-cnblog
  17. pdf大小如何压缩?
  18. 海康摄像头实现点位缩放功能(切换焦距)
  19. wps 每页显示50行
  20. Python伪开发者对于搜狐云景的测评

热门文章

  1. vue 城市选择器(省市区)的使用 element-china-area-data
  2. 最全的教育行业大数据解决方案,个个针对痛点
  3. WIN7系统PS CS5打开文件出现已停止工作的问题处理
  4. 朗文词典安装教程 朗文当代词典Longman 第五版 windows版 含映像工具
  5. 四种方法快速恢复Word初始化默认设置
  6. Revit 及 Revit二次开发入门笔记
  7. 光伏二次设置--远动通讯屏
  8. 基于FPGA的 SPI通信 设计(1)
  9. 【报告分享】2021中国女性婚恋观白皮书-壹心理(附下载)
  10. 《大数据架构详解》一书再版意见征集