论文阅读笔记(三)【ACL 2021】Locate and Label: A Two-stage Identifier for Nested Named Entity

论文标题
Locate and Label: A Two-stage Identifier for Nested Named Entity Recognition

论文链接
https://arxiv.org/abs/2105.06804

代码链接
https://github.com/tricktreat/locate-and-label

摘要

(1)过去的难点:
传统的NER研究只涉及平面实体,忽略了嵌套实体。基于跨度的方法将实体识别视为跨度分类任务。这些方法虽然具有处理嵌套NER的能力,但计算量大,对边界信息的忽略,对部分匹配实体的跨度利用不足,长实体识别困难。
(2)模型:
为了解决这些问题,我们提出了一种两阶段实体标识符( Two-stage Identifier)。
(3)方法:
首先,我们通过对seed span(种子跨度) 进行过滤和边界回归来生成跨度建议(span proposal),以定位实体;
然后用相应的类别标记边界调整后的跨度建议(就是对跨度建议再次调整)。

Introduction

(1)NER: 命名实体识别是自然语言处理中的一项基本任务,重点是识别引用实体的文本范围。NER广泛用于下游任务,如实体链接和关系提取。

(2)当今的NER中,嵌套NER是有所关注的;
主要方法:比如序列模型,基于跨度的方法;
序列模型:序列标记模型预测边界,但在没有动态调整的情况下,边界信息没有得到充分利用。其次,实体部分匹配的跨度会被认为是负跨度。

基于跨度的方法是将NER视为了一项具有识别嵌套NER固有能力的分类任务。首先,由于大量低质量的候选跨度(就是上面说的部分匹配的跨度)导致较高的计算成本。然后,很难识别长实体,因为在训练期间枚举的跨度不是无限长的。其次,边界信息没有得到充分利用,而模型定位实体很重要。

(3)动机:
在目标检测领域,他们将检测任务分为两个阶段,首先生成候选区域,然后对候选区域的位置进行分类和微调。所以,我们将检测任务分为了两个阶段。

(4)贡献:

  • 我们提出了一种新的两阶段标识符,用于NER,首先定位实体,然后标记实体。我们将NER视为边界回归和跨度分类的联合任务;
  • 我们有效地利用边界信息。通过进一步识别实体边界,我们的模型可以调整边界以准确定位实体。在训练边界回归器时,除了边界级平滑L1损失外,我们还使用跨度级损失,用于测量两个跨度之间的重叠;
  • 在训练过程中,我们不是简单地将部分匹配的跨度视为负面示例,而是基于IoU(交并比)构造软示例;
  • KBP17、ACE04和ACE05数据集

Method

在第一阶段,我们设计了一个span建议模块,该模块包含两个组件:过滤器和回归器。过滤器将种子跨度分为上下文跨度跨度建议,使用IoU,在这些种子跨度中,而重叠程度较低的部分为上下文跨度(contextual spans),实体重叠程度较高的部分为提案跨度(proposal spans)。并过滤掉前者以减少候选跨度。回归器通过调整跨度建议的边界来定位实体,以提高候选跨度的质量。
在第二阶段,我们使用实体分类器来标记实体类别,以减少数量并提高质量。在训练期间,为了更好地利用部分与实体匹配的跨度,我们通过基于IoU对模型的损失进行加权来构造软示例。此外,我们将软非最大抑制(soft NMS)(Bodla et al.,2017)算法应用于实体解码,以消除误报。

Two-stage Identifier.

1. Token representation:

① 句子: 一个句子有n个单词,对于第i个单词,我们通过concat它的word embedding xiwx_{i}^{w}xiw,上下文word embeddingxilmx_{i}^{lm}xilm,词性标注POS xiposx_{i}^{pos}xipos,字符级嵌入xicharx_{i}^{char}xichar来得到它的表示。
word embedding xiwx_{i}^{w}xiw由具有相同设置的BiLSTM模块生成;对于上下文的Word embedding,我们遵循2020年的文章获取目标标记的上下文相关嵌入,每边有一个环绕的句子。最后concat后放入BiLSTM来获得隐藏状态获得最终的word representation hi∈Rdh_{i}\in\R^{d}hiRd

2. Seed Span Generation

