来源:KDD2019

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

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

1、背景

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

言归正传,作者认为目前异质图处理的难点在于,一方面要处理图的结构信息,如不同类型的点和边,另一方面要关注每个节点所具有的属性(例如文本或图像),尽管在同构或异构图嵌入、属性图嵌入以及图神经网络等方面已经有了大量的研究,但很少有研究能同时考虑异构的节点、边和异构的内容。因此,作者提出了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集中在同质图的处理上,也没有考虑这种不同类型节点的影响。

2、问题定义

3、HetGNN模型

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

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

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

3.1 采样异构邻居

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

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

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

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

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得到该节点的表示。

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

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

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

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

3.3 聚集异构邻居

这个过程包括两个层次:

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

3.3.1 同一类型邻居节点聚合

3.3.2 不同类型邻居节点聚合

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

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个评论图。具体信息如下:

链路预测实验:

测试方案有些不同:

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

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

个性化推荐实验: 

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

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

可视化实验

模型各组成部分的影响:

超参数的影响: 

5、总结

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

HetGNN-Heterogeneous Graph Neural Network 异构图神经网络 KDD2019相关推荐

  1. Introduction to Graph Neural Network(图神经网络概论)翻译:目录总览

    前言:最近对图神经网络部分比较感兴趣,偶尔看到清华大学刘知远老师在今年3月份发表的一本书:Introduction to Graph Neural Network,于是将该书内容进行翻译,记录阅读中自 ...

  2. HAN - Heterogeneous Graph Attention Network 异构图注意力网络 WWW 2019

    文章目录 1 相关介绍 背景 元路径 meta-path 异构图和同构图 相关工作 Graph Neural Network Network Embedding 贡献 2 HAN模型 2.1 Node ...

  3. HAN - Heterogeneous Graph Attention Network 异构图注意力网络 WWW2019

    论文题目:Heterogeneous Graph Attention Network (HAN)异构图注意力网络 作者:北京邮电大学Xiao Wang,Houye Ji等人 来源:WWW2019 论文 ...

  4. Introduction to Graph Neural Network(图神经网络概论)翻译:Chapter4:Vanilla Graph Neural Networks

    文章目录 4.Vanilla Graph Neural Networks(原始图神经网络) 4.1. Introduction 4.2 Model 4.3 Limitations 4.Vanilla ...

  5. Introduction to Graph Neural Network(图神经网络概论)翻译:Chapter2:Basic of Math and Graph

    文章目录 2 Basic of Math and Graph 2.1 Linear Algebra(线性代数) 2.1.1 Basic Concepts(基本概念) 2.1.2 EIGENDECOMP ...

  6. 【论文分享】异构图神经网络域名检测方法GAMD:Attributed Heterogeneous Graph Neural Network for Malicious Domain Detection

    题目:Attributed Heterogeneous Graph Neural Network for Malicious Domain Detection 链接:https://ieeexplor ...

  7. Heterogeneous Graph Neural Network(异质图神经网络)

    Heterogeneous Information Network 传统的同构图(Homogeneous Graph)中只存在一种类型的节点和边,当图中的节点和边存在多种类型和各种复杂的关系时,再采用 ...

  8. Reinforcement Learning Enhanced Heterogeneous Graph Neural Network阅读笔记

    强化学习增强异质图神经网络 代码源:https://github.com/zhiqiangzhongddu/RL-HGNN 摘要 异构信息网络(HINs)涉及多种节点类型和关系类型,在许多实际应用中非 ...

  9. [论文翻译]-A Comprehensive Survey on Graph Neural Networks《图神经网络GNN综述》

    文章目录 摘要 1 简介 1.1 GNN简史 1.2 Related surveys on graph neural networks 1.3 Graph neural networks vs. ne ...

最新文章

  1. C#中提供的精准测试程序运行时间的类Stopwatch
  2. Cenetos 下sudo的使用
  3. 《Arduino奇妙之旅:智能车趣味制作天龙八步》一2.4 准备好了吗?
  4. RabbitMQ入门(五)-Topics(主题)
  5. 夺命雷公狗---无限级分类NO3
  6. PDB调试Python程序
  7. /dev/tty和/dev/console
  8. 计算机无法从硬盘启动怎么办,电脑不能从硬盘启动应该怎么解决
  9. CTF php 序列化,CTF-WEB: php反序列化
  10. 【Nodejs六】关于mongodb那些事
  11. 【李宏毅2020 ML/DL】P45-50 Network Compression
  12. 1.2 Filters
  13. [摘录]第5章 谈判原则
  14. 乐max2 android9,辣评烩:乐Max 2即将升级EUI 6.0 基于安卓7.0!
  15. AndroidKK4.4 Power key电量屏幕时button light先亮LCD后亮的卡顿问题分析
  16. 日语五段动词变形规则
  17. 最新SOCKS5代理服务器 socks5代理ip地址
  18. 用continue计算100以内奇数和_100万以内A类三胞胎素数有1393对
  19. 如何录屏?电脑屏幕录制软件哪个好?
  20. 微信公众号嵌套html,VUE项目嵌入微信公众号文章URL

热门文章

  1. NO.34 关于禅道加密
  2. MyEclipse下连接Mysql
  3. 设计模式 (一) 初次体验
  4. MongoDB索引案例一则
  5. leetcode9. 回文数
  6. React 第七章 条件渲染
  7. Spring Mvc 整合 Mybatis
  8. asp sql ip地址排序_SQL必知必会读书笔记,30分钟入门SQL!
  9. Nginx原子操作及自旋锁实现
  10. Android知识体系