Press "Enter" to skip to content

低资源和跨语言NER任务的新进展:词级别数据增强技术

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

©作者  |  邴立东、 李 昕、刘林林、周然、丁博生

 

单位  |  阿里巴巴达摩院自然语言智能实验室

 

研究方向  |  自然语言处理

 

 

低资源、跨语言 NER 简介

 

命名实体识别(NER)作为一个经典的 NLP 任务,一直保持着较高的研究热度。近年来研究者开始从高资源向低资源、单语言向跨语言的任务设定进行探索。

 

数据增强是解决训练数据瓶颈一个常用手段,尤其是在 CV 里被广泛采用(比如位移、翻转、旋转、缩放等)。在词级别 NLP 任务的数据增强方面,已有方法效果并不好,比如删词、加词、替换等很容造成句子不通和语义变化,对 NER 这种上下文敏感的任务效果欠佳。本文将首先介绍我们提出的利用生成模型进行词级别数据增强的技术,即 DAGA。其核心思想是将 NER 标签线性化到训练句子内,并训练语言模型,再用得到的语言模型生成带有 NER 标签的新句子,从而得到更多 NER 的训练数据。

 

跨语言任务设定,本身也包含了低资源问题,即目标语言没有训练数据或只有很少的训练数据。常用的跨语言方法是 Translate train,即将源语言训练数据翻译为目标语言,并进行标签映射得到训练数据。现有工作大多基于 word alignment 进行标签映射,但其不能很好地处理翻译导致的词序调整和对齐失败。

 

在本文介绍的第二个工作(即 MulDA)中,我们将 DAGA 从单语言扩展到多语言,使其作用在通过 Translate train 得到的目标语言训练数据。为了解决传统标签映射方法的局限性,我们提出了利用 placeholder 做标签映射的方法。

 

我们发现在低资源设定下,模型训练时“见过”更多实体,比“见过”更多上下文,对提升效果更有效。本文介绍的第三个工作,即 MELM,利用掩码语言模型对 NER 训练样本进行实体替换,从而达到数据增强的效果。MELM 的核心思想是利用大规模预训练模型(如 XLM-R)强大的训练语料,根据 NER 样本的上下文,对于实体进行合理替换,从而使得 NER 模型在训练过程中“见过”更多实体。

 

 

DAGA:生成式数据增强技术

 

 

本小节工作来自论文:

 

DAGA: Data Augmentation with a Generation Approach for Low-resource Tagging Tasks, in EMNLP 2020

 

论文链接:

 

https://aclanthology.org/2020.emnlp-main.488.pdf

 

数据代码:

 

https://ntunlpsg.github.io/project/daga/

 

2.1 问题定义

 

序列标注任务被广泛应用于不同场景,它也是很多自然语言处理任务的基础,常见的序列标注任务包括命名实体识别、词性标注、端到端基于目标的情感分析等  [1] 。随着深度学习的发展,这几个任务也在很多业务场景中落地。然而,在落地过程中,在某些语言或者领域(domain)往往会有训练数据不足等问题,我们将这些情况统称为低资源序列标注任务(Low-resource Tagging Tasks)。我们的论文聚焦在找到一个新的通用的数据增强的方法,可以提高序列标注模型在低资源情境下的表现。

 

相关方法的局限: 相比于计算机视觉、语音识别,数据增强当前在自然语言处理的序列标注任务上目前并没有很多有效的应用,以往提出的同义词替换等等方法都过于简单,且效果并不显着 [2] 。而其他的数据增强方法如反向翻译等等仅适用于翻译或者分类的任务,并不适用于序列标注任务  [3] [4] 。

 

2.2 我们的方法

 

我们提出的基于语言模型的数据增强方法,是指把原有的序列标注数据集,通过线性化的方式把文本数据和序列标注变成语言模型的输入数据,从而通过语言模型,生成更多的可用于序列标注训练的数据,以此达到数据增强的目的。

 

 

▲ 图2.1 DAGA的框架

 

如图 2.1 框架所示,我们提出的方法涉及两个模型:第一个是语言模型,第二个是标注模型。以命名实体识别(NER)任务为例,我们会把标注好的 NER 数据进行线性化作为语言模型的输入数据。对 NER 数据的线性化,如图 2.2 所示,原始数据中的 NER 标注将会成为句子中的一部分。在半监督学习中,我们也会把标注好的 NER 数据构建词典,去自动匹配大量无标注数据,然后把已有 NER 数据和自动匹配数据合并作为语言模型的输入数据。

 

 

