A Neural Span-Based Continual Named Entity Recognition Model

news2024/12/22 23:58:10

《A Neural Span-Based Continual Named Entity Recognition Model》------------AAAI’23

论文链接:https://arxiv.org/abs/2302.12200
代码:https://github.com/Qznan/SpanKL

当前问题:

1.现有的NER模型在适应新的实体类型时往往表现不佳,同时还需要保持对旧实体类型的识别能力。
2.尽管NER的学习范式已经发展到了基于跨度(span-based)的方法等新模式,但这些新方法在持续学习方面的潜力尚未得到充分探索。

解决方法:

提出的解决方法是SpanKL,这是一个简单而有效的基于跨度的模型,结合了知识蒸馏(KD)和多标签预测来分别解决记忆保持和冲突避免的问题。

知识蒸馏(KD):

用于保留记忆。知识蒸馏是一种模型压缩技术,它允许从一个大型、复杂的模型(教师模型)中提取知识,并将其转移到一个较小、更简单的模型(学生模型)中。在SpanKL中,知识蒸馏被用来保留在先前学习步骤中获得的关于旧实体类型的知识,从而在学习新实体类型时避免遗忘。

多标签预测:

用于防止冲突。在持续学习的场景中,新的实体类型可能与旧的实体类型存在重叠或混淆。多标签预测允许模型为每个输入预测多个可能的标签,从而减少了由于标签冲突导致的错误。

此外,SpanKL还在跨度和实体级别上进行了独立建模,并通过设计的连贯优化来促进每个增量步骤的学习,从而减轻遗忘问题。

实验结果表明,SpanKL在多个方面显著优于先前的最先进模型(SoTA),并且在从持续学习到上限的差距方面获得了最小的差距,显示了其在实际应用中的高价值。
在这里插入图片描述

这段文字描述了一个名为“Span Representation Layer”的层,它用于处理自然语言处理中的实体识别任务,特别是针对那些需要识别多个实体类型的场景。以下是该段文字的详细解释:

Span Modeling:

hsij = SpanRep(hi, hi+1, …, hj): 这里描述了一个函数SpanRep,它接受一系列的token表示(从hi到hj)并生成一个span的表示hsij。Span是指文本中的一个连续片段。

不同设计:

文章提到了多种关于如何生成span表示的设计。其中,有些方法特别关注实体的边界token(即实体的开始和结束位置),因为这些token通常包含大量的有用信息。

具体的模型方法:
  • Yu, Bohnet, 和 Poesio (2020) 的方法使用biaffine interaction来建模span的开始和结束特征空间。
  • Xu et al. (2021) 进一步将实体类型的特征空间建模为多头注意力机制中的“头”。
  • Su (2021) 使用多头点积注意力。
本文采用的方法:

本文采用了Su (2021)中的多头点积注意力方法,但在此基础上进行了简化,并在三个特征空间(开始、结束和实体类型)中完全分离了权重。
对于每个实体类型,使用两个独立的单层前馈神经网络(FFN)来分别建模开始和结束位置。总共有2K个不同的FFN(K是实体类型的数量)。
hsij_k = FFNs_k(hi) ⊺ FFNe_k(hj) × (do)^-0.5
这里描述了如何计算span i到j对于第k个实体类型的表示。它首先通过两个FFN处理开始和结束token的表示,然后取它们的点积,并通过do(所有2K个FFN的输出维度)的平方根的倒数进行缩放。

为什么这种设计有效:

文章认为,这种为每个实体类型在每个span上都进行明确分离的建模方式(即在span级别和实体类型级别)有助于学习和蒸馏,并可以减少多个任务之间的干扰
当任务增加时,只需为新的任务添加更多的span表示层(本质上是内部的FFN)。

总的来说,这段文字描述了一个针对多标签实体识别任务的span建模方法,该方法通过明确分离不同实体类型的权重,旨在提高模型的学习和蒸馏能力,并减少任务之间的干扰。

多标签预测是一种机器学习技术,它允许模型为单个输入样本预测多个类别标签。这在处理复杂问题时特别有用,尤其是当样本可以同时属于多个类别或标签时。

