Edge-Labeling Graph Neural Network for Few-shot Learning
摘要
在本文中,我们提出了一种新的边标签图神经网络 ,其在边标签图上采用深度学习进行小样本学习。以往用于小样本学习的图神经网络 方法基本上都是基于节点标签框架,该框架对类内相似、类间不同进行隐式建模。相反,我们提出的 学习预测图上的边标签而不是节点标签, 通过直接利用类内相似、 类间不同对边标签进行迭代更新,从而实现显式聚类。该网络不需要重新训练就能够在不同数量上的类上执行,并且很容易就可以进行 , 的参数是通过 进行 训练学习,从而得到一个对于未见过的小样本问题具有很好泛化能力的模型 。我们在两个基准数据集上进行有监督和半监督小样本图像分类任务,发现, 的性能比现有的 的性能高。
1. 介绍
最近有许多领域对 感兴趣,特别是在任务泛化问题上(比如, , , , , ),在这些元学习问题中, 的目的是基于先验知识,能够自动且有效地处理带有少量标签数据的新任务。这与传统的深度学习方法不同,传统的深度学习方法在处理任务的过程中,高度依赖大量带标签数据以及人工调整。
最近, 引起了人们的兴趣,使用 能够使用深度神经网络处理数据中的 结构。 通过消息传递迭代性地对邻居进行特征聚合,因此可以表达数据实例之间的复杂关系。由于小样本学习算法需要充分利用 与 之间的关系,所以自然可以使用 来解决小样本学习问题,最近已经提出了一些小样本学习方法,具体来讲:
1) 给定一个只有少量 的新任务, 和 提出首先创建一个图, 的所有例子与 紧密相连。输入节点使用 进行表示(比如,一个 的输出),同时给定边信息(比如,使用 对标签进行编码)。
2) 然后,通过迭代更新 的节点特征,从而对无标签的 进行分类。
等人提出基于节点特征的 ,该节点特征是通过深度神经网络得到的。在测试阶段,将整个 和 作为一个整体,使用一个常用的图参数集对 编码的标签进行迭代传播。在这里,我们需要注意的是,上述提及到的用于小样本学习的 方法主要是基于节点框架,该框架对类内相似、类间不同进行隐式建模。
相反,边标签框架能够通过表示学习和度量学习显式地执行聚类,因此,从直觉上讲,它是一个更加有利于将 扩展到现有的 。此外,它不需要预先指定聚类的数量(比如, ),然而节点标签框架必须根据聚类数分别训练模型。显式利用边标签来指明相连的两个节点是否属于同一个聚类(类别),以前在原始(超)图上进行相关性聚类,并且在引用网络或者动态系统中的 进行调整,但是从没有应用于小样本学习的图。因此,在本文中,我们提出边标签 用于解决小样本学习问题,特别是小样本分类任务。
我们提出的 由多个层组成,每一层由 ==一个节点更新块==和 ==一个边更新块== 组成,具体来讲, 是跨层的,它不仅对节点特征进行更新,还显式地调整边特征,边特征反映了相连两个节点对的边标签,并且直接利用了类内相似和类间不同。如图 所示,在更新大量 和 之后,可以从最后的边特征得到边标签预测。然后通过计算边损失来对 的参数进行更新,在这个过程中,使用的策略是著名的 :。 能够执行一次 用来预测所有的 ,这说明当提供少量带标签训练样本的时候,在大多数情况下 能够得到更加可靠的预测,此外, 中的边标签框架能够在不 或者 的情况下处理不同的类。我们在两个基准的小样本图像分类数据集上的实验结果表明,无论是在监督还是半监督的情况下, 都比现有的 方法在内的小样本学习算法的效果更好。
我们的主要贡献如下:
- 首次提出使用 用来解决小样本学习问题,方式是利用类内相似、类间不同对边标签进行迭代更新。在不进行重新训练的情况下,它也能够很好地适用于执行不同的类。
- 网络由若干层组成,每一层由节点更新块和边更新块组成,在 框架中对相应的参数进行估计。
- 使用 来研究 或者 。
- 在两个基准数据集上进行监督小样本图像分类和半监督小样本图像分类任务。我们提出的 比现有的 性能上有显著提升。此外,进行 说明显式聚类和单独使用类内相似、类间不同的好处。
2. 相关工作
图神经网络
:最初提出的 是以 的形式直接用于处理图结构数据。 等人进一步利用 和现代优化方法对其进行扩展。 主要是使用邻域聚合框架进行表示学习,通过 和 邻居节点特征来计算节点特征。还可以使用基于 的传播规则对图进行处理,其中 和 等人将该规则用于带有 的图数据的半监督学习。还提出了一些方法,这些方法将 用于 ,并且这些方法是基于节点标签框架。
边标签图
: 是一种图划分算法,它通过同时最大化类内相似和类间不同来对边标签进行推断。 和 考虑使用一个框架,这个框架在 中使用结构化 进行 聚类和新文章聚类。 推导出了一个 公式,该公式可以用于学习 的边缘分数,从而得到单个图像的两个不同的分割。 引入 用于自然语言任务,其考虑了多种边类型和几种图转换操作,图转换操作包括节点状态更新、节点状态传播和边更新。
小样本学习
:基于表示学习的图像分类是目前比较流行的方法,它根据表示之间的相似性使用最近邻进行预测。相似性可以是简单的距离函数(比如, 距离或者 距离)。连体网络使用可训练的带权 距离两两配对的方式进行工作。匹配网络进一步使用注意力机制来推导可微的最近邻分类器。原型网络通过定义每个类的嵌入 的均值作为原型。 引入 使用大规模的辅助标记数据集来提取 ,说明好的表示对于提升小样本图像分类的性能是有帮助的。
一个学习优化模型参数的 在任务之间提取一些 ,从而利用在小样本学习环境下。 使用 作为模型更新器,并且将模型参数看成是其隐状态。通过读取少量的样本就可以学习参数的初始值并且对参数进行更新。 只学习参数的初始值,并且简单地使用 ,它是一种与模型无关的方法,适合于监督学习任务和强化学习任务。 与 相似,但是只使用一阶导数。另外一个通用的 , 是时间卷积和软注意力的一种新的结合,可以学习最佳的学习策略。
3. 方法
在这一节,我们介绍了小样本分类任务的定义,并且对所提出的算法进行了详细的描述。
3.1 问题定义:小样本分类
小样本分类的目的是,在每个类只有少量训练样本的情况下学习出一个分类器,因此,每个小样本分类任务 中包含 、它是一个带标签的 对的标签集,还有一个 ,一个不带标签的集合,也是分类器需要进行分类的对象。如果 中含有 个不同类别,并且每个类别中有 个带标签的样本,那么该问题可以定义为 分类问题。
最近, 已经成为了解决小样本分类的标准方法,在原则上,我们可以训练一个分类器,在任务中只有 的情况下,该分类器对每个 分配一个类标签。然而,每个任务中的少量带有标签的 不足以训练一个模型,这充分反映了类内和类间的变量会导致分类性能不佳。显式训练集上的 通过提取 来解决这一问题,从而能够成功地对 进行分类。
是 的一种有效的方法,该方法在许多文献中都很常用,我们采用的方法也是这种方法。给定一个相对较大的带标签的训练数据集, 的想法是对训练任务 进行采样,该任务是模仿测试任务中的小样本学习设置。在这里,由于训练任务的分布与测试任务的分布相似,因此可以通过在训练任务上学习到一个模型,该模型能够提升测试任务的性能。
具体来讲,在 中,训练任务和测试任务都是 问题,表达形式如下所示:
,其中 ,,在这里, 是 的个数,并且 分别表示第 个输入数据及其标签, 表示训练数据集或者测试数据集中所有类别的集合。即使训练数据集和测试数据集都是从同一分布中进行采样得到的,但是他们的标签空间是互斥的,即 。
在每个 中 作为带标签的数据集,然后使用此数据集来训练模型,训练的方式是通过最小化预测值与 之间的损失。该训练过程是通过迭代执行 直到收敛。
最后,如果 个样本中有一部分是没有标签的,那么称该问题为半监督小样本分类,在第 节中,我们的算法在半监督设置上的结果不错。
3.2 模型
在这一节我们将对我们提出的用于小样本学习的 模型进行讲解。如图 所示,给定目标任务的所有样本的特征表示(该特征表示是从联合训练的 中提取出来的):
首先构造一个全连通图,其中一个节点代表一个样本,一条边代表相连节点之间的关系类型;
不妨定义 为由任务 中的样本构造出来的图,其中 表示节点集, 表示边集。
不妨令 表示 节点特征, 表示 的边特征。
不妨令 表示任务 的所有的样本数。
边标签 的真实值使用真实的节点标签进行定义:
边特征 是一个二维向量,代表相连节点类内和类间关系的标准化强度,因此能够分别利用类内相似,类间不同。
节点特征是通过卷积嵌入网络 的输出进行初始化的,其中 表示相应的参数集(见图 )
边特征的初始化方式如下:
其中 表示
我们使用 层的 来处理图, 中用于 的前向传播是通过层之间节点和边的迭代更新得到的。
详细来讲,给定来自于 层的节点 和边 。
首先通过邻居聚合操作执行
节点特征更新
:按比例通过聚合其余节点特征以及边特征来对第 层的节点特征 进行更新;然后执行特征变换;
将第 层的节点特征 用于相应邻接节点的贡献度。比如以下的注意力机制:
其中 ,并且 表示节点的特征转换网络(如图 所示),该网络的参数为 。需要注意的是,除了传统的 类内聚合
之外,我们还考虑了 类间聚合
。类内聚合
是对相似邻居的目标节点信息进行聚合,类间聚合
是对不相似邻居的信息进行聚合。
然后,边特征是通过新更新的节点特征进行更新的(即依赖于节点特征)。再次得到每对节点之间的(相似)相异性,然后结合之前的边特征值和更新后的(相似)相异性来对边特征进行更新。公式表示如下所示:
其中 表示一个度量网络,该度量网络(见图 )用来计算参数集 之间的相似分数,具体来讲,节点特征流向边,边特征向量中的每个元素根据归一化的类内相似和类间不同进行单独更新,即在边更新过程中,不仅仅考虑了相应节点对之间的关系,还有其余节点对之间的关系。我们选择使用两个独立的度量网络来计算相似性和相异性(使用 来替代 )。
在更新完 个可选节点和边特征更新之后,我们可以根据最终的边特征得到边标签预测,即 ,并且 ,可以将其看成是两个节点 来自同一类别的概率。因此,每个节点 可以通过对 进行简单的 来进行分类。节点 的预测概率的计算公式为:,并且 的表达形式如下:
其中 是 ,表达公式如下
节点分类的另外一种方法是使用 ;整个图 可以首先通过边预测和通过线性编程得到的有效划分进行优化,从而形成聚类(the entire graph G can be first partitioned into clusters, using the edge prediction and an optimization for valid partitioning via linear programming )。然后每个聚类可以使用最多的 进行标记。但是在本文中,我们只应用等式 得到了分类结果。在测试阶段的 推导算法如算法 所示:
表中的 推导表示 或者是一个一个执行 。而 推导是对一张图中的所有的 进行分类。
3.3 训练
给定M个训练任务 ,在 训练期间的某个迭代中, 中的参数 以端到端方式进行训练,目的是最小化下面的损失函数:
其中 是第 层第 个任务的所有真实值查询边标签的集合, 是第 层第 个任务的所有真实值查询边预测的集合,并且边损失 是通过 进行定义的。边预测结果不仅可以通过最后一层得到,还可以通过其他的层得到,所以 结合了所有层中的产生的计算损失,提升较低层的 。
4. 实验
我们与两个小样本学习基准(即 和 )的 方法进行评估和比较我们的 。
4.1 数据集
miniInageNet
:它是最流行的小样本学习基准,其来源于原始的 数据集。所有的图像都是 色彩,大小为 像素,从 个不同的类别中进行采样,每个类别有 个样本,我们对数据集的划分方式为: 类用于训练集, 类用于验证集, 类用于测试集。
tieredImageNet
:与 数据集相似,它也是 的子集,相比于 ,该数据集(超过 张图像)有更多的类别( 个类别)。最重要的是,与 数据集不同, 采取分层类别结构,其中 个类中的每一个类属于从 的高级节点中采样的 个高级类别中的一类,每一个高级类别含有 个类别,数据集的划分方式为: 类作为训练类别 个类别; 验证类别 个类别; 测试类别 个类别。每一个类别的样本数平均为 。
4.2 实验设置
网络架构
:对于 模块,使用一个 ,该 由四个块组成,和大多数小样本学习模型差不多,我们没有使用 。具体来讲,每个卷积块的组成分别为:一个 的卷积层、一个 、一个 激活。 中使用的所有网络架构如图 所示。
评估
:对于这两个数据集,我们进行了 实验,这是标准的小样本学习设置之一。为了进行评估,每个测试集都是对 个类别随机取出 个 ,并且使用在 上随机生成的 个 取均值从而得到性能。特别是,我们还在 上面进行了更具挑战性的 实验,进而显示出我们的 模型在 和 阶段不同的情况下的灵活性,这将在 中进行展示。
训练
: 我们使用初始学习率为 、权值衰减为 的 对模型进行训练,用于 过程中的 实验使用的 为 ,用于 实验使用的 为 ,对于 ,我们每 个 对学习率进行减半处理,而对于 ,我们每 个 对学习率进行减半处理,因为该数据集是更大的,并且需要更多的 才能达到收敛。我们的代码是使用 在 上进行实现的。
4.3 小样本分类
在表 和表 中,将 模型和几个 模型在小样本分类的性能上作了比较。这这里,所有的模型都根据 的不同分为了三组: 表示 , 表示 ,即所有的 同时进行处理和预测, 表示使用 而不是 。这可以看成是在测试阶段的一种 。
提出的 在 和 设置下进行测试,如表 所示, 在 下的 设置、 和 设置下取得了最好的性能。值得注意的是, 的性能好于 ,这说明了边标签框架对于小样本学习的有效性。此外, 在两个数据集上都优于第二好的方法 ,特别是在 数据集上的效果更好。表 显示出,相比于 设置,在 的 有了最好的性能以及较大的改进,在 网络中,使用 ,只基于节点特征相似度将 的标签传递到 上,因此 是仅仅通过 相似性与彼此进行消息传递。相反,我们提出的 不仅可以传播查询节点的特征,还可以传播具有不同参数集的图层之间的边标签信息,从而能够考虑到 之间的复杂交互。此外, 的节点特征是固定的,并且在标签传播过程中是不变的,从而能够得到一个封闭式、单步标签传播的公式。在我们的 中,节点特征和边特征都是动态变化的,并且能够在进行几次更新之后逐渐适应新的任务。
4.4 半监督小样本分类
对于半监督实验,在 设置下, 只有部分 有标签,带标签的样本在类别之间是均衡的,即所有的类别都有相同数量的带标签样本和无标签样本,在 得到的结果如表 所示:
其中 表示仅仅使用带有标签的样本进行学习, 表示半监督设置【部分样本没有标签】,当只有 的 有标签时,给出了不同的结果,并且我们将提出的 和 进行了比较,结果如表 所示,正如表 所示一样,与 想比,半监督学习在各个设置下性能都要好。需要注意的是,在半监督学习中,特别是在带标签的样本很少的情况下, 的性能远远优于先前的 。 在 下 ,性能更好。简单来说,与 相比,无论是在 或者 中, 能够从无标签数据中提取到更多的信息。
4.5
边标签 是一个深层架构,该架构中含有几个节点更新层和边更新层。因此,随着模型越来越深,层数越来越多,任务样本之间的 传播会更加密集,这使得结果更好。为了支撑这个观点,我们比较了不同层数的 在小样本学习上的性能,结果如表 所示,随着 层数的增加,性能越来越好,特别是从一层变成两层之后,性能有一个大的跳跃 ,在三层的时候,只有一点点额外增益 。
的另外一个关键要素是在 过程中分别利用类内相似和类间不同。为了验证该方法的有效性,我们进行了仅仅使用类内聚合的实验,并且将结果与使用两种聚合得到的结果进行了比较,最终结果如表 所示,对于所有的 层,使用单独的类内聚合能够明显提升性能。
还需要注意的是,与之前的 相比,我们提出的 能够更加有效地解决任意 设置下的小样本问题,特别是 和 过程中样本类别数不同的情况下。为了验证这个说法,我们使用 执行了 实验,结果如表 所示,在这里,模型在 设置下进行训练,在 设置下进行测试,反之亦然。有趣的是,两种 的方式得到的结果与 设置下得到的结果是相似的。因此,我们能够观察到,在不进行重新训练模型的情况下, 能够成功地扩展到不同的小样本设置。而之前的 是不同应用于 设置中的,因为模型的大小和参数取决于 的数目。
图 显示了 和 的节点特征的 可视化,在第一层传播之后, 在 中表现出好的聚类效果,然而, 被严重聚类在一起了,并且根据每个标签, 和 他们的 不会靠近,特别是在具有更多层的传播中,这就意味着 中的最后一个全连接层在 中扮演着很多角色。相反,在 中,随着层的传播,如果标签不同, 和 都会被拉开,同时,同样标签的 和 可以靠近。
为了进一步分析,在图 中,显示了 是如何传播信息的,从初始特征开始 (所有 的边特征都初始化为 ),边特征最终演变成类似于真实标签的标签,因为它通过了几个 层。
5. 结论
这项工作解决了小样本学习问题,特别是小样本分类任务。我们提出 的目的是通过迭代更新边标签来推断 与 之间的关联。在 的过程中,通过具有不同参数集的图层,显示利用类内相似、类间不同来对 和 特征进行更新。 并且将最终的边预测结果作为边标签预测。使用边标签损失来对 的 中的参数进行更新,实验结果也表明,无论是在有监督小样本分类还是半监督小样本分类任务上, 的性能优于其余的小样本算法。并且我们提出的框架能够适用于各种 任务。对于未来的工作,我们可以考虑另外一种训练损失,该损失是与 是相关的。另外一个方式是图稀疏化(比如构建 ),这使得我们的算法对于大样本具有扩展性。