▲ 图2.2 线性化的例子

 

对语言模型进行训练后,输出数据是训练好的语言模型生成的带有 NER 标注的文本数据。然后对生成的文本数据进行筛选后进行去线性化,和原有的 NER 数据合并成新的 NER 数据集,从而实现数据增强的目的。之后我们再将这个新的 NER 数据集作为 NER 模型的输入数据,训练 NER 模型,并用训练好的 NER 模型,对测试数据集进行 NER 的标注,最后用 F1 Score 的方法去检验 NER 标注准确率的提升。

 

词性分析和端到端基于方面/目标的情感分析等其他序列标注任务的处理流程基本一致,端到端基于方面/目标的情感分析使用的标注模型会与命名实体识别有所不同。(在实际应用中,可以用 NER 模型对生成的增强数据进行筛选,可以得到更好的效果,筛选方法请参考我们下文介绍的 ACL2021 发表的论文 MulDA。)

 

关于语言模型输入数据的两种 Setting:

 

该方法有两种 setting。第一种是监督学习的 Setting。在这种情况下,我们只用已标注好的序列数据去训练语言模型。第二种是半监督学习的 Setting。在这种情况下,我们会基于少量序列训练数据,构建词典去自动匹配大量无标注数据,然后把序列训练数据和自动匹配数据合并训练语言模型。这也体现了该方法的灵活性和通用性。

 

2.3 主要结果

 

以下是我们的方法的监督学习 setting 在命名实体识别的结果。使用的数据集包括 CONLL2003 英语数据集、德语数据集,CONLL2002 西班牙、荷兰语数据集,还有阿里内部构建的 CONLL2003 格式的越南语和泰语数据集。分别采样 1k、2k、4k、6k、8k 和完整的数据集进行实验。每一个语言的最后一行是我们的方法得到的结果,其他三行为对照实验组,在各个语言相对于对照实验组都取得了提升。

 

 

▲ 表2.1 命名实体识别(NER)的结果

 

 

以下是我们的方法的监督学习 setting 在词性标注的结果。使用的数据集是从 Universal Dependencies treebanks 的英语、西班牙语和捷克语数据集随机采样得到的。分别采样 1k、2k、4k、6k、8k 和完整的数据集进行实验。每一个语言的最后一行是我们的方法得到的结果,其他三行为对照实验组,在各个语言相对于对照实验组都取得了提升。

 

 

▲ 表2.2 词性标注(POS)的结果

 

以下是我们的方法的监督学习 setting 在端到端基于方面/目标的情感分析的结果。使用的数据集是将 SemEval ABSA challenges 的 restaurant review 和 laptop review 两个数据集合并而成。分别采样 2k、4k 和完整的数据集进行实验。每一个语言的最后一行是我们的方法得到的结果,其他两行为对照实验组,在 4k 以上相对于对照实验组都取得了提升。该任务的数据集单个句子的标注相对较少,结果相对不稳定。

 

 

▲ 表2.3 基于方面/目标的情感分析(TBSA)的结果

 

以下是我们的方法的半监督学习 setting 在命名实体识别的结果。使用的数据集包括 CONLL2003 英语数据集。分别采样 1k、2k、4k、6k、8k 和完整的数据集进行实验。其中 +gen ud 和 +gen kb分别是加入未标注数据训练语言模型和加入用字典标注未标注数据训练语言模型得到的效果。另外两组分别为 +gen ud 和 +gen kb 的对照实验。

 

 

▲ 表2.4 半监督命名实体识别(NER)的结果

 

 

本小节参考文献

 

 

[1] Bosheng Ding, Linlin Liu, Lidong Bing, Canasai Kruengkrai, Thien Hai Nguyen, Shafiq Joty, Luo Si, and Chunyan Miao. 2020. DAGA: Data augmentation with a generation approach for low-resource tagging tasks. In Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP), pages 6045–6057, Online. Association for Computational Linguistics.

 

[2] Jason Wei and Kai Zou. 2019. Eda: Easy data augmentation techniques for boosting performance on text classification tasks. In Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLPIJCNLP), pages 6383–6389.

 

[3] Rico Sennrich, Barry Haddow, and Alexandra Birch. 2016. Improving neural machine translation models with monolingual data. In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pages 86–96, Berlin, Germany. Association for Computational Linguistics.

 

[4] Varun Kumar, Ashutosh Choudhary, and Eunah Cho. 2020. Data augmentation using pre-trained transformer models. arXiv preprint arXiv:2003.02245.

 

 

