论文分享Order-Agnostic Data Augmentation for Few-Shot Named Entity Recognition

Order-Agnostic Data Augmentation for Few-Shot Named Entity Recognition

用于少样本命名实体识别的无序数据增强

在这里插入图片描述

导读:本篇博客有精读版和速读版两部分;精读版是全文的翻译,篇幅较长;如果你想快速了解论文方法,可以直接阅读速读版部分,它是对文章的通俗解读。


精读版

目录

Abstrct

  数据增强(Data augmentation,DA)方法已被证明在低资源环境下对预训练语言模型(Pre-trained language models,PLMs)有效,包括少样本命名实体识别(Few-shot named entity recognition,NER)。然而,现有的 NER 数据增强技术要么对单词进行基于规则的操作,破坏了句子的语义连贯性,要么利用生成模型进行实体或上下文替换,这需要大量的标注数据,与在低资源环境下操作的目标相矛盾。在这项工作中,我们提出了无序数据增强(Order-agnostic data augmentation,OADA),这是一种替代解决方案,它在序列到序列 NER 方法的训练数据构建阶段利用了经常被忽视的无序性属性进行数据增强。为了有效地利用增强后的数据而不受到一对多问题的影响(即一个句子存在多个增强后的目标序列),我们进一步提出使用排序指令和创新的 OADA-XE 损失。具体来说,通过将每种实体类型的排列视为一个排序指令,我们相应地重新排列实体集,确保有一个独特的输入 - 输出对,而 OADA-XE 基于目标序列和模型预测之间的最佳匹配分配损失。我们在三个主要的 NER 基准上进行了全面的实验和分析,并且可以通过 OADA 显著增强 PLMs 的少样本能力。我们的代码可在 https://github.com/Circle-Ming/OADA-NER 上获取。

1.Introduction

  命名实体识别(Named entity recognition,NER)(Tjong Kim Sang 和 De Meulder,2003;Doddington 等人,2004)一直是最长期且最基础的任务之一。然而,NER 系统的有效性通常受到对大量高质量、标注数据集的需求的限制,而获取这些数据集成本高且耗费人力,这就需要针对数据稀缺问题的创新方法(Rijhwani 等人,2020;Yang 和 Katiyar,2020)。

  通过引入更合理的样本,数据增强(Data augmentation,DA)方法已被证明在标注数据稀缺的场景中是有效地决方案(Sahin 和 Steedman,2018;Kobayashi,2018;Wei 和 Zou,2019)。现有的 NER 数据增强方法大致可分为两类:(1)基于规则的操作;(2)文本到文本的生成。其中,基于规则的操作利用预定义的规则对文本进行自动修改,包括单词删除、重新排序和替换(Min 等人,2020)。然而,由于自然语言的离散性,这些技术难以保持语义连贯性。相反,文本到文本的数据增强技术,如 DAGA(Ding 等人,2020)、MELM(Zhou 等人,2022)和 ENTDA(Hu 等人,2023)通过使用预训练语言模型(Pre-trained language models,PLMs)的预测来替换实体或其上下文元素以增强文本。然而,为了执行有效地强,这些方法需要大量的标注数据来训练用于生成合成文本的增强模型,这在标注数据更稀缺的场景中,如少样本 NER 任务中构成了挑战,并且违背了在低资源环境下操作的基本目标。


图1: 来自 ACE-2005 的一个示例句子。在 固定顺序设置中(Yan 等人,2021),只有一个实体序列(“[1, ORG], [1, 4, PER]”)被认为是正确的。然而, 利用无序性属性则使得两个实体序列(“[1, ORG], [1, 4, PER]” 和 “[1, 4, PER], [1, ORG]”)都可以被接受。

  在这项工作中,我们提出了一个创新的无序数据增强框架 OADA 作为替代解决方案,并证明利用 NER 任务中一个基本但经常被忽视的方面(即目标实体的内在无序性,我们称之为 “无序性属性”)对于数据增强极其有效。为了利用这一属性进行数据增强,我们首先注意到传统的序列到序列(seq2seq)NER 系统的训练数据构建阶段和预测评估阶段之间的差距。如图 1 所示,对于源句子 “CNN 的 David Ensor 正在为我们报道”,传统的 seq2seq NER 方法(Yan 等人,2021)将以固定顺序感知实体,并在训练期间仅使用 “[1, ORG], [1, 4, PER]” 作为目标序列,而其等效的 “[1, 4, PER], [1, ORG]” 被忽略。然而,当 “[1, ORG], [1, 4, PER]” 和 “[1, 4, PER], [1, ORG]” 被视为模型预测进行评估时,它们都将被识别为正确的生成结果。这种固定顺序假设以及训练和评估阶段之间的差距导致许多可行样本的丢失。因此,在 OADA 中,我们试图将句子中的实体识别为一个无序集合,并将不同的实体排列都视为等效且准确的生成结果。这种观点极大地拓宽了给定句子可接受目标序列的范围,从而引入了一种新颖有效的数据增强方法。如图 1 所示,当将无序性属性纳入训练数据构建时,两个实体序列都被视为合理的目标序列。

  在 OADA 中,假设不同的实体排列提供等价的信息。因此,我们进一步提出使用排序指令和创新的交叉熵(XE)损失 OADA-XE,以便在这些序列上共同微调预训练语言模型(PLMs),同时避免一对多问题(Gu 等人,2018),即对于同一个句子存在多个可能的实体序列。例如,在图 1 中,如果我们不区分 “[1, ORG], [1, 4, PER]” 和 “[1, 4, PER], [1, ORG]”,并将它们直接与相同的输入句子配对,那么 PLM 将难以决定在 “1” 之后是生成 “4” 还是 “ORG”。为了解决这个问题,我们表明我们提出的策略可以在两个不同方面(即类型间和类型内)有效地区分不同的实体排列,如图 2 所示。具体来说,我们首先将实体类型作为排列实体的主要因素。通过将诸如 “LOC、ORG、MISC、PER” 这样的实体类型的每种排列视为一个排序指令,我们将其与输入句子连接,并按照这个指令排列实体序列,确保有一个独特的输入 - 输出对。其次,在单个实体类型内,OADA-XE 将基于目标序列和模型预测之间的最佳匹配来分配损失。例如,在图 2 中,前两个预测都是可以接受的,因为可以在它们和标准序列之间进行匹配,而第三个预测是错误的,因为它与排序指令相矛盾并且无规则地重新排列了实体。

  总之,我们的工作有以下几个关键贡献:1)据我们所知,我们首次从无序性视角研究进行数据增强。2)我们为少样本命名实体识别提出了一种新颖的数据增强框架 OADA,它通过利用排序指令和创新的 OADA-XE 损失,能够在各种实体排列上共同微调预训练语言模型。3)为了证明 OADA 的有效性和泛化能力,我们在三个数据集上进行了全面的实验和广泛的分析,其中包括一个用于嵌套命名实体识别的数据集,以及五个具有代表性的预训练语言模型(例如,BERT(Devlin 等人,2019)、BART(Lewis 等人,2020)、Flan-T5(Chung 等人,2022)、LLaMA2(Touvron 等人,2023)和 ChatGPT(OpenAI,2022)),并且相对于已有的基线方法显示出了显著的改进。


表1: 不同数据增强方法的比较。“Coher.” 表示 “语义连贯性”,“Sub.” 表示 “各种命名实体识别子任务”,“No-Train.” 表示一种方法是否需要训练额外的模型。

2.相关工作

2.1 NER的数据增强

  如表 1 所示,我们将 OADA 与现有的两类主要的 NER 数据增强方法进行了比较。

  基于规则的操作: 基于规则的数据增强方法主要进行词级别操作,包括同义词替换(Wei 和 Zou,2019;Cai 等人,2020)、单词删除(Kobayashi,2018)和重新排序(Min 等人,2020)。通过利用它们预定义的规则,这些方法可以高效地生成大量合成文本。然而,它们可能会严重受到词与标签不一致问题的影响(Zhou 等人,2022),即一个实体词可能会被替换为与其原始标签不匹配的替代词。此外,由于自然语言的离散性,词级别操作会给文本引入不连贯的替换。

  为了避免词与标签不一致的问题,Dai 和 Adel(2020)提出用相同类型的其他实体随机替换整个实体提及。尽管在平面命名实体识别任务中有效,但将其应用于嵌套命名实体识别等复杂的命名实体识别子任务仍然具有挑战性,并且它们仍然不可避免地引入不连贯的替换(Hu 等人,2023)。在这项工作中,我们仅对目标实体序列进行增强,同时保持输入句子完整,确保文本的语义连贯性。

  文本到文本生成: 命名实体识别任务中的基于文本到文本生成的增强大多受到回译的启发(Sennrich 等人,2016;Fadaee 等人,2017;Dong 等人,2017;Hou 等人,2018;Xia 等人,2019),其目的是在保持文本原始含义的同时在不同语言之间转换文本。当应用于词级别命名实体识别任务时,像 DAGA(Ding 等人,2020)和 MELM(Zhou 等人,2022)这样的方法探索使用将词标签与词合并的线性化序列微调预训练语言模型,并在损坏的句子上创建增强文本。然而,这些方法在处理嵌套实体时面临挑战,限制了它们在各种命名实体识别任务中的适用性。最近的 ENTDA(Hu 等人,2023)提供了一种上下文替换策略,能够很好地适应各种命名实体识别任务。然而,所有这些文本到文本生成方法的一个共同局限性是它们依赖大量的标注数据来训练增强模型,这与低资源环境的目标相矛盾。

  相反,通过利用命名实体识别任务中普遍存在的无序性属性,我们的方法 OADA 兼具基于规则和文本到文本数据增强方法的优势,能够有效地增强数据而无需额外的模型训练,同时不对句子进行任何改变,从而保持语义连贯性。

