何時能懂你的心——圖卷積神經(jīng)網(wǎng)絡(luò)(GCN)

學(xué)號:20021110085 ? ? ? ? ? ? ?姓名:鄭佳?

轉(zhuǎn)載:https://zhuanlan.zhihu.com/p/71200936

【嵌牛導(dǎo)讀】圖卷積神經(jīng)網(wǎng)絡(luò)搭幻,顧名思義就是在圖上使用卷積運(yùn)算,然而圖上的卷積運(yùn)算是什么東西松申?為了解決這個問題題贸桶,我們可以利用圖上的傅里葉變換桌肴,再使用卷積定理坠七,這樣就可以通過兩個傅里葉變換的乘積來表示這個卷積的操作。

【嵌牛鼻子】圖卷積神經(jīng)網(wǎng)絡(luò)(GCN)

【嵌牛正文】

GCN的概念首次提出于ICLR2017(成文于2016年):

一拄踪、GCN是做什么的

在扎進(jìn)GCN的汪洋大海前宫蛆,我們先搞清楚這個玩意兒是做什么的的猛,有什么用卦尊。

深度學(xué)習(xí)一直都是被幾大經(jīng)典模型給統(tǒng)治著,如CNN忿薇、RNN等等躏哩,它們無論再CV還是NLP領(lǐng)域都取得了優(yōu)異的效果扫尺,那這個GCN是怎么跑出來的?是因為我們發(fā)現(xiàn)了很多CNN弊攘、RNN無法解決或者效果不好的問題——圖結(jié)構(gòu)的數(shù)據(jù)。

回憶一下迈倍,我們做圖像識別啼染,對象是圖片竟宋,是一個二維的結(jié)構(gòu)丘侠,于是人們發(fā)明了CNN這種神奇的模型來提取圖片的特征。CNN的核心在于它的kernel打肝,kernel是一個個小窗口挪捕,在圖片上平移级零,通過卷積的方式來提取特征。這里的關(guān)鍵在于圖片結(jié)構(gòu)上的平移不變性:一個小窗口無論移動到圖片的哪一個位置鉴嗤,其內(nèi)部的結(jié)構(gòu)都是一模一樣的醉锅,因此CNN可以實現(xiàn)參數(shù)共享发绢。這就是CNN的精髓所在。

再回憶一下RNN系列经柴,它的對象是自然語言這樣的序列信息口锭,是一個一維的結(jié)構(gòu)介杆,RNN就是專門針對這些序列的結(jié)構(gòu)而設(shè)計的春哨,通過各種門的操作,使得序列前后的信息互相影響椰拒,從而很好地捕捉序列的特征燃观。

上面講的圖片或者語言便瑟,都屬于歐式空間的數(shù)據(jù)到涂,因此才有維度的概念,歐式空間的數(shù)據(jù)的特點就是結(jié)構(gòu)很規(guī)則浇雹。但是現(xiàn)實生活中昭灵,其實有很多很多不規(guī)則的數(shù)據(jù)結(jié)構(gòu)伐谈,典型的就是圖結(jié)構(gòu)衩婚,或稱拓?fù)浣Y(jié)構(gòu),如社交網(wǎng)絡(luò)柱徙、化學(xué)分子結(jié)構(gòu)护侮、知識圖譜等等储耐;即使是語言,實際上其內(nèi)部也是復(fù)雜的樹形結(jié)構(gòu)晦攒,也是一種圖結(jié)構(gòu)得哆;而像圖片贩据,在做目標(biāo)識別的時候,我們關(guān)注的實際上只是二維圖片上的部分關(guān)鍵點矾芙,這些點組成的也是一個圖的結(jié)構(gòu)剔宪。

圖的結(jié)構(gòu)一般來說是十分不規(guī)則的戈锻,可以認(rèn)為是無限維的一種數(shù)據(jù)格遭,所以它沒有平移不變性拒迅。每一個節(jié)點的周圍結(jié)構(gòu)可能都是獨一無二的,這種結(jié)構(gòu)的數(shù)據(jù)作箍,就讓傳統(tǒng)的CNN胞得、RNN瞬間失效屹电。所以很多學(xué)者從上個世紀(jì)就開始研究怎么處理這類數(shù)據(jù)了危号。這里涌現(xiàn)出了很多方法,例如GNN猪半、DeepWalk磨确、node2vec等等,GCN只是其中一種安接,這里只講GCN,其他的后面有空再討論驶悟。

GCN材失,圖卷積神經(jīng)網(wǎng)絡(luò)龙巨,實際上跟CNN的作用一樣,就是一個特征提取器诗赌,只不過它的對象是圖數(shù)據(jù)。GCN精妙地設(shè)計了一種從圖數(shù)據(jù)中提取特征的方法秸弛,從而讓我們可以使用這些特征去對圖數(shù)據(jù)進(jìn)行節(jié)點分類(node classification)铭若、圖分類(graph classification)、邊預(yù)測(link prediction)递览,還可以順便得到圖的嵌入表示(graph embedding)叼屠,可見用途廣泛。因此現(xiàn)在人們腦洞大開绞铃,讓GCN到各個領(lǐng)域中發(fā)光發(fā)熱镜雨。

