预训练跨语言模型(Pre-Trained Cross-Lingual Language Model)是通过在大规模多语言语料上进行预训练得到,其展现了在不同语言间优秀的迁移能力。这类模型通常由多语言词表以及 Transformer 编码器组成,可以将不同语言的文本编码进统一的表示空间。尽管大多数预训练单语模型和跨语言模型中使用的 Transformer 编码器结构几乎相同,但它们的词表有较大的区别。现有预训练单语模型的词表一般包含 30K 到 60K 子词单元,与此同时,XLM-R[1] 及 mT5[2] 等模型使用包含 250K 子词单元的多语言词表来表示上百种语言,虽然有些子词单元是跨语言共享的,但是每个语言分配的语言特定子词单元平均不超过 2.5K 个,用来表示一种语言依然是相对不足的。并且常用的多语言词表是通过 BPE 或 unigram 语言模型等算法在多语言语料上学习得到,这些算法在词表构建过程中更倾向于选择在不同语言之间共享的子词单元,如使用拉丁字母和西里尔字母的语言[3],而选中语言特定子词单元的概率较低。对于这些算法而言,很难确定是否已经为每种语言分配了足够的词表大小,使得每种语言都能被充分表示。此外,相比于单语模型,跨语言模型中的大词表不仅会降低预训练速度,同时也会导致模型参数量增加。
为了解决上述问题,本文首先提出 VoCap 词表构建算法得到一个更大的多语言词表,在构建过程中综合考虑每种语言的语言特定词汇能力及预训练语料大小为每种语言分配合适的词表大小。对于进一步加大跨语言模型中的多语言词表所带来的预训练速度降低的问题,本文提出基于 k 近邻的目标采样方法,通过近似估计训练目标中的 softmax 函数来提升跨语言模型预训练效率。XTREME benchmark[4] 上实验结果表明,基于 VoCap 方法构建的多语言词表要优于之前的词表,基于 k 近邻的目标采样方法在达成可比性能的同时,大幅度提升了跨语言模型的预训练效率。