2.2 少样本NER

  少样本命名实体识别是一项具有挑战性的任务,即仅使用少量标注示例来识别实体(Wiseman 和 Stratos,2019;Yang 和 Katiyar,2020;Ding 等人,2021)。该领域的最新进展主要分为两类:基于度量的方法和基于提示的方法。这种分类也与两种不同的少样本命名实体识别设置相一致。基于度量的方法旨在通过学习特征空间并使用最近类原型或近邻样本对测试样本进行分类来识别实体(Snell 等人,2017;Fritzler 等人,2018;Yang 和 Katiyar,2020;Das 等人,2022;Zhang 等人,2023)。然而,这些研究中的大多数都假设存在资源丰富的源域,这与现实世界中仅有非常有限的标注数据可用的应用场景形成对比。

  按照 Gao 等人(2021)的研究,更实际的少样本设置对可用资源做出最小假设,并且每个类别仅提供少量样本用于训练。通过利用语言提示使预训练语言模型适应命名实体识别任务,基于提示的方法(Cui 等人,2021;Ma 等人,2022;Lee 等人,2022;Shen 等人,2023;Xu 等人,2023)在少样本场景中表现出令人瞩目的性能,并且可以通过更多的数据进一步增强。在这项工作中,我们遵循更具挑战性的少样本设置,即每个实体类型仅提供少量样本,并在基于提示的方法上实现 OADA,在第 4.3 节进行全面比较。

  此外,最近大型语言模型(如 GPT 系列(Brown 等人,2020;OpenAI,2022))有了显著发展,它们在少样本提示和上下文学习(ICL)方面表现出令人印象深刻的能力(Jimenez Gutierrez 等人,2022;Chen 等人,2023)。因此,在这项工作中,我们特别检验了 OADA 在大型语言模型上的泛化能力,并将结果包含在表 4 中。

3.无序数据增强

3.1公式化

  命名实体识别任务旨在检测给定句子 X X X中所有能够表示实体的片段。句子 X X X 中的 N N N 个实体形成相应的实体集 E = { y 1 , y 2 , … , y N } E = \{y_1, y_2, \ldots, y_N\} E={y1,y2,,yN}。在 OADA 中,我们将实体视为基本单元,仅进行实体级别的重排,保持单个实体的完整性。一个实体 y i y_i yi 可以表示为一个元组 y i = ( s i , t i ) y_i = (s_i, t_i) yi=(si,ti),其中 s i s_i si t i t_i ti 分别表示 y i y_i yi 的实体片段和类型。生成过程可以公式化为:

在这里插入图片描述

3.2通过实体重排增强数据

  在 OADA 中,我们定义两个实体序列当且仅当它们具有相同的实体集时才是等价的,因此两个等价的序列在它们如何排列序列组件(即实体)方面可能有很大差异。对于给定的句子 X X X,目标序列 Y i Y^i Yi 被定义为来自实体集 E E E 的实体的一种特定排列,例如 Y i = [ y N − 1 , y N , … , y 1 ] Y^{i} = [y_{N - 1}, y_{N}, \ldots, y_1] Yi=[yN1,yN,,y1]。我们进一步将排列空间定义为 O = { O 1 , . . . , O I } \textbf{O} = \{O^1,..., O^I\} O={O1,...,OI},它涵盖了来自 E E E 的所有可能的实体排列。根据我们的定义,当提供相应的 O i O^i Oi 时, Y i Y^i Yi 可以被唯一确定。这意味着集合 O \textbf{O} O 的基数,记为 I = ∣ O ∣ I = |\textbf{O}| I=O,直接控制了我们在 E E E 上增强文本的大小。

  通过随机打乱和重排实体集 E E E,我们将在 O \textbf{O} O 中获得 N ! N! N! 种不同的排列,这在计算上是不可行的,无法全部纳入训练。此外,通过标准交叉熵(Shao 等人,2019)很难同时对 X X X 和像 Y i Y^i Yi 这样的一组目标序列之间的关系进行建模。为了解决这个一对多的问题,我们引入了排序指令,它补充了输入 - 输出对的构建,并精确地控制了 O \textbf{O} O 的数量。


图2: 我们提出的 OADA 的概述。 步骤 1:实体重排。对于实体类型的每一种特定排列,实体集中的实体将根据其类型进行分组,并相应地排列成一个独特的重排结果。 步骤 2:构建输入 - 输出对。我们将实体类型的每一种排列视为一个排序指令,并将其与输入句子连接。按照这种排列进行的实体重排将与输入序列唯一配对,作为输入 - 输出对。 步骤 3:校准。我们使用 OADA-XE,并根据每个预测与目标实体序列的最佳对齐来衡量该预测。

