《Edge-Labeling Graph Neural Network for Few-shot Learning》翻译

Edge-Labeling Graph Neural Network for Few-shot Learning

摘要

​ 在本文中,我们提出了一种新的边标签图神经网络 (EGNN),其在边标签图上采用深度学习进行小样本学习。以往用于小样本学习的图神经网络 (GNN) 方法基本上都是基于节点标签框架,该框架对类内相似、类间不同进行隐式建模。相反,我们提出的 EGNN 学习预测图上的边标签而不是节点标签, 通过直接利用类内相似、 类间不同对边标签进行迭代更新,从而实现显式聚类。该网络不需要重新训练就能够在不同数量上的类上执行,并且很容易就可以进行 transductive \ inferenceEGNN 的参数是通过 edge-labeling\ loss 进行 episode 训练学习,从而得到一个对于未见过的小样本问题具有很好泛化能力的模型 (well-generalizable\ model)。我们在两个基准数据集上进行有监督和半监督小样本图像分类任务,发现,EGNN 的性能比现有的 GNNs 的性能高。


1. 介绍

​ 最近有许多领域对 Meta-Learning 感兴趣,特别是在任务泛化问题上(比如,few-shot\ learning , learn-to-learn, non-stationary, reinforcement\ learning, and\ continual\ learning),在这些元学习问题中,Few-shot\ Learning 的目的是基于先验知识,能够自动且有效地处理带有少量标签数据的新任务。这与传统的深度学习方法不同,传统的深度学习方法在处理任务的过程中,高度依赖大量带标签数据以及人工调整。

​ 最近,GNNs 引起了人们的兴趣,使用 GNNs 能够使用深度神经网络处理数据中的 rich\ relation 结构。GNNs 通过消息传递迭代性地对邻居进行特征聚合,因此可以表达数据实例之间的复杂关系。由于小样本学习算法需要充分利用 a\ support\ seta\ query\ set 之间的关系,所以自然可以使用 GNN 来解决小样本学习问题,最近已经提出了一些小样本学习方法,具体来讲:

​ 1) 给定一个只有少量 support\ set 的新任务,GarciaBruna 提出首先创建一个图,support\ set 的所有例子与 a\ query 紧密相连。输入节点使用 embedding\ feature 进行表示(比如,一个 CNN 的输出),同时给定边信息(比如,使用one-hot 对标签进行编码)。

​ 2) 然后,通过迭代更新 neighborhood\ aggregation 的节点特征,从而对无标签的 query 进行分类。

Liu 等人提出基于节点特征的 transductive\ propagation\ network\ (TPN) ,该节点特征是通过深度神经网络得到的。在测试阶段,将整个 support\ instancequery\ instance 作为一个整体,使用一个常用的图参数集对 one-hot 编码的标签进行迭代传播。在这里,我们需要注意的是,上述提及到的用于小样本学习的 GNN 方法主要是基于节点框架,该框架对类内相似、类间不同进行隐式建模。

​ 相反,边标签框架能够通过表示学习和度量学习显式地执行聚类,因此,从直觉上讲,它是一个更加有利于将 query\ association 扩展到现有的 support\ clusters。此外,它不需要预先指定聚类的数量(比如,class- cardinality or\ ways),然而节点标签框架必须根据聚类数分别训练模型。显式利用边标签来指明相连的两个节点是否属于同一个聚类(类别),以前在原始(超)图上进行相关性聚类,并且在引用网络或者动态系统中的 GNN 进行调整,但是从没有应用于小样本学习的图。因此,在本文中,我们提出边标签 GNN (EGNN) 用于解决小样本学习问题,特别是小样本分类任务。

​ 我们提出的 EGNN 由多个层组成,每一层由 ==一个节点更新块==和 ==一个边更新块== 组成,具体来讲,EGNN 是跨层的,它不仅对节点特征进行更新,还显式地调整边特征,边特征反映了相连两个节点对的边标签,并且直接利用了类内相似和类间不同。如图 1 所示,在更新大量 alternative\ nodealternative\ edge 之后,可以从最后的边特征得到边标签预测。然后通过计算边损失来对 EGNN 的参数进行更新,在这个过程中,使用的策略是著名的 Meta-Learningepisode\ trainingEGNN 能够执行一次 transductive\ inference 用来预测所有的 query\ samples,这说明当提供少量带标签训练样本的时候,在大多数情况下 EGNN 能够得到更加可靠的预测,此外,EGNN 中的边标签框架能够在不 remodeling 或者 retraining 的情况下处理不同的类。我们在两个基准的小样本图像分类数据集上的实验结果表明,无论是在监督还是半监督的情况下,EGNN 都比现有的 GNNs 方法在内的小样本学习算法的效果更好。

