1.1 什么是圖(graph)?
在圖論的上下文中,圖是一種結(jié)構(gòu)化數(shù)據(jù)類型,具有節(jié)點(nodes)(保存信息的實體)和邊緣(edges)(連接節(jié)點的連接,也可以保存信息)。
圖是一種數(shù)據(jù)結(jié)構(gòu)的方式,但它本身可以是一個數(shù)據(jù)點。圖是一種非歐幾里得數(shù)據(jù)類型,這意味著它們存在于三維空間,不像其他數(shù)據(jù)類型,比如圖像、文本和音頻。
圖可以具有某些屬性,這些屬性限制了可以對其執(zhí)行的可能操作和分析。這些屬性可以被定義。
1.2 圖的定義
首先,讓我們介紹一些定義。
在計算機科學(xué)中,我們經(jīng)常談?wù)撘环N稱為圖的數(shù)據(jù)結(jié)構(gòu):
圖的邊緣和/或節(jié)點上可以有標(biāo)簽,讓我們給它一些邊緣和節(jié)點的標(biāo)簽。
標(biāo)簽也可以被視為權(quán)重,但這取決于圖的設(shè)計者。
標(biāo)簽不必是數(shù)字,它們可以是文本的。
標(biāo)簽不必是唯一的;給多個節(jié)點相同的標(biāo)簽是完全可能的,有時也是有用的。例如,氫分子就是一個例子:
注意混合了數(shù)值和文本數(shù)據(jù)類型
圖可以具有特征(也稱為屬性)。
要小心不要混淆特征和標(biāo)簽。一個簡單的思考方式是使用名稱、角色和人的類比:
一個節(jié)點就是一個人,一個節(jié)點的標(biāo)簽就是一個人的名字,而節(jié)點的特征就是這個人的特點。
圖可以是有向的或無向的:
請注意,有向圖也可以具有無向邊
圖中的一個節(jié)點甚至可以有指向自身的邊緣。這被稱為自環(huán)(self-loop)。
圖可以是:
- 異構(gòu)的(Heterogeneous) — 由不同類型的節(jié)點組成
- 同構(gòu)的(Homogeneous) — 由相同類型的節(jié)點組成
并且可以是:
- 靜態(tài)的(Static) — 節(jié)點和邊不變,沒有添加或刪除
- 動態(tài)的(Dynamic) — 節(jié)點和邊發(fā)生變化,添加、刪除、移動等
粗略地說,圖可以模糊地描述為:
- 密集的(Dense) — 由許多節(jié)點和邊組成
- 稀疏的(Sparse) — 由較少的節(jié)點和邊組成
通過將它們轉(zhuǎn)化為平面形式,可以使圖看起來更整潔,這基本上意味著重新排列節(jié)點,使邊不相交。
當(dāng)我們探索目前在各種GNN架構(gòu)中使用的許多不同方法時,這些概念和術(shù)語將會派上用場。其中一些基本方法在以下方面進(jìn)行了描述:
1.3 圖分析
有各種不同的圖結(jié)構(gòu)可供ML模型學(xué)習(xí)(Wheel,Cycle,Star,Grid,Lollipop,Dense,Sparse等)。
你可以遍歷一個圖:
Jon在4個時間步驟內(nèi)從Bob到Bic;他最好希望不下雪!
在這種情況下,我們正在遍歷一個無向圖。顯然,如果圖是有向的,那么只需按照邊的方向前進(jìn)。有幾種不同類型的遍歷,所以要注意措辭。以下是一些最常見的圖遍歷術(shù)語及其含義:
- 行走(Walk):圖的遍歷 —— 閉合行走是指目標(biāo)節(jié)點與源節(jié)點相同
- 小徑(Trail):沒有重復(fù)邊的行走 —— 電路(Circuit)是閉合小徑
- 路徑(Path):沒有重復(fù)節(jié)點的行走 —— 循環(huán)(Cycle)是閉合路徑
在遍歷的概念基礎(chǔ)上,人們還可以在圖上發(fā)送消息。
Sam?更像是S-p-am(垃圾郵件)...
所有的Sam的鄰居都給他發(fā)送了一條消息,其中t代表時間步驟。Sam可以選擇打開他的郵箱并更新自己的信息。在具有注意機制的模型中,信息在網(wǎng)絡(luò)中傳播的概念非常重要。在圖中,消息傳遞是我們泛化卷積的一種方式。稍后會詳細(xì)討論。
1.4 E-圖 — 計算機上的圖
通過學(xué)習(xí)所有這些,你現(xiàn)在對圖理論有了基本的理解!任何對GNNs重要的其他概念將會隨著它們的出現(xiàn)而進(jìn)行解釋,但與此同時,還有一個關(guān)于圖的最后一個主題我們需要涵蓋。我們必須學(xué)會如何在計算中表達(dá)圖。
有幾種方法可以將圖轉(zhuǎn)化為計算機可以處理的格式;它們都是不同類型的矩陣。
關(guān)聯(lián)矩陣Incidence Matrix(I):
關(guān)聯(lián)矩陣通常在研究論文中用大寫字母I表示,由1、0和-1組成,關(guān)聯(lián)矩陣可以按照以下簡單的模式制作:
從圖到關(guān)聯(lián)矩陣
(帶權(quán)重的)鄰接矩陣Adjacency Matrix(A):
圖的鄰接矩陣由1和0組成,除非它是加權(quán)或帶標(biāo)簽的。在任何情況下,A都可以按照以下規(guī)則構(gòu)建:
無向圖的鄰接矩陣因此在其對角線上是對稱的,從左上角對象到右下角:
有向圖的鄰接矩陣只覆蓋對角線線的一側(cè),因為有向圖的邊只朝一個方向。
鄰接矩陣可以是“帶權(quán)重的”,這基本上意味著每條邊都有與之關(guān)聯(lián)的值,所以不是1,而是將值放在相應(yīng)的矩陣坐標(biāo)中。這些權(quán)重可以代表任何你想要的東西。例如,在分子的情況下,它們可以表示兩個節(jié)點(原子)之間的鍵的類型。在LinkedIn這樣的社交網(wǎng)絡(luò)中,它們可以表示兩個節(jié)點(人)之間的1st、2nd或3rd級連接。
邊的權(quán)重概念是使GNNs如此強大的一個屬性;它們允許我們考慮結(jié)構(gòu)性(依賴性)和獨立性信息。對于實際應(yīng)用,這意味著我們可以考慮外部和內(nèi)部信息。
度矩陣(D):
圖的度矩陣可以通過之前介紹的度概念來找到。D本質(zhì)上是一個對角矩陣,其中對角線的每個值都是其對應(yīng)節(jié)點的度數(shù)。
各種類型的圖和矩陣(由歐洲生物信息學(xué)研究所提供)
不要忘記度數(shù)只是鄰接矩陣的每一行的總和。然后,這些度數(shù)被放在矩陣的對角線上(鄰接矩陣的對稱線)。這很好地引出了最后的矩陣:
拉普拉斯矩陣(L):
圖的拉普拉斯矩陣是通過從鄰接矩陣中減去度矩陣而得到的:
度矩陣中的每個值都減去了相應(yīng)的鄰接矩陣中的值,如下所示:
圖矩陣三合一(由維基百科提供)
還有其他圖矩陣表示法,如關(guān)聯(lián)矩陣,但絕大多數(shù)應(yīng)用于圖類型數(shù)據(jù)的GNN應(yīng)用都使用這三個矩陣中的一個、兩個或全部。這是因為它們,尤其是拉普拉斯矩陣,提供了關(guān)于實體(具有屬性的元素)和關(guān)系(實體之間的連接)的重要信息。
唯一缺失的是一個規(guī)則(將實體通過關(guān)系映射到其他實體的函數(shù))。這就是神經(jīng)網(wǎng)絡(luò)派上用場的地方。
2. 深度學(xué)習(xí)
神經(jīng)網(wǎng)絡(luò)模型(或簡稱NN)及其擴展家族,包括卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò),當(dāng)然還有圖神經(jīng)網(wǎng)絡(luò),都是深度學(xué)習(xí)算法的一種類型。
深度學(xué)習(xí)是一種機器學(xué)習(xí)算法,而機器學(xué)習(xí)又是人工智能的一個子集。
一切都始于謙卑的線性方程。
如果我們將這個方程結(jié)構(gòu)化為一個感知器,我們可以看到:
其中輸出( )是偏差( )與輸入( )乘以權(quán)重( )的和( )。
神經(jīng)網(wǎng)絡(luò)通常具有激活函數(shù),它基本上決定了一個給定神經(jīng)元的輸出( )是否應(yīng)該被認(rèn)為是“激活的”,并將感知器的輸出值保持在一個合理的可計算范圍內(nèi)(例如,sigmoid函數(shù)用于 范圍,tanh函數(shù)用于 范圍,ReLU函數(shù)用于 或 等)。這就是為什么我們在感知器的末端附加激活函數(shù)的原因。
當(dāng)我們將一堆感知器放在一起時,我們得到了一個類似于神經(jīng)網(wǎng)絡(luò)開端的東西!這些感知器將數(shù)值值從一層傳遞到另一層,每一次傳遞都將該數(shù)值值接近網(wǎng)絡(luò)經(jīng)過訓(xùn)練的目標(biāo)/標(biāo)簽。
當(dāng)你把一堆感知器放在一起時,你會得到:
一個普通的NN(由Digital Trends提供)
要訓(xùn)練神經(jīng)網(wǎng)絡(luò),我們首先需要計算我們需要調(diào)整模型權(quán)重的量。我們使用損失函數(shù)來做到這一點,它計算誤差。
其中 是誤差, 是期望的輸出, 是實際輸出。在高層次上,誤差計算為實際輸出(神經(jīng)網(wǎng)絡(luò)的預(yù)測)減去期望輸出(目標(biāo))。目標(biāo)是最小化誤差。通過使用稱為反向傳播的過程來調(diào)整每一層的權(quán)重來最小化誤差。
基本上,反向傳播將調(diào)整從輸出層傳播到輸入層的整個網(wǎng)絡(luò)。所調(diào)整的量由接收誤差作為輸入的優(yōu)化函數(shù)確定。優(yōu)化函數(shù)可以被想象成一個球在山上滾動,球的位置就是誤差。因此,當(dāng)球滾到山底時,誤差達(dá)到最小值。
此外,還有一些必須定義的超參數(shù),其中最重要的之一是學(xué)習(xí)率。學(xué)習(xí)率調(diào)整了優(yōu)化函數(shù)應(yīng)用的速率。學(xué)習(xí)率就像重力設(shè)置;重力越大(學(xué)習(xí)率越高),球滾得越快,反之亦然。
神經(jīng)網(wǎng)絡(luò)具有許多不同的宏觀和微觀自定義選項,使每個模型都具有獨特的特點,性能各異,但它們都是基于這個基本模型的。稍后我們將看到,這對于圖學(xué)習(xí)尤其如此。根據(jù)需要將介紹卷積和重復(fù)等操作。
3. 深度神經(jīng)網(wǎng)絡(luò)就是一種圖
文章到此,你可能已經(jīng)注意到一個微妙但顯而易見的事實:
神經(jīng)網(wǎng)絡(luò)實際上就是圖!
神經(jīng)網(wǎng)絡(luò)是一種特殊的圖,但它們具有相同的結(jié)構(gòu),因此具有相同的術(shù)語、概念和規(guī)則。
回想一下感知器的結(jié)構(gòu)本質(zhì)。我們可以將輸入值( )、偏差值( )和求和運算( )視為圖中的3個節(jié)點。我們可以將權(quán)重( )視為連接輸入值( )和求和運算( )的邊。
神經(jīng)網(wǎng)絡(luò)最相似的具體類型是多部分圖。多部分圖是可以分成不同節(jié)點集的圖。每個節(jié)點集中的節(jié)點可以在節(jié)點集之間共享邊,但不能在每個節(jié)點集內(nèi)部共享邊。
同構(gòu)二分圖(由Wolfram MathWorld提供)
有些神經(jīng)網(wǎng)絡(luò)甚至具有完全連接的節(jié)點、條件節(jié)點和其他瘋狂的架構(gòu),這些架構(gòu)賦予了神經(jīng)網(wǎng)絡(luò)其特有的多功能性和強大性能;以下是一些最流行的架構(gòu):
神經(jīng)網(wǎng)絡(luò)動物園(由Asimov Institute提供)
每種顏色對應(yīng)于不同類型的節(jié)點,可以以多種不同的方式排列。通過網(wǎng)絡(luò)中的數(shù)據(jù)前向或后向傳播類似于圖中的消息傳遞。圖中的邊緣或節(jié)點特征類似于神經(jīng)網(wǎng)絡(luò)中的權(quán)重。請注意,一些節(jié)點甚至具有我們之前提到的自環(huán)(RNNs — 循環(huán)神經(jīng)網(wǎng)絡(luò)中的特性)。
神經(jīng)網(wǎng)絡(luò)并不是唯一具有類似圖結(jié)構(gòu)的機器學(xué)習(xí)模型。
- K均值
- K最近鄰
- 決策樹
- 隨機森林
- 馬爾可夫鏈
如上模型,它們本身都具有圖形結(jié)構(gòu),或者以圖形結(jié)構(gòu)輸出數(shù)據(jù)。
4. 本質(zhì)上
我們涵蓋了很多內(nèi)容,但回顧一下,我們深入探討了3個概念:
- 圖論
- 深度學(xué)習(xí)
- 使用圖理論的機器學(xué)習(xí)
有了這些先決條件,人們可以充分理解和欣賞圖學(xué)習(xí)。在高層次上,圖學(xué)習(xí)進(jìn)一步探索并利用了深度學(xué)習(xí)和圖理論之間的關(guān)系,使用一系列設(shè)計用于處理非歐幾里德數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)。
5. 關(guān)鍵要點
有許多關(guān)鍵要點,但要點是:
- 所有圖都具有定義其可用或可分析操作的屬性。
- 圖是使用各種矩陣來進(jìn)行計算表示的。每個矩陣提供不同數(shù)量或類型的信息。
- 深度學(xué)習(xí)是機器學(xué)習(xí)的一個子集,大致模擬人類大腦中神經(jīng)元工作的方式。
- 深度學(xué)習(xí)通過在網(wǎng)絡(luò)中前向傳遞信息并向后傳播神經(jīng)元調(diào)整來進(jìn)行迭代學(xué)習(xí)。
- 神經(jīng)網(wǎng)絡(luò)(以及其他機器學(xué)習(xí)算法)與圖理論有密切聯(lián)系;
現(xiàn)在你具備了深入了解圖學(xué)習(xí)的所有先決條件。一個好的起點是研究迄今為止已經(jīng)開發(fā)的各種圖神經(jīng)網(wǎng)絡(luò)的種類。
-
音頻
+關(guān)注
關(guān)注
29文章
3030瀏覽量
83230 -
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7250瀏覽量
91512 -
卷積
+關(guān)注
關(guān)注
0文章
95瀏覽量
18730 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5557瀏覽量
122648
發(fā)布評論請先 登錄
AI、5G和生物識別上榜 阿里巴巴達(dá)摩院發(fā)布2019十大科技趨勢
深度學(xué)習(xí)與圖神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)分享:CNN經(jīng)典網(wǎng)絡(luò)之-ResNet

Nanopi深度學(xué)習(xí)之路(1)深度學(xué)習(xí)框架分析
深度學(xué)習(xí)在汽車中的應(yīng)用
如何在交通領(lǐng)域構(gòu)建基于圖的深度學(xué)習(xí)架構(gòu)
深度學(xué)習(xí)存在哪些問題?
深度學(xué)習(xí)模型是如何創(chuàng)建的?
什么是深度學(xué)習(xí)?使用FPGA進(jìn)行深度學(xué)習(xí)的好處?
深度學(xué)習(xí)是什么?了解深度學(xué)習(xí)難嗎?讓你快速了解深度學(xué)習(xí)的視頻講解
關(guān)系歸納偏差和深度學(xué)習(xí)及圖神經(jīng)網(wǎng)絡(luò)的詳細(xì)資料說明

深度學(xué)習(xí)與圖神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)分享:Transformer

評論