二、GCN長啥樣儿捧,嚇人嗎

GCN的公式看起來還是有點嚇人的,論文里的公式更是嚇破了我的膽兒纯命。但后來才發(fā)現(xiàn)西剥,其實90%的內(nèi)容根本不必理會,只是為了從數(shù)學(xué)上嚴(yán)謹(jǐn)?shù)匕咽虑榻o講清楚亿汞,但是完全不影響我們的理解瞭空,尤其對于我這種“追求直覺,不求甚解”之人。

下面進(jìn)入正題咆畏,我們直接看看GCN的核心部分是什么亞子:

假設(shè)我們手頭有一批圖數(shù)據(jù)南捂,其中有N個節(jié)點(node),每個節(jié)點都有自己的特征旧找,我們設(shè)這些節(jié)點的特征組成一個N×D維的矩陣X溺健,然后各個節(jié)點之間的關(guān)系也會形成一個N×N維的矩陣A,也稱為鄰接矩陣(adjacency matrix)钮蛛。X和A便是我們模型的輸入鞭缭。

GCN也是一個神經(jīng)網(wǎng)絡(luò)層,它的層與層之間的傳播方式是:

H^{(l+1)}=\sigma\left(\tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} H^{(l)} W^{(l)}\right)

我們先不用考慮為什么要這樣去設(shè)計一個公式魏颓。我們現(xiàn)在只用知道:?\tilde{\mathbf{D}}^{-\frac{1}{2}} \tilde{\mathbf{A}} \tilde{\mathbf{D}}^{-\frac{1}{2}},這個部分甸饱,是可以事先算好的,因為D波浪由A計算而來叹话,而A是我們的輸入之一。

所以對于不需要去了解數(shù)學(xué)原理驼壶、只想應(yīng)用GCN來解決實際問題的人來說氏豌,你只用知道:哦,這個GCN設(shè)計了一個牛逼的公式箩溃,用這個公式就可以很好地提取圖的特征碌嘀。這就夠了涣旨,畢竟不是什么事情都需要知道內(nèi)部原理,這是根據(jù)需求決定的股冗。

為了直觀理解霹陡,我們用論文中的一幅圖:

上圖中的GCN輸入一個圖止状,通過若干層GCN每個node的特征從X變成了Z,但是浆洗,無論中間有多少層集峦,node之間的連接關(guān)系抠刺,即A,都是共享的速妖。

假設(shè)我們構(gòu)造一個兩層的GCN聪黎,激活函數(shù)分別采用ReLU和Softmax,則整體的正向傳播的公式為:

Z=f(X, A)=\operatorname{softmax}\left(\hat{A} \operatorname{ReLU}\left(\hat{A} X W^{(0)}\right) W^{(1)}\right)

最后锦秒,我們針對所有帶標(biāo)簽的節(jié)點計算cross entropy損失函數(shù):

\mathcal{L}=-\sum_{l \in \mathcal{Y}_{L}} \sum_{f=1}^{F} Y_{l f} \ln Z_{l f}

就可以訓(xùn)練一個node classification的模型了湘纵。由于即使只有很少的node有標(biāo)簽也能訓(xùn)練,作者稱他們的方法為半監(jiān)督分類梧喷。

當(dāng)然脖咐,你也可以用這個方法去做graph classification屁擅、link prediction,只是把損失函數(shù)給變化一下即可派歌。

三、GCN為什么是這個亞子

我前后翻看了很多人的解讀匾嘱,但是讀了一圈早抠,最讓我清楚明白為什么GCN的公式是這樣子的居然是作者Kipf自己的博客:http://tkipf.github.io/graph-convolutional-networks/?推薦大家一讀。

作者給出了一個由簡入繁的過程來解釋:

我們的每一層GCN的輸入都是鄰接矩陣A和node的特征H蕊连,那么我們直接做一個內(nèi)積,再乘一個參數(shù)矩陣W尝蠕,然后激活一下载庭,就相當(dāng)于一個簡單的神經(jīng)網(wǎng)絡(luò)層嘛廊佩,是不是也可以呢闲昭?

f\left(H^{(l)}, A\right)=\sigma\left(A H^{(l)} W^{(l)}\right)

實驗證明,即使就這么簡單的神經(jīng)網(wǎng)絡(luò)層序矩,就已經(jīng)很強(qiáng)大了簸淀。這個簡單模型應(yīng)該大家都能理解吧,這就是正常的神經(jīng)網(wǎng)絡(luò)操作租幕。

四、GCN有多牛

在看了上面的公式以及訓(xùn)練方法之后男窟,我并沒有覺得GCN有多么特別贾富,無非就是一個設(shè)計巧妙的公式嘛,也許我不用這么復(fù)雜的公式颤枪,多加一點訓(xùn)練數(shù)據(jù)或者把模型做深,也可能達(dá)到媲美的效果呢扇住。

