本篇文章是論文的介紹性博客:Benchmarking Graph Neural Networks (https://arxiv.org/abs/2003.00982)的介紹性文章,有興趣的可以下載原文閱讀
圖0:在稀疏的2D張量上運行的GCN(頂部)和在密集的2D張量上運行的WL-GNN(底部)的標準實驗。
圖神經網絡(GNN)如今在社會科學,知識圖,化學,物理學,神經科學等的各種應用中得到廣泛使用,因此,文獻中的論文數量激增。
但是,在缺乏標準和被廣泛采用的基準的情況下,衡量新模型的有效性和驗證可以普遍適用于較大和復雜數據集的新思想變得越來越困難。
為了解決圖學習研究中存在的最重要的問題,我們開發了一個開源的,易于使用的且可重現的基準框架(https://github.com/graphdeeplearning/benchmarking-gnns),該框架具有嚴格的實驗協議,該協議代表了GNN的進步。
這篇文章概述了GNN文獻中的問題,提出了基準的需求,本文提出的框架,是一種廣泛使用的強大GNN基準類別并提出了從廣泛的實驗中學到的見識。
為什么要進行基準測試?
在深度學習的任何核心研究或應用領域中,基準都有助于識別和量化哪些類型的架構,原理或機制是通用的,并且可以推廣到實際任務和大型數據集。 AI領域中的最新革命通常很可能是由大規?;鶞蕡D像數據集的ImageNet觸發的。 (顯然,其他驅動因素包括研究量的增加,更多數據集,計算,廣泛采用等)。
圖1:paperswithcode.com的ImageNet分類排行榜
事實證明,在許多科學的領域中,基準測試對于推動進步,確定基本思想以及解決與領域相關的問題都是有益的。 這個項目是基于這種動機而構思的。
GNN需要的基準框架
a.數據集
GNN文獻中許多被廣泛引用的論文都包含在只有幾百(或幾千)圖的小型圖數據集上進行評估的實驗。
圖2:廣泛使用的數據集的統計數據。 資料來源為Errica2020等
例如,ENZYMES數據集,幾乎在用于分類任務的GNN的每項工作中都可以看到。 如果使用隨機10倍交叉驗證(在大多數論文中),則測試集將具有60張圖(即600張總圖的10%)。 這意味著正確的分類(或錯誤分類)將改變測試準確性得分的1.67%。幾個樣本可以確定績效指標的差異為3.33%,這通常是在驗證文獻中的一個新想法時得出的顯著增益得分。 這里可以看到,樣本數量不可靠,無法具體確認進展情況。¹
我們的實驗也表明,此類數據集的性能標準差很大,因此很難對研究思路做出實質性結論。 此外,大多數GNN在這些數據集上的統計結果均相同。 這些數據集的質量也使人質疑在驗證GNN的想法時是否應使用它們。 在其中一些數據集中,較簡單的模型有時也表現很出色,甚至優于GNN。
因此,區分復雜,簡單和不可知的圖形架構以進行圖形機器學習變得困難。
b.一致的實驗方案:
GNN文獻中的幾篇論文在統一而穩健的實驗設置上沒有達成共識,這導致實驗中討論的方向的不一致。
此處要突出幾個示例:Ying等人在2018年對10倍拆分數據進行了固定次數的訓練,并報告了每個epoch的性能,該性能具有"在任何epoch的拆分中具有最高的平均驗證準確性" 的特點。 Lee等人,2019年通過監測epoch損失并報告"最后一個epoch的平均測試準確性"超過10倍拆分數據,因此使用了"提前停止標準"。
現在,如果我們將這兩篇論文的結果提取到同一張表中,并聲稱性能得分最高的模型是最有前途的,那么我們是否可以確信這種比較是公平的?
模型的性能還與其他一些問題,超參數選擇,可訓練參數的不合理預算中的比較,使用不同的訓練-驗證-測試分割等有關。
這些問題的存在促使我們開發了GNN基準框架,該框架將GNN研究標準化,并幫助研究人員取得更有意義的進展。
建立GNN基準的挑戰
缺乏基準一直是GNN文獻中的主要問題,因為上述要求尚未得到嚴格執行。
設計基準非常具有挑戰性,因為我們必須為編碼框架,實驗設置和適當的數據集做出可靠的決策。 基準還應該是全面的,以涵蓋大多數基本任務,這些基本任務用來指示研究可以應用到的領域。 例如,圖學習問題包括在節點級,邊緣級和圖級預測屬性。 基準應該嘗試涵蓋其中的大部分(如果不是全部)。
同樣,收集真實且具有代表性的大規模數據集也具有挑戰性。 缺乏可以定義數據集質量或驗證給定任務的統計代表性的理論工具,因此很難決定數據集。 此外,由于大多數流行的圖學習框架都不能"非常有效地"迎合大型圖,因此圖的節點和邊的特征以及圖大小的比例需要任意選擇。
最近,開放圖基準測試(OGB)進行了有效的努力,以收集有意義的中大型數據集,以指導圖學習研究。 該計劃是對該項目目標的補充。
擬議的基準框架:
我們為圖神經網絡提出了一個具有以下關鍵特征的基準框架:
1. 我們開發了模塊化的編碼基礎架構,可用于加快新思想的開發
1. 我們的框架采用了嚴格而公正的實驗協議
1. 我們提出了合適的中等規模的數據集,可以將其作為插件用于以后的研究。²
1. 涵蓋了圖機器學習中的四個基本任務,即圖分類,圖回歸,節點分類和邊緣分類。
a.編碼基礎架構
我們的基準代碼基礎架構基于Pytorch / DGL。
從總體來看,我們的框架為以下各項統一了獨立的組件:i)數據通道,ii)GNN層和模型,iii)訓練和測試功能,iv)網絡和超參數配置以及v)單一執行腳本以實現可重復性。
圖3:我們在GitHub上開源的模塊化編碼框架的快照
b.數據集:
我們包括來自化學,數學建模,計算機視覺,組合優化和社交網絡等不同領域的8個數據集。
圖4:基準中包含的數據集的摘要統計
本節介紹了數據集準備步驟及其與基準圖神經網絡的相關性。
值得一提的是,我們包括OGB的OGBL-COLLAB,這表明我們可以靈活地合并OGB計劃中的任何當前和將來的數據集。
c.實驗協議:
我們為基準圖神經網絡模型定義了嚴格而公平的實驗協議。
數據集拆分:鑒于文獻中存在針對不同模型使用不同的訓練驗證測試拆分的問題,我們確保我們的數據管道為每個待比較的GNN模型提供相同的訓練,驗證和測試拆分。 對于一般的數據集,我們遵循標準拆分。 對于沒有標準拆分的合成數據集,我們確保在拆分之間的類分布或合成屬性相同。 請參閱論文以了解更多詳細信息。
訓練:我們對所有實驗使用相同的訓練設置和報告格式。 我們使用Adam優化器以基于驗證損失的學習速率衰減策略訓練GNN。 我們針對每個未指定時期的實驗進行訓練,其中以最小學習率進行訓練會導致模型沒有明顯的學習。
重要的是,這種策略使用戶可以輕松地選擇要訓練模型的時期。
每個實驗都在4種不同的種子上進行,最多需要12個小時的訓練時間,并報告了4個實驗的最后epoch得分的摘要統計信息。
參數預算:我們決定使用兩個可訓練的參數預算:(i)每個任務的每個GNN的100k參數,以及(ii)我們研究將模型放大到更大的參數和更深層的GNN的500k參數。 相應選擇隱藏層的數量和隱藏尺寸以匹配這些預算。
我們選擇具有相似參數的預算以進行公平比較,否則很難嚴格評估不同的模型。 在GNN文獻中,經??吹綄⑿履P团c現有文獻進行比較,而沒有參數數量的任何細節,也沒有試圖使模型具有相同的大小。 話雖如此,我們的目標不是為每個模型都找到最佳的超參數集,這是一項計算量大的任務。
d.圖神經網絡:
我們對GNN的兩大類進行了基準測試,它們代表了最新文獻中見證的圖神經網絡體系結構的絕對進步。 我們將這兩個類別命名為GCN(圖卷積網絡)和WL-GNN(魏斯菲勒-雷曼GNN)。
GCN指的是利用稀疏張量計算的流行的基于消息傳遞的GNN,而WL-GNN是基于WL測試的理論表達GNN,用以區分需要在哪一層進行密集張量計算的非同構圖。
因此,我們的實驗管線如圖5所示為GCN,圖6所示為WL-GNN。
圖5:我們的GCN的標準實驗管線,它們在稀疏的rank-2張量上運行。
圖6:我們的用于WL-GNN的標準實驗管線,它們在密集的rank-2張量上運行。
我們將讀者引向我們的論文和相應的作品,以獲取有關GNN的數學公式的更多詳細信息。 對于感興趣的讀者,我們還將在論文上包括每個基準的GNN的層更新的框圖。
為了在此階段快速回顧,我們討論了基準的需求,建立這樣的框架所面臨的挑戰以及我們提議的基準框架的細節。 現在,我們深入研究實驗。
我們對基于消息傳遞的GCN和WL-GNN進行調查,以揭示重要的見解并強調在構建強大的GNN模型時面臨的潛在的基本挑戰。
在建議的數據集上對GNN進行基準測試。
我們使用基準測試框架中當前包含的每個GNN模型對所有數據集進行全面的實驗。 實驗幫助我們得出許多見解,此處僅討論其中一些。 我們建議閱讀論文以獲取有關實驗結果的詳細信息。
我們基準測試的GNN是:
· 圖卷積網絡(GCN)https://arxiv.org/abs/1609.02907
· GraphSagehttps://cs.stanford.edu/people/jure/pubs/graphsage-nips17.pdf
· 圖注意力網絡(GAT)https://arxiv.org/abs/1710.10903
· 高斯混合模型(MoNet)https://arxiv.org/abs/1611.08402
· GatedGCNhttps://arxiv.org/abs/1711.07553
· 圖同構網絡(GIN)https://arxiv.org/abs/1810.00826
· RingGNN https://papers.nips.cc/paper/9718-on-the-equivalence-between-graph-isomorphism-testing-and-function-Approximation-with-gnns
· 3WL-GNN https://arxiv.org/abs/1905.11136
1.與圖無關的NN在建議的數據集上表現不佳:我們將所有GNN與一個簡單的MLP進行比較,該MLP彼此獨立地更新了每個節點的特征,即忽略了圖結構。
layer層的MLP節點更新公式為:
MLP對每個數據集的評分始終保持較低,這表明有必要考慮這些任務的圖形結構。 這一結果還表明,這些數據集在統計學上將模型的性能分開了,因此它們對于GNN研究是多么合適。
2.在所建議的數據集上,GCN的性能優于WL-GNN:盡管WL-GNN在圖的同構性和表達能力方面具有可證明的強大功能,但我們認為的WL-GNN模型無法勝過GCN。 與使用稀疏張量的GCN相比,這些模型的時空復雜度低,因此可以擴展到較大的數據集。
GCN可以方便地擴展到16層并在所有數據集上提供最佳結果,而WL-GNN在嘗試構建更深的網絡時會面臨損失不收斂和/或內存不足的錯誤。
3.各向異性機制改善了消息傳遞GCN的體系結構:在消息傳遞GCN的模型中,我們可以將它們分為各向同性和各向異性。
節點更新方程對每個邊緣方向均平等對待的GCN模型被認為是各向同性的; 節點更新方程對每個邊緣方向的處理方式不同的GCN模型被認為是各向異性的。
各向同性層更新公式:
各向異性層更新公式:
根據以上等式,GCN,GraphSage和GIN是各向同性的GCN,而GAT,MoNet和GatedGCN是各向同性的GCN。
我們的基準實驗表明,各向異性機制是GCN的體系結構改進,可提供始終如一的出色結果。 請注意,稀疏和密集注意力機制(分別在GAT和GatedGCN中)是GNN中各向異性的示例。
4.訓練理論上強大的WL-GNN面臨著潛在的挑戰:我們觀察到WL-GNN的性能得分存在很高的標準差。 (回想一下,我們報告了4次運行的不同種子的每次性能)。 這揭示了訓練這些模型的問題。
像批量訓練和批量歸一化這樣的通用訓練程序沒有在EL-GNS中使用,因為它們在密集的2D張量上運行。
為了清楚地描述這一點,在處理稀疏秩2D張量的領先圖機器學習庫中,對GCN進行批處理的方法包括為一批圖準備一個稀疏塊對角線鄰接矩陣。
圖7:用一個稀疏塊對角矩陣表示的小批量圖。
在密集秩2D張量上運行的WL-GNN具有在密集張量中的每個位置處/從該位置處計算信息的組件。 因此,同一方法(圖7)不適用,因為它將使整個塊對角矩陣密集,并會破壞稀疏性。
GCN利用分批訓練并使用批歸一化來進行穩定和快速的訓練。 此外,采用當前設計的WL-GNN不適用于單個大型圖形,例如。 OGBL-COLLAB。 我們無法在GPU和CPU內存上都安裝這么大的密集張量。
因此,我們的基準測試建議需要重新考慮WL-GNN的更好的設計方法,這些方法可以利用稀疏性,批處理,歸一化等方案,這些已成為深度學習的通用要素。
更多資源
借助GNN基準框架的介紹和實用性,我們結束了本博文,但如果您對這項工作感興趣的話,還可以閱讀更多內容。
特別是,我們在本文中對鏈接預測的各向異性和邊緣表示進行了更詳細的研究,并提出了一種改進低結構表達GCN的新方法。 我們將在以后的博客文章中分別討論這些內容,以使您清楚理解。
@article{dwivedi2020benchmarkgnns, title={Benchmarking Graph Neural Networks}, author={Dwivedi, Vijay Prakash and Joshi, Chaitanya K and Laurent, Thomas and Bengio, Yoshua and Bresson, Xavier}, journal={arXiv preprint arXiv:2003.00982}, year={2020}}
腳注:
1. 我們并不意味著這些想法沒有用處和/或作者所做的工作沒有意義。 一切努力均有助于該領域的發展。
1. 例如,您可能會參考這些利用我們的框架方便地研究其研究思想的作品。 它表明擁有這樣一個框架的有效性。
1. 請注意,我們的目的不是開發軟件庫,而是想出一個編碼框架,其中每個組件對于盡可能多的用戶都是簡單透明的。
作者:Vijay Prakash Dwivedi