2019-arXiv-Edge Contraction Pooling for Graph Neural

2019-arXiv-Edge Contraction Pooling for Graph Neural


Paper: https://arxiv.org/abs/1905.10990
Code: https://github.com/pyg-team/pytorch_geometric/tree/master/benchmark/kernel

图神经网络的边缘收缩池化

池化层可以使GNN对抽象的节点组而不是单个节点进行推理。为了缩小这一差距,作者提出了一个依赖于边缘收缩概念的图池层:EdgePool 学习局部和稀疏的硬池转换。实验表明,EdgePool优于其他池化方法,可以很容易地集成到大多数GNN模型中,并提高了节点和图分类的性能。

边缘池层的主要优点是:

  • EdgePool的性能优于其他池化方法。
  • EdgePool可以集成到现有的图形分类架构中。
  • EdgePool可用于节点分类并提高性能。

模型

下图表示作用在蛋白质图中的基于边收缩的池化机制。原始图(最左边)被池化了三次,结果为最右侧的图。在每个步骤中,将要合并的节点周围都有一条随机颜色的虚线。在下一步中,将节点绘制为它们的凸形,填充相同的颜色。

图基础: 图 G = ( V , E ) G = (V, E) G=(V,E),其中每个 v v v 节点都有 f f f 特征 V ∈ R v × f V \in R^{v×f} VRv×f 。边表示为没有权重或特征的有向节点对。

边缘收缩

池化操作基于边缘收缩。收缩边 e = { v i , v j } e = \{v_i, v_j\} e={vivj} 引入新节点 v e v_e ve 和新边,使得 v e v_e ve 与所有节点 v i v_i vi 相邻或 v j v_j vj 已经相邻。 v i v_i vi v j v_j vj 及其所有边将从图形中删除。由于边收缩是可交换的,也可以定义边集收缩。通过构造集合,使得没有两条边入射到同一个节点,可以简单地多次应用单边收缩的朴素概念。

通过合并其节点来选择单个边缘进行收缩。然后,此新节点将连接到合并节点已连接到的所有节点。多次重复此过程,注意不要将新合并的节点包含在其中。

选择边

EdgePool对每条边设计了一个可学习的分数,然后根据边的分数来选择保留还是丢弃所连的节点。边的分数通过对节点特征的线性变换来计算,节点 x i x_{i} xi和节点 x j x_{j} xj所连的边的分数 r i j r_{i j} rij, 如果图中的边还有特征 e i j e_{ij} eij,那么也可以同时将边的特征也融入其中,也就是做了一个简单的拼接:

虽然每个节点只沿着一条边进行收缩,但是每个节点可能有多条可选的边,可将节点邻接的边的分数归一化,使得不同边之间的分数便于相互比较:

计算新节点特征

为了使梯度流入分数,我们使用门控并将组合的节点特征乘以边缘分数:

计算性能

EdgePool 是本地独立的:只要两个节点 n i n_i ni n j n_j nj 及其邻居的节点分数不改变(通过更改感受野内的节点),边缘 e i j e_{ij} eij 的选择就不会改变。因此,不必一次为整个图形计算边缘池。如果图形发生更改,则只需要更新已更改区域的本地池化。

集成边缘要素

更新边缘池以考虑边缘 e i j e_{ij} eij 的边缘特征。为此将它们包含在原始分数计算中(公式(1))。最简单的方法是将它们连接起来:

反池化EdgePool

对于节点分类来说,还是需要一个解池化的操作。对于解池化的操作,只需要对新的节点特征进行还原即可:

实验

Table1 中是与其他不同的池化操作的对比,为了验证EdgePool的性能是否优于其他池化方法。


Table2 是将edgepool技术和其他GNN框架融合之后的效果(图分类),为了验证EdgePool是否可以集成到现有的GNN架构中。

Table3 是与其他GNN模型在节点分类任务上结合的效果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发呆的比目鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值