©PaperWeekly 原创 · 作者 | 蔡杰

单位 | 北京大学硕士生

研究方向 | QA

当前的机器学习和深度学习模型都需要大量的标注数据来进行训练,以达到一个较好的效果。但是在带 label 的训练样本很少或很难获取的情况下,直接训练模型通常不会有很好的泛化能力,反而容易造成模型对样本过拟合以及对目标任务欠拟合。针对这几个问题少样本学习(few shot learning)应运而生,少样本学习指的是在 NLP 任务中只使用少量的标记样本训练模型,使得模型可以有效的学习小样本中的信息。本文针对 NER 领域中的 few shot learning 做了一个综述。

论文标题:

Few-Shot Named Entity Recognition: A Comprehensive Study

论文链接:

https://arxiv.org/pdf/2012.14978.pdf

Background on Few-shot NER

命名实体识别任务可以看做是一个序列标注任务,输入输出分别是如下形式:

其中输入 X 是长度为 个 tokens 的文本,输出 Y 是长度为 个 tokens 的标签。整个带有标签的训练集合可以表示为如下形式:

其中 表示的是该集合中样本的个数。

Pipeline Method:在 NER 领域中常用的基于预训练模型的 Pipeline 方法是将预训练模型作为特征提取器,在预训练模型之后直接添加一层 Linear 和 Softmax,训练的时候调整 Linear 的参数,预训练模型的参数可以选择训练也可以选择保持不变。具体模型图如下:

三个问题

可能有人会问为什么要将 Few-shot 应用到 NER 中,毕竟 NER 可以通过一些远程监督的方法获取到 NER 标注样本,但是远程监督方法获取到的样本会存在很多噪声,其次无法保证远程监督标注的领域完全适应以及词表的完整性,也就是会有实体 OOV 的问题。因此将 Few-shot 方法应用 NER 也是一个很值得研究的方向。

了解了背景和基本做法之后,本文提出了将 few shot learning 应用于 NER 领域中需要面临的三个核心问题:

1. How to adapt meta-learning such as prototype-based methods for few-shot NER?

如何将元学习方法作为 prototype-based 的方法应用到 few-shot NER 领域中?

2. How to leverage freely-available web data as noisy supervised pre-training data?

如何利用大量免费可用的网页数据构造出 noisy supervised 方法中的预训练数据?

3. How to leverage unlabeled in-domain sentences in a semi-supervised manner?

如何在半监督的范式中利用好 in-domain 的无标注数据?

基于以上三个核心问题,作者整体分了三个方向来介绍当前 few shot learning 在 NER 领域的应用:

Prototype Methods

这里提到的 prototype methods 是基于 meta-learning 方法的 few-shot 方法。meta-learning 的核心思想就是让模型在多个具有大量标注数据的任务上学习,从而具备泛化到某个只有少量标注数据的任务上。

首先定义两个集合 S 和 Q:

Support set(M 个 entity types, 每个 entity types 有 K/K' 个 sentence)

prototypes:在与单个 token 相同的表示空间中将 entity type 表示为向量。(也就是把 label 映射为对应 的向量,向量的构造方法是将所有属于该类别的 token 向量求和平均。)

对于一个新输入的 token 来说,将其输入模型后得到的输出和所有 prototypes 进行距离计算:

训练过程中 support set 中的 entity type 会通过采样不断迭代变化,infer 的时候则是对新的 token 使用最近邻(NN)算法计算最接近的那个类别。

[1] 在 few shot 的 NER 上探索了原型网络(prototypical network),但是 [1] 只使用了 RNN 作为主干模型,没有利用基于 Transformer 的体系结构的模型来对文本进行表示。因此可能该方法可能并没有将原型网络的效果发挥出来。

本文的工作类似于 [2] [3],他们都使用 KNN 来分配实体类型,但不同之处在于他们是将最近的 K 个邻居与每个个体 token 进行比较,而本文则是通过原型(prototype)来进行比较。因此,当给定示例的数量增加时,本文的方法更 scalable。

Noisy Supervised Pretraining

我们都知道通过预训练模型可以用于获取每个句子甚至每个 token 的 embedding 表示。但这些表示有个特点就是他们对于所有下游任务都是不可知的,也就是说预训练模型在预训练过程中对待每个 token 都是一致的。但是很多下游任务中,对某些特定的 token 需要有特别的处理。比如在 NER 任务中,对于“Mr. Bush asked Congress to raise to $ 6 billion”这句话,模型需要能够辨认出“Congress”是一个 entity,而“to”只是一个普通的 token。

那如何才能让预训练模型具备这种识别实体的能力呢?作者提出了一种利用大规模带噪声的网页数据(WiNER)来进行噪声监督预训练(noisy supervised pre-training)的方法。在 WiNER 中,包含着相较于下游任务更为丰富的实体类型,比如“Musician”和“Artist”通常表示的是两种不同的实体类型,而在常见的 NER 评测标准中二者都被归类为“Person”类型。

因此作者认为使用大规模带噪声的数据预训练模型时,模型既可以学到区分实体的能力,又不会学到和下游任务完全一致的信息导致模型过拟合。

Self-Training

Self-Training 是一种半监督学习方法,利用到了大量无标注数据和少量标注数据。

1)先通过标注数据学习一个 teacher 模型;

