每日最新頭條.有趣資訊

圖神經網絡還能這樣學,看新加坡小哥圈圈畫畫搞掂GNN

選自medium

作者:Rishabh Anand

機器之心編譯

參與:Panda

在社交網絡分析等一些應用中,圖神經網絡已經得到了廣泛的應用。新加坡科技研究局(A*STAR)的研究者 Rishabh Anand 近日通過圖解的方式介紹了圖與圖神經網絡的基本概念,或許能幫助初學者更直觀地理解圖神經網絡的內涵和價值。此外,為了滿足讀者們對圖神經網絡的學習需求,機器之心聯合極驗團隊向讀者們贈送 20 本《深入淺出圖神經網絡:GNN 原理解析》,歡迎大家積極留言獲得贈書。

圖深度學習(Graph Deep Learning,GDL)是一個很有發展前景的研究領域,基於圖數據來學習和分析非常有用。本文將介紹簡單圖神經網絡(GNN)的基礎知識及其內在工作原理背後的直觀知識。不過,大家不用擔心,為了能夠更直觀地看懂究竟發生了什麽,作者在文中使用了大量彩圖給出圖解信息。

圖(Graph)是什麽?

圖是一種由連接在一起的節點(頂點)和邊構成的數據結構,可用於表示沒有明確起點或終點的信息。所有節點都可佔據空間中的任意位置,當用二維或多維空間繪製圖的結構時,具有相似特徵的節點通常會聚集到一起。

這就是一個圖,由一群分別表示實體的互連節點構成。

邊上面的黑色尖頭表示節點之間的關係類型,其可表明一個關係是雙向的還是單向的。圖有兩種主要類型:有向圖和無向圖。在有向圖中,節點之間的連接存在方向;而無向圖的連接順序並不重要。有向圖既可以是單向的,也可以是雙向的。

圖可以表示很多事物——社交網絡、分子等等。節點可以表示用戶/產品/原子,而邊表示它們之間的連接,比如關注/通常與相連接的產品同時購買/鍵。社交網絡圖可能看起來像是這樣,其中節點是用戶,邊則是連接:

節點表示用戶,邊則表示兩個實體之間的連接/關係。真實的社交網絡圖往往更加龐大和複雜!

接下來作者會介紹一些概念,如循環單元、嵌入向量表征和前饋神經網絡。知道一些有關圖論的知識(比如什麽是圖以及圖的形態)也很不錯。

有些術語你可能並不熟悉。不用擔心!對於那些讓人疑惑的術語,作者都盡力鏈接了他可以找到的最靠譜的解釋,能讓你理解所涉概念的基本含義。基於此,你還能進一步了解這些概念,同時還能理解它們在圖神經網絡中所發揮的作用。

了解圖神經網絡

每個節點都有一組定義它的特徵。在社交網絡圖的案例中,這些特徵可以是年齡、性別、居住國家、政治傾向等。每條邊連接的節點都可能具有相似的特徵。這體現了這些節點之間的某種相關性或關係。

假設我們有一個圖 G,其具有以下頂點和邊:

這個圖與上圖是一樣的。

為了簡單起見,我們假設其特徵向量是當前節點的索引的 one-hot 編碼。類似地,其標簽(或類別)可設為節點的顏色(綠、紅、黃)。那麽這個圖看起來會是這樣:

節點的順序其實並不重要。

注:在實際運用中,盡量不要使用 one-hot 編碼,因為節點的順序可能會非常混亂。相反,應該使用可明顯區分節點的特徵,比如對社交網絡而言,可選擇年齡、性別、政治傾向等特徵;對分子研究而言可選擇可量化的化學性質。

現在,我們有節點的 one-hot 編碼(或嵌入)了,接下來我們將神經網絡引入這一混合信息中來實現對圖的修改。所有的節點都可轉化為循環單元(或其它任何神經網絡架構,只是我這裡使用的是循環單元);所有的邊都包含簡單的前饋神經網絡。那麽看起來會是這樣:

其中的信封符號只是每個節點的 one-hot 編碼的向量(嵌入)。

消息傳遞

一旦節點和邊的轉化完成,圖就可在節點之間執行消息傳遞。這個過程也被稱為「近鄰聚合(Neighbourhood Aggregation)」,因為其涉及到圍繞給定節點,通過有向邊從周圍節點推送消息(即嵌入)。