3.3构造唯一的输入输出对

  在 OADA 中,我们首先在类型间方面将一对多映射分离为多个一对一映射,并确保唯一的输入 - 输出对。

  我们提出一种替代策略,而不是用所有可能的 N ! N! N! 种排列来增强数据:将实体类型作为排列实体的首要因素。具体来说,考虑一个具有一组实体类型 T = { t 1 , t 2 , … , t l } T = \{t_1, t_2, \ldots, t_l\} T={t1,t2,,tl}(例如 {LOC, ORG, MISC, PER})的特定数据集。通过基于实体类型进行排列,我们可以将 O i ∈ O O_i ∈ \textbf{O} OiO 定义为来自 T T T 的实体类型的随机排列 p p p(例如 [PER, LOC, ORG, MISC])。根据实体类型排列 p p p E E E 中的实体首先根据其类型进行分组,然后按照不同的组被排列成 Y p Y_p Yp。例如,在图 2 中,PER 类型的实体和实体 “(MIT, ORG)” 首先被组织成两个不同的组。然后,这两个组按照不同的排序指令被排列成不同的实体重排。

  为了 X X X 与其一组对应的目标序列(如 Y p Y_p Yp)之间保持唯一的一对一映射,我们将 p p p视为唯一的排序指令,并将 X X X p p p连接为[ p p p; X X X]。在预训练语言模型(PLM)的实际生成过程中, p p p将在特定的生成步骤中向模型指示要关注的实体类型。这样,我们在类型间方面解决了一对多的问题,排列空间 O \textbf{O} O的复杂度从 O ( N ! ) \mathcal{O}(N!) O(N!)显著降低到最多 O ( l ! ) \mathcal{O}(l!) O(l!)

  例如,在图 2 中,当与排序指令 “[PER, LOC, ORG, MISC]” 配对时,实体集可以唯一地重排为目标序列 “[(He, PER), (a professor of physics at MIT, PER), (MIT, ORG)]”。因此,第三个预测 “[(He, PER), (MIT, ORG), (a professor of physics at MIT, PER)]” 将被判定为错误预测。


图3: OADA-XE 的说明:(a)执行逐位置惩罚的标准交叉熵;(b)OADA-XE 根据预测与目标序列之间的最佳对齐来计算损失。

3.4用OADA-XE校准预测

  在本节中,我们将介绍如何缓解特定实体类型内的一对多问题,即类型内问题。这个问题会出现,因为仅靠排序指令和标准交叉熵(XE)我们无法区分同一类型的实体。例如,在图 2 中,第一个预测 “[(a professor of physics at MIT, PER), (He, PER), (MIT, ORG)]” 中的实体严格遵循给定的排序指令,但在执行标准交叉熵时会受到惩罚,因为前两个 PER 类型的实体在位置上与目标实体序列中的那些实体不对齐。与类型间映射不同,在类型间映射中实体具有不同类型并可以根据类型进行划分,这些类型内实体之间的唯一区别是它们的绝对位置。因此,这些类型内实体之间出现了一对多映射。

  为了缓解这个问题,我们受 Du 等人(2021)的启发,为 OADA 使用一种新颖的交叉熵损失。例如,在图 3 中,标准交叉熵损失要求目标实体和模型预测之间严格的逐位置匹配,因此会对预测序列 “[(a professor of physics at MIT, PER), (He, PER)]” 进行严重惩罚,尽管从我们的角度来看它与目标实体序列是等价的。我们将 OADA-XE 目标定义为找到最佳的排序 O i ∈ O O_i∈\textbf{O} OiO以最小化交叉熵损失:

在这里插入图片描述

  需要注意的是,与 Du 等人(2021)中的标记级别不同,我们的工作将在实体级别(即跨度和类型)进行校准,如图 3 所示。如果在模型预测和目标实体序列之间可以找到最佳匹配,那么这个预测将被视为正确预测。此外,由于 O \textbf{O} O中的大部分重排是无效的,并且对数损失对无效或有噪声的序列很敏感,这可能会导致模型行为发生很大变化(Kang 和 Hashimoto,2020),我们从交叉熵损失开始训练,以确保模型能够有效地处理 O \textbf{O} O排序的大搜索空间,并在训练期间采用退火计划应用 OADA-XE 损失(Ma 等人,2018;Clark 等人,2019;Du 等人,2021),以逐步教导模型减轻逐位置惩罚:

在这里插入图片描述

  其中 τ \tau τ在整个训练过程中,从 0 线性增加到 1。在配备 OADA-XE 后,我们可以在对预测进行校准时成功防止类型内问题。

4.实验

  数据集:我们在几种少样本设置下,对两个平面命名实体识别数据集和一个嵌套命名实体识别数据集进行了全面的实验。对于平面命名实体识别数据集,我们从两个不同领域中选取了 CoNLL-2003(Tjong Kim Sang 和 De Meulder,2003)以及 MITMovie(Liu 等人,2013)。对于 MITMovie,我们从其训练集中随机选取 15% 的样本作为验证集。对于嵌套命名实体识别,我们在 ACE2005(Doddington 等人,2004)上进行实验,采用与 Lu 和 Roth(2015)相同的数据划分方式。


表2: 10%训练数据下不同NER DA方法的性能比较。

4.1与不同DA方法的比较

  我们首先将 OADA 与 2.1 节中介绍的其他命名实体识别数据增强方法进行比较。为了进行公平比较,我们遵循 ENTDA 中的低资源设置,即有 10% 的训练数据可用,结果如表 2 所示。其中,DAGAMELM 不能处理嵌套实体,我们只在 CoNLL2003 上给出它们的结果。对于这些文本到文本的方法,我们遵循它们的设置,将训练集扩充 3 倍。由于我们的方法并不直接增加数据的多样性,我们在 5.2 节中研究了每个实体集使用的排列数量的影响,并在本文中对 ACE-2005 使用 20 次随机重排,对 CoNLL-2003 使用所有(4! = 24)重排。从结果中可以看出,OADA 可以应用于各种命名实体识别子任务,并且与其他命名实体识别数据增强方法相比取得了最大的改进。此外,与文本到文本的方法不同,我们的方法也不需要训练任何额外的模型。此外,需要注意的是,ENTDA 中的实体仍然保持固定的顺序。这意味着它们的增强数据可以通过 OADA 进一步增强,正如 “+ENTDA+OADA” 的结果所示,这也显示了我们方法的泛化能力。

