论文笔记:Template-Based Named Entity Recognition Using BART

news2024/10/6 14:36:18

 论文来源:ACL 2021 Finding

论文链接:https://aclanthology.org/2021.findings-acl.161.pdf

论文代码:GitHub - Nealcly/templateNER: Source code for template-based NER 

笔记仅供参考,撰写不易,请勿恶意转载抄袭! 


 Abstract

        与资源丰富的源域相比,低资源的目标域具有不同的标签集(也就是说低资源的训练集与测试集的标签不交叉,测试集中的标签属于新的标签集合)。现有的方法使用基于相似性的度量,但是它们不能充分利用NER模型参数中的知识转移。为了解决这一问题,本文提出一种基于模板的NER方法,将NER视为sequence-to-sequence框架下的语言模型排序问题,将由候选命名实体span填充的原始句子和模板分别视为源sequence和目标sequence。进行推理时,模型需要根据相应的模板分数对每个候选span进行分类。本文分别在富资源任务和低资源任务进行了实验。

Introduction

        命名实体识别是自然语言处理中的一个基本任务,是根据预先定义的实体类别识别文本输入中提及的span,如“location”、“person”和“ganization”等,主流方法如BiLSTM等如图Figure 2(a)所示。

        基于距离的方法在很大程度上降低了域适应成本,尤其适用于目标域数量较多的场景,然而在标准域设置下的性能相对较弱。此外,它们在域适应能力受到两个方面的限制:① 目标域中标记的实例用于启发式最近邻搜索的最佳参数,而不是用于更新NER模型的网络参数,不能改善跨域实例的神经表示;② 这些方法依赖于源域和目标域之间相似的文本模式,当目标域的本文风格不同于源域时,可能会影响模型的性能。

        为了解决上述问题,本文研究了一种基于模板的方法,利用生成式预训练语言模型的小样本学习潜力进行序列标注。具体来说,如Figure 2所示,BART使用由相应的标记实体填充的预定义模板进行微调。例如,定义这样的模板:“<condidate_span> is a <entity_type> entity”,其中<entity_type>可以是“person”或“location”等,给定句子“ACL will be held in Bangkok”,其中“Bangkok”的标签是“location”,我们可以使用一个填充模板“Bangkok is a location entity”作为输入句子的编码器输出来训练BART。对于非实体span,使用模板“<condidate_span> is not a named entity”,这样可以对负输出序列进行采样。在推理过程中,将输入句子中所有可能的文本span枚举为候选命名实体,并根据模板上的BART分数将其分类为实体或非实体。

        本文所提方法的三个优点:

  1. 由于预训练模型具有良好的泛化能力,可以有效的利用新领域中的标记实例进行调优;
  2. 即使目标域和源域在文本风格上存在较大的差距,本文所提方法也更具有鲁棒性;
  3. 与传统方法相比,本文所提方法可以应用于命名实体的任意新类别,无需改变输出层参数,允许持续学习。

Template-Based Method

        本文将NER视为sequence-to-sequence框架下的语言模型排序问题。模型的源序列是一个输入文本X=\left \{ x_1,...,x_n \right \},目标序列T_{y_k,x_{i:j}}=\left \{ t_1,...,t_m \right \}是由候选文本spanx_{i:j}和实体类型y_k填充的模板。

Template Creation

        本文手工创建模板,其中一个槽用于candidate_span,另一个槽用于entity_type标签,并设置了一个一对一的映射函数来传递标签集L到一个单词集合Y,其中 L=\left \{ l_1,...,l_{\left | L \right |} \right \},如l_k="LOC"Y=\left \{ y_1,...,y_{\left | L \right |} \right \},如y_k="location",并使用单词集合中的单词来定义模板T_{y_k}^+

(例如<candidate_span> is a location entity),此外,还为非命名实体构造了一个非实体模板T^-(例如,<candidate_span> is not a named entity)。这样可以得到一个模板列表T=\left [ T_{y_1}^+,...,T_{y_{\left | L \right |}}^+,T^-\right ]。如Figure 2(c),模板T_{y_k,x_{i:j}} 为\left \langle x_{i:j} \right \rangle is a \left \langle y_k \right \rangleT_{y_k,x_{i:j}}^-\left \langle x_{i:j} \right \rangle is not a named entity,其中x_{i:j}是一个候选文本跨度。

Inference

        本文首先枚举一个句子\left \{ x_1,...,x_n \right \}中所有可能的span,并用准备好的模板进行填充。为了提高效率,本文将一个span的n-grams数量限制在1~8个,因此为每个句子创建8个模板。然后使用微调的生成式预训练语言模型为每个模板T_{y_k,x_{i:j}}=\left \{ t_1,...,t_m \right \}分配一个分数,表示为:

         本文通过使用任意的生成式预训练语言模型为每个模板打分来计算每个实体类型的分数f\left (T_{y_k,x_{i:j}}^+ \right )和非实体类型分数f\left ( T_{x_{i:j}}^- \right ),然后将得分最高的实体类型分配给文本span{x_{i:j}}。本文使用的生成式预训练语言模型BART。

        如果两个span存在文本重叠,并且在推理中分配了不同的标签,本文会选择得分较高的span作为最终的决策,以避免可能出现的预测冲突。例如“ACL will be held in Bangkok”,通过使用局部得分函数f\left ( \cdot \right )可以将“in Bangkok”和“Bangkok”分别标记为“ORG”和“LOC”,此时会比较二者分数的大小,并选择得分较大的标签进行全局决策。

