PromptNER: Prompt Locating and Typing for Named Entity Recognition

原文链接:

https://aclanthology.org/2023.acl-long.698.pdf

ACL 2023

介绍

        问题

        目前将prompt方法应用在ner中主要有两种方法:对枚举的span类型进行预测,或者通过构建特殊的prompt来对实体进行定位。但作者认为这些方法存在以下问题:1)时间开销和计算成本较高;2)需要精确的设计模板,难以在实际场景中应用。

        IDEA

        因此作者提出了一种双插槽的prompt模板来分别进行实体定位分类,模型可以同时处理多个prompt,通过对每个prompt中的插槽进行预测来提取所有的实体。

        如下图所示,(a)表示根据实体类别构造prompt的方法;(b)表示根据span构造prompt的方法;(c)表示作者所提出的双插槽方法。

方法

         整体的结构如下图所示:

Prompt Construction

        模型的输入由两部分组成:M个prompt和句子X。具体的,当输入的句子x=“Jobs was born in San Francisco”,则输入序列就表示为T:

        i表示第i个prompt,pi和Ti分别表示实体的位置和类别,M表示prompt的数量,通过对每个prompt中对应的位置进行解码来提取实体。

Prompt Locating and Typing

Encoder

         使用bert对T进行编码后,通过位置索引得到句子X与两个插槽的编码

        这里作者为了对句子进行独立于prompt的编码(为啥要进行独立编码?好像是为了不让prompt对句子产生影响 实验证明这样的效果会好一点点),通过一个n*k(k表示prompt序列的长度)的左下角掩码矩阵来阻断prompt对句子的注意。

        为了增强不同prompt之间的交互,作者设计了一个额外的prompt交互层,每层中包括插槽之间的自注意力以及句子和插槽的交叉注意力(q是插槽,key和value是句子),即位置和类别两种插槽的最终表示为:

Entity Decoding 

         通过对prompt中的position slot(位置插槽)和type slot(类别插槽)进行解码得到最终的实体。

        具体的,对于第i个prompt,将其type slot 送入一个分类器得到其属于不同类别的可能性:

        对于实体的位置,转化为确定第j个词是第i个prompt所预测实体的起始词还是结束词。首先将position slot 送入一个线性层,然后与句子中每个单词的表征进行相加得到融合表征,对其进行二分类,得到第j个词是第i个prompt预测实体的左右边界概率:

        最后,m个prompt所预测出的实体可以表示为:

        在推理时,同一实体跨度选择分数最高的类别。 

Dynamic Template Filling 

         由于prompt和实体之间没有确切的对应关系,也就不能提前为其分配标签。因此,将插槽视为一个线性分配问题,按最小代价原则进行分配。作者提出了一种动态模板匹配机制,在实体和prompt之间进行二部图匹配。

        gold entity表示为, 其中k表示实体的数量,分别表示第i个实体的左右边界和类别。即与prompt对应的最佳匹配为:

        其中第i个实体与第θ(i)个prompt之间匹配的代价为(这里没看懂这个计算公式,文中也没有进一步说明,预测的实体与真实实体相乘?):

         但传统的二方图匹配算法是一对一的,即一个实体只能分配给一个prompt,这就会导致部分prompt匹配到空集,降低了训练效率。因此作者将其扩展到了一对多的情况,在预定义好的下限值U下重复gold entity来扩充Y,实现一个实体能分配给多个prompt。

        模型的loss由以下两部分的loss组成:

实验

对比实验

        在ACE04、ACE05、Conll03这三个数据集上进行实验,结果如下所示:

域内Few-shot

         领域内few-shot场景下的实验结果如下图所示:

        对conll03数据集进行下采样,使得这四个类别的样本数分别为:3763、2496、100、100.

跨域Few-shot

         模拟跨领域few-shot的情况进行实验,在conll03数据集上进行预训练,然后迁移到MIT Movie、MIT Restaurant和ATIS这三个数据集的部分样本上(10、20表示每个类别的样本数)进行实验,结果如下图所示:

        作者认为由于promptNER分别对位置和类别进行预测,适用于语法一致而语义不一致的跨域场景。

消融实验 

         作者对模型的主要模块进行了消融实验,结果如下所示:

        消融设置:

        1)根据实体出现的顺序来分配给prompt;

        2)不进行标签的扩充,比如使用传统的一对一二部图匹配;

        3)使用原始的bert用于对句子和prompt进行编码

        对不同的prompt模板也进行了实验,结果如下所示:

Inference Efficiency

        对于有N个单词、C个类别的句子,基于实体类型和span的promt方法分别需要运行C和N(N-1)次,以自回归生成实体序列的方法需要运行T步(实体的长度)才能获得所有的实体。

        而PromptNER只需要运行一次就能得到所有的实体。在conll03数据集上进行推理速度的实验,结果如下所示:

总结

        之前用在ner上的prompt都是对实体位置和类别分开进行的,这是第一篇(我读到的) 用这种两个slot的方法来对实体及其类别分别进行处理。(但是感觉这样没有语义上的可理解性,也不太符合预训练任务,因为感觉一句话后面也不会直接接上实体)第二个创新点感觉标签动态分配那一块没有讲清楚,很多方法都是使用这种动态分配标签的方法,而去作者扩展为一对多的方式竟然是直接复制,有点过于简单了,真的。但是作者做的相关实验很充分!

        另外,作者对prompt的模板进行了消融实验,其实这三种prompt相差都不大,感觉都差不多,只是[pi][Ti]这种模板附加信息更少,不会超出bert的最大长度。不过可以借鉴作者做的推理效率那一块的实验。

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

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

相关文章

mySQL数据库用户管理

目录 1.创建外键约束 外键的定义 主键表和外键表的理解 具体操作 2.数据库用户管理 新建用户 查看用户信息 重命名用户 删除用户 修改当前和其他用户登录密码 忘记 root密码的解决办法 3.数据库用户授权 授予权限 查看权限 撤销权限 1.创建外键约束 外键的定义…

【视觉实践】使用Mediapipe进行目标检测:杯子检测和椅子检测实践

目录 1 Mediapipe 2 Solutions 3 安装mediapipe 4 实践 1 Mediapipe Mediapipe是google的一个开源项目,可以提供开源的、跨平台的常用机器学习(machine learning,ML)方案。MediaPipe是一个用于构建机器学习管道</

计算机毕业设计 基于SpringBoot的房屋租赁管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

.Net 访问电子邮箱-LumiSoft.Net,好用

序言&#xff1a; 网上找了很多关于.Net如何访问电子邮箱的方法&#xff0c;但是大多数都达不到想要的需求&#xff0c;只有一些 收发邮件。因此 花了很大功夫去看 LumiSoft.Net.dll 的源码&#xff0c;总算做出自己想要的结果了&#xff0c;果然学习诗人进步。 介绍&#xff…

C语言中的关键字

Static 静态局部变量 结果&#xff1a; a作为静态局部变量&#xff0c;第一次进入该函数的时候&#xff0c;进行第一次变量的初始化&#xff0c;在程序整个运行期间都不释放。&#xff08;因为下一次调用还继续使用上次调用结束的数值&#xff09; 但是其作用域为局部作用域&…

大语言模型的三种主要架构 Decoder-Only、Encoder-Only、Encoder-Decoder

现代大型语言模型&#xff08;LLM&#xff09;的演变进化树&#xff0c;如下图&#xff1a; https://arxiv.org/pdf/2304.13712.pdf 基于 Transformer 模型以非灰色显示&#xff1a; decoder-only 模型在蓝色分支&#xff0c; encoder-only 模型在粉色分支&#xff0c; encod…

数据权限篇

文章目录 1. 如何实现数据权限&#xff08;内核&#xff09;1.1 原理1.2 源码实现&#xff0c;mybatis如何重写sql1.2.1 重写sql1.2.2 解析sql1.2.3 DataPermissionDatabaseInterceptor 1. 如何实现数据权限&#xff08;内核&#xff09; 1.1 原理 面对复杂多变的需求&#xf…

Spring security之授权

前言 本篇为大家带来Spring security的授权&#xff0c;首先要理解一些概念&#xff0c;有关于&#xff1a;权限、角色、安全上下文、访问控制表达式、方法级安全性、访问决策管理器 一.授权的基本介绍 Spring Security 中的授权分为两种类型&#xff1a; 基于角色的授权&…

一篇文章带你搞定CTFMice基本操作

