<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          改善圖形神經(jīng)網(wǎng)絡(luò),提升GNN性能的三個(gè)技巧

          共 4681字,需瀏覽 10分鐘

           ·

          2022-05-18 23:39


          來(lái)源:DeepHub IMBA

          本文約2800,建議閱讀8分鐘

          本文總結(jié)了一些技巧來(lái)提高 GNN 模型的性能。


          GNN 提供了一種在圖結(jié)構(gòu)化數(shù)據(jù)上使用深度學(xué)習(xí)技術(shù)的方法。圖結(jié)構(gòu)數(shù)據(jù)無(wú)處不在:從化學(xué)(例如分子圖)到社交媒體(例如社交網(wǎng)絡(luò))以及金融投資(例如 VC 投資網(wǎng)絡(luò)),GNN 在各種任務(wù)中顯示出最先進(jìn)的性能1 2。


          在我的以前的一個(gè)實(shí)踐:在投資者、初創(chuàng)公司和個(gè)人組成的投資網(wǎng)絡(luò)上預(yù)測(cè)初創(chuàng)公司未來(lái)的融資輪次,其基線(xiàn)隨機(jī)森林模型已經(jīng)相當(dāng)強(qiáng)大(AUC = 0.69)。但是GNN 模型(AUC = 0.66)一直落后于基線(xiàn)模型的性能,并且增加層數(shù)和隱藏維度并沒(méi)有幫助。所以我開(kāi)始研究,發(fā)現(xiàn) GNN 并不簡(jiǎn)單。


          為了解決這個(gè)問(wèn)題,本文總結(jié)了一些技巧來(lái)提高 GNN 模型的性能。


          什么是 GNN?


          在討論如何改進(jìn) GNN 之前,讓我們快速回顧一下它們的工作原理。假設(shè)我們有一個(gè)簡(jiǎn)單的圖表,如下所示:





          圖包含節(jié)點(diǎn)(i、j 和 k)和連接這些節(jié)點(diǎn)的邊(e)。此外,圖還包括每個(gè)節(jié)點(diǎn)(X1,...)和可能的每條邊(黑色)的節(jié)點(diǎn)特征。目標(biāo)節(jié)點(diǎn)以黃色著色,其 1 跳鄰居為藍(lán)色,2 跳鄰居以綠色表示。包括不同類(lèi)型節(jié)點(diǎn)的圖稱(chēng)為“異構(gòu)”圖,就像上面的例子一樣。


          消息傳遞


          步驟 0 中節(jié)點(diǎn)的嵌入只是由其自身的特征向量(由特征 X1、X2……組成)。為了獲得新的 (l + 1) 節(jié)點(diǎn)嵌入 h,對(duì)于目標(biāo)節(jié)點(diǎn) i(黃色),需要從其相鄰節(jié)點(diǎn) j(藍(lán)色)中提取所有嵌入,提取其自身的表示以及潛在的邊緣特征e(黑色)并聚合該信息。這具體步驟參考下面的公式。但是,目前大多數(shù)著名的 GNN 架構(gòu)都沒(méi)有使用邊緣特征?。在提取特征之后就可以將這些新的節(jié)點(diǎn)嵌入用于各種任務(wù),例如節(jié)點(diǎn)分類(lèi)、鏈接預(yù)測(cè)或圖分類(lèi)。



          GNN 的問(wèn)題


          許多最近跨領(lǐng)域的研究發(fā)現(xiàn) GNN 模型沒(méi)有提供預(yù)期的性能? ? ?。當(dāng)研究人員將它們與更簡(jiǎn)單的基于樹(shù)的基線(xiàn)模型進(jìn)行比較時(shí),GNN 甚至無(wú)法超越基線(xiàn)的模型,例如我們上面提到的隨機(jī)森林。


          一些研究人員對(duì) GNN 有時(shí)表現(xiàn)不佳提供了理論解釋?。根據(jù)他們的實(shí)驗(yàn),GNN 只進(jìn)行特征去噪,無(wú)法學(xué)習(xí)非線(xiàn)性流形。因此他們主張將 GNN 視為圖學(xué)習(xí)模型的一種機(jī)制(例如,用于特征去噪),而不是他們自己的完整的端到端模型。


          為了解決這些問(wèn)題并提升 GNN,本文總結(jié)了 3 個(gè)主要技巧/想法:


          • 在 GNN 中利用邊緣特征

          • GNN 的自我監(jiān)督預(yù)訓(xùn)練

          • 分離前置和下游任務(wù)


          利用邊緣特征


          利用邊緣特征的想法在很大程度上取決于正在使用的數(shù)據(jù)類(lèi)型。如果數(shù)據(jù)包含(多維)邊緣特征,則利用邊緣特征可以對(duì)模型的性能產(chǎn)生影響。


          但是很少有已建立的 GNN 模型架構(gòu)支持多維邊緣特征?。以我的經(jīng)驗(yàn),使用過(guò)并且效果很好的一個(gè)簡(jiǎn)單的解決方法是創(chuàng)建人造節(jié)點(diǎn):


          通過(guò)使用人造節(jié)點(diǎn),可以繼續(xù)使用以前使用的相同模型。而唯一要改變的是圖本身,新增節(jié)點(diǎn)會(huì)使圖變得更復(fù)雜。每條邊都將成為連接到原始深藍(lán)色節(jié)點(diǎn)的自身節(jié)點(diǎn)(淺藍(lán)色),而不是保存邊特征的邊。



          通過(guò)將邊緣特征作為人造節(jié)點(diǎn)的節(jié)點(diǎn)特征傳遞給模型來(lái)間接利用邊緣特征。如果邊緣特征與任務(wù)相關(guān),這可以提高模型的性能,但也會(huì)增加復(fù)雜性。并且需要考慮向模型中添加更多 GNN 層(以允許更多鄰居跳)。人造節(jié)點(diǎn)可以使 AUC 增加約 2%(我的經(jīng)驗(yàn))。


          除此以外還可以創(chuàng)建自己的 GNN 層實(shí)現(xiàn)。這聽(tīng)起來(lái)很難;但是如果使用 DGL 之類(lèi)的圖學(xué)習(xí)庫(kù),那絕對(duì)是可行的。


          例如,下面根據(jù) GAT1? 和 R-GCN1 的現(xiàn)有想法制定了自己的實(shí)現(xiàn),稱(chēng)之為 Edge-GCN11:



          我自己的 Edge-GCN 公式(v 代表節(jié)點(diǎn),e 代表邊,sigma 是非線(xiàn)性激活函數(shù) [在這種情況下為 RELU],alpha 是每個(gè)關(guān)系類(lèi)型的學(xué)習(xí)注意力分?jǐn)?shù),c 是歸一化常數(shù))


          Edge-GCN 使用注意力機(jī)制來(lái)學(xué)習(xí)邊緣與節(jié)點(diǎn)特征對(duì)所有不同關(guān)系類(lèi)型的重要性11。E-GCN 架構(gòu)在 AUC 中將 GNN 模型的結(jié)果提高了約 2%(人造節(jié)點(diǎn)也是如此)。


          自監(jiān)督預(yù)訓(xùn)練


          這可能是提高 GNN 性能的最重要技巧。盡管預(yù)訓(xùn)練 GNN 已經(jīng)在理論上進(jìn)行了探索12,但在實(shí)踐中的應(yīng)用仍然很少? ? ?。


          總體思路與計(jì)算機(jī)視覺(jué)和自然語(yǔ)言處理領(lǐng)域的概念非常相似。以語(yǔ)言模型 BERT13 為例,該模型經(jīng)過(guò)訓(xùn)練可預(yù)測(cè)句子中的掩蔽詞(這是自監(jiān)督的,因?yàn)樗灰蕾?lài)于標(biāo)記數(shù)據(jù))。我們通常不太關(guān)心預(yù)測(cè)掩蔽詞的具體任務(wù)。但是生成的詞嵌入對(duì)于許多不同的任務(wù)非常有用,因?yàn)槟P驼娴牧私馓囟ㄔ~之間的關(guān)系。


          使用自監(jiān)督任務(wù)預(yù)訓(xùn)練 GNN 模型節(jié)點(diǎn)嵌入,這在有噪聲標(biāo)簽的情況下尤其有益,因?yàn)樽晕冶O(jiān)督過(guò)程提供了更多“標(biāo)記”示例(因?yàn)槲覀儾恍枰獮轭A(yù)訓(xùn)練提供標(biāo)簽)并且可能也不太容易受到噪聲干擾11 12。


          如果我們的最終目標(biāo)是對(duì)節(jié)點(diǎn)進(jìn)行分類(lèi),可以在整個(gè)圖上使用鏈接預(yù)測(cè)作為自我監(jiān)督的預(yù)訓(xùn)練任務(wù)。在鏈接預(yù)測(cè)中,我們嘗試預(yù)測(cè)兩個(gè)節(jié)點(diǎn)之間是否存在邊(=鏈接)。因此訓(xùn)練一個(gè) GNN 來(lái)區(qū)分圖中的真實(shí)邊和人為引入的假邊(“鏈接預(yù)測(cè)的負(fù)采樣”)。由于我們只是在圖中現(xiàn)有節(jié)點(diǎn)之間添加假邊并刪除真實(shí)邊,因此可以不依賴(lài)任何標(biāo)記數(shù)據(jù)。接下來(lái)的步驟就是使用來(lái)自鏈接預(yù)測(cè) GNN 模型的結(jié)果節(jié)點(diǎn)嵌入作為另一個(gè)節(jié)點(diǎn)分類(lèi)模型的輸入。


          向模型添加一個(gè)自我監(jiān)督的預(yù)訓(xùn)練管道將其 AUC 分?jǐn)?shù)增加了 14%,這可以說(shuō)是目前最有效的技巧。


          分離前置和下游任務(wù)


          到目前為止,只討論了在自監(jiān)督任務(wù)(“前置”)上預(yù)訓(xùn)練 GNN 并為最終(“下游”)任務(wù)使用相同的 GNN 架構(gòu)。但是其實(shí)可以為這兩個(gè)任務(wù)使用不同的模型架構(gòu)。甚至還可以組合出不同的 GNN 架構(gòu)。


          GNN 層可能無(wú)法在各種情況下有效地學(xué)習(xí)。因此可以使用 GNN 模型通過(guò)自監(jiān)督預(yù)訓(xùn)練創(chuàng)建節(jié)點(diǎn)嵌入,并將這些嵌入傳遞給經(jīng)典機(jī)器學(xué)習(xí)算法或全連接的神經(jīng)網(wǎng)絡(luò)層,以完成最終的下游任務(wù)。這種架構(gòu)可用于許多不同的下游任務(wù),例如圖分類(lèi)到節(jié)點(diǎn)分類(lèi)還有回歸。


          該模型將受益于將訪(fǎng)問(wèn)圖中包含的所有信息的能力與非線(xiàn)性流形學(xué)習(xí)屬性相結(jié)合。該模型從更簡(jiǎn)單的機(jī)器學(xué)習(xí)算法中繼承了一些好處,例如減少了訓(xùn)練時(shí)間和更好的可解釋性。文章最初提到的基于樹(shù)的模型(例如隨機(jī)森林)在節(jié)點(diǎn)分類(lèi)的下游任務(wù)11中表現(xiàn)出特別強(qiáng)的性能,所以我們就從這里開(kāi)始。


          在下面,可以找到包含上面提出的三個(gè)想法的最終管道的概述:



          該架構(gòu)代表了我們的最終模型,AUC 得分為 78.1(另一個(gè) + 1.5%),通過(guò) AUC 衡量的性能總提升 17%(基本 R-GCN 模型:AUC = 66.6)11。


          總結(jié)


          在這篇文章中,我們討論了圖神經(jīng)網(wǎng)絡(luò)模型的缺點(diǎn)以及提高模型性能的三個(gè)主要技巧。結(jié)合這些技巧,能夠?qū)⒆罱K GNN 模型的 AUC11 提高 17%(對(duì)于其他指標(biāo)甚至更多)。下面我們?cè)倏偨Y(jié)一下我們的步驟:


          如果數(shù)據(jù)包含邊緣特征,并且你認(rèn)為它們對(duì)最終預(yù)測(cè)任務(wù)很有洞察力,可以嘗試?yán)眠吘壧卣鳌?/span>


          其次,使用自監(jiān)督目標(biāo)對(duì) GNN 模型進(jìn)行預(yù)訓(xùn)練通常有利于最終模型的性能。它可以增加訓(xùn)練示例的數(shù)量,有時(shí)還可以減少固有噪聲。


          最后,為前置和最終預(yù)測(cè)任務(wù)測(cè)試不同的架構(gòu)可以提高模型的預(yù)測(cè)能力。


          引用

          [1] Michael Schlichtkrull, Thomas N. Kipf, Peter Bloem, Rianne van den ?Berg, Ivan Titov, and Max Welling. Modeling relational data with graph ?convolutional networks, 2017.
          [2] Ziniu Hu, Yuxiao Dong, Kuansan Wang, and Yizhou Sun. Heterogeneous graph transformer, 2020.
          [3] https://deepfindr.com, 2020.
          [4] Davide Bacciu, Federico Errica, Alessio Michelia, Marco Podda. A Gentle Introduction to Deep Learning for Graphs, 2020
          [5] Yulei Yang Dongsheng Li. NENN: Incorporate Node and Edge Features in Graph Neural Networks, 2020
          [6] Federico Errica, Marco Podda, Davide Bacciu, and Alessio Micheli. A ?fair comparison of graph neural networks for graph classification, 2020.
          [7] Clement Gastaud, Theophile Carniel, and Jean-Michel Dalle. The varying ?importance of extrinsic factors in the success of startup fundraising: ?competition at early-stage and networks at growth-stage, 2019.
          [8] Dejun Jiang, Zhenxing Wu, Chang-Yu Hsieh, Guangyong Chen, Ben Liao, Zhe Wang, Chao Shen, Dongsheng Cao, Jian Wu, and Tingjun Hou. Could graph ?neural networks learn better molecular representation for drug ?discovery? 2021.
          [9] Hoang NT and Takanori Maehara. Revisiting graph neural networks: All we have is low-pass filters, 2019.
          [10] Petar Veli?kovi?, Guillem Cucurull, Arantxa Casanova, Adriana Romero, ?Pietro Liò, and Yoshua Bengio. Graph attention networks, 2018.
          [11] Carlo Harprecht. Predicting Future Funding Rounds using Graph Neural Networks, 2021
          [12] Weihua Hu, Bowen Liu, Joseph Gomes, Marinka Zitnik, Percy Liang, Vijay ?Pande, and Jure Leskovec. Strategies for Pre-training Graph Neural ?Networks, 2019.
          [13] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. BERT: Pre-training of Deep Bidirectional Transformers for Language ?Understanding, 2018.

          作者:Carlo H


          編輯:黃繼彥



          瀏覽 46
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产日韩欧美在线观看 | 黄色在线观看视频 | 内射免费视频 | 国产探花视频在线观看 | 老司机日比视频 |