斯坦福大學開源用於網絡神經百萬量級OGB基準測試的數據集


最近,斯坦福大學的Jure Leskovec教授在NeurlPS 2019大會上發表演講,宣佈了開源開放圖形基準,這是朝著圖形神經網絡建模統一基準邁出的重要一步。

圖神經網絡是近年來迅速發展起來的機器學習的一個分支。通過將非結構化數據轉換成結構化節點和邊的圖,然後利用圖神經網絡進行學習,往往可以取得更好的效果。

然而,圖神經網絡發展至今,還沒有公認的基準數據集。許多論文中使用的方法通常是在缺少節點和邊緣特徵的較小數據集上執行的。因此,很難說在這些數據集上獲得的模型性能是最好的,而且不一定可靠,這阻礙了進一步的發展。

在NeurlPS 2019的圖形演示學習講座中,Jure Leskovec宣佈了圖形神經網絡的開放性能基準數據集OGB(開放圖形基準)。通過這個數據集,可以更好地評估模型性能等指標。

  • 項目地址:http://ogb.stanford.edu
  • 圖為學習演講集:https://slideslive.com/38921872/graph-representation-learning-3


斯坦福大學開源用於網絡神經百萬量級OGB基準測試的數據集

演講嘉賓是斯坦福大學計算機科學副教授Jure Leskovec。

Jure Leskovec前段時間在清華大學做了一場演講,相關PPT可以公總號之前發的文章裡面搜索下載。


值得注意的是,OGB數據集還支持兩種常用的圖形神經網絡框架PYG和DGL。DGL項目的發起人之一、AWS 上海 AI 研究院院長、上海紐約大學張教授說:“在現階段,我認為OGB最大的作用是推動學術界走出玩具型數據集。一個統一的、更加複雜的、更加多樣化的數據集將使研究者重新聚集力量,雖然會存在模型過度擬合標準數據集的弊端,但重要的是要提高模型和算法的性能,提高DGL等平臺的能力效果。”


張教授說,開放式圖形基準測試是圖形神經網絡非常必要和必要的一步。

圖神經網絡的第一個統一開放基準

Jure-Leskovec在演講中說,目前常用的節點分類數據集也有2k到3k的節點和4k到5k的邊緣,這太小了。我們迫切需要一個多樣的、具有挑戰性的、同時非常接近實際業務的數據基準。

開放圖基準測試就是在這種背景下提出的。它包括各種圖形數據、用於加載和處理圖形數據的代碼庫以及用於測量圖形模型的代碼庫。在整個實驗過程中,研究者只需關注核心模型的構建,其餘的可以交給開放圖基準。

以下是Jure Leskovec在NeurIPS研討會上介紹的OGB:

斯坦福大學開源用於網絡神經百萬量級OGB基準測試的數據集

OGB可以支持PyG和DGL等主流的圖形神經網絡框架,以及新穎的數據集分割。在圖神經網絡中,數據集的分割尤為重要,這與一般的機器學習任務有很大的不同。


隨著研究的發展,OGB將繼續滾動。目前它在視覺領域與CIFAR相似。張教授說:“OGB數據在異構圖中所佔的比例太小,任務僅限於點和邊。圖的分類、對圖的推理、時間的重要維數等都沒有考慮。


什麼是OGB數據


畢竟,它是一個基準數據集,而OGB的數據自然是最高優先級。根據官方網站提供的信息,OGB的數據根據任務要求分為以下幾類:


  1. 節點預測
  2. 連接預測(邊緣)預測;
  3. 圖形預測


以下是每個任務中包含的數據集:

節點預測

  1. odbn蛋白質:蛋白質數據集,在蛋白質之間有一個關聯網絡,包括多個有機體;
  2. odbn維基:維基百科數據形成的網絡;
  3. ogbn產品:亞馬遜客戶同時購買的產品網絡。
斯坦福大學開源用於網絡神經百萬量級OGB基準測試的數據集

目前包含在此基準中的數據集


從數據集的類型來看,它涵蓋了需要圖形表示學習的幾個現有領域:生物/分子化學、自然語言處理和產品推薦系統網絡。此外,這些圖中的數據量也非常大。例如,ogbn wiki的數據量已經達到了數百萬個層次(節點),最小的ogbn蛋白是100K,這比以前的許多圖形數據都要大得多,因此可以更好地評價模型的性能。


連接預測


在連接預測中有更多的數據集,包括:

藥物相互作用網絡;

  1. ogbi-ddi:人類生物醫學知識圖譜;
  2. ogbi-ppa:蛋白質之間的關係網絡;
  3. ogbi評論:亞馬遜用戶項目評論數據集;
  4. ogbi引文:微軟學術引文網絡圖。
斯坦福大學開源用於網絡神經百萬量級OGB基準測試的數據集

與節點數據集相比,連接預測數據集更為豐富,類型也更為多樣。

圖形預測

  1. OGB還提供用於預測圖形的任務數據集,這些數據集包括:
  2. ogbg-mol:從分子網絡預測分子;
  3. ogbg-code:一種語法樹結構的代碼段網絡;
  4. ogbg-ppi:蛋白質間的相互作用網絡;
斯坦福大學開源用於網絡神經百萬量級OGB基準測試的數據集

總的來說,有許多數據集偏向於醫學和生物學。張教授認為,這可能有兩個原因。首先,項目負責人Jure和其他人在這方面做了很多工作,因此推廣這些數據集的開源是合乎邏輯的。另一個原因是藥物分子的圖形數據相對乾淨,噪聲較小。藥物的結構是三維的,可能需要更復雜和更深入的模型來解決相關問題。


