CNN已老,GNN來了!

2021-01-13 虎嗅APP



深度學習的最大軟肋是什麼?


這個問題的回答仁者見仁,但圖靈獎得主Judea Pearl大概有99.9%的機率會說,是無法進行因果推理。


對於這個問題,業界正在進行積極探索,而其中一個很有前景的方向就是圖神經網絡


最近,清華大學孫茂松教授組在 arXiv 發布了論文 Graph Neural Networks: A Review of Methods and Applications,作者對現有的GNN模型做了詳盡且全面的綜述。



「圖神經網絡是連接主義與符號主義的有機結合,不僅使深度學習模型能夠應用在圖這種非歐幾裡德結構上,還為深度學習模型賦予了一定的因果推理能力。」論文的共同第一作者周界說。


「在深度學習方法的魯棒性與可解釋性受到質疑的今天,圖神經網絡可能為今後人工智慧的發展提供了一個可行的方向。」


GNN最近在深度學習領域受到了廣泛關注。然而,對於想要快速了解這一領域的研究人員來說,可能會面臨著模型複雜、應用門類眾多的問題。


「本文希望為讀者提供一個更高層次的視角,快速了解GNN領域不同模型的動機與優勢。」周界告訴新智元:「同時,通過對不同的應用進行分類,方便不同領域的研究者快速了解將GNN應用到不同領域的文獻。」


毫不誇張地說,論文中的圖表對於想要了解學習GNN乃至因果推理等方向的研究者來說,簡直應該高清列印過塑然後貼在牆上以作參考——



想要快速了解GNN,看這篇文章絕對沒錯


在內容上,模型方面,本文從GNN原始模型的構建方式與存在的問題出發,介紹了對其進行不同改進的GNN變體,包括如何處理不同的圖的類型、如何進行高效的信息傳遞以及如何加速訓練過程。最後介紹了幾個近年來提出的通用框架,它們總結概括了多個現有的方法,具有較強的表達能力。


在應用上,文章將GNN的應用領域分為了結構化場景、非結構化場景以及其他場景並介紹了諸如物理、化學、圖像、文本、圖生成模型、組合優化問題等經典的GNN應用。



典型應用場景介紹


文章最後提出了四個開放性問題,包括如何處理堆疊多層GNN造成的平滑問題,如何處理動態變化的圖結構,如何使用通用的方法處理非結構化的數據以及如何將其擴展到更大規模的網絡上。


作者還整理了一個GNN論文列表:https://github.com/thunlp/GNNPapers


以下是新智元對這篇綜述的部分摘譯,點擊此處查看 arXiv 論文。


原始GNN及其局限性


GNN的概念首先是在F. Scarselli等人的論文The graph neural network model(F. Scarselli et. al. 2009)中提出的。在這裡,我們描述了原始的GNN,並列舉了原始GNN在表示能力和訓練效率方面的局限性。


接著,我們介紹了幾種不同的GNN變體,這些變體具有不同的圖形類型,利用不同的傳播函數和訓練方法。


最後,我們介紹了三個通用框架,分別是message passing neural network ,non-local neural network ,以及graph network 。MPNN結合了各種圖神經網絡和圖卷積網絡方法;NLNN結合了幾種「self-attention」類型的方法;而圖網絡GN可以概括本文提到的幾乎所有圖神經網絡變體。


圖神經網絡


如前所述,圖神經網絡的概念最早是Scarselli等人在2009年提出的,它擴展了現有的神經網絡,用於處理圖中表示的數據。在圖中,每個節點是由其特性和相關節點定義的。


雖然實驗結果表明,GNN是建模結構化數據的強大架構,但原始GNN仍存在一些局限性。


首先,對於固定節點,原始GNN迭代更新節點的隱藏狀態是低效的。如果放寬了固定點的假設,我們可以設計一個多層的GNN來得到節點及其鄰域的穩定表示。


其次,GNN在迭代中使用相同的參數,而大多數流行的神經網絡在不同的層中使用不同的參數,這是一種分層特徵提取方法。此外,節點隱藏狀態的更新是一個順序過程,可以從RNN內核(如GRU 和 LSTM)中獲益。


第三,在邊上也有一些無法在原始GNN中建模的信息特徵。此外,如何學習邊的隱藏狀態也是一個重要的問題。


最後,如果我們把焦點放在節點的表示上而不是圖形上,就不適合使用固定點,因為在固定點上的表示的分布在數值上是平滑的,區分每個節點的信息量也比較少。


