han通过将异构图转换为由元路径构造的齐次图来学习图表示学习。但是这些方法领域专家手动选择元路径,因此可能无法捕获每个问题所有有意义的关系。同样,元路径的选择也会显着影响性能。与这些方法不同的是GTN可以在异构图上运行并且转化为任务转换图,同时以端到端的方式学习转换图上节点的表示形式。
算法简述
算法名称:GTN(Graph Transformer Network),2019 NeurIPS
传统GNN处理静态同构图,但面对misspecified图和异构图时却无能为力。本文提出的GTN其要点主要有3个:
-
GTN可生成新的图结构,如识别出原图中无相连但实际有潜在用处的边。
-
Graph Transformer Layer基于边类型的软选择和组合,可以生成各种meta-paths。
-
GTN中meta-path自动生成且不依赖领域知识,它比许多预定义meta-path类算法效果好。
前置知识
GTN的输入不要求图结构预先确定。它基于若干候选邻接矩阵生成新的图结构(识别有效meta-path),进而执行卷积操作产出节点的embedding。
1.meta-path
meta-path就是作用于一个节点序列上的组合边类型。如下所示:
meta-path可通过其邻接矩阵进行表示,其形式为组合边中各边对应邻接矩阵乘积。如下式:
2.GCN
GCN网络中第l+1层的节点嵌入可用下式表示:
若为有向图,则邻接矩阵非对称(采用入度对角阵的逆归一化),第l+1层节点嵌入表示为:
常规GCN网络的卷积操作(上式红框内容)是由图结构决定的,是不可学习的。而GTN算法由于图结构是学到的,因此可应用多种卷积操作。
算法原理
GTN:
GTN如何选meta-path:
1.Graph Transformer Layer(下图是聚合一次的meta_pass)
图1 Graph Transformer Layer架构图
第三图和A矩阵加权求和得到第四个图,也可以理解为如图1中绿框所示为一个Graph Transformer Layer。输入有K个通道,每个通道为N*N矩阵,然后经过1*1K的卷积进行处理生成N*N*1的中间态邻接矩阵Q1。而卷积核是由W经softmax处理得到。Q的计算公式如下所示:
更具体地可表示为:
2.meta-path生成
如图1所示,我们得到两个软选择的邻接矩阵Q1,Q2。因此,新生成meta-path图对应的邻接矩阵就是A(1)=Q1*Q2。考虑到数据稳定性,可进行归一化处理。于是乎,给定任意长度l,它的meta-path图对应的邻接矩阵可表示为:
上述过程可参考图2中A(l)的生成过程进行理解(注意:图2中1*1卷积为C通道,因此Q为C通道,A(l)也为C通道)。
(下图是聚合三次的meta_pass,然后加入一个gcn,进行分类)
图2 Graph Transformer Network架构图
如图2如果需要得到的是N*N*C的,前面就要N*N*1的。
但上述meta-path生成方式不能包含原始图中的边信息,也会丢失短meta-path信息。解决此问题可在原始图的邻接矩阵集合中添加单位矩阵E。
3.GTN框架
如图2所示,A(l)有C个通道,可记为C个meta-path图。然后对每个通道应用GCN算法生成对应node embedding,再把C个embedding进行拼接,即可得到node的最终表示。如果下游任务为节点分类,可以再接MLP+softmax进行处理。node的最终embedding计算公式为: