HANConv
论文名称: Heterogeneous Graph Attention Network
论文链接: https://arxiv.org/pdf/1903.07293.pdf
异构网络的Attention包括节点层面和语义层面的, 具体来说节点层面是指基于metapath节点和它邻居之间的重要性. 而语义层面是指学习不同metapath之间的重要性.
节点层面Attention
由于是异构网络,不同的节点类型有不同的特征,因此对每种类型的节点
ϕ
i
\phi_i
ϕi,节点类型转移矩阵
M
ϕ
i
\text{M}_{\phi_i}
Mϕi将不同的节点类型映射到相同的特征空间.
h
i
′
=
M
ϕ
i
⋅
h
i
(1)
\mathbf{h}_{i}^{\prime}=\mathbf{M}_{\phi_{i}} \cdot \mathbf{h}_{i} \tag{1}
hi′=Mϕi⋅hi(1)
其中,
h
i
h_i
hi和
h
i
′
h_i^{\prime}
hi′是节点
i
i
i的原始特征和映射特征。
针对不同类型节点权重的学习,设在meta-path
Φ
\Phi
Φ下,节点
j
j
j对节点
i
i
i的重要程度可以用
e
i
j
Φ
e_{ij}^{\Phi}
eijΦ表示。
e
i
j
Φ
=
a
t
t
n
o
d
e
(
h
i
′
,
h
j
′
;
Φ
)
(2)
e_{i j}^{\Phi}=att_{node }\left(\mathbf{h}_{i}^{\prime}, \mathbf{h}_{j}^{\prime} ; \Phi\right)\tag{2}
eijΦ=attnode(hi′,hj′;Φ)(2)
a
t
t
n
o
d
e
att_{node}
attnode表示node-level attention。给定meta-path
Φ
\Phi
Φ,
a
t
t
n
o
d
e
att_{node}
attnode对于所有meta-path都是共享的。Eq.(2)显示,给定meta-path
Φ
\Phi
Φ, 节点对
(
i
,
j
)
(i,j)
(i,j)取决于它们的特征,
e
i
j
Φ
e_{i j}^{\Phi}
eijΦ是非对称的,节点
i
i
i对节点
j
j
j的特征重要性和节点
j
j
j对节点
i
i
i的重要性是不一样的。
α
i
j
Φ
=
softmax
j
(
e
i
j
Φ
)
=
exp
(
σ
(
a
Φ
T
⋅
[
h
i
′
∥
h
j
′
]
)
)
∑
k
∈
N
i
Φ
exp
(
σ
(
a
Φ
T
⋅
[
h
i
′
∥
h
k
′
]
)
)
(3)
\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}^{\Phi}} \exp \left(\sigma\left(\mathbf{a}_{\Phi}^{\mathrm{T}} \cdot\left[\mathbf{h}_{i}^{\prime} \| \mathbf{h}_{k}^{\prime}\right]\right)\right)}\tag{3}
αijΦ=softmaxj(eijΦ)=∑k∈NiΦexp(σ(aΦT⋅[hi′∥hk′]))exp(σ(aΦT⋅[hi′∥hj′]))(3)
其中,
N
i
Φ
\mathcal{N}_i^{\Phi}
NiΦ指节点
i
i
i上的邻居,包括节点自己本身。
α
i
j
Φ
\alpha_{ij}^{\Phi}
αijΦ指标准化后的权重系数。
e
i
j
Φ
e_{i j}^{\Phi}
eijΦ表示节点
i
i
i对节点
j
∈
N
i
Φ
j\in\mathcal{N}_i^{\Phi}
j∈NiΦ权重信息。
σ
\sigma
σ表示激活函数,
∥
\|
∥表示concatenate操作,
a
Φ
\text{a}_{\Phi}
aΦ是针对meta-path
Φ
\Phi
Φ节点层面的attention向量。
(
i
,
j
)
(i,j)
(i,j)的权重系数取决于它们的特征。权重系数是非对称的,不仅是因为拼接的顺序不一样还因为他们的邻居(分母)是不同的。
节点
i
i
i对meta-path
Φ
\Phi
Φ的邻居节点特征进行汇总,如下公式:
z
i
Φ
=
σ
(
∑
j
∈
N
i
Φ
α
i
j
Φ
⋅
h
j
′
)
(4)
\mathbf{z}_{i}^{\Phi}=\sigma\left(\sum_{j \in \mathcal{N}_{i}^{\Phi}} \alpha_{i j}^{\Phi} \cdot \mathbf{h}_{j}^{\prime}\right)\tag{4}
ziΦ=σ⎝⎛j∈NiΦ∑αijΦ⋅hj′⎠⎞(4)
其中
z
i
Φ
\text{z}_i^{\Phi}
ziΦ是节点
i
i
i基于meta-path
Φ
\Phi
Φ的节点向量。如下图所示:
每个node会汇总他们的邻居信息。因为注意力的权重 α i j Φ \alpha_{ij}^{\Phi} αijΦ是基于单一meta-path产生的,能够捕捉一种特定的语义信息。
Since heterogeneous graph present the property of scale free, the variance of graph data is quite high.
为保证训练的稳定性,采用多头机制,node-level attention重复K次,然后将它们拼接起来,作为一种特定语义向量:
z
i
Φ
=
∥
k
=
1
K
σ
(
∑
j
∈
N
i
Φ
α
i
j
Φ
⋅
h
j
′
)
(5)
\mathrm{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)\tag{5}
ziΦ=∥k=1Kσ⎝⎛j∈NiΦ∑αijΦ⋅hj′⎠⎞(5)
meta-path集合为
{
Φ
1
,
…
,
Φ
P
}
\left\{\Phi_{1}, \ldots, \Phi_{P}\right\}
{Φ1,…,ΦP}, 结合节点的特征向量,生成P个
{
Z
Φ
1
,
…
,
Z
Φ
P
}
\left\{\mathrm{Z}_{\Phi_{1}}, \ldots, \mathrm{Z}_{\Phi_{P}}\right\}
{ZΦ1,…,ZΦP}节点向量。
语义级别Attention
在异构网路中,每个节点都包含多重语义,采用Attentions机制自动学习不同meta-paths之间的重要性。将P组的node embedding作为输入,学习meta-path
(
β
Φ
1
,
…
,
β
Φ
P
)
\left(\beta_{\Phi_{1}}, \ldots, \beta_{\Phi_{P}}\right)
(βΦ1,…,βΦP)权重:
(
β
Φ
1
,
…
,
β
Φ
P
)
=
att
sem
(
Z
Φ
1
,
…
,
Z
Φ
P
)
(6)
\left(\beta_{\Phi_{1}}, \ldots, \beta_{\Phi_{P}}\right)=\operatorname{att}_{\operatorname{sem}}\left(\mathrm{Z}_{\Phi_{1}}, \ldots, \mathrm{Z}_{\Phi_{P}}\right)\tag{6}
(βΦ1,…,βΦP)=attsem(ZΦ1,…,ZΦP)(6)
其中
a
t
t
s
e
m
att_{sem}
attsem指语义级别的attention。
我们将transformed embedding
和a semantic-level attention vector q
的相似性衡量特定语义级别embedding重要性,对不同语义的node embedding计算平均值。特定的语义重要性标记为
w
Φ
i
w_{\Phi_i}
wΦi:
w
Φ
p
=
1
∣
V
∣
∑
i
∈
V
q
T
⋅
tanh
(
W
⋅
z
i
Φ
p
+
b
)
(7)
w_{\Phi_{p}}=\frac{1}{|\mathcal{V}|} \sum_{i \in \mathcal{V}} \mathrm{q}^{\mathrm{T}} \cdot \tanh \left(\mathbf{W} \cdot \mathbf{z}_{i}^{\Phi_{p}}+\mathbf{b}\right)\tag{7}
wΦp=∣V∣1i∈V∑qT⋅tanh(W⋅ziΦp+b)(7)
其中,
W
W
W是权重矩阵,
b
\text{b}
b是偏置项, q是the semanticlevel attention vector
。不同meta-paths之间的参数是共享的。获取每个meta-path之后,对其进行softmax操作。meta-path
Φ
i
\Phi_i
Φi的权重表示为
β
Φ
i
\beta_{\Phi_i}
βΦi,可以获取标准化后的重要性:
β
Φ
p
=
exp
(
w
Φ
p
)
∑
p
=
1
P
exp
(
w
Φ
p
)
(8)
\beta_{\Phi_{p}}=\frac{\exp \left(w_{\Phi_{p}}\right)}{\sum_{p=1}^{P} \exp \left(w_{\Phi_{p}}\right)}\tag{8}
βΦp=∑p=1Pexp(wΦp)exp(wΦp)(8)
它可以解释为每个meta-path
Φ
p
\Phi_p
Φp的贡献度。
β
Φ
p
\beta_{\Phi_p}
βΦp的值越大,meta-path
Φ
p
\Phi_p
Φp的重要性越高。对于不同的任务meta-path
Φ
p
\Phi_p
Φp会有不同的权重。将不同权重的语义embedding进行融合,得到最后的embedding
Z
Z
Z:
Z
=
∑
p
=
1
P
β
Φ
p
⋅
Z
Φ
p
(9)
\mathbf{Z}=\sum_{p=1}^{P} \beta_{\Phi_{p}} \cdot \mathbf{Z}_{\Phi_{p}}\tag{9}
Z=p=1∑PβΦp⋅ZΦp(9)
为了更好的理解语义汇总过程,我们在Figure 3(b) 给出简单的解释。将所有的语义embedding进行汇总,得到最后的embedding。针对最终embedding的应用,我们可以跟不同任务设计不同的损失函数。例如,针对半监督的节点分类任务,我们最小化交叉熵损失函数:
L
=
−
∑
l
∈
Y
L
Y
l
ln
(
C
⋅
Z
l
)
(10)
L=-\sum_{l \in \mathcal{Y}_{L}} \mathrm{Y}^{l} \ln \left(\mathrm{C} \cdot \mathrm{Z}^{l}\right)\tag{10}
L=−l∈YL∑Ylln(C⋅Zl)(10)
其中,其中
C
C
C是分类器的参数,
Y
L
\mathcal{Y}_L
YL是有标签节点的索引集合,
Y
l
Y^l
Yl和
Z
l
Z^l
Zl是标签和有标签的node的embedding。采用反向传播学习模型的参数。