【邁向圖神經網絡GNN】Part3: 圖神經網絡的核心-訊息傳遞機制

更新於 發佈於 閱讀時間約 5 分鐘

在上一篇文章中,我們探討了如何使用PyTorch來構建圖形對象,本篇專注於圖神經網絡(GNN)中的一個核心概念 — — 訊息傳遞(message passing)。我們先簡單回顧卷積神經網絡(CNN),它與 CNN 有些相似處,通過對CNN的理解,我們將更快地理解GNN所應用的關鍵技術概念。

還沒有看到上篇的可以點以下連結:

【邁向圖神經網絡GNN】Part1: 圖數據的基本元素與應用

【邁向圖神經網絡GNN】Part2: 使用PyTorch構建圖形結構的概念與實作

本篇文章引用: Graph Neural Network Tutorial 圖神經網路教學 (2022/01/28)

感謝周大的分享!!!那我們就開始吧!

Photo by Mike Tinnion on Unsplash

Photo by Mike Tinnion on Unsplash

在學習 GNN 重要概念 message passing 前,我們先複習一下 CNN 的 convolution

在卷積神經網絡(CNN)中,卷積操作主要是處理圖像數據。以一個圖片中的像素值“6”為例,卷積操作會考慮該像素及其周圍的八個鄰近像素(即3x3的鄰域)。這些像素的值會根據一個稱為卷積核的矩陣加權,然後將加權後的值相加,最終合成為單一的輸出值。

這個過程允許卷積層捕捉到局部特徵,如邊緣、角落或紋理等。通過這種方式,卷積層能夠學習從局部像素配置中抽象出有用的視覺特徵,這對於深度學習模型的圖像識別和分類非常關鍵。

那其實在 GNN 中重要的概念 message passing 可視為 CNN convolution 概念的一種形式,不同的地方在於原卷積的概念從歐幾里得數據(例如:圖像)擴展到非歐幾里得數據(如:graph),而透過局部區域聚合成訊息並產生新的特徵,和GNN 中把鄰居特徵傳遞聚合更新節點的行為。

Message passing 重要概念: create message 和 node update

在圖神經網絡(GNN)中的訊息傳遞機制可類比於卷積神經網絡(CNN)中的卷積操作。訊息傳遞的機制(message passing)主要有兩個步驟:

  1. 等待 create message 的 node,先關注 node 的鄰居們
  2. 有了 message 傳遞過來後,再做 node 的 update

以節點A為例,節點A的鄰居 — — 節點B、C、和D,與節點 A 相連的 3 個點,會將 message 傳遞給 A ,傳遞過去後, A 就會將傳遞的特徵通過一個權重匯總更新,這就是 node update 。

此外, graph 上的每個 node 都會進行 message passing ,通過一輪的 message passing 後就是一次完整的傳遞,這行為讓節點可以從鄰居獲得特徵並反映在自己身上,更新自己。

詳細說明 message passing 如何運作


一樣以 node A 為例,先訂一個傳遞與更新的權重:

  • message = 0.5 * 自己 + 2 *鄰居
  • update = 1倍* 自己 + 0.5* message
  1. create message :
raw-image


  • 等號左邊是一個 message , 表示為 node 1 傳給 node 0 的 message ,對應到圖上即為 node B 傳給 node A 的
  • 等號右邊是剛剛定義的傳遞權重, 0.5 倍的 node A 加上 2 倍的 node B
  • 以此類推至與 node A 相鄰的各個節點 C、D
  • 這樣就會產生三個 message 分別來自 B 、C、D,再 node update 之前需對這三個 message 聚合(agg)
  • 常見的 agg 方法: max 、add 、mean
  • 聚合後就會是一個 message ,而這 message 準備來做 node update

2. node update :

raw-image
  • 等號左邊表達 node update ,表示 node 第一輪的對 node A update
  • 等號右邊表達原本的 node A 加上剛剛 agg 的 message * 0.5

那這樣就完成了 message passing 的過程了~

---------------

補充討論 node update 之前 agg 的常見方法與效果

在不同的資料型態與場景可以選擇不同的 message agg 的方法,那以 message 傳遞的過程中資訊保留的程度應該是: add > mean > max

多數的場景下, 其對於模型成效表現應該也是 add > mean > max

小結

今天分享的 message passing 機制也是 GNN 中核心且重要的概念,它使得 GNN 能夠有效處理複雜的圖結構數據,透過這樣的機制,節點可以收集來自鄰居的訊息,並根據定義的規則更新自己的特徵,在這個過程中,確保模型預測前,可以考量的”關係”,也就是從鄰居來的特徵。同時也有一小部分提及到 agg 的常見方法,那下一篇將說明使用 torch 來實作 message passing 機制,下篇見!

