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

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

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

1. 对于异构图,由于GNN只用于处理同构图,因此效果不好。

![](https://img2018.cnblogs.com/blog/1277792/202001/1277792-20200118125733747-960185554.png)

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

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

### 整体框架

1. meta-path的表示:

一条路径:![](https://img2018.cnblogs.com/blog/1277792/202001/1277792-20200118125734233-779406818.png),则![](https://img2018.cnblogs.com/blog/1277792/202001/1277792-20200118125734433-1593186190.png)= ![](https://img2018.cnblogs.com/blog/1277792/202001/1277792-20200118125734617-1222163259.png)*![](https://img2018.cnblogs.com/blog/1277792/202001/1277792-20200118125734810-596595059.png)

#### 卷积层

![](https://img2018.cnblogs.com/blog/1277792/202001/1277792-20200118125735076-1449969793.png)

代码:

A 的size:![](https://img2018.cnblogs.com/blog/1277792/202001/1277792-20200118125735301-918259361.png)

W的size:![](https://img2018.cnblogs.com/blog/1277792/202001/1277792-20200118125735499-300814642.png)

![](https://img2018.cnblogs.com/blog/1277792/202001/1277792-20200118125736040-400755517.png)

![](https://img2018.cnblogs.com/blog/1277792/202001/1277792-20200118125736289-29485225.png)

![](https://img2018.cnblogs.com/blog/1277792/202001/1277792-20200118125736474-351259532.png)

#### GT层

在GT层中,使用了类似于stack的结构

![](https://img2018.cnblogs.com/blog/1277792/202001/1277792-20200118125736970-37475547.png)

代码

![](https://img2018.cnblogs.com/blog/1277792/202001/1277792-20200118125738868-1955849713.png)

解决meta-path长度随层数的增加而增加问题:![](https://img2018.cnblogs.com/blog/1277792/202001/1277792-20200118125739391-972820468.png)

### GTN

![](https://img2018.cnblogs.com/blog/1277792/202001/1277792-20200118125739955-1353487658.png)

代码

![](https://img2018.cnblogs.com/blog/1277792/202001/1277792-20200118125740438-944463192.png)

![](https://img2018.cnblogs.com/blog/1277792/202001/1277792-20200118125741887-2065348801.png)

gcn_conv:

![](https://img2018.cnblogs.com/blog/1277792/202001/1277792-20200118125742427-1495904961.png)

#### 实验

![](https://img2018.cnblogs.com/blog/1277792/202001/1277792-20200118125743197-21888419.png)

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

![](https://img2018.cnblogs.com/blog/1277792/202001/1277792-20200118125743829-1002567197.png)

meta-path有效性

![](https://img2018.cnblogs.com/blog/1277792/202001/1277792-20200118125745951-831401986.png)

### 本文的亮点

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

最新文章

  1. 用php脚本给html中引用的js和css路径打上版本
  2. GITHUB使用简介
  3. javascript + jquery函数大全
  4. jmeter 使用URL重写处理用户会话
  5. 关于arguments对象以及函数的柯里化;
  6. 使用贝赛尔曲线画扇形、圆形、弧线、多边形,实现App下载时的动画效果demo
  7. Steps
  8. bootstrap简章
  9. ORACLE 计算节假日
  10. Union - Find 、 Adjacency list 、 Topological sorting Template
  11. CodeForces 622C Not Equal on a Segment
  12. mybatis 详解(五)------动态SQL
  13. BASIC-3 字母图形 循环 字符串
  14. 移动端轮播图vue-awesome-swiper
  15. Reactjs-JQuery-Omi-Extjs-Angularjs对比
  16. 有pom.xml文件但是无法用maven构建问题
  17. linq时间筛选以及list时间筛选
  18. python生成随机整数
  19. java集合的实现细节--ArrayList和LinkedList
  20. Redis 如何保持和MySQL数据一致【一】

热门文章

  1. Python--day60--一个简单(不完整)的web框架
  2. Vue 子组件传父组件
  3. H3C 路由器单跳操作
  4. H3C DHCP中继工作原理
  5. addEventListener() 方法,事件监听(去哪儿网用到过)
  6. Jquery xhr2跨域
  7. Maven工程
  8. 写时拷贝COW(copy-on-write)
  9. 第二阶段:2.商业需求文档MRD:1.M版本管理
  10. RecursiveTask和RecursiveAction的使用总结