圖神經(jīng)網(wǎng)絡(luò)基礎(chǔ)學(xué)習(xí)

注:本篇博客公式格式?jīng)]有經(jīng)過認(rèn)真編輯珍促,歡迎去我的博客:http://www.pinkman.tech/index.php/tech/2021/gnn-basic/或者知乎:https://zhuanlan.zhihu.com/p/356872702獲得更好的閱讀體驗澄步。

本篇文章旨在通過最直白的語言解釋一些GNN中的基礎(chǔ)知識,涉及到的內(nèi)容包括:

  • GNN在現(xiàn)實中的應(yīng)用
  • 研究圖問題的兩個重要原則
  • GNN是如何學(xué)習(xí)的
  • GNN中信息如何傳遞绪颖?什么是卷積GNN,注意力GNN和信息傳遞GNN旦部?
  • 關(guān)于GNN的一些觀點

本篇文章參考于Petar Veli?kovi?的教程霉晕,講義位于:petar-v.com/talks/GNN-W。由于我剛接觸這個領(lǐng)域雷客,所以在書寫過程中難免出錯芒珠,歡迎在評論中指出。

一搅裙、現(xiàn)實世界中GNN的應(yīng)用

判斷分子特性

生物分子就是一個圖結(jié)構(gòu)皱卓,其中每一個原子是一個節(jié)點裹芝,連接原子的化學(xué)鍵就是一個。關(guān)于分子有一些比較有趣的研究任務(wù)娜汁,比如判斷一個分子是不是一種強烈的藥物嫂易。此時,可以將該分子通過GNN來進(jìn)行二分類掐禁。

image

<figcaption>GNN應(yīng)用于化學(xué)領(lǐng)域</figcaption>

這樣訓(xùn)練以后怜械,有一個好處是可以通過圖神經(jīng)網(wǎng)絡(luò)發(fā)現(xiàn)各種各樣的分子特性:將一個很大的候選分子庫送入網(wǎng)絡(luò)進(jìn)行預(yù)測,可以選擇GNN模型輸出的候選100個分子集合傅事,再進(jìn)行化學(xué)測試宫盔。在這個領(lǐng)域還是非常有用的。

交通地圖也是圖結(jié)構(gòu)

其中享完,每個十字路口可以是一個節(jié)點,每個道路就是一個有额。

image

<figcaption>GNN應(yīng)用在交通地圖</figcaption>

通過在交通地圖上構(gòu)建的GNN般又,可以用來回歸預(yù)計抵達(dá)的時間(time to arrival, ETA)。

二巍佑、從CNN中觀察

CNN的思想

第一個思想:只要圖中出現(xiàn)某個信息茴迁,無論這個信息出現(xiàn)在哪里,都是有用的萤衰。比如檢測某個物體堕义,無論在圖像中的哪里被檢測到,只要被檢測到就是成功的脆栋。所以才可以對整張圖像進(jìn)行掃描倦卖。這個思想叫做translational invariance

第二個思想:離得近的圖像像素之間的影響椿争,遠(yuǎn)比離得遠(yuǎn)的像素的影響要大怕膛,因此才能夠使用一個提取局部信息的卷積核。

我們接下來同樣會利用這些思想秦踪,應(yīng)用在圖上褐捻。

圖的特性

由于在圖中不會指定任何的節(jié)點順序,所以下面其實是一模一樣的兩幅圖椅邓。我們需要圖神經(jīng)網(wǎng)絡(luò)對這個輸入柠逞,能夠輸出同樣的信息。

image

<figcaption>兩個相同的圖</figcaption>

三景馁、排列不變性和排列相等性

我們暫時先假設(shè)圖中沒有邊板壮,此時圖是一個節(jié)點的集合。令(\boldsymbol{x}_i \in R^k) 表示節(jié)點 i 的 k 維特征合住「鍪可以將所有的節(jié)點特征堆疊到一起慕购,形成一個(n\times k)的特征矩陣。需要注意的是茬底,在這里為節(jié)點指定了順序沪悲,但是想要圖的輸出不會依賴于這個順序。

