CoSDA-ML:一种只需利用字典资源提高跨语言zero-shot任务性能的方法

拈花ヽ惹草 提交于 2020-10-08 09:05:05

背景

跨语言学习(Cross-Lingual)是自然语言处理领域研究的热点,其可以借助从资源丰富(high resource)语言中学习到的知识,帮助稀缺资源(low resource)语言更好的完成相关任务,为不同语言之间的知识迁移提供了桥梁与枢纽。刚刚结束的EMNLP2020也着重强调不允许以研究非英语语言作为拒稿理由(“Invalid bases for rejecting a Paper: The Paper’s work is on a language other than English. We care about NLP for any language),表明了资源稀缺语言研究的重要性。随着预训练模型(Pre-trained Language Model, PLMs)席卷整个自然语言处理领域,跨语言学习也借助PLMs的东风,得到了快速的发展,诸如mBERT,XLM等跨语言预训练模型不断涌现,极大的提升了低资源语言的任务性能。然而,上述mBERT在取得卓越进展的同时,也存在一定缺陷:尽管mBERT模型被称之为多语言BERT,但是其在训练时,每次输入依旧为单语数据,即对于单个句子来说仍是单语言语境,如图1所示。除了借助共同的词语(实际为subword)来对齐多种语言表示之外,没有其他显式的多语言对齐信号,这一缺陷严重阻碍了mBERT模型的性能。

图1:mBERT训练示意图。输入不同语言的句子,但输入单条句子为单语言语境。

介绍

Libo Qin,Minheng Ni,,Yue Zhang,Wanxiang Che等人针对上述问题,提出了一种简单有效的多语言数据增强方式(CoSDA-ML),针对任务特定数据,构建多种语言之间的显式对齐关系,用于微调mBERT模型。值得注意的是,该方法只需进行一次微调,即可完成多种语言的任务,无需针对每一种语言进行特殊设计。该方法在Zero-shot(源语言拥有标注数据,目标语言无标注数据)的设定下,在涉及19种语言的的5个经典任务(自然语言推理、情感分析、文档分类、口语理解、对话状态追踪)上取得了显著提升。相关工作发表在IJCAI20上。

CoSDA-ML: Multi-Lingual Code-Switching Data Augmentation for Zero-Shot Cross-Lingual NLParxiv.org

基础模型mBERT

mBERT全称Multilingual BERT,与BERT架构一致,采用12层Transformer,区别在于mBERT使用104种语言的维基百科数据进行训练,104种语言拥有共同的word piece词表。由于输入的单句仍为单语言语境,没有多语言信息。因此mBERT依赖于共有的word piece进行不同语言的表示对齐。在利用mBERT完成下游任务时,首先需要在任务特定数据上微调mBERT。对于给定源语言句子 s=(s_1,s_2,…,s_n) ,构造模型输入 s=(s_{[CLS]} ,s_1,s_2,…,s_n,s_{[SEP]}) ,其中 [CLS] 用于表示整个句子, [SEP] 用于分割不连贯的句子。经过mBERT模型之后,得到表示 h=(h_{[CLS]} ,h_1,h_2,…,h_n,h_{[SEP]}) 。对于分类任务,利用 [CLS] 对应位置表示 h_{[CLS] } ,送入分类层进行分类: c=softmax(Wh_{[CLS]} +b) 。最终微调任务特定参数 W 以及所有mBERT参数来完成目标任务。本文关注zero-shot设定,即只利用源语言任务数据微调模型,然后直接在目标语言数据上进行测试。(目标语言无任务特定标注)

CoSDA-ML

作者提出的方法称为CoSDA-MLCode-Switching Data Augmentation Multi-Lingual)核心分为两步,如图2:

  1. 利用数据增强算法构建code-switch数据,微调mBERT模型。
  • T=Generator(S) , # S代表输入原始任务数据(一般为英文数据), Generator 代表code-switch数据生成器, T 代表生成的code-switch数据。
  • Out=Finetune(mBERT,T), , # out 代表利用code-switch数据微调之后的mBERT模型, out 模型将直接被用于目标语言的任务测试。

2. 在Zero-shot的设定下,利用 out 对目标任务进行测试。

图2:CoSDA-ML方法示意图。(a)生成code-switch数据,并利用增强得到的code-switch数据微调mBERT模型;(b)zero-test测试。

数据增强算法

图3:数据增强示意图。(a)原始batch训练数据,图中batch为3;(b)句子选择;(c)词语选择;(d)替换选择。
  • 句子选择
    • 给定一个batch的数据,随机选择其中的几条数据进行后续数据增强。如图3(b),输入原始数据,选择第一句和第三局作为后续数据增强对象,保持第二句不变。
  • 词语选择
    • 对于被选择的句子(第一句和第三句),随机选择将要被替换的词语。如图3(c),第一句中very和第三句中What被选中。
  • 替换选择
    • 对于上一步选择的词语,根据双语词典,随机选择一种目标语言进行替换,如图3(d)。值得注意的是,同一词语在词典中可能有多种不同翻译,作者随机选择其中的一种进行替换。(在后续的工作中,面对多种翻译的替换策略也可以进行相关探索,利用注意力机制?级联替换a->b,b->c?)

