腾讯AI Lab联合清华、港中文,万字解读图深度学习历史、最新进展与应用(6)
4.图神经网络的自监督/无监督学习
前面讨论的 GNN 的表达能力、深度和规模都是基于监督式方法,也就是说我们有输入图的标签。但在现实生活中,获取这些标签却并非易事。比如在分子属性预测任务中,为了获取基本真值标签,我们必需专业人士的协助。此外,训练任务与测试任务并不总是一致的,比如对于社交网络推荐任务,我们可能在训练中使用的是节点用户购买商品的数据,但我们却想知道节点用户是否想看某部电影,此时训练标签可能对测试就毫无作用了。因此,我们需要研究如何在没有标签的情况下训练 GNN。
目前在自监督图学习方面已经有一些研究成果了。我们可以根据它们的机制将其分为两大类别:预测方法和基于信息论的方法。而根据所要解决的任务的差异,又可以分为两种情况:节点分类和图分类。
预测方法
首先来看预测方法。Yann LeCun 说过:「自监督学习的系统是根据其输入的某些部分来预测输入的其它部分。」这就意味着在自监督学习中,输入的结构是很重要的。而图就是高度结构化的,因此天生就很适合自监督学习。
对于节点分类任务,实现自监督学习的方法通常有两种。一是强制使用相邻节点之间的相似性,二是基于邻近节点执行每个节点的重建。
首先,我们来看第一种方法,这种方法由 GraphSAGE 引入,其基本思想是强制每个节点与其邻近节点有相似的表征。在这种情况下,设 h_u 为 h_v 的邻近节点,则我们的目标是最大化它们的内积。我们称这些邻近节点为正例样本。然后,我们最小化 h_v 与通过负采样得到的其它节点之间的相似性,这些节点通常是从整个图均匀采样的。这样,我们就可以使用反向传播来训练 GNN 的参数了。
至于第二种方法,来自 Durán & Niepert 提出的 EP-B,其首先会计算邻近节点的表征的聚合。目标是最小化重建的结果与真实表征之间的距离。与此同时,又最大化这个聚合表征与其它节点的表征之间的距离。
EP-B 和 GraphSAGE 的主要区别是 EP-B 强制使用了邻近节点和每个其它节点的聚合之间的相似性,而 GraphSAGE 则直接强制使用了邻近节点与每个节点的相似性。
在图分类方面又有哪些方法呢?
我们要介绍的第一种方法是 N-Gram Graph。该方法分为两个阶段:节点表征阶段和图表征阶段。节点表征阶段使用了一种传统的自监督式节点嵌入方法 CBoW 来学习节点表征。在第二个阶段,由于已有节点表征,则首先会为每条长度为 n 的路径计算表征,称为 n-gram 路径。这个路径表征是以该路径中每个节点的表征的积形式得到的。因此,它们将历经图中所有的 n-gram 路径并归总所有路径的表征。最终的图表征是通过将 1-gram 到 T-gram 的路径连接起来而得到的。
事实上,这样的计算就等于没有训练的 GNN。N-Gram Graph 的训练无需任何监督。
另一种用于图分类的方法是 PreGNN,它同样分为两个阶段:第一个阶段是执行节点表征(但使用了两种全新方法),第二阶段是使用简单的读出基于所有节点获取图层面的表征。但它是通过一种监督式策略交叉熵来训练图层面的表征。该研究指出,节点层面和图层面的训练对最终性能而言都很重要。
因为其第二个阶段很普通,所以我们只解读一下第一个阶段。
在这一阶段,PreGNN 提出了两种损失函数。周围结构预测(context prediction)是强制节点表征与其周围结构相似。另外我们还执行负采样来最小化 h_v 与其它节点的周围结构之间的相似性。这个方法的思路很简单:每个节点周围的结构定义了该节点的局部拓扑结构。
另一个损失则是属性掩码(attribute masking)。这个损失的设计灵感来自强大的 NLP 模型 BERT。简单来说,就是随机地使用掩码替换节点,然后构建训练损失函数来预测输入。方法很简单,但效果很好。
另一种值得一提的方法是 GCC。该方法使用了对比学习(contrastive learning)来执行图层面的无监督学习。不过 GCC 的一大主要问题是没有节点层面的训练。
总结一下,在图分类任务上,N-Gram Graph 和 PreGNN 都使用了节点层面的自监督,而 GCC 使用了图层面的自监督。那么,我们自然会问:能不能同时使用节点层面和图层面的自监督?
答案当然是肯定的。这就要谈到腾讯 AI Lab 研究团队提出的 GROVER 了。
GROVER 同样分为两个阶段。在节点阶段,我们还同时考虑了边,但为了说明简单,这里仅讨论节点表征过程。在这一阶段,首先为每个节点提取一个词典池。我们称之为 key。然后我们像 BERT 一样为每个节点加掩码,然后预测每个节点周围的局部结构。如果局部结构与词典中的一个 key 匹配,则在该维度上输出 1,否则便输出 0。注意这是一个多标签分类问题,因为每个节点的局部结构通常有多个。这样,我们仅需要一类掩码就能做到 PreGNN 的两件事。
然后在图阶段,预测是相似的。我们也首先提取 graph motif,其由典型的官能团(比如苯环)构成。然后我们使用 GNN 获取每个图的输出。使用该输出,我们将预测这个图是否包含这些 graph motif。注意这也是一个多标签分类问题。
除此之外,腾讯 AI Lab 还在该研究中提出了一种类似 Transformer 的强大 GNN 模型:GTransformer。其首先会使用一种新提出的名为 dyMPN 的 动态扩展范围MPNN 来获取每个输入图的 key、查询和值,然后会像 Transformer 一样获取最终输出结果。实验结果证明了这一模式的强大能力。
以上这些就是 GROVER 的关键组件。更进一步的,我们还实现了一个分布式的图训练框架,最终成功在1000 万个无标注分子数据上预训练带有 1 亿个参数的大模型。
使用这个预训练的模型,我们可以针对下游任务进行微调。在此基础上,GROVER 可以取得显著优于 MPNN 和 DMPNN 等传统方法的表现,同时也优于 N-Gram 和 PreGNN 等自监督方法。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。