自然语言处理之-------举极端案例测试、举小样本测试比较工具包标注效率 (测试精确率、召回率、F1值)

预训练语言模型,包括用于语言理解(BERT类)或文本生成模型(GPT类),通过海量文本语料上做语言模型的预训练的方式,极大提升了NLP领域上多种任务上的表现并扩展了NLP的应用。使用预训练语言模型结合成数千或上万的标注样本,在下游任务上做微调,通常可以取得在特定任务上较好的效果;但相对于机器需要的大量样本,人类可以通过极少数量的样本上的学习来学会特定的物体的识别或概念理解。

小样本学习(Few-shot Learning):正是解决这类在极少数据情况下的机器学习问题。结合预训练语言模型通用和强大的泛化能力基础上,探索小样本学习最佳模型和中文上的实践,是本课题的目标。FewCLUE:中文小样本学习测评基准,基于CLUE的积累和经验,并结合少样本学习的特点和近期的发展趋势,精心设计了该测评,希望可以促进中文领域上少样本学习领域更多的研究、应用和发展。

 目前官方给出了当前小样本任务的全景图。

 

以及一些常见的小样本方案的表现效果。

NLPCC2021-测评任务2中包括的小样本学习任务的数据集有如下几个。

EPRSTMT:电商评论情感分析:

数据量:训练集(32),验证集(32),公开测试集(610),测试集(753),无标签语料(19565)

例子:

     {"id": 23, "sentence": "外包装上有点磨损,试听后感觉不错", "label": "Positive"}

每一条数据有三个属性,从前往后分别是 id,sentence,label。其中label标签,Positive 表示正向,Negative 表示负向。

CSLDCP:科学文献学科分类:

中文科学文献学科分类数据集,包括67个类别的文献类别,这些类别来自于分别归属于13个大类,范围从社会科学到自然科学,文本为文献的中文摘要。

数据量:训练集(536),验证集(536),公开测试集(1784),测试集(2999),无标签语料(67)

例子:

     {"content": "通过几年的观察和实践,初步掌握了盆栽菊花的栽培技术及方法,并进行了总结,以满足人们对花卉消费的需求,提高观赏植物的商品价值,为企业化生产的盆菊提供技术指导。",
     "label": "园艺学", "id": 1770}
{"content": "GPS卫星导航定位精度的高低很大程度上取决于站星距离(即伪距)的测量误差.载波相位平滑伪距在保证环路参数满足动态应力误差要求的基础上。。。本文详细论述了载波相位平滑伪距的原理和工程实现方法,并进行了仿真验证.", 
     "label": "航空宇航科学与技术", "id": 979}

每一条数据有三个属性,从前往后分别是 id,sentence,label。其中label标签,Positive 表示正向,Negative 表示负向。

TNEWS:新闻分类:

该数据集来自今日头条的新闻版块,共提取了15个类别的新闻,包括旅游、教育、金融、军事等。

例子:

     {"label": "102", "label_des": "news_entertainment", "sentence": "江疏影甜甜圈自拍,迷之角度竟这么好看,美吸引一切事物"}

每一条数据有三个属性,从前往后分别是 分类ID,分类名称,新闻字符串(仅含标题)。

IFLYTEK:APP应用描述主题分类:

该数据集关于app应用描述的长文本标注数据,包含和日常生活相关的各类应用主题,共119个类别:"打车":0,"地图导航":1,"免费WIFI":2,"租车":3,….,"女性":115,"经营":116,"收款":117,"其他":118(分别用0-118表示)。

例子:

{
    "label":"110",
    "label_des":"社区超市",
    "sentence":"朴朴快送超市创立于2016年,专注于打造移动端30分钟即时配送一站式购物平台,商品品类包含水果、蔬菜、肉禽蛋奶、海鲜水产、粮油调味、酒水饮料、休闲食品、日用品、外卖等。朴朴公司希望能以全新的商业模式,更高效快捷的仓储配送模式,致力于成为更快、更好、更多、更省的在线零售平台,带给消费者更好的消费体验,同时推动中国食品安全进程,成为一家让社会尊敬的互联网公司。,朴朴一下,又好又快,1.配送时间提示更加清晰友好2.保障用户隐私的一些优化3.其他提高使用体验的调整4.修复了一些已知bug"
}

