【Pytorch神经网络理论篇】 25 基于谱域图神经网络GNN:基础知识+GNN功能+矩阵基础+图卷积神经网络+拉普拉斯矩阵
圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Network,GNN)是一類能夠從圖結(jié)構(gòu)數(shù)據(jù)中學(xué)習(xí)特征規(guī)律的神經(jīng)網(wǎng)絡(luò),是解決圖結(jié)構(gòu)數(shù)據(jù)(非歐氏空間數(shù)據(jù))機(jī)器學(xué)習(xí)問題的最重要的技術(shù)。
1 圖神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)知識
? ? 圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Network,GNN)是一類能夠從圖結(jié)構(gòu)數(shù)據(jù)中學(xué)習(xí)特征規(guī)律的神經(jīng)網(wǎng)絡(luò),是解決圖結(jié)構(gòu)數(shù)據(jù)(非歐氏空間數(shù)據(jù))機(jī)器學(xué)習(xí)問題的最重要的技術(shù)之一。
? ? 前面章節(jié)中主要介紹了神經(jīng)網(wǎng)絡(luò)的相關(guān)知識。接下來,讓我們了解一下圖神經(jīng)網(wǎng)絡(luò)相關(guān)的基礎(chǔ)知識。
1.1 歐氏空間與非歐氏空間
- 歐氏空間/歐幾里得空間:能用一維、二維或更高維的矩陣表示,其最顯著的特征就是有規(guī)則的空間結(jié)構(gòu)。這是一個特別的度量空間。例如,音頻、圖像和視頻等都是定義在歐氏空間下的歐幾里得結(jié)構(gòu)化數(shù)據(jù)。
- 非歐氏空間:并不是平坦的規(guī)則空間,是曲面空間,即規(guī)則矩陣空間以外的結(jié)構(gòu)。非歐氏空間下最有代表的結(jié)構(gòu)就是圖(graph)結(jié)構(gòu),它常用來表示社交網(wǎng)絡(luò)等關(guān)系數(shù)據(jù)。
1.2 圖
在計(jì)算機(jī)科學(xué)中,圖是由頂點(diǎn)(也稱節(jié)點(diǎn))和頂點(diǎn)之間的邊組成的一種數(shù)據(jù)結(jié)構(gòu)。它通常表示為G(V,E)的形式,其中G表示一個圖,V是圖G中頂點(diǎn)的集合,E是圖G中邊的集合。
圖結(jié)構(gòu)研究的是數(shù)據(jù)元素之間的多對多關(guān)系,即任意兩個元素之間都可能存在關(guān)系,即頂點(diǎn)之間的關(guān)系可以是任意的,圖中任意元素之間都可能相關(guān)。
在圖結(jié)構(gòu)中,不允許沒有頂點(diǎn)。任意兩個頂點(diǎn)之間都有可能有關(guān)系,頂點(diǎn)之間的邏輯關(guān)系用邊來表示。邊可以是有向的或無向的,邊集合可以是空的。
圖結(jié)構(gòu)中的每個頂點(diǎn)都有自己的特征信息,頂點(diǎn)間的關(guān)系可以反映出圖結(jié)構(gòu)的特征信息。在實(shí)際的應(yīng)用中,可以根據(jù)圖頂點(diǎn)特征或圖結(jié)構(gòu)特征進(jìn)行分類。
1.3?圖相關(guān)的術(shù)語
- 無向圖和有向圖:根據(jù)圖頂點(diǎn)之間的邊是否帶有方向來確定。
- 權(quán):圖中的邊或弧上附加的數(shù)量信息,這種可反映邊或弧的某種特征的數(shù)據(jù)稱為權(quán)。
- 網(wǎng):圖上的邊或弧帶權(quán)則稱為網(wǎng),可分為有向網(wǎng)和無向網(wǎng)。
- 度:在無向圖中,與頂點(diǎn)v關(guān)聯(lián)的邊的條數(shù)稱為頂點(diǎn)v的度。在有向圖中,則以頂點(diǎn)v為弧尾的弧的數(shù)量稱為頂點(diǎn)v的出度,以頂點(diǎn)v為弧頭的弧的數(shù)量稱為頂點(diǎn)v的入度,而頂點(diǎn)ν的度即其出度與入度之和。
1.4 圖計(jì)算中的度量單位
1.5?結(jié)構(gòu)化數(shù)據(jù)與非結(jié)構(gòu)化數(shù)據(jù)
1.5.1?結(jié)構(gòu)化數(shù)據(jù)
由二維表結(jié)構(gòu)來進(jìn)行邏輯表達(dá)和實(shí)現(xiàn)的數(shù)據(jù),嚴(yán)格地遵循數(shù)據(jù)格式與長度規(guī)范,主要通過關(guān)系型數(shù)據(jù)庫進(jìn)行存儲和管理。
1.5.2?非結(jié)構(gòu)化數(shù)據(jù)
數(shù)據(jù)結(jié)構(gòu)不規(guī)則或不完整、沒有預(yù)定義的數(shù)據(jù)模型,不方便用數(shù)據(jù)庫二維邏輯表來表現(xiàn)的數(shù)據(jù)。它包括所有格式的辦公文檔、文本、圖片HTML、各類報表、圖像、音頻或視頻信息等。
1.6 GNN在不同類型數(shù)據(jù)上的應(yīng)用
圖神經(jīng)網(wǎng)絡(luò)(GNN)是一種直接在圖結(jié)構(gòu)上運(yùn)行的神經(jīng)網(wǎng)絡(luò),可以對圖結(jié)構(gòu)數(shù)據(jù)進(jìn)行基于節(jié)點(diǎn)特征或結(jié)構(gòu)特征的處理,通過頂點(diǎn)間的信息傳遞、變換和聚合來(層級化)提取或處理特征。GNN成為在圖、點(diǎn)云和流形上進(jìn)行表征學(xué)習(xí)的主流方法。
在結(jié)構(gòu)化場景中,GNN被廣泛應(yīng)用在社交網(wǎng)絡(luò)、推薦系統(tǒng)、物理系統(tǒng)、化學(xué)分子預(yù)測,指知識圖譜。
在非結(jié)構(gòu)化領(lǐng)域,GNN可以用在圖像和文本等領(lǐng)域。
在其他領(lǐng)域,還有圖生成模型和使用GNN來解決組合優(yōu)化問題的場景。
1.7 GNN的起源
1.7.1 GCN?
GNN的第一個動機(jī)源于卷積神經(jīng)網(wǎng)絡(luò)(CNN),最基礎(chǔ)的CNN便是圖卷積網(wǎng)絡(luò)(GraphConvolutional Network,GCN)。GNN的廣泛應(yīng)用帶來了機(jī)器學(xué)習(xí)領(lǐng)域的突破并開啟了深在規(guī)則的歐氏空間數(shù)據(jù)上運(yùn)行,GCD是將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用在各模型。
1.7.2 圖嵌入
GNN的另一個動機(jī)來自圖嵌入,它學(xué)習(xí)圖中節(jié)點(diǎn)、邊或子圖的低維向量空間表示。DeepWalk、LINE、SDNE等方法在網(wǎng)絡(luò)表示學(xué)習(xí)領(lǐng)域取得了很大的成功,然而這些方法在計(jì)算上較為復(fù)雜并且在大規(guī)模的圖上并不是最優(yōu)的。GNN卻可以解決這些問題。
1.7.3 總結(jié)
GNN不但可以對單個頂點(diǎn)和整個結(jié)構(gòu)進(jìn)行特征處理,而且可以對圖中電一小部分頂點(diǎn)所組成的子圖)進(jìn)行特征處理。如果把圖數(shù)據(jù)當(dāng)作一個網(wǎng)絡(luò),那么GNN可以分別對網(wǎng)絡(luò)的整體、部分和個體進(jìn)行特征處理。GNN將深度學(xué)習(xí)技術(shù)應(yīng)用到由符號表示的圖數(shù)據(jù)上,充分融合了符號表示和低維向量表示,并發(fā)揮出兩者的優(yōu)勢。
2 矩陣基礎(chǔ)
2.1?哈達(dá)馬積
兩個矩對應(yīng)位置上的元素進(jìn)行相乘的結(jié)果
?2.2 點(diǎn)積
兩矩陣的行列乘法的結(jié)果
2.3 度矩陣與鄰接矩陣
圖的度矩陣:描述圖中每個節(jié)點(diǎn)所連接的邊數(shù)。
圖的鄰接矩陣:描述圖中每個節(jié)點(diǎn)之間的相鄰關(guān)系。
度矩陣D:
?鄰接矩陣A:
?2.4 鄰接矩陣的幾種操作
鄰接矩陣的行數(shù)和列數(shù)一定是相等的(即為方形矩陣)。無向圖的鄰接矩陣一定是對稱的,而有向圖的鄰接矩陣不一定對稱。 一般地,通過矩陣運(yùn)算對圖中的節(jié)點(diǎn)信息進(jìn)行處理。
2.4.1 獲取有向圖的短邊
2.4.2 獲取有向圖的長邊
2.4.3 將有向圖的鄰接矩陣轉(zhuǎn)化成無向圖的鄰接矩陣
3 圖卷積神經(jīng)網(wǎng)絡(luò)
在下圖中可以看到,圖卷積神經(jīng)網(wǎng)絡(luò)的輸入是一個圖,經(jīng)過一層層的計(jì)算變換后輸出的還是一個圖。
如果從卷積的角度來理解,那么可以將處理后的鄰接矩陣當(dāng)作一個卷積核,用這個卷積核在每一個隱藏層的特征結(jié)果上進(jìn)行全尺度卷積。由于該卷積核的內(nèi)容是圖中歸一化后的邊關(guān)系,因此用這種卷積核進(jìn)行卷積處理可使隱藏層的特征按照節(jié)點(diǎn)間的遠(yuǎn)近關(guān)系信息進(jìn)行轉(zhuǎn)化,對隱藏層的特征進(jìn)行了去噪處理。去噪后的特征含有同類樣本間的更多信息,從而使神經(jīng)網(wǎng)絡(luò)在沒有大量樣本的訓(xùn)練條件下,也可以訓(xùn)練出性能很好的模型。
圖神經(jīng)網(wǎng)絡(luò)的實(shí)質(zhì)是:對節(jié)點(diǎn)間的圖結(jié)構(gòu)關(guān)系進(jìn)行計(jì)算,并將計(jì)算結(jié)果作用在每個節(jié)點(diǎn)的屬性特征的擬合當(dāng)中。
3.1 圖結(jié)構(gòu)與拉普拉斯矩陣的關(guān)系
圖卷積本質(zhì)上不是傳播標(biāo)簽,而是傳播特征。圖卷積將未知的標(biāo)簽特征傳播到已知標(biāo)簽的特征節(jié)點(diǎn)上,利用已知標(biāo)簽節(jié)點(diǎn)的分類器對未知標(biāo)簽特征的屬性進(jìn)行推理。
圖卷積模型利用節(jié)點(diǎn)間的關(guān)系信息實(shí)現(xiàn)了特征的傳播。而節(jié)點(diǎn)間的關(guān)系信息又是通過加工后的鄰接矩陣來表現(xiàn)的。這個加工后的鄰接矩陣稱為拉普拉斯矩陣/基爾霍夫矩陣。
3.2 圖卷積操作的步驟
1、將圖結(jié)構(gòu)的特征用拉普拉斯矩陣表示。
2、將拉普拉斯矩陣作用在節(jié)點(diǎn)特征的計(jì)算模型中,完成節(jié)點(diǎn)特征的擬合。
拉普拉斯矩陣的主要用途是表述圖結(jié)構(gòu)的特征(對矩陣的特征進(jìn)行分解),是圖卷積操作的必要步驟。
3.3 拉普拉斯矩陣的三種形式
4 圖神經(jīng)網(wǎng)絡(luò)的角度看待深度學(xué)習(xí)
4.1 實(shí)例解釋圖神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)的關(guān)系(以神經(jīng)網(wǎng)絡(luò)中常見的圖像處理任務(wù)為例)
圖像通常被理解為矩陣,矩陣中的每個元素是像素,像素是由RGB通道的3個數(shù)值組成的向量。換個角度想想,矩陣也可以理解為圖譜,圖譜由點(diǎn)和邊組成,相鄰的點(diǎn)之間用邊相連。
4.1.1 矩陣是特殊的圖譜
(1)矩陣中的每個點(diǎn)有固定個數(shù)的鄰點(diǎn)。從圖譜的角度來看,圖像中的像素就是圖譜中的點(diǎn)。圖像中的每個像素,也就是圖譜中的每個點(diǎn),周邊總共有8個鄰點(diǎn)。
(2)矩陣中每條邊的權(quán)重是常數(shù)。從圖譜的角度來看,圖像中的每一個像素只與周邊8個鄰點(diǎn)之間有邊,其中邊的長短權(quán)重是常數(shù)。
4.1.2 圖譜的限制
圖像作為一種特殊的圖譜,其特殊性體現(xiàn)在這兩個限制上面。如果放松了這兩個限制,問題就更復(fù)雜了。這是深度學(xué)習(xí)算法向圖神經(jīng)網(wǎng)絡(luò)衍化的必經(jīng)之路。
4 圖神經(jīng)網(wǎng)絡(luò)使用拉普拉斯矩陣的原因
圖卷積的計(jì)算過程是將拉普拉斯矩陣與圖節(jié)點(diǎn)特征進(jìn)行點(diǎn)積運(yùn)算,實(shí)現(xiàn)圖結(jié)構(gòu)特征向單個節(jié)點(diǎn)特征的融合。主要從圖節(jié)點(diǎn)之間的傳播關(guān)系方面闡釋這個問題。
4.1 節(jié)點(diǎn)與鄰接矩陣的點(diǎn)積作用
4.1.1 點(diǎn)積計(jì)算
4.1.2?分析鄰居節(jié)點(diǎn)的聚合特征
4.1.3?結(jié)論
將節(jié)點(diǎn)特征與帶自環(huán)的鄰接矩陣執(zhí)行點(diǎn)積運(yùn)算,本質(zhì)上就是將每個節(jié)點(diǎn)特征與自己的鄰居節(jié)點(diǎn)特征相加,即對圖中鄰居節(jié)點(diǎn)特征進(jìn)行加法聚合。
4.2 拉普拉斯矩陣的點(diǎn)積作用
拉普拉斯矩陣本質(zhì)上是鄰接矩陣的歸一化。同理,拉普拉斯矩陣的點(diǎn)積作用本質(zhì)上也是圖中鄰居節(jié)點(diǎn)特征的加法聚合,只不過在加法聚合過程中加入歸一化計(jì)算。
4.3 圖卷積的擬合性質(zhì)
將圖結(jié)構(gòu)信息融入節(jié)點(diǎn)特征的操作,本質(zhì)上就是按照圖結(jié)構(gòu)中節(jié)點(diǎn)間的關(guān)系,將周圍鄰居的節(jié)點(diǎn)特征加起來。這樣,在相鄰的節(jié)點(diǎn)特征中,彼此都會有其他節(jié)點(diǎn)的特征信息,實(shí)現(xiàn)了標(biāo)簽節(jié)點(diǎn)的特征傳播。
4.4 點(diǎn)積計(jì)算的擴(kuò)展
使用矩陣運(yùn)算方法會有較大的局限性,因?yàn)樵诠?jié)點(diǎn)特征與拉普拉斯矩陣執(zhí)行點(diǎn)積的計(jì)算過程中,只能對圖中鄰居節(jié)點(diǎn)特征進(jìn)行加法聚合。
在圖節(jié)點(diǎn)的鄰居特征聚合過程中,還可以使用更多其他的數(shù)學(xué)方法(比如取平均值、最大值),并不局限于加法。
?
總結(jié)
以上是生活随笔為你收集整理的【Pytorch神经网络理论篇】 25 基于谱域图神经网络GNN:基础知识+GNN功能+矩阵基础+图卷积神经网络+拉普拉斯矩阵的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 提取多个字段_【博客翻译】建筑物轮廓线提
- 下一篇: 使用Pytorch处理多维特征的输入