在持续学习(Continual Learning)的场景中,随着新数据的到来,模型需要不断学习新的知识和能力。然而,新的实体类型(如新的类别或概念)可能与之前学习过的旧的实体类型存在重叠或混淆。这可能导致标签冲突,即同一个输入样本根据新的知识和旧的知识可能被赋予不同的标签

使用多标签预测,模型可以为每个输入预测多个可能的标签。这有助于减少由于标签冲突导致的错误,因为模型可以同时考虑多个可能的解释或分类。例如,如果一个输入样本既可能属于“动物”类别也可能属于“宠物”类别(这两个类别在某种意义上是重叠的),多标签预测允许模型同时为这两个标签赋予较高的预测概率

在持续学习的上下文中,这意味着当新的实体类型出现时,模型可以更加灵活地处理它们,而不会完全推翻或遗忘之前学习到的关于旧实体类型的知识。这有助于减少灾难性遗忘(Catastrophic Forgetting),这是持续学习中的一个重要挑战。

总之,多标签预测用于防止冲突,在持续学习的场景中允许模型为每个输入预测多个可能的标签,从而减少了由于标签冲突导致的错误,提高了模型的灵活性和适应性。

多教师蒸馏学习是一种特殊的知识蒸馏技术,其核心思想是将多个教师模型的知识结合并传递给学生模型。在这种方法中,不是只有一个教师模型来指导学生模型,而是有多个教师模型共同参与,每个教师模型都为学生模型提供不同的知识和指导。

这种方法可以类比于人类学习的真实场景,比如有两个数学老师,一个擅长微积分问题,另一个擅长立体几何问题。对于一道微积分相关的题目,擅长微积分的老师所传授的知识会更有用;而对于一道立体几何相关的题目,擅长立体几何的老师传授的知识则更为关键。在多教师蒸馏学习的上下文中,不同的教师模型可能擅长处理不同类型的数据或解决不同的子问题,因此它们可以为学生模型提供更为全面和丰富的知识。

为了实现多教师蒸馏学习,需要设计合适的策略来整合多个教师模型的输出,并将其作为学生模型的学习目标。这通常涉及到设计特定的损失函数来衡量学生模型与教师模型之间的差异,并优化学生模型的参数以最小化这种差异。通过这种方式,学生模型可以从多个教师模型中学习到不同的知识,从而提高其性能。

多教师蒸馏学习在多个领域都有应用,特别是在处理复杂任务或需要多样化知识的场景中。它不仅可以提高模型的性能,还可以帮助学生模型更好地适应不同类型的数据和任务。

为了更好地理解持续学习命名实体识别(CL-NER)任务中传统序列标注方法存在的问题以及提出的解决方案,我们可以举一些具体的例子。

传统序列标注方法的问题
假设我们有一个持续学习的NER任务序列,其中第一个任务学习识别组织名称(ORG),第二个任务学习识别人名(PER)。

例子1:

任务1(ORG):文本“小明在北京大学学习”中,“北京大学”是组织名称(ORG)。
任务2(PER):文本“小明在北京大学获得奖学金”中,“小明”是人名(PER)。
在传统序列标注方法中,对于任务1,“小明”会被标注为非实体(O),因为在这个任务中它不属于任何实体类型。然而,在任务2中,“小明”需要被标注为人名(PER)。这种标注的不一致性会导致模型在连续学习过程中频繁更新参数,增加遗忘旧知识的风险。

提出的解决方案
例子2(使用提出的解决方案):

任务1(ORG):文本“小明在北京大学学习”中,“北京大学”被标注为ORG,而“小明”被标注为某种非特定实体的标签,比如O-NON-ORG,表示它当前不是组织名称,但可能是其他类型的实体或仅仅是非实体。
任务2(PER):当处理到任务2时,模型已经知道了“小明”可能是某种实体,现在只需要将其具体化为人名(PER)。因此,模型可以更容易地适应这种变化,而不需要完全重新学习“小明”的标注。

通过这种方式,模型在连续学习过程中能够更好地保留对先前知识的记忆,同时适应新任务的学习。这有助于减少灾难性遗忘的问题,并提高CL-NER任务的性能。

这些例子展示了传统序列标注方法在CL-NER任务中的局限性,以及提出的解决方案如何通过更灵活的标注方式来解决这些问题。

这段文本描述了在持续学习(continual learning)或增量学习(incremental
learning)场景下,如何使用Span Matrix来更好地描述和处理文本中的实体,并如何利用知识蒸馏(Knowledge Distillation)来避免遗忘之前学习到的实体。以下是这段文本的详细解释:

Span Matrix的概念引入:

为了更好地描述,作者引入了Span Matrix的概念。
对于第k个实体类型,所有与之相关的hsij_k(span表示)被组织到矩阵Mk的上三角区域,其中Mk是一个n×n的矩阵。
在矩阵Mk中,行和列分别表示实体的开始和结束位置。

多标签损失层(Multi-Label Loss Layer):

为了确保前向传播的兼容性,作者将最终的span分类制定为多标签预测问题。

对Span Matrix中的预测logits进行sigmoid激活后,计算二元交叉熵(Binary Cross Entropy, BCE)损失与真实标签(golden label)进行比较。
与常用的多分类方法(即使用softmax激活的交叉熵损失)相比,这种方法在将logits归一化为概率时,可以区分不同的实体类型,无论是单个任务还是多个任务。
每个实体类型都进行独立的二分类,BCE损失计算如式(5)所示。

知识蒸馏(Knowledge Distillation):

为了确保后向传播的兼容性,作者使用知识蒸馏来防止忘记旧的实体。
在第l个增量步骤(l > 1)时,首先使用先前学习的模型(教师模型)Ml-1对整个当前训练集Dl进行一次性预测,针对之前步骤学习到的实体类型。
这会产生每个span对于每个旧实体类型的伯努利分布作为软蒸馏标签(soft distilled label)˜p。
这些伪标签用于计算当前模型(学生模型)Ml与伯努利KL散度损失,如式(6)所示。
文本最后提到的“LKD is comp”似乎是一个不完整的句子,可能是指LKD(知识蒸馏损失)的计算方式。

总的来说,这段文本描述了在处理文本实体时,如何使用Span Matrix和多标签损失层来提高模型的准确性和效率,并如何利用知识蒸馏来防止在增量学习过程中忘记之前学习到的知识。

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

基于CAPL的S19文件解析

🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】🍅 玩转CANoe&…

【Qt 学习笔记】Qt常用控件 | 按钮类控件 | Check Box的使用及说明

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt常用控件 | 按钮类控件 | Check Box的使用及说明 文章编号&#xff…

js的算法-交换排序(快速排序)

快速排序 基本思想 快速排序的基本思想是基于分治法的:在待排序表L【1...n】中任意取一个元素p 作为枢轴(或基准,通常取首元素)。通过一趟排序将待排序表划分为独立的两部分L【1...k-1】和L【k1...n】;这样的话,L【1…

低代码技术与仓储管理的新纪元:革命性的供应链变革

引言 在当今数字化时代,企业对于创新和效率的追求越发迫切。在这样的背景下,低代码技术应运而生,成为企业数字化转型的重要工具之一。低代码技术的崛起为企业提供了一种快速、灵活、成本效益高的开发方式,大大缩短了软件开发周期…

如何把视频压缩变小?你应该知道的三个压缩视频的方法

一,视频压缩的基本原理 视频压缩的基本原理是通过去除视频中的冗余信息,减少视频数据的大小,从而达到压缩的目的。视频压缩的方法有很多种,其中最常见的是有损压缩和无损压缩。 二,视频压缩的必要性 1,视…

【智能算法】回溯搜索算法(BSA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2013年,P Civicioglu等人受到当前种群与历史种群之间的差分向量的引导启发,提出了回溯搜索算法(Backtracking Search Algorithm, BSA)。 2.算法原理…

甄美天使1+3退休模式开发|最新升级模式

我是新零售商业架构师肖琳,易创客社交新零售创始‌‌‌‌‌人,擅长品牌从0-1、1-10起盘全过程。易创客新零售,提供商业模式解决方案系统,包括分销系统、微商系统、新零售系统;提供社交新零售陪跑代运营,提供…

Mybatis 一级缓存和二级缓存

文章目录 前言查询缓存一级缓存应用场景生效的条件测试一级缓存原理工作流程源码分析 一级缓存总结 二级缓存二级缓存配置源码分析 为什么 MyBatis 默认不开启二级缓存? 前言 MyBatis是常见的Java数据库访问层框架。在日常工作中,开发人员多数情况下是使…

宁盾LDAP统一用户认证与单点登录:构建高效安全的企业身份认证

在信息化时代,企业面临着众多的应用系统和数据资源,如何有效地管理和保护这些资源,确保信息安全和高效利用,成为了企业信息化建设的核心问题。LDAP统一用户认证和单点登录(SSO)作为一种高效、安全的身份验证…

学习笔记记录ensp中防火墙配置(trust,unstrus,dmz 资源下载可用)

实验目的,通过配置防火墙控制相互之间的访问,拓扑图如下 资源已上传,注意lsw1和ar2的路由表到各个网段的路由表配置,通过防火墙来控制各个区域能否访问成功。 防火墙通过cloud2链接,方便登录网页配置防火墙策略。防火…

构建智慧银行:现代化系统架构的探索与实践

在数字化时代,银行业正面临着前所未有的挑战和机遇。随着科技的不断发展,传统银行业务已经难以满足客户日益增长的需求,智慧银行系统的建设成为了行业的必然选择。本文将探讨智慧银行系统的架构设计与实践,以期为银行业的数字化转…

eCharts 折线图 一段是实线,一段是虚线的实现效果

在lineStyle里写了不生效的话,可以尝试数据拼接 option {xAxis: {type: category,data: [Mon, Tue, Wed, Thu, Fri, Sat, Sun]},yAxis: {type: value},series: [{data: [150, 230, 224,218 ,,,],type: line},{data: [,,, 218, 135, 147, 260],type: line,lineStyl…

ESP32学习第一天-ESP32点亮LED,按键控制LED状态,LED流水灯

第一天使用到的函数: 函数第一个参数设置哪一个引脚,第二个参数设置引脚模式。 pinMode(led_pin,OUTPUT); //设置引脚模式 函数的第一个参数设置哪一个引脚,第二个参数设置是高电平还是低电平。 digitalWrite(led_pin,HIGH);//将引脚电平拉高 #incl…

Docker部署Nginx和SpringBoot项目,一遍把坑全踩完!

一.下载Docker 理论上来说,直接跟官网就行了,不过这里有个小坑。 官网默认推荐的是Docker Desktop(一个docker图形化工具)的安装方式,而不是Docker Engine(docker核心组件)的安装。 正确查看安装文档的方式…

电脑怎么拖动文件到想要的位置?电脑上拖拽没了的文件怎么找回

在日常的办公和学习中,电脑文件拖拽操作是每位用户都不可或缺的技能。然而,有时在拖动文件时,可能会因为误操作或其他原因,导致文件消失或移至未知位置。本文将详细解析如何在电脑上轻松拖动文件到指定位置,并为您提供…

HarmonyOS开发案例:【音乐播放器】

介绍 使用ArkTS语言实现了一个简易的音乐播放器应用,主要包含以下功能: 播放应用中的音频资源文件,并可进行上一曲、下一曲、播放、暂停、切换播放模式(顺序播放、单曲循环、随机播放)等操作。结合后台任务管理模块&…

多因素不同水平的正交表设计(并列法)

文章目录 一、问题提出二、举例说明 一、问题提出 参考高等教育课本《实验设计与数据处理》 很多时候,我们要考察的因素水平数不尽相同,这时候一般采用混合水平正交表或者对普通的正交表作修改,其中,混合水平正交表由于水平数不规…

某翻译平台翻译接口逆向之加解密参数刨析

上文链接 某翻译平台翻译接口逆向之webpack学习 分析参数 加密参数: ${t} function S(e, t) {return _(client${u}&mysticTime${e}&product${d}&key${t}) } function k(e, t) {const n (new Date).getTime();return {sign: S(n, e),client: u,produc…

STM32 软件I2C方式读取MT6701磁编码器获取角度例程

STM32 软件I2C方式读取MT6701磁编码器获取角度例程 📍相关篇《STM32 软件I2C方式读取AS5600磁编码器获取角度例程》🌿《Arduino通过I2C驱动MT6701磁编码器并读取角度数据》🔰MT6701芯片和AS5600从软件读取对比,只是读取的寄存器和…

掉落回弹问题(C语言)

一、N-S流程图&#xff1b; 二、运行结果&#xff1b; 三、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;float b 100;float sum 0;int i 0;//运算&#xff1b;for (i 1; i < 10; i){//运算&…