圖卷積神經網絡_深度層次化圖卷積神經網絡

f7193b51bee18f98f2355d0dbd0e51ee.png
來源:IJCAI 2019
論文地址:https://arxiv.org/abs/1902.06667
代碼地址:https://github.com/CRIPAC-DIG/H-GCN

Introduction

1、問題定義:什么是半監督的節點分類?

5ddef27be50cdb97b6209379a5057b6c.png
圖1 半監督節點分類

如圖1所示,在標記數據量很少,待預測的節點和標記節點距離較遠的情況下,預測未知節點的標簽就叫做半監督的節點分類。

2、為什么要進行半監督的節點分類?

在現實生活中,圖數據無處不在,例如社交網絡,知識圖譜,蛋白質分子等。許多應用都需要分析每個節點的性質,圖節點分類任務就是這樣一個基礎的任務。但是,目前圖的節點分類存在一些挑戰,主要包括:

(1)圖數據的非歐式空間難以應用傳統的深度學習方法;

(2)節點之間的關系錯綜復雜;

(3)實際應用中標注數據相比總體數據數據很少。

Related Work

1、GCN

f213d60159b04b2dc4da1bfa32d0bbcc.png
圖2 圖卷積神經網絡的示意圖

如圖2所示,每個節點通過鄰域聚合的方式,把它的鄰居節點的特征通過一定的方式聚合到一起,學出來中心節點的表達。

2、GAT

638ffa135337f8448094a83b01574fff.png
圖3 GAT的示意圖

如圖3所示,GAT仍然是采用鄰域聚合的思想,想要學習h1表達,需要聚合h2~h6的特征,只是這里權重的學習使用了Attention機制。

3、GraphSAGE

7294a72e3ce986d1225ee80e9d529946.png
圖4 GraphSAGE示意圖

GCN、GAT都屬于直推學習(transductive),無法直接泛化到之前未見的節點。而GraphSAGE屬于歸納式(inductive)模型,能夠為新增節點快速生成embedding,而無需額外訓練過程。

主要由以下三部分組成:

鄰居采樣:因為每個節點的度是不一致的,為了計算高效, 為每個節點采樣固定數量的鄰居。

鄰居特征聚集:通過聚集采樣到的鄰居特征,更新當前節點的特征。

訓練:既可以用獲得的特征預測節點的上下文信息(context),也可以利用特征做有監督訓練。

4、Hierarchical Graph Representation Learning with Differentiable Pooling(NIPS 2018)

93b02cc28e33150236987144b6286aa7.png
圖5 層次化的圖卷積網絡

如圖5所示,層次化的圖卷積網絡加入了Pooling層,能夠捕捉圖的層次信息,擴大了感受野。但是,這里的Pooled network訓練十分困難,需要兩個Loss保證網絡能夠收斂,Pooled network at level 1,2,3各不相同,需要分別訓練。導致整個網絡參數量巨大。

Proposed Method

7233668b86f7f9823abd43954ce77e63.png
圖6 H-GCN的網絡結構

如圖6所示,H-GCN是一個對稱的網絡結構:在圖6的左側,在每次GCN操作后,我們使用Coarsening方法把結構相似的節點合并成超節點,因此可以逐層減小圖的規模。由于每個超點對應了原始圖中的一個局部結構,對超節點組成的超圖進行圖卷積操作就可以獲得更大的更大的感受野。對應地,在示意圖的右側,我們在每次GCN操作后將超節點進行還原,即可得到每個原始節點的表達。同時,我們在對稱的神經網絡層之間加了shortcut連接,從而可以更好地訓練。

具體的coarsening方法如圖7所示:

d123e96a94876d6ffb8ee05b32798e65.png
圖7 Coarsening方法

具體分為兩種情況:

(1)SEG(Structural Equivalence Grouping):合并鄰居節點完全相同的節點為一個超節點。

(2)SSG(Structural Similarity Grouping):按照結構相似度從大到小,合并相應的節點。結構相似性按照如下公式計算:

e0c866d204278dd1153057b7d35a6b4b.png

其中,Aij表示節點Vi,Vj所組成邊的權值,D(Vi),D(Vj)表示節點Vi,Vj的度。

Experiment

為了驗證H-GCN的有效性,作者在主流的節點分類任務上進行了測試,數據集包括引文數據集和知識圖譜。分類結果如圖8所示,H-GCN取得了SOTA的結果。

一個有意思的發現是:相比在引文數據集上的效果,H-GCN在知識圖譜數據集NELL上的精度遠遠超過其他baseline方法。這是因為在NELL數據集上的訓練數據量最少(僅0.3%的標記率),這可以定性地說明H-GCN能有效的增大感受野,使節點感受到相距比較遠的標記節點的標簽信息。

e661c8396dbbada4512b74b3e785abad.png
圖8 分類準確率

