作者:CHEONG

公众号:AI机器学习与知识图谱

研究方向:自然语言处理与知识图谱

本文介绍一篇基于对比学习的图谱预训练模型GCC(KDD 2020),介绍GCC模型核心点和模型思路,完整汇报ppt获取请关注公众号回复关键字:GCC

一、背景知识

图谱预训练作用:图神经网络(GNNs)已被证明是建模图结构数据的强大工具。然而,训练GNN模型通常需要大量的特定任务的标记数据,而获取这些数据往往非常昂贵。利用自监督GNN模型对未标记图谱数据进行预训练是减少标记工作的一种有效方法,然后将预训练学习到的模型可用在只有少量标签图谱数据的下游任务。

大规模图谱预训练: 大规模知识图谱预训练方案都需要遵守以下几个套路:首先需要进行子图采样,使用子图进行模型训练;其次采用自监督学习模式,Mask图中的节点或边然后进行训练;计算Loss时需要进行负采样,图规模大无法基于全部负样例。

Contrastive Learning 对比学习: 自监督学习方案常用的两种方式,一种是生成式学习,另一种就是对比学习。对比学习主要利用了样本间的约束信息构造辅助任务,通过构建正样本和负样本,然后度量正负样本的距离进行自监督学习。对比学习的关键就在于如何合理定义正负样本,也是难点所在。

Generative Learning 生成式学习:生成式方法以自编码器为代表,在自编码器中对数据样本编码成特征再解码重构,以此来学习样本的特征表达。在上一篇文章中介绍的就是基于生成式图谱预训练模型GPT-GNN。

下面通过一个大家常用的例子来理解一下Contrastive Learning和Generative Learning的区别,先给出 结论:对比学习和生成式学习区别在于生成式学习目的在于学习到样本的细节特征,而对比学习目的在于学习正负样本之间的区别。

Epstein在2016年做了一个实验,让受试者尽可能详细的画出一张美元的图片,如上左图是受试者凭着记忆画出来的,右图是受试者照着美元画出来的。可以看出虽然左图不够细节但美元的关键特征都具备了,完全可以识别出是一张美元。同理,Generative Learning需要对图片细节进行重构来学习到样本特征,而Contrastive Learning只需要学习到特征空间的区别性,即学习到正负样例之间的区别,不关注样本本身的细节信息。这就是对比学习和生成式学习的主要区别。

二、GCC核心方法

GCC模型是一个自监督的对比学习预训练框架。基于对比学习的预训练方法主要利用了样本间的约束信息构造辅助任务,通过构建正样本和负样本,然后度量正负样本的距离进行自监督学习。

GCC预训练模型是利用图的结构信息对图数据进行预训练,不用依赖节点和边的信息,可以避免复杂的特征工程,更具有普适性。而GCC的缺点便是数据生成部分耗时过多,主要是Random Walk获取Subgraph Instances时耗时。下面再具体看一下GCC如何进行图谱自监督的对比学习预训练。

GCC预训练任务:Subgraph Instance Discrimination,我们需要弄明白以下三个问题:
问题1: 如何定义图中的subgraphinstance子图实例;

问题2: 如何定义Subgraph Instances之间的相似度;
问题3: 如何对Subgraph Instances进行编码表征。

基本假设: 在正式介绍三个问题解法之前,明白GCC的基本假设是:如果图中两个不同节点具有相似的结构信息,则两个节点表示也是相似的。

问题1解决方案: 如何定义图中的Subgraph Instance子图实例:首先定义A r-ego Network,即一个限定跳数为r的子网络,对于一个节点v,通过Random Walk的方式获取节点v一个限定跳数为r的子网络,便得到了一个Subgraph Instance实例。

问题2解决方案: 如何定义Subgraph Instance之间的相似度:定义以节点v为中心出发的两个Random Walk得到的A r-ego Network作为两个相似的Subgraph Instance;这便得到了正样例,而负样例是选择一个其他不同于v的节点,进行随机游走,以此得到负样例。文中给出了两种生成负样例的方式:分别是E2E(负样例从同一个Mini-Batch中抽取),MoCo(保存历史子图来获取负样例,不用每次重新Random Walk)

问题3解决方案: 如何对Subgraph Instance进行编码表征:使用了Graph Isomorphism Network(GIN)对Subgraph Instance进行编码,下面公式展示了GIN节点汇聚更新公式:

三、GCC模型损失函数

