《Few-Shot Named Entity Recognition: A Comprehensive Study》论文笔记

2023-10-18 05:40

本文主要是介绍《Few-Shot Named Entity Recognition: A Comprehensive Study》论文笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Few-Shot Named Entity Recognition: A Comprehensive Study

最近发现读论文get idea有点困难,不如参考大佬的笔记来做做总结,今天主要总结一下few-shot NER,这是一篇few-shot NER的综述《Few-Shot Named Entity Recognition: A Comprehensive Study》

1. Motivation

NER一种经典的方法是在PLM提供的表示之上添加一个线性分类器,并在域标签上使用交叉熵目标来微调整个模型,该方法很简单,且在几个基准上提供了强有力的结果。

但即使有了这些PLM,构建NER系统仍然是一项劳动密集型、耗时的任务。注释大量的域内标记标记语料库,需要丰富的领域知识和专家经验。然而,这与现实世界的应用程序场景形成了对比,后者只有非常有限数量的标记数据可用于新域。因此本文研究了一个具有挑战性但实际的研究问题:few-shot NER。本文做法如下:
在这里插入图片描述

  1. 创建原型作为不同实体类型的表示,并通过最近邻标准分配标签(we create prototypes as the representations for different entity types, and assign labels via the nearest neighbor criterion)
  2. 不断地使用带有噪声标签的web数据进行预训练,这些数据可以大量使用,以提高NER的准确性和鲁棒性(we continuously pre-train PLMs using web data with noisy labels that is available in much larger quantities to improve NER accuracy and robustness)
  3. 使用未标记的域内标记,使用自训练来预测它们的软标签,并结合有限的标记数据进行半监督学习。(we employ unlabeled in-domain tokens to predict their soft labels using self-training, and perform semi-supervised learning in conjunction with the limited labeled data)

2. Contribution

  1. 第一次对前人很少研究的few-shot NER方面进行了系统的研究,并提出了三种不同的方案及其组合。(We present the first systematic study for few-shot NER, a problem that is previously little explored in the literature. Three distinctive schemes and their combinations are investigated.)
  2. 对来自不同领域的10个公共NER数据集对这些方案进行了综合比较。(We perform comprehensive comparisons of these schemes on 10 public NER datasets from different domains.)
  3. 与现有的在少镜头和无训练的NER设置上的方法相比,本文所提出的方案简单且实现了SoTA性能。(Compared with existing methods on few-shot and training-free NER settings , the proposed schemes achieve SoTA performance despite their simplicity.)

3. Background on Few-shot NER

3.1 Few-shot NER

一个序列标注任务,输入长度为 T , X = [ x 1 , x 2 , . . . , x T ] T,X=[x_1,x_2,...,x_T] T,X=[x1,x2,...,xT],输出为相应的 T T T长度标记序列 Y = [ y 1 , y 2 , . . . , y T ] , y ∈ Y Y=[y_1,y_2,...,y_T],y∈Y Y=[y1,y2,...,yT],yY是一个热向量,指示来自预定义的离散标签空间的每个标记的实体类型。

NER的训练数据集通常由成对数据 D L = { ( X n , Y n ) } n = 1 N D^L=\{(X_n,Y_n)\}^N_{n=1} DL={(Xn,Yn)}n=1N组成,其中N是训练示例的数量。传统的NER系统是在标准的监督学习范式中进行训练的,这通常需要大量的成对例子,即N很大。在现实世界的应用程序中,更有利的场景是为每种实体类型只给出少量的标记示例(N很小),因为扩展标记数据增加了注释成本,降低了客户参与度,这就产生了few-shot NER这个挑战性的任务。

3.2 Linear Classifier Fine-tuning

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

4. Few-shot NER 三个问题

可能有人会问为什么要将 Few-shot 应用到 NER 中,毕竟 NER 可以通过一些远程监督的方法获取到 NER 标注样本,但是远程监督方法存在一定问题。

4.1 利用远程监督方法构建NER标注数据存在的问题
  • 远程监督方法获取到的样本会存在很多噪声;
  • 无法保证远程监督标注的领域完全适应以及词表的完整性(实体OOV的问题)

因此将 Few-shot 方法应用 NER 也是一个很值得研究的方向。

4.2 将 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 的无标注数据?)