4.2实验设置

  如 2.2 节中所介绍,在这项工作中,我们遵循 Ma 等人(2022)的方法,其中仅提供每种实体类型的 K K K 个样本。我们在 K = { 5 , 10 , 20 , 50 } K = \{5, 10, 20, 50\} K={5,10,20,50} 的设置下进行有监督微调的实验,在 K = { 1 , 2 , 3 } K = \{1, 2, 3\} K={1,2,3} 的设置下进行大语言模型的上下文学习(ICL)实验。对于所有设置,我们采用与 Yang 和 Katiyar(2020)相同的采样策略,并报告三次划分的平均性能。为了证明 OADA 可以统一应用于不同的模型甚至其他少样本方法,我们在 BERT、PromptNER(Shen 等人,2023)、BART、BART-NER(Yan 等人,2021)上实现 OADA 进行有监督微调,并在 Flan-T5-XXL、LLaMA2-13B-Chat 和 ChatGPT 上进行上下文学习。

  我们将 OADA 与几个强大且具有竞争力的少样本方法进行比较:Template-NER(Cui 等人,2021)、BART-NER、SEE-Few(Yang 等人,2022)、Ent-LM(Ma 等人,2022)、FIT(Xu 等人,2023)和 PromptNER。请参考附录 B 以获取详细介绍。


表3: 在不同少样本设置(K = 5、10、20、50)下三个数据集上的微调性能。我们报告每个单元格在 3 个不同划分上的平均结果。

4.3主要结果

  表 3 展示了我们提出的 OADA 与这些基线方法相比的结果。基于这些结果,我们有以下观察:
(1)OADA 持续提升了判别式和生成式预训练语言模型的性能。 尽管像 BERT 和 BART 这样的模型基线性能不同,但 OADA 在所有少样本设置下都取得了显著的改进。特别是在 5 样本设置下,OADA 在 CoNLL2003 和 ACE-2005 上分别将 BERT 的 F1 分数提高了 15.29 和 14.07,将 BART 的 F1 分数提高了 11.88 和 15.36。
(2)OADA 通常可以应用于各种标注方案,进一步提升了现有的少样本命名实体识别方法的能力。 为了进一步证明我们方法的泛化能力,我们还将 OADA 应用于具有不同标注方案的先前的最先进少样本命名实体识别方法。例如,虽然 BART-NER 使用起始和结束索引来表示实体跨度,这与它的预训练语料库有很大不同,但 OADA 有效地适应了这种方案。PromptNER 和 BART-NER 等方法在使用 OADA 后的性能提升凸显了其在不同命名实体识别应用中的泛化潜力。
(3)在基于提示的方法中,OADA 被证明是最有效率和效果最好的。 典型的基于提示的方法 Template-NER 和 FIT 由于跨度枚举而导致推理速度缓慢,而我们的推理速度比它们快 20.17 倍和 15.90 倍。PromptNER 虽然在推理方面高效,但需要将多个模板与输入句子结合的冗长序列,导致内存需求增加。我们的方法 OADA,通过利用无序性,不仅简化了这个过程,而且与这些现有方法相比,在不同的预训练语言模型上实现了更优越的性能。附录 C 中包含了对计算效率的更详细分析。

5.分析

5.1消融实验

  我们对微调 BART 进行消融实验,以分析 OADA 各个组件的贡献。图 4 中的结果表明,虽然直接合并增强数据已经可以提高性能,但使用排序指令和 OADA-XE 解决一对多问题可以进一步大幅提升效果,这证明了 OADA 每个组件的有效性。对 BERT 的消融实验结果包含在附录 B 中。

图4: 在 K = 5、10、20、50 设置下,两个数据集验证集上 OADA(BART)不同组件的消融研究,报告 F1 分数。 A:增强实体序列(3.2 节); I:使用排序指令(3.3 节); X:用 OADA-XE 分配损失(3.4 节)。
图5: OADA(BART)在不同排列数量下在 ACE-2005 验证集上的性能。

5.2对 T T T 排列的分析

  如 3.3 节中所介绍,我们在给定实体类型的排列的情况下对实体序列进行重排,并将排列空间减少到最多 l ! l! l!,其中 l l l是实体类型的数量。然而,对于像 ACE-2005 和 MIT-Movie 这样分别具有 7 种和 12 种实体类型的数据集,获取 l ! l! l!种实体重排仍然不切实际。因此,我们进行实验来研究排列数量的影响。 从图 5 中可以看出,大部分的改进来自于前 20 次排列,后续的改进很小,而训练时间却大幅增加。在实际应用中,我们为 ACE-2005 和 MIT-Movie 随机选择 20 次重排,为 CoNLL-2003 选择所有(4! = 24)次重排。

