前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >图神经网络中的Graph Pooling

图神经网络中的Graph Pooling

作者头像
zenRRan
发布2020-11-19 14:28:55
2.4K0
发布2020-11-19 14:28:55
举报

来自 | CSDN博客 作者 | 木盏

https://blog.csdn.net/leviopku/article/details/106949616

编辑 | 深度学习这件小事公众号

本文仅作学术交流,如有侵权,请联系后台删除。

前言

GNN/GCN在非欧数据中的应用具有极大的挖掘价值。通常,GNN的应用分为两种:1,节点分类;2,图分类。

节点分类可以用在点云分割,社交网络节点分类,推荐算法等等。

图分类可以用在姿态估计,蛋白质分类等等,当然,也可以用在图像分类。

对于节点分类而言,图结构在forward阶段是不会改变的,改变的只是节点的隐藏层属性。如下:

对于图分类而言,图结构在前传的时候会downsize,最后聚合成一个点的feature再做MLP:

截图来自论文:https://arxiv.org/abs/1901.00596

图分类所用的downsize便是本文的主角graph pooling。--终于引出来了..

Graph Pooling

GNN/GCN 最先火的应用是在Node classification,然后先富带动后富,Graph classification也越来越多人研究。所以,Graph Pooling的研究其实是起步比较晚的。

Pooling就是池化操作,熟悉CNN的朋友都知道Pooling只是对特征图的downsampling。不熟悉CNN的朋友请按ctrl+w。对图像的Pooling非常简单,只需给定步长和池化类型就能做。但是Graph pooling,会受限于非欧的数据结构,而不能简单地操作。

简而言之,graph pooling就是要对graph进行合理化的downsize。

目前有三大类方法进行graph pooling:

1. Hard rule

hard rule很简单,因为Graph structure是已知的,可以预先规定池化节点:

如图,咱们预先规定[1,2,3,5]节点,[6,7]节点和[4]节点合并,得到新的a,b,c节点。这便是硬规定下的池化方法。比较好理解。

2. Graph coarsening

图粗略化是现在的主流可学习池化方法之一。

代表论文:DiffPool

论文链接:https://arxiv.org/abs/1806.08804

这种方法是hard rule的trainable版本,先对节点进行聚类,然后合成一个超级节点,以达到池化效果。

思想流程大概是:soft clustering -> super node -> coarsening

3. Node selection

节点选择就是选择一些重要节点去代替原图:

代表论文:self-attention graph pooling

论文链接:https://arxiv.org/pdf/1904.08082.pdf

这个self-attention类似于分析节点的重要性,方法类似节点分类的操作。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-11-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 深度学习自然语言处理 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • Graph Pooling
    • 1. Hard rule
      • 2. Graph coarsening
        • 3. Node selection
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档