首页 科技 正文

“GNN,真糟糕。”一位Reddit网友的深入分析火了。

金磊 发自 凹非寺量子位 报道 | 公众号 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/

非特殊说明,本文由原创资讯网原创或收集发布。

转载请注明本文地址:http://www.68nw.com/kj/2101.html