图1 用于小样本学习边标签的 EGNN 中的节点和边的迭代更新

​ 我们的主要贡献如下:

  1. 首次提出使用 EGNN 用来解决小样本学习问题,方式是利用类内相似、类间不同对边标签进行迭代更新。在不进行重新训练的情况下,它也能够很好地适用于执行不同的类。
  2. 网络由若干层组成,每一层由节点更新块和边更新块组成,在 episode\ training 框架中对相应的参数进行估计。
  3. 使用 EGNN 来研究 transductive\ inference 或者 non-transductive\ inference
  4. 在两个基准数据集上进行监督小样本图像分类和半监督小样本图像分类任务。我们提出的 EGNN 比现有的 GNNs 性能上有显著提升。此外,进行 ablation\ experiments 说明显式聚类和单独使用类内相似、类间不同的好处。

2. 相关工作

图神经网络:最初提出的 GNN 是以 RNN 的形式直接用于处理图结构数据。Li 等人进一步利用 GRU 和现代优化方法对其进行扩展。GNN 主要是使用邻域聚合框架进行表示学习,通过 Recursively\ aggregationtransform 邻居节点特征来计算节点特征。还可以使用基于 Generalized\ convolution 的传播规则对图进行处理,其中 KipsWelling 等人将该规则用于带有 scalability 的图数据的半监督学习。还提出了一些方法,这些方法将 GNN 用于 FSL ,并且这些方法是基于节点标签框架。

边标签图Correlation\ clustering,\ (CC) 是一种图划分算法,它通过同时最大化类内相似和类间不同来对边标签进行推断。FinleyJoachims 考虑使用一个框架,这个框架在 CC 中使用结构化 SVM 进行 noun- phrase 聚类和新文章聚类。Taskar 推导出了一个 max-margin 公式,该公式可以用于学习 CC 的边缘分数,从而得到单个图像的两个不同的分割。Johnson 引入 Gated\ Graph\ Transformer\ Neural\ Network(GGT-NN) 用于自然语言任务,其考虑了多种边类型和几种图转换操作,图转换操作包括节点状态更新、节点状态传播和边更新。

小样本学习:基于表示学习的图像分类是目前比较流行的方法,它根据表示之间的相似性使用最近邻进行预测。相似性可以是简单的距离函数(比如,cosine 距离或者 Euclidean 距离)。连体网络使用可训练的带权 L_1 距离两两配对的方式进行工作。匹配网络进一步使用注意力机制来推导可微的最近邻分类器。原型网络通过定义每个类的嵌入 support\ examples 的均值作为原型。DEML 引入 concept\ learner 使用大规模的辅助标记数据集来提取 high-level\ concept,说明好的表示对于提升小样本图像分类的性能是有帮助的。

​ 一个学习优化模型参数的 meta-learner 在任务之间提取一些 transferable\ knowledge,从而利用在小样本学习环境下。Meta-LSTM 使用 LSTM 作为模型更新器,并且将模型参数看成是其隐状态。通过读取少量的样本就可以学习参数的初始值并且对参数进行更新。MAML 只学习参数的初始值,并且简单地使用 SGD,它是一种与模型无关的方法,适合于监督学习任务和强化学习任务。ReptileMAML 相似,但是只使用一阶导数。另外一个通用的 meta-learnerSNAIL 是时间卷积和软注意力的一种新的结合,可以学习最佳的学习策略。


3. 方法

​ 在这一节,我们介绍了小样本分类任务的定义,并且对所提出的算法进行了详细的描述。

3.1 问题定义:小样本分类