但是一直到我讀到了論文的附錄部分盗胀,我才頓時發(fā)現(xiàn):GCN原來這么牛啊簿训!

為啥呢米间?

因為即使不訓(xùn)練,完全使用隨機(jī)初始化的參數(shù)W屈糊,GCN提取出來的特征就以及十分優(yōu)秀了逻锐!這跟CNN不訓(xùn)練是完全不一樣的雕薪,后者不訓(xùn)練是根本得不到什么有效特征的晓淀。

然后作者做了一個實驗,使用一個俱樂部會員的關(guān)系網(wǎng)絡(luò)凶掰,使用隨機(jī)初始化的GCN進(jìn)行特征提取,得到各個node的embedding前翎,然后可視化:

可以發(fā)現(xiàn)畅涂,在原數(shù)據(jù)中同類別的node午衰,經(jīng)過GCN的提取出的embedding,已經(jīng)在空間上自動聚類了臊岸。

而這種聚類結(jié)果,可以和DeepWalk、node2vec這種經(jīng)過復(fù)雜訓(xùn)練得到的node embedding的效果媲美了奠旺。

說的夸張一點,比賽還沒開始鄙信,GCN就已經(jīng)在終點了忿晕。看到這里我不禁猛拍大腿打呼:“NB鸦采!”

還沒訓(xùn)練就已經(jīng)效果這么好咕幻,那給少量的標(biāo)注信息,GCN的效果就會更加出色肄程。

看到這里选浑,我覺得玄叠,以后有機(jī)會读恃,確實得詳細(xì)地吧GCN背后的數(shù)學(xué)琢磨琢磨,其中的玄妙之處究竟為何狐粱,其物理本質(zhì)為何。這個時候互墓,回憶起在知乎上看到的各路大神從各種角度解讀GCN蒋搜,例如從熱量傳播的角度,從一個群體中每個人的工資的角度育谬,生動形象地解釋帮哈。這一刻,歷來痛恨數(shù)學(xué)的我娘侍,我感受到了一絲數(shù)學(xué)之美,于是凌晨兩點的我嚎杨,打開了天貓氧腰,下單了一本正版《數(shù)學(xué)之美》。哦箩帚,數(shù)學(xué)啊斤富,你真如一朵美麗的玫瑰,每次被你的美所吸引满力,都要深深受到刺痛轻纪,我何時才能懂得你刻帚、擁有你涩嚣?

其他關(guān)于GCN的點滴:

對于很多網(wǎng)絡(luò),我們可能沒有節(jié)點的特征航厚,這個時候可以使用GCN嗎幔睬?答案是可以的,如論文中作者對那個俱樂部網(wǎng)絡(luò)麻顶,采用的方法就是用單位矩陣 I 替換特征矩陣 X

我沒有任何的節(jié)點類別的標(biāo)注队萤,或者什么其他的標(biāo)注信息矫钓,可以使用GCN嗎?當(dāng)然盈电,就如前面講的杯活,不訓(xùn)練的GCN熬词,也可以用來提取graph embedding,而且效果還不錯互拾。

GCN網(wǎng)絡(luò)的層數(shù)多少比較好颜矿?論文的作者做過GCN網(wǎng)絡(luò)深度的對比研究,在他們的實驗中發(fā)現(xiàn)骑疆,GCN層數(shù)不宜多替废,2-3層的效果就很好了椎镣。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末兽赁,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子惊科,更是在濱河造成了極大的恐慌亮钦,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件孙咪,死亡現(xiàn)場離奇詭異巡语,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)荤堪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進(jìn)店門枢赔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來踏拜,“玉大人,你說我怎么就攤上這事速梗。” “怎么了枕赵?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵位隶,是天一觀的道長。 經(jīng)常有香客問我篮昧,道長,這世上最難降的妖魔是什么糠睡? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任疚颊,我火速辦了婚禮,結(jié)果婚禮上均抽,老公的妹妹穿的比我還像新娘其掂。我一直安慰自己,他們只是感情好深寥,可當(dāng)我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布贤牛。 她就那樣靜靜地躺著,像睡著了一般闰集。 火紅的嫁衣襯著肌膚如雪般卑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天沐鼠,我揣著相機(jī)與錄音叹谁,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛侧漓,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播藤违,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼顿乒,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了璧榄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤涂身,失蹤者是張志新(化名)和其女友劉穎搓蚪,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體妒潭,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡雳灾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了记靡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片团驱。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖寸痢,靈堂內(nèi)的尸體忽然破棺而出紊选,到底是詐尸還是另有隱情,我是刑警寧澤献烦,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布卖词,位于F島的核電站,受9級特大地震影響即横,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜东囚,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一页藻、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧惕橙,春花似錦、人聲如沸肚逸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽务冕。三九已至幻赚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間箩退,已是汗流浹背佳谦。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留啥刻,地道東北人咪笑。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像映跟,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子申窘,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容