HetGNN-Heterogeneous Graph Neural Network 异构图神经网络 KDD2019

HetGNN-Heterogeneous Graph Neural Network 异构图神经网络 KDD2019_第1张图片

来源:KDD2019

论文链接:https://www3.nd.edu/~dial/publications/zhang_2019_heterogeneous.pdf

代码链接: https://github.com/chuxuzhang/KDD2019_HetGNN

1、背景 

异质图在实际生活中比同质图要更为常见一些,或者可以认为同质图中节点间存在多种类型的边(关系),同时每一条边所具有的不同属性也会导致节点间的远近亲疏。广泛列举的citation network,在我看来其实还算是比较好处理一点的异质图,虽然说文章间的共同作者、相互引用可以作为不同类型的边,但终究说,一个作者的研究领域是相关的,能够相互引用的文章大多也是同类型的,能够发表在同一个会议上的文章也很大概率是同领域的,在目前抽样形成citation network中,我认为是稍微偏向同质的,而真正的异质网络应该像电商那样的网络,那时候什么点击、购买、收藏、浏览的关系应有尽有,会更难处理节点在不同边支配下的恐惧(^-^)。

HetGNN-Heterogeneous Graph Neural Network 异构图神经网络 KDD2019_第2张图片

言归正传,作者认为目前异质图处理的难点在于,一方面要处理图的结构信息,如不同类型的点和边,另一方面要关注每个节点所具有的属性(例如文本或图像),尽管在同构或异构图嵌入、属性图嵌入以及图神经网络等方面已经有了大量的研究,但很少有研究能同时考虑异构的节点、边和异构的内容。因此,作者提出了HetGNN模型来解决此事。

如下图所示,作者认为当前工作对于异质图还没有解决好的三个问题:

  1. 异质图中的大多数节点并不会连接所有类型的其他节点。如academic graph中user节点不会直接连到venue节点上。另外说节点能够连接的邻居数也不一样。大部分GNN直接聚合邻居节点信息,而远处传过来的节点信息会随着距离而减弱。hub节点会被弱关联的邻居节点扰乱信息,冷启动的节点会因为邻居不足而导致不能充分表示。那么问题1就是:如何对异质图上的每个节点采样到强相关的邻居节点呢?
  2. 每个节点都带有非结构化的属性特征,如text、image,常用的从concatenate或者linear transformation不能建模节点属性间的deep interaction。那么问题2就是:如何设计异质图上节点属性的encoder来处理不同节点内容异质性问题。
  3. 不同类型的邻居节点对生成节点embedding的贡献也不一样。例如在academic graph,author和paper节点对author的embedding的影响会强如venue,而大部分gnn集中在同质图的处理上,也没有考虑这种不同类型节点的影响。

HetGNN-Heterogeneous Graph Neural Network 异构图神经网络 KDD2019_第3张图片

2、问题定义 

HetGNN-Heterogeneous Graph Neural Network 异构图神经网络 KDD2019_第4张图片

3、HetGNN模型 

模型思路还是很清晰的,采样邻居节点——邻居节点类型分类——每个节点feature encoding——同类型集合embedding aggregation——不同类型邻居集合aggregation——分类。整个模型的流程图如下: 

HetGNN-Heterogeneous Graph Neural Network 异构图神经网络 KDD2019_第5张图片

作者的研究思路可以归纳如下:

  1. 设计了一个基于重启策略的随机游走方法,来为图中的每一个节点采样固定数量的 强相关的异构邻居,随后依照节点的类型对采样的邻居节点进行分组。
  2. 先使用BiLSTM来编码异构内容的“深度”特征交互,得到每一个节点的内容的嵌入。
  3. 再使用另一个BiLSTM来聚集不同的邻居组(类型)的内容嵌入,得到这个类型的特征表示。随后通过注意力机制来衡量不同异构节点类型的影响,将它们组合起来,获得最终的节点嵌入。
  4. 最后,利用一个关于图的上下文的损失函数和小批量梯度下降的方法来训练模型。

3.1 采样异构邻居 

在对一个节点采样其异构的邻居节点时,会面临如下的挑战:

  • 异构网络中的直接邻居有可能只是部分类别的邻居,学出来的特征表示缺乏表示能力。
  • 每个节点的邻居数量不一定相同。
  • 异构邻居的不同的内容特征需要使用不同的特征变换来处理。 

为了解决以上的挑战,作者提出了基于重启随机游走random walk with restart(RWR)的异构邻居采样策略,如下图所示: 

HetGNN-Heterogeneous Graph Neural Network 异构图神经网络 KDD2019_第6张图片

具体来说,采样的步骤如下:

Step-1:采样固定长度的节点序列。

从任意节点v开始随机游走,游走的过程会重复地经过v的邻居或者以一个概率p返回初始节点。RWR在收集到固定数量的邻居节点后会停止,记为RWR(v)。同时确保不同类型的节点都要有一定的数量,这样保证每个类型都有一定量的节点。

Step-2:分组不同类型的节点。

对于每一个节点类型t,我们都基于邻居节点在RWR(v)中出现的频率,选出top Kt个相关类型的邻居节点,组成节点v的t类型邻居集合。

这样做的好处是:

  • RWR为每一个节点收集了所有类型的邻居。
  • 每个节点的邻居节点数量是固定的,最常被visit的节点也会被选择到。
  • 相同类型的邻居(有相同的内容特征)被分组,那样就可以用type-based aggregation。我觉得意思是指同类型的节点影响肯定最大,但其他类型也会有影响。 

3.2 节点异构内容编码

