前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >KDD19开源论文 Heterogeneous Graph Neural Network

KDD19开源论文 Heterogeneous Graph Neural Network

作者头像
Houye
发布2020-05-09 16:17:43
1.1K0
发布2020-05-09 16:17:43
举报
文章被收录于专栏:图与推荐图与推荐

Heterogeneous Graph Neural Network

背景介绍

文章核心思想?

文章针对异构图网络进行建模,得到每个节点的向量表示。首先,利用基于重启的随机游走策略为每个节点根据节点类型选择邻居,然后利用两个模块聚合邻居节点特征:一方面,对节点的不同类型特征进行建模,生成特征向量;另一方面,聚合不同类型的邻居节点,并融合注意力机制,对不同类型的节点赋予不同的权重,得到最终的向量表示。最后,建立损失函数,mini-batch梯度下降端对端学习模型。将学习到的向量表示用于链接预测,推荐,节点分类,聚类等问题,都取得了较好的效果。

异构图网络的挑战

1. 对异构图怎样采样?每个节点的邻居类型不同,邻居个数不同,和有的类型节点不是直接相连

2. 对不同类型的特征怎样进行编码?节点特征多种多样,比如说文字、图像等。

3. 对不同类型的节点如何聚合?不同类型节点影响不同,比如在作者-论文-会议图中,对于作者的向量来说,作者-论文的关系会比论文-会议更重要一些,因为会议中会包含各种类型的论文,会议对应的向量更加泛化一些

针对以上三个挑战,文章提出了HetGNN,主要贡献:

1. 定义异构图:图结构异构并且节点信息异构

2. 提出HetGNN模型,可以同时捕捉结构和内容的异构,可以适用于直推式和归纳式任务

3. 在多数据集实验,链接预测,节点分类,聚类等任务中表现良好

综上,

异构图定义 :有多种类型的节点和多种类型的边的图,并且每个节点有不同类型的特征(文本,图像等);

目的:学习异构图中每个节点的向量表示embedding

HetGNN模型结构

针对上文提到的异构网络面临的三个挑战,HetGNN分成了三个部分:

邻居采样策略:Sampling Heterogeneous Neighbors(挑战一)

特征编码:Encoding Heterogeneous Contents(挑战二)

聚合邻居:Aggregating Heterogeneous Neighbors(挑战三)

最后,根据目标函数进行优化,进行训练和预测

Sampling Heterogeneous Neighbors(挑战一)

挑战一:对异构图如何采样?

在异构图中,直接采样邻居面临的问题:

1. 不能捕捉到不同类型邻居的信息。比如说,在下图的作者-论文-会议的图中,作者之间并不相连,作者会议也不相连,但他们之间的关系不可被忽视

2. 邻居数量的影响。有的作者写了很多篇论文,有的作者写的少。有的商品被很多人访问,有的商品无人问津,冷启动问题不能很好的表示

3. 节点的特征类型不同(如图像,文字等),不能直接聚合。

针对上述问题,本文采用一种random walk with restart(RWR)方法进行采样,主要有两步:

1. 从节点v随机游走采样,采样固定长度,每次以概率p访问邻居节点或返回初始节点,每种类型节点采样数固定,确保每类节点都会被采样到。

2. 对不同类型的邻居分组,不同类型的邻居,根据采样频率返回前k个

上述采样方法中:

1. 对于每种类型的节点都采样到了

2. 每种类型节点数量相同,并且高频邻居被选择

3. 同种类型的邻居放在了一起,邻居信息可以聚合

Encoding Heterogeneous Contents(挑战二)

挑战二:对不同类型的特征怎样进行编码?

同一个节点,也往往有多种类型的特征,如图像,文字等,文章提出先对这一类特征进行预训练,如类别特征直接利用one-hot,文本特征利用par2vec,图像特征利用CNN,训练得到每类特征的向量表示后,利用Bi-LSTM进行编码后聚合。模型架构如图所示:

在数学表达式上,节点v的向量表示

为:

其中

为x的映射函数,也可为自身,

是要学习的参数,LSTM模块如下所示:

输入为

,输出为

。这样的结构模型简单,参数少;考虑了异构信息,表达能力强;可以很容易添加新的特征,可扩展性强。

Aggregating Heterogeneous Neighbors(挑战三)

挑战三:对不同类型的节点如何聚合?

在上一部分,得到了每个节点的特征表示,在聚合上面临两个问题:对同样类型的不同节点怎样聚合?对不同类型的节点怎样聚合?分两步解决这两个问题:

Same type neighbors aggregation

在采样中,我们对不同类型的节点进行采样,通过上一步得到了每个节点的特征,这里,需要对同一类型的节点特征进行聚合,此处仍然采用Bi-LSTM方法:

输入为采样得到的相同类型邻居的特征表示,输出为这一类型邻居的向量表示,有点类似与GraphSAGE的思想,利用Bi-LSTM对相同类型的邻居节点进行聚合,模型结构如图所示:

Type Combination

上述得到了每个类型节点的向量表示,这里,希望对这些类型的节点进行聚合,考虑到不同类型节点的邻居贡献不同,因此引入注意力机制l联合学习不同类型的邻居:

模型结构如图所示:

目标函数

根据目标函数学习模型参数:

综上所述,模型架构如图所示:

分成5步:

1. 对邻居节点进行采样,按照节点类型进行分类

2. NN-1:对节点不同类型特征学习

3. NN-2:对相同类型节点各个特征的聚合

4. NN-3:对不同类型节点的聚合

5. 根据Graph Context Loss损失函数进行优化

最终得到每个节点的向量表示用于下游任务

参考文献:

Zhang C , Song D , Huang C , et al. Heterogeneous Graph Neural Network[C]// the 25th ACM SIGKDD International Conference. ACM, 2019.

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 图神经网络与推荐系统 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Heterogeneous Graph Neural Network
  • 背景介绍
  • HetGNN模型结构
  • Sampling Heterogeneous Neighbors(挑战一)
  • Encoding Heterogeneous Contents(挑战二)
  • Aggregating Heterogeneous Neighbors(挑战三)
  • 目标函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档