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

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

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

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

相关文章

网站被SmartScreen标记为不安全怎么办?

在互联网时代,网站的安全性和可信度是用户选择是否继续访问的重要因素之一,然而,网站运营者偶尔会发现使用Edge浏览器访问网站时,会出现Microsoft Defender SmartScreen(以下简称SmartScreen)提示网站不安全…

element plus:tree强制更新

使用element plus的tree组件,做大屏设计器的图层列表,在左边的tree里和中间的编辑器里都可以右键上下移动图层,但是我遇到一个问题,往编辑器里增加组件,这种较大的变动,tree的渲染可以立马同步更新&#xf…

活动报名 | 如何进行全增量一体的异构数据库实时同步

伴随着新技术的不断涌现,市场竞争也在不断开辟新的角斗场——新的业务需求,新的应用设想都在这里迸发。 面对如此日新月异的竞争环境,企业的当务之急,是为新应用扎根准备好随时可取、准确一致的高质量数据土壤。在这样的背景下&a…

python基础语法--列表

一、列表的概念 列表(List)是一种有序、可变、允许重复元素的数据结构。列表用于存储一组相关的元素,并且可以根据需要动态地进行增加、删除、修改和访问。以下是列表的主要特点和操作: 有序性: 列表中的元素是按照它…

ROS 2边学边练(32)-- 初识tf2

前言 在上一篇文章当中我们已经用到了tf2,虽然有点懵,但所幸我们从这篇起将正式开始学习tf2,让它没有秘密可言。 动动手 我们依然是拿小海龟作为案例,简简单单走一遍流程,熟悉一下。 安装例子 安装例子及其依赖项。 …

如何使用 ArcGIS Pro 快速为黑白地图配色

对于某些拍摄时间比较久远的地图,限于当时的技术水平只有黑白的地图,针对这种情况,我们可以通过现在的地图为该地图进行配色,这里为大家讲解一下操作方法,希望能对你有所帮助。 数据来源 教程所使用的数据是从水经微…

Git | 分支管理

Git | 分支管理 文章目录 Git | 分支管理1、理解分支2、创建分支&&切换分支3、合并分支4、删除分支5、合并冲突6、分支管理策略合并分支模式实际工作中分支策略bug分支删除临时分支 1、理解分支 分支就类似分身。 在版本回退中,每次提交Git都会将修改以git…

【记录】Pandoc|Linux安装最新Pandoc

参考:官方文档,https://pandoc.org/installing.html 系统:Ubuntu 注意!Pandoc 不能接受 PDF 作为输入!!!如果是想下载 Pandoc 做 PDF 格式转换请放弃!! Linux 是 amd64 版…

使用PlantUML绘制活动图、泳道图

最近在学PlantUML 太漂亮了 给大家欣赏一下 我也记录一下 startuml |使用前| start :用户打开旅游App; |#LightSkyBlue|使用后| :用户浏览旅游信息; |#AntiqueWhite|登机前| :用户办理登机手续; :系统生成登机牌; |使用前| :用户到达机场; |登机前| :用户通过安检; |#Light…

14.接口自动化测试-造数据

1.测试造数据 工作场景: 需要造一批测试数据 解决方案: (1)使用字符串拼接 135XXXXX (2)使用第三方库去做 faker 安装: pip install Faker 若安装不成功,可能是需要清下缓存&a…

【R语言简介】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

VScode配置MySQL

1、进入官网,下载MySQL 地址:dev.mysql.com/downloads/mysql/ ZIP方式下载,选择本地的路径进行解压。 2、配置环境变量 形如下方的路径: D:\software\Mysql\mysql-8.3.0-winx64\bin 即是解压位置后文件夹下的bin文件路径 3、初…