前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【GNN】HAN:异构图注意力网络

【GNN】HAN:异构图注意力网络

作者头像
阿泽 Crz
发布2020-07-21 15:11:21
2.9K0
发布2020-07-21 15:11:21
举报

今天学习的是北京邮电大学石川老师组的论文《Heterogeneous Graph Attention Network》,发表于 WWW 2019。

石川老师作为异构信息网络领域的青年学者,作出了很多关于异构网络的重要研究工作。

本文提出了一种基于分层注意力的异构图神经网络,包括节点级注意力和语义级注意力。其中,节点级注意力的目的是学习节点与元路径上的邻居之间重要性,而语义级注意力的目的在于学习不同元路径的重要性。通过这两种注意力的学习可以充分考虑节点和元路径的重要性,然后基于元路径的的相邻节点的特征进行分层聚合,从而生成节点的 Embedding。

1.Introduction

元路径可以表示连接着的两个对象的复合关系,被广泛用于捕获语义的方法。我们以下图 IMDB 数据集为例:

IMDB 数据集中包括了演员、电影和导演三种不同类型的节点(a),三者组成了一种拥有两种关系的异构网路图(b),在这个网络中我们可以获取两种元路径,包括可以反映共同出演关系的 Movie-Actor-Movie(MAM)和同一个导演关系的 Movie-Director-Movie(MDM)。我们可以看到,每个元路径都具有着不同的语义。所以如果直接将传统的 GNN 应用于异构网络图的话会损失大量的信息。

基于以上分析,在设计异构神经网络时我们需要解决以下几种问题:

  • 异构图:每个节点都具有着不同的属性,如何处理这种复杂的结构信息同时保留特征的多样性;
  • 语义级注意力:不同元路径具有不同的语义信息,如何计算不同任务下这些元路径的重要性;
  • 节点级注意力:元路径上节点有很多邻居,如何评估不同邻居的重要性。

针对以上问题,作者提出了异构图注意力网络(Heterogeneous graph Attention Network,以下简称 HAN)同时考虑了语义级注意力和节点级注意力。其大致流程如下:

  • 首先利用特定类型的变换矩阵将不同节点的特征压缩到同一空间中;
  • 然后基于节点级注意力学习同一路径中节点与其邻居的注意力分数,同时学习不同任务下不同元路径的语义级注意力分数;
  • 最后基于节点级注意力分数和语义级注意力分数综合得到 Node Embedding。

接下来,我们来看具体的模型实现。

2.HAN

首先是模型架构:

可以看到,模型分为三大部分:Node-Level Attention、Semantic-Level Attention 和 Prediction。

2.1 Node-level Attention

我们先来看节点级注意力。

由于节点的异构特点,不同节点都具有不同的特征空间。因此,作者设计了一个特定类型的转换矩阵将不同类型的节点的特征映射到相同的特征空间中:

h_i^{'} = \mathbf{M}_{\phi_i} \cdot h_i \\

这便使得节点级注意力可以处理任意类型的节点。

接着,作者利用 self-attention 去学习不同节点间的权重。给定元路径

\Phi

上的节点对 (i,j),节点级注意力分数为:

e_{ij}^{\Phi} = att_{node}(h_i^{'},h_j^{'};\Phi) \\

其中,

att_{node}

为计算节点级注意力的深度神经网络。对于给定元路径

\Phi

,其路径上的所有节点共享

att_{node}

值得注意的是,

e_{ij}^{\Phi}

是非对称的,这也是异构网络的一大特点。

然后与 GAT 类似,利用 masked attention 为模型提供结构信息,然后得到当前节点 j 与其邻居节点的归一化后的注意力系数:

\alpha_{i j}^{\Phi}=\operatorname{softmax}_{j}\left(e_{i j}^{\Phi}\right)=\frac{\exp \left(\sigma\left(\mathbf{a}_{\Phi}^{\mathrm{T}} \cdot\left[\mathbf{h}_{i}^{\prime} \| \mathbf{h}_{j}^{\prime}\right]\right)\right)}{\sum_{k \in \mathcal{N}_{i}^{\Phi}} \exp \left(\sigma\left(\mathbf{a}_{\Phi}^{\mathrm{T}} \cdot\left[\mathbf{h}_{i}^{\prime} \| \mathbf{h}_{k}^{\prime}\right]\right)\right)} \\

其中,

||

为 concat 操作,

\mathbf{a}_{\Phi}

为元路径

\Phi

下节点级注意力向量。注意,这里的权重系数也是非对称的。

然后便可以得到元路径

\Phi

下节点 Embedding:

\mathbf{z}_{i}^{\Phi}=\sigma\left(\sum_{j \in \mathcal{N}_{i}^{\Phi}} \alpha_{i j}^{\Phi} \cdot \mathbf{h}_{j}^{\prime}\right) \\

当然,为了模型的稳定性,作者使用了使用 multi-head 机制,即重复节点级注意力 K 次,并将所学到的 Embedding 进行连接:

\mathbf{z}_{i}^{\Phi}= ||_{k=1}^K \sigma\left(\sum_{j \in \mathcal{N}_{i}^{\Phi}} \alpha_{i j}^{\Phi} \cdot \mathbf{h}_{j}^{\prime}\right) \\

给定元路径集合

\{\Phi_0,\Phi_1,...,\Phi_P \}

,我们可以得到 P 组特定语义的 Embedding

\{\mathbf{Z}_{\Phi_0},\mathbf{Z}_{\Phi_1},...,\mathbf{Z}_{\Phi_P} \}

2.2 Semantic-level Attention

我们再来看语义级别的注意力。

经过节点级注意力,我们可以得到节点多种类型的语义信息。语义级注意力的目的在于将这些不同语义信息进行融合。

我们将 P 组特定语义的 Embedding 作为输入,根据不同任务可以得到不同权重:

\left(\beta_{\Phi_{0}}, \beta_{\Phi_{1}}, \ldots, \beta_{\Phi_{P}}\right)=att_{sem}\left(\mathbf{Z}_{\Phi_{0}}, \mathbf{Z}_{\Phi_{1}}, \ldots, \mathbf{Z}_{\Phi_{P}}\right)

其中,

att_{sem}

为计算语义级注意力的深度神经网络。

为了计算每一个元路径的重要性,我们首先使用一个线性转换(如:一层 MLP)来转换特点语义的 embedding。然后将学到的特定语义的 embedding 的重要性为语义级注意向量 q 转置的 Embedding 相似度:

w_{\Phi_{i}}=\frac{1}{|\mathcal{V}|} \sum_{i \in \mathcal{V}} \mathbf{q}^{\mathrm{T}} \cdot \tanh \left(\mathbf{W} \cdot \mathbf{z}_{i}^{\Phi}+\mathbf{b}\right) \\

其中,

\mathbf{W}

\mathbf{b}

分别为权重矩阵和偏置向量,

\mathbf{q}

为语义级注意力向量。这些参数对所有的元路径都是共享的。

然后我们进行归一化:

\beta_{\Phi_{i}}=\frac{\exp \left(w_{\Phi_{i}}\right)}{\sum_{i=1}^{P} \exp \left(w_{\Phi_{i}}\right)} \\

加权后得到最终的 Embedding 向量 Z:

\mathbf{Z}=\sum_{i=1}^{P} \beta_{\Phi_{i}} \cdot \mathbf{Z}_{\Phi_{i}} \\

为了更好的了解聚合过程,我们看下图 (b) 部分:

我们可以利用最终得到的 Embedding 来应用于到其他任务中。比如说半监督学习的节点分类任务,我们会最小化交叉熵损失函数:

L=-\sum_{l \in \mathcal{Y}_{L}} \mathbf{Y}^{l} \ln \left(\mathbf{C} \cdot \mathbf{Z}^{l}\right) \\

其中,C 为分类器的参数,

\mathcal{Y}_{L}

为有标签的节点的索引,

\mathbf{Y}^{l}

为有标签的节点的标签,

\mathbf{Z}^{l}

为有标签的节点的 embedding。

HAN 的整体过程如下所示:

2.3 Analysis of the Proposed Model

分析下模型。

  • HAN 可以处理异构网络中多类型节点、关系和丰富的语义信息,信息可以通过不同的关系从一种节点转移到另一种节点。利用 HAN 可以使得不同类型的节点 Embedding 进行相互融合、相互促进和相互升级;
  • HAN 高效且易于实现,注意力的计算可以基于节点和元路径进行并行计算。对于给定的元路径
\Phi

,节点级注意力的时间复杂度为

O\left(V_{\Phi} F_{1} F_{2} K+E_{\Phi} F_{1} K\right)

,其中 K 表示 attention head 的数量,

V_{\Phi}

表示节点数量,

E_{\Phi}

为基于元路径的节点对的数量,

F_1 \; F_2

分别是转换矩阵的行数和列数。总的复杂度与节点数量和基于元路径的节点对的数量呈线性关系;

  • 整个模型的 Attention 是共享的,因此参数的数量不取决于异构图的规模,能够应用于 Inductive 的问题;
  • 该模型对于学习节点 embedding 具有很好的可解释性。基于注意力分数,可以查看哪些节点或元路径对相关任务的贡献度,有助于分析和解释实验结果。

3.Experiment

简单看下实验部分。

首先是数据集:

不同模型在不同数据集和评价指标下的结果,

HAN_{nd}

移除了节点级注意力,节点邻居具有同样的重要性;

HAN_{sem}

移除了语义级注意力,每个元路径都具有相同的重要性,

HAN

是完整的模型。

聚类结果分析:

节点级注意力分析,可以看到相同类型的节点分数更高:

语义级注意力分析,NMI 为聚类结果,可以反映元路径的重要性,可以 NMI 较大的其注意力分数也更大:

可视化结果:

参数敏感性分析:

4.Conclusion

本篇文章针对异构图网络进行分析,指出了异构网络建模的三大难点,在此基础上提出了异构图注意力网络 HAN,该算法利用节点级注意力和语义级注意力分别捕获异构网络背后复杂的结构和丰富的语义信息,并在诸多数据集和任务中取得了不错的成绩。

5.References

  1. Wang X, Ji H, Shi C, et al. Heterogeneous graph attention network[C]//The World Wide Web Conference. 2019: 2022-2032.
  2. 《SFFAI分享 | 纪厚业:Heterogeneous Graph Attention Network》
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 阿泽的学习笔记 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.Introduction
  • 2.HAN
    • 2.1 Node-level Attention
      • 2.2 Semantic-level Attention
        • 2.3 Analysis of the Proposed Model
        • 3.Experiment
        • 4.Conclusion
        • 5.References
        相关产品与服务
        GPU 云服务器
        GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档