avatar-img
33會員
43內容數
歡迎來到《桃花源記》專欄。這裡不僅是一個文字的集合,更是一個探索、夢想和自我發現的空間。在這個專欄中,我們將一同走進那些隱藏在日常生活中的"桃花源"——那些讓我們心動、讓我們反思、讓我們找到內心平靜的時刻和地方
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Karen的沙龍 的其他內容
本文主要筆記使用pytorch建立graph的幾個概念與實作。在傳統的神經網路模型中,數據點之間往往是互相連接和影響的,使用GNN,我們不僅處理單獨的數據點或Xb,而是處理一個包含多個數據點和它們之間連結的特徵。GNN的優勢在於其能夠將這些連結關係納入模型中,將關係本身作為特徵進行學習。
GNN發展背景 傳統的深度學習模型如在計算機視覺(CV)和自然語言處理(NLP)領域中極為成功,主要是處理結構化數據如影像和文本。這些數據類型通常具有固定且規律的結構,例如影像是由有序的像素點組成。然而,在真實世界中,許多數據是非結構化的,如化合物結構(原子和分子)。這些數據雖然具有一定的規則性,
本文探討了監督式學習、分群和相似度這幾個推薦系統算法,分別討論了它們的優點、缺點以及適用場景。這些算法在推薦系統中扮演著重要角色,並透過特徵選擇與預處理、相似度度量和鄰居的選擇等關鍵因素進行深入分析。文章最後提出在選擇推薦系統算法時應該考慮的因素,以及未來的研究方向。
Kafka是一個先進的分佈式流處理平臺,具有高吞吐量、可擴展性、容錯性和低延遲特性,提供瞭解耦、非同步和削峰特點。本文介紹了Kafka的通訊模式、適合的應用場景和未來發展趨勢,旨在幫助使用者更好地理解和應用Kafka。
本文探討了在使用 pandas 處理資料時應注意的幾個關鍵點,以及如何減少因資料型態問題而產生的錯誤,確保資料的原始意義得以保留。主要包括Pandas 資料處理深入解析,尋找CSV之外的數據儲存方案,以及優化資料處理策略。
上篇進一步認識基本的圖形架構與三大 Graph 算法,那首先從 shortest path 開始,我們會陸續去理解這些算法,以及可能的應用,如果還沒有看過上一篇的,可以點以下連結~那我們就開始吧! 【圖論Graph】Part1:初探圖形與圖形演算法之應用
本文主要筆記使用pytorch建立graph的幾個概念與實作。在傳統的神經網路模型中,數據點之間往往是互相連接和影響的,使用GNN,我們不僅處理單獨的數據點或Xb,而是處理一個包含多個數據點和它們之間連結的特徵。GNN的優勢在於其能夠將這些連結關係納入模型中,將關係本身作為特徵進行學習。
GNN發展背景 傳統的深度學習模型如在計算機視覺(CV)和自然語言處理(NLP)領域中極為成功,主要是處理結構化數據如影像和文本。這些數據類型通常具有固定且規律的結構,例如影像是由有序的像素點組成。然而,在真實世界中,許多數據是非結構化的,如化合物結構(原子和分子)。這些數據雖然具有一定的規則性,
本文探討了監督式學習、分群和相似度這幾個推薦系統算法,分別討論了它們的優點、缺點以及適用場景。這些算法在推薦系統中扮演著重要角色,並透過特徵選擇與預處理、相似度度量和鄰居的選擇等關鍵因素進行深入分析。文章最後提出在選擇推薦系統算法時應該考慮的因素,以及未來的研究方向。
Kafka是一個先進的分佈式流處理平臺,具有高吞吐量、可擴展性、容錯性和低延遲特性,提供瞭解耦、非同步和削峰特點。本文介紹了Kafka的通訊模式、適合的應用場景和未來發展趨勢,旨在幫助使用者更好地理解和應用Kafka。
本文探討了在使用 pandas 處理資料時應注意的幾個關鍵點,以及如何減少因資料型態問題而產生的錯誤,確保資料的原始意義得以保留。主要包括Pandas 資料處理深入解析,尋找CSV之外的數據儲存方案,以及優化資料處理策略。
上篇進一步認識基本的圖形架構與三大 Graph 算法,那首先從 shortest path 開始,我們會陸續去理解這些算法,以及可能的應用,如果還沒有看過上一篇的,可以點以下連結~那我們就開始吧! 【圖論Graph】Part1:初探圖形與圖形演算法之應用
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
本文參考TensorFlow官網Deep Convolutional Generative Adversarial Network的程式碼來加以實作說明。 示範如何使用深度卷積生成對抗網路(DCGAN) 生成手寫數位影像。
Thumbnail
本文將延續上一篇文章,經由訓練好的GAN模型中的生成器來生成圖片 [深度學習][Python]訓練MLP的GAN模型來生成圖片_訓練篇 [深度學習][Python]訓練CNN的GAN模型來生成圖片_訓練篇 相較之下CNN的GAN生成的效果比較好,但模型也相對比較複雜,訓練時間花的也比較
Thumbnail
延續上一篇訓練GAM模型,這次我們讓神經網路更多層更複雜一點,來看訓練生成的圖片是否效果會更好。 [深度學習][Python]訓練MLP的GAN模型來生成圖片_訓練篇 資料集分割處理的部分在延續上篇文章,從第五點開始後修改即可,前面都一樣 訓練過程,比較圖 是不是CNN的效果比MLP還要好,
Thumbnail
本文主要介紹,如何利用GAN生成對抗網路來訓練生成圖片。 利用tensorflow,中的keras來建立生成器及鑑別器互相競爭訓練,最後利用訓練好的生成器來生成圖片。 GAN生成對抗網路的介紹 它由生成網路(Generator Network)和鑑別網路(Discriminator Netwo
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 接著來談 Transformer 架構中的 Feedforward Network (FFN): 其為全連接的神經網路架構 回顧 AI說書 - 從0開始 - 64
Thumbnail
上篇我們簡單的了解了 TTS 想要達到的目標,但是對於訓練資料的處理、網路架構、損失函數、輸出分析等考慮到篇幅尚未解釋清楚,這篇將針對訓練資料處理中的文字部分進行詳細說明,讓我們開始吧。
Thumbnail
本文主要介紹神經網路訓練辨識的過程,利用fashion_mnist及簡單的神經網路來進行分類。 使用只有兩層的神經網路來訓練辨識fashion_mnist資料。
Thumbnail
感知器是一種基本的神經網路模型,用於二分類問題。它模擬了人腦神經元的工作原理,通過調整權重和偏差值來達到預測和分類的目的。 感知器流程 輸入 資料的輸入: 輸入層接受資料的輸入,每個輸入對應一個特徵,還有一個固定的偏差神經元。 資料經過每個神經元時,會乘上相應的
Thumbnail
卷積神經網路(CNN)是一種專門用於影像相關應用的神經網路。本文介紹了CNN在影像辨識中的應用,包括圖片的組成、Receptive Field、Parameter Sharing、以及Pooling等技術。通過本文,讀者將瞭解CNN在影像辨識領域的優勢和運作原理。
這個頻道將提供以下服務: 深入介紹各種Machine Learning技術 深入介紹各種Deep Learning技術 深入介紹各種Reinforcement Learning技術 深入介紹Probabilistic Graphical Model技術 不定時提供讀書筆記 讓我們一起在未
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
本文參考TensorFlow官網Deep Convolutional Generative Adversarial Network的程式碼來加以實作說明。 示範如何使用深度卷積生成對抗網路(DCGAN) 生成手寫數位影像。
Thumbnail
本文將延續上一篇文章,經由訓練好的GAN模型中的生成器來生成圖片 [深度學習][Python]訓練MLP的GAN模型來生成圖片_訓練篇 [深度學習][Python]訓練CNN的GAN模型來生成圖片_訓練篇 相較之下CNN的GAN生成的效果比較好,但模型也相對比較複雜,訓練時間花的也比較
Thumbnail
延續上一篇訓練GAM模型,這次我們讓神經網路更多層更複雜一點,來看訓練生成的圖片是否效果會更好。 [深度學習][Python]訓練MLP的GAN模型來生成圖片_訓練篇 資料集分割處理的部分在延續上篇文章,從第五點開始後修改即可,前面都一樣 訓練過程,比較圖 是不是CNN的效果比MLP還要好,
Thumbnail
本文主要介紹,如何利用GAN生成對抗網路來訓練生成圖片。 利用tensorflow,中的keras來建立生成器及鑑別器互相競爭訓練,最後利用訓練好的生成器來生成圖片。 GAN生成對抗網路的介紹 它由生成網路(Generator Network)和鑑別網路(Discriminator Netwo
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 接著來談 Transformer 架構中的 Feedforward Network (FFN): 其為全連接的神經網路架構 回顧 AI說書 - 從0開始 - 64
Thumbnail
上篇我們簡單的了解了 TTS 想要達到的目標,但是對於訓練資料的處理、網路架構、損失函數、輸出分析等考慮到篇幅尚未解釋清楚,這篇將針對訓練資料處理中的文字部分進行詳細說明,讓我們開始吧。
Thumbnail
本文主要介紹神經網路訓練辨識的過程,利用fashion_mnist及簡單的神經網路來進行分類。 使用只有兩層的神經網路來訓練辨識fashion_mnist資料。
Thumbnail
感知器是一種基本的神經網路模型,用於二分類問題。它模擬了人腦神經元的工作原理,通過調整權重和偏差值來達到預測和分類的目的。 感知器流程 輸入 資料的輸入: 輸入層接受資料的輸入,每個輸入對應一個特徵,還有一個固定的偏差神經元。 資料經過每個神經元時,會乘上相應的
Thumbnail
卷積神經網路(CNN)是一種專門用於影像相關應用的神經網路。本文介紹了CNN在影像辨識中的應用,包括圖片的組成、Receptive Field、Parameter Sharing、以及Pooling等技術。通過本文,讀者將瞭解CNN在影像辨識領域的優勢和運作原理。
這個頻道將提供以下服務: 深入介紹各種Machine Learning技術 深入介紹各種Deep Learning技術 深入介紹各種Reinforcement Learning技術 深入介紹Probabilistic Graphical Model技術 不定時提供讀書筆記 讓我們一起在未