對於未來會增加哪些數據集,張教授認為,目前關於異構圖的數據還不夠,現實中很多數據都是用異構圖來表示的。然而,OGB的作用仍然顯而易見。它可以提高開源圖形神經網絡框架的能力,促進開源社區專注於解決實際問題。

此外,OGB數據集在財務和信用報告領域缺乏數據集,特別是在反欺詐領域。這可能是反欺詐數據集脫敏後特徵過度丟失的問題造成的,但缺陷並沒有被掩蓋。OGB無疑幫助圖形神經網絡擺脫了所謂的“玩具模型”階段,開始逐步進入工業應用。

數據加載和評估

OGB的大量數據需要特殊的代碼來提取。據報道,所有開源數據集都可以用特定的代碼進行提取和加載。使用過程類似於深度學習框架中的數據加載器。但在使用之前,我們只需要使用“pip install ogb”來完成安裝。目前,OGB庫主要依賴於常用的建模庫,如PyTorch、NumPy和Scikit Learn。當然,圖形神經網絡庫也可以自由選擇DGL或PyTorch幾何。

DGL:https://github.com/dmlc/DGL

PyG:https://github.com/rusty1s/pytorch_geometric


現在以節點預測為例,OGB支持PYG圖和DGL圖來表示學習框架中的數據加載方法。加載代碼如下:


PYG

<code>from ogb.nodeproppred.dataset_pyg import PygNodePropPredDatasetdataset = PygNodePropPredDataset(name = d_name) num_tasks = dataset.num_tasks # obtaining number of prediction tasks in a datasetsplitted_idx = dataset.get_idx_split()train_idx, valid_idx, test_idx = splitted_idx["train"], splitted_idx["valid"], splitted_idx["test"]graph = dataset[0] # pyg graph object/<code>

DGL

<code>from ogb.nodeproppred.dataset_dgl import DglNodePropPredDatasetdataset = DglNodePropPredDataset(name = d_name)num_tasks = dataset.num_tasks # obtaining number of prediction tasks in a datasetsplitted_idx = dataset.get_idx_split()train_idx, valid_idx, test_idx = splitted_idx["train"], splitted_idx["valid"], splitted_idx["test"]graph, label = dataset[0] # graph: dgl graph object, label: torch tensor of shape (num_nodes, num_tasks)/<code>

代碼非常簡單,易於使用。”“D_name”可以替換為任何數據集的名稱。


同時,該項目提供了一些示例代碼來評估每個數據集。具體如下:

<code>from ogb.nodeproppred import Evaluatorevaluator = Evaluator(name = d_name) print(evaluator.expected_input_format) print(evaluator.expected_output_format)/<code>

在此,用戶可以瞭解此數據集的輸入和輸出的特定格式。


然後,用戶可以將輸入字典傳遞給計算器,以查看實際性能:

<code># In most cases, input_dict is# input_dict = {"y_true": y_true, "y_pred": y_pred} result_dict = evaluator.eval(input_dict)/<code>


據悉,OGB已經正式指定上海AWS人工智能研究院的主要開源框架DGL作為數據導入平臺之一。目前,DGL與PyTorch和MxNet作為後端引擎兼容,TensorFlow也在開發中。事實上,DGL已經做了很長一段時間的異構圖形和可伸縮性工作,因此下一步可能是在相關領域將新技術與OGB結合起來,促進開源框架的發展。


張教授說,“DGL目前在醫藥領域有一個很好的模型庫。使用OGB數據集,之後應該進一步改進模型庫的迭代。”


為什麼分割圖數據是個問題?


在演講中,Jure Leskovec特別強調了OGB所採用的數據劃分方法,這種方法可以建立一個更加合理的評估方案。他說,看起來隨機數據分割並不令人擔心,但當我們將數據隨機分成訓練、驗證和測試集時,很可能預測的準確率看起來非常好。但事實上,隨機分割模型驗證的效果被高估了。


舉了例子,比如自然科學研究人員,他們每次收集的數據絕對不是重複的,他們每次都需要做一系列新的實驗,所以模型每次都是在分佈之外做預測。這就要求數據分割方法必須非常合理,並且模型的泛化能力必須足夠強,以處理這些分佈之外的數據預測。


斯坦福大學開源用於網絡神經百萬量級OGB基準測試的數據集

在談到數據分割時,張教授說:“在與製藥行業的研究人員討論時,我們被提醒,在訓練集上進行隨機分割是不可取的,因為分子圖樣本具有結構性質,並且是獨立且均勻分佈的假設將有一個對模型泛化能力的影響,我認為其他領域也會出現同樣的問題。”


為了處理這種情況,OGB採用的數據分區方法也非常有趣。例如,對於分子圖數據集,分割方法可以是分子支架。具體來說,我們可以利用分子子結構進行聚類,然後利用常用的聚類作為訓練集,再利用其他稀有的聚類作為驗證和測試。準備好了。這種處理方法將迫使神經網絡獲得更高的泛化能力,否則將無法預測具有不同子結構的分子。


按物種或代碼基劃分是同樣的原因。實際上,這些數據部門試圖將一小部分作為一個整體進行測試。

斯坦福大學開源用於網絡神經百萬量級OGB基準測試的數據集

最後,Jure-Leskovec還表示,他們不僅將OGB視為一種廣泛使用的研究資源,而且還將其視為各種新任務或新模型的真實測試環境。在不久的將來,OGB將進一步支持更多的圖形數據集、更多的圖形建模任務,同時提供一個開放的導板。有了這樣的導板,我們可以更直觀地評估各種圖形神經網絡的特性,並瞭解它們在哪些情況下可以表現最好。


分享到:


相關文章: