异构图神经网络(4)Graph Transformer Networks

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:VTv,节点类别映射函数, T v \mathcal{T}^v Tv表示节点 v v v的类别,同理有 f e : E → T e f_e:E→\mathcal{T}^e fe:ETe。异构图可以由邻接矩阵集合表示: { A k } k = 1 K \{A_k\}_{k=1}^K {Ak}k=1K,其中 A k ∈ R N × N A_k∈R^{N×N} AkRN×N A ∈ R N × N × K A∈R^{N×N×K} ARN×N×K K K K等于边的类别数。

Model

GTN:产生新的图结构,并且基于学习到的图结构,学习节点的表示。

Meta-Path Generation

异构图神经网络(4)Graph Transformer Networks_第1张图片
这个图可以被解释为:将邻接矩阵集合 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 Q1Q2Ql表示。

由于 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=(t1Teαt1(1)At1)(t2Teαt2(2)At2)(tlTeα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} tiTeα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} tiTeα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

异构图神经网络(4)Graph Transformer Networks_第2张图片
为了同时考虑多种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~i1A~i(l)XW)

疑问:这样选取的元路径长度不都是固定的么?如何生成多种长度的元路径呢?

你可能感兴趣的:(图神经网络,神经网络,深度学习,机器学习)