MulDA:多语言生成式数据增强技术

 

 

本小节工作来自论文:

 

MulDA: A Multilingual Data Augmentation Framework for Low-Resource Cross-Lingual NER, in ACL 2021.

 

论文链接:

 

https://aclanthology.org/2021.acl-long.453.pdf

 

数据代码:

 

https://github.com/ntunlp/mulda

 

3.1 问题定义

 

命名实体识别的主要目的是识别文本中具有特定意义的实体。它是很多自然语言处理任务的基础,也被广泛应用于不同的场景中。

 

比如在电商的场景中,我们可以通过对商品描述进行命名实体识别来标记出类似于地域、品牌、产品等等有特定意义的实体。从而提升用户对商品搜索时的准确度。然而,很多低语料语种,或者在特定的域中,往往会有训练数据不足的问题。我们提出新的多语言数据增强方法,以弥补低语料语种或者域训练数据的不足,提升命名实体识别的准确率。

 

相关方法的局限:以往的迁移学习方法通常假设有源语言有充足的训练数据,实验发现当训练数据量较小时,以往的方法的表现会有明显下降。我们提出新的多语言数据增强框架来减小源语言数据不足时对模型表现的影响。这种情况适用于在某个新业务积累了少量有标注数据的情况下,如何迁移到其他语言上去可以辅助更多的业务。

 

当有翻译模型可用时,一种常见的方法是将训练数据翻译成目标语言,然后再将命名实体的标签映射到翻译后的句子上。然而以往的方法 [2,3] 通常需要对齐模型,或者复杂的规则来映射标签,这些方法在确定命名实体的边界时遇到的各种问题导致标签映射质量下降。

 

3.2 我们的方法

 

我们分两步进行数据增强来解决上面的问题:首先借助占位符来翻译带有标记的命名实体识别训练数据。然后把我们之前提出的基于生成的数据增强方法 [1] 拓展到多语种场景。我们使用原数据和翻译的数据来训练多语种语言模型,再用它来生成更多训练数据,增加多样性。

 

第一步,我们先把源语言的命名实体识别数据翻译成目标语言,同时将数据的标签进行迁移。我们的翻译方法相比之前的方案更加简洁高效,不需要复杂的规则,而是利用占位符去进行翻译与标签的映射。以下是我们翻译方法的一个例子。

 

图中 src 是翻译模型的输入,tgt 是翻译模型的输出。我们先把源语言中的命名实体替换成占位符,如例子中的 PER0 和 LOC1,作为占位符。 翻译后这些占位符通常不会被翻译。 然后我们在原句子中用方括号标记命名实体的位置,进行翻译,再提取命名实体的翻译。

 

这样处理的好处是通过把方括号外面的单词一起输入给翻译模型,我们能够得到更加符合情境的命名实体的翻译。 通过用翻译后的命名实体来替换第一步翻译后句子里的占位符,我们可以获得高质量的目标语言的标记数据。

 

 

▲ 图3.1 使用占位符来辅助翻译数据

 

第二步,我们会把源语言的数据和得到的翻译数据进行句子级别的随机混合,作为训练数据训练多语种的 NER 标注模型。第三步,我们将第二步混合得到的 NER 数据进行线性化作为语言模型的输入数据。

 

对 NER 数据的线性化,如下图所示,原始数据中的 NER 标注将会成为句子中的一部分。在半监督学习中,我们也会把标注好的 NER 数据构建词典,去自动匹配大量无标注数据,然后把已有 NER 数据和自动匹配数据合并作为多语言语言模型的输入数据。这里,我们可以是从头开始训练一个 multilingual LSTM 的语言模型(图3.2),也可以对 mBART 进行微调(图3.3)。

 

 

▲ 图3.2 训练multilingual LSTM语言模型

 

 

▲ 图3.3 使用mBART微调

 

对语言模型进行训练或者微调后,输出数据是训练好的语言模型生成的带有 NER 标注的文本数据。我们会用第二步训练好的多语言 NER 标注模型对生成的文本数据进行筛选,然后对筛选后的数据进行去线性化,和原有的 NER 数据合并成新的 NER 数据集,从而实现数据增强的目的。之后我们再将这个新的 NER 数据集作为 NER 模型的输入数据,训练 NER 模型,并用训练好的 NER 模型,对测试数据集进行 NER 的标注。

 

3.3 主要结果

 

