异构图注意力网络Heterogeneous Graph Attention Network ( HAN )

Posted 好奇小圈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异构图注意力网络Heterogeneous Graph Attention Network ( HAN )相关的知识,希望对你有一定的参考价值。

文章目录


前言

异构图注意力网络Heterogeneous Graph Attention Network ( HAN )学习笔记。


一、基础知识

1.异构图(Heterogeneous Graph)

同构图是指结点类型相同、边类型也相同的图。异构图则是边和结点类型总和大于2的图,如下所示。

2.元路径

3.异构图注意力网络

中心思想:通过元路径生成不同元路径下的同构子图,在不同子图中进行消息传递聚合信息( Node-Level Attention ),最后将各元路径下子图聚合出的向量注意力加权聚合后进行后道传播( Sematic-Level Attention )。

为更清晰的解释原理,以下将逐步拆解。
(1)第一步

异构图如图片左边所示。根据M-A-M和M-D-M两种元路径,将有“介质”A或D连接的M之间视为通路(一阶邻居),可以拆解异构图为图片右边所示的子图。

二、异构图注意力网络

1.结点级别注意力(Node-level Attention)

图取自论文原文

  1. 节点注意力的计算。
    h i ′ = M ϕ i ⋅ h i \\mathbfh_i^\\prime=\\mathbfM_\\phi_i \\cdot \\mathbfh_i hi=Mϕihi
  • i i i为第i个主结点。
  • j j j为第j个邻居结点。
  • M Φ i M_\\Phi_i MΦi 是模型需要训练的线性变化矩阵。 M Φ i M_\\Phi_i MΦi 主要作用是提高拟合能力。
  • h i \\mathbfh_i hi为结点的特征向量。
    α i j Φ = softmax ⁡ j ( e i j Φ ) = exp ⁡ ( σ ( a Φ T ⋅ [ h i ′ ∥ h j ′ ] ) ) ∑ k ∈ N i Φ exp ⁡ ( σ ( a Φ T ⋅ [ h i ′ ∥ h k ′ ] ) ) \\alpha_i j^\\Phi=\\operatornamesoftmax_j\\left(e_i j^\\Phi\\right)=\\frac\\exp \\left(\\sigma\\left(\\mathbfa_\\Phi^\\mathrmT \\cdot\\left[\\mathbfh_i^\\prime \\| \\mathbfh_j^\\prime\\right]\\right)\\right)\\sum_k \\in \\mathcalN_i^\\Phi \\exp \\left(\\sigma\\left(\\mathbfa_\\Phi^\\mathrmT \\cdot\\left[\\mathbfh_i^\\prime \\| \\mathbfh_k^\\prime\\right]\\right)\\right) αijΦ=softmaxj(eijΦ)=kNiΦexp(σ(aΦT[hihk]))exp(σ(aΦT[hihj]))
  • N i Φ N_i^\\Phi NiΦ 代表在元路径 Φ \\Phi Φ 下节点 i i i 的邻居集。如图中左右两个 z i Φ z_i^\\Phi ziΦ周围的结点1、2、3…8
  • a i j Φ a_i j^\\Phi aijΦ 代表在元路径 Φ \\Phi Φ 下邻居节点 j j j 传递消息至主节点 i i i 的注意力。
  • α Φ T \\alpha_\\Phi^T αΦT 是模型需要训练的线性变化矩阵, 更多的作用是调整形状。
  • ∣ ∣ || 为拼接符号。式子中是将两个节点的线性变换后的特征向量拼接起来。
  1. 进行将注意力作为权重的加权求和计算(左边的公式), 或者多头注意力计算(右边的公式)。

z i Φ = σ ( ∑ j ∈ N i Φ α i j Φ ⋅ h j ′ ) z i Φ = ∥ k = 1 K σ ( ∑ j ∈ N i Φ α i j Φ ⋅ h j ′ ) \\mathrmz_i^\\Phi=\\sigma\\left(\\sum_j \\in \\mathcalN_i^\\Phi \\alpha_i j^\\Phi \\cdot \\mathbfh_j^\\prime\\right) \\quad \\mathrmz_i^\\Phi=\\|_k=1^K \\sigma\\left(\\sum_j \\in \\mathcalN_i^\\Phi \\alpha_i j^\\Phi \\cdot \\mathbfh_j^\\prime\\right) ziΦ=σjNiΦαijΦhjziΦ=k=1KσjNiΦαijΦhj

  • z i Φ z_i^\\Phi ziΦ 代表在元路径 Φ \\Phi Φ 下进行一轮消息传递后代表节点 i i i 的特征向量。
  • σ \\sigma σ为激活函数。

2.语义级别注意力(Semantic-level Attention)

  1. 语义级别注意力的计算。
    w Φ p = 1 ∣ V ∣ ∑ i ∈ V q T ⋅ tanh ⁡ ( W ⋅ z i Φ p + b ) w_\\Phi_p=\\frac1|\\mathcalV| \\sum_i \\in \\mathcalV \\mathbfq^\\mathrmT \\cdot \\tanh \\left(\\mathbfW \\cdot \\mathbfz_i^\\Phi_p+\\mathbfb\\right) wΦp=V1iVqTtanh(WziΦp+b)