Graph Transformer Networks这篇文章发表于NIPS 2019。
Motivation
最近关于异构图嵌入学习的方法都是设计meta-path,基于meta-path将异构图划分成多个同构图,然后再用传统的GNN处理同构图。这种two-stage的方法要求对于每个问题手动设计meta-paths,后续分析的准确性会因不同的meta-paths而受到影响。所以作者为了防止手动选择meta-paths不利于模型效果,提出了自动学习meta-paths的方法。
Preliminary
G
=
(
V
,
E
)
G=(V,E)
G=(V,E)
f
v
:
V
→
T
v
f_v:V→\mathcal{T}^v
fv:V→Tv,节点类别映射函数,
T
v
\mathcal{T}^v
Tv表示节点
v
v
v的类别,同理有
f
e
:
E
→
T
e
f_e:E→\mathcal{T}^e
fe:E→Te。异构图可以由邻接矩阵集合表示:
{
A
k
}
k
=
1
K
\{A_k\}_{k=1}^K
{Ak}k=1K,其中
A
k
∈
R
N
×
N
A_k∈R^{N×N}
Ak∈RN×N,
A
∈
R
N
×
N
×
K
A∈R^{N×N×K}
A∈RN×N×K。
K
K
K等于边的类别数。
Model
GTN:产生新的图结构,并且基于学习到的图结构,学习节点的表示。
Meta-Path Generation
这个图可以被解释为:将邻接矩阵集合
A
A
A与softmax处理后的非负参数
W
ϕ
i
W_{\phi}^i
Wϕi 进行1×1 conv,得到
Q
i
Q_i
Qi,
Q
i
Q_i
Qi连乘,得到
A
(
1
)
A^{(1)}
A(1)。
具体操作:
Q
=
F
(
A
;
W
Φ
)
=
Φ
(
A
;
s
o
f
t
m
a
x
(
W
Φ
)
)
Q=F(A;W_\Phi)=\Phi(A;softmax(W_\Phi))
Q=F(A;WΦ)=Φ(A;softmax(WΦ))这里的
W
Φ
W_\Phi
WΦ表示卷积层
Φ
\Phi
Φ的参数,
Φ
\Phi
Φ是1×1的卷积,
W
Φ
∈
R
1
×
1
×
K
W_\Phi∈R^{1×1×K}
WΦ∈R1×1×K。这样学习到两个邻接矩阵
Q
1
Q_1
Q1、
Q
2
Q_2
Q2,这两个矩阵相乘
Q
1
Q
2
Q_1Q_2
Q1Q2可以认为是一个meta-path邻接矩阵。如果是长度为
l
l
l的meta-path,那么可以用
Q
1
Q
2
…
Q
l
Q_1Q_2\ldots Q_l
Q1Q2…Ql表示。
由于 Q i Q_i Qi是由 A A A进行1×1卷积得到的,可以看成是个全连接的操作,对于 T e \mathcal{T}^e Te的各个邻接矩阵做全连接映射即可得到 Q i Q_i Qi,即省略中间的 Q Q Q的表示, A P = ( ∑ t 1 ∈ T e α t 1 ( 1 ) A t 1 ) ( ∑ t 2 ∈ T e α t 2 ( 2 ) A t 2 ) … ( ∑ t l ∈ T e α t l ( l ) A t l ) A_{P}=\left(\sum_{t_{1} \in \mathcal{T}^{e}} \alpha_{t_{1}}^{(1)} A_{t_{1}}\right)\left(\sum_{t_{2} \in \mathcal{T}^{e}} \alpha_{t_{2}}^{(2)} A_{t_{2}}\right) \ldots\left(\sum_{t_{l} \in \mathcal{T}^{e}} \alpha_{t_{l}}^{(l)} A_{t_{l}}\right) AP=(t1∈Te∑αt1(1)At1)(t2∈Te∑αt2(2)At2)…(tl∈Te∑αtl(l)Atl)这样得到的 A P A_P AP是 l l l层GT的结果, A P A_P AP表示长度为 l l l的meta-path邻接矩阵。
注:为什么
Q
i
Q_i
Qi可以用
∑
t
i
∈
T
e
α
t
i
(
i
)
A
t
i
\sum_{t_{i} \in \mathcal{T}^{e}} \alpha_{t_i}^{(i)}A_{t_i}
∑ti∈Teαti(i)Ati表示?
可以联想一下1×1卷积操作,这篇文章讲的很好,我觉得这篇论文中的1×1卷积大概可以类比
W
Φ
∈
R
1
×
1
×
K
×
1
W_\Phi∈R^{1×1×K×1}
WΦ∈R1×1×K×1,也就是将K维度的输入,映射到1维度的输出,也就得到了
Q
i
Q_i
Qi,如何映射呢?只需要一个卷积核,这个卷积核有K个参数,与输入加权累加,即可得到输出,所以可以用
∑
t
i
∈
T
e
α
t
i
(
i
)
A
t
i
\sum_{t_{i} \in \mathcal{T}^{e}} \alpha_{t_i}^{(i)}A_{t_i}
∑ti∈Teαti(i)Ati表示。如果
α
t
i
(
i
)
\alpha_{t_i}^{(i)}
αti(i)是one-hot向量,那么相当于从邻接矩阵集合
A
A
A中选择一个邻接矩阵作为
Q
i
Q_i
Qi。
另外,作者还提到,在邻接矩阵集合 A A A中添加一个单位向量,这样做的目的是:由于这种生成 A l A^l Al矩阵(生成长度为 l l l的meta-path)的方法,是在原始边的基础上进行学习,最少也是两个矩阵 Q 1 Q 2 Q_1 Q_2 Q1Q2相乘,这样计算就不包含原始边 Q 1 Q_1 Q1和 Q 2 Q_2 Q2本身了,而加上单位矩阵后,可以得到短meta-path Q 1 Q_1 Q1和 Q 2 Q_2 Q2。
Graph Transformer Networks
为了同时考虑多种meta-paths,1×1卷积的输出层数不再是1,而是C,这样最终得到的
A
l
A^{l}
Al的维度将是
R
N
×
N
×
C
R^{N×N×C}
RN×N×C,表示C种长度为
l
l
l的meta-path的邻接矩阵,最终对该邻接矩阵进行谱域图卷积操作,再在meta-paths种类维度进行concatenation操作,得到整个图的所有节点表示。
Z
=
∣
∣
i
=
1
C
σ
(
D
~
i
−
1
A
~
i
(
l
)
X
W
)
Z={||}_{i=1}^{C} \sigma\left(\tilde{D}_{i}^{-1} \tilde{A}_{i}^{(l)} X W\right)
Z=∣∣i=1Cσ(D~i−1A~i(l)XW)
疑问:这样选取的元路径长度不都是固定的么?如何生成多种长度的元路径呢?