上一节的HAN表示异构图的Attention Network,通过手动设置Meta-path,然后聚合不同Meta-path下的节点attention,学到节点最终的表示。但是这个方法是手动选择Meta-path的,因此可能无法捕获每个问题的所有有意义的关系。同样,元路径的选择也会显著影响性能

而Graph Transformer Networks是自动聚合Meta-path,同时以端到端的学习方式转换图上的节点表示形式。

几个概念

  • 异构图embeeding 异构图transformer_异构图embeeding:节点的类型
  • 异构图embeeding 异构图transformer_transformer_02:边的类型
  • ACM数据集包含:Paper(3025),Author(5835),Subject(56)个类型,异构图embeeding 异构图transformer_transformer_03,需要注意的是Author和Subject之间没有边的连接, 所以没有AS和SA的关系。
  • 异构图embeeding 异构图transformer_transformer_04:邻接矩阵,例如Paper与Author的邻接矩阵的大小是异构图embeeding 异构图transformer_异构图embeeding_05,而Paper与Subject的邻接矩阵的大小是异构图embeeding 异构图transformer_邻接矩阵_06,因此这两个邻接矩阵的shape大小不同。为了把shape统一到一起,需要将节点组合在一起,形成统一的一个邻接矩阵。如下图所示蓝色的部分就是PA的邻接矩阵,其余的地方数据为0,表示没有边的连接

异构图embeeding 异构图transformer_异构图embeeding_07

  • 特征矩阵: 每个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的

已知异构图embeeding 异构图transformer_异构图embeeding_08,想得到PAP这个Meta-path下,所形成的Paper和Paper之间的邻接矩阵,那么就可以做异构图embeeding 异构图transformer_机器学习_09,也就是meta-path=异构图embeeding 异构图transformer_机器学习_10,矩阵的相乘相当于节点的转移,通过A节点得到P节点之间的连接关系。

反之,如果meta-path=异构图embeeding 异构图transformer_深度学习_11,这样是没有一个具体的物理意义,同理异构图embeeding 异构图transformer_邻接矩阵_12,(在邻接矩阵上相乘得到0矩阵)。

meta-path=异构图embeeding 异构图transformer_深度学习_13得到的和Paper无关,因为我们的任务是做Paper的分类,对结果没有影响。

算法流程

异构图embeeding 异构图transformer_邻接矩阵_14


矩阵A表示多种Meta-path下的邻接矩阵,利用可学习的参数异构图embeeding 异构图transformer_transformer_15做softmax,得到的向量,与矩阵A相乘

例如:异构图embeeding 异构图transformer_邻接矩阵_16,有四个邻接矩阵异构图embeeding 异构图transformer_机器学习_17,创建四个可学习的参数异构图embeeding 异构图transformer_机器学习_18,然后将异构图embeeding 异构图transformer_邻接矩阵_19异构图embeeding 异构图transformer_异构图embeeding_20做一次softmax,然后与邻接矩阵相乘,得到异构图embeeding 异构图transformer_邻接矩阵_21相当于对A矩阵进行了一次加权求和,同理得到异构图embeeding 异构图transformer_深度学习_22矩阵,然后将异构图embeeding 异构图transformer_transformer_23异构图embeeding 异构图transformer_深度学习_22相乘的到异构图embeeding 异构图transformer_transformer_25异构图embeeding 异构图transformer_深度学习_26相当于聚合了一次Meta-path之后的到的邻接矩阵,也就是上面讲的meta-path=异构图embeeding 异构图transformer_深度学习_11

如果要学习任意长度的Meta-path,那么可以学习多个channel,这样就学习出多个Meta-path下的聚合方式,

异构图embeeding 异构图transformer_异构图embeeding_28