Advertisement

Meta-LMTC--- Meta-Learning for Large-Scale Multi-Label Text Classification

阅读量:

本文提出了一种名为META-LMTC的多标签分类模型,旨在解决大规模多标签分类(LMTC)中的长尾分布问题。该模型通过结合元学习方法和基于优化的策略,在少样本和零样本场景下显著提升了性能。文章详细介绍了META-LMTC的设计原理、采样策略以及其在few-shot和zero-shot任务中的应用效果。实验结果表明,在多个基准数据集上,META-LMTC相较于现有方法在R@5和nDCG@5等指标上表现优异。

1. 简介:

这篇文章是2021年发表在EMNLP上的文章,在摘要部分可以看出其主要研究对象是长尾分类问题:即存在大量未标注类别(many labels have few or even no annotated samples)。
该研究中指出,在当时的背景下处理长尾分布数据所采用的方法是从先验知识角度出发进行求解(处理这类问题),也就是基于"少数样本学习"(few-shot learning)与"零样本学习"(zero-shot learning)的方法体系。
然而这种基于简单拓展 meta 学习方法以应对 LMTC 的思路存在不足——这主要是由于少数样本学习与零样本学习两种场景共存所带来的限制所致。
目前仍不清楚 meta-knowledge具体指的是什么。
研究开始就从 meta 学习的角度切入这一核心问题进行探讨。
但因为少数样本学习与零样本学习两种场景并存的存在,
仅靠对 meta 学习进行简单的拓展以应对 LMTC 任务的做法已显不够理想。
至于 meta-knowledge究竟是什么仍是一个未解之谜。
文中所介绍的 META-LMTC 模型主要包含以下两个关键组成部分:
首先该模型通过系统性地设计实例采样策略,
成功构建了具有真实性和多样性的实验任务系统;
其次该方法直接将目标函数适配于少量资源的学习过程整合到 meta 学习框架中;

在通俗易懂地阐述的基础上, 文中对 meta-LMTC 模型进行了详细分析, 并指出其显著优于众多现有模型; 同时通过与 BERT 等主流模型对比分析, 该模型展现出良好的性能.

2. META-Learning相关知识

微数据学习(Few-Shot Learning, 简称 FSL)旨在解决面对数据资源有限的情况下的神经网络性能优化问题。

初学 FSL 时,有很多概念没有弄明白,以下对这些概念做一个简单的阐释。

在功能空间学习(FSL)中,这类核心方法通常采用元学习策略进行建模。与传统神经网络的统一学习框架相比,在这种范式下不仅有统一的学习框架存在而且还有专门的元学习器来负责参数更新的任务。其中训练阶段被称为元训练(meta-training),测试阶段则称为元推理(meta-reasoning)。如图所示:

img

在 Meta 学习框架中, 原始训练数据集与测试数据集均需经过特定处理. 从上图可见, 在 Meta 训练过程中使用了两个关键的数据集合: 支持集合 S 和 查询集合 Q (它们的功能将在后续内容中详细介绍); 类似地, 在 Meta 测试过程中也将涉及同样的两类重要数据集合: 支持集合 S' 和 查询集合 Q'.

如何在原始训练集和测试集中获取这些支持集和查询集?

img

FSL 一般会划分为 N-way k-shot 问题,在其中 N 代表 Meta-testing 过程中所使用的类别数量的总和,
而 k 则代表每个类别内部所拥有的样本数量。

按照这一定义,在讨论S'与Q'生成机制时,请详细阐述其形成过程。如图所示,在原始测试数据框(Testing data)中包含了多个类别(large rectangle),这些类别可能覆盖多种不同的类型。现假设我们从这众多类别中随机选取了N个类别(randomly selected N classes),每个类别内部可能存在大量样本(each category may contain a large number of samples)。随后,在这选定的N个类别中分别进行抽样:从每个选中的类别中随机抽取k+x个样本(from each selected class, we randomly draw k+x samples, where x represents an arbitrary number but must satisfy k+x ≤ maximum sample size per category)。具体而言,在这k+x总样本中选择前k个作为支持集S'(the first k samples are designated as the support set S'),剩余x则作为查询集Q'(the remaining x samples form the query set Q')。通过上述步骤形成的两个数据集将在Meta-testing过程中发挥关键作用。