5. Methods

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-smACyimd-1641432530439)(C:\Users\WHS\AppData\Roaming\Typora\typora-user-images\image-20220106090413076.png)]

5.1 Prototype-based Methods

基于 meta-learning 方法的 few-shot 方法(meta-learning 的核心思想:让模型在多个具有大量标注数据的任务上学习,从而具备泛化到某个只有少量标注数据的任务上)

  1. 定义两个集合 S 和 Q:

    s u p p o r t s e t S = { ( X i , Y i ) } i = 1 M × K support set S=\{(X_i,Y_i)\}^{M×K}_{i=1} supportsetS={(Xi,Yi)}i=1M×K

    q u e r y s e t Q = { ( X ^ i , Y ^ i ) } i = 1 M × K ′ query set Q=\{(\hat X_i,\hat Y_i)\}^{M×K'}_{i=1} querysetQ={(X^i,Y^i)}i=1M×K

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

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

    c m = 1 ∣ S m ∣ ∑ x ∈ S m f θ 0 ( x ) c_m=\frac{1}{|S_m|}\sum_{x∈S_m}f_{\theta_0}(x) cm=Sm1xSmfθ0(x)

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

    q ( y = I m ∣ x ) = exp ⁡ ( − d ( f θ 0 ( x ) , c m ) ) ∑ m ′ exp ⁡ ( − d ( f θ 0 ( x ) , c m ′ ) ) q(y=I_m|x)=\frac{\exp(-d(f_{\theta_0}(x),c_m))}{\sum_{m'}\exp(-d(f_{\theta_0}(x),c_{m'}))} q(y=Imx)=mexp(d(fθ0(x),cm))exp(d(fθ0(x),cm))

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

5.2 Noisy Supervised Pre-training
  • 动机

通过预训练模型可以用于获取每个句子甚至每个 token 的 embedding 表示。但这些表示有个特点就是他们对于所有下游任务都是不可知的,也就是说预训练模型在预训练过程中对待每个 token 都是一致的。但是很多下游任务中,对某些特定的 token 需要有特别的处理。

eg:在 NER 任务中,对于“Mr. Bush asked Congress to raise to $ 6 billion”这句话,模型需要能够辨认出“Congress”是一个 entity,而“to”只是一个普通的 token。

如何能让预训练模型具备这种识别实体的能力呢?

  • 方法: 利用**大规模带噪声的网页数据(WiNER)来进行噪声监督预训练(noisy supervised pre-training)**的方法。
  • 思路: 在 WiNER 中,包含着相较于下游任务更为丰富的实体类型,比如“Musician”和“Artist”通常表示的是两种不同的实体类型,而在常见的 NER 评测标准中二者都被归类为“Person”类型。(有点像是颗粒度)
  • 优点: 使用大规模带噪声的数据预训练模型时,模型既可以学到区分实体的能力,又不会学到和下游任务完全一致的信息导致模型过拟合
5.3 Self-training

类型: 半监督学习方法

特点: 利用到了大量无标注数据和少量标注数据

思路:

  1. 先通过标注数据学习一个 teacher 模型;
  2. 通过 teacher 模型给无标注数据进行标注 soft 标签;
  3. 使用标注数据和具有 soft 标签的数据训练 student 模型

6. Experiment

  • backbone network:pre-trained base RoBERTa
  • dataset:
    图片
6.1 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 的最高分数,表明本文提出的三个方案是相互补充的,并且可以结合起来在实践中产生最佳结果。
6.2 研究结果总结
  1. 有噪声监督的预训练可以显著提高NER的准确性(Noisy supervised pre-training can significantly improve NER accuracy, and we will release our pre-trained checkpoints.)
  2. 当未标记数据和标记数据之间的数据量比例较高时,自我训练可以持续提高少镜头学习(Self-training consistently improves few-shot learning when the ratio of data amounts between unlabeled and labeled data is high. )
  3. 原型学习的性能在不同的数据集上有所不同。当标记的示例数量较少,或者在无训练设置中给出新的实体类型时,它很有用。(The performance of prototype learning varies on different datasets. It is useful when the number of labeled examples is small, or when new entity types are given in the training-free settings.)

参考杨夕

这篇关于《Few-Shot Named Entity Recognition: A Comprehensive Study》论文笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/230537

相关文章

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi