Cross-Lingual NER Using Parallel Corpus: A New Approach Using XLM-RoBERTa Alignment

本文介绍了一种基于平行语料库的跨语言命名实体识别新方法,利用XLM-RoBERTa进行实体对齐,提高准确性。通过实体投影和优化损失函数,实现从高资源语言到低资源语言的迁移,且在多种语言的基准数据上表现出竞争力。

Cross-Lingual Named Entity Recognition Using Parallel Corpus: A New Approach Using XLM-RoBERTa Alignment(基于平行语料库的跨语言命名实体识别:一种新的XLM-RoBERTa对齐方法)

0 Abstract

我们提出了一种使用平行语料库的跨语言命名实体识别(NER) 0-shot 迁移的新方法。我们在XLM-RoBERTa 的基础上建立了一个实体对齐模型,将并行数据的英文部分检测到的实体映射到目标语言句子中,其准确性超过了以前所有的无监督模型。通过对齐模型,我们可以获得目标语言的伪标记NER数据集,以训练特定任务模型。与使用翻译方法不同,这种方法得益于目标语言原始语料库中的自然流畅和细微差别。我们还提出了一个改进的损失函数,类似于焦点损失,但在相反的方向分配权重,以进一步改善噪声伪标记数据集的模型训练。我们在4种目标语言的基准数据集上评估了这种方法,并获得了与最近的SOTA模型相比具有竞争力的F1成绩。我们还额外讨论了平行语料库的规模和领域对最终迁移性能的影响。

1 Introduction

命名实体识别(NER)是自然语言处理中的一项基本任务,旨在将句子中的单词分类为预定义的语义类型。由于原始真实标签在单词级,NER模型的监督训练通常需要大量的人工标注工作。在需要构建多语言模型的真实用例中,所需的人力至少与语言数量成线性比例,对于低资源语言甚至更糟。自然语言处理任务中的跨语言迁移近年来得到了广泛的研究,特别是 0-shot 迁移,它利用了高资源语言(如英语)的进步,使其他低资源语言受益。在本文中,我们重点关注NER任务的跨语言迁移,更具体地说,使用平行语料库预训练的多语言语言模型,如mBERT和XLM-RoBERTa。

我们的动机有三方面:

  1. 平行语料库是迁移学习的重要资源,在多语言对之间具有丰富的资源。最近的一些研究集中在使用完全无监督的机器翻译(例如单词对齐)进行跨语言NER,然而不准确的翻译可能会损害迁移性能。例如,在单词到单词的翻译方法中,单词排序可能在翻译过程中不能很好地表示,翻译质量上的这种差距可能会损害下游任务中的模型性能。
  2. 一种方法即使只适用于一些具有足够平行语料库的主要语言,只要它具有令人满意的性能,仍然可以提供业务增值。在行业实践中,这是一个常见的问题,因为有大量定制的任务需要扩展到主要市场,但又不想用其他语言注释大量数据。
  3. 以前使用平行语料库的尝试大多基于启发式和统计模型。最近在多语言模型方面的突破还没有应用到这种场景中。我们的工作弥补了这一差距,并使用新技术重新讨论了这个主题。

我们提出了一种新的跨语言NER迁移的半监督方法,该方法由平行语料库桥接

  • 首先,在源语言数据集上训练一个NER模型——在这个例子中是英语——假设我们已经标记了任务特定的数据。其次,我们用这个模型标记平行语料库的英语部分。
  • 然后,将被识别的实体投射到目标语言上,即在平行语料库的目标语言部分标记相同实体的跨度。在这一步中,我们将利用最新的XLM-R模型,这使得我们的工作和以前的尝试之间有了很大的区别。
  • 最后,我们使用这个伪标记数据直接用目标语言训练任务特定模型。在最后一步中,我们探索了从基于英语NER数据的多语言模型继续培训的选项,以最大限度地提高模型迁移的好处。我们还尝试了一系列方法来减轻这种半监督方法中的噪声标签问题。

