图神经网络学习笔记2.2-图游走算法(异构图)

deepwalk和node2vec针对同构图的游走,如果应用于异构图则会造成以下问题:

  • 偏向于出现频率高的节点类型
  • 偏向于相对集中的几点(即度数高的节点)

要了解异构图的游走,首先我们需要了解什么是异构图:

我们知道同构图G=(V,E),而异构图G=(V,E,T),T是节点V的类型
例如,学术网络:

在上图中,我们知道节点有四种不同的类型,而节点之间的边E也有三种不同的类型

在我们了解异构图之后,下面介绍metapath2vec
在metapath2vec算法中,提出了元路径(meta path)的概念
meta path:在图中选取的由节点类型构成的组合路径
例如:APA的含义为两个作者写了用一篇论文,又例如:APCPA,两个作者分别写的两篇论文在同一个会议发布

可见,元路径的选取都是有意义的,但是为什么要这么做呢?
因为我们会在选取出来的元路径上进行游走,如果选取出来的元路径没有什么意义,那么训练出来的模型的效果较差

基于meta path的随机游走

对于选取节点A来说,每个节点有1/4的概率被选中,假设我们选取了节点A1,对于选取节点P,对应的有两个节点P1和P2,每个节点被选中的概率是1/2,我们选择P2,那么A节点则有A1、A3和A4三个选择
ps:只要首尾节点类型相同,就可以继续游走,元路径最好是对称的,这样可以方便我们对元路径做出扩展,不对称的元路径也是有意义的

停止游走的条件:

  • 到达指定的最大游走程度
  • 找不到符合要求节点类型的节点

metapath2vec的整体框架:

metapath2vec在随机游走的时候考虑了节点类型,但是在负采样的时候没有考虑节点类型:
可以看出负样本的节点类型和正样本不同,这样的负样本采集方式并不利于模型训练,我们应当采集同样的样本类型,因此提出了metapath2vec++算法,在负采样的时候,考虑节点类型

变种:multi-metapath2vec:利用元路径生成器,生成多条metapath

变种:side info + multi-metapath2vec:每个节点都有自己的特征表示,通过元路径生成器生成多条元路径,在实际训练过程中将特征融入矩阵中,让模型获得更多信息

图游走算法总结:

posted @ 2020-11-25 18:36  dntbafraid  阅读(3210)  评论(0编辑  收藏  举报