【筆記整理】圖神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)
一、GNN簡介
參考
- 用于分析結(jié)構(gòu)化數(shù)據(jù)的圖神經(jīng)網(wǎng)絡(luò) (GNN) 簡介
- Graph Neural Networks: Methods, Applications, and Opportunities
- 圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Networks,GNN)綜述
- 如何通俗地解釋歐氏空間?
- 2021_金融智能下的圖機(jī)器學(xué)習(xí)實(shí)踐
- 2021_圖神經(jīng)網(wǎng)絡(luò)加速芯片:人工智能 “認(rèn)知智能”階段起飛的推進(jìn)劑
- A Gentle Introduction to Graph Neural Networks
1、圖結(jié)構(gòu) & 圖基礎(chǔ)算法
- 圖是一種數(shù)據(jù)結(jié)構(gòu),用來定義nodes集合以及這些節(jié)點(diǎn)的關(guān)系,常用于研究社交網(wǎng)絡(luò)和物理相互作用。
- 圖常應(yīng)用于生活中的方方面面,可以用來描繪人為感知不到的結(jié)構(gòu):比如原子,分子,生態(tài)系統(tǒng)等。圖結(jié)構(gòu)特征表示常應(yīng)用在社交網(wǎng)絡(luò),搜索引擎數(shù)據(jù)庫,街道地圖,分子,高能物理,生物化,化學(xué)混合物中。
- 圖由實(shí)體和相互關(guān)系構(gòu)成,可用于推理、交互、關(guān)系確定和市場研究等。
- 深度學(xué)習(xí)技術(shù)雖然能夠通過不同的非線性變換和梯度下降,在計(jì)算機(jī)視覺,自然語言處理等領(lǐng)域取得不錯的性能。但是他們缺乏對關(guān)系、原因的推理,因此在DNN中引入圖結(jié)構(gòu)的特征表示,因此稱該網(wǎng)絡(luò)為GNN。
- 在NLP, CV上取得不錯性能的深度學(xué)習(xí)技術(shù),通常是將數(shù)據(jù)表征到歐氏空間上,而對于有些域,它們遵循非歐幾里得空間,這時(shí)圖就可以作為理想的數(shù)據(jù)表征,來表示這些不同實(shí)體間的依賴和相互關(guān)系
1)引言(“非歐幾何, 處理圖數(shù)據(jù)的NN”)
參考圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Networks,GNN)綜述
在過去的幾年中,神經(jīng)網(wǎng)絡(luò)的興起與應(yīng)用成功推動了模式識別和數(shù)據(jù)挖掘的研究。許多曾經(jīng)嚴(yán)重依賴于手工提取特征的機(jī)器學(xué)習(xí)任務(wù)(如目標(biāo)檢測、機(jī)器翻譯和語音識別),如今都已被各種端到端的深度學(xué)習(xí)范式(例如卷積神經(jīng)網(wǎng)絡(luò)(CNN)、長短期記憶(LSTM)和自動編碼器)徹底改變了。曾有學(xué)者將本次人工智能浪潮的興起歸因于三個(gè)條件,分別是:
- 計(jì)算資源的快速發(fā)展(如GPU)
- 大量訓(xùn)練數(shù)據(jù)的可用性
- 深度學(xué)習(xí)從歐氏空間數(shù)據(jù)中提取潛在特征的有效性
近年來,人們對深度學(xué)習(xí)方法在圖上的擴(kuò)展越來越感興趣。在多方因素的成功推動下,研究人員借鑒了卷積網(wǎng)絡(luò)、循環(huán)網(wǎng)絡(luò)和深度自動編碼器的思想,定義和設(shè)計(jì)了用于處理圖數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),由此一個(gè)新的研究熱點(diǎn)——“圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Networks,GNN)”應(yīng)運(yùn)而生。
參考如何通俗地解釋歐氏空間?
盡管傳統(tǒng)的深度學(xué)習(xí)方法被應(yīng)用在提取歐氏空間數(shù)據(jù)的特征方面取得了巨大的成功,但許多實(shí)際應(yīng)用場景中的數(shù)據(jù)是從非歐式空間生成的,傳統(tǒng)的深度學(xué)習(xí)方法在處理非歐式空間數(shù)據(jù)上的表現(xiàn)卻仍難以使人滿意。
例如,在電子商務(wù)中,一個(gè)基于圖(Graph)的學(xué)習(xí)系統(tǒng)能夠利用用戶和產(chǎn)品之間的交互來做出非常準(zhǔn)確的推薦,但圖的復(fù)雜性使得現(xiàn)有的深度學(xué)習(xí)算法在處理時(shí)面臨著巨大的挑戰(zhàn)。這是因?yàn)?strong>圖是不規(guī)則的,每個(gè)圖都有一個(gè)大小可變的無序節(jié)點(diǎn),圖中的每個(gè)節(jié)點(diǎn)都有不同數(shù)量的相鄰節(jié)點(diǎn),導(dǎo)致一些重要的操作(例如卷積)在圖像(Image)上很容易計(jì)算,但不再適合直接用于圖。
此外,現(xiàn)有深度學(xué)習(xí)算法的一個(gè)核心假設(shè)是數(shù)據(jù)樣本之間彼此獨(dú)立。然而,對于圖來說,情況并非如此,圖中的每個(gè)數(shù)據(jù)樣本(節(jié)點(diǎn))都會有邊與圖中其他實(shí)數(shù)據(jù)樣本(節(jié)點(diǎn))相關(guān),這些信息可用于捕獲實(shí)例之間的相互依賴關(guān)系。
Note:歐氏空間 vs 非歐空間
歐氏空間是在內(nèi)積空間上推廣出來的,在實(shí)數(shù)域上進(jìn)行有限維數(shù)的向量表現(xiàn):
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-UqPpER8g-1685295716639)(file://D:\桌面\temp\temp\圖神經(jīng)網(wǎng)絡(luò)\img\v2-820f1a2e7aa093e1a372565747b185ed_720w.jpg?msec=1685295711941)]
常見的非歐空間有:羅氏空間,黎曼空間(球面幾何)
古希臘數(shù)學(xué)家歐幾里得的《幾何原本》提出了五條公設(shè)):
從一點(diǎn)向另一點(diǎn)可以引一條直線。
任意線段能無限延伸成一條直線。
給定任意線段,可以以其一個(gè)端點(diǎn)作為圓心,該線段作為半徑作一個(gè)圓。
所有直角都相等。
若兩條直線都與第三條直線相交,并且在同一邊的內(nèi)角之和小于兩個(gè)直角,則這兩條直線在這一邊必定相交;
或者是,給定一條直線,通過此直線外的任何一點(diǎn),有且只有一條直線與之平行;
或者是,若平面上有一條直線R和線外的一點(diǎn)P,則存在唯一的一條線滿足通過P點(diǎn)且不與R相交(第五公設(shè) - 平行公設(shè))。
長期以來,數(shù)學(xué)家們發(fā)現(xiàn)第五公設(shè)和前四個(gè)公設(shè)比較起來,顯得文字?jǐn)⑹鋈唛L,而且也不那么顯而易見。有些數(shù)學(xué)家還注意到歐幾里得在《幾何原本》一書中直到第29個(gè)命題中才用到,而且以后再也沒有使用。也就是說,在《幾何原本》中可以不依靠第五公設(shè)而推出前28個(gè)命題。因此,一些數(shù)學(xué)家提出,第五公設(shè)能不能不作為公設(shè),而作為定理?能不能依靠前四個(gè)公設(shè)來證明第五公設(shè)?這就是幾何發(fā)展史上最著名的,爭論了長達(dá)兩千多年的關(guān)于**“平行線理論”**的討論。由于證明第五公設(shè)的問題始終得不到解決,人們逐漸懷疑證明的路子走的對不對?第五公設(shè)到底能不能證明?
按幾何特性(曲率是幾何體不平坦程度的一種衡量,該點(diǎn)的曲率半徑是該點(diǎn)曲率的倒數(shù)),現(xiàn)存非歐幾何的類型可以概括如下:
堅(jiān)持第五公設(shè),引出**歐幾里得幾何**。
以“至少可以引最少兩條平行線”為新公設(shè),引出**羅氏幾何**(雙曲幾何)。
到目前為止,數(shù)學(xué)家對雙曲幾何中平行線的定義尚未有共識,不同的作者會給予不同的定義。這里定義兩條逐漸靠近的線為漸近線,它們互相漸進(jìn)(漸近線定義為如果曲線上的一點(diǎn)沿著趨于無窮遠(yuǎn)時(shí),該點(diǎn)與某條直線的距離趨于零,則稱此條直線為曲線的漸近線);兩條有共同垂直線的線為超平行線,它們互相超平行,并且兩條線為平行線代表它們互相漸進(jìn)或互相超平行。
以“一條平行線也不能引”為新公設(shè),引出**黎曼幾何**(球面幾何)。
球面幾何:在平面幾何(二維平面)中,基本的觀念是點(diǎn)和線。在球面上,點(diǎn)的觀念和定義依舊不變,但線不再是“直線”,而是兩點(diǎn)之間最短的距離,稱為測地線。在球面上,最短線是大圓的弧,所以平面幾何中的線在球面幾何中被大圓所取代。同樣的,在球面幾何中的角被定義在兩個(gè)大圓之間。
這三種幾何學(xué),都是常曲率空間中的幾何學(xué),分別對應(yīng)曲率為0、負(fù)常數(shù)和正常數(shù)的情況。
2)圖基本概念 & 分類(“鄰接矩陣, 圖結(jié)構(gòu)分類”)
用于分析結(jié)構(gòu)化數(shù)據(jù)的圖神經(jīng)網(wǎng)絡(luò) (GNN) 簡介
圖是由兩個(gè)部分組成的數(shù)據(jù)結(jié)構(gòu):頂點(diǎn)和邊。它用作數(shù)學(xué)結(jié)構(gòu)來分析對象和實(shí)體之間的成對關(guān)系。通常,圖定義為 G = ( V , E ) G=(V, E) G=(V,E),其中 V 是一組節(jié)點(diǎn),E 是它們之間的邊。
圖通常由鄰接矩陣 A 表示。如果圖有 N 個(gè)節(jié)點(diǎn),則 A 的維數(shù)為 ( N × N N \times N N×N)。人們有時(shí)會提供另一個(gè)特征矩陣來描述圖中的節(jié)點(diǎn)。如果每個(gè)節(jié)點(diǎn)有 F 個(gè)特征,則特征矩陣 X 的維度為 ( N × F N \times F N×F)。
不同的鄰接矩陣反映不同的圖
無/有向圖:
無向圖是常見的數(shù)據(jù)結(jié)構(gòu),常用于數(shù)據(jù)表征,其中無向邊放映兩節(jié)點(diǎn)的關(guān)系,不包含邊的方向信息。但是有向邊能夠提供節(jié)點(diǎn)間的類別等級信息。
異質(zhì)圖(異構(gòu)圖):
異質(zhì)圖是指圖中有不同類型的節(jié)點(diǎn)。對于這種類型的圖通常使用one-hot編碼將每個(gè)節(jié)點(diǎn)進(jìn)行唯一表示。知識圖譜就是一個(gè)異質(zhì)圖。
異質(zhì)性是異質(zhì)圖的一個(gè)內(nèi)在屬性,即各種類型的節(jié)點(diǎn)和邊。例如,不同類型的節(jié)點(diǎn)具有不同的特征,其特征可能落在不同的特征空間中。仍以IMDB 為例,演員的特征可能涉及性別、年齡和國籍。另一方面,電影的特征可能涉及到情節(jié)和演員。如何處理這些復(fù)雜的結(jié)構(gòu)信息,同時(shí)保留不同的特征信息,是一個(gè)亟待解決的問題。
參考2021_金融智能下的圖機(jī)器學(xué)習(xí)實(shí)踐
早期的圖機(jī)器學(xué)習(xí)研究主要針對比較簡單的同質(zhì)圖(homogenous graph),即不區(qū)分節(jié)點(diǎn)和邊的類型的圖。但是在復(fù)雜的金融場景中,我們獲得的圖數(shù)據(jù)的節(jié)點(diǎn)或邊的類型往往是多樣的,我們稱之為 異質(zhì)圖(heterogenous graph)。異質(zhì)圖從不同方面極大地豐富了圖數(shù)據(jù)的語義信息。此外,金融場景還有豐富的事實(shí)數(shù)據(jù),往往會通過一種特殊的異質(zhì)圖, 即知識圖譜(knowledge graph)進(jìn)行刻畫。相比于一般的異質(zhì)圖,知識圖譜除了強(qiáng)調(diào)實(shí)體間的拓?fù)潢P(guān)系,也強(qiáng)調(diào)本體層面的語義關(guān)系,其表達(dá)學(xué)習(xí)和應(yīng) 用是金融場景下圖機(jī)器學(xué)習(xí)的研究重點(diǎn)。
參考異構(gòu)圖注意力網(wǎng)絡(luò)
動態(tài)圖:
動態(tài)圖是指圖結(jié)構(gòu)會隨著時(shí)間而變化,它們的輸入也許是動態(tài)的,節(jié)點(diǎn)和邊在圖中是不停更新的。
一般是對nodes進(jìn)行添加和刪除操作,而對應(yīng)的節(jié)點(diǎn)的edges不是創(chuàng)建就是更新。
屬性圖:
屬性圖:graphs中的邊包含權(quán)重和類型等額外信息。這些knowledge能夠推進(jìn)框架的發(fā)展,比如G2S編碼器和關(guān)系GCN。
3)傳統(tǒng)的圖分析方法(“搜索, 路徑, 生成樹, 聚類”)
傳統(tǒng)的方法大多是基于算法的,例如:
- 搜索算法,例如 BFS、DFS
- 最短路徑算法,例如 Dijkstra’s algorithm, Nearest Neighbor
- 生成樹算法,例如 Prim 算法
- 聚類方法,例如高度連接的組件,k-mean
這種算法的局限性在于,我們需要以一定的置信度獲得圖的先驗(yàn)知識,然后才能應(yīng)用該算法。換句話說,它沒有為我們研究圖形本身提供任何手段。最重要的是,沒有辦法執(zhí)行圖級分類。
2、GNN處理的數(shù)據(jù) & 應(yīng)用
1)GNN能做什么(“基本分類, NLP, CV…”)
GNN 解決的問題大致可以分為三類:
節(jié)點(diǎn)分類(node預(yù)測):
在節(jié)點(diǎn)分類中,任務(wù)是預(yù)測圖中每個(gè)節(jié)點(diǎn)的節(jié)點(diǎn)嵌入(類別用嵌入描述)。這種類型的問題通常以半監(jiān)督的方式訓(xùn)練,其中只有部分圖被標(biāo)記。節(jié)點(diǎn)分類的典型應(yīng)用包括引文網(wǎng)絡(luò)、Reddit 帖子、Youtube 視頻和 Facebook 好友關(guān)系。[跳轉(zhuǎn)](#2)結(jié)構(gòu)化數(shù)據(jù)分析(“結(jié)構(gòu)化 vs 半/非結(jié)構(gòu)化, 類別編碼 vs 實(shí)體嵌入”))
鏈接預(yù)測(邊預(yù)測):
在鏈接預(yù)測中,任務(wù)是理解圖中實(shí)體之間的關(guān)系,并預(yù)測兩個(gè)實(shí)體之間是否存在連接。例如,推薦系統(tǒng)可以被視為鏈接預(yù)測問題,其中模型被賦予一組用戶對不同產(chǎn)品的評論,任務(wù)是預(yù)測用戶的偏好并調(diào)整推薦系統(tǒng)以根據(jù)用戶推送更多相關(guān)產(chǎn)品興趣。跳轉(zhuǎn)
圖分類(全局預(yù)測):
在圖分類中,任務(wù)是將整個(gè)圖分類為不同的類別。它類似于圖像分類,但目標(biāo)變?yōu)閳D域??梢詰?yīng)用圖分類的工業(yè)問題范圍很廣,例如,在化學(xué)、生物醫(yī)學(xué)、物理學(xué)中,模型被賦予分子結(jié)構(gòu)并要求將目標(biāo)分類為有意義的類別。它加速了原子、分子或任何其他結(jié)構(gòu)化數(shù)據(jù)類型的分析。跳轉(zhuǎn))
自然語言處理中的 GNN
GNN 廣泛用于自然語言處理 (NLP)。實(shí)際上,這也是 GNN 最初開始的地方。如果你們中的一些人在 NLP 方面有經(jīng)驗(yàn),你一定認(rèn)為文本應(yīng)該是一種序列或時(shí)間數(shù)據(jù),可以用 RNN 或 LTSM 最好地描述。好吧,GNN 從一個(gè)完全不同的角度來解決這個(gè)問題。GNN 利用單詞或文檔的內(nèi)部關(guān)系來預(yù)測類別。例如,引文網(wǎng)絡(luò)試圖預(yù)測網(wǎng)絡(luò)中每篇論文由論文引文關(guān)系給出的標(biāo)簽以及其他論文中引用的詞。它還可以通過查看句子的不同部分來構(gòu)建句法模型,而不是像 RNN 或 LTSM 那樣完全按順序進(jìn)行。
計(jì)算機(jī)視覺中的 GNN
許多基于 CNN 的方法在圖像中的對象檢測方面取得了最先進(jìn)的性能,但我們還不知道對象之間的關(guān)系。GNN 在 CV 中的一個(gè)成功應(yīng)用是使用圖來模擬由基于 CNN 的檢測器檢測到的對象之間的關(guān)系。從圖像中檢測到對象后,將它們送入 GNN 推理以進(jìn)行關(guān)系預(yù)測。GNN 推理的結(jié)果是生成的圖,該圖對不同對象之間的關(guān)系進(jìn)行建模。
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-QTUMXttw-1685295716643)(file://D:\桌面\temp\temp\圖神經(jīng)網(wǎng)絡(luò)\img\v2-26b458f6adf32e29af5c7c85e56886f3_720w.jpg?msec=1685295711941)]
CV 中另一個(gè)有趣的應(yīng)用是從圖形描述中生成圖像。這可以解釋為幾乎與上述應(yīng)用程序相反。傳統(tǒng)的圖像生成方式是使用 GAN 或自動編碼器生成文本到圖像。與使用文本進(jìn)行圖像描述不同,圖到圖像生成提供了有關(guān)圖像語義結(jié)構(gòu)的更多信息。
其他領(lǐng)域的 GNN
GNN 的更多實(shí)際應(yīng)用包括人類行為檢測、交通控制、分子結(jié)構(gòu)研究、推薦系統(tǒng)、程序驗(yàn)證、邏輯推理、社會影響預(yù)測和對抗性攻擊預(yù)防。下面顯示了一個(gè)圖表,它對社交網(wǎng)絡(luò)中的人們的關(guān)系進(jìn)行建模。GNN 可用于將人們聚類到不同的社區(qū)群體中。
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-NUoogt3g-1685295716644)(file://D:\桌面\temp\temp\圖神經(jīng)網(wǎng)絡(luò)\img\v2-6a086c613cee58c9a527f17459e56e14_720w.jpg?msec=1685295711940)]
2)結(jié)構(gòu)化數(shù)據(jù)分析(“結(jié)構(gòu)化 vs 半/非結(jié)構(gòu)化, 類別編碼 vs 實(shí)體嵌入”)
參考
-
如何用深度學(xué)習(xí)處理結(jié)構(gòu)化數(shù)據(jù)?
-
用于分析結(jié)構(gòu)化數(shù)據(jù)的圖神經(jīng)網(wǎng)絡(luò) (GNN) 簡介
-
https://blog.csdn.net/weixin_33293612/article/details/113326092
-
https://zhidao.baidu.com/question/1862145110038725227.html
- 結(jié)構(gòu)化的數(shù)據(jù)是指可以使用關(guān)系型數(shù)據(jù)庫表示和存儲,表現(xiàn)為二維形式的數(shù)據(jù)。一般特點(diǎn)是:數(shù)據(jù)以行為單位,一行數(shù)據(jù)表示一個(gè)實(shí)體的信息,每一行數(shù)據(jù)的屬性是相同的。結(jié)構(gòu)化的數(shù)據(jù)的存儲和排列是很有規(guī)律的,這對查詢和修改等操作很有幫助。
- 半結(jié)構(gòu)化數(shù)據(jù)屬于同一類實(shí)體可以有不同的屬性,即使他們被組合在一起,這些屬性的順序并不重要。常見的半結(jié)構(gòu)化數(shù)據(jù)有XML和JSON。
- 非結(jié)構(gòu)化數(shù)據(jù),顧名思義,就是沒有固定結(jié)構(gòu)的數(shù)據(jù)。各種文檔、圖片、視頻/音頻等都屬于非結(jié)構(gòu)化數(shù)據(jù)。對于這類數(shù)據(jù),我們一般直接整體進(jìn)行存儲,而且一般存儲為二進(jìn)制的數(shù)據(jù)格式。
結(jié)構(gòu)化數(shù)據(jù)偏愛樹結(jié)構(gòu)的原因:
在處理結(jié)構(gòu)化數(shù)據(jù)時(shí),人們往往更偏愛基于樹的方法,而不是神經(jīng)網(wǎng)絡(luò)。原因?yàn)楹危窟@可以從算法的角度理解——算法究竟是如何對待和處理我們的數(shù)據(jù)的。
人們對結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)的處理方式是不同的。非結(jié)構(gòu)化數(shù)據(jù)雖然是「非常規(guī)的」,但我們通常處理的是單位量的單個(gè)實(shí)體,比如像素、體素、音頻頻率、雷達(dá)反向散射、傳感器測量結(jié)果等等。而對于結(jié)構(gòu)化數(shù)據(jù),我們往往需要處理多種不同的數(shù)據(jù)類型;這些數(shù)據(jù)類型分為兩大類:數(shù)值數(shù)據(jù)和類別數(shù)據(jù)。類別數(shù)據(jù)需要在訓(xùn)練之前進(jìn)行預(yù)處理,因?yàn)榘窠?jīng)網(wǎng)絡(luò)在內(nèi)的大多數(shù)算法都還不能直接處理它們。
編碼變量有很多可選的方法,比如標(biāo)簽/數(shù)值編碼和 one-hot 編碼。神經(jīng)網(wǎng)絡(luò)的連續(xù)性本質(zhì)(!?。。┫拗屏怂鼈冊陬悇e變量上的應(yīng)用。因此,用整型數(shù)表示類別變量然后就直接應(yīng)用神經(jīng)網(wǎng)絡(luò),不能得到好的結(jié)果。
結(jié)構(gòu)化數(shù)據(jù)如何在神經(jīng)網(wǎng)絡(luò)中使用:
基于樹的算法不需要假設(shè)類別變量是連續(xù)的,因?yàn)樗鼈兛梢?strong>按需要進(jìn)行分支來找到各個(gè)狀態(tài),但神經(jīng)網(wǎng)絡(luò)不是這樣的。實(shí)體嵌入(entity embedding)可以幫助解決這個(gè)問題。實(shí)體嵌入可用于將離散值映射到多維空間中,其中具有相似函數(shù)輸出的值彼此靠得更近。比如說,如果你要為一個(gè)銷售問題將各個(gè)省份嵌入到國家這個(gè)空間中,那么相似省份的銷售就會在這個(gè)投射的空間相距更近。因?yàn)槲覀儾幌朐谖覀兊念悇e變量的層次上做任何假設(shè),所以我們將在歐幾里得空間中學(xué)習(xí)到每個(gè)類別的更好表示。這個(gè)表示很簡單,就等于 one-hot 編碼與可學(xué)習(xí)的權(quán)重的點(diǎn)積。
嵌入在 NLP 領(lǐng)域有非常廣泛的應(yīng)用,其中每個(gè)詞都可表示為一個(gè)向量。Glove 和 word2vec 是其中兩種著名的嵌入方法。盡管人們對「實(shí)體嵌入」有不同的說法,但它們與我們在詞嵌入上看到的用例并沒有太大的差異。畢竟,我們只關(guān)心我們的分組數(shù)據(jù)有更高維度的向量表示;這些數(shù)據(jù)可能是詞、每星期的天數(shù)、國家等等。
我們將一步步探索如何在神經(jīng)網(wǎng)絡(luò)中學(xué)習(xí)這些特征。定義一個(gè)全連接的神經(jīng)網(wǎng)絡(luò),然后將數(shù)值變量和類別變量分開處理。
對于每個(gè)類別變量:
- 初始化一個(gè)隨機(jī)的嵌入矩陣 m × D m \times D m×D:
m:類別變量的不同層次(星期一、星期二……)的數(shù)量
D:用于表示的所需的維度,這是一個(gè)可以取值 1 到 m-1 的超參數(shù)(取 1 就是標(biāo)簽編碼,取 m 就是 one-hot 編碼)
- 然后,對于神經(jīng)網(wǎng)絡(luò)中的每一次前向通過,我們都在該嵌入矩陣中查詢一次給定的標(biāo)簽(比如為「dow」查詢星期一),這會得到一個(gè) 1 × D 1 \times D 1×D 的嵌入向量。
- 將這個(gè) 1 × D 1 \times D 1×D 的向量附加到我們的輸入向量(數(shù)值向量)上。你可以把這個(gè)過程看作是矩陣增強(qiáng),其中我們?yōu)槊恳粋€(gè)類別都增加一個(gè)嵌入向量,這是通過為每一特定行執(zhí)行查找而得到的。
- 在執(zhí)行反向傳播的同時(shí),我們也以梯度的方式來更新這些嵌入向量,以最小化我們的損失函數(shù)。
輸入一般不會更新,但對嵌入矩陣而言有一種特殊情況,其中我們允許我們的梯度反向流回這些映射的特征,從而優(yōu)化它們。
我們可以將其看作是一個(gè)讓類別嵌入在每次迭代后都能進(jìn)行更好的表示的過程。
3)推薦系統(tǒng)(“鏈接預(yù)測”)
常見指標(biāo)參考
- DCG, NDCG 公式及其實(shí)現(xiàn)
- NDCG
- 圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Networks,GNN)綜述
- BPR推薦算法的簡單實(shí)現(xiàn)
基于圖的推薦系統(tǒng)以項(xiàng)目和用戶為節(jié)點(diǎn)。通過利用項(xiàng)目與項(xiàng)目、用戶與用戶、用戶與項(xiàng)目之間的關(guān)系以及內(nèi)容信息,基于圖的推薦系統(tǒng)能夠生成高質(zhì)量的推薦。推薦系統(tǒng)的關(guān)鍵是評價(jià)一個(gè)項(xiàng)目對用戶的重要性。因此,可以將其轉(zhuǎn)換為一個(gè)鏈路預(yù)測問題。目標(biāo)是預(yù)測用戶和項(xiàng)目之間丟失的鏈接。為了解決這個(gè)問題,有學(xué)者提出了一種基于GCN的圖形自動編碼器。還有學(xué)者結(jié)合GCN和RNN,來學(xué)習(xí)用戶對項(xiàng)目評分的隱藏步驟。
推薦系統(tǒng)常用的指標(biāo):參考https://blog.csdn.net/shiaiao/article/details/109004341
命中率HR(Hits Ratio)
意義:關(guān)心用戶想要的,我有沒有推薦到,強(qiáng)調(diào)預(yù)測的“準(zhǔn)確性”
H R = 1 N ∑ i = 1 N h i t s ( i ) HR = \frac{1}{N}\sum_{i = 1}^N hits(i) HR=N1?i=1∑N?hits(i)
參數(shù)說明:
- N: 用戶的總數(shù)量
- hits(i): 第i個(gè)用戶訪問的值是否在推薦列表中,是則為1,否則為0
歸一化折損累計(jì)增益(Normalized Discounted Cumulative Gain,NDCG)
意義:關(guān)心找到的這些項(xiàng)目,是否放在用戶更顯眼的位置里,即強(qiáng)調(diào)“順序性“
N D C G = 1 N ∑ i = 1 N 1 l o g 2 ( p i + 1 ) NDCG = \frac{1}{N} \sum_{i=1}^N \frac{1}{log_2(p_i + 1)} NDCG=N1?i=1∑N?log2?(pi?+1)1?
參數(shù)說明:
- N:用戶的總數(shù)量
- p i p_i pi? : 第 i 個(gè) 用 戶 的 真 實(shí) 訪 問 值 在 推 薦 列 表 的 位 置 , 若 推 薦 列 表 不 存 在 該 值 , 則 p i → ∞ p_i → ∞ pi?→∞
平均倒數(shù)排名(Mean Reciprocal Rank,MRR)
意義:關(guān)心找到的這些項(xiàng)目,是否放在用戶更顯眼的位置里,即強(qiáng)調(diào)“順序性“
M R R = 1 N ∑ i = 1 N 1 p i MRR = \frac{1}{N} \sum_{i=1}^N \frac{1}{p_i} MRR=N1?i=1∑N?pi?1?
參數(shù)說明:
- N:用戶的總數(shù)量
- p i p_i pi? : 第 i 個(gè) 用 戶 的 真 實(shí) 訪 問 值 在 推 薦 列 表 的 位 置 , 若 推 薦 列 表 不 存 在 該 值 , 則 p i → ∞ p_i → ∞ pi?→∞
4)風(fēng)險(xiǎn)控制(“金融智能”)
參考2021_金融智能下的圖機(jī)器學(xué)習(xí)實(shí)踐
3、GNN定義 & 比較
參考2021_圖神經(jīng)網(wǎng)絡(luò)加速芯片:人工智能 “認(rèn)知智能”階段起飛的推進(jìn)劑
1)GNN的應(yīng)用和成果(“圖計(jì)算算法 + 深度學(xué)習(xí)算法”)
深度學(xué)習(xí)已觸及感知智能階段的天花板,但仍然未具有推理能力。而超大規(guī)模圖神經(jīng)網(wǎng)絡(luò)被認(rèn)為是推動認(rèn)知智能發(fā)展強(qiáng)有力的推理方法
圖神經(jīng)網(wǎng)絡(luò)是近年來新興的一種智能算法,其將深度學(xué)習(xí)算法和圖計(jì)算算法相融合,取長補(bǔ)短,以達(dá)到更優(yōu)的認(rèn)知與問題處理等能力,被廣泛應(yīng)用于搜索、推薦、風(fēng)險(xiǎn)控制等重要領(lǐng)域。在發(fā)展早期,網(wǎng)絡(luò)通常應(yīng)用于圖分類、節(jié)點(diǎn)分類和鏈路預(yù)測場景中。而隨著學(xué)術(shù)界對圖神經(jīng)網(wǎng)絡(luò)的重視程度和挖掘深度的不斷提升,圖神經(jīng)網(wǎng)絡(luò)開始用于解決自然語言處理、推薦、金融、集成電路等領(lǐng)域的問題。
阿里巴巴自主研發(fā)的大規(guī)模分布式圖學(xué)習(xí)框架 Euler,已成功應(yīng)用于阿里公司的營銷、反作弊、廣告排序等眾多核心場景,大幅提升了業(yè)務(wù)效率。騰訊公司也于 2019 年開源了自研高性能圖計(jì)算框架 Plato,致力于在有效時(shí)間和有限資源內(nèi)完 成海量計(jì)算,已成功將 10 億級節(jié)點(diǎn)超大規(guī)模圖的 計(jì)算時(shí)間降至分鐘級別。Euler 和 Plato 的研發(fā)團(tuán)隊(duì) 均在人工智能領(lǐng)域的頂會中發(fā)表了多篇有關(guān)圖神經(jīng)網(wǎng)絡(luò)在推薦、風(fēng)控等業(yè)務(wù)中應(yīng)用的高水平論文。
2)GNN的定義 & 消息傳遞 + MLP
圖神經(jīng)網(wǎng)絡(luò)能夠備受學(xué)術(shù)界和工業(yè)界的青睞, 歸功于其強(qiáng)大的數(shù)據(jù)理解能力和認(rèn)知能力。
- 第一, 傳統(tǒng)神經(jīng)網(wǎng)絡(luò)處理的圖片、序列等,為歐幾里得空間的數(shù)據(jù),結(jié)構(gòu)十分規(guī)則 ;而圖神經(jīng)網(wǎng)絡(luò)的處理對象則為結(jié)構(gòu)極其不規(guī)則的非歐幾里得空間的圖數(shù)據(jù),圖數(shù)據(jù)具有比圖片、序列更強(qiáng)的數(shù)據(jù)和知識表示能力,不僅能表示樣本(節(jié)點(diǎn))的獨(dú)立特性,還能表達(dá)相同類型甚至不同類型樣本之間的聯(lián)系(鏈接)。
- 第二,相對于深度學(xué)習(xí)算法,圖神經(jīng)網(wǎng)絡(luò)能夠高效地利用樣本實(shí)例之間的結(jié)構(gòu)性特征。圖結(jié)構(gòu)數(shù)據(jù)蘊(yùn)含著豐富的信息,節(jié)點(diǎn)通過邊相連接,將不同樣本之間的關(guān)系等信息進(jìn)行有效和充分的表達(dá),從而最大化利用 現(xiàn)實(shí)圖的結(jié)構(gòu)性特征。
- 第三,無法有效進(jìn)行關(guān)系推理是制約深度學(xué)習(xí)發(fā)展的核心因素之一,而具有處理各種關(guān)系能力的圖神經(jīng)網(wǎng)絡(luò)算法則能勝任關(guān)系推理, 從而造就了圖神經(jīng)網(wǎng)絡(luò)強(qiáng)大的認(rèn)知能力。
GNN的定義 參考https://staging.distill.pub/2021/gnn-intro/
GNNs adopt a “graph-in, graph-out” architecture meaning that these model types accept a graph as input, with information loaded into its nodes, edges and global-context, and progressively transform these embeddings, without changing the connectivity of the input graph.
GNN的輸入和輸出都是圖,GNN只對圖的屬性值進(jìn)行更新,不會改變輸入圖的節(jié)點(diǎn)間的連接性(圖的結(jié)構(gòu))。換句話說,GNN只修改關(guān)于所有節(jié)點(diǎn)的屬性值(即特征矩陣),以及所有邊的權(quán)重(即鄰接矩陣,矩陣中的0仍然是0)
GNN的消息傳遞 參考https://staging.distill.pub/2021/gnn-intro/
GNN每一層的更新過程包括3步:聚合,變換,更新
- 1)聚合鄰居節(jié)點(diǎn)(遍歷過程),經(jīng)過多層GNN層的傳遞,該節(jié)點(diǎn)可以學(xué)到K-近鄰的圖的全局信息,實(shí)現(xiàn)長距離的消息傳遞。
通用的GNN聚合表達(dá)式為:
- 2)對聚合節(jié)點(diǎn)的特征進(jìn)行變換,該階段涉及到節(jié)點(diǎn),邊,全局信息的消息傳遞過程
關(guān)于GNN的消息傳遞,其實(shí)最早要追溯到2017年的GCN(這里的GNN結(jié)構(gòu)即為GCN結(jié)構(gòu))
圖神經(jīng)網(wǎng)絡(luò)的一個(gè)最重要的分支是圖卷積神經(jīng)網(wǎng)絡(luò)(Graph Convolutional Network, GCN),一般而言,圖卷積神經(jīng)網(wǎng)絡(luò)采用鄰域聚合方案,通過迭代聚合并變換其鄰域節(jié)點(diǎn)的特征向量來為每個(gè)節(jié)點(diǎn)計(jì)算新的特征向量。圖卷積神經(jīng)網(wǎng)絡(luò)的每次迭代都可以用如下公式進(jìn)行表達(dá)。
其中 Aggregate 操作為每個(gè)節(jié)點(diǎn)進(jìn)行鄰居節(jié)點(diǎn)的遍歷,聚合鄰居節(jié)點(diǎn)的特征向量。
Combine 操作利用同一個(gè)多層感知機(jī) (multilayer perceptron)模型對所有節(jié)點(diǎn)的特征向量進(jìn)行變換。 N ( v ) N(v) N(v) 表示鄰居節(jié)點(diǎn)集合, h u k h_u^k huk?表示節(jié)點(diǎn) u u u在第 k k k次迭代的特征向量, a v k a_v^k avk?表示節(jié)點(diǎn) v v v 在第 k k k 次迭代的聚合特征向量。
圖卷積神經(jīng)網(wǎng)絡(luò)中的卷積過程可以理解成“feature propagation”階段中當(dāng)前節(jié)點(diǎn)和鄰居節(jié)點(diǎn)的求和平均操作。參考論文Linking Attention-Based Multiscale CNN With Dynamical GCN for Driving Fatigue Detection,具體公式如下:
其中 H ( k ? 1 ) H^{(k-1)} H(k?1)和 H ( k ) H^ {(k)} H(k)分別表示在第 k k k層的圖卷積層的輸入和輸出; S = D ? 1 / 2 A D ? 1 / 2 S = D^{-1/2} A D^{-1/2} S=D?1/2AD?1/2,其中 A A A為圖的鄰接矩陣, D D D為 A A A的度矩陣(對角矩陣),$D = diag(d_1, d_2,…,d_n) , , ,d_i = \sum_j a_{ij}$。
H  ̄ ( k ) = S H ( k ? 1 ) \overline{H}^ {(k)} = SH^ {(k-1)} H(k)=SH(k?1)公式展開如下:
關(guān)于GNN的數(shù)學(xué)表達(dá)式為:
其中 Θ ( k ) \Theta^{(k)} Θ(k)表示MLP的線性變換層,對于多個(gè)節(jié)點(diǎn)來說權(quán)值 Θ ( k ) \Theta^{(k)} Θ(k)是共享的; σ \sigma σ是非線性變換層,在MLP完成對graph embedding的線性變換后(即 H ~ ( k ) = H  ̄ ( k ) Θ ( k ) \tilde{H}^ {(k)} = \overline{H}^ {(k)} \Theta^{(k)} H~(k)=H(k)Θ(k))進(jìn)行非線性變換(即 H ( k ) = σ ( H ~ ( k ) ) {H}^ {(k)} = \sigma(\tilde{H}^ {(k)}) H(k)=σ(H~(k))),完成當(dāng)前圖卷積層的graph embedding的更新。
圖卷積神經(jīng)網(wǎng)絡(luò)可以用下圖表示,在消息傳遞階段通過帶權(quán)邊 * 鄰居節(jié)點(diǎn)特征(neighbors embedding) + 當(dāng)前目標(biāo)節(jié)點(diǎn)(target embedding)的方式來提取局部特征(節(jié)點(diǎn)聚合即為卷積操作,可以獲取圖像中的局部特征),接著通過MLP來實(shí)現(xiàn)graph embedding的更新,接著又是下一層的圖卷積層。
GNN中最主要的算子是利用圖結(jié)構(gòu)進(jìn)行embedding傳播,包括聚合鄰居節(jié)點(diǎn)的embeddings(fusion操作)以及目標(biāo)節(jié)點(diǎn)的embedding,并通過多個(gè)圖卷積層來實(shí)現(xiàn)graph embeddings的更新。
GNN常用算子
因此,圖神經(jīng)網(wǎng)絡(luò)包含兩個(gè)主要的執(zhí)行階段, 第一個(gè)階段是圖遍歷(?。。╇A段,主要執(zhí)行Aggregate 操作 ;第二個(gè)階段是神經(jīng)網(wǎng)絡(luò)變換階段,主要執(zhí)行 Combine 操作。如圖 2 所示,除了上述的兩種主要操作,圖神經(jīng)網(wǎng)絡(luò)還包含 Sample、Pool 和 Readout 這 3 種操作。
Sample 操作用于降低計(jì)算復(fù)雜度,從鄰居節(jié)點(diǎn)集合中抽取一個(gè)子集作為新鄰居節(jié)點(diǎn)集合;避免原圖過大,經(jīng)過多層GNN后,某個(gè)節(jié)點(diǎn)可能匯聚到1-近鄰,2-近鄰,…,k-近鄰的整張圖的全局信息,導(dǎo)致在信息傳遞時(shí),需要保存大量的中間變量,使得梯度計(jì)算很費(fèi)勁。
常見的采樣有隨機(jī)節(jié)點(diǎn)采樣,隨機(jī)游走等
Pool 操作用于將原始圖轉(zhuǎn)換為更小的圖;
Readout 操作在最后一次迭代中進(jìn)一步聚合所有節(jié)點(diǎn)的特征向量以獲得整個(gè)圖的表征向量。
3)圖神經(jīng)網(wǎng)絡(luò) vs 圖計(jì)算算法(“遍歷 + 更新, 元素更新細(xì)節(jié)不同”)
相同點(diǎn):
圖計(jì)算算法和圖神經(jīng)網(wǎng)絡(luò)算法的相同點(diǎn)在于它們的每一次迭代或者層的執(zhí)行都包含了遍歷鄰居和更新節(jié)點(diǎn)屬性兩個(gè)階段 :
- 1)無論是圖計(jì)算算法,還是新興的圖神經(jīng)網(wǎng)絡(luò)算法都通過遍歷邊收集 1-hop 或者多 hop 鄰居節(jié)點(diǎn)的信息作為中間結(jié)果。
- 2)中間結(jié)果會被用于更新節(jié)點(diǎn)屬性。
不同點(diǎn):
圖計(jì)算算法和圖神經(jīng)網(wǎng)絡(luò)算法的不同有 3 點(diǎn):
- 1)在圖計(jì)算算法中,節(jié)點(diǎn)屬性一般只有單個(gè)元素, 且在計(jì)算過程中只有值在變而元素?cái)?shù)量不變 ;然而 在圖神經(jīng)網(wǎng)絡(luò)算法中,節(jié)點(diǎn)屬性一般是一個(gè)特征向量或者是更高維的張量數(shù)據(jù),元素?cái)?shù)量在數(shù)千個(gè)以 上。除此之外,不同圖數(shù)據(jù)集的維度和元素個(gè)數(shù)也不盡相同,并且在執(zhí)行過程中,由于神經(jīng)網(wǎng)絡(luò)的變 換,不僅節(jié)點(diǎn)的屬性值在變,元素個(gè)數(shù)和維度也在變化(!?。。?/strong>。
- 2)圖計(jì)算算法收集的鄰居信息是單個(gè)元素, 并對每個(gè)元素進(jìn)行歸約操作 ;而圖神經(jīng)網(wǎng)絡(luò)算法收集的是向量或者更高維的數(shù)據(jù),對每個(gè)元素進(jìn)行 element-wise 的歸約操作。
- 3)圖計(jì)算算法的更新操作較為簡單,一般是累加或者比較等操作,所以計(jì)算訪存比低 ;然而在圖神經(jīng)網(wǎng)絡(luò)算法中,每個(gè)節(jié)點(diǎn)的屬性更新操作是進(jìn)行神經(jīng)網(wǎng)絡(luò)變換,具有非常高的計(jì)算訪存比。
4)圖神經(jīng)網(wǎng)絡(luò) vs 神經(jīng)網(wǎng)絡(luò) (“輸入數(shù)據(jù),共享參數(shù),計(jì)算規(guī)則”)
相同點(diǎn):
傳統(tǒng)神經(jīng)網(wǎng)絡(luò)算法與圖神經(jīng)網(wǎng)絡(luò)算法的相同點(diǎn)在于兩者都有訓(xùn)練和推斷的過程。訓(xùn)練過程是對模型中使用的參數(shù)進(jìn)行訓(xùn)練,利用測試樣本不斷對參數(shù)進(jìn)行更新和校準(zhǔn),以獲得更高的推斷精度。推斷過程是在獲得模型的所有校準(zhǔn)參數(shù)之后,將模型用于對新數(shù)據(jù)進(jìn)行推斷,以獲得新數(shù)據(jù)的推斷結(jié)果。
不同點(diǎn):
傳統(tǒng)神經(jīng)網(wǎng)絡(luò)與圖神經(jīng)網(wǎng)絡(luò)的不同之處有如下兩點(diǎn) :
1)傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù)一般是大小規(guī)則且結(jié)構(gòu)規(guī)則的圖片或者序列數(shù)據(jù)等,而圖神經(jīng)網(wǎng)絡(luò)算法的輸入數(shù)據(jù)通常為結(jié)構(gòu)不規(guī)則的圖數(shù)據(jù)。
2)傳統(tǒng)神經(jīng)網(wǎng)絡(luò)只有使用批處理(batch)技術(shù)之后才能將神經(jīng)網(wǎng)絡(luò)的參數(shù)共享于多個(gè)樣本,然而圖神經(jīng)網(wǎng)絡(luò)算法天然地將同一個(gè)神經(jīng)網(wǎng)絡(luò)模型應(yīng)用于所有節(jié)點(diǎn)的特征向量變換中。在執(zhí)行過程中,模型參數(shù)具有非常高的復(fù)用率。
圖神經(jīng)網(wǎng)絡(luò)的兩個(gè)主要執(zhí)行階段的執(zhí)行行為特征分析如下所述。圖遍歷階段的執(zhí)行行為極其不規(guī)則,即計(jì)算圖不規(guī)則且訪存不規(guī)則,主要受訪存約束。而神經(jīng)網(wǎng)絡(luò)變換階段的執(zhí)行行為非常規(guī)則,即計(jì)算圖規(guī)則且訪存規(guī)則,主要受計(jì)算約束。
4、GNN基本分類
參考圖學(xué)習(xí)綜述(一):圖神經(jīng)網(wǎng)絡(luò)技術(shù)與應(yīng)用
1)GNN按圖類型分類
圖神經(jīng)網(wǎng)絡(luò)模型的建模過程可參見上圖。不同工業(yè)場景下的數(shù)據(jù)有著不同的拓?fù)浣Y(jié)構(gòu),將圖神經(jīng)網(wǎng)絡(luò)應(yīng)用到工業(yè)場景,首先需要選取合適的圖類型來對數(shù)據(jù)的拓?fù)浣Y(jié)構(gòu)進(jìn)行表征。目前常用的圖類型有:
1)普通圖 / 二分圖
2)有向圖 / 無向圖
3)同構(gòu)圖 / 異構(gòu)圖:異構(gòu)圖的處理手段包含meta-path-based(異構(gòu)對應(yīng)多條meta-path)、edge-based(對異構(gòu)邊進(jìn)行采樣聚合)、relational(異構(gòu)類型數(shù)量太大,可使用循環(huán)神經(jīng)網(wǎng)絡(luò)處理)和multiplex(節(jié)點(diǎn)間存在多重關(guān)系)
4)靜態(tài)圖 / 動態(tài)圖各圖類型對應(yīng)的圖神經(jīng)網(wǎng)絡(luò)模型可參見如下:
2)GNN按各模塊實(shí)例分類
-
傳播模塊
-
采樣模塊
-
池化模塊
二、GNN分類
GNN可以很好地應(yīng)用在不同領(lǐng)域中含圖結(jié)構(gòu)的數(shù)據(jù)集上,其中GNNs的學(xué)習(xí)方式可以分成3類:監(jiān)督,半監(jiān)督,自監(jiān)督和無監(jiān)督。
- 無監(jiān)督的學(xué)習(xí)方法?;?strong>自動編碼器,對比學(xué)習(xí)和隨機(jī)步(學(xué)習(xí)到的表征可以用于下游中任務(wù)的學(xué)習(xí),比如節(jié)點(diǎn)分類和邊的預(yù)測等)的概念;
- 半監(jiān)督學(xué)習(xí)方法?;?strong>特征的嵌入編碼:淺層的圖嵌入(因子分解,隨機(jī)步)和深層的圖嵌入(自編碼器和GNN)
圖神經(jīng)網(wǎng)絡(luò)劃分為五大類別,分別是:圖卷積網(wǎng)絡(luò)(Graph Convolution Networks,GCN)、 圖注意力網(wǎng)絡(luò)(Graph Attention Networks,GAT)、圖自編碼器( Graph Autoencoders)、圖生成網(wǎng)絡(luò)( Graph Generative Networks) 和圖時(shí)空網(wǎng)絡(luò)(Graph Spatial-temporal Networks)
1、圖卷積網(wǎng)絡(luò)(GCN)
參考
- LightGCN:用于推薦任務(wù)的簡化并增強(qiáng)的圖卷積網(wǎng)絡(luò) SIGIR 2020
- 用于分析結(jié)構(gòu)化數(shù)據(jù)的圖神經(jīng)網(wǎng)絡(luò) (GNN) 簡介
1)頻域圖卷積
參考
- GNN學(xué)習(xí)—卷積圖神經(jīng)網(wǎng)絡(luò)(譜域)
- 信號處理卷積及理解圖像卷積操作的意義
根據(jù)卷積定理,兩信號在空域(或時(shí)域)卷積的傅里葉變換等于這倆個(gè)信號在頻域中的傅里葉變換的乘積:
也可以通過反變換的形式來表達(dá):
s
i
g
m
o
i
d
(
R
(
1
×
2
d
)
×
R
(
2
d
×
1
)
)
sigmoid(R^{(1 \times 2d)} \times R^{(2d×1)})
sigmoid(R(1×2d)×R(2d×1))
具體來說, f 1 ( t ) f_1(t) f1?(t) 定義為空域輸入信號, f 2 ( t ) f_2(t) f2?(t)定義為空域卷積核,那么卷積操作就可以這樣定義:首先將空域上的信號 f 1 ( t ) f_1(t) f1?(t)轉(zhuǎn)換到頻域信號 F 1 ( w ) F_1(w) F1?(w), f 2 ( t ) f_2(t) f2?(t)轉(zhuǎn)換到頻域 F 2 ( w ) F_2(w) F2?(w),然后將頻域信號相乘,再將相乘后的結(jié)果通過傅里葉反變換轉(zhuǎn)回空域,這個(gè)就是譜域圖卷積的實(shí)現(xiàn)思路(將空域轉(zhuǎn)換到頻域上處理,處理完再返回)。
那么為什么要這樣轉(zhuǎn)換呢?為什么要將空域上的信號轉(zhuǎn)換到頻域上處理,最后再轉(zhuǎn)回到空域呢?回想一下前面所說的經(jīng)典的卷積操作具有序列有序性和維數(shù)不變性的限制,使得經(jīng)典卷積難以處理圖數(shù)據(jù),也就是說對于一個(gè)3x3的卷積核,它的形狀是固定的,它的感受野的中心節(jié)點(diǎn)必須要有固定的鄰域大小才能使用卷積核,但是圖上的節(jié)點(diǎn)的領(lǐng)域節(jié)點(diǎn)是不確定的,此外圖上節(jié)點(diǎn)的領(lǐng)域節(jié)點(diǎn)也是沒有順序的,這就不能直接在空域使用經(jīng)典的卷積。但是當(dāng)我們把數(shù)據(jù)從空域轉(zhuǎn)換到頻域,在頻域處理數(shù)據(jù)時(shí),只需要將每個(gè)頻域的分量放大或者縮小就可以了,不需要考慮信號在空域上存在的問題,這個(gè)就是譜域圖卷積的巧妙之處。
2)空域圖卷積
參考【Graph Neural Network】GraphSAGE: 算法原理,實(shí)現(xiàn)和應(yīng)用
GraphSAGE是GNN中的空域模型,全稱為Graph SAmple and aggreGatE,通過采樣目標(biāo)節(jié)點(diǎn)的鄰居節(jié)點(diǎn),聚合它們的embeddings,并與target embedding合并進(jìn)行target embedding的更新,其中Aggregate操作主要有MEAN,LSTM等。
先談?wù)凣raphSAGE出現(xiàn)的原因:
GCN是一種在圖中結(jié)合拓?fù)浣Y(jié)構(gòu)和頂點(diǎn)屬性信息學(xué)習(xí)頂點(diǎn)的embedding表示的方法。然而GCN要求在一個(gè)確定的圖中去學(xué)習(xí)頂點(diǎn)的embedding,無法直接泛化到在訓(xùn)練過程沒有出現(xiàn)過的頂點(diǎn),即屬于一種直推式(transductive)的學(xué)習(xí)。
GraphSAGE則是一種能夠利用頂點(diǎn)的屬性信息高效產(chǎn)生未知頂點(diǎn)embedding的一種歸納式(inductive)學(xué)習(xí)的框架。其核心思想是通過學(xué)習(xí)一個(gè)對鄰居頂點(diǎn)進(jìn)行聚合表示的函數(shù)來產(chǎn)生目標(biāo)頂點(diǎn)的embedding向量。
GraphSAGE算法原理:
GraphSAGE 是Graph SAmple and aggreGatE的縮寫,其運(yùn)行流程如上圖所示,可以分為三個(gè)步驟
1)對圖中每個(gè)頂點(diǎn)鄰居頂點(diǎn)進(jìn)行采樣( N ( v ) N(v) N(v)為鄰居節(jié)點(diǎn)采樣函數(shù))
2)根據(jù)聚合函數(shù)聚合鄰居頂點(diǎn)蘊(yùn)含的信息(AGGREGATE鄰居節(jié)點(diǎn)的embedding + CONCAT( h N ( v ) k , h ( k ? 1 ) h^k_{N(v)},h^{(k-1)} hN(v)k?,h(k?1) ) )
3)得到圖中各頂點(diǎn)的向量表示供下游任務(wù)使用
這里K是網(wǎng)絡(luò)的層數(shù),也代表著每個(gè)頂點(diǎn)能夠聚合的鄰接點(diǎn)的跳數(shù),如K=2的時(shí)候每個(gè)頂點(diǎn)可以最多根據(jù)其2跳鄰接點(diǎn)的信息學(xué)習(xí)其自身的embedding表示。K=2的鄰居節(jié)點(diǎn)的聚合表示結(jié)果如下圖所示
這里關(guān)于鄰居節(jié)點(diǎn)采樣函數(shù) N ( v ) N(v) N(v)存在的意義:
出于對計(jì)算效率的考慮,對每個(gè)頂點(diǎn)采樣一定數(shù)量的鄰居頂點(diǎn)作為待聚合信息的頂點(diǎn)。設(shè)采樣數(shù)量為k,若頂點(diǎn)鄰居數(shù)少于k, 則采用有放回的抽樣方法,直到采樣出k個(gè)頂點(diǎn)。若頂點(diǎn)鄰居數(shù)大于k,則采用無放回的抽樣。
當(dāng)然,若不考慮計(jì)算效率,我們完全可以對每個(gè)頂點(diǎn)利用其所有的鄰居頂點(diǎn)進(jìn)行信息聚合,這樣是信息無損的。
2、圖注意力網(wǎng)絡(luò)
參考
- GAT 圖注意力網(wǎng)絡(luò) Graph Attention Network
圖神經(jīng)網(wǎng)絡(luò) GNN 把深度學(xué)習(xí)應(yīng)用到圖結(jié)構(gòu) (Graph) 中,其中的圖卷積網(wǎng)絡(luò) GCN 可以在 Graph 上進(jìn)行卷積操作。但是 GCN 存在一些缺陷:依賴?yán)绽咕仃嚕荒苤苯佑糜谟邢驁D;模型訓(xùn)練依賴于整個(gè)圖結(jié)構(gòu),不能用于動態(tài)圖;卷積的時(shí)候沒辦法為鄰居節(jié)點(diǎn)分配不同的權(quán)重。因此 2018 年圖注意力網(wǎng)絡(luò) GAT (Graph Attention Network) 被提出,解決 GCN 存在的問題。
3、圖自編碼器
4、圖生成網(wǎng)絡(luò)
三、GNN發(fā)展歷程
參考
- 圖神經(jīng)網(wǎng)絡(luò)(GNN)與知識推理 - video
- 圖神經(jīng)網(wǎng)絡(luò)(GNN)與知識推理 - ppt
1、前期知識
1)網(wǎng)絡(luò)表示學(xué)習(xí)的發(fā)展
網(wǎng)絡(luò)的表示學(xué)習(xí)最早可以追溯到Hinton提出的知識的分布式表示,即一個(gè)人的知識在大腦中是分布式地存儲在各個(gè)區(qū)域。
2)機(jī)器學(xué)習(xí)在網(wǎng)絡(luò)上的應(yīng)用
- Node classification : Predict a type of a given node
- Link prediction : Predict whether two nodes are linked
- Community detection:Identify densely linked clusters of nodes
- Network similarity:How similar are two (sub)networks
2、圖表示學(xué)習(xí)(“Shallow”)
這里提到的圖(network embedding)表示學(xué)習(xí)還不是GNN,是shallow模型
不同的網(wǎng)絡(luò)嵌入算法的本質(zhì)可以統(tǒng)一成矩陣分解的形式,矩陣分解相較于隨機(jī)游走的好處是,減少了數(shù)據(jù)集的噪聲(特征值),讓鄰居節(jié)點(diǎn)能學(xué)到更魯棒的表示。
1)DeepWalk
DeepWalk采用隨機(jī)游走 + word2Vec,解決不同節(jié)點(diǎn)的鄰居節(jié)點(diǎn)不平衡的問題
通過級聯(lián)softmax來對滑動窗口中的多個(gè)節(jié)點(diǎn)的特征進(jìn)行學(xué)習(xí)
存在的問題:
- 不適用于異構(gòu)圖
- random walk是unbaised(概率相同)
- Deepwalk是固定長的
2)LINE,PTE,Node2Vec,GATNE
LINE:有first-order,second-order的1階,2階相似度目標(biāo)函數(shù)
PTE:是LINE的異構(gòu)網(wǎng)絡(luò)的實(shí)現(xiàn)
metapath2Vec:控制異構(gòu)圖的Deepwalk,避免生成無意義的path
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-rnxQkfoA-1685295716658)(file://D:\桌面\temp\temp\圖神經(jīng)網(wǎng)絡(luò)\img\Snipaste_2021-11-12_01-48-29.jpg?msec=1685295712007)]
- GATNE:節(jié)點(diǎn)異構(gòu),邊也異構(gòu)
不同的圖表示學(xué)習(xí)類型,其中GATNE支持節(jié)點(diǎn)&邊異構(gòu)的網(wǎng)絡(luò)
3)圖表示學(xué)習(xí)的本質(zhì)
圖表示學(xué)習(xí)(網(wǎng)絡(luò)嵌入)的本質(zhì)是矩陣分解(SVD,稀疏矩陣分解等),均可以轉(zhuǎn)換成 l o g ( ) ? l o g b log() - logb log()?logb的形式。由下圖可以發(fā)現(xiàn),當(dāng)Deepwalk中的T為1時(shí),會退化成LINE模型,即LINE模型是DeepWalk的一個(gè)特例。
NetSMF進(jìn)行稀疏矩陣S的分解(構(gòu)造稀疏陣S來近似鄰接矩陣A),可以在7000萬個(gè)nodes的數(shù)據(jù)集上跑(線性復(fù)雜度)
Prone:sparse matrix分解 + spectral propagation = O ( ∣ V ∣ d 2 + K ∣ E ∣ ) O(|V|d^2 + K|E|) O(∣V∣d2+K∣E∣) 線性復(fù)雜度
3、圖神經(jīng)網(wǎng)絡(luò)(“Deep”)
1)GCN
GCN(GNN)結(jié)構(gòu)包含3個(gè)操作:鄰居節(jié)點(diǎn)(包括自己)特征聚合,歸一化,線性變換,非線性變換。
2)GraphSAGE,GAT
GraphSAGE
GAT:實(shí)際上,不同的鄰居節(jié)點(diǎn)對于當(dāng)前節(jié)點(diǎn)的影響程度不同
3)圖神經(jīng)網(wǎng)絡(luò)的挑戰(zhàn)
challenge:non-robust
4)圖神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的本質(zhì)
圖神經(jīng)網(wǎng)絡(luò)的本質(zhì):對嵌入向量的傳播過程使用拉普拉斯算子 L L L + 信號處理
- 在pre-propagation上乘上對角陣 Q Q Q,即 L Q LQ LQ;
- 中間階段使用normalization( N N N);
- 在post-propagation上用激活函數(shù) σ \sigma σ處理
4、附錄
講座筆記:文章來源:http://www.zghlxwxcb.cn/news/detail-464559.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-464559.html
四、相關(guān)文檔
- https://aip.scitation.org/doi/abs/10.1063/5.0056139
到了這里,關(guān)于【筆記整理】圖神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!