本文的主要贡献如下:

  • 我们利用强大的多语言模型XLM-R进行实体对齐。它是以易于收集数据的监督方式训练的,这与以前主要依靠无监督方法和人工工程特征的尝试形成鲜明对比。
  • 伪标记数据集通常包含大量的噪声,在焦点损失的启发下,我们提出了一个新的损失函数。我们没有使用基础的焦点损失损失,而是反其道而行之,减少硬例子的权重,因为这些例子更有可能是噪声。
  • 通过利用现有的自然平行语料库,我们获得了多种语言的NER迁移的F1值。我们还测试了平行语料库的领域对于有效迁移的影响至关重要。

2 Related Works

zero-shot多语迁移有不同的方式。一般有基于模型的迁移基于数据的迁移两类。

  • 基于模型的迁移通常使用源语言训练一个具有语言独立特征的NER模型,然后直接将模型应用到目标语言进行推理
  • 基于数据的迁移侧重于结合源语言任务特定模型翻译实体投影来创建目标语言的弱监督训练数据。

一些先前的尝试包括在对齐的平行语料库上使用标签投影、源语言和目标语言之间的翻译,或者利用维基百科超链接结构获得锚文本和上下文作为弱标签。标注投影中存在不同的变体,如利用最大熵对齐模型数据选择将英语标注标签投影到平行目标语言句子中。其他一些研究使用双语映射结合词汇启发式,或使用嵌入方法进行词级翻译,自然产生标注投影。这种翻译+投影方法不仅用于NER,也用于其他自然语言处理任务,如关系提取。翻译+投影法有明显的局限性,基于单词或短语的翻译使注释投影更容易,但牺牲了母语的流利性和语言的细微差别。此外,用于实体匹配的基于正字法和语音的特征可能只适用于相似的语言,并且需要广泛的人类工程特征。为了解决这些局限性,我们提出了一种新的方法,利用机器翻译训练数据,并结合预先训练的多语言语言模型进行实体对齐和投影。

3 模型设计

我们将在接下来的章节中演示实体对齐模型组件和我们工作的完整训练流程。

3.1实体对齐模型

从源语言到目标语言的翻译可能会破坏词的顺序,因此需要一个对齐模型将源语言的实体句投射到目标语言,从而实现源语言标签的 0-shot 转移。在这项工作中,我们使用首次引入了翻译语言模型(TLM)预训练任务的XLM-R 系列模型。TLM训练模型使用上下文信息另一种语言的平行句信息预测 mask 词,使模型获得了良好的跨语言和潜在对齐能力。

我们的对齐模型是通过连接实体的英文名称和目标语言句子,分别作为输入序列的段A和段B来构建的。对于段B的 token 级输出,如果它在被翻译的实体内,我们预测为1,否则为0。这种形式将实体对齐问题转化为标记分类任务。一个隐含的假设是,实体名称在翻译后仍然是一个连续的短语。模型结构如图1所示。

在这里插入图片描述

图1:实体对齐模型。左边的查询实体是“Cologne”,右边的德语句子是“Köln liegt in Deutschlands”,即英语中的“Cologne is located in Germany”,而“Köln”是“Cologne”的德语翻译。该模型预测与查询实体对齐的单词跨度。

3.2 跨语言传输管道

图2显示了整个训练/验证管道,包括5个阶段:

  1. 在CoNLL 2003上对预训练的语言模型进行微调,得到英语的NER模型;
  2. 对平行语料库中的英语句子进行标签推断;
  3. 运行前一小节中的实体对齐模型,找到对应的目标语言中检测到的英语实体,在对齐过程中过滤掉失败的实例
  4. 利用步骤 (3) 生成的数据对多语言模型进行微调;
  5. 在目标语言测试集上评价新模型。