图6: 在两个验证集上不同位置的实体召回率,括号中为该位置的实体数量(单位是 1000)。
图7: 在 1-shot设置下不同规模的 LLaMA 模型的性能比较。

5.3不同位置的实体召回率

  我们研究了句子中不同位置的实体的召回性能。详细结果如图 6 所示。对于普通的 BART 在平面 CoNLL-2003 的 5 样本设置下,出现较晚的实体更有可能被召回。相反,在嵌套的 ACE-2005 中,中间位置的实体召回概率显著较低。我们假设这种模式的出现是因为对于平面命名实体识别,实体之间的依赖关系不太明显。而对于嵌套命名实体识别,后面的实体可能包含前面的实体,导致一种级联效应,即前面实体的错误会对后续实体的召回产生不利影响。使用 OADA,我们打乱了实体的排列,使得后面的实体有可能出现在前面的实体之前,从而减少了一个实体的召回对前面实体的依赖。我们在附录 D 中进一步包括了一些相关的案例研究。


表4: 在(K = 1、2、3)样本设置下大语言模型ICL的性能。

5.4使用 OADA 的LLM的ICL

  最近,大语言模型有了显著的发展。然而,巨大的参数数量以及对计算资源的大量需求,使得上下文学习成为一种更实际的方法。为了验证我们的方法的适用性,我们在不同的大语言模型上进行实验:Flan-T5-XXL、LLaMA2-13B-Chat 和 ChatGPT(即 gpt-3.5-turbo)。结果如表 4 所示。从表中可以看出,尽管大语言模型的结果相对高于微调小规模预训练语言模型,但 OADA 仍然有效,并能进一步提高它们的性能,这表明了 OADA 在利用大语言模型进行上下文学习中的有效性。我们在附录 E 中包括了我们如何使用大语言模型进行上下文学习的细节。

5.5模型规模的影响

  我们研究了使用 OADA 的上下文学习对模型规模的敏感性,如图 7 所示。尽管我们可以观察到随着 LLaMA 模型规模的增加,性能有显著提升,但我们的方法在这些不同规模的模型上始终有效。从 LLaMA-70B 的结果可以看出,即使其模型规模比其他版本大得多,OADA 仍然有效,并且在 CoNLL-2003 上的基础性能提高了超过 2.00 的 F1 分数。此外,从 CoNLL-2003 的结果中我们还可以观察到,我们使用的基础 LLaMA 模型越大,OADA 带来的改进似乎在逐渐下降。我们假设这种趋势是由于上下文学习中使用的示例饱和所致。由于大语言模型的指令微调过程会纳入来自命名实体识别任务的数据(Longpre 等人,2023),它们在 CoNLL-2003 上表现出优越的性能。为了证明这一点,我们在大语言模型不太熟悉的 ACE-2005 上进一步对 LLaMA 使用 OADA(Zhang 等人,2024)。结果表明,我们的方法在这种情况下表现出良好的鲁棒性,在这种情况下,更多的示例对于大语言模型理解任务是有帮助的,而不是包含额外但冗余的示例。

6.总结

  在本文中,我们通过利用命名实体识别中经常被忽视的无序性,提出了一种新颖的数据增强方法 OADA。此外,为了在不受一对多问题影响的情况下共同利用增强后的数据,我们引入了排序指令的使用以及创新的 OADA-XE 损失,分别解决了类型间和类型内的问题。在三个主要的命名实体识别基准上进行的实验以及广泛的分析证明了 OADA 的有效性。

局限性

  尽管 OADA 是有效的,但仍有一些潜在的方向值得探索,我们将其留作未来的工作。

重排因素
  在我们的工作中,为了减少 O \textbf{O} O 的巨大搜索空间并提供一个明确的区分标准,我们选择实体类型作为基本的重排因素,并且在附录 A 中也讨论了其他潜在的候选因素。从我们的分析中,我们知道原始的 “从左到右” 顺序在其中实现了最差的性能,这也证明了我们的主张,即严格的顺序假设不需要被维持。仍然有其他值得发现的重排因素,这可能会进一步提高效果。也许我们目前的选择(即实体类型)不是最优解,但我们的工作也为此后的工作提供了足够的线索,并且我们提出的解决一对多映射问题的设计在未来的工作中仍将有足够的应用场景。

更多样化的推理策略和最佳顺序
  在 OADA 的训练阶段,我们释放了生成模型进行多样化推理的能力。如 3.3 节中所介绍的,我们将为实体类型的每个特定排列构建一个唯一的排序指令,以解决类型间映射问题。因此,对于每个输入句子,我们将使用 ∣ O ∣ \vert \textbf{O}\vert O个不同的排序指令,每个指令指示一个特定的生成优先级。此外,已经有一些工作(Mitchell 等人,2022;Wang 等人,2023)表明,进行一致性检查将大大提高大语言模型的上下文学习性能。因此,我们也对基于多数投票的推理策略进行了实验,结果显示在附录 F 中。从结果中,我们发现应用多数投票的性能并不明显优于由最佳排序指令引导的推理。此外,我们还进行了一些选择最佳顺序的研究,并将其包含在附录 G 中。从结果中,我们也没有观察到通过选择“top- k k k”顺序有显著的改进。在我们的工作中,我们始终采用所有的实体排列进行微调,并在解码时采用原始顺序,如 OADA 的主要结果中所报告的那样。我们相信,如果有一个合适的算法可以在不同指令生成的所有目标序列中选择实体,性能将会进一步提高。