每一条数据有三个属性,从前往后分别是 类别ID,类别名称,文本内容。

OCNLI: 自然语言推理:

OCNLI,即原生中文自然语言推理数据集,是第一个非翻译的、使用原生汉语的大型中文自然语言推理数据集。

数据量:训练集(32),验证集(32),公开测试集(2520),测试集(3000),无标签语料(20000)

例子:

{
"level":"medium",
"sentence1":"身上裹一件工厂发的棉大衣,手插在袖筒里",
"sentence2":"身上至少一件衣服",
"label":"entailment","label0":"entailment","label1":"entailment","label2":"entailment","label3":"entailment","label4":"entailment",
"genre":"lit","prem_id":"lit_635","id":0
}

BUSTM: 对话短文本匹配;

对话短文本语义匹配数据集,源于小布助手。它是OPPO为品牌手机和IoT设备自研的语音助手,为用户提供便捷对话式服务。

意图识别是对话系统中的一个核心任务,而对话短文本语义匹配是意图识别的主流算法方案之一。要求根据短文本query-pair,预测它们是否属于同一语义。

数据量:训练集(32),验证集(32),公开测试集(1772),测试集(2000),无标签语料(4251)

例子:

{"id": 5, "sentence1": "女孩子到底是不是你", "sentence2": "你不是女孩子吗", "label": "1"}

{"id": 18, "sentence1": "小影,你说话慢了", "sentence2": "那你说慢一点", "label": "0"}

CHID:成语阅读理解;

以成语完形填空形式实现,文中多处成语被mask,候选项中包含了近义的成语。 ChID: A Large-scale Chinese IDiom Dataset for Cloze Test

数据量:训练集(42),验证集(42),公开测试集(2002),测试集(2000),无标签语料(7585)

例子:

{"id": 1421, "candidates": ["巧言令色", "措手不及", "风流人物", "八仙过海", "平铺直叙", "草木皆兵", "言行一致"],
"content": "当广州憾负北控,郭士强黯然退场那一刻,CBA季后赛悬念仿佛一下就消失了,可万万没想到,就在时隔1天后,北控外援约瑟夫-杨因个人裁决案(拖欠上一家经纪公司的费用),
导致被禁赛,打了马布里一个#idiom#,加上郭士强带领广州神奇逆转天津,让...", "answer": 1}

CSL:摘要判断关键词判别;

中文科技文献数据集(CSL)取自中文论文摘要及其关键词,论文选自部分中文社会科学和自然科学核心期刊,任务目标是根据摘要判断关键词是否全部为真实关键词(真实为1,伪造为0)。

数据量:训练集(32),验证集(32),公开测试集(2828),测试集(3000),无标签语料(19841)

例子:

{"id": 1, "abst": "为解决传统均匀FFT波束形成算法引起的3维声呐成像分辨率降低的问题,该文提出分区域FFT波束形成算法.远场条件下,
以保证成像分辨率为约束条件,以划分数量最少为目标,采用遗传算法作为优化手段将成像区域划分为多个区域.在每个区域内选取一个波束方向,
获得每一个接收阵元收到该方向回波时的解调输出,以此为原始数据在该区域内进行传统均匀FFT波束形成.对FFT计算过程进行优化,降低新算法的计算量,
使其满足3维成像声呐实时性的要求.仿真与实验结果表明,采用分区域FFT波束形成算法的成像分辨率较传统均匀FFT波束形成算法有显著提高,且满足实时性要求.",
 "keyword": ["水声学", "FFT", "波束形成", "3维成像声呐"], "label": "1"}

每一条数据有四个属性,从前往后分别是 数据ID,论文摘要,关键词,真假标签。

CLUEWSC: 代词消歧

Winograd Scheme Challenge(WSC)是一类代词消歧的任务,即判断句子中的代词指代的是哪个名词。题目以真假判别的方式出现,如:

句子:这时候放在[床]上[枕头]旁边的[手机]响了,我感到奇怪,因为欠费已被停机两个月,现在[它]突然响了。需要判断“它”指代的是“床”、“枕头”,还是“手机”?

从中国现当代作家文学作品中抽取,再经语言专家人工挑选、标注。

数据量:训练集(32),验证集(32),公开测试集(976),测试集(290),无标签语料(0)

例子:

 {"target": 
     {"span2_index": 37, 
     "span1_index": 5, 
     "span1_text": "床", 
     "span2_text": "它"}, 
 "idx": 261, 
 "label": "false", 
 "text": "这时候放在床上枕头旁边的手机响了,我感到奇怪,因为欠费已被停机两个月,现在它突然响了。"}

"true"表示代词确实是指代span1_text中的名词的,"false"代表不是。

EPRSTMT,CSLDCP,BUSTM 为新任务;其他任务(TNEWS,CHID,IFLYTEK,OCNLI,CSL,CLUEWSC)来自于CLUE benchmark,部分数据集做了新的标注。

目前公开榜单中涉及了如下的参赛模型

Human: 人类测评成绩;

FineTuning: 直接下游任务微调;

PET:Pattern Exploiting Training(完形填空形式);

Ptuning: 自动构建模板;

Zero-shot: 零样本学习;

EFL:自然语言推理形式;

ADAPET:PET改进版,带正确标签条件优化

FineTuningB:FineTuningBert;

FineTuningR:FineTuningRoberta;

PtuningB:Ptuning_RoBERTa;

PtuningGPT:Ptuning_GPT;

Zero-shot-R,采用chinese_roberta_wwm_ext为基础模型的零样本学习;Zero-shot-G,GPT系列的零样本学习;N”,代表已更新;

报告的数字是每一个任务的公开测试集(test_public.json)上的实验效果;CLUE榜单已经可以提交;

由于CHID还在继续实验中,暂时未将CHID的分数纳入到最终的分数(Score)中。

模型有5种不同的方式做任务,分别是使用预训练模型直接做下游任务微调、PET、RoBERTa为基础的Ptuning方式、GPT类模型为基础的Ptuning方式、

使用RoBERTa或GPT做零样本学习。

模型常识科普简介:

1.BERT.Fine-tuning

模型简介:

BERT模型开创了语言模型预训练-下游任务微调的范式。结合海量数据上预训练,使得模型具有强大的泛化能力;

通过下游任务微调,仅新引入部分参数,而不需对整个网络从头训练。

MLM pre-training: 预训练,利用上下文预测[MASK]位置的信息; Fine-tuning:通过下游任务微调,获得[CLS]位置的句子语义表示,

并预测句子的标签。见下图:

BERT的输入表示:三部分信息求和,包括字的向量、段落向量、位置向量。见下图:

2.GPT3: Language Models are Few-Shot Learners

模型介绍:

GPT3: GPT-3延续单向语言模型训练方式,把模型尺寸增大到了1750亿,并且使用45TB数据进行训练。

同时,GPT-3主要聚焦于更通用的NLP模型,解决当前BERT类模型的两个缺点:对领域内有标签数据的过分依赖;对于领域数据分布的过拟合。

GPT-3的主要目标是用更少的领域数据、且不经过微调去解决问题。

GPT3中的零样本学习、单样本学习、少样本学习。通过给模型0、1或多个示例形式实现,但没有更新模型的参数:

3.PET: Pattern-Exploiting Training


模型和示例:

将任务转化为完形填空。包括两部分,一部分将输入文本转化为完形填空,里面包含一个需要[MASK]的部分。

如输入文本“这个手机壳很不错”,转化为:这个手机壳很不错。我觉得[MASK]好。这里的[MASK]计算需要填写的部分。

另一部分将需要预测的标签对应到一个字符上。如,有两个情感分类的标签POSITIVE和NEGATIVE。POSITIVE-->good; NEGATIVE-->bad。

下面报导一则[MASK]新闻。八个月了,终于又能在赛场上看到女排姑娘们了。

[MASK]的地方可以填“体育”,也可以填“财经”、“娱乐”,但联合概率上看“体育”最大,那么“体育”可以做为预测的标签。

PET的优缺点:

优点:将任务进行了转换后,不再需要向之前的fine-tuning阶段一样引入新的最后一层,即没有引入任何参数;将下游任务转换成与预训练的语言模型一致的形式。

缺点:可能需要手工构造Pattern; 不同的Pattern效果差异很大

4.LM-BFF: Making Pre-trained Language Models Better Few-shot Learners


模型和示例:

LM-BFF是一套针对小样本进行微调的技术,主要包括两部分:基于提示(prompt)进行微调,关键是如何自动化生成提示模板;

将样本示例以上下文的形式添加到每个输入中,关键是如何对示例进行采样;

LM-BFF的基本方式如上图所示,红框部分就是提示模板,篮框部分就是额外的样本示例:

在“Thank you <X> me to your party <Y> week ”,T5会在<X>生成“ for inviting ”、在<Y>生成“last ”。

然后我们就可以基于T5去填充占位符<X>和<Y>,生成提示模板T。我们选定的模板应该是使得训练集中的输出概率最大化:

LB-BFF的优缺点

优点:结合T5的生成能力,自动化找到最优的模板,省去人工搜寻模板的过程。

缺点:依然假设模板是自然语言的版本;非全自动化的:先找模板,然在最优模板上做任务。

5.Ptuning: GPT Understands, Too


模型和示例:

人工选择模板,或者机器自动选择模板,都是比较繁琐的工作,但对效果影响很大。那有没有能自动构建模型的方式呢?

Ptuning放弃了模板必须是自然语言的假设,通过使用BERT系列中未使用的字的表示来自动设法学习到最佳的模板;

并且它可以只学习模板对应的参数,如10个embedding,而之前的方法一般都是需要学习所有的字的表示;

论文中实验了GPT类的模型也可以使用Ptuning方式取得很好的文本理解效果。

离散模板搜索-->连续端到端学习:

中文例子:

这里的[u1]~[u6],代表BERT词表里边的[unused1]~[unused6]。也就是用几个从未见过的token来构成模板,

这里的token数目是一个超参数。

6.ADAPET: Improving and Simplifying Pattern Exploiting Training


模型和示例:

ADAPET(A Densely-supervised Approach to Pattern Exploiting Training)做为PET的改进方法,

共提出了两种改进方式: Decoupling Label Losses和Label Conditioning。

1、 Decoupling Label Losses:在预测label的[MASK]时,计算了词表中所有token的概率,

选取概率最大的token做为label。

在PET中:模型只在候选label的token上进行softmax,选取概率最大的候选label的token做为预测label。

在ADAPET中:模型在词表所有的token上进行softmax,选取概率最大的token做为预测label。这样做的好处是

预测label的概率的计算是考虑到了词表中其它的token的。

2、 Label Conditioning:随机掩盖原句中的original token,根据label去预测这些original token。

即,在PET中,我们是在得到input的情况下去预测正确的label;而在这里,反过来思考,我们可以在得到label后,

去预测正确的input。

具体地,当构造的pattern中的label正确时,我们让模型去预测original token;当label不正确时,我们不让模型去预测original token。

以下图中句子为例(预测两个句子是否是蕴含关系):

sent1:Oil prices rise

sent2:Oil prices fall back

correct label:no

incorrect label:yes

如果我们随机掩盖的token是“Oil”

对于correct label,得到pattern:[mask] price rise, no, oil price fall。我们让模型去预测[MASK]对应的token是Oil。

对于incorrect label,得到pattern:[mask] price rise, yes, oil price fall。这时候,由于label不是正确的,所以模型不

去预测这个[MASK],即不计算损失。

7.EFL:Entailment as Few-Shot Learner


模型和示例

EFL不采用pet、lm-bff等完形填空式(close question)的prompt的finetune方法,而是将finetune的任务转变成了文本蕴含任务(textual entaiment),

并对标签设计了细粒度的文本描述。

它会先在文本蕴含任务中先进行训练得到基础模型,英文上文本蕴含任务MNLI、中文对应的是CMNLI、OCNLI,然后做具体任务。数据集具体见CLUE项目。

1)对单句的分类任务:

eg:将情感分类任务变成文本蕴含任务

sent1:I like the movie

label:positive

xin= [CLS]sent1[SEP]sent2[EOS]= [CLS]I like the movie[SEP]This indicates positive user sentiment[EOS](正例的构建: entail)

其中sent2 =This indicates positive user sentiment,为对label的细粒度的文本描述

another sent:I cannot believe what happend

xin=[CLS]sent1[SEP]another sent[EOS]= [CLS]I like the movie[SEP]I cannot believe what happend[EOS](负例的构建: not entail)

再使用finetune的方法判断[CLS]为entail或者not entail

2)多句的分类任务:

eg:对BUSTM,退化成普通的finetune任务

sent1: 女孩到底是不是你

sent2: 你不是女孩么

xin=[CLS]sent1[SEP]sent2[EOS](正例的构建: entail)

其中sent2就是原句的sent2

another sent1: 天上有只鸟

another sent2: 有只鸟在天上飞

xin=[CLS]sent1[SEP]another sent1[EOS](负例的构建:not entail)

再使用finetune的方法判断[CLS]为entail或者not entail

3) 对多分类任务:

eg: 例如多情感分类任务(包含五个情感分类great/good/ok/bad/terrible):

sent1=I am happy to help others

label:great

xin=[CLS]sent1[SEP]sent2[EOS]