GCC模型训练Loss Function定义,用到了Noise-Contrastive Estimation(NCE) Loss,也就是在Representation Learning with Contrastive Predictive Coding这篇论文中定义的InfoNCE Loss,本文公式如下:

其中τ是超参数,fqf_qfq​和fkf_kfk​是两个图神经网络,用于编码query instance xqx^qxq和每一个key instance xkx^kxk成表征向量。本文使用的Graph Encoder是Graph Isomorphism Network即GIN模型。

从公式可以看出分子是xqx^qxq和正样例的相似度,分母是xqx^qxq和负样例的相似度,因此优化loss时,随着loss越小分子趋向越大分母趋向越小,就是在训练模型区分开正样例和负样例的能力,也体现了对比学习的含义。

四、举个例子

从下图中可以看出,xqx^qxq是query instance,x(k0)x^(k_0 )x(k0​)是正样例,x(k1)x^(k_1 )x(k1​),x(k2)x^(k_2 )x(k2​)是负样例,通过对比学习让xqx^qxq和正样例x(k0)x^(k_0 )x(k0​)尽可能相似,让xqx^qxq和负样例x(k1)x^(k_1 )x(k1​), x(k2)x^(k_2 )x(k2​)尽可能远离。

看下图,左边是Pre-Training阶段,可以看出GCC模型是跨三个图谱数据集Facebook,IMDB和DBLP进行了预训练,目的在于学习图谱间共有的结构特征信息,GCC模型在Fine-Tuning阶段可以进行Node Classification,Graph Classification和Similarity Search等多种任务。GCC模型共提供了两种Fine-Tuning方法,分别是Freezing和Full Fine-Tuning,在Freezing模式时,预训练得到的图编码器f_q参数固定,作为一个静态特征提取器,为下游任务提供基础特征。在Full Fine-Tuning模式时,用预训练参数初始化的图编码器f_q与下游任务上的分类器一起进行端到端的训练。

五、结论

结论:实验结果证明对于领域外的任务,GCC可以提供和专用的特定图的模型相当或更好的性能。更详细结论请参见原文。

六、往期精彩

【知识图谱系列】Over-Smoothing 2020综述

【知识图谱系列】基于生成式的知识图谱预训练模型

【知识图谱系列】基于2D卷积的知识图谱嵌入

【知识图谱系列】基于实数或复数空间的知识图谱嵌入

【知识图谱系列】自适应深度和广度图神经网络模型

【知识图谱系列】知识图谱多跳推理之强化学习

【知识图谱系列】知识图谱的神经符号逻辑推理

【知识图谱系列】动态时序知识图谱EvolveGCN

【知识图谱系列】多关系神经网络CompGCN

【知识图谱系列】探索DeepGNN中Over-Smoothing问题

【知识图谱系列】知识图谱表示学习综述 | 近30篇优秀论文串讲

【知识图谱系列】动态知识图谱表示学习综述 | 十篇优秀论文导读

【面经系列】八位硕博大佬的字节之旅

【机器学习系列】机器学习中的两大学派

各大AI研究院共35场NLP算法岗面经奉上

干货 | Attention注意力机制超全综述

干货 | NLP中的十个预训练模型

干货|一文弄懂机器学习中偏差和方差

FastText原理和文本分类实战,看这一篇就够了

Transformer模型细节理解及Tensorflow实现

GPT,GPT2,Bert,Transformer-XL,XLNet论文阅读速递

机器学习算法篇:最大似然估计证明最小二乘法合理性

Word2vec, Fasttext, Glove, Elmo, Bert, Flair训练词向量教程+数据+源码

汇报完整版ppt可通过关注公众号后回复关键词:GCC 来获得,有用就点个赞呗