​ 小样本分类的目的是,在每个类只有少量训练样本的情况下学习出一个分类器,因此,每个小样本分类任务 T 中包含 Support\ set,\ S 、它是一个带标签的 input-label 对的标签集,还有一个 Query\ set,\ Q,一个不带标签的集合,也是分类器需要进行分类的对象。如果 Support\ set 中含有 N 个不同类别,并且每个类别中有 K 个带标签的样本,那么该问题可以定义为 N-way\ K-shot 分类问题。

​ 最近,Meta-learning 已经成为了解决小样本分类的标准方法,在原则上,我们可以训练一个分类器,在任务中只有compact\ support\ set 的情况下,该分类器对每个 Query\ sample 分配一个类标签。然而,每个任务中的少量带有标签的 support\ samples 不足以训练一个模型,这充分反映了类内和类间的变量会导致分类性能不佳。显式训练集上的 Meta-learning 通过提取 transferable\ knowledge 来解决这一问题,从而能够成功地对 Query\ set 进行分类。

episodic\ trainingMeta-learning 的一种有效的方法,该方法在许多文献中都很常用,我们采用的方法也是这种方法。给定一个相对较大的带标签的训练数据集,episodic\ training 的想法是对训练任务 (episodes) 进行采样,该任务是模仿测试任务中的小样本学习设置。在这里,由于训练任务的分布与测试任务的分布相似,因此可以通过在训练任务上学习到一个模型,该模型能够提升测试任务的性能。

​ 具体来讲,在 episodic\ training 中,训练任务和测试任务都是 N-way\ K-shot 问题,表达形式如下所示:

  1. T\ = \ S\ \cup\ Q,其中 S\ =\ \{(x_i, y_i)\}_{i=1}^{N \times K}Q = \{(x_i, y_i)\}_{i=N \times K + 1}^{N \times K + T},在这里, Tquery\ samples 的个数,并且 x_i\ and\ y_i \in \{C_i, \cdots, C_N\} = C_T \subset C 分别表示第 i 个输入数据及其标签,C 表示训练数据集或者测试数据集中所有类别的集合。即使训练数据集和测试数据集都是从同一分布中进行采样得到的,但是他们的标签空间是互斥的,即 C_{train} \cap C_{test} = \emptyset

  2. 在每个 episodesupport\ set\ S 作为带标签的数据集,然后使用此数据集来训练模型,训练的方式是通过最小化预测值与 query\ set\ Q 之间的损失。该训练过程是通过迭代执行 episodes 直到收敛。

​ 最后,如果 N \times K 个样本中有一部分是没有标签的,那么称该问题为半监督小样本分类,在第 4 节中,我们的算法在半监督设置上的结果不错。

3.2 模型

​ 在这一节我们将对我们提出的用于小样本学习的 EGNN 模型进行讲解。如图 2 所示,给定目标任务的所有样本的特征表示(该特征表示是从联合训练的 CNN 中提取出来的):

