论文链接:
https://arxiv.org/abs/2012.14978
后台回复【210315】可直接下载论文PDF~
少样本问题是NLPer必须直面的一个棘手问题。
BERT等预训练语言模型的兴起,确实会在一定程度上缓解少样本问题。毕竟,原来的那种「大模型、少样本」会造成严重的过拟合。
只有BERT还远远不够。紧接着,我们尝试结合领域内的大量未标注数据进行「持续预训练」,就是不要停止预训练!在一些场景里,这确实可以进一步提升泛化性能。
但,也许还是不够:万一标注数据规模进一步减少呢?万一需要在线学习未知label呢?
不同NLP任务的少样本问题、难度是不一样的。一些弱/半监督/few-shot方法大多“砸”向了文本分类或者机器翻译,而少样本NER任务却不常见。
NER任务中的少样本问题也许会更为复杂,例如:
分类问题通常是sentence-level的,而NER是token-level的,其会更加聚焦于细粒度信息。换句话说:NER任务对于局部噪声会更为敏感,一些弱/半监督方式带来的噪声或许会让NER“难以容忍”。
NER任务标注起来要麻烦很多,这从直觉上就能感觉到:要“扣”边界、理解实体类型,边界问题、复杂嵌套问题都比较麻烦。特别是在「定制化开发」场景中,实体标签数量成百上千,试想一下:如果进行大规模标注,也太昂贵了吧。
不可否认,在具体的业务场景中、对于少样本NER问题,也许继续标注数据、采取规则&词典等方式是首选方式,但我们NLPer总要追逐一下“星辰大海”吧: 看看机器学习方式能否解决这一问题?
本文将介绍一篇对「少样本NER」进行全面调研的paper:《Few-Shot Named Entity Recognition: A Comprehensive Study》,来自微软+韩家炜课题组。
这是第一次针对「少样本NER」进行全面调研的paper,在10个公开NER数据上进行了探究,并超过此前少样本NER的SOTA。
本文的组织结构如下:
一览无余:3种少样本NER解决方案
论文首先肯定了预训练模型对于缓解少样本问题的有效性,因此采取「BERT+SoftMax」作为少样本NER的backbone。
为解决上述「少样本NER」问题,论文共提出3种解决方案(如上图所示):
方案1:原型方法(Prototype Methods):元学习的一种,首先构建实体类型的原型表示,然后通过距离度量(最近邻)给token分别标签。
方案2:带噪有监督预训练(Noisy Supervised Pretraining):持续预训练的一种改进方式,利用大规模、带噪的NER标注数据进行「有监督预训练」,提升下游NER任务的鲁棒性和泛化性。
方案3:自训练(Self-Training):半监督学习的一种常见方式,通过对领域内的未标注数据预测soft标签进行自训练。
这里首先po出论文对上述3种方案的总体建议:
原型方法适合于标注数据极少的场景,或者在线学习场景(不能更新参数)、对未知类型实体进行预测。
带噪有监督预训练可显著提升少样本NER的鲁棒性和泛化性,是一种有效方式。
自训练可利用大量未标注数据,「未标注」与「标注」数据比例高、少样本NER指标增益明显;
「预训练+自训练」结合使用是一个“完美配方”,效果更佳!
方案1:元学习-原型方法
原型方法属于元学习(Meta-learnin,即learn to learn)。Meta-learning共分为Training和Testing两个阶段。
Training阶段流程为:
将训练集采样成Support Set(支撑集)和Query Set(查询集)两部分;
基于Support Set训练1个分类模型;
利用模型对Query Set进行分类预测生成predict labels;
通过query labels和predict labels进行Loss计算并更新参数。
Testing阶段利用Training阶段的分类模型在Novel class(未知类别)的Support Set上进行进一步学习(参数不更新),学到的模型对Novel class的Query set进行预测。
原型方法
如上图所示,上述原型方法针对「少样本NER」主要基于度量学习进行,具体过程如下:
Training阶段:首先基于Support Set对每一个实体类型构建原型表示(提取所有构成该实体类型的token表示并进行平均加权),然后对Query Set中的每个token与实体原型表示进行距离度量、构建对比loss学习。
Testing阶段:对每一个新token与实体原型表示进行距离度量,选取最近邻的实体原型标签。
方案2:持续预训练-带噪有监督预训练
在相关领域或任务上进行持续预训练,已经被证明是提升下游任务泛化性的一个有效手段,也就是:不要停止预训练!
但上述持续预训练通常针对于分类问题,很少有直接针对NER的持续预训练研究。
这篇论文针对「少样本NER」问题、基于WiNER数据构建了「带噪有监督预训练」方法,如下图所示。
带噪有监督预训练
WiNER数据是基于6.8G Wikipedia数据、并通过Freebase进行自动标注得到的,自动标注得到NER标注准确率在77%,可见WiNER数据是含噪的。但由于WiNER数据是大规模的,因此其足以支撑下游的NER任务。
此外,需要注意的是:WiNER数据共包含113种实体类型,标签数量远大于下游NER任务、但却又相关: 通过利用先验信息,这种带噪预训练的方式可防止“少样本NER”的过拟合、并提升鲁棒性和泛化性。
本文「有监督预训练」的训练方式共有两种:第一种是softmax线性分类,第二种是上述介绍的原型方法。
方案3:半监督-自训练
自训练是我们所熟知的一种半监督学习方式,对于「少样本NER」的自训练步骤为:
步骤1: 基于原始标注数据训练一个NER教师模型。
步骤2: 通过NER教师模型对未标注数据预测soft标签。
步骤3: 基于「原始标注+soft标注」数据训练NER学生模型。
步骤4: 重复步骤1~3多次。
全面对比
论文基于10个公开NER数据集、并设置少样本条件,对上述3种方案进行了对比。由于实验繁多,这里直接给出结论:
原型方法在NER标注数据量极少的情况下,表现良好;
带噪有监督预训练在众多「少样本NER」设置下表现最佳,可见持续预训练的有效性,同时可提升NER的鲁棒性和泛化性。
「带噪有监督预训练+自训练」结合指标可进一步提升。
如上图所示,论文提出的方法也超越了之前「少样本NER」的SOTA,其中「带噪有监督预训练+自训练」效果最佳。
总 结
本文介绍了3种针对「少样本NER」的解决方案,虽然这些方法都十分简单直接、但却有效,也给我们提供了对「少样本NER」的宏观视角。最后,再次划一下重点:
持续预训练确实对下游任务很有效,针对NER提出的「带噪有监督预训练」确实是一个不错的选择:特别是我们已经积累大量实体词典的时候,可以充分利用这些词典自动标注数据、并进行有监督预训练。
「持续预训练+自训练」也许是解决少样本NER问题的一个有效方案。不要停止预训练,也不要放弃自训练!把二者结合起来吧!
Illustration byNatasha Remarchuk from Icons8
-The End-
本周上新!
关于我“门”
将门是一家以专注于发掘、加速及投资技术驱动型创业公司的新型创投机构,旗下涵盖将门创新服务、将门技术社群以及将门创投基金。
将门成立于2015年底,创始团队由微软创投在中国的创始团队原班人马构建而成,曾为微软优选和深度孵化了126家创新的技术型创业公司。
如果您是技术领域的初创企业,不仅想获得投资,还希望获得一系列持续性、有价值的投后服务,欢迎发送或者推荐项目给我“门”:
bp@thejiangmen.com
点击右上角,把文章分享到朋友圈
微信:thejiangmen
bp@thejiangmen.com
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.