【论文笔记】Heterogeneous Graph Attention Network
原文摘自我自己的博客Link:http://holdenhu.site/2020/paper-noteheterogeneous-graph-attention-network/
Intro
本文提出的HAN(Heterogeneous Graph Attention Network)涉及到节点级别和语义级别。
- 节点级别的Attention主要学习节点及其临近节点间的权重。
- 语义级别的Attention是来学习基于不同meta-path的权重。
Related Work
Graph Neural Network
GNN作为深度学习领域的扩展,用来处理无规则图结构数据。主要的信息传播使用卷积,即GCN,可以分为两类:
- 谱方法用于谱表示的图中,代表作Semi-supervised classification with graph convolutional networks
- 非谱域方法直接在图上进行卷积,对空间上的近邻进行操作。代表作大名鼎鼎的GraphSAGE。
Attention
注意力机制在深度学习中也有广泛的应用,self-attention、soft-attention等。也已经有很多基于图Attention的应用,但是都是同构图的数据。
但2019年随后的一篇Graph Transformer Networks也是在异构图上的工作,详见我的note。
Network Embedding
Network embedding和network representation learning都是在保留图的结构前提下,将网络转换到低位空间(比如推荐系统里常用的user embedding就是压缩到了一维特征值)。而以往的方法比如random walk、matrix factorization都是基于同构图。
Contribution
现实世界的交互数据往往种类繁多,构成的heterogeneous graph network (HIN)往往特别复杂,GNN不能直接应用。这也几乎是首次将attention机制用到处理meta-path和graph embedding里。
- HAN能解决异构图中多种Node、Relation,以及Semantic融合的问题;
- 该模型能够并行计算;
- 整个模型的Attention是共享的;
- 具有很好的可解释性;
Implemention
Preliminary
-
Heterogeneous Graph
图可以表示成:
其中表示节点集,表示边的集合 -
两个映射函数把节点和边映射到他们的种类上去:
-
Meta-path
的表示:
简单来说即是从节点A到节点B所经过的一系列点的序列。 -
Meta-path based Neighbors
:基于一条meta-path的邻居节点。
{{<note “// 默认一个节点的邻居节点包括其自身。”>}}
Structure Overview
-
先由Node-level Aggregating讲同一条元路径Φ上的节点根据不同的attention权重聚合起来(这里是简单的求和+**函数)。
{{<note “// # 注意这里的,node 1、2、3、4都在一条meta path中。这里我觉得有点小小的绘图问题导致歧义。”>}} -
再由Semantic-level Aggregating将不同元路径的输出通过另一个attention权重体制聚合起来(这里聚合方式也是简单的求和)
Node Level Attention
-
Graph中有多种节点,可能对应的hidden feature的最佳表示形式不尽相同。所以先通过转换矩阵将所有节点转换到统一的特征空间。
-
给定一条元路径,以及头节点和尾节点,里包括训练权重计算对于的attention值(有方向)
-
通过softmax计算出节点的权重系数
-
简单地将这条meta-path上邻接的节点的hidden feature根据不同的权重求和,再加上**函数,即得到节点i的更新结果,即结点对于这条路径的embedding。
-
实际考虑到方差大的问题,将Node-level Attention延伸到了
Multihead Attention
来解决这个问题。将不同head的结果concatenate到一起。
Semantic Level Attention
有了来自不同元路径的输出, 为了学习到更综合的信息,我们需要根据meta-path将多种语义信息融合到一起。这里还是使用attention机制将来自元路径的信息有效聚合起来。
{{<note “// 这里β是不同元路径对应的attention重要度参数。”>}}
-
β的计算方法:
- 要学习每条语义的权重,论文首先使用一层的MLP将Semantic embedding进行非线性转换。通过Semantic-level Attention vector 来衡量多条Semantic embedding 间的相似性。
{{<note “// 这里W是MLP的weight matrix,b是bias,q是attention vector。”>}} - 经过Softmax函数,得到语义权重。
- 要学习每条语义的权重,论文首先使用一层的MLP将Semantic embedding进行非线性转换。通过Semantic-level Attention vector 来衡量多条Semantic embedding 间的相似性。
-
最后的汇总得到的embedding也是通过简单的求和:
Training
Loss function:
{{<note “//使用Cross-Entropy将-ln求和”>}}
这里表示有label的结点集;表示真实输出,即label;表示通过本论文方法得出的embedding值;表示分类器,来根据embedding值分类结点。
Evaluation
研究问题:
- Q1:GTN生成的新图结构对学习node representation是否有效?
- Q2:GTN能否根据数据集自适应地产生可变长度的元路径?
- Q3:如何从GTNs生成的邻接矩阵来解释每个元路径的重要性?
Dataset
实验过程用到了DBLP、ACM、IMDB三个数据集。
Baselines
Baseline包括:
-
传统算法
:DeepWalk、Esim、metapath2vec -
GNN经典模型
:GCN、GAT -
本文模型
:HAN of Node、HAN of Semantic、HAN
从分类、聚类的实验结果来看,HAN(Attention of Node + Semantic)基本上都是最优的。