Span 抽取和元学习能碰撞出怎样的新火花,小样本实体识别来告诉你!
近日,阿里云机器学习平台 PAI 与华东师范大学高明教授团队、达摩院机器智能技术 NLP 团队合作在自然语言处理顶级会议 EMNLP2022 上发表基于 Span 和元学习的小样本实体识别算法 SpanProto。这是一种面向命名实体识别的小样本学习算法,采用两阶段的训练方法,检测文本中最有可能是命名实体的 Span,并且准确判断其实体类型,在仅需要标注极少训练数据的情况下,提升预训练语言模型在命名实体识别任务上的精度。
论文:
Jianing Wang, Chengyu Wang, Chuanqi Tan, Minghui Qiu, Songfang Huang, Jun Huang, Ming Gao. SpanProto: A Two-stage Span-based Prototypical Network For Few-shot Named Entity Recognition. EMNLP 2022
背景
大规模预训练语言模型的广泛应用,促进了 NLP 各个下游任务准确度大幅提升,然而,传统的自然语言理解任务通常需要大量的标注数据来微调预训练语言模型。例如,对于命名实体识别任务,模型的训练需要一定数量的语料来学习 Token 与 Label 之间的依赖关系。但是在实际应用中,标注数据资源比较稀缺,传统的序列标注方法很难达到较好的效果,因为其需要解决实体识别中的标签依赖(Label Depnedency)关系,同时也无法应对实体嵌套(Nested Entity)问题。因此,我们研究一种基于 Span 和元学习的小样本实体识别技术。特别地,我们关注于解决 N-way K-shot 的实体识别场景。下图所展示了一个 2-way 1-shot 实体识别任务:
在上述 2-way 1-shot 任务中,包含了若干个 Support Set 和 Query Set,每个 Support Set 只包含 2 个类别的实体(即上图的 PER 和 LOC,除了非实体的“O”类别),且每个类别的标注实体数量只有 1 个。
算法概述
为了解决上述小样本命名实体识别问题,SpanProto 采用两阶段方法,即将实体识别任务分解为两个阶段,分别是 Span Extraction 和 Mention Classification。模型框架图如下所示:
Span Extraction
首先,SpanProto 使用与类别无关的 Span 抽取器,抽取出可能的命名区间。在这个工作中,我们参考了 Baffine Decoder 和 Global Pointer 的技术,设计了 Global Boundary Matrix,显式让模型学习到实体区间的边界信息。在这个 Matrix 中,每一个坐标元素(i, j)恰好可以表示一个区间[i:j],如果这个区间是一个实体,那么元素将对应于 1,如果这个区间不是一个实体,那么元素将对应于 0:
Span Extraction 模型采用下述基于 Span 的 Cross-Entropy 损失函数进行训练:
通过上述模型,SpanProto 可以利用 Global Boundary Matrix 抽取出所有可能的实体。
Mention Classification
在 Mention Classification 模块中,SpanProto 采用标准的 Prototypical Learning 技术给每个 Span 分配标签,即最小化每个 Span 表征与对应类别的原型的欧式距离。与此同时,我们考虑到命名实体识别的 False Positive 问题,即存在一些抽取的 Span 在当前 Episode 内没有合适的类别可以分配的情况。例如,在上图中,Span Extraction 阶段模型会抽取出 August 15. 1954 为一个 Span,它可能是一个“Time”类别的实体,但是在当前 episode 任务中其实只有 PER 和 LOC,没有合适的标签给到这个 Span。针对 False Positive,我们采用 Margin Learning 方法,最大化这些 Span 表征与所有实体类别的原型向量的欧式距离:
整体算法流程
SpanProto 整体算法流程图如图所示:
算法精度评测
为了验证 SpanProto 算法的有效性,我们在 Few-NERD 这一标准评测数据集上进行了测试,效果证明 SpanProto 对精度提升明显:
我们也对算法的模块进行了详细有效性分析,我们可以发现 Span Extraction 和 Mention Classification 均对模型有一定贡献。
为了更好地服务开源社区,SpanProto 算法的源代码即将贡献在自然语言处理算法框架 EasyNLP 中,欢迎 NLP 从业人员和研究者使用。
EasyNLP 开源框架:https://github.com/alibaba/EasyNLP
参考文献
Chengyu Wang, Minghui Qiu, Taolin Zhang, Tingting Liu, Lei Li, Jianing Wang, Ming Wang, Jun Huang, Wei Lin. EasyNLP: A Comprehensive and Easy-to-use Toolkit for Natural Language Processing. EMNLP 2022 (accepted)
Juntao Yu, Bernd Bohnet, Massimo Poesio. Named Entity Recognition as Dependency Parsing. ACL 2020: 6470-6476
Ning Ding, Guangwei Xu, Yulin Chen, Xiaobin Wang, Xu Han, Pengjun Xie, Haitao Zheng, Zhiyuan Liu. Few-NERD: A Few-shot Named Entity Recognition Dataset. ACL/IJCNLP 2021: 3198-3213
GlobalPointer:用统一的方式处理嵌套和非嵌套 NER. https://spaces.ac.cn/archives/8373
论文信息
论文名字:SpanProto: A Two-stage Span-based Prototypical Network For Few-shot Named Entity Recognition
论文作者:王嘉宁、汪诚愚、谭传奇、邱明辉、黄松芳、黄俊、高明
论文 pdf 链接:https://arxiv.org/abs/2210.09049
版权声明: 本文为 InfoQ 作者【阿里云大数据AI技术】的原创文章。
原文链接:【http://xie.infoq.cn/article/7d462b857a4fe6cea15951d4f】。文章转载请联系作者。
评论