背景
当前的跨语言学习主要有3种类型:
- unsupervised pre-training:训练一个统一编码器处理不同语言,比如mBERT,Unicoder,XLM,将知识从一种语言迁移到另一种语言上的跨语言任务上取得很大成功;
- Supervised training:通过teacher-forcing或者对抗学习的方式,使得模型对不同语言的标签数据不敏感;
- Translation:翻译模型。
其中,翻译的方式在多语言的benchmarks,比如XTREME和XGLUE上都达到SOTA。
但是,翻译实际上只是做数据增强,将训练集扩充了一倍。因此,在做数据增强的微调时(zero-shot cross-lingual transfer tasks),只输入单语言,而没有用不同语种的跨语言对齐。而这,对多语种任务来说,又是必不可少的。
因此:本文提出FILTER(Fusion in the Intermediate Layers of TransformER),将跨语言数据作为输入,做XLM的微调。模型首先在浅层(shallow layers)对输入的原始语言及翻译语言分别进行编码,接着进行跨语言的融合,在中间层(intermediate layers)提取多语种知识,最后进行更进一步的特定语言编码。在推理阶段,模型基于目标语言的文本输入和原语言的翻译,来做预测。具体流程如下图c。
特点:
- 以Transformer-XLM为backbone的网络架构,使用的是HuggingFace's Transformers的pretrained XLM-R 来初始化FILTER。模型一共24,分3种layers,分别进行编码,融合和深层编码的操作,通过对layers的层数控制,构造上图3种模型结构;
- 引入self-teaching loss减少原语言和翻译语言的gap:FILTER在进行分类或翻译任务时,和原语言共享标签。但这种共享,在做QA,NER或POS任务时,准度会降低,甚至不可用。为解决这类问题,FILTER在进行翻译训练时,基于自生成的soft pseudo-labels,添加KL-divergence self-teaching loss。
结果显示,模型在XTREME和XGLUE这2种多语言的多任务benchmarks上,都达到了SOTA。
常见跨语言模型
- cross-lingual zero-shot transfer
仅使用原语言,带标签的数据进行训练,在目标语言做推理。
当前常见的跨语言预训练模型:mBERT, XLM, XLM-Roberta。 - translate-train/test
有2种方式:
2.1 将原语言的训练集,翻译成目标语言,增强训练集;
2.2 在原语言上做训练,测试时,将目标语言翻译回原语言,做推理。
FILTER
输入:language pairs
:输入的源语言S对应的词嵌入矩阵
:输入的目标语言T对应的词嵌入矩阵
T是S通过Microsoft Machine Translator翻译得到的,d为词维度。
当任务类型为pairwise data,S是序列对的拼接,比如QA任务,将上下文和问题进行合并。
模型
-
local transformer: m-layer Transformer-XLM
对输入的2种语言分别编码,得到序列对的局部表征(local representations)。
,
, -
cross-lingual fusion layers: k-layer Transformer-XLM
跨语言融合:对序列对的局部表征进行concatenation,再进行融合。
,
分类任务:用较小的k
QA任务:用较大的k -
deeper domain-specific transformer layers
融合后的特定语言编码。
,
,
本文使用的是XLM-R,因此domain层的层数为:24-k-m。
当m=24,k=0,则模型表示为上图a;
当m=0,k=24,则模型表示为上图b。 -
task-specific linear layer
在3之后,接一个linear layer做概率估计。
Self-Teaching Loss
将原语言翻译到目标语言后,可能存在词序甚至语义的变化,由此带来噪声。因此,为减少源语言和翻译语言的gap,借鉴蒸馏模型中的teacher-student框架,训练FILTER时,加入self-teaching loss。
FILTER 训练过程如上图:
- 基于源语言的clean labels和目标语言的noisy label训练一个teacher FILTER;
- teacher FILTER生成pseudo soft-labels;
- 噪声主要来自翻译的文本,只用soft-labels来训练student FILTER:
损失函数
注意:
- 进行NER或者POS时,目标语言没有标签,因此;
- 进行分类和QA任务时,测试了[0.1, 0.3, 0.5],分别使用了0.5和0.1.
实验
训练集
XTREME, XGLUE:跨语言理解,任务类型和对应数据集见下图:
训练数据集
模型比较
模型结果XTREME的结果:
- 和SOTA的VECO模型相比,模型在4个任务上都取得更好的结果,平均得分77,高SOTA平均得分2.2个点;
- 和XLM-R模型相比,77-68.2 =8.8,模型提升了8.8个点。
同理XGLUE,和Unicoder模型比较,模型都差不多提高了4个点。
实验结果比较 不同语种准确率比较在XTREME的不同数据集上,采用不同的训练方式的结果:
- XLM-R的translate-train baseline,已经在各个数据集上达到SOTA;
- 基于XLM-R的FILTER,效果又有提升,分别在分类和QA任务上,提升了0.9和2.28;
- Self-Teaching可以更进一步提升模型效果。
消融实验
Effect of different layers
前文提到,模型一共24层,用m和k调整不同类型transformers layers的层数。
而前面的实验也显示,FILTER在分类和QA上的效果很好。同时,即便POS和NER任务,目标语言没有对应的标签,模型仍然提升了2.9和1.3个点。论文认为,这是融合层的作用。
m和k的选择
- local transformers越多(m),POS和MLQA效果越好;
- 对PAWS-X,当k为10时,m为0或者1效果更好,这意味着对分类任务,m取小;
- 当m为1时,k从1到24, PAWS-X和POS数据集,准确率降低了2.5和16.5;
- 当m为1时, k从1到20,MLQA数据集,f1提升2.6。
Cross-lingual Transfer Gap
跨语言transfer gapgap的计算:在英语语料的模型结果- 其他目标语言的模型平均结果
上图显示,FILTER可以有效降低跨语言的gap。
网友评论