自注意力機(jī)制和全連接的圖卷積網(wǎng)絡(luò)(GCN)有什么區(qū)別聯(lián)系?
本文整理自知乎問(wèn)答,僅用于學(xué)術(shù)分享,著作權(quán)歸作者所有。如有侵權(quán),請(qǐng)聯(lián)系后臺(tái)作刪文處理。加入極市專業(yè)CV交流群,與?10000+來(lái)自港科大、北大、清華、中科院、CMU、騰訊、百度?等名校名企視覺(jué)開(kāi)發(fā)者互動(dòng)交流!
同時(shí)提供每月大咖直播分享、真實(shí)項(xiàng)目需求對(duì)接、干貨資訊匯總,行業(yè)技術(shù)交流。關(guān)注?極市平臺(tái)?公眾號(hào)?,回復(fù)?加群,立刻申請(qǐng)入群~
觀點(diǎn)一
作者|Guohao Li
https://www.zhihu.com/question/366088445/answer/1023290162
來(lái)說(shuō)一下自己的理解。首先結(jié)論是大部分GCN和Self-attention都屬于Message Passing(消息傳遞)。GCN中的Message從節(jié)點(diǎn)的鄰居節(jié)點(diǎn)傳播來(lái),Self-attention的Message從Query的Key-Value傳播來(lái)。
Message Passing[4]先看看什么是Message Passing。我們知道在實(shí)現(xiàn)和設(shè)計(jì)GCN的時(shí)候很多時(shí)候都是采用Message Passing的框架[3],其思想是把每個(gè)節(jié)點(diǎn)的領(lǐng)域的特征信息傳遞到節(jié)點(diǎn)上。在這里舉例描述一個(gè)節(jié)點(diǎn)i在第k層GCN卷積的過(guò)程:1)把節(jié)點(diǎn)i的每一個(gè)鄰居j與該節(jié)點(diǎn)的特征經(jīng)過(guò)函數(shù)變換后形成一條Message(對(duì)應(yīng)公示里函數(shù)\phi里面的操作);2)經(jīng)過(guò)一個(gè)Permutation Invariant(置換不變性)函數(shù)把該節(jié)點(diǎn)領(lǐng)域的所有Message聚合在一起(對(duì)應(yīng)函數(shù)\square);3)再經(jīng)過(guò)函數(shù)\gamma把聚合的領(lǐng)域信息和節(jié)點(diǎn)特征做一次函數(shù)變化,得到該節(jié)點(diǎn)在第k層圖卷積后的特征X_i。那么Self-attention是否也落在Message Passing的框架內(nèi)呢?我們先回顧一下Self-attention一般是怎么計(jì)算的[2],這里舉例一個(gè)Query i的經(jīng)過(guò)attention的計(jì)算過(guò)程:1】Query i的特征x_i會(huì)和每一個(gè)Key j的特征計(jì)算一個(gè)相似度e_ij;
2】得到Query i與所有Key的相似度后經(jīng)過(guò)SoftMax得到Attention coefficient(注意力系數(shù))\alpha_ij;
3】通過(guò)Attention coefficient加權(quán)Value j計(jì)算出Query i最后的輸出z_j。
好了,那么我們來(lái)看看它們之間的對(duì)應(yīng)關(guān)系。首先結(jié)論是Self-attention計(jì)算中的1】2】3】是對(duì)應(yīng)Message Passing里的1)2)的。如果用Message Passing來(lái)實(shí)現(xiàn)Self-attention,那么我們可以這么一一對(duì)應(yīng):-1 每個(gè)Key-Value j可以看作是Query i的鄰居;-2 相似度和注意力系數(shù)的計(jì)算和最后3】中Value j與注意力系數(shù)相乘的操作可以對(duì)應(yīng)為Message Passing中第一步構(gòu)成Message的過(guò)程;-3 最后Self-attention的求和運(yùn)算對(duì)應(yīng)Message Passing中第二步的Permutation Invariant函數(shù),也就是說(shuō)這里聚合領(lǐng)域信息的過(guò)程是通過(guò)Query對(duì)Key-Value聚合而來(lái)。那么也就是說(shuō),Attention的過(guò)程是把每一個(gè)Query和所有Key相連得到一個(gè)Complete Bipartite Graph(左邊是Query右邊的Key-Value),然后在這圖上去對(duì)所有Query節(jié)點(diǎn)做Message Passing。當(dāng)然Query和Key-Value一樣的Self-attention就是在一般的Complete Graph上做Message Passing了。
Complete Bipartite Graph看到這里大家可能疑問(wèn)那么為什么Self attention里面沒(méi)有了Message Passing中第三步把聚合的信息和節(jié)點(diǎn)信息經(jīng)過(guò)\gamma函數(shù)做變換的過(guò)程呢。是的,如果沒(méi)有了這一步很可能學(xué)習(xí)過(guò)程中Query的原來(lái)特征會(huì)丟失,其實(shí)這一步在Attention is all your need[1]里還是有的,不信你看:
在每一次經(jīng)過(guò)Self-Attention之后基本上都是有Skip connection+MLP的,這里某種程度上對(duì)應(yīng)了Message Passing里的\gamma函數(shù)不是嗎?那么說(shuō)白了GCN和Self-attention都落在Message Passing(消息傳遞)框架里。GCN中的Message從節(jié)點(diǎn)的鄰居節(jié)點(diǎn)傳播來(lái),Self-attention的Message從Query的Key-Value傳播來(lái)。如果稱所有的Message Passing函數(shù)都是GCN的話,那么Self-attention也就是GCN作用Query和Key-Value所構(gòu)成Complete Garph上的一種特例。也正如乃巖@Naiyan Wang的回答一樣。可以說(shuō)NLP中GCN應(yīng)該大有可為,畢竟Self-attention可以看出是GCN一種,那么肯定存在比Self-attention表達(dá)能力更強(qiáng)和適用范圍更廣的GCN。感謝評(píng)論里?@葉子豪的補(bǔ)充,DGL團(tuán)隊(duì)寫了個(gè)很詳盡的用Message Passing實(shí)現(xiàn)Transformer的教程。對(duì)具體實(shí)現(xiàn)感興趣的同學(xué)可以去讀一下:DGL Transformer Tutorial。Reference:1.?Attention is All You Need2.?Self-Attention with Relative Position Representations3.?Pytorch Geometric4.?DeepGCNs for Representation Learning on Graphs觀點(diǎn)二
作者|Houye
https://www.zhihu.com/question/366088445/answer/1022692208
來(lái)說(shuō)一下自己的理解。GAT中的Attention就是self-attention,作者在論文中已經(jīng)說(shuō)了


推薦閱讀
注意力機(jī)制在分類網(wǎng)絡(luò)中的應(yīng)用:SENet、SKNet、CBAM
極市干貨 | 第60期直播回放-張航-ResNeSt:拆分注意力網(wǎng)絡(luò)
通道注意力超強(qiáng)改進(jìn),輕量模塊ECANet來(lái)了!即插即用,顯著提高CNN性能|已開(kāi)源
添加極市小助手微信(ID : cv-mart),備注:研究方向-姓名-學(xué)校/公司-城市(如:目標(biāo)檢測(cè)-小極-北大-深圳),即可申請(qǐng)加入極市技術(shù)交流群,更有每月大咖直播分享、真實(shí)項(xiàng)目需求對(duì)接、求職內(nèi)推、算法競(jìng)賽、干貨資訊匯總、行業(yè)技術(shù)交流,一起來(lái)讓思想之光照的更遠(yuǎn)吧~
△長(zhǎng)按添加極市小助手
△長(zhǎng)按關(guān)注極市平臺(tái),獲取最新CV干貨
覺(jué)得有用麻煩給個(gè)在看啦~??
評(píng)論
圖片
表情