(1)获取种子跨度集
种子跨度集 B=b0,...,bkB = {b_{0},...,b_{k}}B=b0,...,bk,其中bi=(sti,edi)b_{i} = (st_{i},ed_{i})bi=(stiedi表示的第i个种子跨度; K表明了生成的种子跨度的数量,并且sti,edist_{i},ed_{i}stiedi表明了span的起始位置
(2)为种子跨度分配类别和回归目标
具体来说,我们将B中的每个种子跨度与跨度具有最大IoU的基本真相实体配对。
IoU(A,B)=A∩BA∪BIoU(A,B)=\frac{{A}\cap{B}}{{A}\cup{B}}IoUAB=ABAB,其中A和B是两个跨度; 我们根据两个之间IoU将他们分为了正跨度和负跨度;正跨度是和gt是同一标签,负跨度则是None标签;正负跨度比例:1:5

3. Span Proposal Module

将跨度分为了跨度建议(质量高)和上下文跨度(质量低),目的是消除后者,降低成本。 Span Propos Module由两部分组成: Span建议过滤器和边界回归器; 前者用于删除上下文范围并保留范围建议,而后者用于调整范围建议的边界以定位实体。

(1) Span Proposal Filter

最大池跨度表示法
将整个种子跨度从stist_{i}stiedied_{i}edi计算最大池化;

跨度表示
concat最大池化表示和种子跨度的第一个和最后一个单词;

概率计算
最后我们可以计算bib_{i}bi属于该span proposal的概率

其中所有的hih_{i}hi是某个单词的最终表示; [;]表示的是concat; MLP包含了两个线性层和一个GELU激活函数

(2) Boundary Regressor
尽管有很高的重叠,但是不能命中实体,还需要利用边界回归损失调节边界值(内部和外部信息)。
跨度回归表示
这里我们使用了外部边界单词(index加一和减一)表示和最大池化跨度表示进行concat;

计算左右边界的偏移

4. 实体分类器模块

调整偏移后的边界

开始位置st~i\widetilde{st}_{i}sti、结束位置ed~i\widetilde{ed}_{i}edi

新的边界单词池化

交叉熵损失

其中MLP包含了两个线性层和一个GELU激活函数。

5.Training Objective

我们不将所有的部分匹配的跨度视为负跨度,而是分配权重,对于第i个跨度bib_{i}biwiw_{i}wi设置为:

其中α∈{α1,α2}\alpha\in\{\alpha_{1},\alpha_{2}\}α{α1α2}表明了分别用在第一和第二阶段的IoU的阈值;eie_{i}ei表明是bib_{i}bi的gt标签;μ\muμ是聚焦参数,可平滑调整部分匹配示例的下加权率; 如果μ\muμ = 0,那么上式就是一个hard one;此外,如果跨度未与任何实体重叠或与某些实体完全匹配,则损失重量wiw_{i}wi=1。

focal loss(焦点损失)
跨度建议过滤器;解决不平衡问题;

其中,wiw_{i}wi是第i个实例的权重; γ\gammaγ表示的是focal loss的聚焦参数;该损失包含了两个组件,平滑L1L_{1}L1loss是在boundary水平,而重叠loss是在span水平;

其中di={ed~i,ed^i}d_i = \{\widetilde{ed}_{i},\widehat{ed}_{i}\}di={edi,edi}ei={st~i,st^i}e_i = \{\widetilde{st}_{i},\widehat{st}_{i}\}ei={sti,sti}st^i\widehat{st}_{i}stied^i\widehat{ed}_{i}edit^il\widehat{t}_{i}^{l}tilt^ir\widehat{t}_{i}^{r}tir表明了ground-truth的左边界、右边界、左偏移和右偏移

交叉熵损失

其中wiw_{i}wi通过式子11计算出来的第i个例子的权重,我们联合训练滤波器、回归器和分类器,因此总损失计算如下:

(5)实体encoding
经过上面的步骤,我们已经获得了跨度方案的分类概率和边界偏移回归结果。基于它们我们需要提取句子中所有的实体(找到开始位置,结束位置和实体的类别)。
我们使用yi=argmax(pi)y_i = argmax(p_i)yi=argmax(pi)作为跨度sis_isi的标签,用scorei=max(pi)score_i = max(p_i)scorei=max(pi)作为sis_isi属于yiy_iyi条目的置信度。这样si=(li,ri,yi,scorei)s_i = (l_i,r_i,y_i,score_i)si=(li,ri,yi,scorei)。鉴于分数的阈值δ\deltaδ和span的提议S={si,...,sN}S=\{s_i,...,s_N\}S={si,...,sN},N表示成了span proposals的数目,我们使用Soft-NMS算法来过滤false positives????我们按分数的顺序遍历span proposals(转化术语被表示为sis_isi),并且调整其它span proposals (sjs_jsj)的分数为f(si,sj)f(s_i, s_j)f(si,sj),这个被定义为

其中u∈(0,1)u\in(0,1)u(0,1)表示分数的衰减系数,k表示IoU阈值。之后我们保持所有的span proposals用score>δscore>\deltascore>δ作为最终的提取实体。

Experiment

1. 实验设置

数据集
ACE04、ACR05、KBP17和GENIA
ACE04、ACR05: 嵌套数据集, 7个实体类别;划分为train:dev:test = 8:1:1
KBP17:包含了GPE, ORG, PER, LOC, and FAC;划分为train:dev:test = 866:20:167
GENIA:生物学嵌套命名实体数据集,包含五种实体类型,包括DNA、RNA、蛋白质、细胞系和细胞类型类别。train:test = 9:1

评价指标
当实体边界和实体标签同时正确时,我们使用严格的评估指标来确认实体是正确的。我们使用精确性、召回率和F1分数来评估性能

参数设置
GloVE 和 BERT是一个encoder;
对于GENIA我们用BioWordvec、BERT with BioBERT 代替GloVE ;
维度设置为:xiw,xilm,xipos,xicharx_{i}^{w},x_{i}^{lm},x_{i}^{pos},x_{i}^{char}xiw,xilm,xiposxichar和h_{i}}分别是100,1024,50,50和1024;
epoch: 25
Adam优化器和一个线性warmup-decay学习率策略; 在filter、regressor和entity classifier之前用0.5的学习率。