image

為了研究組合方式的操作阱表,定義如下的 (n\times n) 矩陣叫做排列矩陣殿如。其中,每一行和每一列都只有一個1最爬,其余都為0涉馁。這個矩陣的作用就是當(dāng)左乘上述特征矩陣時,就將上述特征矩陣換了一個排列組合的方式爱致。這個排列矩陣對于研究排列組合來說非常有用烤送。

image

排列不變性 Permutation Invariance

我們的目標(biāo)是:定義一個不依賴于輸入節(jié)點順序的函數(shù)(f(\boldsymbol{X})) 。

數(shù)學(xué)定義:如果 (f(\boldsymbol{X})) 是排列不變的糠悯,那么對于所有的排列矩陣P 帮坚,都有:(f(\boldsymbol{PX}) = f(\boldsymbol{X}) ) 。

排列相等性 Permutation Equivariance

但是互艾,如果想要獲得某一個節(jié)點的特征呢试和?此時就需要排列相等性了。它研究的是一個節(jié)點層面的排列性質(zhì)纫普。目標(biāo)是找到不會改變節(jié)點順序的函數(shù)阅悍。也就是說,如果我們改變節(jié)點的順序昨稼,無論我們經(jīng)過函數(shù)前改變节视,還是經(jīng)過函數(shù)后改變,結(jié)果應(yīng)該是一致的假栓。

數(shù)學(xué)定義:如果 (f(\boldsymbol{X})) 是排列相等的肴茄,那么對于所有的排列矩陣P,都有:(f(\boldsymbol{PX}) = \boldsymbol{P}f(\boldsymbol{X}) ) 但指。

集合研究的基礎(chǔ)

說到這里寡痰,大家也可以發(fā)現(xiàn),排列相等性要求我們不能進(jìn)行每個節(jié)點的特征交互棋凳,即特征矩陣的行與行之間的交互拦坠,所以我們只能夠?qū)γ恳粋€節(jié)點進(jìn)行一個特征的映射。

image

其中的(\psi)是一個映射函數(shù)剩岳,獨立地作用于對每個節(jié)點贞滨。將所有的 (\boldsymbol{h}_i) 堆疊起來,就得到了(\boldsymbol{H} = f(\boldsymbol{X}))。

另一方面晓铆,為了保證排列不變性勺良,我們需要在最后添加一個聚集函數(shù),例如求和骄噪,平均值尚困,最大值等。這樣我們就得到了最終的輸出链蕊。

image

說了這么多事甜,思想其實很簡單,就是先單獨對每個節(jié)點提取特征滔韵,然后將所有的特征整合起來逻谦,整合的過程要保證順序不會影響到最終結(jié)果。

四陪蜻、圖中的學(xué)習(xí)

好了邦马,現(xiàn)在可以研究圖中有邊的情況了。我們定義鄰接矩陣 A宴卖,其中

image

這里為了便于表示滋将,先忽略邊的特征,比如距離嘱腥,花費成本等。

將圖中的節(jié)點進(jìn)行排列時拘悦,由于節(jié)點的順序變化會同時影響到連接它的所有邊齿兔,在鄰接矩陣中表示,就是鄰接矩陣的行和列都要受到影響础米。具體來說分苇,假如節(jié)點經(jīng)過了 (\boldsymbol{P}) 的排列組合轉(zhuǎn)換,那么鄰接矩陣就會變?yōu)?(\boldsymbol{PAP}^T) 屁桑。

此時医寿,排列不變性和排列相等性就變成了這樣的表示:

image

圖中的局部性:鄰居節(jié)點

在前文提到的節(jié)點集合部分中,我們通過每個節(jié)點獨立地提取特征保證了排列相等性蘑斧。然而在圖中靖秩,我們有一個非常有用的信息:一個節(jié)點的鄰居節(jié)點。對于一個節(jié)點 i 來說竖瘾,和它距離為1的節(jié)點集合可以表示為:

image

此時沟突,我們可以在這個鄰居節(jié)點的集合上提取特征,表示為

image

將這個提取特征的過程表示為函數(shù) (g(\boldsymbol{x}i, \boldsymbol{X}{N_i})) 捕传。

圖神經(jīng)網(wǎng)絡(luò)

此時惠拭,我們終于可以了解到圖神經(jīng)網(wǎng)絡(luò)是什么樣的了。將上述的函數(shù)g作用于每一個節(jié)點及其鄰居節(jié)點庸论,得到最終的特征职辅,這就是一個圖神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)形式棒呛。

image

為了確保排列相等性,我們需要保證這里的函數(shù)g不依賴于鄰居節(jié)點的順序信息域携,因此簇秒,g應(yīng)該是排列不變的。

下圖中是一個圖神經(jīng)網(wǎng)絡(luò)提取特征的圖示涵亏,通過輸入一個節(jié)點b宰睡,及其周圍的鄰居節(jié)點給函數(shù)g,提取得到的隱向量气筋,標(biāo)記為 (\boldsymbol{h}_b)拆内。

image

<figcaption>圖神經(jīng)網(wǎng)絡(luò)提取特征圖示</figcaption>

得到了隱含向量以后,如何利用它們呢宠默?這里給出幾種常見的使用方式:

  • 節(jié)點分類麸恍。得到某一個節(jié)點的的隱向量以后,利用該向量去對一個節(jié)點進(jìn)行分類搀矫。
  • 圖分類抹沪。將所有節(jié)點的隱向量整合到一起,得到整個圖的特征瓤球,然后利用這個特征去分類融欧。比如上文提到的分子特性分類。
  • 鏈接預(yù)測卦羡。輸入兩個節(jié)點的隱向量以及他們之間的邊的信息噪馏,能夠輸出這兩個節(jié)點之間相互作用的結(jié)果。這一點也非常有用绿饵,比如預(yù)測從一個節(jié)點到另一個節(jié)點的抵達(dá)時間欠肾。

以下圖示表示了這一過程:

image

<figcaption>如何使用隱向量</figcaption>

五、圖中的信息傳遞

在GNN領(lǐng)域中拟赊,通常把前文中描述的 (f) 叫做GNN的一層刺桃, 叫做“擴(kuò)散”、“傳播”或者“信息傳遞”吸祟。如何定義函數(shù) (g)瑟慈,是圖神經(jīng)網(wǎng)絡(luò)中的重點,也是非常熱門的研究領(lǐng)域屋匕。幾乎所有提出的定義方式封豪,可以按照空間偏好分為三類,分別是卷積(Convolutional)炒瘟,注意力(Attentional)和信息傳遞(Message-passing)吹埠。

卷積圖神經(jīng)網(wǎng)絡(luò)

通過一個固定的權(quán)重 (c_{ij}) 來整合鄰居節(jié)點的特征。通常來說,這里的權(quán)重通常直接依賴于節(jié)點之間邊的信息(邊的信息代表的是節(jié)點的相似度缘琅,比如兩個節(jié)點距離越近粘都,那么它們可能就越相似)。

image
image

<figcaption>卷積GNN示意圖</figcaption>

這種結(jié)構(gòu)對于同質(zhì)圖來說很有用(同質(zhì)圖:圖中的節(jié)點類型和關(guān)系類型都僅有一種)刷袍,并且網(wǎng)絡(luò)可以輕易擴(kuò)展到很大的規(guī)模翩隧。

使用這類方法的經(jīng)典模型包括:

  • ChebyNet (Defferrard , NeurIPS’16) et al.
  • GCN (Kipf & Welling, ICLR’17)
  • SGC (Wu , ICML’19) et al.

注意力圖卷積神經(jīng)網(wǎng)絡(luò)

