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

b547eb93-5c17-eb11-8da9-e4434bdf6706.png

文章作者: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个类别不同词的相关度:

b647eb93-5c17-eb11-8da9-e4434bdf6706.png

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

b847eb93-5c17-eb11-8da9-e4434bdf6706.png

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

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

  • 不直接考虑词,本文的方法使用词的分布式特征
  • 提出了一个少样本下的元学习文本分类模型
  • 使用了一个注意力生成器(Attention Generator)和一个岭回归器(Ridge Regressor)
  • 在跨类别迁移上模型表现良好

背景概述

我们首先阐释几个概念。

问题定义

现在我们有一个类别

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

元学习

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

为了创造一个训练段,我们首先从

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

在元学习测试阶段,对每个测试段,我们都先从

中随机取
个类,然后再从这
个类中取支持集和询问集,然后在所有段的询问集中验证模型效果。

下图是一个例子:

bc47eb93-5c17-eb11-8da9-e4434bdf6706.png

扩展

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

方法

模型主要分为两个模块:

  • 注意力生成器:该模块通过结合source pool的分布式特征和支持集,生成以类为基础的注意力大小,然后生成的注意力被用于岭回归器来修正词重要度的偏差
  • 岭回归器:对每个段,该模块接受注意力值并构建词汇表示,然后在询问集上进行预测

总的流程图如下:

be47eb93-5c17-eb11-8da9-e4434bdf6706.png

注意力生成器

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

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

这里

是source pool中词
的unigram似然。

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

这里条件似然

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

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

,然后得到下面的注意力值:

岭回归器

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

然后令

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

可以得到闭式解:

对询问集,令

是其表示,于是我们直接预测其标签:

最后我们用softmax得到

,用交叉熵进行反向传播即可。

实验

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

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

c047eb93-5c17-eb11-8da9-e4434bdf6706.png

平均来说,本文的模型在

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

c247eb93-5c17-eb11-8da9-e4434bdf6706.png

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

c447eb93-5c17-eb11-8da9-e4434bdf6706.png

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

下图展示了分别使用

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

c547eb93-5c17-eb11-8da9-e4434bdf6706.png

下图是两个例子:

c747eb93-5c17-eb11-8da9-e4434bdf6706.png

小结

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值