国产熟女一区二区五月婷-又爽又黄又无遮挡网站-亚洲国产精品视频在线播放-国内偷拍国内精品网999

當前位置:首頁 > 最新資訊 > 行業(yè)資訊

AI中圖神經(jīng)網(wǎng)絡GNN是什么?

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

圖(Graph)是什么?

圖是一種由連接在一起的節(jié)點(頂點)和邊構(gòu)成的數(shù)據(jù)結(jié)構(gòu),可用于表示沒有明確起點或終點的信息。所有節(jié)點都可占據(jù)空間中的任意位置,當用二維或多維空間繪制圖的結(jié)構(gòu)時,具有相似特征的節(jié)點通常會聚集到一起。

這就是一個圖,由一群分別表示實體的互連節(jié)點構(gòu)成。

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

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

節(jié)點表示用戶,邊則表示兩個實體之間的連接/關(guān)系。真實的社交網(wǎng)絡圖往往更加龐大和復雜!

接下來作者會介紹一些概念,如循環(huán)單元、嵌入向量表征和前饋神經(jīng)網(wǎng)絡。知道一些有關(guān)圖論的知識(比如什么是圖以及圖的形態(tài))也很不錯。

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

了解圖神經(jīng)網(wǎng)絡

每個節(jié)點都有一組定義它的特征。在社交網(wǎng)絡圖的案例中,這些特征可以是年齡、性別、居住國家、政治傾向等。每條邊連接的節(jié)點都可能具有相似的特征。這體現(xiàn)了這些節(jié)點之間的某種相關(guān)性或關(guān)系。

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

這個圖與上圖是一樣的。

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

節(jié)點的順序其實并不重要。

注:在實際運用中,盡量不要使用one-hot編碼,因為節(jié)點的順序可能會非?;靵y。相反,應該使用可明顯區(qū)分節(jié)點的特征,比如對社交網(wǎng)絡而言,可選擇年齡、性別、政治傾向等特征;對分子研究而言可選擇可量化的化學性質(zhì)。

現(xiàn)在,我們有節(jié)點的one-hot編碼(或嵌入)了,接下來我們將神經(jīng)網(wǎng)絡引入這一混合信息中來實現(xiàn)對圖的修改。所有的節(jié)點都可轉(zhuǎn)化為循環(huán)單元(或其它任何神經(jīng)網(wǎng)絡架構(gòu),只是我這里使用的是循環(huán)單元);所有的邊都包含簡單的前饋神經(jīng)網(wǎng)絡。那么看起來會是這樣:

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

消息傳遞

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

注:有時候你可為不同類型的邊使用不同的神經(jīng)網(wǎng)絡,比如為單向邊使用一種神經(jīng)網(wǎng)絡,為雙向邊使用另一種神經(jīng)網(wǎng)絡。這樣你仍然可以獲取節(jié)點之間的空間關(guān)系。

就GNN而言,對于單個參考節(jié)點,近鄰節(jié)點會通過邊神經(jīng)網(wǎng)絡向參考節(jié)點上的循環(huán)單元傳遞它們的消息(嵌入)。參考循環(huán)單位的新嵌入更新,基于在循環(huán)嵌入和近鄰節(jié)點嵌入的邊神經(jīng)網(wǎng)絡輸出的和上使用循環(huán)函數(shù)。我們把上面的紅色節(jié)點放大看看,并對這一過程進行可視化:

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

這個過程是在網(wǎng)絡中的所有節(jié)點上并行執(zhí)行的,因為L+1層的嵌入取決于L層的嵌入。因此,在實踐中,我們并不需要從一個節(jié)點「移動」到另一節(jié)點就能執(zhí)行消息傳遞。

注:邊神經(jīng)網(wǎng)絡輸出(黑色信封)之和與輸出的順序無關(guān)。

最后的向量表征有什么用?

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

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

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

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

這是經(jīng)過n次重復消息傳遞之后帶有已完全更新的嵌入向量的最終圖。你可以將所有節(jié)點的表。征加到一起得到H。

四步驟助你實現(xiàn)圖神經(jīng)網(wǎng)絡

GNN用起來相當簡單。本質(zhì)上,實現(xiàn)它們涉及到以下四個步驟:

給定一個圖,首先將節(jié)點轉(zhuǎn)換為循環(huán)單元,將邊轉(zhuǎn)換為前饋神經(jīng)網(wǎng)絡;

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

然后再在所有節(jié)點的嵌入向量上求和以得到圖表征H;

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

小結(jié)

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

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

猜你喜歡