2)通过 teacher 模型给无标注数据进行标注 soft 标签;

3)使用标注数据和具有 soft 标签的数据训练 student 模型;

以上训练过程可以以迭代的方式进行,从而提升模型效果:

Expriments

之后本文在以上提到的几种方法上做了像相应的实验:

  • backbone network:pre-trained base RoBERTa

  • dataset:

Results

  • LC :linear classifier fine-tuning(fine-tuning 整个模型)

  • P :prototype-based method

  • NSP :noisy supervised pre-training

  • ST:self-training

  • 通过比较第 1 列和第 2 列(或比较第 3 列和第 3 列),可以看出在大多数数据集中(特别是在 5-shot 的设置下)噪声监督预训练取得了最好的结果,这表明 NSP 任务赋予了模型更强的提取 NER 相关特征的能力。

  • 第 1 列和第 3 列之间的比较的是 LC 和基于原型的方法之间的差别:虽然基于原型的方法在 5-shot 中比 LC 在 CoNLL、WikiGold、WNUT17 和 Mul-tiwoz 上获得了更好的性能,但在其他数据集和平均统计数据上,它不如 LC,说明基于原型的方法只有在标记数据非常有限的情况下才能产生更好的结果。

  • 当比较第 5 列和第 1 列(或比较第 6 列和第 2 列)时,可以看到使用 Self-Training 始终比仅使用标记数据进行微调更有效,这表明 ST 是能够有效利用域内未标记数据的方法。

  • 第 6 列则展示了大多数情况下 F1 的最高分数,表明本文提出的三个方案是相互补充的,并且可以结合起来在实践中产生最佳结果。

Conclusion

本文总结了目前 few shot NER 任务中所用到的相关方法,主要包括三种基本方法及其组合:基于原型的方法(Prototype Methods),有噪声监督的预训练(Noisy Supervised Pretraining)和自训练(Self-Training)。本文在 10 个不同设置的公共数据集上对它们进行了深入比较。所有这些方法都可以提高 PLM 的泛化能力,能够从只有几个 token 的 example 中学习,其中有监督的预训练和自训练尤其有效。

参考文献

[1] Alexander Fritzler, V. Logacheva, and M. Kretov. 2019. Few-shot classification in named entity recognition task. Proceedings of the 34th ACM/SIGAPP Sympo- sium on Applied Computing.

[2] M. Ziyadi, Yuting Sun, A. Goswami, Jade Huang, and W. Chen. 2020. Example-based named entity recog- nition. ArXiv, abs/2008.10570.

[3] Sam Wiseman and K. Stratos. 2019. Label-agnostic sequence labeling by copying nearest neighbors. ArXiv, abs/1906.04225.

特别鸣谢

感谢 TCCI 天桥脑科学研究院对于 PaperWeekly 的支持。TCCI 关注大脑探知、大脑功能和大脑健康。

更多阅读

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

