作者:耿瑞莹,黎斌华,李永彬,孙健
1.摘要
深度学习方法在数据稀缺的场景下往往表现很差,在这种挑战性的场景下,近期的工作往往使用meta-learning的方法来模拟少样本学习任务,通过在样本级别把query和支撑集进行比较来完成分类。但是这种样本级别的比较往往会被同一个类中各种不同的表述方式所干扰,因此我们需要为支撑集中的每个类别学习一种泛化的表示,然后去和query进行度量。在本工作中,我们提出了一个新的归纳网络(Induction Networks)来学习这样的一般化的类别表示,通过在meta learning的过程中引入动态路由算法(dynamic routing),我们的模型对于未见过的类别有良好的适应能力。我们在一个通用的英文基准数据集和一个真实场景的中文意图分类数据集上验证我们的模型,均取得了state-of-the-art的结果,证明了在少样本学习场景下学习类级别表示的有效性。
2.问题定义
少样本学习的的目标是模型在大量类别中学会通过少量数据正确地分类后,对于新的类别,只需要少量的样本就能快速学习。形式化来说,few-shot的训练集中包含了大量的类别,每个类别中有少量样本。在训练阶段,会在训练集中随机抽取C个类别,每个类别K个样本(总共C×K个数据)构建一个meta-task,作为模型的支撑集(Support set)输入;再从这C个类中抽取一批样本作为模型的询问集(Query set)。即要求模型从C×K个数据中学会如何区分这C个类别,这样的任务被称为C-way K-shot问题。 模型训练的过程中在每次迭代时把支撑集送入模型,并优化模型在询问集上产生的损失函数,这种训练方式一般称为Episode-based meta-training,详情见Algorithm 1。值得注意的是这种训练机制使得模型很难过拟合,假设我们训练集中包含159个类,可以产生( █(159@5))=794,747,031个不同的5-way 任务。
3.引言
少样本学习相关的研究致力于通过极少量的样本学习心得类别来解决数据缺失的问题,当数据量极少时,基于finetune的方法将难以生效,早期的工作使用数据增强和正则化来缓解数据不足时的过拟合问题,但是也只能在一定程度上有效。近期的工作往往基于meta learning的方法,把训练过程分解为一系列的meta-task,通过将训练过程的task和测试阶段的task定义一致,可以通过在不同的meta task之间切换来抽取一些可迁移的知识。因此few-shot learning的模型往往可以只根据一个支撑集就能对未见过的类别进行识别。
一种典型的方法是把非参数化方法和度量学习结合,非参数方法能够使新的样本得到快速的适应,因此只需要学习样本之间的度量方式即可完成少样本分类。但是由于自然语言的特殊性,同一个类中的样本往往有很多种不同的表述,在先前的工作中,类级别的表示往往只是简单的通过对支撑集中的样本表示平均或加和来得到,这样会由于同一个类的不同表述方式产生的噪音而丢失很多关键的信息。因为少样本学习的方法不会在支撑集上finetune模型,因此当增大支撑集的规模时,因为样本数量带来的增长往往又会被样本级别的噪音所抵消。
因此,更好的学习方法应该是建模归纳类别特征的能力:忽略掉和分类无关的细节,从样本级别多种多样的语言表述之中总结出类别的语义表示。我们站在一个更高的视角,去重构支撑集中不同样本的层次化语义表示,动态的从样本信息中归纳出类别特征。在本工作中,我们提出了Induction Network,通过将动态路由算法与meta learning机制结合,显式建模了从少量样本中归纳出类别表示的能力。我们的贡献可以总结为三点:
1.我们提出了一个归纳网络来解决少样本学习的任务,为了处理少样本学习中样本级别的多样性问题,我们的工作首次建模了从样本特征到类别特征的归纳能力;
2.我们提出归纳模块结合了动态路由算法和meta learning结构,矩阵转换和路由机制是我们的模型识别新的类别时泛化性能良好;
3.我们的模型在两个少样本文本分类数据集上超过了目前的state-of-the-art模型,包含一个英语的基准数据集和一个中文的真实场景的意图识别数据集。
4.模型
如图3所示,我们的模型基于Encoder-Induction-Relation的三级框架,其中Encoder模块使用基于自注意力的Bi-LSTM,Induction 模块使用动态路由算法,Relation模块使用神经张量网络。
图Induction Network 图示
4.1 Encoder模块
本工作共使用Bi-lstm self-attention建模句子级别的语义,输入句子的词向量矩阵,经编码得到句子级的语义表示e。
4.2 Induction 模块
将支撑集中每个样本编码为样本向量以后,Induction模块将其归纳为类向量
这一过程中我们将支撑集中的样本向量视为输入胶囊,经过一层dynamic routing变换后,输出胶囊视为每个类的语义特征表示。
首先,是对所有样本做一次矩阵转换,意味着将样本级的语义空间转换到类别级的语义空间,在此过程中我们对支撑集中所有的样本向量使用同一个转换矩阵,如此对于任意规模的支撑集都能进行处理,也就意味着我们的模型可以应对any-way any-shot的场景。
然后,通过dynamic routing的方式过滤无关信息,提取类别特征。在每次dynamic routing的迭代中,我们动态的调整上下两层之间的连接系数并确保其加和为1:
其中b_i连接系数的逻辑值,在第一次迭代时初始化为0。对于给定的样本预测向量,每个候选类向量是e ̂_ij^s的加权求和:
然后使用一个非线性的squash函数来保证每个类向量的模长不超过1:
每次迭代的最后一步是通过“routing by agreement”的方式来调节连接强度,如果产生的类候选向量和某样本预测向量之间有较大的点乘结果,则增大他们之间的连接强度,否则减小之。
通过这种动态路由的方式建模样本向量到类别向量的映射过程,能够有效过滤与分类无关的干扰信息,得到类别特征,详情见算法2。
4.3 Relation 模块
我们通过Induction模块得到支撑集中每个类别的类向量表示,通过Encoder模块得到Batch set中每个query的query向量,接下来要做到就是衡量二者之间的相关性。 Relation 模块是典型的neural tensor layer,首先通过三维tensor建模每个类向量和query向量对之间的交互关系,然后使用全连接层得到关系打分。
4.4 目标函数
我们使用最小平方损失来训练我们的模型,将关系打分回归至真实标签:匹配的类和query对之间的打分趋向于1而不匹配的打分趋向于0。在每个episode中,给定支撑集S和Query集B={(x_q,y_q )}_(q=1)^n,损失函数定义如下:
我们使用梯度下降法更新Encoder、Induction和Relation三个模块的参数。训练完成之后,我们的模型在识别全新的类别时不需要任何finetune,因为在meta 训练阶段已经赋予了模型足够的泛化能力,而且会随着模型的迭代不断累加。
5. 实验
我们在两个few-shot文本分类的数据集上验证模型的效果,所有的实验使用tensorflow实现。
5.1 数据集
1.ARSC数据集由Yu 等人[10]在NAACL 2018提出,取自亚马逊多领域情感分类数据,该数据集包含23种亚马逊商品的评论数据,对于每一种商品,构建三个二分类任务,将其评论按分数分为5、4、 2三档,每一档视为一个二分类任务,则产生233=69个task,然后取其中12个task(43)作为测试集,其余57个task作为训练集。
2.ODIC数据集来自阿里巴巴对话工厂平台的线上日志,用户会向平台提交多种不同的对话任务,和多种不同的意图,但是每种意图只有极少数的标注数据,这形成了一个典型的few-shot learning任务,该数据集包含216个意图,其中159个用于训练,57个用于测试。
5.2 参数设置
预训练词向量使用300维glove词向量,LSTM隐层维度设为128,dynamic routing的迭代器爱次数设为3,Relation模块的张量数h=100。我们在ARSC数据集上构建2-way 5-shot的模型,在ODIC数据集上C和K在[5,10]中选取得到四组实验。在每个episode中,除了为支撑集选取K个样本以外,我们还为采到的每个类再采20个样本作为query set,也就是说在5-way 5-shot 场景下每次迭代训练都会有55+520=125个样本参与训练。
5.4 实验结果
在ARSC和ODIC数据集上实验结果如表1和表2所示
由表1可知,我们提出的Induction Networks比ROBUSTTC-FSL正确率高出3%,他们是这个数据上之前的state-of-the-art。这是因为ROBUSTTC-FSL试图在样本层面构造一个足够鲁棒的度量方法,所以将多种度量方式进行组合,这种方法无法摆脱同一个类别中不同表述所产生的干扰。
表1 ARSC数据集上的结果
在ODIC数据集上,我们提出的Induction Networks模型在四个不同的实验设置中都取得了最好的效果,通过表1可以看到,在Encoder使用相同结构的情况下,我们的模型通过建模class级别的归纳能力和更复杂的距离度量方式,取得了最好的结果,进一步的,我们通过比较不同的Induction方式,最终选取了Dynamic Routing的方式来构建样本级到class级的归纳表示能力。
表2 ODIC数据集实验结果
5.5 实验分析
5.5.1 消融实验
表3 消融实验
为了分析归纳模块和关系模块使用不同成分所产生的影响,我们进一步分析在ARSC数据集上消融实验的结果。如表3所示,我们可以看到当routing的迭代次数设为3次的时候取得最优的效果,继续增加迭代次数并没有使效果进一步提升,这证明了dynamic routing方法的有效性。当把归纳模块改为Attention方式时,Attention+Relation的方法通过自注意力机制来建模归纳过程,但是这一能力又被局限于学习到注意力参数之中,相反我们提出的动态路由归纳算法可以通过自动调整对支撑集样本的权重系数来归纳得到类级别的表示,这对于少样本学习的任务具有更好的适应能力。
5.5.2转置矩阵的作用
在5-way 10-shot场景下,我们用t-SNE降维并可视化经过transformation转置矩阵前后支撑集样本的变化,如图所示,可以发现经过转置矩阵之后的支撑集样本向量可分性明显变好。
这也证明了矩阵转置过程对于转换样本特征到类别特征的有效性。
5.5.3 Query 可视化
我们发现Induction Network不仅能够生成质量更高的类向量,而且可以帮助encoder模块学习更好的样本语义表示。通过随机抽取5个测试集的类别,并将其中所有样本Encoder之后的向量可视化,我们发现Induction Network中学到的样本向量可分性明显高于Relation Network,这说明我们的Induction模块和Relation模块通过反向传播给了Encoder模块更为有效的信息,使其学到了更易于分类的样本表示。
6.结论
在本工作中,我们提出了Induction Network 来解决少样本文本分类的问题。我们的模型通过重构支撑集样本的层次化语义表示,动态归纳出类别的特征表示来缓解少样本学习样本级别的噪音问题。我们将动态路由算法和meta learning的框架结合,动态路由的机制使我们的模型能够对新的类别保持良好的泛化性。实验结果表明我们的模型在不同的少样本分类数据集上都超过了当前的state-of-the-art模型。在未来的工作中我们会探寻将监督学习和meta learning相结合,构建增量的少样本学习模型。
参考文献
- Shaohui Kuang, Junhui Li, Anto ́nio Branco, Weihua Luo, and Deyi Xiong. 2018. Attention focusing for neural machine translation by bridging source and target embeddings. In Proceedings of the 56th An- nual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), volume 1, pages 1767–1776.
- Shen Li, Zhe Zhao, Renfen Hu, Wensi Li, Tao Liu, and Xiaoyong Du. 2018. Analogical reasoning on chi- nese morphological and semantic relations. In Pro- ceedings of the 56th Annual Meeting of the Associa- tion for Computational Linguistics (Volume 2: Short Papers), pages 138–143.
- Zhouhan Lin, Minwei Feng, Cicero Nogueira dos San- tos, Mo Yu, Bing Xiang, Bowen Zhou, and Yoshua Bengio. 2017. A structured self-attentive sentence embedding. arXiv preprint arXiv:1703.03130.
- Laurens van der Maaten and Geoffrey Hinton. 2008. Visualizing data using t-sne. Journal of machine learning research, 9(Nov):2579–2605.
- Nikhil Mishra, Mostafa Rohaninejad, Xi Chen, and Pieter Abbeel. 2018. A simple neural attentive meta- learner. In Proceedings of ICLR.
- Tsendsuren Munkhdalai and Hong Yu. 2017. Meta networks. In Proceedings of the 34th International Conference on Machine Learning-Volume 70, pages 2554–2563. JMLR. org.
- Jeffrey Pennington, Richard Socher, and Christopher Manning. 2014. Glove: Global vectors for word representation. In Proceedings of the 2014 confer- ence on empirical methods in natural language pro- cessing (EMNLP), pages 1532–1543.
- Hang Qi, Matthew Brown, and David G Lowe. 2018. Low-shot learning with imprinted weights. In Pro- ceedings of the IEEE Conference on Computer Vi- sion and Pattern Recognition, pages 5822–5830.
Anthony Rios and Ramakanth Kavuluru. 2018. Few- shot and zero-shot multi-label learning for structured label spaces. In Proceedings of the 2018 Confer- ence on Empirical Methods in Natural Language Processing, pages 3132–3142. - Sara Sabour, Nicholas Frosst, and Geoffrey E Hinton. 2017. Dynamic routing between capsules. In Ad- vances in Neural Information Processing Systems, pages 3856–3866.
- Justin Salamon and Juan Pablo Bello. 2017. Deep con- volutional neural networks and data augmentation for environmental sound classification. IEEE Signal Processing Letters, 24(3):279–283.
Victor Garcia and Joan Bruna. 2017. learning with graph neural networks. abs/1711.04043.
Few-shot CoRR,
- Xavier Glorot, Antoine Bordes, and Yoshua Bengio. 2011. Deep sparse rectifier neural networks. In Pro- ceedings of the fourteenth international conference
- Jake Snell, Kevin Swersky, and Richard Zemel. 2017. Prototypical networks for few-shot learning. In Ad- vances in Neural Information Processing Systems, pages 4077–4087.
- Richard Socher, Danqi Chen, Christopher D Manning, and Andrew Ng. 2013. Reasoning with neural ten- sor networks for knowledge base completion. In Advances in neural information processing systems, pages 926–934.
- Flood Sung, Yongxin Yang, Li Zhang, Tao Xiang, Philip HS Torr, and Timothy M Hospedales. 2018. Learning to compare: Relation network for few-shot learning. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 1199–1208.