Tong M, Wang S, Xu B, et al. Learning from Miscellaneous Other-Class Words for Few-shot Named Entity Recognition[J]. ACL2021.

介绍

目前工作忽略了 O 标签实体潜在的语义信息。要是能从 O 标签中,再区分出一种之前未定义的类,就可以获取更多的实体之间的关系。

从 O 标签实体中识别出未定义类,有两大难点:

  1. 语义混乱:各种各样的类型都有可能归类为 O,这取决于标注的人怎么划分类型的,所以包含了大量的噪音
  2. 缺少 golden label:要划分的新类型,我们不知道长什么样子,没有样例和标准可以参考

为了解决这些问题,本文提出了MUCO(Mining Undefined Classes from Other-class)。在给 O 类型建原型的的时候,不止建一个原型,而是建立多个原型。如下图右边黑色圈圈所示。

这样做的原因是,如果两个类型AB,A和B是任务相关的,A可以聚成一个簇,那么B也可以聚成一个簇。

本文主要贡献:

  1. 提出MUCO方法,可以丰富O类型的语义表示
  2. 对于未定义的类型,提出了一个 zero-shot 分类方法
  3. 大量的实验,证明方法有效性,还可以迁移到其他领域

相关工作

本文作者将小样本NER方法分为四类:

  1. 知识增强:利用本体、知识库作为旁白提升NER表现,但是有低覆盖率的问题
  2. 跨语言增强:用其他语言做外部监督信号,当语言差异大的时候,效果反而下降
  3. 跨领域增强:同上
  4. 主动学习:挑选信息量最大的样本人工标注,需要额外的人力

目前处理 O 标签的相关工作较少:

  1. Deng et al. 2020 训练了一个二分类器区分 O 和其他预定义的类型
  2. Fritzler et al. 2019 不训练 O 的原型,而是设置了超参数 b o b_o bo,来表示距离相似性
    [1] Shumin Deng, Ningyu Zhang, Jiaojian Kang, Yichi Zhang, Wei Zhang, and Huajun Chen. 2020. Metalearning with dynamic-memory-based prototypical network for few-shot event detection. In Proceedings of the 13th International Conference on Web Search and Data Mining, pages 151–159.
    [2] Alexander Fritzler, Varvara Logacheva, and Maksim Kretov. 2019. Few-shot classification in named entity recognition task. In Proceedings of the 34th ACM/SIGAPP Symposium on Applied Computing, pages 993–1000.

方法

检测未定义类

受到迁移学习的启发,先训练预先定义好的类,让它们聚在一起,如果是任务相关的未定义的类,使用之前训练好的模型,那么这些未定义好的类也会聚在一起。

上面的方法作者叫做 zero-shot 分类方法,可以分为3个步骤:

zero-shot 分类方法

step1: 在预先定义好的类中训练原型

其实就是训练 embedding,让向量更好的在空间中聚类,即缩小类内距离。

embedding 方法采用 BERT。距离定义为:
d ( x , p y ) = − f θ ( x ) T p y d\left(x, p_{y}\right)=-f_{\theta}(x)^{T} p_{y} d(x,py)=fθ(x)Tpy
其中:

  • x:输入
  • f():embedding 方法
  • p y p_y py:原型中心

损失函数定义为:
L ( θ 1 ) = − log ⁡ exp ⁡ ( − d ( x , p y ) ) ∑ p c ∈ P c exp ⁡ ( − d ( x , p c ) ) L\left(\theta_{1}\right)=-\log \frac{\exp \left(-d\left(x, p_{y}\right)\right)}{\sum_{p_{c} \in P_{c}} \exp \left(-d\left(x, p_{c}\right)\right)} L(θ1)=logpcPcexp(d(x,pc))exp(d(x,py))

step2:训练二分类器

根据位置特征信息,训练一个二分类器,判断两个点是否是在同一个簇中,每两个点都能判断的话,最后也能聚类成功。

具体方法是,假设原始的 embedding 方法为 f θ ( x ) f_θ(x) fθ(x),两个样本embedding之后的向量表示为 h i , h j h_i, h_j hi,hj。经过step1训练之后的embedding方法为 f ~ θ ( x ) \tilde f_θ(x) f~θ(x),embedding之后的向量表示为 h ~ i , h ~ j \tilde h_i, \tilde h_j h~i,h~j。那么这两个样本是同一个簇的概率为:
b i j = W ( [ h i ; h j ; h ~ i ; h ~ j ; ∣ h i − h j ∣ ∣ h ~ i − h ~ j ∣ ; ∣ h i − h ~ i ∣ ; ∣ h j − h ~ j ∣ ] ) + b \begin{aligned} &b_{i j}=W\left(\left[h_{i} ; h_{j} ; \tilde{h}_{i} ; \tilde{h}_{j} ;\left|h_{i}-h_{j}\right|\right.\right. \\ &\left.\left.\quad\left|\tilde{h}_{i}-\tilde{h}_{j}\right| ;\left|h_{i}-\tilde{h}_{i}\right| ;\left|h_{j}-\tilde{h}_{j}\right|\right]\right)+b \end{aligned} bij=W([hi;hj;h~i;h~j;hihjh~ih~j;hih~i;hjh~j])+b

训练的交叉熵损失函数为:
L ( θ 2 ) = 1 N 2 ∑ i N ∑ j N ( − y i j ∗ log ⁡ ( b i j ) + ( 1 − y i j ) ∗ log ⁡ ( 1 − b i j ) ) \begin{aligned} L\left(\theta_{2}\right)=\frac{1}{N^{2}} \sum_{i}^{N} \sum_{j}^{N} &\left(-y_{i j} * \log \left(b_{i j}\right)\right.\\ &\left.+\left(1-y_{i j}\right) * \log \left(1-b_{i j}\right)\right) \end{aligned} L(θ2)=N21iNjN(yijlog(bij)+(1yij)log(1bij))

step3:用二分类器预测 O 类型数据,并聚类

将两个输入 x u , x v x_u, x_v xu,xv 输入到step2训练好的二分类器中,如果输出的概率大于某个阈值 γ γ γ,那么认为这两个输入是同一个类。一些 O 类型的样本可能还是分不到某个类中,就不再继续分了。

对于每个未定义的类型 o i ∈ O = [ o 1 , o 2 , . . . , o r ] o_i ∈ O = [o_1, o_2,...,o_r] oiO=[o1,o2,...,or],计算每个类的中心,然后用余弦相似度重新给O标签样本打上软标签。这里打上的标签并不是具体的或者之前定义的标签,只是用 o 1 , o 2 o_1, o_2 o1,o2 这些代指。

联合训练

将之前分类好的 O = [ o 1 , o 2 , . . . , o r ] O = [o_1, o_2,...,o_r] O=[o1,o2,...,or],同样也拿过来训练,也就是说实体类型变多了,然后作者在损失函数上加了一个可训练的缩放因子 s s s
L ( θ 3 ) = − log ⁡ exp ⁡ ( − s d ( x , p y ) ) ∑ p ∈ { P c ∪ P t } exp ⁡ ( − s d ( x , p ) ) L\left(\theta_{3}\right)=-\log \frac{\exp \left(-s d\left(x, p_{y}\right)\right)}{\sum_{p \in\left\{P_{c} \cup P_{t}\right\}} \exp (-s d(x, p))} L(θ3)=logp{PcPt}exp(sd(x,p))exp(sd(x,py))

实验

baseline方法:

  • BERT
  • PN:原型网络
  • LTC:LTapNet+CDT
  • WPN:Warm Prototypical Network,迁移学习的原型网络
  • MAML

  • 相比于监督学习方法BERT和PN,few-shot方法更好
  • 在 few-shot 方法中,本文提出的 MUCO 效果最好
  • 不管是英文数据集还是中文数据集,MUCO 都能提升 F1 值

总结

这篇论文关注到了以前学者忽略的O类型标签的问题,在做小样本NER的时候,O标签确实很多学者都跳过了,挺新颖的一种视角。

给O标签继续分类的依据是,迁移学习。如果两个标签AB是相关的,如果A标签能聚成一个类,那么B标签也能聚成一个类。所以作者考虑在已知的标签中训练,再迁移到未知的O标签中。