同理,在Meta-training过程中使用的两个数据集S和Q也是按照该方法生成出来的。需要注意的是,在原始Training data中我们能够自由地选择x种类别(其中x可取任意大值),这与Meta-testing时必须选择N种类别的情况不同。此外,在每个类别中我们无需强制选择k个样本作为Support set(可以选择更多或更少的数量)。查询集Query set同样也可以根据需求自由设定大小。

由此可见,Meta-learning 方法的数据集选取有以下特点:

  • 在N-way k-shot框架中, 参数N和k的取值基于Testing data,并不涉及Training数据.
  • 在通常情况下,在从N个类别中选择S'和Q'时,每次从每个类别中直接选取k+x个样本,然后将其中k个分配给S',剩余的部分分配给Q'.对于S和Q同样适用.因此,S'与Q'中的样本通常是不重叠的.

前面介绍了数据集的划分,现在来看一下具体的训练过程。

对于已经被划分为S、Q以及S'、Q'的场景集合,在Meta-learning中主要采用被称为该领域常用技术的Episodic Training方法来进行模型训练。网络的核心架构如下图所示:

考虑设置一个包含五个类别且每个类别仅有一个样例的1-shot场景,在S集合中仅包含五类样本的情况下进行实验设置。其中 backbone 被设计为一个深度卷积神经网络架构,并采用以下几种结构:4层、6层的卷积神经网络以及ResNet18、ResNet34等模型架构选择作为具体实现方案。该模块的主要功能是提取输入图片(通常是一张图像)的空间特征表示,并在此基础上完成后续分类任务。

第一步

随后将一张图片输入到backbone网络中,在其内部提取出一个1x1600维的query feature向量Z_q(这是因为Query set所处理的这张图片必定属于5个类别中的某一类别,并且每个类别都可用一个1600维向量进行表征的缘故),从而得到一个1x1600维的结果矩阵)。接着将这个query feature向量也被传递给分类器进行处理。

目前,在 classifier 中接收了两个 feature:分别是 Z_s^n(具有 5×1600 维度)和 Z_q(具有 1×1600 维度)。如何根据这两个向量进行分类?这取决于我们采用哪种分类方法。一种常见的方法是基于余弦距离来进行分类。

已知任意两个非零向量\vec{a}\vec{b}之间存在一个夹角θ,则它们的点积满足关系式\vec{a} \cdot \vec{b} = |\vec{a}||\vec{b}| \cos θ

The cosine similarity measure is equal to the cosine of the angle θ between vectors a and b, calculated as their dot product divided by the product of their magnitudes. Meanwhile, the cosine distance metric is defined as one minus the value of cos θ.

在计算两个变量(矩阵)之间的余弦距离时,在分类器中对这两个变量进行点积运算。具体而言,在分类器中,首先会对这两个变量进行点积运算以获取一个维度为5x1的结果向量:

这个过程能够有效反映两者的相似性特征,并为后续的分类决策提供依据

Z_s^n \cdot (Z_q)^T = {product\_vector}

矩阵的维度变化情况为:

[ \ 5 \times 1600 \ ] \; \cdot \; [\ 1600 \times 1 \ ] = [\ 5 \times 1 \ ]

通过将 product_vector 进行归一化处理为与 Z_s^nZ_q 的 L2 范数进行计算后得到一个 5x1 维度的 outputvector ,该 outputvector 用于衡量 Z_s^nZ_q 之间的 cosine 距离

具体而言,在分类器训练过程中,我们采用余弦相似度表征query集中的每一个样本与支持集内输入的五个候选类之间的相似程度关系。随后,在计算过程中会将每个样本实例分配到与其在支持集中最具有相似性的类别中。接着计算该实例与其真实类别标签之间的差异性损失函数值;最后通过反向传播算法更新模型参数以最小化该损失函数值的过程完成对分类器的优化训练任务。

至此算是完成了整个训练流程中的一个 episode 任务;其实从这个角度来看,在当前阶段我们所处理的一个 episode 的数据量相当于完成了一个 batch 的训练过程。

