文献阅读笔记 # Making Monolingual Sentence Embeddings Multilingual using Knowledge Distillation

  • 《Making Monolingual Sentence Embeddings Multilingual using Knowledge Distillation》EMNLP 2020 (CCF-B)
  • 资源:pdf | doc | code
  • 相关资源:SentencePiece | OPUS | LASER
@inproceedings{reimers-2020-multilingual-sentence-bert,
  title = "Making Monolingual Sentence Embeddings Multilingual using Knowledge Distillation",
  author = "Reimers, Nils and Gurevych, Iryna",
  booktitle = "Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing",
  month = "11",
  year = "2020",
  publisher = "Association for Computational Linguistics",
  url = "https://arxiv.org/abs/2004.09813",
}

背景知识:知识蒸馏 Knowledge Distillation
将一个网络的知识转移到另一个网络,网络间可以同构或异构。先训练一个 teacher 网络,然后使用其输出和数据的真实标签去训练 student 网络。
知识蒸馏可用于将网络从大网络转化成一个小网络,并保留接近于大网络的性能;也可以将多个网络的学到的知识转移到一个网络中,使得单个网络的性能接近 ensemble 的结果。

Abstract

本文提出了一种简单有效的方法来扩展现有的 sentence embedding 模型到新的语言。这使得从以前的单语言(monolingual)模型创建多语言(multilingual)版本成为可能。一个简单的想法是:翻译后的句子应该被映射到与原句子在向量空间中相同的位置。我们使用原始(单语言)模型为源语言生成句嵌入,然后训练一个新的语句翻译系统来模仿(minic)原始模型。与其他多语言句子嵌入训练方法相比,该方法具有以下优点:1)容易将样本相对较少的现有模型扩展到新的语言,2)更容易保证向量空间所需的属性,3)训练的硬件要求较低。

本文在50多种语言上演示了方法的有效性,且将句子嵌入模型扩展到400多种语言的代码已经公开。

1 Introduction

问题: 现有的句子嵌入模型大多数是面向单语言(monolingual)的,通常只适用于英语(因为其他语言的数据集很少),并且只有很少的模型支持多语言(multi-lingual)和跨语言(cross-lingual)场景。因此需要设法将基于英语的模型扩展到多语言中。

来自 source language 的 Teacher Model M,一组 parrallel(translated) sentences (( s 1 s_1 s1, t 1 t_1 t1),…,( s n , t n s_n,t_n sn,tn)),其中 t i t_i ti代表 s i s_i si的翻译,且 t i t_i ti可能是不同的翻译目标语言。训练一个新的 student model M ^ \hat{M} M^,且 MSELoss 下 M ^ ( s i ) ≈ M ( s i ) , M ^ ( t i ) ≈ M ( s i ) \hat{M}(s_i) \approx M(s_i), \hat{M}(t_i) \approx M(s_i) M^(si)M(si),M^(ti)M(si),这样的方法叫做多语言知识蒸馏,student M ^ \hat{M} M^ 在多语言设置下提取 teacher M 的知识。本文证明了这种类型的训练适用于不同语言组合和多语言设置。

  • 对比 LASER 中的 low resource 语言,accuracy 提高了 40 个点。

student model M ^ \hat{M} M^ 学习了一个具有两条重要性质的 multilingual sentence embedding space:1)向量空间跨语言对齐:不同语言中相同句子在空间中相近;2)teacher model M 采用的源语言的向量空间属性也会迁移到其他语言中。