图2 EGNN模型的整体框架。在上图的例子中,我们以 2-way 2-shot 为例子。图中蓝色和绿色的圆圈代表两种不同的类别;图中的实线节点表示带标签的 support samples,虚线节点表示无标签的 query sample。边特征的强度由正方形的颜色进行表示;虽然图中的边特征由两个维度,但是我们只有第一个维度表示相似性,详细的处理过程参考第 3.2 节
  1. 首先构造一个全连通图,其中一个节点代表一个样本,一条边代表相连节点之间的关系类型;

  2. 不妨定义 G = \{V;E;T\} 为由任务 T 中的样本构造出来的图,其中 V := \{ V_i \}_{i=1, \cdot \cdot \cdot, |T|} 表示节点集,E := \{ E_{ij} \}_{i, j = 1, \cdots \cdots, |T|} 表示边集。

  3. 不妨令 v_i 表示 V_i 节点特征,e_{ij} 表示 E_{ij} 的边特征。

  4. 不妨令 |T| = N \times K + \rm T 表示任务 T 的所有的样本数。

  5. 边标签 y_{ij} 的真实值使用真实的节点标签进行定义:
    y_{ij}= \begin{cases} 1, &if\quad y_i = y_j\\ 0, & otherwise \end{cases} \tag{1}

  6. 边特征 e_{ij} = \{ e_{ijd} \}_{d=1}^2 \in [0, 1]^2 是一个二维向量,代表相连节点类内和类间关系的标准化强度,因此能够分别利用类内相似,类间不同。

  7. 节点特征是通过卷积嵌入网络 v_i^0 = f_{emb}(x_i; \theta_{emb}) 的输出进行初始化的,其中 \theta_{emb} 表示相应的参数集(见图 3(a)

  8. 边特征的初始化方式如下:
    e_{ij}^0= \begin{cases} [1||0], &if\ y_{ij} = 1 \ \ and \ \ i, j \leq N \times K\\ [0||1], & if\ y_{ij} = 0 \ \ and \ \ i, j \leq N \times K\\ [0.5||0.5] &otherwise\\\end{cases} \tag{2}
    其中 || 表示 concatenation\ operation

​ 我们使用 L 层的 EGNN 来处理图, EGNN 中用于 inference 的前向传播是通过层之间节点和边的迭代更新得到的。

​ 详细来讲,给定来自于 l-1 层的节点 v_i^{l-1} 和边 e_{ij}^{l-1}

  1. 首先通过邻居聚合操作执行 节点特征更新:按比例通过聚合其余节点特征以及边特征来对第 l 层的节点特征 v_i^l 进行更新;

  2. 然后执行特征变换;

  3. 将第 l-1 层的节点特征 e_{ij}^{l-1} 用于相应邻接节点的贡献度。比如以下的注意力机制:
    v_i^l = f_v^l([\sum_j \widetilde{e}_{ij1}^{l-1}v_j^{l-1}||\sum_j \widetilde{e}_{ij2}^{l-1}v_j^{l-1}];\theta_v^l) \tag{3}

​ 其中 \widetilde{e}_{ijd} = \frac {e_{ijd}}{\sum_k e_{ikd}},并且 f_v^l 表示节点的特征转换网络(如图 3(b) 所示),该网络的参数为 \theta_v^l。需要注意的是,除了传统的 类内聚合 之外,我们还考虑了 类间聚合类内聚合是对相似邻居的目标节点信息进行聚合,类间聚合 是对不相似邻居的信息进行聚合。
​ 然后,边特征是通过新更新的节点特征进行更新的(即依赖于节点特征)。再次得到每对节点之间的(相似)相异性,然后结合之前的边特征值和更新后的(相似)相异性来对边特征进行更新。公式表示如下所示:
\overline{e}_{1}^= \frac {_^ (_i^, _^;\theta_^ ) _{1}^{−1}}{∑__^ (_^, _^;\theta_e^l)e_{1}^{−1})/(∑_ _{1}^{−1})} \tag{4}

