文章来源:公众号【Coggle数据科学】
文章内容概述
本文内容分两部分,第一部分为基于 GNN 的图表示学习,共包含两节,第1节主要从三种建模方法上对图表示学习进行对比阐述;第2节分别从两类无监督学习目标——重构损失与对比损失,对基于 GNN 的无监督表示学习进行阐述。第二部分为GNN的相关应用介绍,主要为3D视觉、基于社交网络的推荐系统和视觉推理的介绍。
图数据有着复杂的结构,多样化的属性类型,以及多层面的学习任务,要充分利用图数据的优势,就需要一种高效的图数据表示方法。与表示学习在数据学习中的重要位置一样,图表示学习也成了图学习领域中的十分热门的研究课题。
作为近几年深度学习的新兴领域,GNN 在多个图数据的相关任务上都取得了不俗的成绩,这也显示出了其强大的表示学习能力。毫无疑问 GNN 的出现,给图表示学习带来了新的建模方法。表示学习本身具有十分丰富的内涵和外延,从建模方法、学习方式、学习目标、学习任务等等方面都有所涵盖。这些内容在前面章节均有阐述,所以本章我们主要就基于 GNN 的无监督图表示学习进行讲解。这也有另外一方面的考虑,在实际的应用场景里面,大量的数据标签往往具有很高的获取门槛,研究如何对图数据进行高效地无监督表示学习将具有十分重要的价值。
1.1 图表示学习
在前面我们通常用邻居矩阵 A∈RNxN表示图的结构信息,一般来说,A 是一个高维且稀疏的矩阵,如果我们直接用 A去表示图数据,那么构筑于之上的机器学习模型将难以适应,相关的任务学习难以高效。因此,我们需要实现一种对图数据的更加高效的表示方式。而图表示学习的主要目标,正是将图数据转化成低维稠密的向量化表示方式,同时确保图数据的某些性质在向量空间中也能够得到对应。这里图数据的表示,可以是节点层面的,也可以是全图层面的,但是作为图数据的基本构成元素,节点的表示学习一直是图表示学习的主要对象。一种图数据的表示如果能够包含丰富的语义信息,那么下游的相关任务如点分类、边预测、图分类等,就都能得到相当优秀的输入特征,通常在这样的情况下,我们直接选用线性分类器对任务进行学习。图 1 展示了图表示学习的过程:
图1 图表示学习过程
同表示学习一样,图表示学习的核心也是研究数据的表示。特殊的是,图表示学习的研究对象是图数据。我们知道图数据中蕴涵着丰富的结构信息,这本质上对应着图数据因内在关联而产生的一种非线性结构。这种非线性结构在补充刻画数据的同时,也给数据的学习带来了极大的挑战。因此在这样的背景下,图表示学习就显得格外重要,它具有以下两个重要作用:
1. 将图数据表示成线性空间中的向量。从工程上而言,这种向量化的表示为擅长处理线性结构数据的计算机体系提供了极大的便利。
2. 为之后的学习任务奠定基础。图数据的学习任务种类繁多,有节点层面的,边层面的,还有全图层面的,一个好的图表示学习方法可以统一高效地辅助这些任务的相关设计与学习。
图表示学习从方法上来说,可以分为基于分解的方法,基于随机游走的方法,以及基于深度学习的方法,而基于深度学习的方法的典型代表就是 GNN 相关的方法。下面我们回顾一下前两类方法:
在早期,图节点的嵌入学习一般是基于分解的方法,这些方法通过对描述图数据结构信息的矩阵进行矩阵分解,将节点转化到低维向量空间中去,同时保留结构上的相似性。这种描述结构信息的矩阵比如有邻接矩阵,拉普拉斯矩阵,节点相似度矩阵。一般来说,这类方法均有解析解,但是由于结果依赖于相关矩阵的分解计算,因此,这类方法具有很高的时间复杂度和空间复杂度。
近些年,词向量方法在语言表示上取得了很大的成功,受该方法的启发,一些方法开始将在图中随机游走产生的序列看作句子,节点看作词,以此类比词向量从而学习出节点的表示。典型的方法比如 DeepWalk、Node2Vec等。图 2 给出了 DeepWalk 算法的示意图:
图 2 DeepWalk 算法示意图
DeepWalk 通过随机游走将图转化成节点序列,设置中心节点左右距离为 w 的节点为 上下文 ( context ),如图 2b 所示。同词向量方法一样,DeepWalk 本质上建模了中心节点与上下文节点之间的共现关系,这种关系的学习也采用了负采样的优化手段,如图 2d 所示。
基于随机游走的方法相比上一类方法,最大的优点是通过将图转化为序列的方式从而实现了大规模图的表示学习。但是这也导致了两个缺点:一是将图转化成序列集合,图本身的结构信息没有被充分利用;二是该学习框架很难自然地融合进图中的属性信息进行表示学习。
关于 GNN 方法的建模细节,作为本书之前相关章节的重要内容进行了阐述,这里就不再赘述。通过之前的学习,我们可以知道基于 GNN 的图表示学习具有以下几点优势:
1. 非常自然地融合进了图的属性信息进行学习,而之前的方法大多把图里面的结构信息与属性信息进行单独处理。
2. GNN 本身作为一个可导的模块,能够嵌入到任意一个支持端对端学习的系统中去,这种特性使得其能够与各个层面的有监督学习任务进行有机结合 ( 或者以微调学习的形式进行结合 ),学习出更加适应该任务的数据表示。
3. GNN 的很多模型如 GraphSAGE、MPNN 等都是支持归纳学习的,多数情况下对于新数据的表示学习可以直接进行预测,而不用像之前的多数方法需要重新训练一次。
4. 相较于分解类的方法只能适应小图的学习,GNN 保证了算法在工程上的可行性,对大规模图的学习任务也能适应。
综上,基于 GNN 的相关方法具有强大的学习能力与广泛的适应性,是图表示学习重要的代表性方法。
1.2 基于GNN的图表示学习
凭借强大的端对端学习能力,GNN 这类模型可以非常友好地支持有监督的学习方式。但是 GNN 本身作为一种重要的对图数据进行表示学习的框架,只要与相应的无监督损失函数结合起来就能实现无监督图表示学习。无监督学习的主体在于损失函数的设计,这里我们分两类损失函数:基于重构损失的 GNN 和基于对比损失的 GNN,本文将对第一类基于重构损失的 GNN进行介绍。
1. 基于重构损失的 GNN
类比于自编码器的思路,我们可以将节点之间的邻接关系进行重构学习,为此可以定义一个如下的图自编码器 ( Graph AutoEncoder ):
其中,
是所有节点的表示,这里借助 GNN 模型同时对图的属性信息与结构信息进行编码学习。
是重构之后的邻接矩阵,这里使用了向量的内积来表示节点之间的邻接关系。图自编码器的重构损失可以定义如下:
由于过平滑的问题,GNN 可以轻易地将相邻节点学习出相似的表达,这就导致解码出来的邻接矩阵
能够很快趋近于原始邻接矩阵
,模型参数难以得到有效优化。因此,为了使GNN 习得更加有效的数据分布式表示,同自编码器一样,我们必须对损失函数加上一些约束目标。比如,我们可以学习降噪自编码器的做法,对输入数据进行一定地扰动,迫使模型从加噪的数据中提取有用的信息用于恢复原数据。这种加噪的手段包括但不限于下面所列的一种或多种:
1. 对原图数据的特征矩阵 X 适当增加随机噪声或置零处理;
2. 对原图数据的邻接矩阵 A 删除适当比例的边,或者修改边上的权重值。
另外,其他的许多自编码器中的设计思路都可以被借鉴。接下来,我们看看比较重要的变分图自编码器 ( Variational Graph Autoencoder ,VGAE ) 。VGAE 和变分自编码器的基本框架一样,不同的是使用了 GNN 来对图数据进行编码学习。下面分三个方向来介绍其基本框架包括推断模型 ( 编码器 )、生成模型 ( 解码器 )、损失函数。
推断模型
与 VAE 不同的是,这里我们使用两个 GNN 对 μ、σ 进行拟合:
生成模型
这里也简单使用了两个节点表示向量的内积来拟合邻接关系。
损失函数
同样地,隐变量 z 的先验分布选用标准正态分布:
VAE 与 GNN 的结合,不仅可以被用来学习图数据的表示,其更独特的作用是提供了一个图生成模型的框架,能够在相关图生成的任务中得到应用。
2.1 GNN的应用简述
GNN的适用范围非常广泛,既可以处理具有显式关联结构的数据如药物分子、电路网络等,也可以处理具有隐式关联结构的数据如图像、文本等。近年来,GNN已经被用来解决各行各业的问题,例如生物化学领域中的分子指纹识别、药物分子设计、疾病分类等,在交通领域对交通需求预测、道路速度预测,在计算机图像处理领域的目标检测、视觉推理等,在自然语言处理领域的实体关系抽取、关系推理等。可以分成六个方向:自然语言处理、计算机视觉、自然科学研究、知识图谱、组合优化、图生成,对GNN的应用做出了较为全面与细致的归纳总结。
纵观GNN的各类应用,GNN表现出了如下三点优势:
1. GNN具有强大的图数据拟合能力。作为一种建立在图上的端对端学习框架,GNN展示出了强大的图数据拟合能力。图数据是科学与工程学领域中一种十分常见的数据研究对象,因此,GNN也被应用到了很多相关场景下,并且都取得了不错的效果。通常这些应用均会利用GNN去拟合研究对象的一些理化性质,从而指导或加速相应的科研与开发工作。比如利用GNN去拟合两图中节点对的组合性质,从而提升蛋白质相互作用点预测的精度,而蛋白质相互作用点预测是药物分子发现与设计工作的重要构成部分;将高频电路抽象成图数据,利用GNN去拟合其电磁学性质,相较于严格的电磁学仿真计算,该方法能极大的加速高频电路(比如5G 芯片)的设计工作。
2. GNN 具有强大的推理能力。计算机要完成推理任务、离不开对语义实体的识别以及实体之间关系的抽取,很自然地,GNN被应用到了很多推理任务的场景中去。相较于之前大多基于关系三元组的建模方式,GNN能够对表征语义关系的网络进行整体性地建模,习得更加复杂与丰富的语义信息,这对提升推理任务的效果大有裨益。深度学习经过近几年的长足发展,在许多识别相关的任务上都取得了前所未有的成果,基于此,需要更深程度理解数据的推理任务被提出来,比如计算机视觉中的视觉问答(Visual Question Answering)、视觉推理(Visual Reasoning),自然语言处理中的多跳推理(Multi-hop Reasoning)等。随着GNN的流行,很多工作也尝试将GNN以一种端对端地形式嵌入到学习系统中去,提升相关任务的效果。我们举两个例子说明:第一个是在基于事实的视觉问答(Fact-based Visual Question Answering)中,问题不再直接包含答案内容,需要学习系统经过推理将问题中的事实关系正确映射到答案中的实体上。通过引入GCN同时建模多条事实来提升对答案推理的正确性,这一方法在相关数据集上取得了极大的效果提升。第二个是多跳推理,相比于之前的阅读理解任务,多跳推理需要跨越多个段落甚至多个文档来寻找实体之间的多跳关系,这是一个更加开放更加复杂的推理任务。通过嵌入GNN,构造了一个抽取加推理的双线学习框架,使得学习系统在可解释性提升的同时也在相关数据集上获得了极大的效果提升。
3. GNN与知识图谱结合,可以将先验知识以端对端的形式高效地嵌入到学习系统中去。人类在学习后习得的知识,会被大脑神经系统进行系统地加工并存储起来,作为之后相关活动发生时的一种先验知识高效提升人类的应对表现,并且往往知识之间会产生各种关联,形成“知识地图”。这种机制对应着数据科学领域中一些技术如知识图谱的广泛应用。从数据建模的层面说,这些知识(或者规则、经验、常识、事实等)为模型提供了额外的相关信息,可以有效提升学习系统的效果。作为一种端对端的图数据学习模型,GNN结合知识图谱,可以将先验知识高效地嵌入到任意一种学习系统中去,提升任务效果。如在零样本学习任务中利用GCN对词汇网络(WordNet)进行建模,实现了类别之间的语义关系到其视觉表示上的迁移,从而大大提升视觉模型在一些完全不提供训练样本的类别上的分类准确率。通过补充额外的知识图谱信息,将知识图谱与用户-商品二部图构成一种合成的图结构,然后利用GNN进行推荐任务建模,同时增强了推荐系统的准确率、多样性与可解释性。
总的来说,正是由于GNN强大而灵活的特性,使得其不管在图数据本身的学习任务上,还是在被以端对端的形式融合到其他的学习任务中,都能表现出自己的独特优势。当然,上面一以概之的优势需要与实际场景进行深度耦合,在具体地应用中寻找精确的定位,只有这样,才能在相关场景中获得优秀的效果。
2.2 GNN应用案例
本节将此3D视觉、基于社交网络的推荐系统、视觉推理3个方面介绍GNN的应用案例,希望借由这3个应用场景能够为大家深入而具体的展示GNN的技术特点及优势。
1. 3D视觉
继卷积神经网络在2D视觉上获得前所未有的成功之后,近年来,如何让计算机理解3D世界,特别是如何延续深度学技术在3D视觉问题上的表现受到了越来越多的研究人员关注。3D视觉数据的表示方式有多种,如点云(Point Cloud)、网格(Mesh)等。本节我们来介绍其中具有代表性的点云数据的学习。
图 3 点云分割示意图
点云数据是一种十分常见的数据表示方法,是一种有效的三维物体的表示方法,点数据由一组点组成,每个点都记录有三维坐标(x,y,z),这种数据由于映射了现实世界中物体的特征,因此存在一种内在的表征物体语义的流行结构,这种结构的学习也是 GNN 所擅长的。需要说明一点的是,在 3D 视觉中流行的是几何学习 Geometry Learning,当下,几何学习与 GNN 在一些场景如点云分割、点云识别等正在深度融合。
2. 基于社交网络的推荐系统
推荐是各大互联网公司十分重要的营收手段,因此一直以来备受工业界与学术界双重关注。过去这几年,推荐系统由早期的协同过滤算法发展到 MF 模型、再到之后的 Wide&Deep,以及基于 Network Embedding 的方法,可以明显地看到基于神经网络的方法正在逐渐占据主要位置,而 GNN 的出现,又一次大大加速了这个技术趋势。
以电商平台的推荐为例,推荐系统的核心数据在于用户 - 商品交互的二部图,而基于神经网络的多数方法将二部图中的实体映射到一个合适的向量空间中去,使得在图上距离越近的两个实体在向量空间中的距离也越近,如下图所示:
图 4 用户商品关系
GNN 本身是一种深度模型,与推荐系统结合之后,多层 GNN 模型可以更好地捕捉用户与商品之间的高阶协同关系,论文“Neural Graph Collaborative Filtering”中,作者论证了多层 GNN 所带来的“Deep”与“High order”效益对推荐质量的有效提升。除了推荐系统算法模型本身的研究,另一种思路在于如何使推荐系统有效融合进额外的信息,如用户端社交网络的信息、商品端商品知识图谱的信息。这类信息中通常也蕴含了极强的关系,因此可以非常自然地与用户 - 商品二部图合在一起构成一个更大的异构图。下图给出了与电影知识图谱的结合示意图:
图 5 电影知识图谱结合示意图
有了这样的图数据抽象之后,引进 GNN 进行推荐建模也就成了一种自然的选择。另外一个十分重要的、也与推荐系统息息相关相关的业务场景是广告点击率(CTR)预测。该场景下的样本通常是由多领域的特征数据构成,比如用户域、设备域、广告域等等,如何建模这些数据域之间的特征交互,成为了该任务的核心。最近基于神经网络的方法都是直接将各个域之间的特征拼接起来然后送到上层的网络模型中,以期得到这些域之间的高阶交互,这种简单的非结构化的拼接方式,会大大限制模型的学习能力。在“Fi-GNN: Modeling Feature Interactions via Graph Neural Networks for CTR Prediction”一文中,作者将各个域之间以图的形式连接起来(图6中的 Feature graph),然后用 GNN 建模各个特征域之间高阶复杂的交互关系,相比之前的模型取得了最好效果。
图 6 Feature graph
3. 视觉推理
推理是人类具有的高阶能力,是人类智能中很重要的部分,如何让计算机拥有推理能力是人工智能领域一项重要的课题。
以视觉领域为例,尽管卷积神经网络等模型取得了极大的成功,但是仍不具备复杂推理的能力,比如图7中,要判断蓝色方框的目标是什么。人类在看到这副图像的时候,根据图中的棒球棒、人物的姿态,首先会得出这张图在描述打棒球,然后以此为依据,对于蓝色的目标区域,根据这个人的姿势和手部姿态判断他是处于接棒球的状态,因此可以推断蓝色区域为棒球手套。而使用基于卷积网络的方法进行识别,除了在更大的感知野内获得的层次化特征之外,无法通过图像的语义信息来准确推理出蓝色区域的目标。
图 7 蓝色框内的目标是什么?
图 8 推理框架结构图
局部推理模块以记忆模块S作为输入进行预测,其中记忆模块S用来存储通过卷积网络提取的目标区域的位置特征和图像特征。
全局推理模块主要基于空间特征和语义特征进行推理。空间指的是建立位置上不相邻区域的联系,语义指的是利用外部的知识库建立类别与类别之间的联系。为了综合利用这两方面的信息,采用GNN作为推理模块。图的构成使用了两种类型的节点,由所有的区域组成的区域节点,和所有区域对应的实体作为节点。节点与节点之间的边通过如下三种关系建立,第一种是区域与区域之间通过它们距离关系进行关联,边的权重由像素距离的核函数归一化值决定;另外对于有重叠的区域,通过IoU值建立它们之间的关系。第二种是区域与实体之间的关系,根据对区域预测的概率分布(softmax输出),建立与实体之间的关系,边的权重为对应的概率值。第三种是实体与实体之间的关系,这个关系来自于外部的知识图谱,可以将多种实体关系考虑进来,比如类别从属关系、部件从属关系(腿和椅子)、单复数关系、水平对称关系等。
以上述构建的图为基础,使用GNN来进行推理,区域节点的特征来自卷积网络,实体节点的特征来自预训练的词向量。GNN推理是为了融合空间和语义信息对区域进行推理,因此使用了两条推理路径。一条是区域——区域,它聚合多个区域的特征以得到空间特征;另一条是区域——实体——实体,它分为两步,第一步将区域的特征聚合到实体节点并与实体节点特征融合,然后对不同类型的实体关系进行聚合得到实体的特征,这对应着语义关系。为了得到区域的最终特征,通过实体——区域的关系,将实体携带的语义特征聚合到区域节点上,并与第一条推理路径得到的空间特征进行融合。整个过程如下图所示。
图 9 全局推理模块示意图
推理通常不是一步到位的,而是迭代式的。为了将前一轮的信息传递到后一轮,可以使用记忆模块,局部推理和全局推理使用不同的记忆模块和,每次迭代得到的输出用于更新记忆模块。另外模型还引入了注意力机制,以便融合当前预测值与来自其他迭代过程产生的预测值。模型在不同的训练数据集上进行试验,将识别效果对比卷积神经网络提升了3.7% ~ 8.4%。