Heterogeneous Graph Attention Network 阅读笔记
摘要
提出了一种基于层次注意的新型异构图神经网络,包括节点级和语义级注意。 具体来说,
- 节点级注意力旨在学习节点与其基于元路径的邻居之间的重要性 (即注意结点的重要性)
- 语义级注意力能够学习不同元路径的重要性 (即注意边的重要性)
通过从节点级别和语义级别的注意力中学习到的重要性,可以充分考虑节点和元路径的重要性。 然后,所提出的模型可以通过以分层方式聚合来自基于元路径的邻居的特征来生成节点嵌入。
引言

-
图的异质性: 异构性是异构图的内在属性,即各种类型的节点和边。 例如,不同类型的节点具有不同的特征,它们的特征可能落入不同的特征空间。 仍然以IMDB为例,演员的特征可能涉及性别、年龄和国籍。 另一方面,电影的特点可能涉及情节和演员。 如何处理如此复杂的结构信息,同时保留多样的特征信息,是一个亟待解决的问题。
-
语义级别的关注: 异构图中涉及不同的有意义和复杂的语义信息,这些信息通常由元路径[32]反映出来。 异构图中的不同元路径可以提取不同的语义信息。 如何为特定任务选择最有意义的元路径并融合语义信息是一个悬而未决的问题[4,19,26]。 语义级别的注意力旨在了解每个元路径的重要性并为它们分配适当的权重。 仍然以 IMDB 为例,《终结者》可以通过 Movie-Actor-Movie(均由施瓦辛格主演)连接到 The Terminator 2,也可以通过 Movie-Year-Movie(均拍摄于 1984 年)连接到 Birdy。 然而,在确定电影《终结者》的类型时,MAM 通常扮演更重要的角色,而不是 MYM。 因此,同等对待不同的元路径是不切实际的,并且会削弱一些有用的元路径提供的语义信息。
-
节点级别的关注: 在异构图中,节点可以通过各种类型的关系连接,例如元路径。 给定一个元路径,每个节点都有许多基于元路径的邻居。 如何区分邻居的细微差异并选择一些信息丰富的邻居是必需的。 对于每个节点,节点级注意力旨在学习基于元路径的邻居的重要性,并为它们分配不同的注意力值。 仍然以 IMDB 为例,当使用元路径 Movie-Director-Moive(电影是同一导演)时,终结者将通过导演詹姆斯卡梅隆连接到泰坦尼克号和终结者 2。 为了更好地将终结者的类型识别为科幻电影,模型应该更多地关注终结者2,而不是泰坦尼克号。因此,如何设计一个能够发现细微之处的模型,邻居的差异并正确学习他们的权重是需要的。
在本文中,我们提出了一种新颖的异构图注意网络,命名为 HAN,它同时考虑了节点级和语义级的注意。 特别是,给定节点特征作为输入,我们使用特定类型的变换矩阵将不同类型的节点特征投影到同一空间中。 然后节点级注意力能够学习节点及其基于元路径的邻居之间的注意力值,而语义级注意力旨在学习异构图中特定任务的不同元路径的注意力值。 基于学习到的两个级别的注意力值,我们的模型可以分层方式获得邻居和多个元路径的最佳组合,这使得学习到的节点嵌入能够更好地捕捉复杂结构和丰富的语义信息。 之后,可以通过端到端的反向传播优化整个模型。
模型概述
预备知识
-
定义一:异质图
-
异质图表示: G = ( V , E ) G=(V,E) G=(V,E), $ V$ 表示结点, $E $ 表示边
-
结点映射函数: ϕ : V − > A \phi:V-> A ϕ:V−>A , A A A 表示结点类型
-
边映射函数: ψ : E − > R \psi:E->R ψ:E−>R , R R R 表示边类型
-
例如图 1(a) 所示,我们构建了一个异构图来对 IMDB (就是图 1 的例子)进行建模。 它由多种类型的对象(演员(A),电影(M),导演(D))和关系(电影和导演之间的拍摄关系,演员和电影之间的角色扮演关系)组成。
在异构图中,两个对象可以通过不同的语义路径连接,这些路径称为元路径。
-
定义二:元路径
-
一条元路径 Φ \Phi Φ 被定义为 A 1 R 1 A 2 R 2 . . . R l A l + 1 A_1 \cfrac{R_1} {} A_2 \cfrac{R_2} {} ...\cfrac{R_l} {} A_{l+1} A1R1A2R2...RlAl+1缩写为 A 1 A 2 . . . A l + 1 A_1A_2...A_{l+1} A1A2...Al+1, R = R 1 。 R 2 。 . . . 。 R l R = R_1。R_2。...。R_l R=R1。R2。...。Rl 表示 $A_1 $ 和 A 2 A_2 A2 之间的复合关系,表示关系上的复合操作。
给定一个元路径Φ,每个节点都存在一组基于元路径的邻居,可以在异构图中揭示不同的结构信息和丰富的语义。
-
-
定义三:基于元路径的邻居结点
-
给定异构图中的节点 $i $和元路径 Φ Φ Φ,节点 $i $的基于元路径的邻居 N i Φ N^Φ_ i NiΦ 被定义为通过元路径 $Φ $与节点 $i $ 连接的节点集。 请注意,节点的邻居包括它自己。
以图1(d)为例,给定元路径Movie-Actor-Movie,m1的基于元路径的邻居包括m1(自身)、m2和m3。 类似地,基于元路径 Movie-Director-Movie 的 m1 的邻居包括 m1 和 m2。 显然,基于元路径的邻居可以利用异构图中结构信息的不同方面。 我们可以通过邻接矩阵序列的乘法来获得基于元路径的邻居.
模型详解
-