\overline{e}_{2}^=\frac {(1−_^ (_^,_^;\theta_^ )) _{2}^{−1}}{∑_ (1−_^ (_^, _^; \theta_^) _{2}^{−1}/∑__{2}^{−1}} \tag{5}

_{}^=\frac {\overline{e}_{}^} {|| \overline{e}_{}^ ||_1} \tag{6}

其中 f_e^l 表示一个度量网络,该度量网络(见图 3(c) )用来计算参数集 \theta_e^l 之间的相似分数,具体来讲,节点特征流向边,边特征向量中的每个元素根据归一化的类内相似和类间不同进行单独更新,即在边更新过程中,不仅仅考虑了相应节点对之间的关系,还有其余节点对之间的关系。我们选择使用两个独立的度量网络来计算相似性和相异性(使用 f_{e, sim} 来替代 1-f_{e, sim})。

图3 EGNN 的详细网络架构。(a)嵌入网络 (b)特征(节点)转换网络 (c)度量网络

​ 在更新完 L 个可选节点和边特征更新之后,我们可以根据最终的边特征得到边标签预测,即 \widehat{y}_{ij}=e_{ij1}^L,并且 \widehat{y}_{ij} \in [0, 1],可以将其看成是两个节点 V_i, V_j 来自同一类别的概率。因此,每个节点 V_i 可以通过对 support set 进行简单的 weighted voting 来进行分类。节点 V_i 的预测概率的计算公式为:P(y_i = C_K|T) = p_i^{(k)},并且 p_i^{(k)} 的表达形式如下:
p_i^{(k)} = softmax(\sum_{\{ j:j \neq i \bigwedge (x_j, y_j) \in S\}} \widehat{y}_{ij}\delta (y_j = C_k)) \tag{7}
其中 \delta(y_i = C_k)Kronecker\ delta\ function,表达公式如下
\delta(y_i = C_k) = \begin{cases} 1, &if\ y_i = C_k\\ 0, & otherwise \end{cases} \tag{8}
节点分类的另外一种方法是使用 graph\ clustering;整个图 G 可以首先通过边预测和通过线性编程得到的有效划分进行优化,从而形成聚类(the entire graph G can be first partitioned into clusters, using the edge prediction and an optimization for valid partitioning via linear programming )。然后每个聚类可以使用最多的 support\ label 进行标记。但是在本文中,我们只应用等式 (7) 得到了分类结果。在测试阶段的 EGNN 推导算法如算法 1 所示:

算法1

表中的 non-transductive 推导表示 query\ samples\ T=1 或者是一个一个执行 query\ inference。而 transductive 推导是对一张图中的所有的 query\ samples 进行分类。

3.3 训练

​ 给定M个训练任务 \{T_m^{train}\}_{m=1}^M,在 episode 训练期间的某个迭代中,EGNN 中的参数 \theta_{emb} \cup \{ \theta_v^l, v_e^l \}_{l=1}^L 以端到端方式进行训练,目的是最小化下面的损失函数:
L = \sum_{l=1}^L \sum_{m=1}^M \lambda_l L_e (Y_{m, e}, \widehat{Y}_{m, e}^L) \tag{9}
其中 Y_{m, e} 是第 l 层第 m 个任务的所有真实值查询边标签的集合,\widehat{Y}_{m,e}^l 是第 l 层第 m 个任务的所有真实值查询边预测的集合,并且边损失 L_e 是通过 binary\ cross-entropy 进行定义的。边预测结果不仅可以通过最后一层得到,还可以通过其他的层得到,所以 all\ losses 结合了所有层中的产生的计算损失,提升较低层的 gradient\ flow


4. 实验

​ 我们与两个小样本学习基准(即 miniImageNettieredImageNet)的 sota 方法进行评估和比较我们的 EGNN

4.1 数据集

miniInageNet:它是最流行的小样本学习基准,其来源于原始的 ILSVRC-12 数据集。所有的图像都是 RGB 色彩,大小为 84 \times 84 像素,从 100 个不同的类别中进行采样,每个类别有 600 个样本,我们对数据集的划分方式为:64 类用于训练集,16 类用于验证集,20 类用于测试集。

tieredImageNet:与 miniImageNet 数据集相似,它也是 ILSVRC-12 的子集,相比于 miniImageNet,该数据集(超过 700K 张图像)有更多的类别(608 个类别)。最重要的是,与 miniImageNet 数据集不同,tieredImageNet 采取分层类别结构,其中 608 个类中的每一个类属于从 ImageNet 的高级节点中采样的 34 个高级类别中的一类,每一个高级类别含有 10 \sim 20 个类别,数据集的划分方式为:20 类作为训练类别 \rightarrow 351 个类别;6 验证类别 \rightarrow 97 个类别;8 测试类别 \rightarrow 160个类别。每一个类别的样本数平均为 1281

4.2 实验设置

网络架构:对于 feature\ embedding 模块,使用一个 CNN,该 CNN 由四个块组成,和大多数小样本学习模型差不多,我们没有使用 skip\ connections。具体来讲,每个卷积块的组成分别为:一个 3 \times 3 的卷积层、一个 batch normalization、一个 LeakyReLU 激活。EGNN 中使用的所有网络架构如图 (3) 所示。

评估:对于这两个数据集,我们进行了 5-way\ 5-shot 实验,这是标准的小样本学习设置之一。为了进行评估,每个测试集都是对 5 个类别随机取出 15queries,并且使用在 test\ set 上随机生成的 600episodes 取均值从而得到性能。特别是,我们还在 miniImageNet 上面进行了更具挑战性的 10-way 实验,进而显示出我们的 EGNN 模型在 meta-trainmeta-test 阶段不同的情况下的灵活性,这将在 4.5 中进行展示。

训练: 我们使用初始学习率为 5 \times 10^{-4} 、权值衰减为 10^{-6}Adam\ optimizer 对模型进行训练,用于 meta-training 过程中的 5-way 实验使用的 batch-size40,用于 10-way 实验使用的 batch-size20,对于 miniImageNet,我们每 15000episodes 对学习率进行减半处理,而对于 TieredImageNet ,我们每 30000episodes 对学习率进行减半处理,因为该数据集是更大的,并且需要更多的 iterations 才能达到收敛。我们的代码是使用 PytorchNVIDIA\ Tesla\ P40\ GPU 上进行实现的。

4.3 小样本分类

在表 1a 和表 1b 中,将 EGNN 模型和几个 sota 模型在小样本分类的性能上作了比较。这这里,所有的模型都根据 transductive\ settings 的不同分为了三组:No 表示 non-transductive\ methodsYes 表示 transductive methods,即所有的 queries 同时进行处理和预测,BN 表示使用 query\ batch\ statistics 而不是 global\ batch\ normalization\ parameters。这可以看成是在测试阶段的一种 transductive\ inference

​ 提出的 EGNNtransductivenon-transductive 设置下进行测试,如表 1a 所示,EGNNminiImageNet 下的 5-way 5-shot 设置、non-transductivetransductive 设置下取得了最好的性能。值得注意的是,EGNN 的性能好于 node-labeling\ GNN,这说明了边标签框架对于小样本学习的有效性。此外,EGNN + Transduction 在两个数据集上都优于第二好的方法 (TPN),特别是在 miniImageNet 数据集上的效果更好。表 1b 显示出,相比于 non-transductive 设置,在 TieredImageNettransductive\ setting 有了最好的性能以及较大的改进,在 TPN 网络中,使用 common\ Laplacial\ Martix,只基于节点特征相似度将 support\ set 的标签传递到 queries 上,因此 queries 是仅仅通过 embedding\ feature 相似性与彼此进行消息传递。相反,我们提出的 EGNN 不仅可以传播查询节点的特征,还可以传播具有不同参数集的图层之间的边标签信息,从而能够考虑到 queries 之间的复杂交互。此外,TPN 的节点特征是固定的,并且在标签传播过程中是不变的,从而能够得到一个封闭式、单步标签传播的公式。在我们的 EGNN 中,节点特征和边特征都是动态变化的,并且能够在进行几次更新之后逐渐适应新的任务。

表1 在 miniImageNet 和 TieredImageNet 的小样本分类准确度。所有的结果是 600 次 test episodes 的平均值,最高结果值进行了高亮处理

表1 在 miniImageNet 和 TieredImageNet 的小样本分类准确度。所有的结果是 600 次 test episodes 的平均值,最高结果值进行了高亮处理
4.4 半监督小样本分类

​ 对于半监督实验,在 5-way\ 5-shot 设置下, 只有部分 support\ samples 有标签,带标签的样本在类别之间是均衡的,即所有的类别都有相同数量的带标签样本和无标签样本,在 miniImageNet 得到的结果如表 2 所示:

表2 在 miniImageNet 上的半监督小样本分类准确度

其中 LabelOnly 表示仅仅使用带有标签的样本进行学习,Semi 表示半监督设置【部分样本没有标签】,当只有 20\%, 40\%, 60\%support\ samples 有标签时,给出了不同的结果,并且我们将提出的 EGNNnode- labeling\ GNN 进行了比较,结果如表 2 所示,正如表 2 所示一样,与 LabelOnly 想比,半监督学习在各个设置下性能都要好。需要注意的是,在半监督学习中,特别是在带标签的样本很少的情况下,EGNN 的性能远远优于先前的 GNN (61.88\%\ VS \ 52.45\%)。 在 transductive\ setting(EGNN-Semi(T),性能更好。简单来说,与 node-labeling\ framework 相比,无论是在 transductive\ setting 或者 non-transductive \ setting 中,EGNN 能够从无标签数据中提取到更多的信息。

4.5 Ablation\ studies

​ 边标签 GNN 是一个深层架构,该架构中含有几个节点更新层和边更新层。因此,随着模型越来越深,层数越来越多,任务样本之间的 interactions 传播会更加密集,这使得结果更好。为了支撑这个观点,我们比较了不同层数的 EGNN 在小样本学习上的性能,结果如表 3 所示,随着 EGNN 层数的增加,性能越来越好,特别是从一层变成两层之后,性能有一个大的跳跃 (67.99\% \rightarrow\ 73.19\%),在三层的时候,只有一点点额外增益 (76.37\%)

EGNN 的另外一个关键要素是在 node/edge\ updates 过程中分别利用类内相似和类间不同。为了验证该方法的有效性,我们进行了仅仅使用类内聚合的实验,并且将结果与使用两种聚合得到的结果进行了比较,最终结果如表 3 所示,对于所有的 EGNN 层,使用单独的类内聚合能够明显提升性能。

表3 在数据集 miniImageNet 上使用不同的 EGNN 层和不同特征类型的 5-way 5-shot 实验结果

​ 还需要注意的是,与之前的 node-labeling\ GNN 相比,我们提出的 edge-labeling\ framework 能够更加有效地解决任意 meta-test 设置下的小样本问题,特别是 meta-trainingmeta-test 过程中样本类别数不同的情况下。为了验证这个说法,我们使用 EGNN 执行了 cross-way 实验,结果如表 4 所示,在这里,模型在 5-way\ 5-shot 设置下进行训练,在 10-way\ 5-shot 设置下进行测试,反之亦然。有趣的是,两种 cross-way 的方式得到的结果与 matched-way 设置下得到的结果是相似的。因此,我们能够观察到,在不进行重新训练模型的情况下,EGNN 能够成功地扩展到不同的小样本设置。而之前的 node-labeing\ GNN 是不同应用于 cross-way 设置中的,因为模型的大小和参数取决于 ways 的数目。

表4 在 miniImageNet 数据集 5-shot 设置下的 cross-way 小样本学习

​ 图 4 显示了 node-labeling\ GNNEGNN 的节点特征的 t-SNE 可视化,在第一层传播之后,GNNsupport\ samples 中表现出好的聚类效果,然而,query\ samples 被严重聚类在一起了,并且根据每个标签,query samples 和 他们的 support\ smples 不会靠近,特别是在具有更多层的传播中,这就意味着 GNN 中的最后一个全连接层在 query\ classification 中扮演着很多角色。相反,在 EGNN 中,随着层的传播,如果标签不同,query samplesquery\ samples 都会被拉开,同时,同样标签的 query\ samplessupport\ samples 可以靠近。

图4 节点特征的 t-SNE 可视化,上面是 GNN,下面是 EGNN,从左到右,分别表示初始化、第一层、第二层、第三层。'x' 表示query,'o'表示 support,不同的颜色代表不同的标签

​ 为了进一步分析,在图 5 中,显示了 EGNN 是如何传播信息的,从初始特征开始 (所有 query 的边特征都初始化为 0.5),边特征最终演变成类似于真实标签的标签,因为它通过了几个 EGNN 层。

图4 节点特征的 t-SNE 可视化,上面是 GNN,下面是 EGNN,从左到右,分别表示初始化、第一层、第二层、第三层。'x' 表示query,'o'表示 support,不同的颜色代表不同的标签

5. 结论

​ 这项工作解决了小样本学习问题,特别是小样本分类任务。我们提出 EGNN 的目的是通过迭代更新边标签来推断 queryexisting\ support\ clustering 之间的关联。在 EGNN 的过程中,通过具有不同参数集的图层,显示利用类内相似、类间不同来对 alternative\ nodeedge 特征进行更新。 并且将最终的边预测结果作为边标签预测。使用边标签损失来对 episodic\ trainingEGNN 中的参数进行更新,实验结果也表明,无论是在有监督小样本分类还是半监督小样本分类任务上, EGNN 的性能优于其余的小样本算法。并且我们提出的框架能够适用于各种 meta-clustering 任务。对于未来的工作,我们可以考虑另外一种训练损失,该损失是与 valid graph clustering(such\ as\ cycle\ loss) 是相关的。另外一个方式是图稀疏化(比如构建 k-nearest\ neighbor\ graphs),这使得我们的算法对于大样本具有扩展性。

你可能感兴趣的:(《Edge-Labeling Graph Neural Network for Few-shot Learning》翻译)