PIQN:Parallel Instance Query Network for Named Entity Recognition

news2024/10/5 18:20:52

原文链接:https://aclanthology.org/2022.acl-long.67.pdf

ACL 2022

介绍

问题

         将命名实体识别任务作为阅读理解任务(MRC:machine reading comprehensive)来做,存在3个问题

        1)一类问题只能提取一种实体,对于句子中的多种实体需要多个类别的问题才行;

        2)这样提取的不同实体之间是相互独立的,忽略了它们之间的联系;

        3)问题的构建依赖于外部知识库,不使用于有多种实体类型的场景。

IDEA 

        因此作者提出了PIQN,该模型设置了全局可学习的实例query,不再依赖于外部知识库和人工手动构建实例query,以并行的方式来从句子中提取实体。 

方法

         模型包括三个部分:encoder实体预测动态标签分配。总体结构如下图所示:

         对输入的句子和实例query进行编码后,使用Entity Pointer和Entity Classifier对每个实例query进行实体定位和实体分类。训练模型时,引入动态标签分配来将gold实体分配给实例query(因为这里的实例query并不是一个真正的问题,而是可学习的向量,也就不能提前对每个实例query分配gold实体)。

Encoder

         将长度为N的句子X和长度为M的实例query进行concate后输入encoder进行编码。

Input Embedding

        按如下方法计算输入两个句子的token embedding、position embedding、type embedding:

其中V表示输入句子的token embedding,I表示实例query的token embedding;P^{w}P^{q}分别表示sentence和query可学习的位置向量;U^{w}U^{q}分别表示sentence和query的类别向量,[.]^{N}表示重复N次。即输出可以表示为:

One-Way Self-Attention 

         普通的自注意力机制会让输入的句子和所有的query进行交互,但随机初始化的query反而会打破句子的语义。因此为了保证句子语义独立于query,使用以下方法来代替bert之间的自注意力机制:

 

        M表示注意力分数的{0,-inf}掩码矩阵,其中0表示保留原句,-inf表示需要删除。防止句子编码对实例query的关注,将M的右上角N*M的子矩阵设置为全-inf矩阵,其他元素皆为0。另外,实例query之间的自注意能够对他们之间的联系进行建模,提升他们的query语义。在BERT后,还使用了两层的Bi-LSTM和L层的transformer来对句子进行单词级别的编码。最后将H分为句子编码H^{w}和query编码H^{q}

Entity Prediction

        包括实体定位和实体分类两个部分,分别使用Entity Pointer和Entity Classifier两个方法实现。

Entity Pointer

         对于第i个实例query,首先通过两个线性层来与句子的每个单词进行交互。第i个实例query和第j个词的融合表征如下所示:

        其中 \delta \subseteq {(l,r)}分别表示左右边界,W_{\delta }^{q}W_{\delta }^{w}是可学习的参数。

        计算句子中第j个词是左右边界的可能性,其中W_{\delta }b_{\delta }都是可学习的参数。

Entity Classifier

        使用P^{\delta }_{i} = [P_{i0}^{\delta },P_{i1}^{\delta }...P_{iN-1}^{\delta }]衡量每个word并将其与实例query i 进行concate,即第i个实例query的边界敏感的表征表示为(其中W_{t}^{q}是可学习的参数): 

        第i个实例query所查询到的实体属于类别c的概率为:

         最后第i个query提取出的实体表示为T_{i} = (T_{i}^{l}, T_{i}^{r}, T_{i}^{t}),其中T_{i}^{l} = argmax_{j}(P_{ij}^{l})T_{i}^{r} = argmax_{j}(P_{ij}^{r})表示左右边界,T_{i}^{t} = argmax_{c}(P_{ic}^{t})表示实体类型。在使用实体query去并行地提取实体时,如果存在多个实体query对相同边界的实体预测不同的类型时,选择分类可能性最高的类别。

Dynamic Label Assignment for Training 

Dynamic Label Assignment 

         任何实体都能被分配给任何实例query,产生的代价各不相同。定义将第k个实体分配给第i实例query的代价为:

         为每个query分配一个实体,为每个实体最多分配一个query,以使分配代价最小化的方法分配尽可能多的实体。但这种一对一的方法不能对实例query进行充分的利用(query>>entity),许多实例query并没有分配到实体。因此作者将传统的LAP扩展到一对多(可以看作是二部图的最大匹配?使用匈牙利算法解决),即每个实体能被分配给多个实例query。一对多的LAP优化目标定义为:

         A\subseteq{\left \{ 0,1 \right \}}^{M*G} 表示分配矩阵,G表示实体的数量 Aik=1表示第k个实体被分配给第i个实例query,qk表示第k个实体的分配次数。由于实例query的数量比实体数量多,因此有些query就没有分配到实体,因此对分配矩阵扩展一列得到\hat{A},新增一列的向量定义如下所示:

Training Objective

         使用边界损失和分类损失来优化该模型。对于左右边界的预测,使用二进制交叉熵损失:

        对于实体分类,使用交叉熵损失:

         其中1[w]表示指标(indicator)函数,当w为真时取1,否则取0;

        在每个transformer层后增加Entity Pointer和Entity Classifier,因此总loss定义为( r表示t层的分类损失和边界损失):

实验

对比实验 

         在5个嵌套命名实体识别数据集上的结果如下图所示:

         在4个flat命名实体识别的数据集上进行实验,结果如下图所示:

         与query-based的方法(Li et al.2020b)相比,我们的模型在 GENIA, ACE04, ACE05、 KBP17四个数据集上分别提升了+2.85%、+2.16%、+0.54%和+3.53%。有以下三个原因:

1)实例query不依赖于外部知识来注入语义,自适应第学习query语义,避免了因手动建造query质量参差不齐的敏感性。2)每个query不再预测一组特定类别的实体,而是只预测一个实体。这种方法将查询细化到实体层次,具有更精确的查询语义。3)实例query并行地输入到模型中进行编码和预测,不同的实例query能够利用实体之间的内在联系。

消融实验

         作者对模型的部分方法进行了消融实验,结果如下所示:

         作者对模型的推理速度进行了实验,结果如下所示:

        可以看出我们的模型不仅效果更好,速度也更快。因为Li提出的模型,一个query对应一个特定类别的实体,而我们的模型能够将所有的query并行地提取实体。 

Analysis

        为了分析实例query在训练过程中学习到的query语义,随机选择了几个实例query来分析它们预测的实体位置和类型。 

        对实体的预测中心位置进行归一化处理,并使用内核密度估计得到不同查询预测实体位置的分布。结果如下图所示:

         可以看出不同的实体query聚焦于不同位置的实体,表示实例quey能够学到与实体位置有关的query语义。例如#28、#39倾向于预测在句子前面的实体,#11、#53更倾向于句尾处的实体。

        作者计算了不同实例query预测不同实体的概率,如下图所示:

        可以看出不同的实例query对预测不同的实体类型有差别。例如#11和#13更偏向于预测PER实体,而#30和#43更偏向于预测VEH实体。

Case Study

         下表展示了模型预测的一个实例。

         case1中,对于长度为31的实体和三层嵌套实体,模型都预测正确。并且由于一对多的动态标签分配,导致一个实体可由多个实例query预测出,保证了实体预测的高覆盖率。但模型对于句子的理解有所欠缺,表现在以下方面:

        1)对特殊短语的理解存在缺陷;如case2中的Yahoo!communications Services被错误的归类为ORG,实际Yahoo才是ORG。

        2)过于关注于local语义;如case3中,将Venezuelan consumer(委内瑞拉消费者)错误分类为PER,忽略了semantics of the long phrase the Venezuelan consumer protection agency(委内瑞拉消费者保护机构)这个长句的ORG语义。

        3)对形态变化不敏感;在case3中混淆了Venezuelan(委内瑞拉人)和Venezuela(委内瑞拉),把前者误判为GPE。

