Press "Enter" to skip to content

香侬读 | 使用元学习(Meta-Learning)进行少样本下的文本分类

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

 

文章标题 :Few-shot Text Classification with Distributional Signatures

 

文章作者 :Bao, Yujia and Wu, Menghua and Chang, Shiyu and Barzilay, Regina

 

文章链接 :https://arxiv.org/pdf/1908.06039.pdf

 

代码链接 :https://github.com/YujiaBao/Distributional-Signatures

 

收录情况 :Work in Progress for ICLR2020

 

元学习与少样本学习

 

近些年,元学习(meta-learning)在处理少数据集的任务上十分流行,所谓元学习,就是让一个算法能够扩展到一个新的标注任务(类)上,这个标注任务(类)有不同于原有任务的标注类别,而且训练集很少。

 

目前元学习主要在CV上取得了较大成功,对NLP,还未有广泛的成功。元学习不易处理NLP的主要原因还是在CV和NLP的内在区别:CV的低级别模型,如边、颜色、点在不同任务上都是通用的;而NLP的不同任务,即使是同一个句子,其重点都是不同的。比如下图是 HuffPost 数据集中共41个类别不同词的相关度:

 

 

从图中可以看到,词和类别是高度相关的,但是对不同任务(类)而言,同一个词的重要性又是不同的。比如下图,同样是在数据集 HuffPost 中,如果把类别 fifty 抹去,传统的网络根本无法找出最重要的词来:

 

 

但是本文提出的方法可以很好地找到最重要的词,从而判断正确的类别。

 

本文提出了一个元学习模型用于少样本下的文本分类模型。总的来说,本文贡献如下:

 

• 不直接考虑词,本文的方法使用词的分布式特征

 

• 提出了一个少样本下的元学习(迁移学习)文本分类模型       • 使用了一个注意力生成器(Attention Generator)和一个岭回归器(Ridge Regressor)       • 在跨类别迁移上模型表现良好

 

背景概述

 

我们首先阐释几个概念。

 

问题定义

 

现在我们有一个类别集合,对这些类别,我们有足够的标注数据。又有一个类别集合,但是标注数据很少。我们的目标是通过类别集的标注数据使得模型能够在类别集的数据上也有较好的效果。

 

元学习

 

我们把元学习分为元学习训练(Meta-Training)和元学习测试(Meta-Testing),对于元学习训练,我们要创造若干个训练段(training episode),同理我们也有若干测试段(testing episode)。

 

为了创造一个训练段,我们首先从中随机取个类别,再从每个类别中取个训练样本作为训练集和个样本作为测试集,所以就有个训练样本和个测试样本。一般来说,我们把这个训练样本称为支持集(support set),把个测试样本称为询问集(query set)。

 

在元学习测试阶段,对每个测试段,我们都先从中随机取个类,然后再从这个类中取支持集和询问集,然后在所有段的询问集中验证模型效果。

 

下图是一个例子:

 

 

扩展

 

在上图中还出现了一个source pool,这就是本文的一个扩展。具体地,在元学习训练时,对每个训练段,我们把所有没被选择的类的数据作为source pool;在元学习测试阶段,source pool包括所有类的训练数据。

 

方法

 

模型主要分为两个模块:

 

• 注意力生成器:该模块通过结合source pool的分布式特征和支持集,生成以类为基础的注意力大小,然后生成的注意力被用于岭回归器来修正词重要度的偏差

 

• 岭回归器:对每个段,该模块接受注意力值并构建词汇表示,然后在询问集上进行预测

 

总的流程图如下:

 

 

注意力生成器

 

注意力生成器的目标是评估词的重要度,我们使用source pool来得到词的 一般 重要度,使用支持集得到 类相关 重要度。

 

由于出现越频繁的词重要度越低,所以用下式得到一般重要度:

 

 

这里是source pool中词的unigram的似然。

 

然后用下式得到类相关重要 度:

 

 

这里 条件似然是在支持集中使用正则线性分类器(Regularized Linear Classifier,具体请参考原文附录A1)得到的,为求熵。显然,得到的是词 在类别中的不确定度,从而也是重要度。

 

但是只用这些数据效果不好,原因有二:(1)source pool和支持集包含的是互补的数据,模型无法确定如何结合;(2)这些数据只是词重要度在分类问题上的估计。于是,我们使用BiLSTM结合这些数据: ,然后得到下面的注意力值:

 

 

岭回归器

 

对于岭回归器,我们首先得到样本的表示:

 

 

然后令 是支持集的表示, 是类别的one-hot表示。然后最小化下面的loss:

 

 

可以得到闭式解:

 

 

对询问集,令是其表示,于是我们直接预测其标签:

 

 

最后我们用softmax得到,再用交叉熵进行反向传播即可。

 

 

本文在下面的数据集上进行了实验: 20 NewsgroupsRCV1Reuters-21578Amazon product dataHuffPost headlinesFewRel 。其他实验细节,若读者有兴趣可参见原文。

 

下表是6个数据集在不同表示(Rep.)和不同学习算法(Alg.)上的表现,其中NN是1近邻分类,FT是首先在所有训练样本上进行预训练,然后在支持集微调。

 

 

平均来说,本文的模型在 时提高6.26%的准确率,在 时提高3.84%准确率。下图说明了本文模型可以有效地避免过拟合:

 

 

下表是使用BERT之后不同模型的比较:

 

 

对于 FewRel 提升较大,对于 HuffPost 提升较少。

 

下图展示了分别使用 和结合使用的PCA可视化结果,可以看到,结合使用两者可以有效区分不同类别的特征:

 

 

下图是两个例子:

 

 

小结

 

本文提出了一种少样本下的元学习方法,用于文本分类,在多个数据集上取得较好效果。本方法利用词的分布式特征得到注意力值,从而与词重要度建立联系,很好地缓解了过去单纯使用tf-idf或单纯使用词向量的不足。此外,在测试的时候,不需要经过复杂网络,只需用一个线性变换即可进行预测,在效果好的同时也很快,一举两得。

Be First to Comment

发表评论

邮箱地址不会被公开。 必填项已用*标注