小样本few shot

这里简单介绍各种方案, 想了解具体的内容可以直接翻到最后看相关链接,或搜索其他介绍!

部分内容目前理解较为浅显,有错漏,希望大佬们多多指出,不吝赐教!! 

模型层面方法:

https://www.sohu.com/a/305112618_500659

主要分三种:Model Based、Metric Based、Optimization Based

Model Based

主要思想是让模型学到构建特征的方法,从而对于新的类别能有好的效果,且不需重新训练模型

Metric Based

对样本进行组合,构造成对样本,进行模型训练,判断样本是否为相同类。 典型的方法是孪生网络

例如:Neural Snowball for Few-Shot Relation Learning,这篇,就是类似的逻辑

Optimization Based

重定义梯度优化算法,适配小样本任务。保证初始化让finetune从一个好的点开始。

--------------------------------------

这里介绍一篇陈丹琦团队的巨作 LM-BFF

原理

陈丹琦团队最新论文:受GPT-3启发,用小样本学习给语言模型做微调,性能最高提升30%

GPT-3的最强落地方式?陈丹琦提出小样本微调框架LM-BFF,比普通微调提升11%~

我的理解是,类似T5进行模板预测,RoBERTa预测结果。

代码:https://github.com/princeton-nlp/LM-BFF

------------------------------------

其它Tips:

数据增强

回译、近义词替换、Mask生成等

回译:例如中文翻译成英文,再翻译回中文,如果跟原来中文不一致,则补充添加。

Mask生成,利用预训练模型中的mask逻辑,对文本中的token进行掩蔽和预测,如果预测的结果和原始的文本不一致,则补充添加

小样本学习(Few-shot Learning)综述 中提到了NER的数据增强方法有:①同标签token替换 ②同义词替换 ③实体提及替换 ④ mention切分后shuffle

预训练模型

基于预训练模型获取底层的文本语义信息等

弱监督

通过模型预测的结果加入进行训练

模型蒸馏

通过教师模型预测的logits对学生模型蒸馏。不一定是few shot的任务,可能主要还是小模型的提升。另外除了logits蒸馏外,还有中间层, 权重,matrix等蒸馏方案,具体不详细介绍

远程监督

根据已有样本 标记去噪 训练模型, 多用在关系抽取任务上, 尝试过用在NER任务,部分任务有效果,部分效果较差(需要自行分析可行性,比如特征信息较强还是文本信息较强,前者效果可用,后者建议直接数据增强)

远程监督可以不需要标注数据,直接采用已有词典,进行冷启动

迁移学习

领域迁移,需要看任务是否有相关性,有的领域迁移效果不好。 另外预训练模型finetune其实也可以理解为迁移方法。

多任务学习(MTL)

few shot很多地方用到了多任务学习,主要是多个相关任务之间的表征共享,以提高少样本数据在不同类别上的效果。

MTL 有很多形式:联合学习(joint learning)、自主学习(learning to learn)和带有辅助任务的学习(learning with auxiliary task)等

参考链接:

小样本学习(Few-shot Learning)综述 

如何解决「小样本」+「多分类」问题?

多任务学习-multi-learning总结

打开你的脑洞:NER如何进行数据增强 ?

别再用假任务做小样本学习实验了!来试试这个全新基准数据集

猜你喜欢

转载自blog.csdn.net/katrina1rani/article/details/112766731