上一节的HAN表示异构图的Attention Network,通过手动设置Meta-path,然后聚合不同Meta-path下的节点attention,学到节点最终的表示。但是这个方法是手动选择Meta-path的,因此可能无法捕获每个问题的所有有意义的关系。同样,元路径的选择也会显著影响性能
而Graph Transformer Networks是自动聚合Meta-path,同时以端到端的学习方式转换图上的节点表示形式。
几个概念
:节点的类型
:边的类型
- ACM数据集包含:Paper(3025),Author(5835),Subject(56)个类型,
,需要注意的是Author和Subject之间没有边的连接, 所以没有AS和SA的关系。
:邻接矩阵,例如Paper与Author的邻接矩阵的大小是
,而Paper与Subject的邻接矩阵的大小是
,因此这两个邻接矩阵的shape大小不同。为了把shape统一到一起,需要将节点组合在一起,形成统一的一个邻接矩阵。如下图所示蓝色的部分就是PA的邻接矩阵,其余的地方数据为0,表示没有边的连接

- 特征矩阵: 每个Paper都有自己的特征,例如
Paper1 = [1,0,0,0,1,1,0,....,0,0],Paper2=[1,1,0,1,0,1,0,.....,0,0],而Author的特征是将对应的Paper特征拼在一起,例如Author1 = [Paper1, Paper2]=[1,1,0,1,0,1,0,....,0,0],同理Subject也是将对应的Paper拼在一起,例如Subject1 = [Paper1, Paper3] = [1,1,0,1,1,1,0...,0,0]。需要注意的是,这里并不一定是要拼接在一起,可以做均值Pooling、或者max pooling、或者求和,可以根据自己的任务来选择。
GTN如何组合多元的Meta-path的
已知,想得到
PAP这个Meta-path下,所形成的Paper和Paper之间的邻接矩阵,那么就可以做,也就是meta-path=
,矩阵的相乘相当于节点的转移,通过A节点得到P节点之间的连接关系。
反之,如果meta-path=,这样是没有一个具体的物理意义,同理
,(在邻接矩阵上相乘得到0矩阵)。
meta-path=得到的和Paper无关,因为我们的任务是做Paper的分类,对结果没有影响。
算法流程

矩阵A表示多种Meta-path下的邻接矩阵,利用可学习的参数做softmax,得到的向量,与矩阵A相乘
例如:,有四个邻接矩阵
,创建四个可学习的参数
,然后将
和
做一次softmax,然后与邻接矩阵相乘,得到
相当于对A矩阵进行了一次加权求和,同理得到
矩阵,然后将
与
相乘的到
,
相当于聚合了一次Meta-path之后的到的邻接矩阵,也就是上面讲的meta-path=
如果要学习任意长度的Meta-path,那么可以学习多个channel,这样就学习出多个Meta-path下的聚合方式,

