速读版

解决的任务:少样本NER。

所提出的方法:数据增强。提出无序数据增强框架 OADA,适应于生成式NER,仅对目标实体序列进行增强。

通过举例直观解读该方法:

  • 原始数据( 1 1 1条):(假设该数据集共 l = 3 l=3 l=3类实体:PER、LOC、ORG;且例句中共 N = 4 N=4 N=4个实体词)
{“输入”:[小明和小红去了北京,参观了北京大学],“输出”:[ [小明, PER], [小红, PER],[北京, LOC],[北京大学, ORG]]}

  之前的文本到文本的NER方法中,输入给模型“小明和小红去了北京,参观了北京大学”,模型逐一输出“小明”、“PER”、“小红”、“PER”、“北京”、“LOC”……但实际上,输入给模型“小明和小红去了北京,参观了北京大学”,模型也可以逐一输出“北京”、“LOC”、“北京大学”、“ORG”、“小红”、“PER”…,这种输出结果也是正确是,也就是说,不一定按一种固定的顺序输出正确结果,基于这个发现,作者提出了无序数据增强方法。

  • 无序数据增强后(对应原论文3.2节),变为 N ! = 4 ! = 24 N!=4!=24 N!=4!=24条,空间复杂度 O ( 4 ! ) \mathcal{O}(4!) O(4!)
{“输入”:[小明和小红去了北京,参观了北京大学],“输出”:[ [小明, PER], [小红, PER],[北京, LOC],[北京大学, ORG]]}
{“输入”:[小明和小红去了北京,参观了北京大学],“输出”:[ [小明, PER], [小红, PER],[北京大学, ORG],[北京, LOC]]}
…
{“输入”:[小明和小红去了北京,参观了北京大学],“输出”:[ [北京, LOC], [北京大学, ORG],[小明, PER], [小红, PER]]}
{“输入”:[小明和小红去了北京,参观了北京大学],“输出”:[ [北京, LOC], [北京大学, ORG],[小红, PER], [小明, PER]]}

  但此时会有一个问题:一对多问题(同一个输入有多个输出);例如,对于输入“小明和小红去了北京,参观了北京大学”,此时它的输出可能是 “[小明, PER], [小红, PER],[北京, LOC],[北京大学, ORG]” ,也可能是 “[北京, LOC], [北京大学, ORG],[小红, PER], [小明, PER]”,那么 PLM 将难以决定在 “[小红, PER]” 之后是生成 “[北京, LOC]” 还是 “[小明, PER]”。

  解决方法:将实体类型的不同排序作为“排序指令”,在每个输入文本基础上加上“排序指令”。(也就是告诉模型你得按照我给定的顺序输出,这样一来,大部分输入都不一样,也就缓解了一对多问题,但还没有彻底消除一对多问题)

  • 加上排序指令后(对应原论文3.3节),变为 l ! ∗ 2 = 3 ! ∗ 2 = 12 l! * 2 = 3! * 2 = 12 l!2=3!2=12条,空间复杂度 O ( 3 ! ) \mathcal{O}(3!) O(3!)(注意,这里乘2是因为例句中有2个PER实体词)
{“输入”:[小明和小红去了北京,参观了北京大学],“排序指令”:[LOC,ORG,PER],“输出”:[[北京, LOC],[北京大学, ORG], [小明, PER], [小红, PER]]}
{“输入”:[小明和小红去了北京,参观了北京大学],“排序指令”:[LOC,PER,ORG],“输出”:[[北京, LOC],[小明, PER], [小红, PER],[北京大学, ORG]]}
{“输入”:[小明和小红去了北京,参观了北京大学],“排序指令”:[ORG,LOC,PER],“输出”:[[北京大学, ORG],[北京, LOC],[小明, PER], [小红, PER]]}
{“输入”:[小明和小红去了北京,参观了北京大学],“排序指令”:[ORG,PER,LOC],“输出”:[[北京大学, ORG],[小明, PER], [小红, PER],[北京, LOC]]}
{“输入”:[小明和小红去了北京,参观了北京大学],“排序指令”:[PER,LOC,ORG],“输出”:[ [小明, PER], [小红, PER],[北京, LOC],[北京大学, ORG]]}
{“输入”:[小明和小红去了北京,参观了北京大学],“排序指令”:[PER,ORG,LOC],“输出”:[ [小明, PER], [小红, PER],[北京大学, ORG],[北京, LOC]]}