在这里插入图片描述
图2:训练流水线图。黄色页面代表英语文档,而浅蓝色页面代表德语文档。步骤1和步骤5分别使用原始CoNLL数据进行训练和验证;步骤2、3、4使用来自OPUS网站的机器翻译数据。预训练模型为mBert或XLM-R。最终的模型首先在英语的NER数据集上进行微调,然后在目标语的伪标记NER数据集上进行微调。

4 实验与讨论

4.1 平行语料库

在我们的方法中,我们利用大规模平行语料库的可用性,将英语获得的NER知识转移到其他语言。现有的平行语料库比注释的NER数据更容易获得。我们使用从OPUS网站抓取的平行语料。在我们的实验中,我们使用了以下数据集:

  • Ted2013:由来自TED网站的志愿者转录和翻译组成,作为2013年国际口语翻译研讨会的培训数据资源。
  • open字幕:一个新的电影字幕翻译集合,包含62种语言。
  • 维基矩阵:从维基百科中挖掘不同语言的平行句子,只使用得分高于1.05的配对。
  • UNPC:手工翻译的1994年至2014年的联合国文件。
  • Europarl:来自欧洲议会网站的平行语料库。
  • WMT-News:由WMT提供的用于训练SMT的新闻测试集的平行语料库,该语料库包含18种语言。
  • NewsCommentary:由WMT提供的用于训练SMT的新闻评论平行语料库,包含12种语言。
  • JW300:从从杂志《清醒!》和《瞭望塔》中挖掘出的平行句子。

在这项工作中,我们专注于4种语言,德语、西班牙语、荷兰语和汉语。我们从上述所有数据集中随机选择权重相等的数据点。由于数据的可用性和相关性,不同语言之间的数据分布可能略有不同。

4.2 模型校准训练

对齐模型的目标是从一个的外语段落中找到所给英文名称的实体。我们将英文名称和段落作为片段A和B输入XLM-R模型。与NER任务不同,对齐任务对标签完整性没有要求,因为在一个训练示例中,我们只需要给一个实体贴标签。训练数据集可以从维基百科文档创建,其中超链接中的锚文本自然地表示实体的位置,人们可以通过维基百科实体Id链接获得英文实体名称。另一种方法是通过最先进的翻译系统来获得英文名字在另一种语言中的词。我们采用后一种方法使其变得简单,并利用微软的Azure认知服务进行翻译。

在训练过程中,我们还添加了虚假英语实体的反例,这些实体没有出现在另一种语言的句子中。我们的方法是迫使模型专注于英语实体(片段A)及其翻译,而不是单纯地进行NER操作,从其他语言的句子中挑选出任何实体(片段B)。我们还添加了名词短语或名词性实体的例子,以使模型更健壮。

我们为每种语言生成了一个30K样本的训练集,每个样本有25%的负号,并为3个阶段训练了一个XLM-R-large模型,批次大小为64。初始学习率为5e-5,其他超参数是来自HuggingFace transformer库的缺省值,用于标记分类任务。保留测试集的精度/召回率/F1达到98%。模型训练是在2台特斯拉V100上进行的,耗时约20分钟。

4.3 跨语言迁移

我们使用 CoNLL 2003 和 CoNLL 2002 数据集来测试我们的德语、西班牙语和荷兰语跨语言迁移方法。我们忽略这些语言的训练集,只在测试集上评估我们的模型。对于汉语,我们使用人民日报作为主要的评价集,我们也在下一节中报告了MSRA 和微博数据集上的数据。人民日报数据集的一个显著差异是,它只包含了LOC、ORG和PER三种实体类型,因此我们在迁移过程中通过训练英语NER模型,将“MISC”标记为“O”来抑制英语中的MISC类型。

