ACL21 - FEW-NERD:A Few-shot Named Entity Recognition Dataset

Ding N, Xu G, Chen Y, et al. Few-NERD: A Few-Shot Named Entity Recognition Dataset[J]. ACL-IJCNLP 2021.

Website:https://ningding97.github.io/fewnerd/

Github:https://github.com/thunlp/Few-NERD

Abstract

  • 目前问题:做 few-shot NER 的实体大部分都是粗粒度的

  • FEW-NERD,大规模人工标注的 few-shot NER 数据集,包括

    • 8个粗粒度、66个细粒度实体类型
    • 188238句话,4601160个词,每个词都有两个标签(粗粒度标签、细粒度标签)
  • FEW-NERD是第一个 few-shot NER 数据集,也是目前最大的人工构建的 NER 数据集

  • FEW-NERD数据集链接:https://ningding97.github.io/fewnerd/

Introduction

  • 之前常用的 NER 数据集如 OntoNotes、CoNLL’03、WNUT’17 等,只有4-18个粗粒度的实体类型,使得构建足够多的 “N-way”元任务和相关特征学习变得困难。
  • 对于基准设置,作者设计了三个任务的数据集,具体区别在第六节介绍

N-way K-shot Sampling strategies

请添加图片描述

伪代码解释:

  • 输入:
    • 数据集 X X X
    • 标签集 y y y
    • N-way 的 N,所有标签的类型
    • K-shot 的K,每个类别要采集多少个样本
  • 输出:采样结果
  • 初始化 support set S S S 为空,采样到的每个类别的计数 C o u n t [ i ] = 0 Count[i] = 0 Count[i]=0
  • 循环
    • 随机取一个样本 ( x , y ) ∈ X (x, y) ∈ X (x,y)X,尝试计算,加了这个样本之后有多少个类别 |Count|,和当前样本类别已经采集到的数量 Count[i]。
    • 如果:当前已经采集到的样本类别 |Count| 超过了 N个,或者当前样本类别已经采集的数量 Count[i] 超过 2K 个,则舍弃当前采集到的样本,重新采样。
    • 否则:将采集到的样本加入到 support set S S S 中,同时更新 Count[i]。
  • 循环结束:直到 N 个类别采集到的样本数量都大于等于 K 个

Collection of FEW-NERD

  • 实体类型是精心设计的:包括8大粗粒度类别一共66个细粒度类别

  • 标注方法采用 IO,是这个类型或者不是这个类型,例如

    • 请添加图片描述
  • 标注的段落,每个类别选1000段,共66000段,平均每段长61.3个词

  • 70个人标注,平均每人花费32小时

  • 对每个批次的数据,选择10%的句子进行二次验证,句子精度高于95%

Data Analysis

FEW-NERD 和其他主流数据集比较
请添加图片描述
计算每个类别的相似度:
请添加图片描述
发现粗粒度类别的相似度差异大,粗粒度内的细粒度类别相似度高,这和直觉上是一致的。

Benchmark Settings

作者基于 FEW-NERD 做了三个任务的数据集。
请添加图片描述

Standard Supervised NER
Few-shot NER

Few-shot NER的核心思路是在少量样本中学习新的类别

作者首先基于类别将数据集划分成 E t r a i n ; E d e v ; E t e s t E_{train}; E_{dev}; E_{test} Etrain;Edev;Etest,要求三个集合的类别不能重叠。通常一个句子中包含多个实体和多个类别,假设实体类别有A,B两种,那么这个句子随机分到包含 A 类别的集合或包含 B 类别的集合,同时将不属于这个集合的类别的实体类别标为 O。这样三个集合的类别互斥,从而让学习器学得新的类型。

划分的策略,有如下两种:

  • 依据粗粒度的类别划分,train/dev/test 比例大致为:0.6/0.13/0.27,由此得到:FEW-NERD (INTRA)
  • 依据细粒度的类别划分,train/dev/test 比例大致为:0.6/0.2/0.2,由此得到:FEW-NERD (INTER)

Experiments

使用了四个BERT变体模型,做上述三个任务

  • BERT-Tagger —— supervised task
  • Proto-BERT —— few-shot
  • NNShot —— few-shot
  • StructShot —— few-shot

四个模型的参考论文,最后两个模型出自同一论文
BERT-Tagger —— Devlin J, Chang M W, Lee K, et al. Bert: Pre-training of deep bidirectional transformers for language understanding[J]. ACL 2019.
Proto-BERT —— Snell J, Swersky K, Zemel R S. Prototypical networks for few-shot learning[J]. ACL 2017.
NNShot and StructShot —— Yang Y, Katiyar A. Simple and effective few-shot named entity recognition with structured nearest neighbor learning[J]. EMNLP 2020.

Supervised NER

在监督学习任务中,BERT-Tagger的结果为:
请添加图片描述

  • 相比于其他的数据集,动不动0.9几的F1值,在Few-NERD的效果下降很多,因为实体类型多了
  • Person 的平均F1值最高,Product 的平均F1值最低,所有粗粒度类别的 Other 类型的F1值都是最低。
    • 因为这些类别的语义相对稀疏,并且难以识别分类
Few-shot NER

Few-shot 的基线,策略采用上文描述的策略,不过设置了四种采样设定:

  • 5 way 1~2 shot
  • 5 way 5~10 shot
  • 10 way 1~2 shot
  • 10 way 5~10 shot

各模型效果如下:
请添加图片描述

  • 之前的SOTA模型效果都一般,任务很有挑战性
  • 10 way 1~2 shot 的采样形式跑出来效果都相对较差,5 way 5~10 效果都相对较好
  • 在 5~10 shot采样方式上 ProtoBERT 相比于其他两个的效果要好
  • StructShot在两个任务上的提升最大,表明:维特比算法在推理阶段可以消除一些 false positive 的预测
  • NNShot 和 StructShot 的最近邻机制不太稳定。prototypical models会更稳一些,因为原型的的本质实际上是正则化
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值