A Sequence-to-Set Network for Nested Named Entity Recognition

news2024/11/25 13:57:43

原文链接:

https://www.ijcai.org/proceedings/2021/0542.pdf

IJCAI 2021

介绍

问题

         将嵌套NER视为span分类任务存在两个缺陷,不仅搜索空间大缺少了实体之间的交互

IDEA 

        因此作者提出了sequence-to-set的模型,不再提前给定span,而是提供一个固定的可学习向量集来自适应的学习span。与seq2seq方法相比,作者提出的模型对标签的顺序不敏感,因此更适用于无序的识别任务。 

方法

         模型包括三个部分:sequence encoderset decoder和一个基于双向匹配的损失函数。模型的整体结构如下图所示:

Sequence Encoder

         编码器使用BERT和BiLSTM,将第i个token的BERT embedding x_{i}^{bert}(对目标token与其前后两个token进行编码后得到的)、GloVE embedding x_{i}^{glove}、part-of-speech (词性)embedding x_{i}^{pos}和字符级的embedding x_{i}^{char}(由BiLSTM模型生成)进行concat后输入一个BiLSTM去得到最终的序列表征H\subseteqq R^{l\times d},如下图所示:

Entity Set Decoder

        Entity Set解码器遵循经典的transform架构,使用自注意力和交叉注意力机制来转化N个实体query。自注意力机制来捕获实体之间的依赖性,交叉注意力机制用来获得上下文信息,由于decoder是非自回归的,不需要用掩码机制来防止上下文泄露(这里不是很懂?),因此可以获得完整的上下文语义信息。

        N个实体query(Qspan)被M层的entity set decoder转化为output embedding。其中使用自注意力机制:Q = K = V = Qspan,交叉注意力机制:Q = Qspan,K = V = H。这个过程主要涉及多头注意力机制,该过程可以通过以下公式表示:

        然后将R作为FFN(由带有relu激活函数的三层感知机和一个线性层组成)的输入,其输出表示为U,由于预测的是一个固定大小为N(N被设定为大于序列中的实体数)的实体集,因此对于没有实体识别的情况,使用\o\varnothing来表示。给定一个实体query u 下的分类过程如下所示:

        其中dup(u,l)表示将u复制l次,得到l*d的大小,p^{c}p^{l}p^{r}分别表示实体类别、左右边界的可能性。

Bipartite Matching

         在计算训练损失之前,首先需要在预测的实体集中和golden实体集中找到一个最佳匹配(由于模型预测的是一个集合,不是一个个的实体,所以这里将该问题视为最佳匹配的问题)。

        golden set表示为y,预测的set表示为\hat{y} = \left \{ \hat{y_{i}} \right \}_{i=1}^{N},对于大小不足N的y也使用\varnothing对其进行填充,为了找到最佳匹配,作者寻找成本最低的N个元素的排列组合(这里没有很看懂,附上原文:To find the optimal matching we search for a permutation of N elements \beta \subseteq O_{N} with the lowest cost)。

         Lmatch表示golden 实体和预测之间的匹配成本,这里使用匈牙利算法来完成这个最佳匹配(因为set是无序的,因此对每一个golden entity y寻找一个最小消耗的\hat{y_{i}})。

        考虑到左右边界,将每个golden entity都表示为yi=(li,ri,ci),Lmatch的定义如下:

         得到最优匹配\hat{\beta_{i}}之后,计算最终损失:

实验

对比实验 

         在嵌套NER的多个数据集上进行实验,结果如下所示:

         作者认为所提出模型的主要提升在于将嵌套NER任务视为sequence-to-set,与实体内在的无序性是一致的。

消融实验 

        作者对decoder的层数和实体query之间的交互进行了消融实验,结果如下图所示:

         作者还对实体query和双向匹配损失函数进行了消融实验,Freeze query表示冻结query,不再进行改变。CE Loss表示使用交叉熵损失函数来代替作者提出的双向匹配loss。结果如下图所示:

其他实验 

         作者对Entity Query的数量在ACE2005数据集(实体数量最多为27)上进行了实验,结果如下:

         可以看出当query比实际实体多太多的时候,效果反而不太好,因此作者选择query为60进行实验。

总结 

        这篇论文和上一篇看的论文(PIQN)比较像,作者都差不多,这篇论文更早一点,可以认为PIQN是该方法的改进。从消融实验来看,本文提出的双向匹配loss对模型的性能有较大的提升, 但PIQN并没有继续使用该方法,并且将entity的分配视为一对多的分配问题。并且感觉PIQN的重点在于可学习的query,但本文中的query也是可学习的向量(so,,,PIQN中的这个创新点也不是那么创新?感觉就是将这个点包装了一下,因为本文并没有对该点描述太多。然后将loss换了,主要是分配标签的方法进行了修改,由一对一改为一对多?本人瞎猜测的,如有不对,还请指出!)

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

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

相关文章

【数据分享】全国县市2000-2021年农业、工业数据(免费获取)

《中国县域统计年鉴》是一部全面反映我国县域社会经济发展状况的资料性年鉴,收录了上一年度全国2000多个县域单位的基本情况、综合经济、农业、工业、教育、卫生、社会保障等方面的资料。 之前基于《中国县域统计年鉴》我们分享了2000至2021年的综合经济数据&#…

详解eslint在vue中如何使用

ESLint在vue中的使用 阅读目录 .editorconfig文件(主要用于配置IDE).eslintignore文件(放置需要ESLint忽略的文件,只对.js文件有效).eslintrc.js 文件(用来配置ESLint的检查规则) ESLint的用途 1.审查代码是否符合编…

SwinTransformer与Vit细节总结

