Heterogenous Graph Attention Networks 这篇文章发表在WWW 2019会议上,主要是用了注意力机制来进行节点级别聚合和语义级别的聚合,从而提出了HAN模型。
Motivation
异构性和丰富的语义学信息对构建一个适用于异构图的图神经网络带来了挑战。目前虽然自注意力机制取得了很大的进步,但还没有将其应用于对异构图的建模。
Introduction
构建一个适用于异构图的带有注意力机制的图神经网络需要以下要求:
- 异构图与生俱来的异构特性,图中有多种类型的节点和边,不同类型的节点具有不同的属性。如actor具有sex、age和nationality,而movie则没有;
- Semantic-level attention(语义级别注意力):这里有一个概念叫meta-path,元路径,描述了节点类型 V 1 V_1 V1和 V ( l + 1 ) V_{(l+1)} V(l+1)之间的一个组合关系,后面会详细解释。不同的元路径会提取到不同的语义信息。Semantic-level attention的目的是学习到每个meta-path的importance,并赋予权值;
- Node-level attention(节点级别注意力):每个节点很多个meta-path based neighbors,Node-level attention的目的是学习到每个邻居的权值。
Preliminary
G
=
(
V
,
E
)
V
:
o
b
j
e
c
t
s
e
t
;
E
:
l
i
n
k
s
e
t
;
Φ
:
n
o
d
e
t
y
p
e
m
a
p
p
i
n
g
f
u
n
c
t
i
o
n
;
φ
:
l
i
n
k
t
y
p
e
m
a
p
p
i
n
g
f
u
n
c
t
i
o
n
;
\begin{aligned} &G=(V,\mathcal{E})\\ &V:object {\,} set ; {\,}\\ &\mathcal{E}:link {\,}set;\\ &\Phi:node {\,}type {\,}mapping {\,}function{\,};\\ &\varphi: link {\,}type {\,}mapping {\,}function{\,};\\ \end{aligned}
G=(V,E)V:objectset;E:linkset;Φ:nodetypemappingfunction;φ:linktypemappingfunction;
元路径(meta-path):
A
1
→
R
1
A
2
→
R
2
…
→
R
l
A
(
l
+
1
)
A_1 \stackrel{R_1}{\rightarrow}A_2 \stackrel{R_2}{\rightarrow}\ldots\stackrel{R_{l}}{\rightarrow}A_{(l+1)}
A1→R1A2→R2…→RlA(l+1)
表示组合关系:
R
=
R
1
∘
R
2
∘
…
∘
R
l
R=R_1\circ R_2 \circ \ldots\circ R_l
R=R1∘R2∘…∘Rl,比如两个电影之间的关系,MAM,表示movie-actor-movie,两个电影都有同一个演员;MDM,表示movie-director-movie,两个电影是同一个导演。
Model
Node-level Attention
首先,由于不同的节点有不同维度的属性,所以需要将节点的特征映射到同一个空间。
ϕ
i
\phi_i
ϕi表示节点
v
i
v_i
vi的类别,对于该类别,有转换矩阵
M
ϕ
i
M_{\phi_i}
Mϕi,映射过程为:
h
i
′
=
M
ϕ
i
⋅
h
i
h_i'=M_{\phi_i}·h_i
hi′=Mϕi⋅hi
得到所有节点的映射特征后,下面就是计算节点
v
i
v_i
vi与其邻居节点的之间的attention。
假设给定节点对$(i,j),其通过meta-path
Φ
\Phi
Φ相连接(或者说可以认为节点
j
j
j是节点
i
i
i关于meta-path
Φ
\Phi
Φ的邻居节点),那么节点
i
i
i和
j
j
j之间的重要性计算为:
e
i
j
Φ
=
a
t
t
n
o
d
e
(
h
i
′
,
h
;
Φ
)
e_{ij}^\Phi=att_{node}(h_i',h;\Phi)
eijΦ=attnode(hi′,h;Φ)
作者认为,节点
i
i
i和节点
j
j
j之间的重要性与节点
j
j
j和节点
i
i
i之间的重要性完全不同,也就是
e
i
j
Φ
e_{ij}^\Phi
eijΦ是非对称的。
在得到
e
i
j
Φ
e_{ij}^\Phi
eijΦ后,对其进行softmax运算,得到
a
i
j
Φ
a_{ij}^\Phi
aijΦ:
从而得到节点
i
i
i关于meta-path
Φ
\Phi
Φ的嵌入表示:
z
i
Φ
=
σ
(
∑
i
∈
N
i
Φ
α
i
j
Φ
⋅
h
j
′
)
z_i^\Phi=\sigma(\sum_{i∈N_i^\Phi}\alpha_{ij}^\Phi·h_j')
ziΦ=σ(i∈NiΦ∑αijΦ⋅hj′)
论文中也提到了multihead attention来计算node-level的注意力。
Semantic-level Attention
(
β
Φ
0
,
β
Φ
1
,
…
,
β
Φ
P
)
=
a
t
t
s
e
m
(
Z
Φ
0
,
Z
Φ
1
,
…
,
Z
Φ
P
)
(\beta_{\Phi_0},\beta_{\Phi_1},\ldots,\beta_{\Phi_P})=att_{sem}(Z_{\Phi_0},Z_{\Phi_1},\ldots,Z_{\Phi_P})
(βΦ0,βΦ1,…,βΦP)=attsem(ZΦ0,ZΦ1,…,ZΦP)
β
Φ
i
\beta_{\Phi_i}
βΦi表示第
i
i
i个meta-path的权重,计算过程如论文的(7)(8)所示,首先将节点i关于meta-path
Φ
\Phi
Φ的嵌入表示经过一层MLP处理,然后计算与语义层注意力向量
q
T
q^T
qT的相似度,最后做softmax。
得到各个meta-path的权重后,进行加权求和,就得到了综合每个meta-path的embedding后的最终表示:
Z
=
∑
i
=
1
P
β
Φ
i
⋅
Z
Φ
i
Z=\sum_{i=1}^P\beta_{\Phi_i}·Z_{\Phi_i}
Z=i=1∑PβΦi⋅ZΦi
(但我觉得这里的
Z
Z
Z是不是写成
Z
i
Z_i
Zi更合适些)
下图的解释更清楚。