微软、UIUC韩家炜组联合出品:少样本NER最新综述相关推荐

  1. 悉尼大学 伦敦大学联合出品:知识蒸馏最新综述

    ©作者 | 夏劲松 学校 | 哈尔滨理工大学 研究方向 | 知识蒸馏.图神经网络 摘要 深度学习通过参数量巨大的模型,近几年中在多个领域取得了较好的效果,但是往往因为模型体积过大(模型的体积指的就是模 ...

  2. 历史上华人计算机科学家,郑州大学韩家炜、张宏江两位校友在世界顶尖计算机科学家排名中再度名列华人科学家和中国大陆科学家之首...

    近日,Guide2Research网站公布了2021年世界顶尖1000名计算机科学家排名.继上一年度之后,郑州大学继续有2位校友进入榜单.其中,78级校友韩家炜再度位居华人科学家之首,综合排名世界第4 ...

  3. 行业首个少样本NER数据集,清华联合阿里达摩院开发 | ACL-IJCNLP 2021

    博雯 发自 凹非寺 量子位 报道 | 公众号 QbitAI NER(命名实体识别)作为NLP的一项基本任务,其日常是训练人工智能(zhang)对一段文本中的专有名词(人名.地名.机构名等)进行识别和分 ...

  4. NeurIPS 2021 | 微软研究院提出CLUES,用于NLU的少样本学习评估

    ©作者 | 雪麓 单位 | 北京邮电大学 研究方向 | 序列标注 自然语言理解 (NLU) 的最新进展部分是由 GLUE.SuperGLUE.SQuAD 等基准驱动的.事实上,许多 NLU 模型现在在 ...

  5. 访韩家炜教授记录(部分)

    我之前了解了一下,龙星计划今年是第四届了是吧?是2002年开始第一届的吧? 对,对 您第一年的时候就会来讲学了是吗? 对,第一年我是在北大,也是和这个安排差不多,在北大讲了一个星期的课,但是那次时间比 ...

  6. 5300亿NLP模型“威震天-图灵”发布,由4480块A100训练,微软英伟达联合出品

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 丰色 发自 凹非寺 量子位 报道 | 公众号 QbitAI 5300 ...

  7. MS|谢黎炜组发现混合益生菌制剂及其代谢产物可缓解结肠炎

    目前,炎症性肠病(Inflammatory Bowel Disease, IBD)由于发病率高且治愈率低,现已成为全球公共卫生问题.虽然该病的发病机制尚不清楚,但肠道微生物群与炎症信号之间存在的潜在关 ...

  8. 微软15年,他组乐队、写歌、出书、讲课、打桥牌,样样有名堂

    大家好!我是韩老师. 分享一篇微软同事 Raymond 写的关于另一位微软同事 Xiaowu Hu(胡晓武)的文章. Xiaowu Hu 在微软15年,他组乐队.写歌.出书.讲课.打桥牌,样样有名堂. ...

  9. BETA:由清华大学等多家研究机构联合提出的面向SSVEP-BCI应用程序的大型基准测试数据库...

    点击上面"脑机接口社区"关注我们 更多技术干货第一时间送达 在第五届脑机接口论坛上,高小榕教授介绍了其研究小组所公开和共享的脑机接口领域数据集,下面介绍一下由清华大学等多家研究机构 ...

最新文章

  1. ArcGIS API for JavaScript 4.4学习笔记[新] AJS4.4和AJS3.21新特性
  2. VC++多文档实例编程分析
  3. 如何理解RESTful的幂等性
  4. linux静态路由添加自启动,LINUX添加静态路由
  5. js 获取url参数(QueryString)
  6. java代码执行了两次_Java中JComboBox的itemStateChanged事件执行两次的解释
  7. 【C#学习笔记】单精度和双精度浮点型操作留意。
  8. 一篇带你完全掌握线程的博客
  9. Android的图片压缩并上传
  10. 最长上升子序列LIS 动态规划 二分查找算法
  11. VB.net小技巧系列目录
  12. 双闭环调速 matlab,双闭环直流调速系统仿真(Matlab).ppt
  13. html修改鼠标手势,css要怎么设置鼠标手势?
  14. catia制作物料明细_CATIA课时:符合GB的物料清单模板设置视频教程_翼狐网
  15. C++ 栈实现逆波兰式求解运算式和两栈共享存储空间
  16. 期权定价模型之Merton模型的校准与定价【python量化】
  17. 支付宝 ACQ.TRADE_NOT_EXIST 解决方案
  18. 子网掩码是什么,可以做什么
  19. 《科研伦理与学术规范》 期末考试,题目文档汇总(免费分享 )
  20. 蘑菇街Android组件与插件化

热门文章

  1. fastdfs 测试客户端_分布式文件服务 FastDFS (第一篇)
  2. 网络工程师历年试题解析(PDF文字版)2004-2009
  3. JS 基础事件的用法
  4. 【转】Asp.net MVC Comet推送
  5. 赶集网人事调整:三月内两副总离职
  6. 电脑功耗测试软件_聊一款“躺着都中枪”的笔记本电脑
  7. c语言 号咋打,C语言C语言中的开头#号如何打? – 手机爱问
  8. jsbridge实现及原理_如何实现一个优雅的jsBridge
  9. thinkphp5 图片压缩旋转_【好工具】在线免费无限制的PDF处理工具(转换、编辑、分割、合并、压缩)...
  10. oracle restart 静默安装,CentOS下静默安装Oracle 10.2.0.1.0