GNN,又可以被理解为Neural Networks for Graph,由于图非欧结构的限制,如何设计图数据上的神经网络一直困扰着学界,因此在数年前该领域一直较为沉寂。

但近年来,深度学习模型的成功将一系列成功验证的机制迁移到图数据上,创造了诸如GCN,Graph Attention,Graph Pooling等等模型。伴随着理论方法进步的,是蓬勃的应用发展。

在2020年,GNN频繁登上各大会议热词榜,由于图类型数据的普遍存在,图神经网络在各种学科的场景得到应用——诸如计算机视觉、推荐系统、组合优化;甚至药物研发、物理、化学等,且在多个领域都有较大的效果提升。

在前几天我们推送了一篇Michael Bronstein 等人对2020年GNN发展的复盘文章:「」。

今天,我们再推荐Criteo高级研究科学家、图机器学习专家 Sergei Ivanov 对图机器学习发展的思考,供大家参考。

Sergei Ivanov:

今年年初,图形神经网络(GNNs)成为一个流行词。作为这一领域的研究人员,我感到非常自豪(至少不感到羞愧) 。但事实并非总是如此: 三年前,当我和同事们交谈时,他们沉迷于GANs 和 Transformers,他们对我印象是,我正在研究一些稀奇古怪的小众问题。但现在看,这个领域已经基本上成熟了,在这里,我为大家总结最近看到的 GNN 的顶级应用。

1

GNN+推荐系统

图的出现源于电子商务平台上,用户与产品的交互,许多公司将 GNN 用于产品推荐。

一个标准的使用案例是,利用某种形式的负采样损失去学习节点嵌入,来建模用户和项目的图,然后利用knn去实时抽取给定用户相类似的项目。Uber Eats[1] 是第一个应用这种pipeline的公司,它通过图神经网络 GraphSage[2] 为用户推荐食品和餐馆。

打开网易新闻 查看更多图片

食品推荐,由于地理等因素的限制,图相对会较小。有些公司在GNN的使用上,可以达到数十亿个边的规模。其中之一,便是阿里巴巴[3]。

阿里巴巴在拥有数十亿用户和产品的庞大网络上进行图嵌入和 GNN 。构建这样的图可能是一场工程噩梦,但是使用Aligraph pipeline,只需要5分钟就可以构建一个包含400M 节点的图!AliGraph [4] 支持高效的分布式图存储、优化的采样操作符和内置 GNNs。目前,它被部署在阿里的多个产品的推荐和个性化检索当中。

打开网易新闻 查看更多图片

阿里巴巴、亚马逊和许多其他电子商务公司使用 GNN 来辅助推荐系统

同样,Pinterest提出了PinSage模型[5],该模型使用个性化PageRank有效地对邻域进行采样,并通过聚合每个邻域来有效地更新节点嵌入。后续的PinnerSage [6]扩展了这一框架,可以嵌入内容,来针对用户的不同喜好。

其他案例还包括在亚马逊上检查有关知识图谱和GNN的应用[7],以及Fabula AI使用GNN进行伪造新闻检测的研究[8]。显然,GNNs对于推荐的意义重大,如果来自用户互动的信号足够强的话。

GNN+推荐系统 · 参考资料

[1]Uber Eats 详解:https://eng.uber.com/uber-eats-graph-learning/

[2]GraphSage开源:https://github.com/williamleif/GraphSAGE

[3] 阿里巴巴如何将图用在十亿级用户/产品:https://arxiv.org/abs/1803.02349

[4] AliGraph 解决噩梦:https://arxiv.org/abs/1902.08730

[5] PinSage:https://arxiv.org/abs/1806.01973

[6] PinnerSage的详细介绍:https://medium.com/pinterest-engineering/pinnersage-multi-modal-user-embedding-framework-for-recommendations-at-pinterest-bfd116b49475

[7] 亚马逊的知识图谱应用:https://www.amazon.science/blog/building-product-graphs-automatically

[8] Fabula AI 的伪造新闻检测:https://arxiv.org/abs/1902.06673

2

组合优化

在金融、物流、能源、生命科学和硬件设计等等各个领域都需要解决组合优化(CO)的问题。这些问题大多数是用图表示的。因此,在过去的一个世纪里,大量的研究都集中在从算法层面更有效地解决 CO 问题; 然而,机器学习驱动的现代计算革命提供了一种新的引人注目的学习方法来解决这些问题。

谷歌大脑团队使用 GNN 来优化新硬件[9](比如谷歌TPU[10])的功耗、面积和性能。计算机芯片是一个存储和逻辑部件的图,每个部件的坐标和类型不同。确定每个部件的位置,同时遵循密度和路由阻塞的限制,是一个费力的过程,也是电气工程师操盘的艺术。团队利用GNN 模型,与策略和价值 RL 函数相结合,能够生成优化的电路芯片匹配布局,甚至优于手工设计的硬件布局[11]。

与围棋相比,芯片部件布局是一个无比复杂的问题

另一种方法采用了不同的路径,将机器学习模型集成到现有的求解器中。例如,Gasse 等人提出了一个学习分支定界变量选择策略的图网: 这是混合整数线性规划(MILP)求解器的关键步骤。通过这种方式,学习到的表示去最小化求解器的运行时间,并且在推理时间和决策质量之间达到了很好的平衡。

在 DeepMind 和 Google 最近的一项工作中,图网络被用于 MILP 求解器相关的两个关键子任务: 联合变量赋值和限定目标值。他们的神经网络方法比现有的包括谷歌生产包装和规划系统在内的海量数据集上的求解器快2-10倍。

更多的内容可以参考最近新出的综述文章[14]。

GNN+组合优化 · 参考资料

[9] 谷歌使用GNN优化TPU,https://ai.googleblog.com/2020/04/chip-design-with-deep-reinforcement.html

[10] 云张量处单元TPU,https://cloud.google.com/tpu/docs/tpus

[11] 如何利用GNN来优化芯片电路布局,https://arxiv.org/abs/2004.10746

[12] Gasse等人提出的分支定界变量选择策略,https://arxiv.org/abs/1906.01629

[13] DeepMind & Google 的组合优化研究,https://arxiv.org/abs/2012.13349

[14] 组合优化研究综述,https://arxiv.org/abs/2003.03600

3

GNN+CV

世界上的对象是紧密相连的,包含这些对象的图像也可以受益于 GNN。感知图像的方法之一是通过场景图(scene graphs)[15],一组物体在图像中出现,它们之间的关系也随之呈现。场景图在图像检索、理解和推理、字幕、视觉问题回答和图像生成等方面都有着广泛的应用,该方法可以大大提升模型的性能。

在 Facebook 的一项工作[16]中,可以把一个流行的 CV 数据集 COCO 中的物体放在画布上,指定物体的位置和大小,然后创建一个场景图。然后对图进行 GNN 编码,以确定每个对象的嵌入,然后与 CNN 一起,生成对象的遮罩、边框和外观。因此,最终用户可以简单地在图中添加新的节点(指定该节点的相对位置和大小) ,以便 GNN/CNN 用这些对象生成图像。[17]

打开网易新闻 查看更多图片

利用场景图生成图像。用户可以在画布的任何地方放置一个对象(“ river”标记为红色; 从中心移动到右下角) ,来反映图像中的这些变化(图像中生成的河流也移动到右下角)。

CV 中的另一个图来源是两个相关图像的匹配ーー这是一个经典的问题,过去是用手工的描述符来实现的。3D 图形公司 Magic Leap 发布了名为 SuperGlue 的 GNN 架构[18],可以在实时视频中进行图匹配,用于3D 重建、位置识别、定位和映射(SLAM)等任务。

SuperGlue 由一个基于注意力机制的 GNN 组成,它可以学习图像关键点的表示,这些关键点进一步输入到进行匹配的最佳传输层。该模型在现代 GPU 上进行实时匹配,可以很容易地集成到现代 SLAM 系统中。

图与计算机视觉相关研究当然还有更多,可以参考这篇综述文章[19]。

GNN+CV · 参考资料

[15] 李飞飞等人提出的 Scene Graphs,详解博客:https://cs.stanford.edu/~danfei/scene-graph/

[16] Facebook对场景图进行GNN编码, https://arxiv.org/abs/1909.05379

[17] 同上,视频讲解(需要翻墙):https://www.youtube.com/watch?v=V2v0qEPsjr0

[18] Magic Leap 的SuperGlue架构详解:https://arxiv.org/abs/1911.11763

[19] 图与计算机视觉的综述文章:https://arxiv.org/abs/2010.00130

4

GNN+物理/化学

将粒子或分支之间的相互作用表示为图,然后使用GNN去预测系统的属性,这逐渐成为生命科学中的重要研究方法。

Facebook和CMU的Open Catalyst Project [20],目标是找到新的方法来存储可再生能源(例如太阳能或风能),其中一种方案是通过化学反应将这些能量转化为燃料(例如氢气)的化学能。

但这里一个问题在于,怎么能够找到一种新的高效且低成本的催化剂,来驱动这个化学反应。目前已知的方法DFT相对比较昂贵。

Open Catalyst项目目前开源了一个最大的催化剂数据集,以及DFT弛豫和GNN基线[21],以期望找到新的低成本的催化剂分子。

吸附物(小连接分子)和催化剂表面的初始状态和松弛状态的示例。为了找到一对吸附剂-催化剂的松弛状态,必须执行昂贵的DFT模拟,这可能需要几天的时间。Zitnick et al. 2020

DeepMind的研究人员在[22] 中,使用GNN来模拟复杂粒子系统(例如水或沙子)的动力学过程,通过预测每个步骤、每个粒子的相对运动,从而重建出整个系统的运动状态,并进一步了解控制运动的基本规律。

例如可以利用这种方法来了解玻璃化转变问题[23],这个问题是固体理论中比较有趣的未解问题之一。

当然,使用GNN,不仅仅可以模拟过渡过程中的动力学,还可以更好地了解,粒子如何根据距离和时间相互影响。

此外,美国的物理实验室Fermilab,目前正尝试将GNN应用到CERN的大型粒子对撞机(LHC)的结果分析上,目标则是去处理数百万个图像,并从中发现与新粒子有关的图像。[24]

有关GNN在粒子物理学中的更多应用,可以参考这篇综述文章[25]。

GNN+物理/化学 · 参考资料

[20] Open Catalyst Project 的介绍:https://opencatalystproject.org/

[21] Open Catalyst Project 的开源:https://github.com/Open-Catalyst-Project/ocp

[22] DeepMind模拟水的动力学系统:https://arxiv.org/abs/2002.09405

[23] DeepMind利用GNN来理解玻璃的动力学:https://deepmind.com/blog/article/Towards-understanding-glasses-with-graph-neural-networks

[24] 费米实验室利用GNN来发现新粒子:https://news.fnal.gov/2020/09/the-next-big-thing-the-use-of-graph-neural-networks-to-discover-particles/

[25] GNN在粒子物理学中应用的综述:https://arxiv.org/abs/2007.13681

5

GNN+药物开发

制药公司每年都会投入数十亿美元的研发资金,用来寻找药物开发的新模式。

在生物学中,图可以用来表示各种规模的相互作用。

例如在分子水平,图的边可以是,分子中原子之间的键或蛋白质中氨基酸残基之间的相互作用。

而在更大范围内,图可以表示更复杂的结构(例如蛋白质、mRNA、代谢物等)之间的相互作用。

根据抽象的水平不同,这些图可以用在目标识别、分子特性预测、高通量筛选、新型药物设计、蛋白质工程,以及药物再利用等。

打开网易新闻 查看更多图片

药物开发不同阶段中,GNN有哪些用途[26]

或许利用GNN进行药物开发,最有希望的可能就是MIT等单位发表在《Cell》上的一篇文章[26]。

在这篇文章中,他们训练了一个被称为Chemprop的深度GNN模型,用来预测分子是否表现出抗生素特性(对细菌大肠杆菌的生长抑制作用)。

研究人员仅在FDA批准的药物库中的2500个分子对Chemprop进行了训练。

该模型能够从一个更大的数据集(例如 Drug Repurposing Hub)中筛选出 Halicin分子。

有趣的是,之前大家普遍认为Halicin分子是一种用于糖尿病治疗的分子,它的结构与已知的抗生素差别非常大。但是经过实验室(在小鼠身上)的临床试验,表明Halicin是一种广谱抗生素。

另一方面,研究人员也针对其他神经网络模型进行了基准测试,结果表明了GNN学习功能的强大之处。

Chemprop另外一个值得关注的地方在于,与许多GNN模型不同,它有5个层,1600个隐藏维,远远超过用于此类任务的其他典型的GNN模型。

当然,Chemprop只是最近【AI+药物发现】中的一项研究,有关此类主题的更多成果,可以参考这篇综述文章[27]以及。

GNN+药物开发 · 参考资料

[26] MIT等发表在《Cell》上,利用GNN进行药物开发:https://arxiv.org/abs/2012.05716

[27] AI+药物发现的综述文章:https://doi.org/10.1016/j.cell.2020.01.021

https://medium.com/criteo-labs/top-applications-of-graph-neural-networks-2021-c06ec82bfc18