圖神經網絡的變體


在這一節,我們提出圖神經網絡的幾種變體。首先是在不同圖類型上運行的變體,這些變體擴展了原始模型的表示能力。其次,我們列出了在傳播步驟進行修改的幾種變體,這些模型可以更好地學習表示。最後,我們描述了使用高級訓練方法的標題,這些方法提高了訓練效率。


圖2概述了GNN的不同變體。



圖的類型(Graph Types)


在原始GNN中,輸入的圖由帶有標籤信息的節點和無向的邊組成,這是最簡單的圖形格式。然而,世界上有許多不同的圖形。這裡,我們將介紹一些用於建模不同類型圖形的方法。




圖形的第一個變體是有向圖。無向邊可以看作是兩個有向邊,表明兩個節點之間存在著關係。然而,有向邊比無向邊能帶來更多的信息。例如,在一個知識圖中,邊從head實體開始到tail實體結束,head實體是tail實體的父類,這表明我們應該區別對待父類和子類的信息傳播過程。有向圖的實例有ADGPM 。



圖的第二個變體是異構圖,異構圖有幾種類型的節點。處理異構圖最簡單的方法是將每個節點的類型轉換為與原始特徵連接的一個one-hot特徵向量。異構圖如GraphInception。



圖的另外一個變體是,每條邊都有信息,比如權值或邊的類型。例如G2S和R-GCN。


使用不同訓練方法的圖變體



在傳播步驟進行修改的GNN變體



GNN的三大通用框架


除了圖神經網絡的不同變體之外,我們還介紹了幾個通用框架,旨在將不同的模型集成到一個框架中。


J. Gilmer等人提出了消息傳遞神經網絡,統一了各種圖神經網絡和圖卷積網絡方法。


X. Wang等人提出了非局部神經網絡,它結合了幾種「self-attention」風格的方法。


P. W. Battaglia等人提出了圖網絡,它統一了統一了MPNN和NLNN方法以及許多其他變體,如交互網絡,神經物理引擎,CommNet,structure2vec,GGNN,關係網絡,Deep Sets和Point Net。


幾個尚未解決的問題


儘管GNN在不同領域取得了巨大成功,但值得注意的是,GNN模型還不能在任何條件下,為任何圖任務提供令人滿意的解決方案。這裡,我們將陳述一些開放性問題以供進一步研究。



傳統的深度神經網絡可以堆疊數百層,以獲得更好的性能,因為更深的結構具備更多的參數,可以顯著提高網絡的表達能力。然而,GNN總是很淺,大多數不超過三層。


實驗顯示,堆疊多個GCN層將導致過度平滑,也就是說,所有頂點將收斂到相同的值。儘管一些研究人員設法解決了這個問題,但這仍然是GNN的最大局限所在。設計真正的深度GNN對於未來的研究來說是一個令人興奮的挑戰,並將對進一步深入理解GNN做出相當大的貢獻。


動態圖形另一個具有挑戰性的問題是如何處理具有動態結構的圖形。靜態圖總是穩定的,因此對其進行建模是可行的,而動態圖引入了變化的結構。當邊和節點出現或消失時,GNN不能自適應地做出改變。目前對動態GNN的研究也在積極進行中,我們認為它是一般GNN的具備穩定性和自適應性的重要裡程碑。



我們討論了GNN在非結構場景中的應用,但我們沒有找到從原始數據中生成圖的最佳方法。在圖像域中,一些研究可以利用CNN獲取特徵圖,然後對其進行上採樣,形成超像素作為節點,還有的直接利用一些對象檢測算法來獲取對象節點。在文本域中,有些研究使用句法樹作為句法圖,還有的研究採用全連接圖。因此,關鍵是找到圖生成的最佳方法,使GNN在更廣泛的領域發揮更大的作用。



如何將嵌入式算法應用於社交網絡或推薦系統這類大規模網絡環境,是幾乎所有圖形嵌入算法面對的一個致命問題,GNN也不例外。對GNN進行擴展是很困難的,因為涉及其中的許多核心流程在大數據環境中都要消耗算力。


這種困難體現在幾個方面:首先,圖數據並不規則,每個節點都有自己的鄰域結構,因此不能批量化處理。其次,當存在的節點和邊數量達到數百萬時,計算圖的拉普拉斯算子也是不可行的。此外,我們需要指出,可擴展性的高低,決定了算法是否能夠應用於實際場景。目前已經有一些研究提出了解決這個問題的辦法,我們正在密切關注這些新進展。