Training

        标记实体用于在训练期间创建模板,假设{x_{i:j}}的实体类型为y_k,则将文本span{x_{i:j}}和实体类型y_k填充到T^+,以创建目标句子T_{y_k,x_{i:j}}^+,并以相同方式来获取目标句子T_{x_{i:j}}^-。本文使用标记实体构建\left ( X,T^+ \right )对,并随机采样非实体文本span来构建负样本\left ( X,T^- \right )。负样本对是正样本对的1.5倍。

         给定一个序列对\left ( X,T \right ),将X输入到BART的编码器,然后获得句子的隐藏表示:

 单词t_c的条件概率定义为:

 其中,W_{lm}\in \mathbb{R}^{d_h\times \left | V \right |}b_{lm}\in \mathbb{R}^{\left | V \right |},V为BART的词汇表大小。以编码器输出与原始模板之间的交叉熵作为损失函数。

 Transfer Learning

         给定一个具有少量实例的新域\mathbb{P},标签集L^P可以与用于训练NER模型的标签集不同。因此,本文用新域的标签集来填充模板用于训练和测试,而模型和算法的其余部分保持不变。给定少量的\left ( X^P,T^P \right ),使用上述方法为低资源创建序列对,并微调在富资源域上的NER模型。

        此过程成本低,但能有效地传递标签知识。由于本文的方法输出的是一个自然句,而不是特定的标签,富资源和低资源的标签词都是预训练语言模型词汇的子集,这使得我们的方法可以利用“person”和“character”、“location”和“city”等标签相关性来增强跨域迁移学习的效果。

 Experiments

        不同的模板对实验结果的影响:

 标准NER设置下的模型性能:

        

        域内小样本设置: 

        本文在CoNLL03上构建了一个小样本学习场景,其中,某些特定类别的训练实例数量受到下采样的限制。特别地,将“MISC”和“ORG”设置为资源丰富的实体,将“LOC”和“PER”设置为资源贫乏的实体。我们对CoNLL03训练集进行下采样,产生3,806个训练实例,其中包括3,925个ORG”,1,423个“MISRC”,50个“LOC”和50个“PER”。由于文本样式在富资源和低资源实体类别中是一致的,因此我们将域中的场景称为少样本NER。结果如下:

 跨域小样本NER结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/81426.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]Python计算机毕业设计大学生扶贫创业平台Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

[附源码]Python计算机毕业设计SSM基于的企业人事管理系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【云计算与大数据技术】虚拟化技术、开源技术Xen、KVM、OpenVZ的讲解(图文解释 超详细)

一、系统虚拟化 系统虚拟化的核心思想是使用虚拟化软件在一台物理机上&#xff0c;虚拟出一台或多台虚拟机。步骤如下 利用虚拟化评估工具进行容量规划&#xff0c;实现同平台应用的资源整合&#xff1b; 首先采用容量规划工具决定每个系统的配置&#xff0c;利用虚拟化评估工…

【测绘程序设计】——潮汐调和分析

潮汐调和分析就是把某海面的潮位变化看成是许多分潮的余弦振动之和,根据最小二乘或频谱分析原理由实测数据计算出各个分潮平均振幅H和迟角g的过程。经典潮汐调和分析法有:Darwin分析法(频率成倍数的分潮看成一个分潮系)、Doodson分析法(周期相近的分潮看成一个分潮族)、现…

[附源码]Node.js计算机毕业设计大学生心理健康管理系统Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

redis学习笔记(三)--项目实践过程遇到的问题

怎么保证缓存和数据库数据的一致性&#xff1f; 1. 设置缓存过期时间 2. 数据的更新操作&#xff0c;先删除缓存&#xff0c;再更新数据库。如果我们先更新数据库&#xff0c;会导致其他业务线程读到缓存中的脏数据&#xff0c;所以数据库的更新操作一般是先删缓存 3. 延时双…

整流桥-交流电整直流电-桥式整流电路-电路电子-嵌入式开发-物联网开发

一、概述 本文主要讲解整流二极管的应用&#xff0c;整流的方式常见的两种为半波整流电路、桥式整流电路。本文我们将围绕桥式整流电路进行阐述。 二、电路图 在嘉立创商城&#xff0c;我们可以看到很多封装好的元件&#xff1a; 不过&#xff0c;其本质电路中有些就是桥式整流…