為了進一步定量驗證H-GCN對模型感受野的增大作用,作者在Pubmed上逐漸減小訓練數據量,從每類20個標記樣本到每類僅5個樣本,結果如圖9所示。可以發現,當訓練樣本逐漸減少時,baseline的精度下降非常明顯,而H-GCN卻能保持很高的準確率。在每類僅5個樣本時,H-GCN比其他方法至少高出6個百分點。這是個非常有用的性質,因為現實生活中由于海量的數據量和高昂的標記成本,我們通常沒有太多的標記樣本,而H-GCN更大的感受野可以更充分地利用標記樣本的標簽信息。

293b50c63d0be2c602cc84362acedaec.png
圖9 樣本從20-5的分類準確率

相比于傳統模型,H-GCN的一個特點是網絡層數更深了,作者進一步分析了層數加深對性能的影響。如圖10所示,當網絡層數加深時,精度逐漸提升,但是當網絡太深時,由于過擬合等原因,精度開始下降。在實驗中,我們在引文數據集上使用了4層粗化層(對應的網絡共有9層),在NELL數據集上使用了5層粗化層(對應的網絡共有11層),這可能是由數據集的規模不同導致的。因為NELL的數據集最大,所以網絡容量可以更大一點。

226d8eb67b8e5f56e3ae890c39155d6d.png
圖10 層次加深對網絡的影響

conclusion

圖數據上的coarsening/pooling機制可以有效地增大模型的感受野,從而獲取足夠的全局信息。不同于傳統的淺層圖神經網絡,作者提出了層次化的深度(分別為9層和11層)圖卷積模型H-GCN,在節點分類任務上取得了SOTA的結果。特別地,在訓練數據非常少的場景下,H-GCN的提升更為明顯。而在現實生活中由于海量的數據量和高昂的標記成本,我們通常沒有太多的標記樣本,而H-GCN更大的感受野可以更充分地利用標記樣本的標簽信息,進一步提高分類準確性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/260074.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/260074.shtml
英文地址,請注明出處:http://en.pswp.cn/news/260074.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計算機二級怎么測試c語言,全國計算機等級測試二級C語言視頻教程(完整版).doc...

第一章 程序設計的基本概念01-01.程序設計的基本概念(1)01-02.程序設計的基本概念(2)01-03.程序設計的基本概念(3)第二章 C語言基礎知識02-01.簡單C語言的構成和格式(1)02-02.簡單C語言的構成和格式(2)02-03.標識符的組成和分類02-04.整型數據和實型數據(1)02-05.整型數據和實型…

去掉Phoca Download的Powered By

進入components/com_phocadownload/views/ 這是Phoca Download的模板文件夾 打開category/tmpl/default.php 分類頁 //echo </div><div class"pd-cb"> </div> . $this->tmpl[phoca_download];echo </div> ; 打開file/tmpl/default.php …

如何居中div

div居中 博客分類&#xff1a;筆記csshtmldiv CSS中怎么讓div居中 CSS 如何使div層水平居中今天用CSS遇到個的問題,div本身沒有定義自己居中的屬性, 網上很多的方法都是介紹用上級的text-align: center然后嵌套一層div來解決問題. 可是事實上這樣的方法科學嗎? 經過網絡搜索…

c語言小數加分,求救:c語言課程設計 員工工資管理程序 有加分的。謝謝

#define SIZE 50/* 定義結構體 */struct date{int month;int day;int year;};typedef struct employee{char name[50] ,num[10],sex,edu[10],duty[15];int age,income;struct employee *next;}empl[SIZE];/* 逐項輸出鏈表中的內容 */void view (struct employee* head){struct …

老師能提供什么幫助

老師能提供什么幫助&#xff1f; 這篇本來想上周寫的&#xff0c;原計劃在感恩節推送&#xff0c;可惜太忙&#xff0c;計劃趕不上變化。 時隔十年&#xff0c;我又要給計算機系的同學們上課了&#xff0c;心里還是有些小激動的。我下學期要開一門大課叫程序設計與數據結構,涵蓋…

(轉)SystemProcessesAndThreadsInformation

http://hi.baidu.com/hanjdud8606/item/7a970408a95acc843d42e27f NTSTATUS NTAPI ZwQuerySystemInformation(ULONG SystemInformationClass,PVOID SystemInformation,ULONG SystemInformationLength,PULONG ReturnLength ); 第一個參數是一個枚舉類型&#xff0c;傳入的是你需…

12個Icon圖標資源網站

1.除了Icon以外&#xff0c;還有很多不錯的UI設計素材。 地址&#xff1a;http://worldui.com/2.除了免費Icon資源下載以外&#xff0c;還提供Icon定制的付費服務。地址&#xff1a;http://dryicons.com/3.很喜歡這個icon資源站的展示方式。地址&#xff1a;http://www.icotrip…

python列表split_Python-split()函數實例用法講解

在Python中&#xff0c;split() 方法可以實現將一個字符串按照指定的分隔符切分成多個子串&#xff0c;這些子串會被保存到列表中(不包含分隔符)&#xff0c;作為方法的返回值反饋回來。split函數用法split(sepNone, maxsplit-1)參數sep – 分隔符&#xff0c;默認為所有的空字…

go語言基礎 -- 閉包

