论文题目:Heterogeneous Graph Attention Network
论文来源:WWW 2019
论文链接:https://arxiv.org/abs/1903.07293v1
代码链接:https://github.com/Jhy1993/HAN
关键词:社交网络, 神经网络, 图分析, 注意力机制(Attention)
1 摘要
本文基于层级的注意力机制(hierarchical attention)提出异质的GNN模型HAN(Heterogeneous graph Attention Network)。
包括节点级别(node-level)的注意力和语义级别(semantic-level)的注意力。
节点级别的注意力是学习节点和其基于元路径的邻居之间的重要性,语义级别的注意力是学习不同元路径的重要性。
在3个真实数据集上实验效果超过state-of-the-art,并且注意力机制有很好的可解释性。
2 引言
GAT是使用了注意力机制的GNN,但只能用于同质图,不能用于异质图。本文设计了使用注意力机制并且能用于异质图的HAN模型,需要解决以下几个需求:
(1)图的异质性
不同类型的节点特性不同,它们的特征要映射到不同的特征空间。如何处理复杂的结构信息并且保留多样的特征信息是亟待解决的问题。
(2)语义级别的attention
异质图中不同的元路径显示了不同的语义信息,如何选择最有意义的元路径并且混合这些不同的语义信息是个问题。语义级别的attention就是为不同元路径衡量重要程度,分配不同的注意力。
(3)节点级别的attention
给定一种元路径,每个节点都有多个基于该元路径的邻居,如何区别这些邻居的不同之处,选择信息量最丰富的的邻居是个问题。节点级别的attention就是衡量这些邻居的重要程度,为其分配不同的注意力。
作者提出
作者提出HAN模型解决上述问题,步骤如下:
(1)将节点特征作为输入,使用特定类别的转换矩阵将不同类别的节点特征映射到同一空间中。
(2)使用节点级别的attention为特定元路径下的节点邻居分配注意力。
(3)使用语义级别的attention为不同元路径分配注意力。
(4)学习到上述两个注意力系数后,以分层的方式得到邻居和多条元路径信息的最优组合,使得学习到的节点嵌入能更好地捕捉异质图中的结构信息和丰富的语义信息。最后整个模型使用反向传播优化。
本文的贡献
- 是第一个基于attentino机制研究异质GNN的工作
- 提出HAN模型,结合了节点级别的attention和语义级别的attention,实现了同时考虑接地那和元路径的重要性。模型高效,复杂度是线性的,和基于元路径的节点对的数量成正比,可扩展到大规模的异质图。
- 实验证明了模型有效性,超越state-of-the-art,并且模型有很好的可解释性。
3 定义
异质图、元路径以及基于元路径的邻居的定义不再赘述。要注意的是,节点的基于元路径的邻居包括节点自身。图1是IMDB数据集组成的异质图例子。
一些符号的定义如下:
4 HAN模型
首先提出节点级别的attention以学习到基于元路径的不同邻居的权重,然后将它们聚合得到语义级别的节点嵌入。之后HAN通过语义级别的attentino区别出不同的元路径,得到针对特定任务的特定语义下节点嵌入的最优加权组合。
HAN模型的整体架构如图2所示。
4.1 节点级别的attention
(1)由于节点的异质性,不同类型的节点有不同的特征空间。要将不同类型节点的特征通过转化矩阵,映射到同一特征空间才能进行后续处理。其中,每种类型的节点对应的转换矩阵也是不同的。转换矩阵只基于节点类型不针对于边类型。映射过程如下所示,分别是节点的原始特征和转换后的特征。
(2)然后使用自注意力机制为不同类型的节点学习权重。给定节点对和连接它们的元路径,节点级别的注意力计算如下:
其中,是不对称的,节点对于的重要程度和对于的重要性是不同的,这也保留了异质网中的不对称性。
(3)接着使用softmax进行归一化,得到注意力系数如下式所示。其中表示元路径的节点级别的注意力向量。
(4)使用注意力系数加权聚合邻居节点的特征,得到基于元路径的节点的嵌入:
图3(a)展示了节点级别的聚合过程,针对特定元路径的注意力权重捕获到了特定的一种语义信息。
(5)由于异质图有无标度(scale free)的属性,图数据的方差很大。所以将节点级别的attention扩展成multihead的attention,让训练过程更稳定。也就是将节点级别的attention重复次,将学习到的嵌入拼接起来:
符合幂律分布的网络通常叫做无标度网络(Scale-Free networks)
无标度是指网络缺乏一个特征度值(或平均度值),也就是找不到一个平均度值,让节点均匀地分布在这个平均度值左右。
给定一组元路径,将节点特征输入到节点级别的注意力中,就可以得到组有特定语义信息的节点嵌入:。
4.2 语义级别的attention
使用基于语义级别的anntetion,将上一步基于多个元路径得到的多种语义信息聚合。
节点级别的attention学习到的组特定语义的节点嵌入作为输入,为每个元路径学习到权重:
接下来逐步看一看是怎么做的:
(1)首先,使用非线性的函数(例如 单层MLP)转换特定语义下的节点嵌入。每个元路径的重要程度计算如下:
其中,是权重矩阵,值偏置的矩阵,是语义级别的注意力向量。这些参数对所有的元路径和特定语义的嵌入都是共享的。
(2)得到每个元路径的重要性后,使用softmax进行归一化。在特定任务下的元路径的权重计算如下:
(3)将这些特定语义的嵌入表示加权聚合,得到最终的嵌入表示:
图3(b)展示了语义级别的聚合过程,所有特定语义的嵌入聚合后得到最终的嵌入。
接着就可以将最终的嵌入应用到具体任务中,并设计不同的损失函数。
对于半监督的节点分类任务,最小化已标注的节点标签和预测结果之间的交叉熵函数:
其中,是分类器的参数,是有标签的节点集合,分别是标注节点的标签和嵌入表示。
HAN的整体算法流程如下所示:
模型也可用于inductive learning
5 实验
数据集:DBLP、ACM、IMDB
实验任务:节点分类,节点聚类
对比方法:
- DeepWalk:同质图
- ESim:异质图,元路径权重使用的是HAN学习得到的
- metapath2vec
- HERec
- GCN:同质图
- GAT:同质图
- :HAN的 变形,去掉了节点级别的attention
- :HAN的变形,去掉了语义级别的attention
- HAN
实验结果:
(1)节点分类实验结果
(2)节点聚类实验结果
(3)可视化结果,HAN的类间距离比其他方法的大。
6 总结
文章基于带有层次的attention提出HAN模型,处理异质图的节点嵌入学习问题,并在节点分类、聚类以及可视化任务中取得了很好的效果。
模型的思路简单清晰:
HAN使用了两层attention机制,一个是节点级别的,用于衡量在每种特定元路径下的不同邻居节点对目标节点的重要性;另一个是语义级别的,用于衡量不同元路径对目标节点的重要性。两者之间有层级关系,前者是后者的输入。
进行节点级别的attention时,由于不同类型的节点有不同的特征空间,所以要先将它们映射到同一特征空间才能进行后续处理。考虑到异质图的无标度属性,使用的是multi-head的attention。
进行语义级别的attention时,将上一步的结果作为输入。使用注意力机制将不同语义下的嵌入表示加权聚合,得到最终的嵌入表示。
有点追随GAT的脚步的意思,将attention扩展到了异质图。扩展过来的特别之处就是考虑了两个级别的attention,以适应图的异质性,捕获到更丰富的语义特征。