【论文笔记】Heterogeneous Graph Attention Network

Heterogeneous题目:《Heterogeneous GraphGraph AttentionAttention NetworkNetwork》 ????
Xiao作者:Xiao WangWang
WWW2019来源:WWW2019
源码:github addr
Hu笔记:Hu HengchangHengchang

原文摘自我自己的博客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,可以分为两类:

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
    图可以表示成:
    G=(V,E) \mathcal{G}=(\mathcal{V}, \mathcal{E})
    其中V\mathcal{V}表示节点集,E\mathcal{E}表示边的集合

  • 两个映射函数把节点和边映射到他们的种类上去:
    ϕ:VH \phi: \mathcal{V} \rightarrow \mathscr{H}
    ψ:ER \psi: \mathcal{E} \rightarrow \mathcal{R}

  • Meta-path的表示:
    A1R1A2R2RlAl+1 A_{1} \stackrel{R_{1}}{\longrightarrow} A_{2} \stackrel{R_{2}}{\longrightarrow} \cdots \stackrel{R_{l}}{\longrightarrow} A_{l+1}
    简单来说即是从节点A到节点B所经过的一系列点的序列。

  • Meta-path based Neighbors:基于一条meta-path的邻居节点。
    {{<note “// 默认一个节点的邻居节点包括其自身。”>}}

Structure Overview

【论文笔记】Heterogeneous Graph Attention Network

  • 先由Node-level Aggregating讲同一条元路径Φ上的节点根据不同的attention权重聚合起来(这里是简单的求和+**函数)。
    {{<note “// # 注意这里的,node 1、2、3、4都在一条meta path中。这里我觉得有点小小的绘图问题导致歧义。”>}}

  • 再由Semantic-level Aggregating将不同元路径的输出通过另一个attention权重*聚合起来(这里聚合方式也是简单的求和)

Node Level Attention

  1. Graph中有多种节点,可能对应的hidden feature的最佳表示形式不尽相同。所以先通过转换矩阵将所有节点转换到统一的特征空间。
    hi=Mϕihi \mathbf{h_i}^{\prime} = \mathbf{M}_{\phi_i} \cdot \mathbf{h}_i

  2. 给定一条元路径ΦΦ,以及头节点ii和尾节点jjattnodeatt_node里包括训练权重计算jj对于ii的attention值(有方向)
    eijΦ=attnode(hi,hj;Φ) e_{i j}^{\Phi}=a t t_{n o d e}\left(\mathbf{h}_{i}^{\prime}, \mathbf{h}_{j}^{\prime} ; \Phi\right)

  3. 通过softmax计算出节点jj的权重系数
    αijΦ=softmaxj(eijΦ)=exp(σ(aΦT[hihj]))kNiφexp(σ(aΦT[hihk])) \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}^{\varphi}} \exp \left(\sigma\left(\mathbf{a}_{\Phi}^{\mathrm{T}} \cdot\left[\mathbf{h}_{i}^{\prime} \| \mathbf{h}_{k}^{\prime}\right]\right)\right)}

  4. 简单地将ΦΦ这条meta-path上邻接的节点的hidden feature根据不同的权重求和,再加上**函数,即得到节点i的更新结果ziΦz_i^Φ,即结点ii对于ΦΦ这条路径的embedding。
    ziΦ=σ(jNiΦαijΦhj) \mathbf{z_i}^{\Phi} = \sigma\left(\sum_{j \in \mathcal{N}_{i}^{\Phi}} \alpha_{i j}^{\Phi} \cdot \mathbf{h}_{j}^{\prime}\right)

  5. 实际考虑到方差大的问题,将Node-level Attention延伸到了Multihead Attention来解决这个问题。将不同head的结果concatenate到一起。
    ziΦ=k=1Kσ(jNiΦαijΦhj) \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)

Semantic Level Attention

有了来自不同元路径的输出ziΦz_i^Φ, 为了学习到更综合的信息,我们需要根据meta-path将多种语义信息融合到一起。这里还是使用attention机制将来自元路径的信息有效聚合起来。
(βΦ0,βΦ1,,βΦP)=attsem(ZΦ0,ZΦ1,,ZΦP) \left(\beta_{\Phi_{0}}, \beta_{\Phi_{1}}, \ldots, \beta_{\Phi_{P}}\right)=\operatorname{att}_{\operatorname{sem}}\left(Z_{\Phi_{0}}, Z_{\Phi_{1}}, \ldots, Z_{\Phi_{P}}\right)
{{<note “// 这里β是不同元路径对应的attention重要度参数。”>}}

  • β的计算方法:

    1. 要学习每条语义的权重,论文首先使用一层的MLP将Semantic embedding进行非线性转换。通过Semantic-level Attention vector qq 来衡量多条Semantic embedding 间的相似性。
      wΦi=1ViVqTtanh(WziΦ+b) 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)
      {{<note “// 这里W是MLP的weight matrix,b是bias,q是attention vector。”>}}
    2. ​ 经过Softmax函数,得到语义权重。
      βΦi=exp(wΦi)i=1Pexp(wΦi) \beta_{\Phi_{i}}=\frac{\exp \left(w_{\Phi_{i}}\right)}{\sum_{i=1}^{P} \exp \left(w_{\Phi_{i}}\right)}
  • 最后的汇总得到的embedding也是通过简单的求和
    Z=i=1PβΦiZΦi \mathrm{Z}=\sum_{i=1}^{P} \beta_{\Phi_{i}} \cdot \mathrm{Z}_{\Phi_{i}}

Training

Loss function:

{{<note “//使用Cross-Entropy将-ln求和”>}}
L=lYLYlln(CZl) L=-\sum_{l \in \mathcal{Y}_{L}} \mathrm{Y}^{l} \ln \left(\mathrm{C} \cdot \mathrm{Z}^{l}\right)
这里YL\mathcal{Y}_{L}表示有label的结点集;Yl\mathrm{Y}^{l}表示真实输出,即label;Zl\mathrm{Z}^{l}表示通过本论文方法得出的embedding值;CC表示分类器,来根据embedding值分类结点。

Evaluation


研究问题:

  • Q1:GTN生成的新图结构对学习node representation是否有效?
  • Q2:GTN能否根据数据集自适应地产生可变长度的元路径?
  • Q3:如何从GTNs生成的邻接矩阵来解释每个元路径的重要性?

Dataset

​ 实验过程用到了DBLP、ACM、IMDB三个数据集。
【论文笔记】Heterogeneous Graph Attention Network

Baselines

​Baseline包括:

  • 传统算法:DeepWalk、Esim、metapath2vec
  • GNN经典模型:GCN、GAT
  • 本文模型:HAN of Node、HAN of Semantic、HAN
    【论文笔记】Heterogeneous Graph Attention Network
    从分类、聚类的实验结果来看,HAN(Attention of Node + Semantic)基本上都是最优的。

 

Process Pseudocode


【论文笔记】Heterogeneous Graph Attention Network