2021年的第一盆冷水:有人說別太把圖神經網絡當回事兒

2021-01-08 機器之心Pro

機器之心編輯部

圖神經網絡(GNN)是目前熱門的研究方向,但我們是否應把注意力過多地放在這上面?數據科學家 Matt Ranger 從模型的本質、性能基準測試、實踐應用等方面陳述了自己的觀點。

圖神經網絡(GNN)是機器學習中最熱門的領域之一,在過去短短數月內就有多篇優秀的綜述論文。但數據科學家 Matt Ranger 對 GNN 卻並不感冒。他認為這方面的研究會取得進展,但其他研究方向或許更重要。

博客連結:https://www.singlelunch.com/2020/12/28/why-im-lukewarm-on-graph-neural-networks/

機器之心對這篇博客進行了編譯整理,以下是博客內容。

模型的關鍵是壓縮

圖經常被認為是一種「非歐幾裡得」數據類型,但實際上並不是。正則圖(regular graph)只是研究鄰接矩陣的另一種方式:

如上圖所示,充滿實數的矩陣卻被稱為「非歐幾裡得」,這很奇怪。

其實這是出於實際原因。大多數圖都相當稀疏,因此矩陣中會包含很多 0。從這個角度看,非零數值非常重要,這讓問題接近於(計算上很難的)離散數學,而不是(容易的)連續、梯度友好的數學。

有了全矩陣,情況會變得容易

如果不考慮物理領域的內容,並假設存在全鄰接矩陣,那麼很多問題就會迎刃而解。

首先,網絡節點嵌入不再是問題。一個節點就是矩陣中的一行,因此它本身已經是數字向量。

其次,所有網絡預測問題也都被解決。一個足夠強大且經過良好調整的模型將只提取網絡與附加到節點上的目標變量之間的全部信息。

NLP 也只是一種花哨的矩陣壓縮

讓我們把目光從圖轉移到自然語言處理(NLP)領域。大多數 NLP 問題都可以看成圖問題,所以這並不是題外話。

首先,像 Word2Vec、GloVe 這類經典詞嵌入模型只進行了矩陣分解。

GloVe 算法基於詞袋(bag of words)矩陣的一種變體運行。它會遍歷句子,並創建一個(隱式)共現圖,圖的節點是詞,邊的權重取決於這些單詞在句子中一同出現的頻率。之後,Glove 對共現圖的矩陣表示進行矩陣分解,Word2Vec 在數學方面是等效的。

語言模型也只是矩陣壓縮

NLP 中許多 SOTA 方法都離不開語言模型。以 BERT 為例,BERT 基於語境來預測單詞:

這就使我們正在分解的矩陣從詞對共現發展為基於句子語境的共現:

我們正在培養待分解的「理想矩陣」。正如 Hanh & Futrell 所說:

人類語言和語言建模具有無限的統計複雜度,但可以在較低層次上得到很好地近似。這一觀察結果有兩層含義:我們可以使用相對較小的模型獲得不錯的結果;擴大模型具備很大潛力。語言模型解決了很大的問題空間,以至於從柯氏複雜性(Kolmogorov Complexity)角度來看,它們可能近似壓縮了整個語言。龐大的語言模型可能記住了很多信息,而不是壓縮信息。

我們能像語言模型一樣對任意圖執行上採樣嗎?

實際上,我們已經在做了。

我們將圖的「一階」嵌入稱為通過直接分解圖的鄰接矩陣或拉普拉斯矩陣(Laplacian matrix)來運行的方法。只要使用拉普拉斯特徵映射(Laplacian Eigenmap)或採用拉普拉斯的主要組成部分進行圖嵌入,那它就是一階方法。類似地,GloVe 是詞共現圖上的一階方法。我最喜歡的圖一階方法之一是 ProNE,它和大多數方法一樣有效,但速度快了一個數量級。

高階方法嵌入了原始矩陣和鄰居的鄰居連接(第二階)以及更深的 k 步連接。GraRep 表明,通過擴展圖矩陣可以基於一階方法生成高階表示。

高階方法是在圖上執行的上採樣。基於大型鄰域採樣的 GNN 和 node2vec 等隨機遊走方法執行的是高階嵌入。

性能增益在哪兒?

過去 5 年中,大多數 GNN 論文的實驗數據對從業者選擇要使用的模型都是無用的。

正如論文《Open Graph Benchmark: Datasets for Machine Learning on Graphs》中所寫的那樣,許多 GNN 論文基於一些節點數為 2000-20,000 的小型圖數據集進行實驗(如 Cora、CiteSeer、PubMed)。這些數據集無法真正地區分不同 GNN 方法之間的區別。

近期的一些研究開始直接解決這一問題,但是為什麼研究者這麼長時間一直在小型、無用的數據集上做實驗呢?這個問題值得討論。

性能和任務有關

一個令人震驚的事實是,儘管語言模型在大量 NLP 任務中達到最優性能,但如果你只是把句子嵌入用於下遊模型,那麼從語言模型嵌入中獲得的性能增益並不比累加 Word2Vec 詞嵌入這類簡單方法要多。

類似地,我發現對於很多圖而言,簡單的一階方法在圖聚類和節點標籤預測任務中的性能和高階嵌入方法差不多。事實上,高階方法還消耗了大量算力,造成了浪費。

此類一階方法包括 ProNE 和 GGVec(一階)。

高階方法通常在連結預測任務上有更好的表現。

有趣的是,連結預測任務中的性能差距對於人工創建的圖而言是不存在的。這表明,高階方法的確能夠學習到現實圖的某種內在結構。

就可視化而言,一階方法表現更好。高階方法的可視化圖可能會出現偽影,例如 Node2Vec 可視化會有長絲狀的結構,它們來自較長單鏈隨機遊走的嵌入。高階方法和一階方法的可視化對比情況參見下圖:

最後,有時候簡單的方法能夠打敗高階方法。問題在於我們不知道什麼時候一類方法優於另一類方法,當然也不知道其原因。

不同類型的圖在被不同方法表示時反應有好有壞,這背後當然是有原因的。但這目前仍是個開放性問題。

這其中的一大因素是研究空間充斥了無用的新算法。原因如下:

學術動機阻礙進步

憤世嫉俗者認為機器學習論文是通過以下方式炮製的:

使用已有的算法;添加新的層 / 超參數,用數學形式描述其重要性;對超參數執行網格搜索,直到該新方法打敗被模仿的那個基線方法;絕不對在「實驗結果」部分中進行對比的方法執行網格搜索;給新方法起個不錯的縮寫名稱,不公布 Python 2 代碼。

我不是唯一一個對當前可復現研究持此觀點的人。至少近兩年情況好了一點。

所有進展都關乎實際問題

早在四十多年前,我們就已經知道如何訓練神經網絡了,但直到 2012 年 AlexNet 出現,神經網絡才出現爆炸式發展。原因在於實現和硬體都發展到了一個節點,足以使深度學習應用於實際問題。

類似地,至少 20 年前,我們就已經知道如何將詞共現矩陣轉換為詞嵌入。但詞嵌入技術直到 2013 年 Word2Vec 問世才出現爆發式發展。其突破點在於基於 minibatch 的方法允許在商用硬體上訓練 Wikipedia 規模的嵌入模型。

如果只花費數天或數周時間在小規模數據上訓練模型,那麼這個領域的方法很難取得進步。研究者會失去探索新方法的動力。如果你想取得進展,你必須嘗試在商用硬體上以合理時間運行模型。谷歌的初始搜索算法最開始也是在商用硬體上運行的。

效率更重要

深度學習研究的爆發式發展離不開效率的提升,以及更好的軟體庫和硬體支持。

模型架構沒那麼重要

今年更加重要的一篇論文是 OpenAI 的《Scaling Laws for Neural Language Models》。這篇文章指出,模型中的原始參數數量是對整體性能最具預測性的特徵。最初的 BERT 論文也指出了這一點,並推動了 2020 年大規模語言模型的迅速增加。