- 结点级的注意力
- 由于节点的异质性,不同类型的节点具有不同的特征空间。 因此,对于每种类型的节点(例如,类型为 $φi 的 节 点 ) , 我 们 设 计 了 特 定 类 型 的 变 换 矩 阵 的节点),我们设计了特定类型的变换矩阵 的节点),我们设计了特定类型的变换矩阵 Mφi$,以将不同类型节点的特征投影到同一特征空间中。 投影过程可表示如下:
h i ′ = M ϕ i × h i h_i'=M_{\phi_i}\times h_i hi′=Mϕi×hi
其中$ hi $和 $h’_i $分别是节点 $i $ 的原始特征和投影特征。 通过特定类型的投影操作,节点级注意力可以处理任意类型的节点。
- 利用自注意力来学习各种节点之间的权重。 给定一个通过元路径 $Φ $ 连接的节点对 $ (i, j) , 节 点 级 注 意 力 ,节点级注意力 ,节点级注意力 e^Φ_{ij} $ 可以学习重要性 e Φ i j e^Φ {ij} eΦij, 这意味着节点 $j $ 对节点 $ i $ 的重要性。 基于元路径的节点对 $ (i, j) $ 的重要性可以表述如下:
e i j Φ = a t t n o d e ( h i ′ , h j ′ ; Φ ) e^{\Phi}_{ij} = att_{node}(h'_i,h'_j;\Phi) eijΦ=attnode(hi′,hj′;Φ)
这里 a t t n o d e att_{node} attnode 表示执行节点级注意力的深度神经网络。 给定元路径 Φ Φ Φ,所有基于元路径的节点对共享 a t t n o d e att_{node} attnode。 这是因为在一个元路径下有一些类似的连接模式。 上述方程(2)表明给定元路径 Φ Φ Φ,基于元路径的节点对 ( i , j ) (i,j) (i,j)的权重取决于它们的特征。 请注意, e i j Φ e^Φ_ {ij} eijΦ 是不对称的,即节点$ i 对 节 点 对节点 对节点 j $的重要性和节点 $j $对节点 i i i 的重要性可能相差很大。 它表明节点级注意力可以保持不对称性,这是 异构图的关键属性。
然后我们通过 masked attention 将结构信息注入模型,这意味着我们只计算节点
j
∈
N
i
Φ
j ∈ N^Φ_i
j∈NiΦ 的$ e^Φ_{ij}
,
其
中
,其中
,其中 N ^Φ i $表示节点 $ i $ 的基于元路径的邻居(包括其自身)。 在获得基于元路径的节点对之间的重要性之后,我们通过
s
o
f
t
m
a
x
softmax
softmax函数对其进行归一化以获得权重系数
α
i
j
Φ
α^Φ _{ij }
αijΦ:
α
i
j
Φ
=
s
o
f
t
m
a
x
(
e
i
j
Φ
)
=
e
x
p
(
σ
(
a
Φ
T
⋅
[
h
i
′
∣
∣
h
j
′
]
)
)
∑
k
∈
N
i
P
h
i
e
x
p
(
σ
(
a
Φ
T
)
⋅
[
h
i
′
∣
∣
h
k
′
)
\alpha ^{\Phi}_{ij} = softmax(e^{\Phi}_{ij})=\frac {exp(\sigma(a^T_{\Phi}\cdot[h'_i||h'_j]))}{\sum_{k\in N^{Phi}_i}exp(\sigma(a^T_{\Phi})\cdot[h'_i||h'_k)}
αijΦ=softmax(eijΦ)=∑k∈NiPhiexp(σ(aΦT)⋅[hi′∣∣hk′)exp(σ(aΦT⋅[hi′∣∣hj′]))
其中 $ σ$ 表示激活函数,
∥
∥
∥ 表示连接操作,$a^Φ{ij} $是元路径 $Φ
的
节
点
级
注
意
向
量
。
正
如
我
们
从
方
程
式
中
看
到
的
那
样
。
的节点级注意向量。 正如我们从方程式中看到的那样。
的节点级注意向量。正如我们从方程式中看到的那样。(i,j)$ 的权重系数取决于它们的特征。 另请注意,权重系数 $α^Φ_{ij} $是不对称的,这意味着它们对彼此的贡献不同。 不仅因为分子中的串联顺序,还因为它们有不同的邻居,所以归一化项(分母)会有很大的不同。
然后,节点
i
i
i 的基于元路径的嵌入可以通过邻居的投影特征进行聚合,对应的系数如下:
Z
i
Φ
=
σ
(
∑
j
∈
N
i
Φ
α
i
j
Φ
⋅
h
j
′
)
Z^{\Phi}_i=\sigma(\sum_{j\in N^{\Phi}_i}\alpha^{\Phi}_{ij}\cdot h'_j)
ZiΦ=σ(j∈NiΦ∑αijΦ⋅hj′)

其中 z i Φ z^Φ_i ziΦ 是节点 i 对于元路径 Φ 的学习嵌入。 为了更好地理解节点级的聚合过程,我们还在图 3(a)中进行了简要说明。 每个节点嵌入都由其邻居聚合。 由于注意力权重 α i j Φ α^Φ_{ij} αijΦ 是为单个元路径生成的,因此它是语义特定的并且能够捕获一种语义信息。
由于异构图具有无标度的特性,图数据的方差很大。 为了应对上述挑战,我们将节点级注意力扩展到多头注意力,以便训练过程更加稳定。 具体来说,我们重复节点级注意力
K
K
K 次,并将学习到的嵌入连接为特定于语义的嵌入:
Z
i
ϕ
=
∣
∣
K
=
1
K
σ
(
∑
j
∈
N
i
Φ
α
i
j
Φ
⋅
h
j
′
)
Z^{\phi}_i={||}^K_{K=1}\sigma(\sum_{j \in N^{\Phi}_i} \alpha^{\Phi}_{ij}\cdot h'_j)
Ziϕ=∣∣K=1Kσ(j∈NiΦ∑αijΦ⋅hj′)
给定元路径集
{
Φ
0
,
Φ
1
,
.
.
.
,
Φ
P
}
\{Φ_0, Φ_1, . . . , Φ_P \}
{Φ0,Φ1,...,ΦP},在将节点特征输入节点级注意力后,我们可以获得
P
P
P 组语义特定节点嵌入,表示为
{
Z
Φ
0
,
Z
Φ
1
,
.
.
.
,
Z
Φ
P
}
\{Z_{Φ0} , Z_{Φ1} , . . . , Z_{ΦP} \}
{ZΦ0,ZΦ1,...,ZΦP}
如果每次都是基于元路径聚合,是否只是聚合到二跳的信息?迭代多层应该能聚合到更远
- 语义级的注意力
通常,异构图中的每个节点都包含多种语义信息,语义特定的节点嵌入只能从一个方面反映节点。 为了学习更全面的节点嵌入,我们需要融合元路径可以揭示的多种语义。 为了解决异构图中元路径选择和语义融合的挑战,我们提出了一种新的语义级注意来自动学习不同元路径的重要性并将它们融合到特定任务中。 以从节点级注意力学习的 P 组语义特定节点嵌入作为输入,每个元路径的学习权重
(
β
Φ
0
,
β
Φ
1
,
.
.
.
,
β
Φ
P
)
(β_{Φ0},β_{Φ1},...,β_{ΦP})
(βΦ0,βΦ1,...,βΦP)可以表示如下:
(
β
Φ
0
,
β
Φ
1
,
.
.
.
,
β
Φ
P
,
)
=
a
t
t
s
e
m
(
Z
Φ
0
,
Z
Φ
1
,
.
.
.
,
Z
Φ
P
)
(\beta_{\Phi_0},\beta_{\Phi_1},...,\beta_{\Phi_P},)=att_{sem}(Z_{\Phi_0},Z_{\Phi_1},...,Z_{\Phi_P})
(βΦ0,βΦ1,...,βΦP,)=attsem(ZΦ0,ZΦ1,...,ZΦP)
这里
a
t
t
s
e
m
att_{sem}
attsem 表示执行语义级注意的深度神经网络。 它表明语义级注意力可以捕获异构图背后的各种类型的语义信息。
为了了解每个元路径的重要性,我们首先通过非线性变换(例如,一层 MLP)来变换语义特定的嵌入。 然后,我们将语义特定嵌入的重要性衡量为转换嵌入与语义级注意向量 q 的相似性。 此外,我们平均了所有语义特定节点嵌入的重要性,这可以解释为每个元路径的重要性。 每个元路径的重要性,表示为
w
i
Φ
w^Φ_i
wiΦ,如下所示:
w
Φ
i
=
1
∣
V
∣
∑
i
∈
V
q
T
⋅
t
a
n
h
(
W
⋅
z
i
Φ
+
b
)
w_{\Phi_i}=\frac 1{|V|}\sum_{i \in V}q^T\cdot tanh(W\cdot z^{\Phi}_i + b)
wΦi=∣V∣1i∈V∑qT⋅tanh(W⋅ziΦ+b)
其中 W 是权重矩阵,b 是偏置向量,q 是语义级注意向量。 请注意,为了进行有意义的比较,所有元路径和语义特定的嵌入都共享上述所有参数。 在获得每个元路径的重要性后,我们通过
s
o
f
t
m
a
x
softmax
softmax函数对其进行归一化。 元路径
Φ
i
Φ_i
Φi的权重,表示为
β
Φ
i
β_{Φi}
βΦi,可以通过使用
s
o
f
t
m
a
x
softmax
softmax函数对所有元路径的上述重要性进行归一化来获得:
β
Φ
i
=
e
x
p
(
w
Φ
i
)
∑
i
=
1
P
e
x
p
(
w
Φ
i
)
\beta_{\Phi_i}=\frac {exp(w_{\Phi_i})}{\sum_{i=1}^{P}exp(w_{\Phi_i})}
βΦi=∑i=1Pexp(wΦi)exp(wΦi)
这可以解释为元路径
Φ
i
Φ_i
Φi 对特定任务的贡献。 显然,
β
Φ
i
β_{Φi}
βΦi越高,元路径
Φ
i
Φ_i
Φi越重要。 请注意,对于不同的任务,元路径
Φ
i
Φ_i
Φi 可能具有不同的权重。 将学习到的权重作为系数,我们可以融合这些语义特定的嵌入以获得最终的嵌入 Z,如下所示:
Z
=
∑
i
=
1
P
β
Φ
i
⋅
Z
Φ
i
Z=\sum_{i=1}^P\beta_{\Phi_i}\cdot Z_{\Phi_i}
Z=i=1∑PβΦi⋅ZΦi
为了更好地理解语义级的聚合过程,我们还在图 3(b)中进行了简要说明。 最终的嵌入由所有特定于语义的嵌入聚合而成。 然后我们可以将最终的嵌入应用到特定的任务中,并设计不同的损失函数。 对于半监督节点分类,我们可以最小化真实和预测之间所有标记节点的交叉熵:
L
=
−
∑
l
∈
y
L
Y
l
l
n
(
C
⋅
Z
l
)
L=-\sum_{l\in y_L}Y^lln(C\cdot Z^l)
L=−l∈yL∑Ylln(C⋅Zl)
其中
C
C
C 是分类器的参数,
y
L
y_L
yL 是具有标签的节点索引集,
Y
l
Y^l
Yl 和
Z
l
Z^l
Zl 是标签节点的标签和嵌入。 在标记数据的指导下,我们可以通过反向传播优化提出的模型并学习节点的嵌入。 HAN 的整体流程如算法1所示:
