「GNN,簡直太爛了」,一位Reddit網友的深度分析火了

2021-02-15 量子位
金磊 發自 凹非寺
量子位 報導 | 公眾號 QbitAI

圖神經網絡(GNN)這個概念近幾年很火,確實如此。

然而今天,一位Reddit網友卻「背道而馳」地提出了強烈反對觀點。例如:

過去5年中,大多數GNN論文提供的結果,對從業者沒有太多幫助。

我太煩Node2Vec了,引用量不應該達到7500這個數量。

就玩那些沒用的、小數據,效率提不上來,很難取得進步。

添加一些新的圖層/超參數,編一個可愛的數學故事來解釋它為什麼重要。

當前的圖形數據結構,簡直糟糕透了。

全局方法,是個死胡同。

……

點評、分析之犀利,瞬間引來了眾多網友的圍觀。

接下來便來細看下這位網友,為什麼對GNN如此之厭惡。

(為了方便閱讀,以下內容將以第一人稱進行表述)

模型與壓縮有關

先來簡單回顧一下基礎知識。

大家都說圖(graph)是一種「非歐幾裡得」數據類型,但事實並非如此。

一個正則圖(regular graph)只是思考特殊矩陣(鄰接矩陣)的另一種方式而已。

很奇怪的一點就是,當我們看到滿滿都是實數的矩陣時候,就決定稱之為「非歐幾裡得矩陣」。

但這背後也有其實際的原因,因為大多數的圖都是非常稀疏的,也就是說矩陣裡面大多數的數值都是零。

基於這一點,矩陣裡面非零的數字就顯得格外重要。這就使得問題更加接近離散數學,而不是簡單連續、梯度友好的數學。

如果你有一個全矩陣(full matrix),那事情就會變得相當容易

如果我們暫時不考慮這些惱人的點,假設用一整個鄰接矩陣也沒什麼大不了的,那我們就決絕了一大堆的問題。

首先,網絡節點嵌入(network node embedding)就不再是個難題了。一個節點只是矩陣中的一行,所以它已經是一個數字向量。

其次,還解決了所有的網絡預測問題。

一個足夠強大且經過良好調優的模型,將提取網絡和我們附加到節點上的任何目標變量之間的所有信息。

NLP也只是花式的矩陣壓縮

讓我們從圖形切入到NLP。

正如我們將要看到的,我們所做的大多數NLP問題,都可以用圖來表示,所以這並不是什麼「題外話」。

首先,請注意,像Word2Vec和GloVe這樣的Ye Olde詞嵌入模型,只是矩陣分解。

GloVe 算法是對舊的詞袋(bag of word)矩陣的一種變形。它遍歷這些句子,並創建一個(隱含的)共現圖(co-occurence graph),其中節點是單詞,而邊則根據單詞在句子中出現的頻率進行加權。

然後,GloVe對共生圖的矩陣表示進行矩陣分解,Word2Vec在數學上是等價的。

甚至語言模型也只是矩陣壓縮

語言模型風靡一時,可以說,它們主宰了 NLP 的大部分技術。

讓我們以BERT為例,BERT會根據句子的上下文,來預測了一個單詞:

這使得我們要構造的矩陣,從對單詞的平均共現(co-occurence),增加到了對句子上下文的條件共存:

正如 Hanh 和 Futrell 的論文中所指出,我們正在組合地構造「理想矩陣」:

人類語言和語言模型具有無限的統計複雜性,但是在較低的層次上可以很好地近似。這個觀察結果有兩個含義:

1)我們可以用相對較小的模型獲得較好的結果;2)我們的模型有很大的擴展潛力。

語言模型處理如此大的問題空間,以至於他們可能近似於柯氏複雜性(Kolmogorov Complexity)意義上的整個語言的壓縮。也有可能龐大的語言模型,只是記住了大量的信息,而不是壓縮信息。

那我們能像語言模型一樣,對圖進行上採樣嗎?

答案是:我們已經在做了。

我們把圖的一階嵌入,稱為直接分解圖的鄰接矩陣或拉普拉斯矩陣(Laplacian Matrix)的方法。

如果使用拉普拉斯特徵映射或者取拉普拉斯主分量來嵌入圖,則為一階。

同樣,GloVe 方法也是對詞共現圖的一階方法。

我最喜歡的圖的一階方法之一是ProNE,它和大多數方法一樣好用,但是速度快兩個數量級。

高階方法就是我們在圖上做的 「上採樣」。

在大型鄰域「上採樣」的 GNN 和 node2vec 等基於隨機漫步的方法都是在做高階嵌入。

性能增益,在哪兒呢?

過去5年中,大多數GNN論文提供的結果,對從業者沒有太多幫助。

正如OpenGraphsBenchmark(OGB)論文所指出的那樣,GNN論文的實證部分是在少數具有2000-20000個節點的小圖(Cora、CiteSeer、PubMed)上進行的。

這些數據集不能區分不同的方法。

最近的一些研究工作雖然解決了這個難題,但是為什麼研究人員長期關注小型的、無用的數據集,是值得討論的問題。

性能表現受任務分類的影響

一個讓很多可能會感到驚訝的事實是,即使語言模型在很多NLP任務中有著良好的表現,但如果你所做的只是將句子嵌入到下遊模型中,那麼通過簡單的方法,比如將單個 Word2Vec單詞嵌入相加,從語言模型嵌入中並不會得到多少好處。

類似地,我發現對於許多圖而言,簡單的一階方法在圖聚類和節點標記預測任務上的表現,與高階嵌入方法一樣好

事實上,高階方法對於這些用例來說,在計算上是非常浪費的。

但高階方法並不是說沒有用,它通常在鏈路預測任務中表現得更好。

有趣的是,連結預測性能的差距,在人工創建的圖中是不存在的。這表明高階方法,確實學習了一些真實世界圖形固有的結構。

但對於可視化而言,一階方法會更好一些。高階方法的可視化往往有其採樣的偽影。

例如,Node2Vec可視化往往具有拉長/絲狀結構,這些結構來自於長單鏈隨機漫步的嵌入。

下面是 Owen Cornec 的可視化效果:

最後,有時簡單的方法勝過高階方法(在 OGB 論文中有一個實例)。

這裡存在的一個問題是,我們不知道一個方法什麼時候比另一個方法會更好些,我們絕對不知道其中的原因。

不同的圖類型,對於不同的方法表示所反映出來的性能好壞,是有其原因的,但這是一個懸而未決的問題。

很大一部分的原因,是研究領域被沒用的新算法給淹沒了。

為什麼會這樣呢?繼續往下看。

學術的激勵(incentive),與學術的進步背道而馳

下面是「憤世嫉俗者」對機器學習論文製作的一些觀點:

採用現存的一些算法

添加一些新的圖層/超參數,編一個可愛的數學故事來解釋它為什麼重要

網格搜索你的超參數,直到你打破原始文件的基線

絕對不要在你的搜索結果區域中,將你正在比較的東西網格化

為你的新方法做一個可愛的首字母縮寫,把不可能使用的Python2代碼放到GitHub上

BTW:我太討厭Node2Vec了

我一個副項目是一個節點嵌入庫,目前最流行的方法是 Node2Vec。

不要使用Node2Vec!

取p=1和q=1的Node2Vec是Deepwalk算法,Deepwalk是一種實際的創新。

Node2Vec 的作者們緊跟著剛才提到的那5個步驟,包括步驟5提到的名字上的加分(因為word2vec很出名)。

這並不是什麼學術造假,而是讓ML社區變得更糟。

當然,Node2Vec也不應該被引用7500次。

學術進步,應該更加關注實際

40多年來,我們已經知道如何訓練神經網絡。然而,直到2012年,它們才在 AlexNet 上大受歡迎。

是因為實現和硬體達到了深度學習可行的程度。

類似地,我們至少在20年前就知道把單詞共現矩陣分解成單詞嵌入。

但詞條嵌入直到2013年,隨著Word2Vec才爆發。

這裡的突破在於,基於小批量(minibatch)的方法,可以讓你在硬體上訓練維基百科規模的嵌入模型。

如果對少量數據進行訓練,還需要數天或數周,那麼一個領域的方法就很難取得進展。

效率對於學術進步至關重要

深度學習研究之所以能夠取得如此成功,是因為它提高了效率,並且擁有了更好的庫和硬體支持。

學術規範太糟糕

你花費在 p 和 q 上的 Node2Vec 網格搜索的時間,都可以更好地利用 Deepwalk 本身的網格搜索。

問題是人們不會在Deepwalk中網格搜索,因為實現都很糟糕。

體系結構並不重要

今年最重要的論文之一是 OpenAI 的「Scaling laws」論文,其中模型中參數的原始數量是整體性能最具預測性的特徵。

這一點,甚至在原始的BERT論文中也有所提及,並且推動了2020年大規模語言模型的增長。

Transformer也可能取代卷積。正如Yannic Kilcher所說,Transformer正在毀掉一切,他們在圖上進行研究,事實上,它是在基準測試時似乎是比較成功的方法之一。

研究人員似乎在結構上投入了大量的精力,但是最終這並不重要,因為你可以通過疊加更多的層來近似任何東西。

效率的勝利是偉大的,但神經網絡架構只是實現這一目標的一種方式,而且由於對這一領域的過度研究,我們將在其他地方留下遺憾。

圖形數據結構簡直糟糕透了

NetworkX是個糟糕的庫。

如果你在為嬰兒做小圖,它很好,但對於任何嚴肅的事情,它都會讓你窒息,迫使你重寫所有的東西……

這叫庫?Really?

在這一點上,大多數處理大型圖的人,最終都會手工滾動一些數據結構。

但這很困難,因為你的計算機內存是一個由1和0組成的一維數組,一個圖沒有明顯的一維映射。

如果我們考慮更新圖表(添加/刪除一些節點/邊) ,這就更難了。

全局方法是個死胡同

一次處理整個圖的方法不能利用計算,因為它們在一定規模上耗盡了RAM。

因此,任何希望成為新標準的方法,都需要能夠對圖的某些部分進行逐段更新。

今後,採樣效率(Sampling Efficiency)將在未來更加重要:

邊緣局部方法:我所知道的包括GloVe 和 GGVec。

隨機漫步採樣:Deepwalk 及其後代使用這種方法,通常用於節點嵌入,而不是 GNN 方法。

近鄰採樣:這是目前GNN中最常見的一種,可以是低階或高階,這取決於鄰居的大小。

網友評論

但對於這樣的猛烈抨擊,Reddit網友們mhwalker,似乎有不一樣的聲音。

大多數情況下,規模問題在工業上得到了解決。我們在數十億個節點和數百億個邊上訓練GNN。我們可以毫無問題地水平擴展。

但也正如你說的,這些文獻大多數是無用的。

至於被問如何解決的,帖子作者做出了回復,並提到了阿里巴巴的一篇論文:

阿里巴巴有一篇關於其基礎設施的論文,闡述了他們是如何做到這一點的。

Pinterest主要使用GraphSAGE與鄰裡抽樣。Instagram使用一個node2vec實現(可能是handrolled)。

那麼對於這樣的討論,你怎麼看?

參考連結:

https://www.reddit.com/r/MachineLearning/comments/kqazpd/d_why_im_lukewarm_on_graph_neural_networks/

本文系網易新聞•網易號特色內容激勵計劃籤約帳號【量子位】原創內容,未經帳號授權,禁止隨意轉載。

一鍵三連「分享」、「點讚」和「在看」

科技前沿進展日日相見~

相關焦點

  • 「GNN,簡直太爛了」,一位Reddit網友的深度分析火了
    原創 關注前沿科技 量子位 收錄於話題#GNN1#圖神經網絡1#深度學習2金磊 發自 凹非寺量子位 報導 | 公眾號 QbitAI圖神經網絡(GNN)這個概念近幾年很火,確實如此。
  • reddit高贊資源:20h系統性深度學習&強化學習課程,視頻、PPT、代碼全都有 | 免費
    最近,一套深度學習和強化學習的免費課程在reddit上引起網友關注,獲贊690+。只因其不僅形式豐富,還綜合了基礎理論和具體應用,幫你將幾何學、統計學等相關理論串聯起來,解決複雜的問題。對於初學者來說,稱得上是個學習大禮包了。
  • 矽谷大廠也看「名校學歷」?Reddit小哥靈魂拷問引起熱議
    >【新智元導讀】矽谷的大廠Offer對於很多程式設計師還是非常有吸引力的,而今年的機器學習(ML)相關崗位又是其中的「香餑餑」。 這一「靈魂發問」,的的確確問到了很多人心裡,這不,在短短一天的時間裡,這個話題就引起了大家的激烈討論:名校給你帶來的不僅僅是「牌子」,迂迴戰術或許更有用其中一位叫EastMight的網友的回答得到了高贊: 「即使現在有很多在線資源,我認為一流的大學也會幫助你變得更有能力。
  • 如何用 GPT2 和 BERT 建立一個可信的 reddit 自動回復機器人?
    上個月,我嘗試構建一個 reddit 評論機器人,通過結合兩個預先訓練的深度學習模型 GPT-2 和 BERT 生成自然語言回復。在這裡我想一步一步地介紹一下我的工作,這樣其他人就可以用我所建立的東西來工作了。如果願意,可以直接跳轉到項目代碼:https://github.com/lots-of-things/gpt2-bert-reddit-bot 。
  • 語文老師用QQ養火等級科普生僻字「焱」「燚」,網友:學習了
    近日,一則語文老師用QQ養火等級科普生僻字的新聞引起網友熱議。據悉,在某校初一某班群內,同學們討論QQ養火推出的新等級,卻不知其中「焱」和「燚」兩個字如何發音,用三個火、四個火的說法來代指,引來潛水的語文老師在線科普生僻字。
  • 來自GPT-3的七夕問候:溫哥華小哥的AI「哲學家」告訴你什麼是愛
    沒關係,一位「簡陋」的溫哥華小哥最近開發了一個有溫度的「哲學家」,讓你感受下來自GPT-3的浪漫。 如何在一個毫無意義的世界裡找到意義?只要你不問有爭議的敏感話題,這個「哲學家」就會幫你答疑解惑!你可以問它讓你焦慮的話題。然後,它會返回一個肯定生命(摧毀靈魂)的回答。
  • IT男再也不擔心眼「瞎」!Github黑暗模式正式發布,Reddit4k高贊
    你是否有過打開電腦被晃「瞎」的感覺?最近,在GitHub Universe上,一款「暗黑」模式被推了出來。官方自稱:「2020年宇宙新功能」。設置黑暗模式的地址如下:https://github.com/settings/appearanceDark Mode 一經宣布,就在reddit上面獲得了4k的高贊,網友也紛紛:這是有史以來最好的體驗!
  • 「深度學習」改變「算命」行業,10秒告訴你前因後果!準到可怕!
    >通俗點來說呢,就是讓機器實現原來只有人類才能完成的任務;比如看懂照片,聽懂說話,思考等等重點是,這個機器人會自己學習,只需要你每天給他「餵食」大量「大數據」作為口糧!一圖詳盡人工智慧我們所說的AI,其實往往是在說「深度學習」這個分支,人工智慧中有許多分支,如:圖像識別,自然語言NLP
  • reddit熱議:沒關係沒背景,我還能發頂會論文嗎?
    有網友表示,AI圈紛紛開始「抱團取暖」的大背景下,有個大牛導師很有必要。這年頭搞一篇頂會論文太難了。前不久剛結束投稿的NeurIPS,也是幾家歡喜幾家愁。有些沒怎麼用心寫的居然中了,辛辛苦苦大半年,一夜回到解放前的也不在少數。
  • 在「動森」裡,你家和別人家的差距究竟有多大?
    你很難想像一個鏟屎官在「動森」裡面看到有關貓咪的一切會有多驚喜,而在解鎖一件又一件商品之後,你也不得不佩服「動森」給玩家提供的各式物品數量有多龐大,而且多得人歡心。在「動森」的世界裡,除開為了賺錢而日復一日必須付出的勞力活動之外,收集各類家具物品也成為了每日的快樂源泉。
  • 精靈寶可夢「伽勒爾區小火馬」登場,網友:這根本是彩虹小馬吧?
    作為初代神奇寶貝的小火馬,許多精靈寶可夢粉絲都已經相當熟悉這隻火屬性的寶可夢,小火馬是馬外形的四足寶可夢,身體很輕,腳的力量很強,傳說中一跳就可以飛過東京鐵塔,腳上的蹄子有鑽石的十倍硬,無論什麼東西都能踩扁。還記得之前,今年推出的任天堂Switch遊戲《神奇寶貝劍/盾》現在也公開了小火馬在伽勒爾區首度曝光的嶄新模樣!
  • 「值日聲」除了刷屏的走心文案,母親節還能如此不一樣!
    不過還是由一些人及品牌把母親節變得更加「溫馨」、「有趣」,今天小小值就帶著大家來看看那些「不一樣」的母親節。1「奇葩禮物」:野獸派 媽媽再打我一次全家福野獸派推出的這個套裝可以說是今年國內品牌最新穎的一個母親節禮物,小小值經常能夠看到大家在朋友圈或者微博上提及。站內關於這個商品的信息,也是引起了眾多值友的討論。
  • QQ養火等級出現「焱」「燚」生僻字,語文老師班群在線教學
    近日,一則語文老師用QQ養火等級科普生僻字的新聞引起網友熱議。據悉,在某校初一某班群內,同學們討論QQ養火推出的新等級,卻不知其中「焱」和「燚」兩個字如何發音,用三個火、四個火的說法來代指,引來潛水的語文老師在線科普生僻字。
  • 上線倆月,TensorFlow 2.0被吐槽太難用,網友:看看人家PyTorch
    網友們評價:「你看看人家 PyTorch!」TensorFlow 被吐槽不好用,也不是一天兩天了。TensorFlow 2.0 的發布似乎將這種「民怨」推上了高潮。昨天,一位 reddit 網友說自己正在嘗試從 PyTorch 轉到 TF 2. 0(雖然沒有說為什麼這麼想不開),但他吐槽說:真是「太難了」。
  • 騰訊QQ「養火」等級更新,升級「火炎焱燚」好友互動標識
    近日,騰訊QQ更新好友互動標識,繼「暢聊之火」、「聊得火熱」後,在火花系列聊天標識中新增「聊得炎熱」、 「暢聊之焱」、「聊得燚燚」及「聊的燚燚N」等新等級,為時下熱衷「養火」的年輕人「添柴加火」,增添更多社交樂趣。
  • 「ONE·一個」產品分析報告
    說明「ONE·一個」APP在電子書市場上佔據著一定的比重,但是從數據顯示的趨勢,「ONE·一個」的月活和日活人數在下降中,且從用在產品中的人均單日使用時長不足10分鐘,使用時間較短。二、產品分析1. 產品結構與功能分析
  • 這門少兒不宜的「網課」,居然在B站火了
    只要在B站搜索一下「羅翔」、「張三」、「厚大法考」等關鍵詞,你就會發現通往新世界的大門。不得不說,很多視頻的標題一看,就很有點擊欲望。進去之後,你就體會到這門網課的樂趣,然後……腦子裡就多了一些奇怪的法律知識。
  • 圖靈獎「擁抱」深度學習
    「我們很難預測未來……但是有些事情我們可以預測,比如深度神經網絡這項技術會改變一切。」ACM(國際計算機協會)在美國當地時間 3 月 27 日公布了 2018 年圖靈獎的授予結果。ACM 將本屆圖靈獎頒給了深度學習領域,並且讚譽三位獲獎人為「深度學習之父」。