2. 实验结果

在nested NER任务的结果

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

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

相关文章

WDK中出现的特殊代码

WDK中出现的特殊代码 我们用本章的最后一个小节来介绍一些在WDK示例代码中见到的特殊形式编码。这些代码在Win32应用程序的编程中很少见到,读者需要首先熟悉一下。 首先是参数说明宏。参数说明宏一般都是空宏,最常见的是IN和OUT。其实定义很简单&…

局域网lan设置_4G工业路由器的WAN、LAN组网方式

4G工业路由器组网通常是通过WAN口、LAN口来实现,计讯带大家详细了解关于4G工业路由器WAN、LAN组网方式。1、WAN口加4G组网方式该组网方式同时拥有两个可以连接到广域网的接口(以太网口的WAN口和M2M网络的4G口),两路通道形成互补及备份,同时接…

LeetCode 894. 所有可能的满二叉树(递归)

1. 题目 满二叉树是一类二叉树&#xff0c;其中每个结点恰好有 0 或 2 个子结点。 返回包含 N &#xff08;1 < N < 20&#xff09;个结点的所有可能满二叉树的列表。 答案的每个元素都是一个可能树的根结点。 答案中每个树的每个结点都必须有 node.val0。 你可以按任…

论文阅读笔记(四)【ACL 2021】FEW-NERD: A Few-shot Named Entity Recognition Dataset

摘要 过去的难点&#xff1a; 过去的都是粗粒度的&#xff1b; Few-NERD&#xff1a; 一个大规模的人类注释的小样本NERD数据集&#xff0c;它具有8种粗粒度和66种细粒度实体类型的层次结构。Few-NERD由来自维基百科的188238个句子组成&#xff0c;包含4601160个单词&#xff…

Exchange2003启用web页面登陆(表单型身份验证)

一、 owa中启用表单验证 在Exchange server 2003中配置OWA启用基于表单的身份验证(忽略SSL): o 在服务器&#xff0d;协议&#xff0d;HTTP&#xff0d;HTTP虚拟服务器右键&#xff0d;勾选"启用基于表单的身份验证"&#xff0c;出现提示要求SSL&a…

LeetCode 241. 为运算表达式设计优先级(动态规划)

1. 解题 给定一个含有数字和运算符的字符串&#xff0c;为表达式添加括号&#xff0c;改变其运算优先级以求出不同的结果。 你需要给出所有可能的组合的结果。有效的运算符号包含 , - 以及 * 。 示例 1: 输入: "2-1-1" 输出: [0, 2] 解释: ((2-1)-1) 0 (2-(1-1)…

python具体应用过程_python公开课|Python for循环的具体应用就是python流程控制的核心,想学会就来看看...

【摘要】在这个科学技术高速发展的时代&#xff0c;越来越多的人都开始选择学习编程软件&#xff0c;那么首先被大家选择的编程软件就是python&#xff0c;也用在各行各业之中&#xff0c;并被大家所熟知&#xff0c;所以也有越来越多的python学习者关注python问题&#xff0c;…

知识图谱入门知识(三)词性标注

学习内容 基本大多数的问题都可以转为词性标注问题&#xff01; 这里只做记录&#xff0c;都是别人的回答&#xff01; 常用的概念 什么是token tokenization就是通常所说的分词&#xff0c;分出的每一个词语我们把它称为token。 链接 词性标注参考一 自然语言处理之序列标…

sql 查讯本日 本周 本月