安卓玩机搞机技巧综合资源---MIUI14全机型首版下载链接 刷机方法 获取root步骤【十二】

接上篇 安卓玩机搞机技巧综合资源------如何提取手机分区 小米机型代码分享等等 【一】 安卓玩机搞机技巧综合资源------开机英文提示解决dm-verity corruption your device is corrupt. 设备内部报错 AB分区等等【二】 安卓玩机搞机技巧综合资源------EROFS分区格式 小米红…

Redis实战——秒杀业务优化

我们来回顾一下下单流程 当用户发起请求&#xff0c;此时会请求nginx&#xff0c;nginx会访问到tomcat&#xff0c;而tomcat中的程序&#xff0c;会进行串行操作&#xff0c;分成如下几个步骤 1、查询优惠卷 2、判断秒杀库存是否足够 3、查询订单 4、校验是否是一人一单 …

新型海上风电机组及压缩空气储能系统的建模与控制(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f468;‍&#x1f393;博主课外兴趣&#xff1a;中西方哲学&#xff0c;送予读者&#xff1a; &#x1f468;‍&a…

node+vue基于微信小程序的货物管理系统 计算机毕业设计

随着Internet的发展&#xff0c;人们的日常生活已经离不开网络。未来人们的生活与工作将变得越来越数字化、网络化和电子化。本文以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff0c;它主要是采用java语言技术、node框架和微信小程序来完成对系统的设计。…

CookieSession 学习笔记

1 Cookie 1.1 Cookie的基本使用 1 概念 客户端会话技术&#xff0c;将数据保存到客户端&#xff0c;以后每次请求都携带Cookie数据请求 2 工作流程 服务端Servlet可以将给response设置Cookie,这样浏览器接收到的数据中&#xff0c;就含有Cookie数据,下次请求时&#xff0c;会…

大数据期末课设~电商网站日志数据分析

目录 一、背景介绍... 1 二、大数据平台架构设计... 2 三、大数据平台系统设计... 7 四、数据分析与达成目标... 11 五、Spark综合编程与python可视化... 33 六、总结与体会... 50 一、背景介绍 一般情况下&#xff0c;大数据平台指的是使用了Hadoop、Spark、Storm、Fli…

可交易性(tradability)检验即协整性检验:线性关系

两个时间序列的线性关系表示为&#xff1a; 左边是两个时间序列的线性组合。是协整系数。 右边是残差序列&#xff08;residual series),表示为由两部分组成。是均衡值&#xff08;equilibrium value&#xff09;&#xff0c;是一个均值为0的时间序列&#xff0c;可以构造为均…

系统 CPU 突然飙升且 GC 频繁,如何排查

处理过线上问题的同学基本上都会遇到系统突然运行缓慢&#xff0c;CPU 100%&#xff0c;以及Full GC次数过多的问题。 当然&#xff0c;这些问题的最终导致的直观现象就是系统运行缓慢&#xff0c;并且有大量的报警。 本文主要针对系统运行缓慢这一问题&#xff0c;提供该问题…

R语言中的岭回归、套索回归、主成分回归:线性模型选择和正则化

概述和定义 在本文中&#xff0c;我们将考虑一些线性模型的替代拟合方法&#xff0c;除了通常的 普通最小二乘法。这些替代方法有时可以提供更好的预测准确性和模型可解释性。最近我们被客户要求撰写关于模型选择的研究报告&#xff0c;包括一些图形和统计输出。 主成分分析P…

19. Dropout从零代码实现以及简洁实现

1. 从零实现 要实现单层的暂退法函数&#xff0c; 我们从均匀分布U[0,1]中抽取样本&#xff0c;样本数与这层神经网络的维度一致。 然后我们保留那些对应样本大于p的节点&#xff0c;把剩下的丢弃。 在下面的代码中&#xff0c;我们实现 dropout_layer 函数&#xff0c; 该函…

【统一融合:U2Fusion】

U2Fusion: A Unified Unsupervised Image Fusion Network &#xff08;U2Fusion&#xff1a;一种统一的无监督图像融合网络&#xff09; 研究提出了一种新颖的统一监督和管理端到端图像融合网络,称为U2Fusion,能够解决不同的融合问题,包括多模态,多曝光,和多聚焦融合。利用特征…

网络0323和网络2303分类过程的比较

( A, B )---2*30*2---( 1, 0 )( 0, 1 ) 用网络分类A和B&#xff0c;让A是&#xff08;0&#xff0c;0&#xff09;&#xff08;1&#xff0c;1&#xff09;&#xff0c;让B是&#xff08;1&#xff0c;0&#xff09;&#xff08;1&#xff0c;1&#xff09;。测试集均为&#…

MySQL学习记录(8)MySQL锁

5、锁 5.1、概述 ​ 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中&#xff0c;除传统的计算资源&#xff08;CPU、 RAM、I/O&#xff09;的争用以外&#xff0c;数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有 效性是所有数据库必…