GNN的基础、前沿和应用
近年来,图神经网络(GNN)取得了快速、令人难以置信的进展。图神经网络又称为图深度学习、图表征学习(图表示学习)或几何深度学习,是机器学习特别是深度学习领域增长最快的研究课题。本次分享的题目为《GNN的基础、前沿和应用》,主要介绍由吴凌飞、崔鹏、裴健、赵亮几位学者牵头编撰的综合性书籍《图神经网络基础、前沿与应用》中的大致内容。
一、图神经网络的介绍
1、为什么要研究图?
图是一种描述和建模复杂系统的通用语言。图本身并不复杂,它主要由边和结点构成。我们可以用结点表示任何我们想要建模的物体,可以用边表示两个结点之间的关系或者相似度。我们常说的图神经网络或者图机器学习,通常是将图的结构以及边和结点的信息作为算法的输入,输出想要的结果。比如在搜索引擎中,当我们输入一个 query 时,引擎会根据 query 的信息、用户的信息以及一些上下文信息返回个性化的搜索结果,这些信息可以天然地以图的方式进行组织。
2、图结构数据无处不在
图结构数据到处可见,比如 Internet、社交网络等。除此之外,在如今非常火的蛋白质发现领域,人们会用图来描述和建模已有的蛋白质并生成新的图,从而帮助人们去发现新的药物。我们也可以用图去做一些复杂的程序分析,还可以在计算机视觉中去做一些 high-level 的推理。
3、图机器学习的近期趋势
图机器学习并不是一个非常新的话题,近 20 年来一直都有这个研究方向,以前一直比较小众。2016 年开始,随着现代图神经网络相关论文的出现,图机器学习成为了一个热门的研究方向。人们发现这种新一代的图机器学习方式可以更好地学习数据本身和数据之间的信息,从而能够更好地得到数据表征,最终能够更好地完成更重要的任务。
4、图神经网络的简单历史
最早的图神经网络相关论文出现在 2009 年,在深度学习流行之前。现代图神经网络相关论文出现在 2016 年,是对早期的图神经网络的改进。之后,GCN 的出现推动了图神经网络的快速发展,2017 年至今,有大量新的算法涌现出来。随着图神经网络的算法越来越成熟,2019 年至今,工业界尝试用这些算法解决一些实际问题,同时也有很多开源的工具被开发出来去提升解决问题的效率。2021 年至今,很多图神经网络相关的书籍被撰写出来,当然也包括这本《图神经网络基础、前沿与应用》。
《图神经网络基础、前沿与应用》一书系统地介绍了图神经网络领域中最核心的概念和技术,以及前沿的研究和开发,并介绍了在不同领域的应用。无论是学术界还是工业界的读者,都能够从中受益。
二、图神经网络的基础
1、机器学习的生命周期
上图体现了机器学习的生命周期,其中特征学习是非常重要的环节,它的主要任务是将原始数据转化为结构化的数据。在深度学习出现之前,大家主要是通过特征工程来完成这个任务。深度学习出现以后,这种端到端的机器学习方式开始成为主流。
2、图中的特征学习
Feature Learning in Graphs 和深度学习的做法非常类似,目标是设计有效的和任务相关或者和任务无关的特征学习方法将原始图中的结点映射到高维空间中,从而得到结点的 embedding 表示,进而完成下游任务。
3、图神经网络的基础
图神经网络中有两类需要学习的表征:
- 图结点的表征
需要一个 filter operation,将图的矩阵和结点的向量表示作为输入,不断学习,更新结点的向量表示。目前比较普遍的 filter operation 有 Spectral-based、Spatial-based、Attention-based、Recurrent-based。
- 图的表征
需要一个 pool operation,将图的矩阵和结点的向量表示作为输入,不断学习,得到包含更少的结点的图的矩阵及其结点的向量表示,最终得到 graph-level 的向量表示来表征整张图。目前比较常见的 pool operation 有 Flat Graph Pooling(比如 Max、Ave、Min),Hierarchical Graph Pooling(比如 Diffpool)。
4、图神经网络的基本模型
在机器学习领域有一个 context learning 的概念。在图神经网络中,一个结点的 context 就是它的邻居结点,我们可以用一个结点的的邻居结点来学习这个结点的向量表示。
通过这种方式,每个结点都可以定义一个计算图。
我们可以将计算图分层,第一层的就是最原始的信息,通过逐层传递和聚合信息来学到所有结点的向量表示。
上图大致描述了图神经网络模型学习的主要步骤,主要有以下四个步骤:
- 定义一个聚合函数;
- 根据任务定义损失函数;
- 训练一批结点,比如可以一次训练一批计算图;
- 为每个结点产出需要的向量表示,甚至是一些从来没有训练过的结点(学习的是聚合函数,可以用聚合函数和已经训练过的向量表示得到新结点的向量表示)。
上图是一个以平均作为聚合函数的例子,第 k 层结点 v 的向量表示依赖于上一层其邻居结点的向量表示的平均和上一层其自己的向量表示。
对以上的内容进行总结,图神经网络的要点就是通过聚合邻居结点的信息生成目标结点的向量表示,它考虑到了编码器中的参数共享,也考虑到了推理学习。
5、图神经网络的流行模型
图神经网络经典或者流行的算法本质上是使用不同的 aggregation function 或者 filter function,可以分为有监督的图神经网络和无监督的图神经网络。
GCN 是最经典的算法之一,它能够直接作用于图并且利用其结构信息。围绕提升模型速度、实用性以及稳定性,如上图所示,GCN 也经历了几次迭代。GCN 的论文是具有划时代意义的,为图神经网络奠定了基础。
MPNN 的核心要点是将图卷积转化为信息传递的过程,它定义两个 function,分别是 aggregation function 和 update function。这个算法是一个简单通用的算法,但是它并不高效。
GraphSage 是工业级别的算法,它使用采样的方式来得到一定数量的邻居结点从而学校结点的向量表示。
GAT 则是引入 attention 的思想,它的核心要点是动态地学习执行信息传递过程中边的权重。
除了以上介绍的算法以外,还有 GGNN,它的特点是输出可以是多个结点,大家感兴趣可以去看相关的论文。
在《图神经网络基础、前沿与应用》这本书中的第五、六、七、八章还分别介绍了如何评估图神经网络、图神经网络的扩展性、图神经网络的解释性、图神经网络的对抗稳定性,大家感兴趣可以去阅读书中对应的章节。
三、图神经网络的前沿
1、Graph Structure Learning
图神经网络是需要图结构数据的,但是给定的图结构是否是最优的是存疑的,有的时候可能会有很多的噪声,很多应用可能没有图结构的数据,甚至仅仅只有原始的特征。
所以,我们需要利用图神经网络学习到最优的图表示以及图结点表征。
我们将图的学习转化为结点间相似的学习,并通过正则化的方式控制平滑度、系属性和连接性,通过迭代的方式去提炼图的结构和图的向量表示。
实验数据可以表现出这种方式的优势。
通过图可视化的结果可以发现,学出的图倾向于将同类的对象聚在一起,有一定的可解释性。
2、Other Frontiers
在《图神经网络基础、前沿与应用》这本书中,还分别介绍了如下前沿研究,这些前沿研究在很多场景下都有很重要的应用:
- 图分类;
- Link Prediction;
- 图生成;
- 图转换;
- 图匹配;
- 动态图神经网络;
- 异质图神经网络;
- 图神经网络的 AutoML;
- 图神经网络的自监督学习。
四、图神经网络的应用
1、图神经网络在推荐系统中的应用
我们可以利用会话信息构造异质全局图,然后通过图神经网络学习得到用户或者物品的向量表示,利用这种向量表示去做个性化的推荐。
2、图神经网络在计算机视觉中的应用
我们可以跟踪物体动态的变化过程,通过图神经网络加深对视频的理解。
3、图神经网络在自然语言处理中的应用
我们可以利用图神经网络来理解自然语言的 high-level 的信息。
4、图神经网络在程序分析中的应用
5、图神经网络在智慧城市中的应用
五、问答环节
Q1:GNN 是下一代深度学习的重要方法吗?
A1:图神经网络是非常重要的分支,和图神经网络并驾齐驱的是 Transformer。鉴于图神经网络的灵活性,图神经网络和 Transformer 相互结合,去发挥更大的优势。
Q2:GNN 和因果学习是否可以结合?如何结合?
A2:因果学习重要的环节是因果图,因果图和 GNN 可以天然地结合。因果学习的难点是它的数据量级很小,我们可以利用 GNN 的能力更好地去学习因果图。
Q3:GNN 的可解释性和传统机器学习的可解释性的区别和联系是什么?
A3:在《图神经网络基础、前沿与应用》这本书中会有详细的介绍。
Q4:如何直接基于图数据库、利用图计算的能力进行 GNN 的训练和推理?
A4:目前在统一图计算平台上还没有很好的实践,有一些创业公司和科研团队在做相关方向的探索,这会是一个非常有价值且有挑战的研究方向,比较可行的做法是分领域。