A Neural Span-Based Continual Named Entity Recognition Model

《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和多标签损失层来提高模型的准确性和效率,并如何利用知识蒸馏来防止在增量学习过程中忘记之前学习到的知识。

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

漏洞发生时,企业应该怎么做?

2021年,相关法律法规的完善极大促进了中国网络安全行业的发展,基于企业稳定运营、安全运营的原则,越来越多的领域投入到企业安全合规的建设中来。但现状是,随着安全建设的不断深入,各项出台的法规、政策并不一定能充分…

Python 异常处理与日志记录

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 异常处理是任何编程语言中的重要组成部分,Python 也不例外。Python 提供了丰富的…

解读无源 PoE 交换机:最佳选择比较指南

了解无源 PoE 交换机的复杂性可能是一项艰巨的任务。本文作为帮助您解码这些技术设备的综合指南。在这里,我们将详细比较各种无源 PoE 交换机、它们的独特特性以及它们的最佳使用案例。本指南重点关注客观事实,旨在为您提供必要的知识,以便在…

牛客周赛 Round 40(A,B,C,D,E,F)

比赛链接 官方讲解 这场简单,没考什么算法,感觉有点水。D是个分组01背包,01背包的一点小拓展,没写过的可以看看,这个分类以及这个题目本身都是很板的。E感觉就是排名放高了导致没人敢写,本质上是个找规律…

aardio - 【库】图片转字符画

库文件及例程下载:https://aardio.online/thread-261.htm

PyCharm 中的特殊标记

再使用 PyCharm 开发 Python 项目的时候,经常会有一些特殊的标记,有些是编辑器提示的代码规范,有些则为了方便查找而自定义的标记。 我在之前写过一些关于异常捕获的文章:Python3 PyCharm 捕获异常报 Too broad exception clause…

苹果手机怎么换行?分享3个换行小窍门

“晕!第一次使用苹果手机,还有很多功能不懂,比如我在手机上打字怎么换行?我在键盘上找了很久,还是没有找到。” “为什么在发消息用苹果手机自带键盘没有换行键?我该怎么快速换行?求方法&#…

重学java 19.面向对象 继承 上

走不出的那段阴霾,很多时候只不过是,我们把它当成了唯一 —— 24.4.22 面向对象整体知识导向: 知识梳理: 1.知道继承的好处 2.会使用继承 3.继承之后成员变量和成员方法的访问特点 4.方法的重写,知道方法重写的使用场景…

sprinboot+人大金仓配置

1. .yml 配置 spring:datasource:type: com.alibaba.druid.pool.DruidDataSource#driverClassName: dm.jdbc.driver.DmDriver## todo 人大金仓driverClassName: com.kingbase8.Driverdruid:## todo 人大金仓master:url: jdbc:kingbase8://111.111.111.111:54321/dbname?cu…

helpdesk桌面运维常见问题解决

helpdesk是一套帮助IT团队管理IT工单生命周期、自动化日常工作、优化工作流程的软件或软件集合,它可以帮助IT团队提高生产力、降低成本、改善服务水平和客户体验。 在现代企业中,helpdesk桌面运维是一项至关重要的工作,helpdesk团队负责处理员…

虚拟信用卡是什么,可以用来开亚马逊店铺吗?

虚拟信用卡是什么? 虚拟信用卡就是一组由银行随机生成的数字的虚拟卡,使用起来方便快捷,对于个人而言保守自己的隐私,并且下卡快,即开即用 可以用来开亚马逊店铺吗? 可以,因为市场的需求很多…

面试官:在原生input上面使用v-model和组件上面使用有什么区别?

前言 还是上一篇面试官:来说说vue3是怎么处理内置的v-for、v-model等指令? 文章的那个粉丝,面试官接着问了他另外一个v-model的问题。 面试官:vue3的v-model都用过吧,来讲讲。 粉丝:v-model其实就是一个语…

储能展-CBTC-2024上海储能技术展会共话储能高质量发展

2024-CBTC上海国际储能技术展会 展会时间:7月24-26日 展会地址:上海(虹桥)国家会展中心 主办单位:湖南省电池产业协会/ 中国设备管理协会 /沪粤储能产业联盟/ 深圳国际投融资商会 国际氢能投融资与发展联…

Qt Debug模式下应用程序输出界面乱码【已解决】

Qt Debug模式下应用程序输出乱码 一、问题描述二、解决方法三、相关测试 一、问题描述 源码为utf-8编码. Qt Creator在Debug模式下运行程序,下方应用程序输出界面显示乱码. 但正常运行无乱码: 二、解决方法 尝试修改文件编码、执行编码无果… 可参考…

Python从0到100(十四):高级函数及函数使用进阶

前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…

Day11-Java进阶-HashSet集合LinkedHashSet-Collection工具类Map集合

1. HashSet集合 HashSet-JDK8版本及以后-面试常问 2. LinkedHashSet-Collection工具类 2.1 LinkedHashSet 2.2 Collection工具类 3. Map集合 3.1 Map接口介绍 3.2 Map 集合的遍历方式 3.2.1 三种方式介绍 package com.itheima.map;import java.util.HashMap; import java.ut…

【C++类和对象】日期类的实现

💞💞 前言 hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#x…

【MATLAB源码-第64期】matlab基于DWA算法的机器人局部路径规划包含动态障碍物和静态障碍物。

操作环境: MATLAB 2022a 1、算法描述 动态窗口法(Dynamic Window Approach,DWA)是一种局部路径规划算法,常用于移动机器人的导航和避障。这种方法能够考虑机器人的动态约束,帮助机器人在复杂环境中安全、…

PCB上有哪些元素

过孔:是用来切换层的 丝印:就是标记(白色的线或者符号) 焊盘:焊接元器件,相当于线头,连接各个元件 通孔埋孔盲孔,都是用来换层,内部没有桐,是用来固定的 线路…