3. 引言部分

大规模多标签文本分类(LMTC)在自然语言处理领域具有广泛的实践应用价值。在LMTC任务中所涉及的概念是指将一个包含多个标签的庞大且预先定义好的多标签集合分配给每一个实例进行归属操作;与传统的多标签分类任务(MTC)相比,在LMTC中所处理的数据规模显著提升

接着指出,在LMTC任务场景下经常会出现的一种问题是长尾分布现象;这种长尾分布特征将会导致在few-shot学习以及zero-shot学习环境下面临诸多挑战;对于这些特定场景下相关标签所对应的实例信息量相对较少可能无法为模型提供足够的知识支撑。然而,在某些领域中对这些标签实现正确分类依然具有非常重要的价值

针对上述提出的few/zero-shot问题,在现有研究中已有多种解决方案被提出。其中一类方法主要通过将label中的文本转换为特征向量来获取先验标签信息;另一些则利用文本描述器为每个label生成相应的特征向量,并结合一个双层图神经网络来进一步挖掘标签空间的结构化知识;此外,在这一领域中还存在一类基于嵌入构建相似图的方法;其中特别关注了标签共现频率信息的影响。

但以往研究者所采用的方法均忽视了meta-knowledge这一关键信息。这种关键信息可通过数据集获取。但这一方法可使模型仅依赖少量样本即可提取所需知识。而meta-learning被视为一种通过数据集提取这类知识的方法。

基于元知识的元学习方法通过构建基于元学习框架的相关训练任务,在有限实例指导下的模型微调过程能够有效提升模型泛化能力;

image-20230410152719635

上图中是在META-LMTC中如何使用META-Learning的这种方法;

基于少量样本进行多类别区分的相关研究中发现,在这样的设定下开发有效的分类模型具有重要意义。为了旨在构建泛化能力更强的元学习模型,在开发高质量且多样化的训练任务方面必须保持高度的关注与重视。

  1. 但是这些在meta-learning上虽进行了简单拓展,在多标签分类中却被认为不如完美方案理想。一方面,在LMTC任务中不得不应对few-shot和zero-shot问题;现有的方法却仅限于解决few-shot问题。

  2. 第二个方面是LMTC任务经常面临数据的长尾分布现象的问题;

为了应对上述问题中META-Learning难以解决的部分,在文中提出了一种基于优化的Meta-Learning方法,并将其命名为META-LMTC。

  1. 该模型包含两个主要阶段:一个是基于元学习的方法(Meta-learning),另一个则是基于微调的策略(Fine-tuning)。

  2. 该模型引入了一种任务采样策略,在分析LMTC这一特性时,默认考虑了少样本学习与零样本学习的结合问题以及长尾分布带来的挑战。

  3. 在构建多个真实反映少样本与零样本共存情况的任务基础上,并非仅仅依赖于这些任务本身提供的数据点数量增加这一单一途径;相反地,则通过循环迭代的方式不断优化模型参数。

  4. 在微调过程中,则是将经过优化后的元模型应用到原始LMTC任务的数据集上进行进一步训练。

这篇文章的贡献点:

复制代码
 * 这是第一个从元学习的角度来审视LMTC任务的模型;

相关知识工作

复制代码
1. 

大规模多标签分类任务,

文中在这项任务中所提及的先前方法主要包括以下几类:第一类是通过人工手段将label转化为特征向量的技术;第二类是构建标签共现图的相关方法;第三类则是采用更为强大的文本编码器技术。值得注意的是,在上述几种方法中均未能充分考虑元知识的相关信息;因此,在当前研究中,基于元学习视角构建LMTC问题求解模型成为了一个重要探索方向。

复制代码
2. 

META-learning:

该Learning方式是如何定义的?它是基于有限 labeled data,在监督学习框架下通过最小化训练集上的误差函数来学习参数θ。这种设计不仅考虑了数据效率的问题,在一定程度上能够防止 overfitting。

早期的元学习主要应用于小样本学习场景,并大致上划分为三类研究方向。

基于评估指标上的元学习

