multi-head attention之后的操作_Day217:GCN和self-attention机制

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


e2782342b0400672cd0942818a8286f7.png

Message Passing[4]

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

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

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

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


那么Self-attention是否也落在Message Passing的框架内呢?我们先回顾一下Self-attention一般是怎么计算的[2],这里举例一个Query i的经过attention的计算过程:

1】Query i的特征x_i会和每一个Key j的特征计算一个相似度e_ij;

11e3fcba5798b4f612f264bbb0b1a6d8.png

2】得到Query i与所有Key的相似度后经过SoftMax得到Attention coefficient(注意力系数)alpha_ij;

d9ea500dbd81f3f60ba2eab39abacf26.png

3】通过Attention coefficient加权Value j计算出Query i最后的输出z_j。

dca1ee6624bc65f81ecc0bc19f397bc8.png

好了,那么我们来看看它们之间的对应关系。首先结论是Self-attention计算中的1】2】3】是对应Message Passing里的1)2)的。

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

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

-2 相似度和注意力系数的计算和最后3】中Value j与注意力系数相乘的操作可以对应为Message Passing中第一步构成Message的过程;

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

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

0bf3a887ff98aaeed118ee7ac3624a1d.png

Complete Bipartite Graph


看到这里大家可能疑问那么为什么Self attention里面没有了Message Passing中第三步把聚合的信息和节点信息经过gamma函数做变换的过程呢。是的,如果没有了这一步很可能学习过程中Query的原来特征会丢失,其实这一步在Attention is all your need[1]里还是有的,不信你看:

a6d8a6437ecde69b9bb47b1711cc4e97.png

在每一次经过Self-Attention之后基本上都是有Skip connection+MLP的,这里某种程度上对应了Message Passing里的gamma函数不是吗?

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

@Naiyan Wang

的回答一样。

可以说NLP中GCN应该大有可为,毕竟Self-attention可以看出是GCN一种,那么肯定存在比Self-attention表达能力更强和适用范围更广的GCN。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值