总结 

         将NER问题视为MRC问题来解决,并提出使用全局可学习的实例query来代替之前工作中特定的query(最开始没用理解到该模型学习的是代表query的一堆向量,还以为是对一些具体的句子进行学习,还寻思这个怎么去改变句子中的一些词吗?虽然本来具体的问题也会经过encoder后变成embeding,但感觉将具体的问题变为一堆抽象的向量来完成query还挺有意思的,),在多个数据集上达到了sota的效果。

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

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

相关文章

腾讯云服务器可用区什么意思?怎么选择合适?

腾讯云服务器可用区是什么意思?可用区是指在同一个地域内电力和网络相互独立的区域,可用区可以做到故障隔离,所以可用区存在的意义在于构建高可用、高容灾应用,将应用部署在不同可用区内,一个可用区发生故障&#xff0…

Cisco MPLS VPN Option C1

一、拓扑 AR1和AR8是一家公司两个站点,现在通过MPLS VPN Option C1实现跨域互联 使用思科设备模拟 AR1到AR8各有一个loopback0接口分别是1.1.1.1 2.2.2.2 二、配置思路 1、先配置AS内底层网络 AR2 AR3 AR4配置eigrp实现互联 AR5 AR6 AR7同样方法 2、AS 10…

ChatGPT 更新:大杀器!函数调用示范

自ChatGPT 3.5/4 双双升级:更长,更便宜,更开放,更可控发出去之后,有朋友问怎么接入 API。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 什么是函数调用? 函数调用指 Chat-GPT 模型会自动逻辑判断后,调用在代…

如何让程序在后台隐藏窗口运行 - 静默运行器

有的时候你可能会想让一个程序或多个在后台运行,并隐藏其窗口界面。你可以使用静默运行器这款软件。 静默运行器是一款小巧的Windows系统工具软件,它可以轻松的让你在后台静默运行多个程序,隐藏程序窗口和界面,并提高或降低后台进…

在 Debian 12 上安装 KubeSphere 实战入门

老 Z,运维架构师,云原生爱好者,目前专注于云原生运维,云原生领域技术栈涉及 Kubernetes、KubeSphere、DevOps、OpenStack、Ansible 等。 前言 知识点 定级:入门级KubeKey 安装部署 KubeSphere 和 KubernetesDebian 操…

【Python】函数进阶 ④ ( Lambda 匿名函数 | 具名函数与匿名函数 | Lambda 函数定义语法 )

文章目录 一、具名函数与匿名函数二、Lambda 函数定义语法三、代码示例 - Lambda 函数定义语法 一、具名函数与匿名函数 在 Python 中 , 使用 def 关键字定义的函数 是 " 具名函数 " , 也就是有名字的函数 ; 与 " 具名函数 " 相对应的是 " 匿名函数 …

DDR3引脚分配问题

前言 ddr3引脚分配基础知识ddr3引脚分配过程中遇到的问题一次作者在某项目设计时,应硬件同事要求,验证设计管脚摆放位置。出现的问题记录一下,以便以后避坑。 ddr3引脚分配基础知识 1.ddr3一个bank可以放置4个group。 2.每个group包括1对dqs差分信号,8个数据信号,1个dm信…

Nginx运维常用技术点总结

文章目录 一、简介:1、Nginx简介2、常用四大发行版 二、Nginx编译安装:1、Nginx编译安装2、Nginx目录结构3、Nginx 相关命令 三、Nginx配置文件解析1、最小配置2、虚拟主机3、匹配正则表达式 四、Nginx反向代理1、理论2、实践:Nginx反代代理T…

兼容性测试如何提高网站的安全性?

兼容性测试如何提高网站的安全性? 在今天的互联网时代,随着各种网络攻击和黑客活动的频繁发生,网站的安全性问题越来越引起人们的关注。而在提高网站安全性方面,兼容性测试是一个非常重要的环节。本文将从什么是兼容性测试、为什么兼容性测试…