注:有時候你可為不同類型的邊使用不同的神經網絡,比如為單向邊使用一種神經網絡,為雙向邊使用另一種神經網絡。這樣你仍然可以獲取節點之間的空間關係。

就 GNN 而言,對於單個參考節點,近鄰節點會通過邊神經網絡向參考節點上的循環單元傳遞它們的消息(嵌入)。參考循環部門的新嵌入更新,基於在循環嵌入和近鄰節點嵌入的邊神經網絡輸出的和上使用循環函數。我們把上面的紅色節點放大看看,並對這一過程進行可視化:

紫色方塊是一個應用於來自近鄰節點的嵌入(白色信封)上的簡單前饋神經網絡;紅色三角形是應用於當前嵌入(白色信封)和邊神經網絡輸出(黑色信封)之和上的循環函數,以得到新的嵌入(最上面的白色信封)。

這個過程是在網絡中的所有節點上並行執行的,因為 L+1 層的嵌入取決於 L 層的嵌入。因此,在實踐中,我們並不需要從一個節點「移動」到另一節點就能執行消息傳遞。

注:邊神經網絡輸出(黑色信封)之和與輸出的順序無關。

最後的向量表征有什麽用?

執行了幾次近鄰聚合/消息傳遞流程之後,每個節點的循環單元都會獲得一組全新的嵌入。此外,經過多個時間步驟/多輪消息傳遞之後,節點對自己和近鄰節點的信息(特徵)也會有更好的了解。這會為整個圖創建出更加準確的表征。

要進一步在該流程的更高層面上進行處理或者只是簡單地表征該圖,你可以將所有嵌入加到一起得到向量 H 來表示整個圖。

使用 H 比使用鄰接矩陣更好,因為不管怎樣對圖進行扭轉變形,這些矩陣都並不表征圖的特徵或獨特性質——只是節點之間的邊連接(這在某些情形下並不是很重要)。

總結一下,我們將所有節點循環單元的最終向量表征加到一起(當然,與順序無關),然後使用所得到的向量作為其它工作過程的輸入或簡單地將其用於表征該圖。這個步驟看起來如下圖所示:

這是經過 n 次重複消息傳遞之後帶有已完全更新的嵌入向量的最終圖。你可以將所有節點的表。征加到一起得到 H。

四步驟助你實現圖神經網絡

GNN 用起來相當簡單。事實上,實現它們涉及到以下四個步驟:

給定一個圖,首先將節點轉換為循環單元,將邊轉換為前饋神經網絡;

接著為所有節點執行 n 次近鄰聚合(也就是消息傳遞);

然後再在所有節點的嵌入向量上求和以得到圖表征 H;

最後可以完全跳過 H 直接向更高層級進發或者也可使用 H 來表征該圖的獨有性質。

小結

現在我們清楚地了解圖神經網絡的運行方式了。得益於 GNN 在圖節點之間依賴關係進行建模的強大性能,它在社交網絡、知識圖譜和推薦系統方面都有廣泛的應用。以社交網絡圖為例,GNN 在內容推薦方面表現很好。舉個例子,當一個用戶關注另一個政治傾向相似的用戶時,GNN 可用於節點分類,以預測是否可將網站上的特定內容發送到上述用戶的新聞流;當 GNN 用於「推薦關注」時,系統可以考慮用戶所在的行業,再提供潛在的連接——邊分類。

圖深度學習其實非常有趣。本文的亮點在於使用一些可視化圖介紹了圖神經網絡的基礎概念,但如果想要透徹地了解 GNN,大家最好自己寫代碼實現看看。

贈書《深入淺出圖神經網絡:GNN 原理解析》

想要更系統地學習圖神經網絡?機器之心聯合極驗團隊向讀者們贈送 20 本《深入淺出圖神經網絡:GNN 原理解析》。本書為極驗 AI&圖項目團隊傾力之作!從原理、算法、實現、應用 4 個維度詳細講解圖神經網絡,理論與實踐相結合。白翔、俞棟等學術界和企業界領軍人物強烈推薦。

贈書方式:讀者們可留言評論對圖神經網絡的理解,獲得點讚量最高的 20 名讀者可獲得贈書

點擊閱讀原文,查看購買鏈接。

獲得更多的PTT最新消息
按讚加入粉絲團