注意力機(jī)制是近幾年非常火的一個研究方向呻纹。應(yīng)用在GNN中堆生,就是將前文中固定的權(quán)重改為可學(xué)習(xí)的權(quán)重,以此來描述兩個相鄰節(jié)點之間的關(guān)系雷酪。用公式表示為:

image
image

<figcaption>注意力GNN示意圖</figcaption>

這種結(jié)構(gòu)對于一些邊中沒有蘊含節(jié)點關(guān)系的圖來說非常有效淑仆,適用于規(guī)模不是特別大的圖,因為注意力機(jī)制會增加比較大的顯存和計算量哥力。

使用這類方法的經(jīng)典模型包括:

  • MoNet (Monti , CVPR’17) et al.
  • GAT (Veli?kovi? , ICLR’18) et al.
  • GaAN (Zhang , UAI’18) et al.

信息傳遞圖神經(jīng)網(wǎng)絡(luò)

計算出一個向量(“信息”)蔗怠,通過邊傳遞給其余節(jié)點。

用公式表示為:

image
image

<figcaption>信息傳遞GNN示意圖</figcaption>

其中 吩跋,(m_{ij} = \psi)就是傳遞的信息寞射。

因為有了信息的傳遞,這類模型可以擬合一些非常復(fù)雜的任務(wù)锌钮,但是可能會面臨一些規(guī)那盼拢或者學(xué)習(xí)上的問題,因為需要計算和存儲整個圖中所有邊計算出來的信息梁丘,而圖中的邊一般都比節(jié)點要多得多侵浸。

使用這類方法的經(jīng)典模型包括:

  • Interaction Networks (Battaglia ., NeurIPS’16) et al
  • MPNN (Gilmer ., ICML’17) et al
  • GraphNets (Battaglia ., 2018) et al

六、關(guān)于GNN的觀點

節(jié)點嵌入技術(shù)

這項技術(shù)的目的是兰吟,將圖中的節(jié)點嵌入到隱空間中通惫。

image

<figcaption>節(jié)點嵌入</figcaption>

那么什么是一個好的嵌入表示呢茂翔?對于圖來說混蔼,一個自然的想法就是,保留住圖中的有用信息珊燎,而節(jié)點之間的有用信息惭嚣,那就是邊。所以就有了一個非常直接的目標(biāo):如果兩個節(jié)點之間右邊悔政,那么他們在隱空間中應(yīng)該是相近的晚吞,可以使用標(biāo)準(zhǔn)的二分類交叉熵?fù)p失函數(shù)來實現(xiàn)這個目標(biāo):

image

這個其實是一個更加廣泛的方法簇——隨機(jī)行走的一個特例。將上述損失函數(shù)中的 谋国,重新定義為 和 共同出現(xiàn)在一個隨機(jī)行走的過程中槽地。

這類方法在GNN面世前,是最主流的無監(jiān)督圖表示學(xué)習(xí)方法。有以下著名的算法:

  • DeepWalk (Perozzi , KDD’14) et al.
  • node2vec (Grover & Leskovec, KDD’16)
  • LINE (Tang , WWW’15) et al.

值得注意的一點是捌蚊,通過這種方法集畅,能夠?qū)W習(xí)到節(jié)點局部的相似性。因為在隱空間中距離比較近的節(jié)點缅糟,可能在原先的圖結(jié)構(gòu)中是存在邊相連的挺智,就是他們互相是鄰居節(jié)點。這是隨機(jī)行走方法的一個內(nèi)在的特點窗宦。但是赦颇,這恰恰就是卷積GNN的設(shè)計思想:強迫鄰居學(xué)習(xí)到相似的特征,這是因為兩個圖中相鄰的節(jié)點赴涵,可能會有很多個共同的鄰居節(jié)點媒怯,所以能夠?qū)W習(xí)到相似的特征。關(guān)于此句占,有兩個有用的推論:

  • 隨機(jī)行走的目標(biāo)可能不能給GNN提供有用的信號
  • 有時沪摄,DeepWalk能得到與未訓(xùn)練的卷積GNN相同的效果!(Veli?kovi? et al., ICLR’19)

