图神经网络模型的应用(8)--1
1.图数据上的一般任务
前面介绍过,按照元素和层级来划分,图数据上的任务一般可以分为节点上的任务、边上的任务和图上的任务。而在实际应用中,大部分图神经网络的应用都集中在节点分类、链路预测和图分类上;在设计一个新的图神经网络模型时,我们常使用的标准数据集也都基本来自这三个任务。我们暂时不考虑图数据的具体领域,先来介绍图神经网络在这些标准任务上的使用。
1.1 节点分类
节点分类是图神经网络上最普遍的一个任务。沿用本书惯用的符号,给定一个图G={V,}, 假设已知其中部分节点 Vtrain的标签Y∈Rn×8(n 个节点,每个节点的标签属于s 类中的一个),目标 是预测一些未知节点Vest上的标签Ytest。
首先,假设已经有一个图神经网络模型对图进行编码,得到节点嵌入Z∈ Rn×m,那么我们可以在图神经网络的上面加上一层全连接网络进行预测,得到的预测标签为Y=MLP(Z)=Softma x(ZW+b)∈Rn×s, 然后只需要在有标签的节点上计算交叉熵作为损失函数:
有时,在最后一层进行预测的并非全连接网络,如图卷积网络的最后一层就直接使用图卷积层输出标签,而不需要额外的转换;而有时, 每个节点的标签并非只有一个,那么我们的预测函数就需要从Softmax改成sigmoid, 即从多分类预测转为多标签预测。
1.2 链路预测
链路预测可以理解为定义在边上的任务。给定两个节点vi和vj, 链路预测的目标是判断这两个节点之间是否有连接eij或它们之间的连接属于什么类别。 链路预测和工业界的联系非常紧密,很多推荐系统是基于链路预测的,知识图谱补全中对实体关系的预测也被认为是一个链路预测的问题。对于普通的{0,1}连接的图或者权重图,由于不用考虑边的类型,在链路预测时只需要基于两个目标节点的嵌入向量进行预测。如VGAE中预测vi 和vj之间有边的概率是:
Pij=p(eij=1|zi,zj)=σ(zj) ,其中,zi,zj是节点vi和vj的嵌入表示,σ是一个sigmoid函数。
在具有关系类型的图中对链路的预测要稍微复杂一点,还需要考虑边本身的信息,所以一般会计算包含节点 vi、vj和边r的三元组(vi,r,vj)存在的概率;。例如,在前面介绍的关系图卷积网络,采用的就是DistMult模型中对三元组的打分函数:
其中,zi,zj是节点的嵌入表示,而Rr是对应关系r的对角阵。
在图数据上,我们通常只知道哪些边确定存在(取值为1或具有确定的类型r),而不知道哪些边确定不存在(也就是只有正例而没有反例),因此在训练的过程中,我们一般会采用负采样的方法得到一些图中不存在的边作为近似的负样本。(负采样核心思想是在训练过程中,为了提高计算效率和模型性能,只选择一小部分负样本,即与目标类别不同的样进行训练,而不是使用全部的负样本集合。)具体来说,我们对图中每个三元组(vi,r,vj)随机用其他节点替换vi 或vj得到w 个不存在的三元组。这样损失函数可以写为:
其中,Ω表示训练集中所有的三元组,即正例的合集;|Ω|为所有正例的数量;为包含所有正例和负例三元组的集合。如果(vi,r,vj) 为正例,则y=1, 反之y=0。以上两种预测函数只是作为例子展示两个常用的方法。事实上,打分函数或者损失函数都可以有不同的形式。另外,除了使用节点嵌入和三元组打分函数,链路预测还有一些更复杂的模型,例如,利用两个目标节点周围的子图来预测的方法,由于包含了更多上下文的结构信息,取得了很好的效果。
1.3 图分类
图分类任务经常出现在生化领域,如预测分子的化学性质等。在这类任务中,我们给定一些已知标签的图(G₁,y₁),…,(Gn,yn)用来训练,目标是预测一些新图的标签。
在前面节介绍的消息传递网络中提到,可以通过节点的嵌入表示Z得到整个图的向量表示 ZG=READOUT(Z)。READOUT函数可以采用加和函数,均值函数,最大池化等实现,也可以像门控图神经网络那样采用更高级的软注 意力机制。在得到图的向量表示之后,我们就可以做图上的分类预测任务了。同节点分类类似,我们也可以使用一个简单的全连接网络对图Gi进行分类预测:
然后,同样使用真实标签y与预测标签y的交叉熵作为损失函数来训练图神经网络:
有些图级别的预测任务并非是分类,例如,如果要预测的分子性质不属于某个类别而是一个连续的值,那么此时我们要采用回归模型,损失函数也要相应地改为平方差:
2.生化医疗相关的应用
2.1 预测分子的化学性质和化学反应
在生化领域,药物分子化合物、蛋白质等经常被作为研究对象。以分子为例,它是一个天然的图结构,可以将分子中的原子看作节点,将化学键看作边, 研究分子的化学性质就可以看成给一个图分类或者回归问题。事实上,在机器学习图分类问题的标准数据集中,生化分子占据了非常大的比例:对于化合物来说,MUTAG数据集旨在分类它们是否为芳香剂,Tox21数据集分类不同的毒性 ,NCI-1分类对癌症的阻碍作用。对于这类问题,我们一般通过学习整个分 子图的表示得到所谓的“分子指纹”,然后用它做各种性质的预测。
分子指纹的学习和化学性质的预测在图神经网络发展的早期起到了非常重要的作用。例如,Duvenaud 等人在传统的分子指纹的基础上做了改进,发展了卷积的方法,也是早期图卷积网络的一种;而Glimer 等人提出的消息传递网络更是在分子化学的背景下对所有信息传递网络做了统一和改进。除此之外,图卷积网络还被用来预测两个分子的化学反应或者寻找有效的抗体。
化学反应预测是指给定一些反应物分子图Gr(注意这个Gr一般包含不止一个分子,但是这些不同的分子可以放在一起,组成一个共同的不连通的图), 来预测化学反应后产生的对应的产物Gp。图神经网络用于化学反应预测的过程,G₁中每个节点是一个原子,首先,用一个特定的图神经网络学习每个原子节点的嵌入表示,然后预测每两个原子形成的原子对可能产生反应的分数。分数最高的K个原子对被挑出来,我们根据这些原子对列举可能产生的所有符合规则的候选产物,最后用另一个图卷积网络对这些候选产物进行预测,并按照概率高低重新排序,这样就得到了我们想要的反应产 物Gp。
2.2 图生成模型与药物发现
药物开发是一个耗时、费力的大工程,从最初的药物设计、分子筛选,到后期的安全测试、临床试验,一般会花超过10年的时间而且不能保证成功率。因此,面对COVID-19这种突发的流行病,我们无法立刻研发出有效药物,而只能在已知的药物里寻找可能有效的进行药物重用。为了加快新药开发的进程,人工智能在药物发现领域起到了越来越重要的作用,尤其是在新分子的设计阶段, 图神经网络与图生成模型的应用极大地提升了药物发现的效率。虽然分子也可以表征成 SMILES 字符串的形式(和化学分子式类似),但是我们很难从这种字符串中直接获得语法和结构信息,因此更常用的分子生成方法是把分子当成图来生成。
生成对抗网络和变分自编码器等深度生成模型被广泛应用于图像和文本生成领域,然而把这些模型扩展到分子图的生成问题上并不容易。 首先,由于分子具有不同类型的节点和不同类型的边,导致一个很小的分子也有着很大的搜索空间;其次,由于图的不规则性,设计一个解码器从一个向量生成一个图结构是非常有挑战的;最后,我们还需要保证生成的图是一个分子,并且具有我们想要的化学性质,这就要求生成过程中有很多的限制条件。 一般来说,图生成模型有以下几类:自回归模型,基于生成对抗网络的模型,基于变分自编码器的模型,以及基于标准化流的模型。
给定一些已知的分子图{G₁,G₂,…,Gn} 和它们对应的化学性质y₁,y₂, …,yn, 假设它们都服从某种未知的分布p(G),图生成模型的目标是学到这个分布并从中采样出新的分子图{Gn+1,Gn+2,…}。这些生成的新分子图需要是有效的分子(满足化学价等条件),并且具有我们想要的化学性质。
2.3自回归模型
GraphRNN是一个早期的经典图生成模型,它把图的生成过程看作一 个序列生成过程。虽然图结构中节点的位置是可互换的,但是生成图总要有个先后顺序,所以GraphRNN中每个图的节点被预先设定了一种排序,按照这种排序,我们可以一个节点一个节点地生成这个图。我们每次生成 一个节点,然后把这个节点连接到已经生成的其他节点上,也就是生成节点所对应的边,这样依次循环,直到最终生成整个图。
具体来讲,我们先把图G用宽度优先搜索表示成一个序列的形式:
=fs(G,BFS(G,π))=(,…,),其中π为一个某种节点的排序,∈{0,1}i-1表示第i 个节点与之前所有节点的连接向量。那么这个序列可以通过自回归的方式生成:
这里p(||…) 采用循环神经网络的形式进行状态更新。我们使用两个神经网络ftrans 和fout 得到的生成参数θi :hi=ftrans(hi,),θ= fout(h),然后根据θi采样出。
GraphRNN 是一个比较通用的图生成模型,它没有考虑分子的性质,所以在分子的生成问题上,可以用强化学习的方法加上对生成分子的化学性质的预测,作为奖励函数进行反馈,从而使生成的分子具有我们想要的化学性质。
2.4基于生成对抗网络的模型
生成对抗网络由两部分组成:生成器F和判定器Dφ。生成器把一个根据先验概率采样出的潜在语义向量z 映射到一个具体的样本F(z); 而判定器则判断一个样本x是真实样本还是生成的样本。生成器和判定器通过下式的最小最大博弈策略进行训练:
生成对抗网络的出现,引领了图像生成等任务的热潮,然而在图数据上,同样的难题摆在图神经网络面前:怎么设计解码器。举一个最简单的例子,这个模型叫作MolGAN。首先,它把分子图表示成两个部分:邻接张量(比邻接矩阵多了一个维度,用来表示边的类型)和节点属性矩阵。它的解码生成过程分为两个分支,从一个采样的图向量z开始,它用一个非常简单的基于多层感知机的生成器分别生成一个稠密的邻接张量A和节点属性矩阵X。 A和X并非我们需要的图,只是作为概率进一步采样得到数值为{0,1}的稀疏张量A~和稀疏矩阵X~, 这样就得到了一个图样本G=(A~,X~) 。我们可以 用一个图神经网络作为判别器,判断这个图G是否是一个真实的分子,同时用另一个分类器预测这个生成分子的性质,并利用强化学习进行反馈。这样,我们的损失函数就既考虑了分子图的分布特性(图神经网络的部分),也包含了分子化学性质的预测(强化学习的部分)。但是,这个模型缺少了对分子化学价等的限制,导致生成的分子即使满足分布也并不一定在化学上成立。另外,受图神经网络模型本身的限制,生成的分子很容易重复,就会出现模式崩溃的问题。
2.5基于变分自编码器的模型
变分自编码器由一个编码器把样本x编码成向量z, 然后通过一个解码器进行重构。它的目标是最小化目标函数:
其中,后验概率(后验概率是指在给定某些证据或数据后,某个假设为真的条件概率。它是贝叶斯定理的核心概念)qφ(z|zx)可以当作编码器。pe(x|z)可以当作解码器,p(z)是编码向量z的先验概率,一般为高斯分布。
图变分自编码器这个模型只是用来作为图的无监督表示学习或者链路预测的,因为它的编码器得到的结果是关于节点的表示。如果要生成新的图,在解码时我们不知道有多少节点及这些节点是怎么连接的,所以只能从一个表示整个图的向量z出发进行解码(就像图卷积网络的生成器那样)。在基于变分自编码器的图生成模型中,编码器通常可以定义成一个图神经网络,而解码器可以有各种不同的方式。不像在生成对抗网络中我们可以由一个判别器来判断生成的图是否语义正确,在变分自编码器中,我们必须对解码器做一些限制才能保证生成分子的有效性。
一个比较经典的用于分子图生成的变分自编码器模型是联结树VAE,它的思想是:如果按照自回归模型中一个节点一个节点依序生成,很难保证生成的分子图是符合语法的,那么不如先把图分解成一些子结构,再拼接这些在一定语义中有效的子结构。首先, 我们把分子图G分解成一个联结树P, 即把图中的可能在同一个子结构的原子合并成一个节点,使得这个图最终不存在闭环,也就是变成了一棵树。这样联结树的每个节点就代表了一个子结构。我们对图G和树分别进行编码,得到向量表示ZG和Z 。解码过程分为两步:先根据Z 解码出一个树p(|z), 然后根据图向量表示zg和这个解码出的树分析图中子结构连接的精细结构。
除了采用子结构来保证分子图的语义有效性,另一些基于变分自编码器框架的图生成模型则侧重于增加图解码器的限制。例如,Liu 等人在生成图的边时采用遮蔽技术保证去除违反分子语义结构限制的边。具体来说, 在生成边的概率分布上增加一个变量Mt, 如果节点u 和 v 之间可以存在边, 则Mu=1, 否则为0。Ma 等人则直接把语义限制(化合价的限制和图的连通性)形式化地定义出来,他们在变分自编码器的框架上增加这个限制条件, 并通过采样的方式进行求解。
正则化是机器学习中用来防止模型过拟合的一种技术。过拟合是指模型在训练数据上表现得很好,但在新的、未见过的数据上表现不佳,即模型的泛化能力差。正则化通过在损失函数中添加一个额外的项来实现,这个额外的项通常与模型的复杂度相关,目的是惩罚模型的复杂度。
2.6基于标准化流的模型
标准化流是一种比较新的深度学习生成模型,它的主要思想是使生成过程可逆,这样从隐藏向量到生成样本的过程就不会损失信息。我们将其与变分自编码器进行简单的对比,在变分自编码器中,我们需要一个编码器f(G)得到隐藏向量z, 然后通过一个解码器g’(z)重建一个样本G^, 这里f 和g 是任意 的,并没有什么确定的关系。而标准化流的方法则要求f(G)是一个可逆的过程,这样我们就能通过一个简单的逆映射得到原来的样本G=f-¹(z)。
实现f(G可逆的方法有很多种,其中一种经典做法叫作Real NVP,具体来说,就是先将输入x分割成两部分(x1,x2), 然后定义一个仿射耦合层。
h₁=₁
h₂=x2exp(s(x₁))+t(x₁)
其中为元素积,s(·)和 t(·)分别是两个任意的拉伸和变换函数。可以证明,这个耦合层所代表的变换有着完全可逆的变换:
x₁=h₁
x₂=[h₂-t(h₁)]exp(-s(h₁))
然后,在下一层对x 进行重新分割,或者调换对x₁和 x₂ 的操作,就能让信息得到更好的交互和融合。
3.药物/蛋白质交互图的利用
除了分子本身的化学结构可以被认为是图,在生化领域,另一种重要的图是蛋白质交互图。虽然蛋白质本身有时也被认为是图,但是更普遍的情况是将蛋白质作为节点,将蛋白质之间的相互作用当作边,组成一种蛋白质交互图。 蛋白质交互图也是图神经网络常用的一个标准数据集,它主要用来做(归纳式学习的)节点分类预测。 类似的还有DDI 图和DTI(Drug- Target-Interaction)图 ,DDI 用来研究药物之间的相互作用(可以是正的协同作用,也可以是不良反应),而DTI 主要用在研究药物和目标蛋白质之间的相互作用,它们都在药物研发中起到很重要的作用。由于在药物开发中,我们对药物成分的研究总是不完全的,DDI 图和DTI 图上的研究集中在通过已知的图结构预测那些未知的相互作用,也就是链路预测的问题。通过对DDI 的预测,可以防止推荐药物时可能产生的药物之间的不良反应,而DTI 的预测则能帮助我们理解药物机制及将旧药新用。下面我们来看图神经网络是怎么利用DDI 图的信息做更安全的药物推荐的。基于电子病历的药物推荐是医疗电子化的一个重要方向,但是仅考虑病人历史记录的推荐有一个问题,那就是很有可能会推荐药物相互之间有不良反应 的组合,因此,利用DDI图的信息就是一个必然。GAMENet采用了图神经网络与记忆网络结合的方式来解决这个问题。首先,DDI 图被一个图神经网络编码,然后这个编码的信息被放在记忆网络的记忆库中,在每个时间点与记忆网络中的其他动态历史记录共同作用,从而在选择药物推荐时避免药物之间的不良反应。