A Meta-Learning Approach for Graph Representation Learning in Multi-Task Settings

https://arxiv.org/pdf/2012.06755

https://github.com/DavideBuffelli/SAME

A Meta-Learning Approach for Graph Representation Learning in Multi-Task Settings,2020,NIPS workshop

总结:本文是2020年NIPS workshop上分享的一篇文章,角度很新颖,跳出了用元学习解决小样本问题这个圈子,利用元学习跨任务学习这一特性,来解决多任务图学习问题。文章算法很简单,基本和MAML模型完全一致,但是切入角度值得借鉴。

1.简介

1.1 摘要

Graph Neural Networks (GNNs) are a framework for graph representation learning, where a model learns to generate low dimensional node embeddings that encapsulate structural and feature-related information. GNNs are usually trained in an end-to-end fashion, leading to highly specialized node embeddings. However, generating node embeddings that can be used to perform multiple tasks (with performance comparable to single-task models) is an open problem. We propose a novel meta-learning strategy capable of producing multi-task node embeddings. Our method avoids the difficulties a rising when learning to perform multiple tasks concurrently by, instead, learning to quickly (i.e. with a few steps of gradient descent) adapt to multiple tasks singularly. We show that the embeddings produced by our method can be used to perform multiple tasks with comparable or higher performance than classically trained models. Our method is model-agnostic and task-agnostic, thus applicable to a wide variety of multi-task domains.

GNNs是图表示学习中非常重要的框架之一,图表示学习通过同时捕捉结构和特征信息,为节点生成低维节点嵌入。GNNs通常采用端到端的训练方式,导致生成的节点嵌入过于specialized(即不够泛化,比如只能用于节点分类或者链路预测,不能两者兼顾)。但是,生成可用于多种任务(与单任务模型具有可比性)的节点嵌入任然是一个开放的问题。我们提出了一种新的元学习策略,可以生成用于多任务的节点嵌入。我们的方法避免了同时学习多个任务时产生的困难,通过学习可以快速(即只需少量梯度步骤)适应多个任务。和传统方法相比,我们的方法生成的嵌入可以用于多个任务中,并取得相当的或者更好的性能。我们的方法是模型无关以及任务无关的,因此可以广泛用于各种多任务领域。

1.2 本文工作

背景: GNNs作为图学习中非常重要的深度模型之一,得到了很多研究。图学习中研究最多的三个任务是:节点分类、链路预测和图分类。现有的GNNs大多都是围绕节点表示学习,并且遵循同样地架构模式:encoder-decoder结构。encoder部分学习低维的节点嵌入,decoder部分利用节点嵌入执行下游任务。

动机: 大多数GNNs模型都采用端到端方式训练,得到的节点嵌入都是高度specialized,无法同时用于多个不同的任务。

如图1所示,如果将某个任务中学习到的节点嵌入迁移到其他任务中,会导致模型性能下降。但是在实际应用中,许多机器学模型都是在资源受限的环境中使用,这种环境下不同任务之间参数是十分重要的。

本文工作: 本文作者基于元学习,具体来说基于MAML,提出了一种新的 modelagnosticmodel-agnostic and taskagnostictask-agnostic 多任务学习模型,只需要少量的梯度下降就能将模型迁移到新的任务中,并取得比较好的效果。

2. 方法

下面主要从三个部分介绍作者提出的方法:(1)Episode Design(Episode,元学习里面的一个概念,可以理解成和batch类似的一个东西);(2)Model Architecture Design;(3)Meta-Training Design。

一、Episode设计

如图2a所示,作者定义multi-task episode Ei(m)p(E(m))\mathcal E_i^{(m)}\sim p(\mathcal E^{(m)})为一个三元组:Ei(m)=(LEi(m),SEi(m),TEi(m))\mathcal{E}_{i}^{(m)}=\left(\mathcal{L}_{\mathcal{E}_{i}}^{(m)}, \mathcal{S}_{\mathcal{E}_{i}}^{(m)}, \mathcal{T}_{\mathcal{E}_{i}}^{(m)}\right),并且有:

LEi(m)=λ(GC)LEi(GC)+λ(NC)LEi(NC)+λ(LP)LEi(LP)SEi(m)={SEi(GC),SEi(NC),SEi(LP)},TEi(m)={TEi(GC),TEi(NC),TEi(LP)}\begin{array}{l} \mathcal{L}_{\mathcal{E}_{i}}^{(m)}=\lambda^{(G C)} \mathcal{L}_{\mathcal{E}_{i}}^{(\mathrm{GC})}+\lambda^{(N C)} \mathcal{L}_{\mathcal{E}_{i}}^{(\mathrm{NC})}+\lambda^{(L P)} \mathcal{L}_{\mathcal{E}_{i}}^{(\mathrm{LP})} \\ \mathcal{S}_{\mathcal{E}_{i}}^{(m)}=\left\{\mathcal{S}_{\mathcal{E}_{i}}^{(\mathrm{GC})}, \mathcal{S}_{\mathcal{E}_{i}}^{(\mathrm{NC})}, \mathcal{S}_{\mathcal{E}_{i}}^{(\mathrm{LP})}\right\}, \quad \mathcal{T}_{\mathcal{E}_{i}}^{(m)}=\left\{\mathcal{T}_{\mathcal{E}_{i}}^{(\mathrm{GC})}, \mathcal{T}_{\mathcal{E}_{i}}^{(\mathrm{NC})}, \mathcal{T}_{\mathcal{E}_{i}}^{(\mathrm{LP})}\right\} \end{array}

其中λ()\lambda^(·)为平衡系数,LEi(m)\mathcal L^{(m)}_{\mathcal E_i}表示内循环中损失函数,SEi(m)\mathcal S_{\mathcal E_i}^{(m)}TEi(m)\mathcal T_{\mathcal E_i}^{(m)}表示支持集和查询集。这样模型的meta-objective定义为:

Lmeta (m)=Ei(m)p(E(m))λ(GC)LEi(GC)+λ(NC)LEi(NC)+λ(LP)LEi(LP)\mathcal{L}_{\text {meta }}^{(m)}=\sum_{\mathcal{E}_{i}^{(m)} \sim p\left(\mathcal{E}^{(m)}\right)} \lambda^{(G C)} \mathcal{L}_{\mathcal{E}_{i}}^{(\mathrm{GC})}+\lambda^{(N C)} \mathcal{L}_{\mathcal{E}_{i}}^{(\mathrm{NC})}+\lambda^{(L P)} \mathcal{L}_{\mathcal{E}_{i}}^{(\mathrm{LP})}

注:这里和MAML中episode的设计基本没变,只不过MAML的S\mathcal ST\mathcal T中包含的是同一类型任务。

二、模型架构设计

采用一个多头架构的encoder-decoder模型,骨架采用3层GCN,decoder由3个头组成(分别对应三个任务):

  • 节点分类头:一个带Softmax的单层神经网络。
  • 图分类头:首先有一个单层神经网络对捡点钱如作线性转换,然后跟一个ReLU激活操作,再将所有节点嵌入做平均后传入最终带有softmax的单层神经网络。
  • 链路预测头:一个带ReLu的单层神经网络对节点嵌入做转换,然后用另一个单层神经网络以两个节点嵌入为输入,输出这两个节点之间存在边的概率。

三、元训练设计

和MAML的训练方式基本一样,下图展示了本文模型的伪代码:

对比下图MAML算法伪代码,作者基本没有做改动,采用二次梯度更新来学习,内循环称之为Adaptation,外循环称之为Updation:

整个模型参数θ\theta可以分成四部分:θGCN\theta_{GCN}θNC\theta_{NC}θGC\theta_{GC}θLP\theta_{LP}。作者将模型命名成SAME(Single-Task Adaptation for Multi-Task Embeddings),如图2b、c两部分所示,SAME有两种变体:

  • implicit SAME(iSAME):adaptation阶段(内循环),所有参数θ\theta都参与更新。
  • explicit SAME(eSAME):adaptation阶段只更新θNC\theta_{NC}θGC\theta_{GC}θLP\theta_{LP}三个参数,θGCN\theta_{GCN}不更新。

3. 实验

主要回答下列4个问题:

  1. iSAME和eSAME在单任务设定下能不能有好的表现?

Cl表示用传统模型监督模型,iSAME和eSAME表示用作者的方法生成的embedding训练线性分类器。可以看到三者在不同任务、不同数据集上的表现基本一致。

  1. iSAME和eSAME在多任务设定下表现如何?

第一行表示用于单个任务的传统有监督模型;第二行表示在三个任务上训练好模型后,两个任务上微调;第三、四行分别表示iSAME和eSAME策略。

可以看到直接采用微调的方式实现多任务学习是不可行的(其他很多论文中的实验也反映了这一点),效果比传统方法和SAME方法都差。作者提出的SAME方法在大部分设定下取得的性能都和传统方法具有可比性,50%场景下还取得了由于传统方法的性能。

  1. iSAME和eSASME是否真的提取到了传统多任务模型无法捕获的信息?

从上图可以看出,将模型从任意两种任务迁移到第三种训练时没见过的任务上,作者提出SAME策略都取得了更好的表现。

  1. 和传统多任务模型相比,iSAME和eSAME能否取得有竞争力或者更好的表现?

    Cl表示传统多任务模型,FT表示微调,Δm\Delta_m表示和单任务相比,多任务模型性能的变化情况。可以看到作者提出的SAME策略大部分场景下都是优于传统多任务模型的。

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2021-2022 Yin Peng
  • 引擎: Hexo   |  主题:修改自 Ayer
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信