其他多语言句子嵌入训练的对比方法:

  • LASER 使用翻译任务(translation task)来训练 encoder-decoder LSTM 模型。编码器的输出被用作 sentence embedding。
    • 虽然 LASER 在识别不同语言的准确翻译(exact translation)方面表现良好,但在评估非准确翻译的句子的相似性方面表现不佳。
  • Multilingual Universal Sentence Encoder(mUSE) 采用多任务设置在 SNIL 数据集、来自知名在线论坛和QA网站中的超过10亿个 question-answer pairs 上进行训练。mUSE 使用 translation ranking task 来对齐跨语言的向量空间(mUSE具体细节请看原始论文)。
    • 翻译排序任务:对一个翻译对 ( s i , t I ) (s_i,t_I) (si,tI)和各种不正确的翻译,确定正确的翻译。这个任务在计算上更复杂,导致更大计算开销。
    • 多任务学习:难学习,存在问题如,灾难性遗忘(catastrophic forgetting),多任务平衡

本文基于 SBERT,其在句嵌入取得了 2019 年时的 SOTA。SBERT 在 BERT 输出上应用了 mean pooling。本文实验中使用在 100 种语言上预训练的 XLM-R 模型作为 student model(将 sbert extends 到 XLM-R)。虽然实验采用了基于 transformer 的模型,但本文方法其他模型也适用。

2 Training

Teacher model M 用于将一或多个源语言中的句子映射到稠密向量空间。parallel(translated) sentences ( ( s 1 , t 1 ) , . . , ( s n , t n ) ) ((s_1,t_1),..,(s_n,t_n)) ((s1,t1),..,(sn,tn)) s i s_i si 代表源语言中的句子, t i t_i ti 代表目标语言中的句子。

训练一个 student model M ^ \hat{M} M^ 满足: M ^ ( s i ) ≈ M ( s i ) , M ^ ( t i ) ≈ M ( s i ) \hat{M}(s_i) \approx M(s_i), \hat{M}(t_i) \approx M(s_i) M^(si)M(si)M^(ti)M(si)。对给定的一个 mini-batch B 最小化均方误差:

M ^ \hat{M} M^ 与 M 可以用相同的结构和权重也可以异构。该方式训练的模型标记为 M ^ ← M \hat{M}\leftarrow{M} M^M,因为 student model 学习了 teacher model 的 representation。


本文实验使用 English SBERT 模型作为 teacher model M,用 XLM-RoBERTa(XLM-R) 作为 student model M ^ \hat{M} M^

English BERT 有 30k wordpiece vocabulary,但其作为 M ^ \hat{M} M^ 的初始化是不理想的,因为拉丁语系的语言中的大多数单词将被分解为短字符序列,而非拉丁字母的单词将被映射到UNK。XLM-R 采用了 SentencePiece,这避免了语言相关的预处理,并且使用了来自 100 种语言的 250k 词汇,这使得 XLM-R 更适合作为 multilingual student model。

3 Training Data

本节评估了训练数据对于让 sentence embedding 模型 multilingual 化的重要性。采用了 OPUS 上的以下数据集:

  • GlobalVoices: A parallel corpus of news stories from the web site Global Voices.
  • TED2020: We crawled the translated subtitles for about 4,000 TED talks, available in over 100 languages.
  • NewsCommentary: Political and economic commentary crawled from the web site Project Syndicate, provided by WMT.
  • WikiMatrix: Mined parallel sentences from Wikipedia in different languages (Schwenk et al., 2019). We only used pairs with scores above 1.05, as pairs below this threshold were often of bad quality.
  • Tatoeba: Tatoeba is a large database of example sentences and translations to support language learning.
  • Europarl: Parallel sentences extracted from the European Parliament website (Koehn, 2005).
  • JW300: Mined, parallel sentences from the magazines Awake! and Watchtower (Agi ́c and Vuli ́c, 2019)
  • OpenSubtitles2018: Translated movie subtitles from opensubtitles.org (Lison and Tiedemann, 2016).
  • UNPC: Manually translated United Nations documents from 1994 - 2014 (Ziemski et al., 2016).