【知识图谱系列】清华大学基于对比学习的图谱预训练模型GCC相关推荐

  1. OpenAI打破文本和图像次元壁,提出基于对比学习的多模态预训练模型CLIP

    OpenAI 打破了自然语言与视觉的次元壁,推出了一个连接文本与图像的神经网络模型CLIP. 相关资料 CLIP原论文:Radford et al. Learning transferable vis ...

  2. 【知识图谱系列】基于互信息最大化的图谱预训练模型DGI InfoGraph

    作者:CHEONG 公众号:AI机器学习与知识图谱 研究方向:自然语言处理与知识图谱 本文介绍两篇基于互信息最大化的图谱预训练模型DGI(ICLR 2019)和InfoGraph(ICLR 2020) ...

  3. 多模态模型学习1——CLIP对比学习 语言-图像预训练模型

    多模态模型学习1--CLIP对比学习 语言-图像预训练模型 学习前言 什么是CLIP模型 代码下载 CLIP实现思路 一.网络结构介绍 1.Image Encoder a.Patch+Position ...

  4. AAAI 2022 | 北大 阿里达摩院:基于对比学习的预训练语言模型剪枝压缩

    近年来,预训练语言模型迅速发展,模型参数量也不断增加.为了提高模型效率,各种各样的模型压缩方法被提出,其中就包括模型剪枝. 然而,现有的模型剪枝方法大多只聚焦于保留任务相关知识,而忽略了任务无关的通用 ...

  5. 直播预告 | AAAI 2022论文解读:基于对比学习的预训练语言模型剪枝压缩

    「AI Drive」是由 PaperWeekly 和 biendata 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和 ...

  6. NAACL 2021 | AWS AI 提出基于对比学习的端到端无监督聚类方法

    ©PaperWeekly 原创 · 作者 | 李婧蕾 学校 | 北京邮电大学硕士生 研究方向 | 自然语言处理 Abstract 无监督聚类的目的是根据在表示空间中的距离发现数据的语义类别.然而,在学 ...

  7. ACL 2021 | ConSERT:基于对比学习的句子语义表示迁移框架

    ©PaperWeekly 原创 · 作者 | 张琨 学校 | 中国科学技术大学博士生 研究方向 | 自然语言处理 Motivation 从 BERT,GPT 被提出来之后,自然语言处理领域相关研究进入 ...

  8. AAAI 2021 | 基于对比学习的聚类工作

    ©PaperWeekly 原创 · 作者|李云帆 学校|四川大学博士生 研究方向|聚类,无监督表示学习 论文标题: Contrastive Clustering 论文来源: AAAI 2021 论文链 ...

  9. PCL-SISR:基于对比学习的单幅图像超分辨率重建方法

    ©作者 | 高帆 学校 | 北京邮电大学 研究方向 | 计算机视觉 随着 Transformer 的提出以及在底层任务上应用的进一步探索,相信在很多底层任务数据集上可以取得新的 SOTA 成绩.但是不 ...

  10. 【自然语言处理】【对比学习】SimCSE:基于对比学习的句向量表示

    相关博客: [自然语言处理][对比学习]SimCSE:基于对比学习的句向量表示 [自然语言处理]BERT-Whitening [自然语言处理][Pytorch]从头实现SimCSE [自然语言处理][ ...

最新文章

  1. github README.md教程
  2. 带你手写基于 Spring 的可插拔式 RPC 框架(二)整体结构
  3. Knockout应用开发指南 第八章:简单应用举例(1)
  4. 006_Radio单选框
  5. 当map遇上range
  6. mybatis-物理翻页
  7. 谷歌maps菜单语言设置_Google Maps:拯救未来之路— UX案例研究
  8. 前端常用60余种工具方法(下)
  9. jQ1.5中的事件系统(低版本的事件系统)
  10. 工作分析文献综述_学术知识| 如何撰写文献综述
  11. 从零开始搭二维激光SLAM --- 总结
  12. 软件性能之进程优先级
  13. 【Windows优秀软件推荐】:唧唧down——视频和弹幕全清晰度下载
  14. 慈禧是怎么吃年夜饭的
  15. 拿什么拯救你,我的校园网——校园网优化之单线多拨
  16. Leetcode 648.单词替换(Replace Words)
  17. Unity AR小游戏(玩具小车)踩坑记
  18. 测绘资质-地理信息系统工程
  19. ElasticSearch 7.8.1教程(from b站狂神)+JD商城仿站
  20. 电脑开机各种蓝屏错误代码,U盘重装系统彻底解决

热门文章

  1. 张高兴的 Windows 10 IoT 开发笔记:三轴数字罗盘 HMC5883L
  2. ROW_NUMBER() OVER的用法
  3. RH124 Chapter 2 Managing Files From the Command Line
  4. 解决进入XP系统无法响应故障
  5. OpenCV-图像处理(13、图像上采样和降采样)
  6. android studio 通知栏广播,Android消息推送,通知栏的显示和点击
  7. python 根据关键字 切割pdf_用python拆分pdf
  8. hdoj4540:威威猫系列故事——打地鼠(dp基础题-数塔思想)
  9. windows与linux线程,Linux和Windows两种风格的操作系统,创建线程的方式有何不同?...
  10. php合成图片系统,php图片合成