第一步,一个节点具有的不同属性集合 Cv ,那就对每个属性分别进行encoding。如对于text就用预训练的word embedding进行encode,对于image可以用CNN进行encode,总之最后得到每个attribute的embedding表示 xi。

第二步,将embedding后的feature按照某个顺序输入到BiLSTM中进行deep encode,至于顺序其实不在乎,类似于graphsage一样不在乎顺序。再接一个mean pooling得到该节点的表示。

HetGNN-Heterogeneous Graph Neural Network 异构图神经网络 KDD2019_第7张图片

其中,BiLSTM模块的内部结构图如下:

HetGNN-Heterogeneous Graph Neural Network 异构图神经网络 KDD2019_第8张图片

采用BiLSTM来处理无序的内容集合Cv,能捕捉“深度”特征交互并积累表达能力。对于不同类型的邻居节点也使用不同的BiLSTM来聚集它们的异构内容特征。

HetGNN-Heterogeneous Graph Neural Network 异构图神经网络 KDD2019_第9张图片

这个内容编码框架有如下的优点:

  • 它有相对低的复杂度(参数少),所以实现模型和对模型进行调参都相对容易。
  • 能够融合异构内容信息,具有较强的表达能力。
  • 添加额外的内容很灵活,模型拓展方便。 

3.3 聚集异构邻居 

这个过程包括两个层次:

  • 同一类型邻居节点聚合,same type neighbours aggregation
  • 不同类型邻居集合聚合,types combination

HetGNN-Heterogeneous Graph Neural Network 异构图神经网络 KDD2019_第10张图片

3.3.1 同一类型邻居节点聚合 

HetGNN-Heterogeneous Graph Neural Network 异构图神经网络 KDD2019_第11张图片

3.3.2 不同类型邻居节点聚合 

考虑到不同类型节点集合当前节点有不同影响,因此自然想法使用attention。

HetGNN-Heterogeneous Graph Neural Network 异构图神经网络 KDD2019_第12张图片

3.4 优化目标  

优化目标还是以无监督的形式,即节点对。对于给定节点 v ,与其一阶和二阶邻居都可以认为有边,而其他点则认为是无边。注意的是,节点对是按照类型区分,负样本也是与正样本属于同类型的节点。 

采用负采样的形式,可以改写为:

相当于每次训练有当前节点 v,正样本 vc,按照采样分布 Pt采样得到的负样本 V'c,那么损失函数可以进一步写为 

4. 实验分析 

实验目的(回答4个问题) :

  1. 本文的模型(HetGNN)和当前的基准模型相比,在链接预测、个性化推荐、节点分类和聚类等图挖掘任务上的表现如何?
  2. 本文的模型(HetGNN)和当前的基准模型相比,在归纳性的图挖掘任务上的表现如何?
  3. 本文模型的不同的组成部分,例如节点异构内容编码或异构邻居聚集对模型的性能有什么影响?
  4. 本文模型的各个超参数,例如嵌入的维度或异构邻居的采样数量对模型的性能有什么影响?

Baseline介绍: 

  • Metapath2vec。这是异构图嵌入模型,使用基于metapath的游走和异构skip-gram模型来学习节点的嵌入表示。
  • ASNE。这是带属性的图的嵌入模型,利用节点的潜在特征和属性特征来学习节点的嵌入表示。
  • SHNE。这是对带文本属性的异构图进行嵌入的模型,通过联合优化图的结构相近度和文本语义相关度,来学习节点的嵌入表示。
  • GraphSAGE。这是图神经网络模型,使用神经网络来聚合节点邻居的特征信息。
  • GAT。这也是图神经网络模型,使用自注意力神经网络来聚合节点邻居的特征信息。 

数据集概述: 

本文的实验用到了4个数据集,其中包括2个学术图和2个评论图。具体信息如下:

HetGNN-Heterogeneous Graph Neural Network 异构图神经网络 KDD2019_第13张图片

链路预测实验: 

测试方案有些不同:

之前:随机抽样一批links用于训练,剩下的用于测试

现在:graph training data用于节点 embedding,相应的边用于训练分类器,测试时配比相同数量的非连接边进行测试,只有训练的节点间出现新的边才算是testing link,author-author and author-paper

 

HetGNN-Heterogeneous Graph Neural Network 异构图神经网络 KDD2019_第14张图片

个性化推荐实验: 

HetGNN-Heterogeneous Graph Neural Network 异构图神经网络 KDD2019_第15张图片

节点分类和节点聚类实验: 

HetGNN-Heterogeneous Graph Neural Network 异构图神经网络 KDD2019_第16张图片

归纳性的多标签分类和节点聚类实验: 

HetGNN-Heterogeneous Graph Neural Network 异构图神经网络 KDD2019_第17张图片

 

可视化实验: 

HetGNN-Heterogeneous Graph Neural Network 异构图神经网络 KDD2019_第18张图片

模型各组成部分的影响: 

HetGNN-Heterogeneous Graph Neural Network 异构图神经网络 KDD2019_第19张图片

超参数的影响: 

HetGNN-Heterogeneous Graph Neural Network 异构图神经网络 KDD2019_第20张图片

5、总结 

  • 本文正式定义了同时考虑图的结构异构和节点内容异构的异构图表示学习问题。
  • 本文提出了一个创新的异构图表示学习HetGNN模型。HetGNN能够捕捉结构和内容的异构,对于直推式和归纳式任务都很有用。
  • 本文在多个公开数据集上做了大量的实验,证明了HetGNN在许多的图数据挖掘任务上的性能明显优于基准模型。 

 

你可能感兴趣的:(论文阅读笔记)