{“输入”:[小明和小红去了北京,参观了北京大学],“排序指令”:[LOC,ORG,PER],“输出”:[[北京, LOC],[北京大学, ORG], [小红, PER], [小明, PER]]}
{“输入”:[小明和小红去了北京,参观了北京大学],“排序指令”:[LOC,PER,ORG],“输出”:[[北京, LOC],[小红, PER], [小明, PER],[北京大学, ORG]]}
{“输入”:[小明和小红去了北京,参观了北京大学],“排序指令”:[ORG,LOC,PER],“输出”:[[北京大学, ORG],[北京, LOC],[小红, PER], [小明, PER]]}
{“输入”:[小明和小红去了北京,参观了北京大学],“排序指令”:[ORG,PER,LOC],“输出”:[[北京大学, ORG],[小红, PER], [小明, PER],[北京, LOC]]}
{“输入”:[小明和小红去了北京,参观了北京大学],“排序指令”:[PER,LOC,ORG],“输出”:[ [小红, PER], [小明, PER],[北京, LOC],[北京大学, ORG]]}
{“输入”:[小明和小红去了北京,参观了北京大学],“排序指令”:[PER,ORG,LOC],“输出”:[ [小红, PER], [小明, PER],[北京大学, ORG],[北京, LOC]]}

  此时仍然存在一对多问题:比如第1条和第7条,相同输入但是输出不同,主要原因是句子中出现了不止1个PER实体,此时同为PER实体的“小明”和“小红”顺序就不确定,这在论文中被称为类型内问题。

  解决办法:设计了OADA-XE损失;简单来说,就是模型不管输出[[北京, LOC],[北京大学, ORG], [小明, PER], [小红, PER]]或是[[北京, LOC],[北京大学, ORG], [小红, PER], [小明, PER]],都是正确的。

  • 设计的OADA-XE损失(对应原论文3.4节):


论文原图3:左边图(a)是执行逐位置惩罚的标准交叉熵;右边图(b)是设计的OADA-XE损失,它根据预测结果与目标序列之间的最佳对齐来计算损失。

该方法优点:①保持原始输入的语义连贯性,因为它没有对原始输入进行增删替换等操作;②不需要训练额外的模型来生成新数据以达到数据增强的目的。


参考文献
Wang H, Cheng L, Zhang W, et al. Order-Agnostic Data Augmentation for Few-Shot Named Entity Recognition[C]//Proceedings of the 62nd Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). 2024: 7792-7807.

### Task-agnostic 视频语言模型 (VLM) 的预训练及其在视频理解中的应用 #### 定义与背景 Task-agnostic 视频语言模型(VLM)是一种能够处理多任务场景的通用型模型,旨在通过联合建模视频和文本数据来捕捉跨模态的信息交互。这种类型的模型通常通过对大规模未标注或多标签的数据集进行自监督学习完成预训练阶段[^2]。相比传统的任务特定模型,Task-agnostic VLM 更加灵活,在多个下游任务中表现出色。 #### 预训练方法概述 预训练的核心目标是从大量无标记或弱标记的多媒体数据中提取有用的特征表示。对于视频语言模型而言,常见的做法是将视频序列分解为离散的时间步,并将其映射到高维向量空间中。具体来说,给定一段视频片段 \( v \),以及对应的自然语言描述 \( t \),可以通过以下方式实现: 1. **Token化**: 将视频帧转换为一系列 token 嵌入,这一步骤可能涉及使用冻结的视觉编码器(如 ResNet 或 Swin Transformer)提取每帧的空间特征。 2. **时间建模**: 利用可训练的 MLP 层或其他结构进一步捕获帧间关系,从而得到最终的视频 token 表示。 3. **对比学习框架**: 在许多情况下,采用基于对比损失的目标函数优化模型参数,使得正样本对之间的相似度最大化而负样本最小化[^3]。 #### 应用于视频理解的具体案例分析 以 Meta AI 和 CMU 提出的任务无关视频语言模型为例,该架构展示了如何有效地结合来自不同源域的知识来进行广泛的视频理解和生成任务。此外,还有其他研究尝试比较不同类型 VLM 架构的效果差异,例如 BLIPBASE 和 XVLMCLIP 这两类分别代表了编解码器网络混合模式和平行流模式的设计理念。 当涉及到实际应用场景时,像 SeeDo 系统那样利用预先训练好的大型多模态语言模型去解析真实世界的演示录像成为一种新兴趋势[^1]。它不仅继承了传统模仿学习技术的优点——即把复杂的操作拆分成更易于管理的小单元;同时还引入了先进的 NLP 技术支持更加多样化的动作执行形式。 ```python import torch from transformers import VideoMAEModel, AutoTokenizer def extract_video_features(video_frames): video_encoder = VideoMAEModel.from_pretrained('videomae-base') tokenizer = AutoTokenizer.from_pretrained('bert-base-uncased') with torch.no_grad(): frame_embeddings = video_encoder(video_frames).last_hidden_state text_input_ids = tokenizer("A man is playing basketball", return_tensors="pt")['input_ids'] # Hypothetical fusion mechanism between visual and textual embeddings. fused_representation = combine_visual_textual(frame_embeddings, text_input_ids) return fused_representation def combine_visual_textual(vis_emb, txt_id): pass # Placeholder for actual implementation details. video_data = ... # Preprocessed input data structure containing frames. result = extract_video_features(video_data) print(result.shape) ``` 上述代码片段展示了一个简单的例子说明怎样加载现成工具包里的组件并组合起来形成初步解决方案雏形。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值