阅读笔记 MulDA: DAGA向多语言方向的拓展
原文: MulDA: A Multilingual Data Augmentation Framework for Low-Resource Cross-Lingual NER
代码:github
前言
本文旨在记录所学所得所感,如有错漏敬请斧正。
概述
这篇文章在DAGA的基础上,提出多语言数据增强框架来减少源语言数据不足是对模型表现的影响,同时适用于语言模型在不同语言上的迁移。
Introduction
NER是信息提取的重要工具,在信息检索、问题解答和文本摘要等下游自然语言处理任务中有着重要作用。但是,对于除英语、德语等资源丰富的语言外的大部分语言而言,训练集仍然十分有限。
跨语言NER方法主要有两类:一是基于实例使用机器翻译和标签投影的方法,二是基于模型的跨语言单词表示或预训练的多语言语言模型转换,通过知识蒸馏可以将基于模型的转移和基于实例的转移进行统一。上述的方法已经证明了零样本跨语言NER的性能,但是这些方法大多以拥有大量的源语言训练数据为前提,当数据量减小时可以观察到显著的性能下降。
本文提出的框架引入了一种新的标记序列翻译方法,将训练数据翻译成目标语言和其他语言,根据多语言数据而不仅是源语言数据对基于LM的NER模型进行微调,以防止模型在语言特性上的过拟合。基于实例的转化方法通过只将实体和相应的上下文转换语言的方法为训练集添加了有限的语义变化。
本文的主要贡献为:1、使用占位符进行标签投影,避免了翻译中单词对齐面临的许多问题,有效地将源训练数据翻译成期望的语言;2、提出了基于生成的多语言数据增强方法,增加了训练数据的多样性;3、通过实验,观察到当对低资源跨语言NER的多语言LM进行微调时,翻译到更多语言也可以时一种有效的数据增强方法,有助于提高性能
MulDA: Our Multilingual Data Augmentation Framework
提出了一种利用基于实例与模型的跨语言转换优势的多语言数据增强框架,主要方法如下:首先使用新的标记序列翻译方法,将已注释的训练数据从源语言S翻译成一组目标语言T={T1, …, Tn}。然后在{D^S, D^T1, …, DTn}上训练语言模型以合成多语言的合成数据,其中DS是源语言训练数据,D^Ti是Ti语言的翻译数据。
1、Labeled Sequence Translation
先前的翻译方法是首先将原句子翻译成目标语言,然后通过算法将单词或短语进行映射,但实际上由于语言的差异,这个映射关系不太准确。为了解决这个问题,还可以采用逐字翻译的方法,但这样需要以牺牲翻译质量为代价
本文采用占位符的方式来解决以上问题:先在翻译之前用上下文占位符替换命名实体,然后在翻译之后替换占位符。
通过这样的设计,占位符前缀可以向模型提供关于实体的上下文信息,从而使模型以合理的质量翻译句子;同时这个方法也起到了定位实体的作用。
2、Synthetic Data Generation with Language Models
这部分方法中的LM与单语言DAGA并无太大区别,与单语言的DAGA主要区别在于:多语言的DAGA的LM训练时在句首加上了语言标签
源语言数据和通过翻译获得的多语言数据被连接起来,使用共享词汇表来训练或微调多语言的LM(s)。
3、Semi-supervised Method
未标记的多语言句子一般很好找,为了更好地利用这些数据,本文提出了一种半监督方法,使用伪标记数据来微调多语言LM。首先使用在多语言翻译数据上训练的NER模型来注释未标记的句子。之后,使用另外两个用不同随机种子训练的NER模型,通过去除具有不同标签预测的数据来过滤带注释的数据。
4、Post-Processing
本文还设计了几个简单的方法来对LM生成的数据进行处理和过滤
- 删除仅包含O标记的序列
- 分离句子和标记,将生成的序列转换为原格式
- 使用在多语言翻译数据上训练的NER模型来标记生成的序列。然后比较LM和NER模型预测生成的标签,并删除不一致的句子。
转载:https://blog.csdn.net/weixin_48066554/article/details/128423976