【异构图笔记,篇章1】RGCN:Modeling Relational Data with Graph Convolutional Networks

【异构图笔记,篇章1】RGCN:Modeling Relational Data with Graph Convolutional Networks

本文仅供学习,未经同意请勿转载
后期会陆续公开关于图神经网络的相关笔记,感兴趣的可以关注一下喽。

论文信息

在这里插入图片描述

  • paper name:《Modeling Relational Data with Graph Convolutional Networks》
  • 中文简称:关系图卷积网络
  • 原文链接:https://arxiv.org/abs/1703.06103
  • 源码链接:https://link.zhihu.com/?target=https%3A//github.com/tkipf/relational-gcn
  • 来源:ESWC , University of Amsterdam
  • 年限:2018
  • 推荐原因:异构图经典必读模型,baseline
  • 笔记记录时间:2022年8月2日
  • 博客公开笔记时间:2023年2月24日

论文要点快览

  • 驱动数据任务:实体分类,链路预测
  • 核心要点:考虑不同关系对节点的影响,提出了一种异构图中多关系融合的方法,解决了GCN未考虑节点类型的局限性。
  • 做法简述:把每一种关系下的图看成同构图,将多关系图转化为多个同构图特征聚合的问题。也就是不同关系(也就是边)分别做特征融合,然后叠加处理,以此更新节点特征。
  • 应用场景:基于节点同构及边异构(注:这里异构边仅是类型,包括特征)的Graph learning 场景
  • 论文主要贡献点:前面提到的核心要点,此外RGCN还提出了参数共享及稀疏化约束的trick
  • 与GCN的对比:
    • GCN为同构节点同构边,RGCN为同构节点异构边。
    • GCN中边的权重矩阵来源于度矩阵D及邻接矩阵A求,RGCN中边的权重矩阵是可学习的/自学。
  • 局限性:
    • 最主要的局限:未考虑不同的关系之间可能存在相互作用,RGCN把每种关系看成一个同构图,独立学习,最后才做特征融合
    • 无法处理动态图:RGCN只能处理图中的静态部分,即在图结构不变的情况下进行训练和推理,无法处理动态图问题。
    • 只能处理节点含特征的情况
    • 当关系类型增多,模型复杂度较大

论文内容介绍

背景任务

在这里插入图片描述注:虽然上面RGCN论文面向的任务只有两个,一个是节点分类(实体分类),另外一个是边任务(链路预测)。但是它实际上也可以用来做图分类,图分类基本上模型都可以做(相当于在学习图之后,加一个ReadOut层就好)。

  • 节点分类任务:通过RGCN之后得到每个节点的embedding,接着使用softmax分类器对每个节点进行分类即可。

  • 边预测任务:论文中用的DisMult的方法:上面PPT中的f(s,r,o),其中 e s e_{s} es e o e_{o} eo是使用R-GCN学习到的实体嵌入, R r R_{r} Rr是关系r对应的对角矩阵(可学习参数)
    实际上可以简单理解为:首先通过RGCN得到节点的特征,其次通过节点特征间接生成边的特征(比如拼接,编码器映射等),用一个回归器来对生成的特征进行打分。以此判断该边是否存在。这是链路预测或者说边特征任务中常见的做法,比如TranSE, 计算三元组(s,r,o)得到评分score.【s源节点,r可能的连接,o目标节点】
    虽然论文中只介绍DisMult,但时作者开源代码实际上还用了其他的方式:
    在这里插入图片描述

  • 图分类任务:经过RGCN之后通过一个ReadOut层生成Graph embedding,利用softmax分类器就可以实现图分类。

RGCN Conv的介绍

在这里插入图片描述从上面公式来看,RGCN conv双层循环遍历,遍历每一种关系下,叠加每一个点的邻居点的特征进行融合,最后加上一层的中心节点特征,经过一个激活函数输出作为中心节点的输出特征,其中W为维度转换矩阵,也就是模型参数。

实际上就是将每一种边类型(关系)【这里还包括自环,把自环看成一种关系】下的图看作同构图(值得注意:正向、反向在论文中也是不同类型哦),在每种同构图下进行特征融合。也就是对于每一种关系的邻居引入不同的权重参数,分别对属于同一关系类型的邻居聚合之后,在进行一次总的聚合。

根据上面的介绍,我们可以知道,当关系大量增加时,所需要的权重参数就会越多,这样子RGCN的模型参数量那是顶顶的高啊!而且不同关系的节点数量时不一样的,对于不常见的关系而言,其权重参数对应学习的数据就会非常少,这样子数据少,参数多就可能会导致过拟合。

所以RGCN作者针对上面的情况提出了两种正则化的方法:

  • 权值共享(基函数分解):基函数分解通过共享转化矩阵参数来降低参数量。其可以看作是不同关系类型之间权重共享的一种方式。可以减轻稀有关系(rare relations)数据的过拟合问题,因为稀有关系和更频繁的关系之间共享参数更新。
  • 稀疏化约束(块分解):块分解可以看作是对每个关系类型的权值矩阵的稀疏约束,其核心在于潜在的特征可以被分解成一组变量,这些变量在组内的耦合比在组间的耦合更紧密。块分解通过将大参数量的权重矩阵W转化未小矩阵的拼接,保证W矩阵的稀疏性。
    在这里插入图片描述

RGCN的trick

在这里插入图片描述

论文实验结果

实体分类

实体分类的数据集有:
在这里插入图片描述
对应的效果:
在这里插入图片描述

链路预测

链路预测的数据集有:
在这里插入图片描述

对应的实验结果为:
在这里插入图片描述

评价及总结

综上所述,RGCN适用于处理多边类型(不包括多元边特征,可以包含,但你没有办法直接利用)的静态图数据,能够提供精确的预测结果,但是对于动态图和多关系图的处理存在一定的局限性。值得关注其正则化的训练技巧,是很多模型也会用到的trick.

这里汇总一下别人训练的提问

提问1:RGCN可以用于大图吗?
Ry答:当然可以。比如ICDM 2022 : 大规模电商图上的风险商品检测,【比赛链接,可以拿这个练手RGCN】官方给出的baseline就是RGCN。而且据本人测试,在上面任务上不做任何处理时,RGCN的效果甚至比RGAT、HAN等模型的效果好。而且pyg和dgl等框架可以很好对大图进行采样训练。当然RGCN在训练大图时还是需要考虑大图的实际情况的来选择的。

猜你喜欢

转载自blog.csdn.net/qq_41895003/article/details/129192082
今日推荐