为了实现跨语言迁移,我们首先使用以XLM-R-large为基础模型的CoNLL 2003 EN培训集培训了一个英语教师模型。我们用焦点损失进行了5个 epoch 的训练。然后我们用这个模型对平行数据的英语部分进行推理。最后,通过对齐模型,我们将实体标签投影到其他语言上。为了确保目标语言训练数据的质量,如果任何英语实体未能映射到目标语言中的标记,我们将丢弃示例。我们还丢弃了目标实体重叠的例子,因为这会导致token标签中的冲突。此外,当一个实体被映射到多个实体时,只有当所有的目标提到短语都相同时,我们才保留这个示例。这是为了适应同一实体在一个句子中被多次提到的情况。

最后,在目标语言伪标记数据上,我们对在英语数据集上预训练的多语言模型进行了微调,并冻结了较低的n(0、3、6等)层。我们使用了mBERT和XLM-R, 1个epoch约40K训练样本。结果如表1所示。所有的推理、实体投影和模型训练实验都是在2特斯拉V100 32G gpu上完成的,整个流水线耗时约1-2小时。所有数字都报告为相同设置下的5次随机运行的平均值。

在这里插入图片描述
表1:德语、西班牙语、荷兰语和汉语的跨语言迁移结果:实验采用mBERT模型和XLM-RoBERTa 模型。我们比较了每一个 0-shot 结果(仅用 CoNLL 2003 英语训练)和使用 0-shot 伪标记目标语言NER数据的微调结果。德语、西班牙语、荷兰语的测试集来自CoNLL 2003和CoNLL 2002,中文的测试集来自人民日报。

对于损失函数,我们使用了类似于焦点损失的东西,但权重分配相反。焦点损失的设计是为了使硬的例子更有分量。这种方式只有在培训数据干净的情况下才成立。在某些情况下,如跨语言迁移任务,伪标记训练数据包含大量来自管道上游的噪声,在这种情况下,那些“硬”的例子更有可能只是错误或异常值,可能会损害训练过程。我们反其道而行,降低了它们的权重,这样模型就可以专注于噪音较小的标签。更具体地说,我们在常规的交叉熵损失的基础上使用权重 ( 1 + p t ) γ (1 +p_t)^γ (1+pt)γ 代替 ( 1 − p t ) γ (1−p_t)^γ (1pt)γ,对于超参数 γ γ γ,我们实验的值从1到5,值为4时效果最好。

从表1可以看出,对于 mBERT 模型,除了NL之外,使用伪标记数据进行微调对所有语言都有显著影响。最大的进步是在汉语,F1在 0-shot 结果的基础上增加了6.4%,德国是2.5%,西班牙是2.4%。用 XLM-R 模型进行的相同实验显示了不同的模式,经过微调后,F1在德国的成绩提高了3.5%,但在西班牙和荷兰的成绩略有下降。对于汉语来说,我们看到了相应的改善,提高值为4.2%。对西班牙语和荷兰语的负面结果可能是因为 XLM-R 已经对这些欧洲语言进行了很好的预训练和语言对齐,这可以从高的 0-shot 中看出来,因此相对嘈杂的数据集并没有带来太多好处。相反,从语言学的角度来看,汉语是一种相对遥远的语言,因此对自然数据进行任务特异性微调的附加价值更大。

我们从表1中观察到的另一种模式是,在所有语言中,使用伪标记数据的微调步骤相比召回率更有利于精确率。我们观察到精确度不断提高,但在大多数情况下召回率略有下降。

5 Discussions

5.1 平行数据量的影响

与监督方法相比,平行语料库方法的一个优点是高数据可用性。因此,接下来一个自然的问题是,更多的数据是否有利于跨语言传输任务。为了回答这个问题,我们用从5K到200K不等的不同数量的训练示例进行了一系列实验,模型F1的得分随着开始时的数据量而增加,并稳定在40K左右。表1中显示的所有数字都是在生成的大小约为40K(句子)的数据集上为训练而报告的。性能稳定的一种可能解释可能是由于伪标记数据集中的传播误差。域不匹配也可能限制语言之间的转换效率。下一节将对这一主题进行更多讨论。

