论文地址:https://arxiv.org/abs/1911.06455实现代码地址:https://github.com/ seongjunyun/GraphTransformerNetworks看分享之前可以把论文读一遍,代码看一看,这样必定会事半功倍!
论文目的是通过构造GTN(Graph Transformer Networks),来学习到异构网络中有效的节点表示。
其他现有方法(GNNs)的缺点:
- 对于异构图,由于GNN只用于处理同构图,因此效果不好。
- 一种简单的处理方法就是忽略类型,缺点就是无法获取到类型信息。
- 手动设计一个meta-path,例如,将异构图转化由meta-path定义的同构图,然后使用GNN进行操作。方法的缺点是:对于每一个问题都需要单独的手工设计meta-path;并且最终效果受到选择meta-path的影响;meta-path的选择需要对应领域知识。
整体框架
- meta-path的表示:
一条路径:,则= *![](https://img-blog.csdnimg.cn/20200118125818858.png)
卷积层
代码:
A 的size:
W的size:
GT层
在GT层中,使用了类似于stack的结构
代码
解决meta-path长度随层数的增加而增加问题:
GTN
代码
gcn_conv:
实验
将模型生成的meta-path同预定义的meta-path相比较:
meta-path有效性
本文的亮点
- 不需要领域知识,不需要手动设置meta-path,GTN通过候选邻接矩阵来定义有效的meta-paths。
- 可扩展性强。