sql 查询本周本月问题---求相差天数 select datediff(day,2004-01-01,getdate()) --1.一个月第一天的 SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) --2.本周的星期一 SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0) sel…

python爬虫入门必备正则_python 爬虫入门之正则表达式 一

python 正则表达式知识点正则 常用符号. : 匹配任意字符&#xff0c;换行符除外* &#xff1a; 匹配前一个字符 0 次或者无限次&#xff1f; &#xff1a; 匹配前一个字符 0次或者1次.* &#xff1a; 贪心算法.*&#xff1f; &#xff1a;非贪心算法()&#xff1a; 括号内的数…

李宏毅机器学习(三)Word Embedding

学习内容 前情提要 使用一个vector来表示一个word&#xff0c;怎么做&#xff1f; 1-of-N Encoding 维度就是所有单词的量 缺点&#xff1a; dog 和 cat是不能归为一类的&#xff0c;只能单独的表示&#xff1b; Word CLass 将同类别的归为一类&#xff1b; 但是更高层的tok…

IBM T61 键盘没有反映。

出现这个问题不是一次两次了&#xff0c;就是启动后&#xff0c;键盘所有按键&#xff0c;小红帽都不能用&#xff0c;必须重启好几次才能用。 有时候键盘能用&#xff0c;但是打开 dw ,复制不能用&#xff0c;真是懊恼。 今天又出现这个情况&#xff0c;我偶然想到是不是和昨天…

LeetCode 680. 验证回文字符串 Ⅱ

1. 题目 给定一个非空字符串 s&#xff0c;最多删除一个字符。判断是否能成为回文字符串。 示例 1: 输入: "aba" 输出: True示例 2: 输入: "abca" 输出: True 解释: 你可以删除c字符。 注意: 字符串只包含从 a-z 的小写字母。字符串的最大长度是50000。来…

python的序列类型及其特点_Fluent Python 笔记——序列类型及其丰富的操作

序列的分类Python 标准库用 C 语言实现了丰富的序列类型的数据结构&#xff0c;如&#xff1a;容器序列(能存放不同类型的数据)&#xff1a;list、tuple、collections.deque 等扁平序列(只容纳同一类型的数据)&#xff1a;str、bytes、bytearray、memoryview、array.array>&…

论文阅读翻译(全)【一直更新】

学习内容 这里面包含了阅读中翻译的概述&#xff01; CNN is not invariant to scaling and rotation&#xff1b; invariant&#xff1a; 不变的&#xff1b; not invariant&#xff1a; 不是不变的 CNN是变化的&#xff01; 不和不消除&#xff01; 1. 词语 1.1 词形 泛…

精选15个国外CSS框架

下面一起来了解一下各种不同的CSS框架吧: 1.960 Grid System 960网格系统是一个通过提供通常使用的尺寸简化网站开发流程的努力的结果&#xff0c;基于960像素的页面宽度。它有两种类型&#xff0c;12和16列&#xff0c;他们可以独立使用或是协同使用。 2.WYMstyle CSS Framewo…

LeetCode 682. 棒球比赛

1. 题目 你现在是棒球比赛记录员。 给定一个字符串列表&#xff0c;每个字符串可以是以下四种类型之一&#xff1a; 1.整数&#xff08;一轮的得分&#xff09;&#xff1a;直接表示您在本轮中获得的积分数。 2. ""&#xff08;一轮的得分&#xff09;&#xff1a;…

Lighttpd 的安装配置(web服务器软件)

Lighttpd 的安装配置2006-07-16 01:06lighttpd(http://lighttpd.net/)和apache一样是开源的&#xff0c;与apache相比&#xff0c;虽然功能不及apache完善&#xff0c;稳定性也不如apache&#xff0c;但是&#xff0c;不管是服务静态页面&#xff0c;还是服务动态内容(CGI&…

苹果企业证书_IOS福利9月15日苹果企业证书已更新!重新下载即可!

(视频素材来源于网上)支持系统&#xff1a;苹果上一期你可能错过的&#xff1a;全网短视频免费去水印&#xff0c;还支持解析VIP影视&#xff01;最近众号修改推送的机制&#xff0c;请大家一定要把公众号&#xff1a;玩转网络科技&#xff0c;设置成“星标⭐”&#xff0c;再点…

LeetCode 697. 数组的度

1. 题目 给定一个非空且只包含非负数的整数数组 nums 数组的度的定义是指数组里任一元素出现频数的最大值 你的任务是找到与 nums 拥有相同大小的度的最短连续子数组&#xff0c;返回其长度。 示例 1: 输入: [1, 2, 2, 3, 1] 输出: 2 解释: 输入数组的度是2&#xff0c;因为…