【论文笔记】Graph U-Nets

Graph U-Nets

原文链接:http://proceedings.mlr.press/v97/gao19a/gao19a.pdf
开源代码:https://github.com/HongyangGao/Graph-U-Nets
Pytorch Geometric版本GUNet: https://github.com/mulinmeng/GraphU-Net

Background

  1. 由于Graph Data的表征学习问题,不能像CNN能够对图像进行Pooling或者Up-sampling操作。由于给定的Images 可以认为是一种节点位于2D表格上Graph的特殊情况,因此很自然地可以将node classification、graph embedding与像素级别的分割任务对应。
  2. 特别是Encoder-Decoder的经典模型U-Nets已经在图像处理领域大放异彩,但是在Graph Data领域中缺乏与之类似的方法。

由于受到U-Net结构的启发,作者希望可以构建类似U-Net的架构,包含三种Block分别是:卷积(convolutions)、池化(pooling)和上采样(up-sampling)操作,推广到图数据。由于网格数据与图像和文本数据不同,graph中的节点没有常规池化操作所需的空间位置排列顺序的信息

为了解决上述问题,作者提出以下方法解决Graph Data适应的问题

  1. graph pooling (gPool) 与 unpooling (gUnpooling)操作
  2. graph U-Nets

gPool与gUnpool互为逆操作,gPool通过对一些节点进行抽样操作,根据它们的标量投影在一个可训练的投影向量上形成一个较小的图;gUnpool通过在对应的gPool层中选择节点的位置,将图恢复到原来的结构,graph U-Nets通过将high-level特征进编码和解码用于network embedding。

Graph U-Nets模型

通过引入graph pooling (gPool) layer 以及graph unpooling (gUnpool) layer提出Graph U-Nets模型,池化层在CNN中能够减少特征图的大小,并且扩大感受野,因此能使模型具有较强的泛化能力和表现水平。K-Max Pooling将输出图中可能来自不同节点的K个最大单元,导致所选节点的连通性不一致。

Graph Pooling Layer

由于在图上的节点并没有位置信息,因此并不能将CNN中的池化操作并能直接使用到图数据。全局池化操作将所有的节点变成单个节点,严重限制了网络的灵活性。作者提出的graph pooling (gPool) layer能够将图数据进行降采样,通过自适应选择一系列节点作为子集来形成一个新的但更小的图。

通过一个可训练的投影向量 p p p,将所有的节点特征投影到 1 D 1D 1D空间,然后执行 K − M a x K-Max KMax p o o l i n g pooling pooling操作选择节点,由于是基于footprint选择每个节点,因此新图中的连通性在各个节点之间是一致的。

给定节点 i i i的特征向量 x i x_i xi x i x_i xi的标量投影到 p p p y i y_i yi y i y_i yi表示节点 i i i投影到方向 p p p所保留的信息 y i = x i p / ∣ ∣ p ∣ ∣ y_i=x_ip/||p|| yi=xip/p,选择投影在 p p p上具有最大标量投影值的节点形成一个新图。

图池化层的分层传播规则为:

y = X l p l / ∣ ∣ p l ∣ ∣ , y=X^lp^l/||p^l||, y=Xlpl/pl,
i d x = r a n k ( y , k ) , idx=rank(y,k), id

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值