下面是我们的翻译方法与之前的翻译方法比较的结果,最后一行为我们的方法。

 

 

▲ 表3.1 翻译方法比较

 

以下是我们的数据增强方法在命名实体识别的结果。使用的数据集包括 CONLL03英语数据集、德语数据集,CONLL02 西班牙、荷兰语数据集。分别采样 500、1k、2k个 句子进行实验。为了测试在更多语言上的知识迁移表现,我们还在 Wikiann 数据集上进行了实验,包括四十个语言的数据。

 

对于 Wikiann,为了模拟低资源的场景,我们随机筛选 1k 条英文句子作为训练数据进行数据增强。每个语言倒数第二行的结果为用 LSTM 语言模型进行数据增强的表现,每个语言最后一行的结果为用 mBART 进行数据增强的表现。其他各行为对照组。

 

 

▲ 表3.2 CONLL02/03数据集上的表现

 

 

▲ 表3.3 Wikiann上筛选1k条英文句子作为训练数据的表现

 

 

本小节参考文献

 

 

[1] Bosheng Ding, Linlin Liu, Lidong Bing, Canasai Kruengkrai, Thien Hai Nguyen, Shafiq Joty, Luo Si, and Chunyan Miao. 2020. DAGA: Data augmentation with a generation approach for low-resource tagging tasks. In Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP), pages 6045–6057, Online. Association for Computational Linguistics.

 

[2] Alankar Jain, Bhargavi Paranjape, and Zachary C. Lipton. 2019. Entity projection via machine translation for cross-lingual NER. In Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP), pages 1083–1092, Hong Kong, China. Association for Computational Linguistics.

 

[3] Xin Li, Lidong Bing, Wenxuan Zhang, Zheng Li, and Wai Lam. 2020. Unsupervised cross-lingual adaptation for sequence tagging and beyond.

 

 

MELM:基于掩码语言模型的跨语言NER数据增强

 

 

本小节工作来自论文:

 

MELM: Data Augmentation with Masked Entity Language Modeling for Cross-lingual NER

 

论文链接:

 

https://arxiv.org/pdf/2108.13655.pdf

 

4.1 问题定义

 

命名实体识别(NER)具有广泛的应用场景,例如电商平台搜索、推荐及客服系统依赖于 NER 算法自动识别品牌或商品名。然而,在跨境电商多语言应用场景中,标注数据量不足以在每个语言上开发单独的 NER 算法。因此,跨语言 NER 具有在单一源语言标注数据上训练,便能够应用到广泛的目标语言的优势。然而,源语言上有限的标注数据量也可能不足以达到令人满意的 NER 表现。因此,本工作提出一种数据增广的方法解决 NER 的跨语言迁移问题,并且源语言上也只有少量训练数据

 

相关方法的局限: 用于跨语言 NER 的数据增广方法要求精密地控制增广数据的词级别标签。现存的数据增广方法可能导致实体被替换成不同类别的另一实体,以致增广的句子与原本的 NER 标签不吻合,最终损害 NER 模型的表现。如果通过微调 MLM 替换句子中非实体的词,而不改变属于实体的词,可以避免替换后的词与标签不适配。但是,由于不同语言的语言学差异,仅引入更丰富的语境并不能很好的提升任务表现 [1] 。另一类方法从原训练集提取出各个类别的实体词典,并将句子中的实体随机替换成同类的其他实体。然而,此方法不能生成原训练集不包含的新实体,并且替换的实体可能不适用于语境 [2] 。

 

4.2 我们的方法

 

我们提出的数据增广方法 MELM 可以确保替换后的实体仍属于原本的实体类别。具体的,MELM 首先将 NER 标签线性化加入句子语境中。如此一来,微调后的语言模型能够直接的根据实体标签预测相应类别的实体。

 

总体来看,MELM 由四个步骤构成。我们首先将源语言标注数据线性化,使得实体标签直接存在于序列中。接着,线性化的句子被用于微调 MLM。然后,微调后的 MLM 被用于生成增广数据。通过后处理的增广数据最终与原训练集融合,用于训练 NER 模型

 

如图 4.1 所示,我们将实体标签插入实体词组的开头与末尾,以将有标注的句子转化为线性化的序列。我们将标签符作为特殊字符加入语言模型词典,使得 MLM 在微调时可以像接收原文本中的词一样接收到标签信息,以学习实体和其标签的对应关系。为了使线性化的序列更自然通顺,我们选取一些与实体类别语义相似的词作为标签符的嵌入层初始化参数(e.g. “person” for <B-PER> and <I-PER>)。如此一来,我们可以更好的利用预训练时学到的语义信息帮助预测相应的实体词。

 

 