CTF比赛是在最短时间内拿到最多的flag&#xff0c;mice必须要有人做&#xff0c;或者一支战队必须留出一块时间专门写一些mice&#xff0c;web&#xff0c;pwn最后的一两道基本都会有难度&#xff0c;这时候就看mice的解题速度了&#xff01; 说实话&#xff0c;这是很大一块&…

MATLAB画球和圆柱

1. 画球 修改了一下MATLAB的得到球的坐标的函数&#xff1a; GetSpherePoint function [xx,yy,zz] GetSpherePoint(xCenter,yCenter,zCenter,r,N) % 在[xCenter,yCenter,zCenter]为球心画一个半径为r的球,N表示球有N*N个面&#xff0c;N越大球的面越密集 if nargin < 4 …

【NR技术】 Inter-gNB-DU 条件切换或条件Pcell变更

1 引言 本文介绍Inter-gNB-DU 条件切换或条件Pcell更改过程。 2 Inter-gNB-DU 条件切换或条件pcell更改 此过程用于在NR操作期间&#xff0c;UE从一个gNB-DU移动到同一gNB-CU内的另一个gNB-DU&#xff0c;以进行有条件的切换或有条件的Pcell更改。图1显示了内部NR的gNB-DU间…

Android studio Android SDK下载安装

我们访问地址 https://developer.android.google.cn/studio?hlzh-cn 拉下来直接点击下载 然后来下来 勾选 然后点击下载 下载好之后 我们双击打开 点击下一步 确认上面的勾选 然后下一步 这里 我们选择一下安装目录 然后点击下一步 安装 安装完之后点击进行下一步 Fin…

ImageBind-LLM: Multi-modality Instruction Tuning 论文阅读笔记

ImageBind-LLM: Multi-modality Instruction Tuning 论文阅读笔记 Method 方法Bind NetworkRMSNorm的原理及与Layer Norm的对比 Related Word / Prior WorkLLaMA-Adapter 联系我们 本文主要基于LLaMA和ImageBind工作&#xff0c;结合多模态信息和文本指令来实现一系列任务。训练…

yarn : 无法将“yarn”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。‘yarn‘ 不是内部或外部命令,也不是可运行的程序.解决方案

文章目录 报错截图介绍方法一方法二评论截图 报错截图 介绍 我的npm已经安装好了, 是可以运行npm -v 来查看版本的 这个时候报 yarn 不是内部或外部命令 相信你的npm也已经安装好了 我下面两个方法都进行了, 具体起作用的我也不知道是哪个, 都试试吧, 我成功了 注意尝试后关…

论文阅读——BLIP-2

BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models 1 模型 在预训练视觉模型和预训练大语言模型中间架起了一座桥梁。两阶段训练&#xff0c;视觉文本表示和视觉到语言生成学习。 Q-Former由两个转换器子模块组成&am…

Mybatis-TypeHandler类型转换器

文章目录 TypeHandler 接口TypeHandler 注册TypeHandler 查询别名管理总结 TypeHandler 接口 TypeHandler 这个接口 就是Mybatis的类型转换器 /*** author Clinton Begin*/ public interface TypeHandler<T> {// 在通过PreparedStatement为SQL语句绑定参数时&#xff0…

stm32项目(14)——基于stm32f103zet6的循迹避障小车

1.功能设计 stm32循迹避障小车&#xff0c;使用超声波测距&#xff0c;使用红外循迹模块追踪黑线&#xff0c;实现循迹功能。此外&#xff0c;还可以检测烟雾、火焰、人体、温湿度。温湿度显示在LCD屏幕上。检测到有人、有火焰、有烟雾时&#xff0c;蜂鸣器报警&#xff01; 功…

强化学习(五)-Deterministic Policy Gradient (DPG) 算法及公式推导

针对连续动作空间&#xff0c;策略函数没法预测出每个动作选择的概率。因此使用确定性策略梯度方法。 0 概览 1 actor输出确定动作2 模型目标&#xff1a; actor目标&#xff1a;使critic值最大 critic目标&#xff1a; 使TD error最大3 改进&#xff1a; 使用两个target 网络…

【接口测试】JMeter调用JS文件实现RSA加密

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

SQL分类

SQL分类 DDL 查询库 查询表 创建表 修改表 DML 添加数据 修改数据 删除数据 DQL 基本查询 条件查询 聚合函数 分组查询 排序查询 分页查询 执行顺序 DCL 管理用户 管理权限 数据类型 数值类型 字符串类型 日期类型