Task02:消息傳遞圖神經(jīng)網(wǎng)絡

圖計算任務成功的關鍵是為節(jié)點生成節(jié)點表征,本節(jié)主要任務如下:

1.首先學習圖神經(jīng)網(wǎng)絡生成節(jié)點表征的規(guī)范-消息傳遞范式(Message Passing)

2.接著初步分析PyG為我們提供的實現(xiàn)圖神經(jīng)網(wǎng)絡的MessagePassing基類矫钓。

3.然后以繼承MessagePassing基類的GCNConv類為例闯团,學習如何通過繼承MessagePassing基類實現(xiàn)一個簡單的圖神經(jīng)網(wǎng)絡。

4.再接著對MessagePassing基類進行剖析

5.最后我們將學習再繼承MessagePassing基類的子類中覆寫message(),aggreate(),message_and_aggreate()和update()方法的規(guī)范孝常。

參考:1.https://blog.csdn.net/qq_41987033/article/details/103377561(這篇超贊的!M匆小)

2.Datawhale提供的課程鏈接:https://github.com/datawhalechina/team-learning-nlp/blob/master/GNN

一殿较、消息傳遞范式介紹

圖1.消息傳遞圖神經(jīng)網(wǎng)絡

神經(jīng)網(wǎng)絡的生成節(jié)點表征的操作稱為節(jié)點嵌入(Node Embedding)耸峭,節(jié)點表征也可以稱為節(jié)點嵌入。為了統(tǒng)一表述淋纲,在本篇內容中我們規(guī)定節(jié)點嵌入只代指神經(jīng)網(wǎng)絡生成節(jié)點表征的操作劳闹。

下圖展示了基于消息傳遞范式的生成節(jié)點表征的過程:

圖2.由兩層傳播生成節(jié)點A的Embedding

如圖2所示,節(jié)點A是我們的目標節(jié)點洽瞬,節(jié)點A的Embedding本涕,是它的鄰接節(jié)點B、C伙窃、D的Embedding傳播的結果菩颖,而節(jié)點B、C为障、D的Embedding晦闰,又是由它們各自的鄰接節(jié)點Embedding傳播的結果。具體步驟如下:

1.B節(jié)點的鄰接節(jié)點(A鳍怨、C)的信息經(jīng)過變換聚合到B節(jié)點呻右,接著B節(jié)點信息與鄰居節(jié)點聚合信息一起經(jīng)過變換得到B節(jié)點的新的節(jié)點信息。C鞋喇、D節(jié)點的信息也遵循同樣的過程被更新声滥。實際上,同樣的過程在所有節(jié)點都進行了一遍侦香,所有節(jié)點的信息都更新了一遍落塑。

2.這樣的鄰居節(jié)點信息傳遞到中心節(jié)點的過程會進行多次。如圖2所示鄙皇,A節(jié)點的鄰接節(jié)點(B芜赌,C仰挣,D)的已經(jīng)更新過一次的節(jié)點信息經(jīng)過變換伴逸、聚合、再變換得到了A節(jié)點第二次更新的節(jié)點信息膘壶。多次更新后的節(jié)點信息就作為節(jié)點表征错蝴。

二洲愤、GCNConv源碼解析

PyG提供了MessagePassing基類,它封裝了“消息傳遞”的運行流程顷锰。通過繼承MessagePassing基類柬赐,可以方便地構造消息傳遞圖神經(jīng)網(wǎng)絡,構造一個最簡單的消息傳遞圖神經(jīng)網(wǎng)絡類官紫,我們只需定義message()方法肛宋、update()方法,以及使用的消息聚合方案(aggr="add"束世、aggr="mean"或aggr="max")酝陈。

圖3.GCNConv公式

如圖3向量形式的GCNConv公式,其中毁涉,相鄰節(jié)點的特征首先通過權重矩陣進行轉換沉帮,然后按端點的度進行歸一化處理,最后進行求和贫堰。這個公式可以分為以下幾個步驟:

a.向鄰接矩陣添加自環(huán)邊

b.線性轉換節(jié)點特征矩陣

c.計算歸一化系數(shù)

d.歸一化j中的節(jié)點特征

e.將相鄰節(jié)點特征相加("求和"聚合)

GCNConv公式實現(xiàn)中步驟a-c是在消息傳遞發(fā)生之前計算的穆壕,步驟d-e可以使用MessagePassing基類處理。該層的實現(xiàn)如下:

圖4.導入庫
圖5.定義GCNConv
圖6.建立模型

三其屏、作業(yè)

圖7.作業(yè)要求
圖8.作業(yè)
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末喇勋,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子偎行,更是在濱河造成了極大的恐慌茄蚯,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件睦优,死亡現(xiàn)場離奇詭異渗常,居然都是意外死亡,警方通過查閱死者的電腦和手機汗盘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進店門皱碘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人隐孽,你說我怎么就攤上這事癌椿。” “怎么了菱阵?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵踢俄,是天一觀的道長。 經(jīng)常有香客問我晴及,道長都办,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮琳钉,結果婚禮上势木,老公的妹妹穿的比我還像新娘。我一直安慰自己歌懒,他們只是感情好啦桌,可當我...
    茶點故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著及皂,像睡著了一般甫男。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上验烧,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天查剖,我揣著相機與錄音,去河邊找鬼噪窘。 笑死笋庄,一個胖子當著我的面吹牛,可吹牛的內容都是我干的倔监。 我是一名探鬼主播直砂,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼浩习!你這毒婦竟也來了静暂?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤谱秽,失蹤者是張志新(化名)和其女友劉穎洽蛀,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體疟赊,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡郊供,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了近哟。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片驮审。...
    茶點故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖吉执,靈堂內的尸體忽然破棺而出疯淫,到底是詐尸還是另有隱情,我是刑警寧澤戳玫,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布熙掺,位于F島的核電站,受9級特大地震影響咕宿,放射性物質發(fā)生泄漏币绩。R本人自食惡果不足惜蜡秽,卻給世界環(huán)境...
    茶點故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望类浪。 院中可真熱鬧载城,春花似錦肌似、人聲如沸费就。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽力细。三九已至,卻和暖如春固额,著一層夾襖步出監(jiān)牢的瞬間眠蚂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工斗躏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留逝慧,地道東北人。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓啄糙,卻偏偏與公主長得像笛臣,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子隧饼,可洞房花燭夜當晚...
    茶點故事閱讀 45,055評論 2 355

推薦閱讀更多精彩內容