5.2 平行数据领域的影响

机器翻译社区的学习表明,神经机器翻译模型的质量通常强烈依赖于它们所训练的领域,当一个模型在不同的领域进行评估时,其性能可能会显著下降。类似的观察可以用来解释NER跨语言迁移的挑战。在NER迁移中,第一个领域不匹配来自于不同语料库之间实体分布的自然差距。许多实体只存在于特定语言群的生态系统中,可能无法自然地翻译给其他语言。第二个域不匹配是在平行语料库和NER数据集之间。英语模型可能没有很好的领域适应能力,在CoNLL 2003数据集上表现良好,但在平行数据集上表现较差。

为了研究平行数据的领域对传输性能的影响,我们对来自不同领域的并行数据进行了实验。我们从OPUS、open字幕、UN(包含UN和UNPC)、News(包含WMT和News- commentary)和另外一个三者结合的数据集中选取了三个具有代表性的数据集。open字幕来源于电影字幕,语言风格是非正式的和口头的。UN来自联合国的报告,语言风格更加正式,带有政治色彩。新闻数据来源于报纸,内容更加多样化,更接近CoNLL数据集。我们在三个中文测试集上评估F1——微博,MSRA和人民日报,其中微博包含来自社交媒体的信息,MSRA更正式和政治,人民日报的数据集是报纸文章。

从图3中我们可以看到open字幕在微博上的表现最好,但在其他两个平台上表现较差。相反,联合国在微博上表现最差,但在其他两个方面表现更好。《人民日报》在新闻领域表现最好,这也符合人们的直觉,因为它们都来自报纸文章。所有域组合方法在所有三个测试集上都具有良好的性能。

在这里插入图片描述

图3:使用不同领域的平行数据在三个数据集上评估F1值。左边的蓝色栏是0-shot模型传输的结果。右边是3个不同领域和所有领域组合的F1值。

不同的数据域在实体的密度分布上有相当大的差距,例如open字幕包含更多的没有实体的句子。在上面的实验中,我们进行了过滤,以保持所有域中“空”句的比例相同。我们也检查了类型分布的差异。在表2中,我们按类型和域计算实体数量。open字幕只有很少的ORG和LOC实体,而联合国数据只有很少的PER数据。新闻和所有领域的数据更加平衡。

在这里插入图片描述
表2:伪标记汉语NER训练数据集中按类型划分的实体计数。我们列出了从不同的平行数据源中提取的多个域。而AllDomains是所有资源的组合。

在图4中,我们按类型显示了对《人民日报》的评价。我们想了解平行数据域如何影响不同实体类型的传输性能。新闻数据在所有类型上表现最好,Subtitle在ORG上效果很差。所有这些观察结果与表2中的类型分布一致。

在这里插入图片描述

图4:在人民日报数据集上评估的按类型划分的F1值。与图3相同,我们使用不同的平行数据域来比较NER传输的结果。

6 消融研究

为了更好地理解训练过程中每个阶段的贡献,我们使用mBERT模型对德语数据集进行了消融研究。我们比较了6种不同的设置:

  1. 本文中提出的方法,即使用新的损失(表示为重新加权(RW)损失)来微调具有伪标记数据的英语模型;
  2. 0-shot 是只在英国NER数据上训练的直接模型转移;
  3. 用具有正则交叉熵(CE)损失的伪标记数据微调英语模型;
  4. 跳过英文上的微调,直接在伪标注数据上微调mBERT。
  5. (6)直接用混合英语和伪标记数据同时微调模型,分别用RW和CE损失。