xin1=[CLS]I am happy to help others[SEP]this is great[EOS](正例:entail)

xin2=[CLS]I am happy to help others[SEP]this is good[EOS](负例:not entail)

xin3=[CLS]I am happy to help others[SEP]this is ok[EOS](负例:not entail)

xin4=[CLS]I am happy to help others[SEP]this is bad[EOS](负例:not entail)

xin5=[CLS]I am happy to help others[SEP]this is terrible[EOS](负例:not entail)

标签描述的影响:


 

我们发现:

1)模型潜力:最好的模型表现(54.34分)远低于人类的表现(82.49分),即比人类低了近30分。说明针对小样本场景,模型还有很大的潜力;

2)新的学习范式:在小样本场景,新的学习方式(PET,Ptuning)的效果以较为明显的差距超过了直接调优的效果。

如在通用的基础模型(RoBERTa)下,PET方式的学习比直接下游任务微调高了近8个点。

3)零样本学习能力:在没有任何数据训练的情况下,零样本学习在有些任务上取得了较好的效果。如在119个类别的分类任务中,模型在没有训练的情况下

取得了27.7的分数,与直接下游任务微调仅相差2分,而随机猜测的话仅会获得1%左右的准确率。这种想象在在67个类别的分类任务csldcp中也有表现。

引用 Reference

1、GPT3: Language Models are Few-Shot Learners

2、PET: It's Not Just Size That Matters: Small Language Models Are Also Few-Shot Learners

3、必须要GPT3吗?不,BERT的MLM模型也能小样本学习

4、LM_BFF: Making Pre-trained Language Models Better Few-shot Learners

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

6、论文:GPT Understands, Too

7、文章:P-tuning:自动构建模版,释放语言模型潜能

8、ADAPET: Improving and Simplifying Pattern Exploiting Training

9、EFL:Entailment as Few-Shot Learner

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值