全连接的图卷积网络(GCN)和self-attention这些机制的区别与联系

本文深入探讨了全连接图卷积网络(GCN)和Self-attention机制的联系与区别,指出两者皆属消息传递(MessagePassing)框架。GCN通过节点邻居传播信息,而Self-attention则基于Query的Key-Value进行传播。分析了两种机制在消息构建、聚合及变换上的对应关系。
转载声明:如有侵犯作者权利,将立即删除本文。

文章来源:知乎问题—“”请问全连接的图卷积网络(GCN)和self-attention这些机制有什么区别联系吗?”
文章作者:我爱吃三文鱼
原回答链接

首先结论是大部分GCNSelf-attention都属于Message Passing(消息传递)。GCN中的Message从节点的邻居节点传播来,Self-attentionMessageQueryKey-Value传播来。

message passing

Message Passing [4]

先看看什么是Message Passing。我们知道在实现和设计GCN的时候很多时候都是采用Message Passing的框架[3],其思想是把每个节点的领域的特征信息传递到节点上。在这里举例描述一个节点 i i i在第 k k kGCN卷积的过程:

1)把节点 i i i的每一个邻居j与该节点的特征经过函数变换后形成一条Message(对应公示里函数 ϕ \phi ϕ里面的操作);

2)经过一个Permutation Invariant(置换不变性)函数把该节点领域的所有Message聚合在一起(对应函数 □ \square );

3)再经过函数 γ \gamma γ把聚合的领域信息和节点特征做一次函数变化,得到该节点在第 k k k层图卷积后的特征 X i X_i Xi


那么Self-attention是否也落在Message Passing的框架内呢?

我们先回顾一下Self-attention一般是怎么计算的[2],这里举例一个Query i i i的经过attention的计算过程:

1】Query i i i的特征 x i x_i xi会和每一个Key j j j的特征计算一个相似度 e i j e_{ij} eij
e_ij
2】得到Query i i i与所有Key的相似度后经过SoftMax得到Attention coefficient(注意力系数) α i j \alpha_{ij} αij
alpha_ij
3】通过Attention coefficient加权Value j j j计算出Query i i i最后的输出 z j z_j zj
z_j
好了,那么我们来看看它们之间的对应关系。首先结论是Self-attention计算中的1】2】3】是对应Message Passing里的1)2)的。

如果用Message Passing来实现Self-attention,那么我们可以这么一一对应:

  1. 每个Key-Value j j j可以看作是Query i i i的邻居;

  2. 相似度和注意力系数的计算和最后3】中Value j j j与注意力系数( α i j \alpha_{ij} αij)相乘的操作可以对应为Message Passing中第一步构成Message的过程;

  3. 最后Self-attention的求和运算对应Message Passing中第二步的Permutation Invariant函数,也就是说这里聚合领域信息的过程是通过QueryKey-Value聚合而来。

那么也就是说,Attention的过程是把每一个Query和所有Key相连得到一个 Complete Bipartite Graph - 完全二分图 (左边是Query右边的Key-Value),然后在这图上去对所有Query节点做Message Passing。当然QueryKey-Value一样的Self-attention就是在一般的 Complete Graph完全图 上做Message Passing了。
完全二分图

Complete Bipartite Graph

看到这里大家可能疑问那么为什么Self attention里面没有了Message Passing中第三步把聚合的信息和节点信息经过 γ \gamma γ函数做变换的过程呢。

是的,如果没有了这一步很可能学习过程中Query的原来特征会丢失,其实这一步在Attention is all your need[1]里还是有的,不信你看:
Attention is all you nedd
在每一次经过Self-Attention之后基本上都是有Skip connection+MLP的,这里某种程度上对应了Message Passing里的 γ \gamma γ函数不是吗?

那么说白了GCNSelf-attention都落在Message Passing(消息传递)框架里。GCN中的Message从节点的邻居节点传播来,Self-attentionMessageQueryKey-Value传播来。如果称所有的Message Passing函数都是GCN的话,那么Self-attention也就是GCN作用QueryKey-Value所构成Complete Garph上的一种特例。

也正如乃岩@Naiyan Wang的回答一样。可以说NLPGCN应该大有可为,毕竟Self-attention可以看出是GCN一种,那么肯定存在比Self-attention表达能力更强和适用范围更广的GCN

参考

  1. Attention is all you need
  2. Self-Attention with Relative Position Representations
  3. PyTorch Geometric
  4. DeepGCNs for Representation Learning on Graphs
  5. 完全二分图
  6. 完全图
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值