ACL21 - Learning from Miscellaneous Other-Class Words for Few-shot Named Entity Recognition相关推荐

  1. Distantly Supervised Named Entity Recognition using Positive-Unlabeled Learning(DS——NER识别(减少人工参与))

    目录 Distantly Supervised Named Entity Recognition using Positive-Unlabeled Learning 前言 文章贡献 Risk定义--基 ...

  2. 【论文精读】A Survey on Deep Learning for Named Entity Recognition

    A Survey on Deep Learning for Named Entity Recognition 前言 Abstract 1. INTRODUCTION 2. BACKGROUND 2.1 ...

  3. 论文阅读:(2020版)A Survey on Deep Learning for Named Entity Recognition 命名实体识别中的深度学习方法

    A Survey on Deep Learning for Named Entity Recognition 命名实体识别中的深度学习方法 目录 A Survey on Deep Learning f ...

  4. 【论文笔记-NER综述】A Survey on Deep Learning for Named Entity Recognition

    本笔记理出来综述中的点,并将大体的论文都列出,方便日后调研使用查找,详细可以看论文. 神经网络的解释: The forward pass com- putes a weighted sum of th ...

  5. [论文阅读笔记05]Deep Active Learning for Named Entity Recognition

    一,题目 Deep Active Learning for Named Entity Recognition[NER任务的深度主动学习] 来源:ICLR 2018 原文:DEEP ACTIVE LEA ...

  6. 论文阅读:A Survey on Deep Learning for Named Entity Recognition

    这是一篇2020年发的命名实体识别的综述性论文,从NER的语料库,定义,评估指标,到深度学习中的NER的技术都有涉及到. A Survey on Deep Learning for Named Ent ...

  7. [论文笔记]AAAI-2021-Continual Learning for Named Entity Recognition

    [论文笔记] 2021-AAAI-Continual Learning for Named Entity Recognition 0 写在前面 什么是持续学习? 我们人类有能够将一个任务的知识用到另一 ...

  8. Simple and Effective Few-Shot Named Entity Recognition with Structured Nearest Neighbor Learning

    1. abstract 我们提出了一个基于最近邻学习和结构化推理的简单few-shot命名实体识别(NER)系统.我们的系统使用在源域上训练的监督NER模型作为特征提取器.在多个测试域中,我们发现在这 ...

  9. A Survey on Deep Learning for Named Entity Recognition论文笔记

    前言:研究课题定为特定领域的命名实体识别,所以先阅读一篇综述,在此简单记录阅读过程. 摘要 在文章中,首先介绍现有的NER资源,包括标记的NER语料库及现成的NER工具,然后对现有的工作进行了分类:输 ...

最新文章

  1. Oracle 11g Release 1 (11.1) Data Pump 导入模式
  2. 深入解析Javascript中this关键字的使用
  3. Google Lyra Android版开源 支持3kbps语音聊天
  4. c语言二叉树的还原,由中序遍历和层次遍历还原二叉树。C语言实现
  5. (转)GDB 使用方法
  6. python视频提取音频_python脚本实现mp4中的音频提取并保存在原目录
  7. 电脑故障扫描修复软件_常见的电脑故障及处理方法,教你几招,不求人,自己也能修复...
  8. 3D 语义分割、目标检测、实例分割是什么神仙操作?TF 3D 技术让你一目了然
  9. 基于Matpower的电力系统潮流计算原理及仿真设计(详细)
  10. r语言 svycoxph_R语言之生信⑦Cox比例风险模型(单因素)
  11. python操作word文档,合并
  12. Buffer之position,limit,capacity
  13. MTK MT6771处理器,helio P60芯片参考资料
  14. Mybatis的特性详解——动态SQL
  15. 中国农业银行研发中心2021实习生笔试题
  16. 畜禽养殖智能环境监控系统
  17. bat执行cmd命令
  18. Axon Framework官方文档(五)
  19. 企业安全建设丨标准化建设之网络安全应急响应浅析
  20. 斜率优化之凸包优化与李超线段树

热门文章

  1. 大盘指数受哪些因素影响
  2. c语言开发简历如何写,分享一份C语言写的简历
  3. 如何实现开关量输入与继电器输出联动功能RS485串口通讯
  4. 县城惊现“双十一后”经济,先淘后卖日赚千元
  5. Python负数取余总结
  6. 几个常见的简单的算法(暴力法,递推法,枚举法,递归法,分治法,贪心法,回溯法)
  7. 玄幻开局鸿蒙系统,玄幻开局鸿蒙圣骨
  8. 设计模式—状态机模式
  9. CCD摄像机与CMOS摄像机区别
  10. 手机无root 抓包