另一点值得注意的是,上述过程均采用动态数据增强的方式,即在每个batch中动态的决定被替换的句子、词语以及目标语言。作者在后续的实验中验证了相对于静态(static)替换,动态(dynamic)替换更具有优势。

为什么进行code-switch数据增强方式可以提升目标语言任务性能呢?作者认为:在拥有相同分类标签的前提下,该方法可以有效拉近不用语言之间的表示,使得多种语言在统一空间进行对齐。如图4所示:将eat替换为吃,在拥有相同标签的前提下,eat与吃将会在多语言表示空间被对齐。

图4:方法直觉解释图。替换eat为吃,在拥有相同标签的前提下,模型将会有相同的损失,因此会在统一空间对齐eat与吃的表示。

任务、数据集、语言、基线模型

任务名 数据集 语言数量 评价方式 基线模型
自然语言推理 XNLI 15 Classification Accuracy (ACC) Artetxe and Schwenk [ 2018 ]
情感分析 OpeNER English and Spanish datasets MultiBooked Catalan and Basque datasets 4 macro F1. BLSE [ Barnes et al., 2018 ]
文档分类 MLDoc 8 Classification Accuracy (ACC) Schwenk and Li [ 2018 ]Artetxe and Schwenk [ 2018 ]
对话状态追踪 Multilingual WOZ 2.0 dataset 2 Turn level request tracking accuracy Joint goal tracking accuracySlot tracking accuracy for evaluation XL-NBT [ Chen et al., 2018 ]AttentionInformed Mixed Training: Liu et al. [ 2019b ]
口语理解 cross-lingual spoken language understanding dataset 3 Intent detection is evaluated by the classification accuracy (ACC) slot filling is evaluated by F1 score Multi. CoVe: [ Schuster et al., 2019a ]AttentionInformed Mixed Training: Liu et al. [ 2019b ]

基线模型XLM

Facebook提出了基于多种语言预训练的模型 XLM,首先从单语语料库中 采样一些句子,对于资源稀少的语言可以增加数量,对于资源丰富的语言可以减少数量,将所有语言使用统一BPE进行表示。使用三种语言模型目标来完成学习。前两个是基于单语语料库的,最后一个是基于双语对齐数据的。第一种是Causal Language Modeling (CLM),根据之前的词语预测下一个词语。第二个是Masked Language Modeling (MLM),和BERT类似,但是使用一个词语流,而非句子对。第三种是 Translation Language Modeling (TLM),可以随机 mask 掉其中一些两种语言中的一些词语,然后进行预测。其模型如图5。

图5:XLM模型图。

实验结果

图6:实验结果图

从五个任务的实验结果可以看出,作者提出的方法在涉及19个语言的5种任务上取得了显著提升。

分析实验

(1)鲁棒性

图7:鲁棒性分析结果图。

为了验证提出的方法是否鲁棒,作者固定句子替换比例为1,针对不同的词语替换比例进行实验。实验发现,当词语替换比例大于0.7时,论文提出的方法可以稳定的取得最好的效果。

(2)训练数据量

图8:训练数据对于结果影响示意图。

作者通过实验发现,仅仅使用1/10的训练数据,就可以到达目前最优模型的效果。充分说明了该方法在面对稀缺资源语言时的有效性。

(3)动态VS静态

图9:动态数据增强与静态数据增强结果对比。

为了进行静态数据增强,作者采用离线操作,预先得到code-switch数据,在后续不再变动。结果显示,动态数据增强方式更加有效。

(4)可视化

图10:句子空间t-SNE可视化。(a)mBERT;(b)CoSDA-ML

为了验证论文提出方法是否可以拉进语言表示,作者选取了三种语言的100句进行表示(CLS位置)。从图10可以看出,mBERT得到的句子空间重合度小,但是经过CoSDA-ML方法之后的句子表示重合度高,说明通过CoSDA-ML方法可以有力的拉近不同语言之间的表示。

(5)基于Bi-LSTM的结果

图11:基于Bi-LSTM的结果

为了研究论文提出方法的泛化性,作者基于Bi-LSTM进行了实验。结果显示,在Bi-LSTM的结构上,模型依旧可以取得显著提升。

结论

作者提出了一种简单有效的CoSDA-ML方法来构建code-switch数据微调mBERT模型。一次微调,多次部署。只需在微调阶段利用该方法就可以获得巨大收益,无疑是金钱友好的 。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!