从表3中,我们可以看出,对英语的预处理和对德语伪标签数据的微调对于获得最佳分数至关重要。在顺序微调中,RW损失比在混合英语和德语数据的同时训练中表现得更好,这可能是因为英语训练集中的噪声部分比德语伪标记训练集中的噪声部分小得多,在英语数据上使用RW损失未能利用一些硬示例中的细粒度信息,并导致模型未得到充分优化。另一个观察是,使用交叉熵损失用英语和德语的组合来训练mBERT,我们可以得到与我们的最佳模型几乎相同的分数,最佳模型是用两个阶段训练的。
在这里插入图片描述
表3:对CoNLL 2002德语NER数据评估的消融研究结果。所有实验都使用基于mBERT的模型。RW表示我们在论文中提出的重新加权损失;CE表示正则交叉熵损失。

7 Conclusion

本文提出了一种利用平行语料库进行NER跨语言迁移的新方法。通过利用XLM-R模型进行实体投影,我们能够使整个管道自动化,并且不需要人工设计的特征或数据,因此它可以应用于任何其他具有丰富翻译数据资源的语言,而不需要额外的成本。这种方法也有可能扩展到其他自然语言处理任务,如问答。在本文中,我们用四种语言对新方法进行了全面的测试,在中文中效果最好。我们还讨论了平行数据域对NER传输性能的影响,发现不同域并行语料库的组合产生了最佳的平均结果。我们还通过消融研究验证了伪标记平行数据的贡献。未来,我们将进一步提高校准模型的精度,并探索其他转移方式,如自我教学,而不是直接微调。我们也很有兴趣了解所提出的方法如何推广到其他自然语言处理任务的跨语言传输。

Here are some methods to defend against cross - lingual prompt injection: ### Input Validation and Sanitization - **Character and Syntax Checks**: Validate the input to ensure it only contains expected characters and follows the correct syntax for the language and the system's requirements. For example, if the system expects only alphanumeric characters in a certain field, reject inputs with special characters that could be used for injection. ```python import re def validate_input(input_str): pattern = r'^[a-zA-Z0-9]+$' return bool(re.match(pattern, input_str)) input_text = "validinput123" if validate_input(input_text): print("Input is valid.") else: print("Input may be malicious.") ``` - **Length Limitation**: Set reasonable length limits for user inputs. Long inputs may be more likely to contain malicious injection attempts. ### Encoding and Escaping - **Proper Encoding**: Use appropriate encoding for user inputs, such as UTF - 8. This can prevent some encoding - related injection attacks. - **Escaping Special Characters**: Escape special characters in the input to prevent them from being interpreted as part of a malicious command. For example, in SQL, characters like single quotes (' ) need to be properly escaped. ```python import sqlite3 def escape_input(input_str): return input_str.replace("'", "''") input_text = "O'Connor" escaped_text = escape_input(input_text) conn = sqlite3.connect('example.db') cursor = conn.cursor() query = f"SELECT * FROM users WHERE name = '{escaped_text}'" cursor.execute(query) ``` ### Context - Aware Filtering - **Understand the Context**: Analyze the context in which the input is used. For example, if the input is used in a translation context, filter out words or phrases that are not relevant to normal translation requests and may be injection attempts. - **Language - Specific Rules**: Apply language - specific rules and filters. Different languages have different grammar, vocabulary, and common patterns. Use these to identify abnormal inputs. ### Model - Based Detection - **Anomaly Detection Models**: Train machine learning or deep learning models to detect abnormal patterns in user inputs. These models can be trained on a large dataset of normal and malicious inputs. ```python import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense # Assume X_train and y_train are pre - processed training data model = Sequential([ Dense(64, activation='relu', input_shape=(input_dim,)), Dense(32, activation='relu'), Dense(1, activation='sigmoid') ]) model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) model.fit(X_train, y_train, epochs=10, batch_size=32) ``` ### Isolation and Sandboxing - **Isolate User Inputs**: Run operations involving user inputs in isolated environments or sandboxes. This can prevent malicious code from affecting the main system. For example, use containerization technologies like Docker to isolate translation tasks.
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值