結論


在過去幾年中,GNN已經成為圖領域機器學習任務的強大而實用的工具。這一進展有賴於表現力,模型靈活性和訓練算法的進步。在本文中,我們對圖神經網絡進行了全面綜述。對於GNN模型,我們引入了按圖類型、傳播類型和訓練類型分類的GNN變體。


此外,我們還總結了幾個統一表示不同GNN變體的通用框架。在應用程式分類方面,我們將GNN應用程式分為結構場景、非結構場景和其他18個場景,然後對每個場景中的應用程式進行詳細介紹。最後,我們提出了四個開放性問題,指出了圖神經網絡的主要挑戰和未來的研究方向,包括模型深度、可擴展性、動態圖處理和對非結構場景的處理能力。


相關焦點

  • cnn.com網站被封
    cnn.com網站被封 美亞 00年10月19日 【原創】 作者: 中關村在線     CNN(美國有線電視新聞網)是全球最大也是最盈利的新聞機構之一,在全球有非常高的知名度
  • GNN篇——帶你了解基於頻域的GNN
    次卷積,來得到最後的卷積結果裡做卷積操作,下面按照三個步驟做下分析:代碼代碼源自:https://github.com/mdeff/cnn_graph代碼代碼源自:https://github.com/mdeff/cnn_graph,這裡貼出了核心的實現部分# graph moduledef rescale_L(L, lmax=2):    """Rescale the Laplacian eigenvalues
  • 在多目標識別方面,maskr-cnn已經取得了一些進展
    maskr-cnn是業界首款實用的全卷積神經網絡模型,為計算機視覺中的多目標識別與自動對焦,開創性的成為計算機視覺發展的新方向。無論是基於計算機視覺的自動對焦系統、模式識別系統,還是圖像識別,maskr-cnn都是有標誌性意義的。它強調平滑準確的計算輸入、檢測框和定位點,訓練過程與特徵提取過程採用多級感受野融合技術進行自動優化提高目標解析度及精度,以及做出精度更高的語義推理判斷。
  • NeurIPS2020 | 結合集成學習與Rademacher複雜度分析多尺度GNN解決過擬合問題
    Gradient Boosting andApplication to Multi-scale Graph Neural Networks目前的圖神經網絡(gnn然而,很少有人從學習理論的角度來解釋為什麼有效。在本研究中,作者推導了包含多尺度GNN的transductive learning算法的優化和泛化保證。利用集成學習理論,證明了弱學習條件下訓練誤差的收斂性。
  • 入門| CNN也能用於NLP任務,一文簡述文本分類任務的7個模型
    推文數據中存在很多噪聲,我們刪除了推文中的網址、主題標籤和用戶提及來清理數據。你可以通過交叉驗證來確定這個值。= get_cnn_model() plot_model(cnn_model_multi_channel, to_file= '.
  • .| 深度學習理論與實戰:提高篇(14)——​Mask R-CNN代碼簡介
    # 真正的圖片是在load_image()函數裡根據這些specifications # 來on-the-fly的生成。下面我們來生成一些圖片看看。== "coco": # 加載COCO模型的參數,去掉全連接層(mrcnn_bbox_fc), # logits(mrcnn_class_logits) # 輸出的boudning box(mrcnn_bbox)和Mask(mrcnn_mask) model.load_weights(COCO_MODEL_PATH, by_name=True, exclude
  • 小白學CNN以及Keras的速成
    今天,sherlock在這裡給大家推薦一個學習材料,保證你能夠快速入門cnn,出去裝逼也能夠和別人聊幾句。這個材料是什麼呢,就是大名鼎鼎的standford的cs231n這門課程。 CS231n Convolutional Neural Networks for Visual Recognition  stanford大學確實算是深度學習和人工智慧領域非常牛逼的學校。
  • 自注意力可以替代CNN,能表達任何卷積濾波層
    那麼,問題來了:自注意力能替代CNN嗎?為了研究這個問題,需要先來回顧一下它們分別是如何處理一張圖像。給定一張圖像,其大小為W x H x D。卷積層卷積神經網絡由多個卷積層和子採樣層組成。每個卷積層可以學習大小為K x K的卷積濾波器,輸入和輸出的維度分別是Din和Dout。
  • 經典目標檢測方法Faster R-CNN和Mask R-CNN|基於PaddlePaddle深度...
    277*277);  特徵抽取:選取一個預先訓練好的卷積神經網絡,去掉最後的輸出層來作為特徵抽取模塊;  SVM(類別預測):將每一個提議區域提出的 CNN 特徵輸入到支持向量機 (SVM) 來進行物體類別分類。
  • CNN 10 - October 16, 2020
    本期視頻連結:  https://pmd.cdn.turner.com/cnn/big/cnn10/2020/10/14/ten-1016.cnn_3450078_768x432_1300k.mp4本期內容簡介:Coronavirus Cases Rise in Most U.S
  • CNN 10 - October 29, 2020
    本期視頻連結:  https://pmd.cdn.turner.com/cnn/big
  • Mask R-CNN官方實現「又」來了!基於PyTorch,訓練速度是原來2倍
    曉查 發自 凹非寺量子位 報導 | 公眾號 QbitAI來自官方的Mask R-CNN實現終於「又」來了!PyTorch官方Twitter今天公布了一個名為Mask R-CNN Benchmark的項目。10個月前Facebook曾發布過名叫Detecron的項目,也是一款圖像分割與識別平臺,其中也包含Mask R-CNN。
  • CNN 10
    END 關注微信訂閱號: CNN學生英語新聞關注微信訂閱號: FancyEnglish更多英語視頻盡在:www.fancyenglish.com遇有點擊「閱讀原文」後「無法打開網頁」的情況,請嘗試登陸CNN10官網:http://edition.cnn.com/cnn10
  • 經典解讀 | Cascade R-CNN詳細解讀
    連結 | https://zhuanlan.zhihu.com/p/42553957源碼連結:https://github.com/zhaoweicai/cascade-rcnn文章提出的cascade結構的效果是驚豔的,幾乎對於任意的R-CNN(Faster rcnn,FPN,R-FCN等)都可以帶來2到4個點的AP提升!!!而且實現十分簡單,已使用Pytorch在Pascal VOC上復現論文。此外,本篇文章的實驗講解部分對於理解R-CNN網絡有很大的幫助,建議詳細閱讀。   0. 本篇解析的內容結構   1. 簡單回顧R-CNN結構
  • PyTorch實現TPU版本CNN模型
    為了克服訓練時間的問題,我們使用TPU運行時環境來加速訓練。為此,PyTorch一直在通過提供最先進的硬體加速器來支持機器學習的實現。PyTorch對雲TPU的支持是通過與XLA(加速線性代數)的集成實現的,XLA是一種用於線性代數的編譯器,可以針對多種類型的硬體,包括CPU、GPU和TPU。
  • 深度學習概述:NLP vs CNN
    Dialogflow的服務使用長短期記憶神經網絡(LSTM)和遞歸神經網絡(RUN)來執行與文本和語言相關的任務。Dialogflow以其聊天機器人(chatbot)服務而聞名。除此之外,像Dominos、Mercedes、Giorgio Armani這樣的公司正在藉助Dialogflow服務在其系統中嵌入聊天機器人和文本到語音服務。
  • 探索「老藥新用」最短路徑:亞馬遜AI Lab開源大規模藥物重定位知識圖譜DRKG
    自 2019 年 12 月至今,新型冠狀病毒在全球迅速擴散已導致近 760 萬人感染,40 餘萬人死亡。目前急需快速有效的新冠病毒有效藥物的發現路徑。藥物重定位是一種將現有藥物用於治療新的適應症的藥物發現方式。相比較傳統的新藥開發,它可以有效縮短藥物研發周期,降低成本,規避風險,是一種非常有前景的新冠肺炎治療策略。
  • 從R-CNN到YOLO,一文帶你了解目標檢測模型(附論文下載)
    要想進一步了解,可以查看以下PPT和筆記:http://www.image-net.org/challenges/LSVRC/2013/slides/r-cnn-ilsvrc2013-workshop.pdfhttp://www.cs.berkeley.edu/~rbg/slides/rcnn-cvpr14-slides.pdf
  • 一位中國博士把整個CNN都給可視化了,可交互有細節,每次卷積ReLU...
    他也曾經做過一些其他有趣的數據可視化項目,比如威斯康星大學麥迪遜分校的中國本科生都來自哪裡:傳送門CNN解釋器https://poloclub.github.io/cnn-explainer/GitHubhttps://github.com