【MySQL】数据库基础 ①

✍什么MYSQL是数据库? MySQL 是一个关系型数据库管理系统,它是基于关系模型的数据存储方式,以表格形式组织数据,并使用结构化查询语言 (SQL) 进行数据操作。MySQL 是一个流行的数据库管理系统,被广泛用于互联网应用和网…

Python基础(6)——Python输出

Python基础(6)——Python输出 文章目录 Python基础(6)——Python输出目标输出格式化输出1.1 格式化符号1.2 体验1.3 转义字符1.4 结束符 总结 目标 格式化输出 格式化符号f-字符串 print的结束符 输出 作用:程序输出…

【正点原子STM32连载】 第三十四章 PWM DAC实验摘自【正点原子】STM32F103 战舰开发指南V1.2

1)实验平台:正点原子stm32f103战舰开发板V4 2)平台购买地址:https://detail.tmall.com/item.htm?id609294757420 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html# 第三…

NSS刷web(1)

一点点做,简单的也不跳了,就当回忆知识了 [SWPUCTF 2021 新生赛]gift_F12 ctrlu [SWPUCTF 2021 新生赛]jicao [SWPUCTF 2021 新生赛]easy_md5 [SWPUCTF 2021 新生赛]easy_sql [SWPUCTF 2021 新生赛]include [SWPUCTF 2021 新生赛]easyrce [SWPUCTF 2021 新生赛]caidao [SWP…

PMP证书考下来要多少费用?

PMP考试形式分为:笔试、机考。PMP考试这里只着重介绍笔试(大陆地区目前都是笔试): PMP认证考试在大陆内的考试一般一年举行四次,分别在3、6、9、12月份。2023年考试时间是3、5、8、11月份。 考试方式是笔试。考试改版…

【云原生】初识Kubernetes的理论基础

1.k8s的由来及其技术运用 1.1 k8s的简介 Kubernetes,词根源于希腊语的 舵手、飞行员。在国内又称k8s(因为k和s之间有8个字母,所以得名。“国内程序员的幽默”)。用于自动部署、扩展和管理“容器化(containerized&…

面向锂电池行业实验室测试排配智能优化解决方案

获取更多资讯,赶快关注公众号(《智能制造与智能调度》和》《商简智能》)吧! 文章目录 1 何为排配问题2 排配特点3 排配现状和痛点4 智能排配解决方案4.1 整体架构4.2 总体思路4.3 智能排配约束4.4 智能算法助力智能排配4.5 智能交…

RFID课程要点总结_3 Wireless Communication Principle of RFID

3. Wireless Communication Principle of RFID Different work principles of different carrier frequency 不同频率载波也适用不同的工作原则。 前面已经有所涉及,比如LF HF适用于近距离,UHF SHF适合远距离。 前者适用 Inductively Coupled RF Mod…

使用华为云AstroZero,不用一行代码,制作端午节加班申请模板

前言 6月22号就要端午了,很多公司会想统计下端午节加班的人数。传统的做法是用社交软件,谁要加班谁反馈,然后逐级汇总上传。大一点的企业,可能用自己的内部办公系统来申请。 但对于小企业来说,没有定制化的办公系统&a…

文件夹提示《文件或目录损坏》怎么解决

在经常使用电脑的过程中,大家平常会遇见一些困难,其中最常见的就是文件夹了,许多人就反映说自己遇见过文件夹《文件或目录损坏》打不开,那么遇见这个困难该怎么办呢?不知道的朋友赶紧瞧瞧小编整理的文件夹《文件或目录…

【参考设计】2KW AC/DC数字电源方案

什么是数字电源? 数字电源即通过一颗通用的数字信号控制器,完成传统模拟电源控制IC所具备的PWM、保护、环路补偿等功能,同时具备通信监控功能。 数字电源的数字信号控制器取代了模拟电源的控制芯片、环路补偿的运放及相关器件。软件处理的灵…