对于一些资源较少的语言对来说,较难获取 parallel sentences。因此,我们也尝试使用双语词典:

  • MUSE: MUSE provides 110 large-scale ground-truth bilingual dictionaries created by an internal translation tool (Conneau et al., 2017b).
  • Wikititles: We use the Wikipedia database dumps to extract the article titles from crosslanguage links between Wikipedia articles. For example, the page “United States” links to the German page “Vereinigte Staaten”. This gives a dictionary covering a wide range of topics.

Table 5 中描述了本文实验所用的 English-German (EN-DE)、English-Arabic (EN-AR) 数据集的大小。为了训练,通过从每个数据集采样相同数量的样本构造 mini batch 来平衡不同数据集的大小,对于小的数据集可能会重复。

本文使用 XLM-R 作为 student model,并使用在 English NLI 和 STS data 上 fine-tuned 的 SBERT 作为 teacher model(bert-base-nli-stsb-mean-tokens model 在 github 开源了)。并在 batch size = 6410000,epochs = 20,warm-up steps,learning rate = 2e-5 参数下训练。在 development set (验证集)上计算 MSE loss。

在之前的文章 (Reimers and Gurevych, 2017, 2018) 中证明了随机数种子可以对训练模型的性能产生很大的影响,特别是对于小数据集。接下来的实验中数据集多达数百万个 parallel sentences,在随机数种子之间观察到相当小的差异(~ 0.3分)。

4 Experiments

三个任务下进行实验:Multi- and cross-lingual semantic textual similarity (STS), bitext retrieval, and cross-lingual similarity search。STS 给 sentence pairs 打分,而 bitext retrieval 是从两个大型单语言语料库中检索 parallel sentences。

跨语言任务的表现主要取决于将 sentences 跨语言映射到单个向量空间(通常是英语的向量空间)的能力以及该源向量空间具有的性质。

评估对象:

  • SBERT-nli-stsb:BERT-base + Siamese architecture + mean pooling;在 English AllNLI(SNLI + MultiSNLI)、STS benchmark 上的英语训练集进行微调。
  • mBERT / XLM-R mean:Mean pooling of the outputs for the pre-trained multilingual BERT (mBERT) and XLM-R model。在多语言数据上预训练,但未采用 parallel data。
  • mBERT- / XLM-R-nli-stsb:在 (English)AllNLI 上微调 XLM-R 和 mBERT,并在 STS benchmark 的英语训练集上训练。
  • LASER:max-pooling over the output of a stacked LSTM-encoder。encoder 在超过93种语言的 parallel corpora 上以机器翻译任务训练 encoder-decoder。
  • mUSE: Multilingual Universal Sentence Encoder 使用 dual-encoder transformer architecture,在超过16种语言的 mined question-answer pairs,SNLI data,translated SNLI data 和 parallel corpora 上训练。
  • LaBSE: Language-agnostic(语言无关) BERT Sentence Embedding (LaBSE) (Feng et al., 2020)训练方式与 mUSE 相似,采用了 109 种语言的 60 亿个翻译对。
  • mBERT- / DistilmBERT- / XLM-R ←SBERT-nli-stsb:通过知识蒸馏分别使用 mBERT、DistilmBERT、XLM-R 来模仿 SBERT-nli-stsb 的输出。
  • XLM-R ← SBERT-paraphrases: 使用 XLM-R 来模仿 SBERT-paraphrases(基于5千万个English paraphrase pairs 训练的 RoBERTa)。

对于本文的多语言知识蒸馏实验,用了50种语言的 parallel data 训练了一个模型。

4.1 Multilingual Semantic Textual Similarity

STS 任务:为句子对打分,0-5分,0不相关,5语义相同(强相关)。
MSTS 任务数据集:multilingual STS 2017 dataset,包含:EN-EN, AR-AR, ES-ES, EN-AR, EN-ES, EN-TR 标记。本文通过将 EN-EN 数据集中每对句子中的一个翻译成德语来扩展数据集,然后基于谷歌翻译创建 ENFR, EN-IT, EN-NL 数据集(并由人工审查翻译结果)。

sentence embedding 用余弦相似度衡量,计算最终 score 和 gold score 的 Spearman 相关系数 ρ \rho ρ

  • 跨语言后性能明显下降,说明在跨语言向量空间没有很好地对齐。但用跨语言知识蒸馏处理后性能明显提升。
  • 经过知识蒸馏的 XLM-R 模型,比经过知识蒸馏的 mBERT、DistilmBERT 模型表现更加出色,原因可能在于 XLM-R 使用 SentencePiece 方式,使得 XLM-R 模型可以直接被用于处理所有语言的原始数据。

4.2 BUCC: Bitext Retrieval

Bitext Retrieval 任务:在两个不同语言的语料库中识别互为翻译的句子对。
本文实验采用的是 BUCC Bitext Retrieval code from LASER with the scoring function:

  • x,y 是 sentence embedding; N N k ( x ) NN_k(x) NNk(x) 代表 x 在不同语言中的的 k 邻近(基于 faiss);Margin Function 采用的是 m a r g i n ( a , b ) = a / b margin(a,b)=a/b margin(a,b)=a/b

数据集:dataset from the BUCC mining task (Zweigenbaum et al., 2017, 2018) with the goal of extracting parallel sentences between an English corpus and four other languages: German, French, Russian, and Chinese;

  • Score 基于 F1 Score 衡量,超过阈值的将作为 parallel sentence 返回。

  • 经过知识蒸馏的 XLM-R 模型效果提升非常明显。

  • (原论文作者的解释,踩下面的方法,仅供参考)LASER、LaBSE 在 STS 任务效果很差,但在此处效果很好,因为这俩模型被设计用于识别跨语言的精确翻译(identify perfect translations across languages),但不适用于计算句子对的计算相似度。

  • 本文方法和 mUSE 均构造了具有语义相近句子的向量表示也相近的性质的向量空间。但语义相近不代表互为翻译(缺少细节)。eg.

    • Olympischen Jugend-Sommerspiele fanden vom 16. bis 28. August 2014 in Nanjing (China) statt. (en: Summer Youth Olympic Games took place from August 16 to 28, 2014 in Nanjing (China))
    • China hosted the 2014 Youth Olympic Games.
  • 此处的发现说明了一点:没有普遍适用于所有应用的 single sentence vector space。对于查找两个不同语料库中的翻译对,最好的方式是采用 LASER 或 LaBSE。但对于语义相似的任务,本文模型和 mUSE 更为合适。

  • 人工分析FP(即误报),发现 BUCC dataset 中缺少了一些 positive pairs 标注。这个问题源于 BUCC 数据集的构建方式。

4.3 Tatoeba: Similarity Search

  • 本节评估 low resource languages,在这种场景获得向量空间对齐的 embedding 非常具有挑战性。
  • 数据集:Tatoeba 作为 test set,在 JW300 上训练。
  • 评估方式:基于余弦相似度为所有句子找到另一种语言的句子中最相似的那句。计算英语到其他语言的Accuracy和反方向的Accuracy。
  • 经过知识蒸馏的模型效果有了很大的提升,蒸馏策略也可很好的应用于语料资源较少的语言上。

5 Evaluation of Training Datasets

  • 为了评估不同训练集的适用性,本文在第四节开头所描述的训练集上训练了 EN-DE 和 EN-AR 的双语言 XLM-R 模型。
  • 英语和德语非常相似,字母表有很大的重叠,但英语和阿拉伯语是完全不同的语言,具有不同的字母表。
  • 评估数据集:STS 2017 dataset

  • Table 6 只在 TED2020 前 k 个 sentences 上训练,k 分别为 1k~25k。
  • 双语言模型效果略好于多语言(4.1节中的10种pair),这个现象叫 curse of multilinguality 多语言诅咒,模型容量不变的情况下添加更多的语言会导致性能的降低。
  • 对于相似的语言(英语和德语),增加训练数据的领域在实验中影响不大,只需要很少的训练数据就可以取得比较好的结果。

6 Target Language Training

本节评估基于英语模型迁移到特定目标语言和在特定目标语言上合适的数据集直接训练哪种方案会取得更好的结果。

数据集:KorNLI、KorSTS

  • 使用多语言知识蒸馏方式得到的模型比直接在翻译后的 NLI、STS 数据集上训练得到的模型略有提升,但后者却只能处理特定语种。

7 Language Bias

语言偏见:A model prefers one language or language pair over others。举例:只因为两句话是同一种语言就在映射向量空间中更接近(而不是语义相似)。语言偏见会影响 multilingual sentence pools 的 overall performance。

  • Figure2 中 encode the English premise sentences from XNLI with their Russian translation
  • 第4节只用了 monolingual sentence pools(all sentences in the source / target pool were of the same language),因此这些 benchmarks 不适合评估语言偏差。本节实验将多语言STS数据集的句子对组合起来计算相似度得分。

8 Related Work

  • Multilingual representations
    • cross-lingual word embeddings:常用方法是对每种语言单独学习词嵌入,然后根据双语词典,学习线性变换,将其映射到同一个共享向量空间中。这种线性变换可以在没有 parallel data 的情况下学习。
    • crosslingual sentence embeddings
      • 粗暴的方法:bag-of-words representation of cross-lingual word embeddings;
      • LASER:基于 LSTM 的 seq2seq encoder-decoder 网络架构,在 parallel corpora from neural machine translation 上训练,对输出采用了 max-pooling。
      • Multilingual Universal Sentence Encoder (mUSE):dual-encoder architecture 在 multi-task setup on SNLI 上训练;
      • LaBSE 基于 BERT 使用 MLM 和翻译对任务进行训练;

9 Conclusion

本文提出一种可以让单语言的句嵌入在多语言之间实现向量空间的对齐的方法:多语言知识蒸馏 multilingual knowledge distillation。本文方法成功地将 properties 从源语言向量空间(本文中是英语)迁移到各种目标语言。在相同的训练过程中,模型可以扩展到多种语言。

这种逐步(stepwise)训练方法的优点是,可以首先为资源丰富的语言创建具有所需 properties 的嵌入模型,例如用于聚类的嵌入模型。然后,在独立的步骤中,扩展它以支持更多的语言。与以前的方法相比,这种解耦极大地简化了训练过程。此外,它最大限度地减少了结果模型的潜在语言偏差。

Appendix A Tatoeba Similarity Search

LASER (Artetxe and Schwenk, 2019b) 提出了 Tatoeba 测试集,包含 1,000 种不同语言的 English-aligned sentence pairs。评估方式是使用余弦相似度计算不同语言中的最相似句子。Accuracy 计算包含了英语到另一种语言和另一种语言到英语两个过程。这两个分数通常非常相近,因此这里采用其平均值。

在本文的多语言知识蒸馏(multi-lingual knowledge distillation)中,排除了所有来自 Tatoeba 的训练数据,这与 LASER 方案不同,其使用了 Tatoeba 数据集进行训练,但 Tatoeba 的训练集和测试集之间高度重叠,因此导致 LASER scores 虚高。而对于 mUSE 和 LaBSE,尚不清楚是否同样从 Tatoeba 中获取了数据。注意:mUSE 只适用 16 种语言,因此本文使用 DistilmBERT 作为 student,mUSE 作为 teacher 来测试多语言知识蒸馏。报告为表中的 DistilmBERT←mUSE。

对于没有使用任何平行(parallel)数据的语言,scores 有更大的方差。但总的来说,没有平行数据的语言在大多数情况下得分很低,这是意料之中的,因为模型没有学习如何为这些语言进行对齐(align)。注意,LaBSE 和 LASER 已经见过表中大多数语言的训练数据。

猜你喜欢

转载自blog.csdn.net/qq_33583069/article/details/128779606
今日推荐