建议通过标题来快速跳转 Vit (Vision Transformer) Vit把图片打成了patch,然后过标准的TransformerEncoder,最后用CLS token来做分类 Vit的位置编码 作者在文中试了几种方式,发现这几种在分类上效果差不多 1-dimensional positional emb…

EMQ 明道云:零代码高效构建工业物联网设备管理平台

背景 智能物联网设备在 IIoT 场景中有着广泛的应用,但如何管理和监控这些设备是一个挑战。 明道云是一家专业的 hpaPaaS 平台服务商,其所开发的明道云平台(Mingdao Cloud)是一个企业软件设计和开发工具,让企业可以低…

[230608] 阅读TPO58汇总|7:30-9:00+17:05

目录 ​​​​​​​ TPO58 1 The Development of Instrumental Music [3]修辞目的题 举例说明的作用 [9]句子插入题 [10]小结题 2 Pinyon Pines and Pinyon Jays [4]否定事实信息题 [5]修辞目的题 段落在全篇的作用 [10]小结题 3 The Rise of Classic Maya Civi…

SecCertificate 解析

一、SecCertificate A digital certificate is a collection of data used to securely distribute the public half of a public/private key pair. 数字证书 1. 结构 2. 读取和存储 2.1 Identity var certificate: SecCertificate? let status SecIdentityCopyCertific…

12.分布式事务流程与事务消息源码分析

highlight: arduino-light Rocket事务流程&源码分析 Rocket解决分布式事务流程 事务消息分 2 个阶段: ① 正常事务消息的发送与提交: a.发送消息(half 消息) b.服务响应消息写入结果 c.根据发送结果执行本地事务(如果写入失败,此时half消…

Midjourney使用教程:三 图片风格提示

这里我根据现在的官方文档来继续我们的Midjourney的教程,看到这里如果你去实践的话,估计你已经有了好多张属于自己的图片。 这时候你不在满足简单的提示生成的Midjourney的默认风格图片,实际上你可以通过一些关键词做提示,来改变…

初始网络原理

目录 网络发展史 独立模式 网络互连 局域网LAN 广域网WAN 网络通信基础 IP地址 端口号 认识协议 五元组 协议分层 OSI七层模型 TCP/IP五层(或四层) 网络设备所在分层 封装和分用 网络发展史 独立模式 独立模式:计算机之间相互…

第八十三天学习记录:计算机硬件技术基础:汇编语言程序设计

一、汇编语言指令 汇编语言的语句是在指令系统的基础上形成的,按其作用与编译情况分为两大类:指令性语句(符号指令)和指示性语句(伪指令)。 指令性语句是可执行语句,与机器指令相对应&#xff…

USB转换方案介绍

随着科技的不断发展,我们的生活中出现了越来越多的电子设备。然而,这些设备通常具有不同的连接端口和协议,这可能会使它们之间的连接变得困难。这时候,使用USB转换就成为了一种非常方便和实用的解决方法。 无论是在家庭、办公室还…

自动化测试——处理场景自动化测试场景详细,跟着上高速

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、定位一组对象 …

城市消防应急通信三级作战网构建

项目背景 随着我国《消防信息化“十三五”总体规划》对消防信息化的发展规划做了统一部署,以城市为代表的消防通信成为专网通信行业重点关注的领域之一。目前,我国城市化发展面临高层建筑林立、地铁、人防工程分布密集,大型综合体不断涌现&a…

【运维】服务器系统安装 -- 服务器版

目录 一、环境 二、ubuntu 三、启动u盘制作 Stage 1:下载balena,制作U盘启动工具 Stage 2:下载Ubuntu 系统镜像(参考上一节:Ubuntu 22.04.2 LTS ) Stage 3:将镜像写入到U盘 四、设置开启…

FUZZ工具—Boofuzz框架实际使用

接着上一篇文章FUZZ工具—Boofuzz框架来对框架进行实际的使用; 官方提供了很多案例模板,且网上关于boofuzz的使用介绍很多,也比较成熟,在各个领域都有,可以通过官方提供的案例也看得出来,然后覆盖的面也非常…

西门子变频器G120XA的快速调试方法分享

以西门子变频器G120XA为例,接着为大家介绍一下G120X和G120XA系列变频器的快速调试方法。 西门子发布的Sinamics G120X和G120XA系列变频器,专为风机和泵的应用而设计,实现高效节能、可靠稳定和简单易用。以G120XA为例,通过下面的调…

locust学习教程(9)- event 事件

目录 1、对请求的测试前置、后置处理 2、在web界面添加新内容 3、监听测试的失败率或阀值 4、汇总总结 ​🎁更多干货 1、对请求的测试前置、后置处理 请求有一个上下文参数,通过数据有关的请求(之类的用户名,标签等&#xff…

双路高速 DA 实验

目录 双路高速 DA 实验 1、简介 2、实验任务 3、程序设计 3.1、hs_dual_da顶层模块代码 3.2、ROM 波形存储模块(rom_1024x10b) 创建单端口 ROM IP核 3.2、DA 数据发送模块(da_wave_send)代码 4、硬件设计 4.1、添加.xdc…

MongoDB数据库安装

MongoDB数据库 MongoDB数据的特点: 面相文档存储的分布式数据库 具有很强的扩展性 支持丰富的查询表达式,很接近于关系性数据库 使用类似于json的结构保存数据,可以轻易的查询到文档中内嵌的对象及数组 下载安装包 首先去官网下载安装…

用JAVA写一个下载器第2集

文章目录 一、开发环境及工具二、包名概览三、项目结构四、使用步骤1.编写代码Constant.java:Downloader.javaDownloaderTask.javaDownloadInfoThread.javaFileUtils.javaHttpUtils.javaLogUtils.javaMain.java 2.运行程序 总结 一、开发环境及工具 开发环境及工具…