與NLP的關(guān)系

節(jié)點嵌入技術(shù)纱烘,其實和NLP中的詞向量技術(shù)如出一轍:

  • 節(jié)點可以和詞對應(yīng)
  • 隨機(jī)行走和一個句子對應(yīng)
  • node2vec技術(shù)對應(yīng)于word2vec技術(shù)
  • 優(yōu)化目標(biāo)基本是一模一樣的

并不單純只有NLP可以嵌入到GNN的設(shè)計思想中杨拐,GNN其實也可以嵌入到NLP的設(shè)計思想中,兩門技術(shù)是非常相通的擂啥。

在NLP領(lǐng)域中哄陶,一個句子中的不同單詞,是會互相交互的哺壶,比如出現(xiàn)一個詞屋吨,另外一個詞的含義可能完全變了。我們可以使用圖來表示這種交互山宾,但是這個交互信息并不是直接提供的至扰,此時,一個常見的假設(shè)就是去初始化一個完全圖(完全圖是一個簡單的無向圖资锰,其中每對不同的頂點之間都恰連有一條邊相連)敢课,然后讓網(wǎng)絡(luò)去學(xué)習(xí)相互之間的關(guān)系。而這绷杜,就是Transformers的思想直秆!

可以將Transformer視作GNN的一種,它是一個完全圖鞭盟,屬于注意力圖神經(jīng)網(wǎng)絡(luò)分類下圾结。attention可以看做圖中的一種軟相鄰。(Joshi (The Gradient; 2020).)

image

<figcaption>多頭注意力機(jī)制</figcaption>

感謝您的閱讀齿诉,如果覺得這篇文章對您有幫助筝野,歡迎分享收藏晌姚!最后附上教程的原始視頻鏈接。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末歇竟,一起剝皮案震驚了整個濱河市舀凛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌途蒋,老刑警劉巖猛遍,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異号坡,居然都是意外死亡懊烤,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進(jìn)店門宽堆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來腌紧,“玉大人,你說我怎么就攤上這事畜隶”诶撸” “怎么了?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵籽慢,是天一觀的道長浸遗。 經(jīng)常有香客問我,道長箱亿,這世上最難降的妖魔是什么跛锌? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮届惋,結(jié)果婚禮上髓帽,老公的妹妹穿的比我還像新娘。我一直安慰自己脑豹,他們只是感情好郑藏,可當(dāng)我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著瘩欺,像睡著了一般必盖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上击碗,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天筑悴,我揣著相機(jī)與錄音们拙,去河邊找鬼稍途。 笑死,一個胖子當(dāng)著我的面吹牛砚婆,可吹牛的內(nèi)容都是我干的械拍。 我是一名探鬼主播突勇,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼坷虑!你這毒婦竟也來了甲馋?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤迄损,失蹤者是張志新(化名)和其女友劉穎定躏,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體芹敌,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡痊远,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了氏捞。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片碧聪。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖液茎,靈堂內(nèi)的尸體忽然破棺而出逞姿,到底是詐尸還是另有隱情,我是刑警寧澤捆等,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布滞造,位于F島的核電站,受9級特大地震影響栋烤,放射性物質(zhì)發(fā)生泄漏断部。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一班缎、第九天 我趴在偏房一處隱蔽的房頂上張望蝴光。 院中可真熱鬧,春花似錦达址、人聲如沸蔑祟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽疆虚。三九已至,卻和暖如春满葛,著一層夾襖步出監(jiān)牢的瞬間径簿,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工嘀韧, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留篇亭,地道東北人。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓锄贷,卻偏偏與公主長得像译蒂,于是被迫代替她去往敵國和親曼月。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,914評論 2 355