基于模型的元学习

基于优化的元学习

元学习这一思想早期应用于多分类问题中的few-shot场景。如今则被扩展至多标签分类问题中。该方法称为META-LTMC算法。该方法旨在通过有限数据训练出更具泛化性的模型与few-shot学习的关注重点不同仅聚焦于新出现的类别标签;而LMTC则综合考虑了所有类别标签并整合了少量样本和无标签学习的特点。

Perliminaries

复制代码
1. 

文中对于目前的LMTC模型中的各个不同的点进行了形式化定义:

首先对标签进行分类处理将其划分为已知类别C_S与未知类别C_U这种做法旨在明确标注空间中是否存在对应实例

  • 已知标签包括常见频率出现在train set中的C^R_S以及少量样本的few-shot标签C^F_S
    • 未知标签属于在zero-shot场景下的标签

并且有下面的关系成立:

image-20230410163125835

同时训练集D^{tr}:

image-20230410163211798

其中x_i 表示单个的实例,y_i 表示这个实例所对应的标签集;

复制代码
2. 

接下来,文中是对于模型未知的元学习的定义:

文中提及了一种称为MAML的特定模型。该特定模型借鉴了文中的Meta-LMTC架构设计。该方法首先通过定义i个互不相同的子任务来构建基础架构,在此基础上对具体目标任务进行针对性优化以获得最终参数值。

image-20230410163740879

通过元学习从不同任务集合(T₁,T₂,…,T_i)中获取初始参数\theta_0后,在特定模型架构下将其作为起始参数输入。随后,在该特定任务的数据支持下对其进行微调优化后获得最终模型参数\theta^*

但是这种方法并不是文章所探讨的核心方法,并不能满足后续研究的需求。由于该方法未能充分考虑特定数据分布下的处理策略,在实际应用中可能会面临局限性。同时涉及到了少数样本与零样本任务并存的情况以及数据集中长尾分布这一问题都是MAML无法有效应对的关键挑战,在这一领域中作者对此展开了进一步的研究并提出了新的解决方案以弥补现有方法的不足

Meta-Learning for LMTC

复制代码
1. 

LMTC问题描述

早期用来应对LMTC问题的方法主要分为两类:一类是基于随机权重的初始化策略...另一类是经过大规模预训练获得的模型参数...通过在特定LMTC数据集上的微调优化后获得了专门用于解决该问题的有效模型。

该模型基于元学习原理建立,并涉及一系列后续训练步骤。具体而言,在资源分配策略下,在有限数据条件下构建多个多标签分类子任务(T_1,T_2,...,T_i)的基础上确定初始参数\theta^*_0。随后利用这些子任务确定初始参数\theta^*_0。其中每个子任务的支持集和查询集分别从LMTC的数据集中抽取,并且确保两者无重叠。

image-20230410170147707
image-20230410170202029

同时,定义

image-20230410170244983

其中C^{tr}_{T_i}C^{val}_{T_i}分别表示支持集和查询集各自对应的标签集合。

复制代码
2. 

META-LMTC模型的训练过程概述

首先,在这个模型中被划分为两大部分进行处理;其中第一部分对应于元学习模块(即 Fine-tuning ),而第二部分则对应于优化过程中的具体实施步骤。

文中对于元学习阶段进行了详尽的描述:

复制代码
1. 

如下图中所示:

image-20230410185244087

这些数据包括用于实现LTMC任务的集合D, 分别包含局部学习率α和全局学习率β, 此外还包含用于生成不同任务数据集的不同采样策略τ

复制代码
2. 

首先,通过采样策略τ生成了支持集和查询集D^{tr}_{T_i}D^{val}_{T_i}。接着,在每个任务中基于该任务的训练集对模型参数θi'进行训练。文中指出,在每个任务中经过一次梯度下降(one-step gradient descent)来构建模型参数。具体而言,在每次梯度下降过程中会对模型参数进行调整。

采用的方法函数

image-20230410190114233

其中

复制代码
3. 