什么是閉包 閉包的概念&#xff0c;在很多語言中都有&#xff0c;比如python&#xff0c;這里要介紹的go&#xff0c;閉包就是函數與其相關的環境組合的一個整體。 我們通過一個例子來理解閉包&#xff1a; func Addfunc() func (x int) int {var n int 0// 返回的是一個函數…

linux中解決SSH連接慢問題

2019獨角獸企業重金招聘Python工程師標準>>> 現在連接linux服務器一般都是使用SSH遠程連接的方式。最近新裝了一臺服務器&#xff0c;發現telnet時速度很快&#xff0c;ping時一切也正常&#xff0c;但SSH連接的時候卻很慢。經過網上資料查詢&#xff0c;大致是有以…

利用Theme自定義Activity進入退出動畫

有沒有覺得Activity的默認動畫太快了或者太難看了。。我原來使用Activity.overridePendingTransition來自定義Activity的進入動畫&#xff0c;卻發現沒法定義退出的動畫。結果就發現了強大的Theme和Style&#xff0c;之后還需要好好研究一下。具體是這樣子的&#xff1a;在Andr…

阿里云深圳數據中心正式開放

阿里云深圳數據中心正式開放 ? 8月29日&#xff0c;阿里云深圳數據中心正式開放運營&#xff0c;這是繼杭州、青島、北京、香港之后&#xff0c;我們在全球開放的第五個數據中心。 深圳數據中心主要輻射以深圳、廣州為中心的華南區域&#xff0c;以滿足這一區域內的商貿企業、…

vue 文件及描述信息一起上傳_用Vue實現一個大文件上傳和斷點續傳

前言這段時間面試官都挺忙的&#xff0c;頻頻出現在博客文章標題&#xff0c;雖然我不是特別想蹭熱度&#xff0c;但是實在想不到好的標題了-。-&#xff0c;蹭蹭就蹭蹭 :)事實上我在面試的時候確實被問到了這個問題&#xff0c;而且是一道在線 coding 的編程題&#xff0c;當時…

c語言函數聲明定義參數命名,C語言函數聲明與定義

C語言函數聲明與定義教程在C語言函數聲明與定義語法type funcName(paramType1 param1, paramType2 param2){// 執行語句...return val}參數參數描述type函數的返回值類型&#xff0c;如果沒有任何返回值&#xff0c;則寫 void&#xff0c;不可以死省略不寫。funcName函數名。pa…

gcc g++ Linux下動態庫_靜態庫

關于Unix靜態庫和動態庫的分析 基本概念 庫有動態與靜態兩種&#xff0c;動態通常用.so為后綴&#xff0c;靜態用.a為后綴。 例如&#xff1a;libhello.so libhello.a 為了在同一系統中使用不同版本的庫&#xff0c;可以在庫文件名后加上版本號為后綴,例如&#xff1a; libhell…

SNF開發平臺WinForm之五-高級查詢使用說明-SNF快速開發平臺3.3-Spring.Net.Framework

5.1運行效果&#xff1a; 5.2開發實現&#xff1a; 1、按上面效果來說&#xff0c;先來看一下在程序當中如果調用。第一步在頁面拖拽一個按鈕為“高級查詢”&#xff0c;事件上寫下如下代碼&#xff1a; 如果是單表查詢的話&#xff0c;只需要傳GridView就行&#xff0c;如果是…

【轉】PowerDesigner表結構和字段大小寫轉換

【轉自】http://blog.csdn.net/xysh1991/article/details/8016192 使用方法&#xff1a;進入PowerDesigner&#xff0c;打開一個PDM&#xff0c;在菜單欄找到&#xff1a;Tools – Excute Commands – Edit/Run Script&#xff0c;或者直接按CtrlShiftX調出腳本執行窗口&#x…

新唐c語言怎么計算指數運算,C語言位域精解

有些信息在存儲時&#xff0c;并不需要占用一個完整的字節&#xff0c; 而只需占幾個或一個二進制位。例如在存放一個開關量時&#xff0c;只有0和1 兩種狀態&#xff0c;用一位二進位即可。為了節省存儲空間&#xff0c;并使處理簡便&#xff0c;&#xff23;語言又提供了一種…

華為榮耀5cvs華為v9play_華為榮耀v9play和榮耀9哪個好_華為榮耀v9play和榮耀9對比評測_飛翔教程...

華為榮耀v9play是華為最新發布的手機&#xff0c;這款手機可以說是華為榮耀v9的青春版&#xff0c;把這款手機跟華為榮耀9對比起來哪款更好呢&#xff1f;下面就為大家帶來詳細的華為榮耀v9play和榮耀9對比評測&#xff01;榮耀9介紹&#xff1a;6.12日下午&#xff0c;榮耀在上…

頸椎病防治指南

2019獨角獸企業重金招聘Python工程師標準>>> 長期從事財會、寫作、打字、辦公室等職業的工作人員&#xff0c;由于長期低頭伏案工作&#xff0c;使頸椎長時間處于屈曲位或某些特定體位&#xff0c;不僅使頸椎間盤內的壓力增高&#xff0c;而且也使頸部肌肉長期處于非…