kNN-NER: Named Entity Recognition with Nearest Neighbor Search

原文链接:https://arxiv.org/pdf/2203.17103.pdf

预发表论文

介绍

        受到增强式检索方法的启发,作者提出了kNN-NER,通过检索训练集中k个邻居的标签分布来提高模型命名实体识别分类的准确性。该框架能够通过充分利用训练信息来解决样本类别不平衡问题。

方法

         整个模型的框架如下图所示,作者提出的框架在训练阶段不需要进行额外的操作,可以适配于多样的序列标注模型:

Background: Vanilla NER

        给定一个长为n的句子x = \left \{ x_{1},......,x_{n} \right \},序列标注任务就是为句子中的每个单词x_{i}分配一个标签y_{i},有N个样本的训练集表示为:

        具体的,使用一个encoder(文中使用的是Bert和RoBert)来得到每个词的向量表示,然后通过一个MLP得到每个词属于每个类别的分数:

k Nearest Neighbor NER

        使用基础的序列标注得到句子中每个词的标签分布pNER后,在datastore中找到离其最近的k个邻居,结合这k个邻居的标签来进行调整。

        datastore D是训练集中每个词的embedding(h_{i})与其实体(y_{i})之间对应的键值对集合:

       找到词xi与D中欧式距离最近的k个邻居实体集N,然后根据RBF核(高斯核函数 可以理解为将非线性的向量映射为线性可分的向量)方法转成输出分布,将检索到的命名实体集转换为整个命名实体词汇的分布,预测标签为实体ej的概率与N中所有值的核输出成正比(ej表示实体词汇表中第j个实体,T是一个调节参数,用于平缓分布):

        另外,对于没有出现在检索集中的标签,将其概率设置为0。最后,将普通NER框架得到的标签分布pNER与pkNN进行结合,\lambda为权重系数:

实验

对比实验

        在英文数据集conll03和ontoNotes上进行了实验,结果如下所示:

         在中文数据集ontoNoto、MSRA和Weibo数据集上进行了实验,结果如下所示:

消融实验

        作者为了探究模型在低资源场景下的表现,在不同大小的训练集上进行了实验,结果如下所示:

        可以看出,作者提出的方法在相同精度的情况下,所需的训练数据可以少40%。

        作者对K的取值进行了实验,结果如下所示:

         较大的K值表示可以检索出更多信息,随着K值的增加,新检索的样本与当前输入样本的相似性降低,对模型性能的提升也是微乎其微的。当k足够大时,模型的性能不再变化,作者认为这体现了模型的稳健性,即对K值不敏感。

总结

        本文提出的框架是在标签分类上进行处理,整体思想很简单,在训练集中选取相似词的标签情况来调整结果,怎么感觉有点作弊一样?作者也提到,能提升模型的性能是因为“开卷考试比闭卷要简单”!而且通过实验可以看到作者选取的K并不小,也意味着计算量大的问题。

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

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

相关文章

Android进阶之路 - TextView文本渐变

那天做需求的时候,遇到一个小功能,建立在前人栽树,后人乘凉的情况下,仅用片刻就写完了;说来惭愧,我以前并未写过文本渐变的需求,脑中也仅有一个shape渐变带来的大概思路,回头来看想着…

低价商品采购API接口

采购商品地址http://sly.yizhaosulianyun.com/More/Push/888889?type3 低价商品采购API接口 1) 请求地址 http://sly.yizhaosulianyun.com/jd/keyWords 2) 调用方式:HTTP post 3) 接口描述: 低价商品采购接口 4) 请求参数: POST参数: 字段名称字段…

Java高级技术(反射:获取类的成员变量)

一,获取类的成员变量的常用方法 二,案例 三,赋值,取值的常用方法 四, 案例 五,获取类的成员方法的常用方法 六,案例 七,执行 八,案例

Verilog 入门(三)(表达式)

文章目录 操作数操作符算术操作符关系操作符相等关系操作符逻辑操作符按位操作符条件操作符 操作数 操作数可以是以下类型中的一种: 常数参数线网寄存器位选择部分选择存储器单元函数调用 操作符 Verilog HDL中的操作符可以分为下述类型: 算术操作符…

new Date()国际化时间参数处理的存在偏差问题

[TOC](new Date()国际化时间参数处理的存在偏差问题) 实际存在场景:各国使用new Date进行处理时间到各国时区时处理后的日期与实际当地日期不符合,会存在以下场景如图: 统计日期和表头计算的日期不符合 点击某一天跳转到详情时间参数不正确 …

如何有效避免七个常见的身份验证漏洞

引言 随着网络威胁的数量不断增加,了解学习可能会危及到客户在线身份的常见身份验证漏洞就显得格外重要。如果需要在网上满足客户的需求,并使用传统的身份验证机制时,就要对身份验证漏洞保持警惕。 只有了解了这些漏洞,才可以更…

二、shell编程快速入门

目录 1、入门示例 2、解释器 3、shell脚本执行方式 3.1 方式一:sh执行脚本 3.2 方式二:工作目录执行 3.3 方式三:绝对路径执行 ​​​​​​​4、shell的数据类型 4.1 字符串 4.2 整数型 1、入门示例 以下所有操作都在/export/shel…

SSM框架详解:结构创建与注解应用

文章目录 1. 引言2. SSM框架项目结构创建2.1 目录结构2.2 说明 3. 注解的应用3.1 Controller3.2 Service3.3 Repository3.4 Autowired3.5 RequestMapping3.6 Select、Insert等 4. 结语 🎈个人主页:程序员 小侯 🎐CSDN新晋作者 🎉欢…

SS8847T 双通道 H 桥驱动芯片 替代DRV8847

SS8847E是一款双桥电机驱动器,具有两个H桥驱动器,可以驱动两个直流有刷电机,一个双极步进电机,螺线管或其他感性负载。该器件的工作电压范围为 2.7V 至 15V,每通道可提供高达 1.0A 的负载电流。每个H桥的输出驱动器模块…

在gitlab上使用server_hooks

文章目录 1. 前置条件2. Git Hook2.1 Git Hook 分为两部分:本地和远程2.1.1 本地 Git Hook,由提交和合并等操作触发:2.1.2 远程 Git Hook,运行在网络操作上,例如接收推送的提交: 3. 操作步骤3.1 对所有的仓…

改进YOLO5:结合CVPR2023最新 PConv |包含 YOLOv5 / YOLOv8 模型 YAML 文件

改进YOLO5:结合CVPR2023最新 PConv |包含 YOLOv5 / YOLOv8 模型 YAML 文件 一、论文总结PConv模块优势二、YOLOv51. yaml文件2. common代码文件三、YOLOv81. yaml2. modules文件添加3. Task文件4. 测试论文链接🎁 :https://arxiv.org/pdf/2303.0366

交叉熵损失函数(Cross-Entropy Loss Function)

交叉熵损失函数(Cross-Entropy Loss Function) 在处理机器学习或深度学习问题时,损失/成本函数用于在训练期间优化模型。目标几乎总是最小化损失函数。损失越低,模型越好。交叉熵损失是最重要的成本函数。它用于优化分类模型。对…