在此基础上, 我们能够从该任务中获得对应模型在query set上的损失值 L_{\theta_i'}(D_{T_i}^{val}) , 此损失定义为局部损失. 进而, 通过从多个任务中获得的局部损失值, 我们将对全局参数进行更新.

image-20230410190853733
复制代码
4. 

该方法通过将多种基于low-resource的任务设计的目标优化函数融合到元学习框架中,在统一的学习过程中显著提升了模型在处理稀少标记标注的数据集以及未标记类别上展现出更好的性能水平。

就如构建不同类型的低分辨率任务而言,在这一过程中也存在诸多挑战与需求。文章强调,在实际应用中需要特别注意数据的真实性和多样性;其中关键属性之一就是确保数据样本能够充分反映目标场景的多维度特征。

复制代码
3. 

LMTC的任务采样策略:

文中指出普通的元学习策略在LMTC任务中存在不足之处,并从两个维度进行了具体阐述:首先需要处理的数据包括同时存在的 Few-shot 和 Zero-shot 数据;其次其数据呈现长尾分布的特点。此外,在传统元学习方法中采用的采样策略存在局限性:该方法仅采集了频率较高的类别标签,并因而限制了训练初始参数多样性的效果。

为了解决这种问题,模型中提出了两种应对于不同方面的采样策略:

第一种策略是基于instance(\text{instance-based})的方法:该方法旨在通过一致的概率模型从LMTC的数据库D中提取样本,并将其划分为两个互不相交的集合——支持集与查询集(其实等同于训练集与验证集)。该方法的主要目的是解决零样本学习与小样本学习的同时适应性问题,并通过构建更多的零样本与小样本场景共现情况来拓展其应用范围。然而,在图中所示的情况下(即图中的上面曲线中的表示),尽管基于instance的方法能够有效实现采样结果(即通过实例采样获得的支持类数据与查询类数据),但这种结果仍然容易受到长尾分布的影响(即在实际应用中可能出现的问题:在这种情况下(当实例采样的数据量较少时),模型在预测时倾向于频率较高的类别标签)。

image-20230410195739000

该分类方法采用\text{label-based}策略:具体而言,当某个特定类别(即label)首次从已知标签集中被抽样时,则会采集与之对应的具有该标签的样本。这种方法的主要目的是缓解长尾分布中的类别样本不足问题。

通过分析图中的数据可以看出,在label维度上采用基于标签的采样策略能够实现更为均衡的效果。具体而言,在该维度下各标签实例的数量分配相对均匀;另一方面,在instance维度上采用基于实例的采样方法则表现出更强的一致性特征:这是因为从定义上来看,在这种采样方式下会系统性地将相同类别的实例纳入同一组别进行处理。相比之下,在instance层次上的均匀分布更能体现出该方法的优势所在

就真实性和全面性而言,这两种方案均表现良好。然而,在任务多样性方面则显得不足。为此,在文中引入了一个参数p,并分别赋予基于实例和基于标签的两种方法权重系数(分别为p1-p)。通过合理调节这个p值,最终形成了一个具有多样性的数据采样策略。

实验部分

本文涉及的基准模型包括六种不同的算法架构:包括基于卷积神经网络(CNN)、区域卷积神经网络(RCNN)、加权卷积神经网络(CAML)等先进结构。

上述三种模型的主要区别在于它们对标签嵌入采用了随机初始化的方法,在这种初始化策略下会导致整个模型在泛化能力方面存在较大的局限性,并且也会对模型处理未知数据的能力产生显著影响;针对后续介绍的三种模型而言,在标签嵌入方面的初始化方法与前三种模型有所不同,在这一部分采用了共享标签标签器的方式来进行表示学习,在这种策略指导下不仅能够有效提高模型在处理few-shot学习任务方面的性能表现而且在zero-shot学习场景下的处理能力也会得到明显提升

基于本文提出的方法同时解决了few-shot和zero-shot问题。因此将该框架应用于后续的三种模型以验证其有效性。实际上我认为将其应用于基准模型的方法本质上借鉴了meta-LMTC中基于实例和标签的采样策略,在这些基准模型上实施这两种采样方法的主要目的是解决少数类别样本分布不均及长尾类别分布的问题。其中一种采样方法主要针对few-shot与zero-shot分布不均的问题而另一种则旨在应对长尾分布挑战。

文中的实验增添了一个中间过渡框架SIMPLE-EXT这一创新模块。该模块是遵循MAML框架进行基于meta学习设计的简化扩展版本,并仅采用了基于实例的数据采样方法。

image-20230411101950916

基于表中的数据分析,在few-shot和zero-shot场景下,在各个数据集上应用META-LMTC框架的baseline均表现最为突出。此外,在Frequent标签上的表现较为优异。研究表明,我们发现该模型在对高频标签进行表示学习方面表现出色;进一步地,在结合SIMPLE-EXT的情况下相比简单的baseline而言具有更好的性能;同时,在结合META-LMTC框架后相比之前的简单拓展而言具有更好的性能。

可以观察到simple-ext这一框架在处理few-shot问题方面表现出色,并较之原有的框架实现了显著的性能提升;然而,在zero-shot场景下仍存在一定的局限性。针对这一问题, 本文提出了一种名为meta-LMTC的新模型架构, 并在此基础上进行了多项优化设计;经过一番改进后, 在性能指标上较之前的版本有了显著突破。

针对于超参数instance-based采样率 p 的设置:

复制代码
1. 

如图所示,在本研究中采用ZAGRU模型作为基础进行分析实验。在此基础上,结合本文提出的新框架META-LMTC进行扩展。

image-20230411104452362
复制代码
2. 

根据图中的描述可以看出,在实验过程中我们采用了两种不同的基线对比方法来验证我们的假设。具体而言,在实验设计中我们设置了两个关键参数来评估算法的表现:一个是数据集划分的比例因子(记作\alpha),另一个是类别不平衡程度调节因子(记作\beta)。通过调节这两个参数的不同取值组合能够系统地分析算法对数据质量变化的感受性。实验结果表明,在\alpha=\beta=1的情况下算法表现最为理想;同时随着\alpha\beta取值范围的变化算法整体表现呈现出一定的波动性特征。此外通过对比分析我们发现该算法在面对不同类型的数据分布情况时展现出良好的适应性

image-20230411105402097

上图中的绿色区域展示应用文中所述模型框架在不同最大标签频率下的性能表现。观察到绿色线条显示,在最大标签频率处于0至20区间时,该模型框架的整体效率呈现出持续增长的趋势。这一趋势表明,在样本类别数量较少的情况下(即few-shot和zero-shot学习场景),采用文中提出的方法能够显著提升分类性能。

为了更好地验证文中提出的框架在零样本问题上的真实有效性,在训练集中未出现的所有标签都被筛选出来构成零样本任务的候选集合,并以此零样本集合为基础进行效果评估。经实验分析后发现,在评估指标R@5和nDCG@5上,采用ZAGRU模型时的表现从54.5%和43.7%降至20.7%和14.6%,而在加入本文提出的META-LMTC框架后,则其性能较之前提升至23.8%(+3.1%)和16.4%(+1.8%)。

由于这个模型处理的是large-scale label问题,所以在标签集中可能存在上千个标签,所以我们仅仅可以看到排在top K部分的label。因此文中使用基于ranking 的metric;通过对于few-shot上的验证实验表明,文中提到的框架在处理few-shot问题上也是十分有帮助的,在前人的方法中都是将K值设定为每一个文档中的label数量的平均值,但是这种设定对于few-shot和zero-shot场景下的label可能并不适合,因为在这两种设定的情况下,label的平均值数量将远远低于整体的文档label平均值。所以文中使用的方法就是单独对于few-shot和zero-shot场景下的label数量取平均值,而并不是对于整个数据集中的label数量取平均值;AGRU-KAMG在few-shot上的性能为 52.5% R@2 and 57.3% nDCG@2,在zero-shot上的性能为24.1% R@1 and 25.8% nDCG@1;使用了文中框架之后的性能为在few-shot上55.2% R@2 (+2.7%) and 60.7% nDCG@2 (+3.4%);在zero-shot上26.9% R@1 (+2.8%) and 8.3% nDCG@1 (+2.5%)

全部评论 (0)

还没有任何评论哟~