Graph Transformer Networks 论文分享

萝らか妹 提交于 2020-01-19 00:05:55

论文地址:https://arxiv.org/abs/1911.06455
实现代码地址:https://github.com/ seongjunyun/Graph_Transformer_Networks
看分享之前可以把论文读一遍,代码看一看,这样必定会事半功倍!

论文目的是通过构造GTN(Graph Transformer Networks),来学习到异构网络中有效的节点表示。

其他现有方法(GNNs)的缺点:

  1. 对于异构图,由于GNN只用于处理同构图,因此效果不好。(什么是异构图呢?下面这张图清楚的展示了异构图:在一个图中,节点类型数大于1,如author类型,paper类型,venue类型;边的类型数大于1,如author-paper边,paper-venue边;这样存在不同的节点类型和边类型的图就是异构图)

  2. 一种简单的处理方法就是忽略类型,缺点就是无法获取到类型信息。

  3. 手动设计一个meta-path,例如,将异构图转化由meta-path定义的同构图,然后使用GNN进行操作。方法的缺点是:对于每一个问题都需要单独的手工设计meta-path并且最终效果受到选择meta-path的影响meta-path的选择需要对应领域知识

整体框架

  1. 首先明确一条meta-path的表示:
  2. 模型构造

卷积层(划红线部分)

这里通过卷积层可以将通道数为n的A(图中所示)转化为通道数为m的Q。

代码:

A 的size:

W的size:


训练过程中某一次W的值如下图所示,在下图中可以看到,1*1的卷积核给A中每一种类型的边赋予一个权值(或者说是分值),通过这种attention机制来判断边对于最终生成meta-path的影响程度。

GT层

在GT层中,使用了类似于stack的结构(你仔细读论文就会看到)图中一个红色小方块圈起来的就是一个卷积层,直观上看就是一个stack的结构。

代码

解决meta-path长度随层数的增加而增加问题(通过eye函数,添加了一个单位矩阵,这样就可以获得任意长度的meta-path。这里大家仔细看看论文和代码理解):

GTN

代码

gcn_conv:

实验

将模型生成的meta-path同预定义的meta-path相比较:

meta-path有效性

本文的亮点

  1. 不需要领域知识,不需要手动设置meta-path,GTN通过候选邻接矩阵来定义有效的meta-paths。
  2. 可扩展性强。

pdf版本我放在百度网盘了,需要的下载:
链接:
https://pan.baidu.com/s/1WB1Io4fEmIfujEJL6pYlCg 
提取码:ri5t

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!