▲ 图4.1 MELM:基于掩码语言模型的跨语言NER数据增广

 

接下来,我们使用上述线性化的序列微调 MLM。每个训练循环开始时,句子中一定比例的实体词被加上掩码并通过 MLM 进行预测。由于实体标签信息已经线性化于序列中,训练过程中 MLM 逐渐学会根据语境中的词和实体标签共同预测有掩码的实体词。

 

我们利用微调后的 MLM 在源语言训练集上生成增广数据。对于句子中带有掩码的实体,我们从 MLM 预测概率最高的前 5 个词中随机选取一个替换掩码,以得到一个增广的数据样本。对于训练集中的每个句子重复此过程若干次。

 

为了移除增广数据中信息较少或者带干扰信息的样本,我们进行两步后处理:1)移除少于 10 个词的句子。由于句子中语境较短,生成的新实体容易带有噪音。2)在原训练集数据上训练一个基线 NER 模型,用其标注增广数据,并只保留基线标注标签与原标签一致的样本。

 

经过后处理的增广数据与原训练集合并,用于训练最终的 NER 模型。

 

以上,我们介绍了用 MELM 在源语言标注数据上生成增广数据。当目标语言有可用的无标注数据时,MELM 也可被扩展用于生成目标语言的增广数据。首先,我们用三个使用了不同训练种子的基线模型在无标注目标数据上标注伪标签。然后,我们只保留三个基线模型间伪标签序列一致的目标数据以及其伪标签。接着, MELM 可以在目标语言伪标签数据上生成目标语言的增广数据

 

4.3 主要结果

 

为了验证 MELM 的有效性,我们在 CoNLL 1k,2k,3k 和 Wikiann 1k,2k数据集上进行实验。如 表格 4.1 所示,MELM 表现稳定优于多个基线方法,并且相比于 EnGold only(只在源语言训练数据上训练)在 CoNLL 1k,2k,3k 分别有 +3.5, +1.0, +1.1 的 F1 提升

 

 

▲  表格4.1 CoNLL低资源数据上的实验结果

 

在 CoNLL 有目标语言的无标注数据时,我们将 MELM 扩展至半监督设置,在目标语言的伪标签数据上生成增广数据。如表格 4.2 所示,合并源语言原训练数据、源语言增广数据、目标语言伪标签数据和目标语言增广数据训练的 NER 模型(即EG+TP+EA+TA)相比于 EnGold only 有 +5.7, +3.9, +3.7 的 F1 提升

 

 

▲ 表格4.2 半监督设置下CoNLL上的实验结果

 

我们也将 MELM 应用于更广泛的的跨语言迁移情景,报告在 Wikiann 1k,2k 数据集上的实验结果如表格 4.3. 在与源语言同语系的目标语言上,MELM 能够稳定地提升表现。即使在与源语言差异较大的目标语言上,MELM 也能在如中文(zh),日文(ja),韩文(ko)上实现表现提升。统计所有目标语言上的平均表现,MELM 在 Wikiann 1k 和 2k 数据集上分别提升 +3.32 和 +1.35 F1.

 

 

▲ 表格4.3 Wikiann低资源数据上的实验结果

 

 

本小节参考文献

 

 

[1] Kun Li, Chengbo Chen, Xiaojun Quan, Qing Ling, and Yan Song. 2020a. Conditional augmentation for aspect term extraction via masked sequence-tosequence generation. In Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics, pages 7056–7066.

 

[2] Xiang Dai and Heike Adel. 2020. An analysis of simple data augmentation for named entity recognition. In Proceedings of the 28th International Conference on Computational Linguistics, pages 3861–3867.

 

 

总结

 

本文介绍了两种细粒度的 NER 数据增强方法,即基于语言模型(LM)的生成方法和基于掩码语言模型(MLM)的实体替换方法。前者利用 LM 生成完整的训练句子及实体标签,后者则在原有的句子上下文内进行实体替换。这些方法也可以和 translate train 方法一起取得更好的跨语言 NER 效果提升。总体上,低资源和跨语言 NER 任务,仍有很大的提升空间,是一个值得关注的研究方向。

 

本文由阿里巴巴达摩院自然语言智能实验室邴立东、李昕,以及联培博士生刘林林、周然、丁博生共同整理。

 

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注