這一現實呼應了 Rich Sutton 在《苦澀的教訓 (https://mp.weixin.qq.com/s/B6rnFLxYe2xe5C5f2fDnmw)》一文中提出的觀點:

利用算力的一般方法最終是最有效的方法。

Transformer 可能也在替代卷積,正如知名 YouTube 博主 Yannic Kilcher 所說,Transformer 正在毀掉一切。它們可以和圖網絡結合,這也是最近幾年出現的方法之一,而且在基準測試中表現出色。

研究者似乎在架構方面投入了太多精力,但架構並沒有那麼重要,因為你可以通過堆疊更多層來近似任何東西。

效率的勝利是偉大的,而神經網絡架構只是實現這一目標的方式之一。在架構方面投入過多的精力,只會使我們錯過其他方面的巨大收益。

當前的圖數據結構實現太差勁了

NetworkX 是一個糟糕的庫。我是說,如果你正在處理一些微小的圖,該庫表現還 OK。但如果處理大規模的圖任務,這個庫會令你抓狂且迫使你重寫所有的東西。

這時,多數處理大規模圖任務的用戶不得不手動滾動一些數據結構。這很難,因為你的計算機內存是由 1 和 0 組成的一維數組,並且圖沒有明顯的一維映射。

這種情況在我們更新圖(如添加 / 移除節點 / 邊緣)時會變得更加困難。以下提供了幾個替代選擇:

分離的指針網絡

NetworkX 就是最好的示例。每個節點對象都包含指向其他節點的指針列表(節點邊緣),其布局就像鍊表一樣。

鍊表完全違背了現代計算機的設計方式。它從內存中讀取數據非常慢,但在內存中的運行速度卻很快(快了兩個數量級)。在這種布局中,無論何時做任何事情,你都需要往返 RAM。這在設計上就很慢,你可以使用 Ruby、C 或者彙編語言編寫,但還是很慢,這是因為硬體上的內存讀取速度就很慢。

這種布局的主要優勢在於其添加了新節點 O(1)。所以如果你在維護一個龐大的圖,並且添加和移除節點的頻率與從圖中讀取數據的頻率相同,則這種布局挺適合的。

另外一個優勢是這種布局可以「擴展」。這是因為所有數據彼此之間可解耦,所以你可以將這種數據結構放置在集群上。但實際上,你正在為自身問題創造一個複雜的解決方案。

稀疏鄰接矩陣

稀疏鄰接矩陣非常適合只讀(read-only)圖。我在自己的 nodevectors 庫中將它作為後端使用,很多其他的庫編寫者使用 Scipy CSR Matrix。

最流行的布局是 CSR 格式,你可以使用 3 個數組來保存圖,分別用於邊緣終點、邊緣權重和「索引指針」,該指針說明邊緣來自哪個節點。

此外,得益於 CSR 的 3 數組布局,它可以在單個計算機上進行擴展:CSR 矩陣可以放置在磁碟上,而不用放在內存中。你只需要對 3 個數組執行內存映射,並在磁碟上使用它們。

隨著現代 NVMe 驅動器的出現,隨機搜索速度不再那麼慢了,要比擴展基於鍊表的圖時進行分布式網絡調用快得多。但這種表徵存在的問題是:添加一個節點或邊緣意味著重建整個數據結構。

Edgelist 表徵

這種表徵具有 3 個數組:分別用於邊緣源、邊緣終點和邊緣權重。DGL 包在其內部使用的正是這種表徵。其簡單、緊湊的布局非常適合分析使用。

與 CSR 圖相比,該表徵的問題在於某些尋軌操作(seek operation)速度較慢。假設你要找出節點#4243 的所有邊緣,則如果不維護索引指針數組,就無法跳轉到那裡。

因此,你可以保持 sorted order 和二分搜索 (O(log2n)) 或 unsorted order 和線性搜索 (O(n))。

這種數據結構也可以在內存映射的磁碟陣列上使用,並且在 unsorted 版本上節點添加速度很快(在 sorted 版本上運行緩慢)。

全局方法是條死胡同

一次性處理整個圖的方法無法利用算力,因為它們達到一定規模就會把 RAM 耗盡。

因此,任何想要成為新標準的方法都要能對圖的各個部分進行逐個更新。

基於採樣的方法

未來,採樣效率將變得更加重要。

Edgewise 局部方法。我所知道的能做到這一點的算法只有 GloVe 和 GGVec,它們通過一個邊列表,並在每一步上更新嵌入權重。這種方法的問題在於,它們很難應用於更加高階的方法。但其優點也很明顯:很容易進行擴展,即使是在一臺計算機上也不例外。此外,逐漸增加新的節點也很簡單,只需要獲取現有的嵌入,添加一個新節點,然後在數據上執行一個新的 epoch。隨機遊走採樣。採用這一方法的包括 deepwalk 及相關的後續工作,通常用於嵌入而不是 GNN 方法。這在計算上可能非常昂貴,添加新節點也很困難。但它是可以擴展的,Instagram 就用它來為自己的推薦系統提供信息。鄰接採樣。這是目前 GNN 中最普遍的一種採樣方法,低階、高階都適用(取決於 neighborhood 的大小)。它的可擴展性也很好,儘管很難高效執行。Pinterest 的推薦算法用的就是這種方法。結論這裡有幾個有趣的問題:圖類型和圖方法之間是什麼關係?統一的基準測試,如 OGB。我們把隨機的模型扔給隨機的基準,卻不知道為什麼或者什麼時候它們表現得更好。更基礎的研究。我很好奇:其他表示類型(如 Poincarre 嵌入)能否有效地編碼定向關係?

另一方面,我們不應該再專注於添加新的層,並在相同的小型數據集上進行測試。沒人在乎這個。

這篇博客在 Reddit 上引發了一些討論,詳情參閱:https://www.reddit.com/r/MachineLearning/comments/kqazpd/d_why_im_lukewarm_on_graph_neural_networks/

相關焦點

  • 「神經網絡」的逆襲:圖解80年AI鬥爭史
    本文經AI新媒體量子位授權轉載,轉載請聯繫出處有人的地方,就有鬥爭。華山派有「劍宗」和「氣宗」,相互鬥了幾十年。第一次AI危機情況在1969年起了變化,「符號主義」代表人物馬文·明斯基(Marvin Minsky)寫了一本名為《感知器》(Perceptron)的書,結果直接把神經網絡給寫死了。
  • 宇宙最大背鍋俠——水逆,到底是怎麼回事兒?
    圖自網絡那麼,這個傳說中會給我們帶來黴運的水逆到底是個啥?本著科普的精神,蝌蚪君今天就來講講水逆是怎麼回事兒?圖自網絡這個事兒要從太陽系開始說起。我們都知道太陽系裡有八大行星,它們日復一日,年復一年的繞著太陽轉,如下圖。
  • 為什麼要進行圖學習?談一談逆勢而上的圖神經網絡
    相信你一定會說出來一個:圖神經網絡。ICLR2021Submission/6677分 / 性能超越圖神經網絡,將標籤傳遞和簡單模型結合實現SOTANeurIPS 2020 | IGNN圖卷積超分網絡: 挖掘隱藏在低解析度圖像中的高清紋理NeurIPS 2020 | 熱點之一最優運輸相關論文一覽圖神經網絡強勢崛起 | ICLR 2021最全論文主題分析沒有完整圖時,如何使用圖深度學習
  • 一份完全解讀:是什麼使神經網絡變成圖神經網絡?
    本文將就「為什麼圖有用」、「為什麼很難在圖上定義卷積」、「是什麼使神經網絡成為了圖神經網絡」這些問題進行討論。首先,讓我們簡單回顧一下什麼是圖?圖 G 是由有向或無向邊連接的一組節點(頂點)。節點和邊通常是由專家依據知識經驗或是對問題的直覺進行設置的。
  • 厄爾尼諾究竟是怎麼回事兒?
    厄爾尼諾究竟是怎麼回事兒?時間:2016-07-13 12:25   來源:科普中國——科學原理一點通   責任編輯:沫朵 川北在線核心提示:原標題:厄爾尼諾現象是什麼? 厄爾尼諾究竟是怎麼回事兒? 厄爾尼諾在21世紀頻頻光顧地球,給人類造成了極大的危害。那麼,厄爾尼諾究竟是怎麼回事兒呢?
  • 一圖抵千言:帶你了解最直觀的神經網絡架構可視化
    事實上,甚至有人用 Pytorch 實現愛因斯坦求和約定。解釋神經網絡的層在了解網絡架構之前,我們先來關注一下網絡的基本構建模塊——層。但解出這些等式是一回事,理解它們就是另一回事了。我第一次看到 LSTM 的公式時就可以解出來,但我不知道它們是什麼意思。我所說的「理解」不是指精神上的啟蒙,而是建立一個我們能夠使用的心理模型(用於解釋、簡化、修改和預測 what-if 情景等)。
  • 圖網絡未來幾何?12位學者寄望2021大爆發
    但儘管如此,GNN作為一項方興未艾的研究領域,在 2020年依然取得了諸多進展,在2021年也依然存在許多亟待挖掘的課題。 今年在該領域取得的巨大進展數不勝數,無法一一列舉,但我個人最為興奮的要屬神經算法推理。傳統上,神經網絡在插值機制中是非常強大的,但眾所周知,神經網絡是可怕的外推器,推理能力嚴重不足;推理的主要特徵之一,就是能夠發揮OOD的功能。
  • 極驗發布全國首個專注於圖神經網絡的書籍,《深入淺出圖神經網絡...
    圖神經網絡是當前 AI 領域最為火爆的研究熱點之一,學術界與工業界各大公司紛紛投入大量資源研究。它在因果推理上擁有巨大潛力,有望解決深度學習無法處理的關係推理、可解釋性等一系列問題,而這些問題被業界認為是能夠推動 AI 出現實質性進展的關鍵。
  • 逆勢而上的技術:圖神經網絡學習來了!
    你一定不會忽略它——圖神經網絡。相比傳統神經網絡,圖神經網絡的優勢非常明顯:1、非順序排序的特徵學習:GNN 的輸出不以節點的輸入順序為轉移的。百度作為 AI 領域的領頭羊企業,在圖神經網絡領域的研究、產業實踐、工業落地方面,積累了豐富的經驗!作為百度圖神經網絡研究的中堅力量,百度 PGL 團隊戰績累累,刷新圖神經網絡權威榜單 OGB 三項榜單 SOTA以及獲得今年 COLING 協辦比賽 TextGraph 冠軍!
  • 深度|人工神經網絡深入分析
    下圖是人腦中的神經元細胞,大家可以對應神經元細胞圖著再理解一下。人工神經網絡1943年,基於生物神經網絡莫克羅-彼特氏神經模型(McCulloch-Pitts′neuronmodel)誕生。它由心理學家Warren McCulloch(下圖左)和數學家Walter Pitts(下圖右)合作提出。
  • 一盆冷水過後的清醒 該怎麼做還是需要去看李霄鵬的
    0比1,大連人的一盆冷水澆來,澆了所有魯能的擁躉者一個猝不及防。 不出預料的是,在這一場失利之後,不少「朋友圈教練」站了出來。 有說劉洋的。 的確,魯能的這位先發後衛表現得有些不著調。
  • 天堂鳥換盆後,反而不生長了,是怎麼回事呢?
    是觀賞價值很高的植物,在家裡養一盆天堂鳥,讓家裡更顯得典雅、端莊,總之,效果非常好。而且它養護也比較簡單,但,也有人說自己的天堂鳥在換了盆之後反而不生長了,特別的讓人著急,這是什麼原因呢?天堂鳥在養護的時候免不了要換盆的問題,一般從花卉市場買回家的天堂鳥就要換盆,從花卉市場買回來的天堂鳥,它的土壤不一定是否利於它的生長,大多數的花卉市場老闆的在養這些花卉的時候很多時候可能會利用藥劑讓花卉看起來特別的旺盛,而土壤不一定利於它的生長,所以,最好剛買回家就換一下盆。天堂鳥換盆後不生長是怎麼回事?
  • 通過圖神經網絡了解玻璃
    儘管人類製造石英玻璃已有至少四千年的歷史,但它們仍被科學家們迷惑不解:關於潛在的物理關聯,例如冷卻過程中發生的粘度增加了數萬億倍,人們尚有許多未知數。利用圖神經網絡對玻化動力學建模可以將玻璃建模為粒子通過短程排斥勢相互作用的方法,這實際上可以防止粒子彼此之間過於靠近。
  • 吳恩達發布Nova Ng,迄今為止「最複雜的神經網絡」
    吳恩達開始了訓練天然神經網絡的新項目。轉載聲明:本文轉載自「量子位」,搜索「QbitAI」即可關注。作者:郭一璞近日,吳恩達發布了Nova Ng,迄今為止最複雜的神經網絡,她重達6斤,誕生於本月7號(大年初三),作者是吳恩達和妻子Carol E. Reiley。
  • 美國的「感恩節」,和我們常說的感恩是一回事兒嗎?
    然而,今年美國人民的「感恩節」估計不會過得太舒心,據美聯社24日報導,美國各地的新冠肺炎死亡病例仍在不斷增加,公共衛生專家勸告民眾節日期間儘量待在家裡、避免參加大型聚會。反而是在中國,不少商家開始以此為噱頭,以「感恩回饋」的名義做起了營銷。
  • 奮豆五維電視橫空出世,一盆冷水直潑女神,立體美食眾人淪陷
    上回說到路邊有一個算卦之後送畫的奇人,星太奇和田雞妹都去要了一幅,而奮豆卻要了整整一籮筐,只是他要的再多,畫上的寓意顯示他的命運跟星太奇他們完全不一樣,奮豆並不知道這一點,還覺得自己未來有所作為。奮豆五維電視橫空出世,一盆冷水直潑女神,立體美食眾人淪陷各位小哥哥小姐姐們大家好,高茜是班上最活潑的女生,看了一場電影就告訴給大家自己的感受,而奮豆為了能跟高茜在一起,就說自己家的電視是五維畫面,瞬間引起了所有人的注意,一放學就跑到奮豆家,然而奮豆只是用一盆冷水直接潑向了高茜,沒想到高茜還真以為有五維電視,最終還是小桂子的立體美食讓大家淪陷,這一點筆者認為想要跟女神多交流
  • 有人說「2021是寡婦年,地收人不收」,什麼意思?
    2021年已經悄然而至,在這辭舊迎新一年初始的時候,人們都在或祈盼或暢想著未來的年景。這其中當然也少不了某些對年景表示憂心的聲音。最近就有人說「2021年是寡婦年,地收人不收」。這到底是怎麼回事?可信不可信呢? 一、民間有說法是寡婦年不好,為什麼會有寡婦年呢?
  • 圖神經網絡的表達能力,究竟有多強大?
    1圖神經網絡和 WL 圖同構測試之間的關係眾所周知,傳統的前饋神經網絡(多層感知機)是一種通用函數近似器:它們能夠以任意的準確率逼近任意的平滑函數。對於近期興起的圖神經網絡來說,其表徵性質還不太為人所知。在實驗中,我們經常可以看到圖神經網絡在某些數據集上性能優異,但同時又在另一些數據集上表現令人失望。
  • 高考錄取金字塔圖,給中國式家長狂熱預估孩子前途,澆了一盆冷水
    媽媽撲哧一笑,對兒子說:你好好學習,將來考個好大學,上班就開小轎車,天再冷也不怕了。 兒子說:那我們家沒有小轎車,是因為你和爸爸以前沒有好好學習嗎? 媽媽揉了揉兒子的小腦袋,寵溺地笑罵:臭小子,讓你好好學習,倒嘲笑我和爸爸起來了。
  • 一文讀懂圖神經網絡
    小聲:今天老闆說深度學習必須學習python,於是:一、介紹什麼是圖神經網絡圖神經網絡(Graph Neural Networks, GNNs)是基於圖結構的深度學習方法,近期被廣泛應用到各類圖像圖神經網絡作為神經網絡擴展,可以處理以圖結構表示的數據格式。在圖中,每個節點都由本身的特性以及其相鄰的節點和關系所定義,網絡通過遞歸地聚合和轉換相鄰節點的表示向量來計算節點的表示向量。圖神經網絡(GraphNeural Networks, GNNs),主要針對非歐幾裡得空間結構(圖結構)的數據進行處理。