論文閱讀-Making Monolingual Sentence Embeddings Multilingual using Knowledge Distillation
論文資訊
題目
Making Monolingual Sentence Embeddings Multilingual using Knowledge Distillation
通過知識蒸餾使單語種句子嵌入多語種化
作者
Nils Reimers, Iryna Gurevych
論文水平
已被EMNLP 2020 接收
其它
論文下載地址:https://arxiv.org/abs/2004.09813
該論文的相關程式碼已開源,github連結:sentence-transformers,sentenc-tansformers文件:官方文件
sentenc-tansformers非常好用,封裝的很好,使用簡單
Abstract
該論文提出了一種將已有的句子嵌入編碼模型擴充套件加入新語言支援的高效通用辦法,通過該方法可使之前只支援單語言的模型轉變成多語言模型。
其實,貫穿整個論文的核心思想為以下兩點:
- 想辦法儘可能將來自不同語言但句意完全等價的句子embeding編碼對映到向量空間中同一位置,即所有語言的embeding共享同一個vector space。舉個栗子,就是某一個英文句子和其對應的中文翻譯句子,這兩個句子通過這個模型後,生成的embeding向量應該是儘可能是比較接近的,理想情況應該是一模一樣的,這樣,我們就可以通過cos距離或者歐式距離,來判斷不同語言句子之間的相似度或是否是同一個句子。
- 知識蒸餾。使用知識蒸餾的方式來train一個student模型,實現多語言在向量空間中對齊。後面會詳細介紹如何通過知識蒸餾train模型。
知識蒸餾(Knowledge Distillation)
知識蒸餾,可以將一個網路的知識轉移到另一個網路,兩個網路可以是同構或者異構。做法是先訓練一個teacher網路,然後使用這個teacher網路的輸出和資料的真實標籤去訓練student網路。知識蒸餾,可以用來將網路從大網路轉化成一個小網路,並保留接近於大網路的效能;也可以將多個網路的學到的知識轉移到一個網路中,使得單個網路的效能接近emsemble的結果。更多相關介紹可以參考這篇文章:張俊林-知識蒸餾在推薦系統的應用
與其他多語言模型對比,該模型的優點:
- 即使某些擁有較少訓練樣本的語言,該方法也可很好的將這些語言擴充套件到已有的模型當中,並取得不錯的效果。
- 訓練對於硬體的要求較低,容易訓練。
- 作者實驗證明了該方法已在50+語言上取得不錯效果。
Introduction
研究現狀:由於一些其他小眾語言的合適訓練資料缺乏,目前存在的絕多數句子嵌入模型為單語言模型,支援多語言的句子嵌入模型較少。因此,作者提出了基於知識蒸餾的多語言sentence embedding訓練方法,該方法可以將已有的單語言模型擴充套件為多語言模型。
多語言知識蒸餾方法:
首先需要一個teacher模型
M
M
M,使用源語言資料
s
s
s,然後需要一個student模型
M
^
\widehat{M}
M
,使用平行的句子對
(
(
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是指源語言資料(例如英文句子,與teacher使用
s
i
s_i
si是一致的),
t
i
t_i
ti是句子
s
i
s_i
si翻譯後對應的其他語言句子(例如英文句子
s
i
s_i
si,德語句子
t
i
t_i
ti)。
訓練準則:
使用MSE計算損失,訓練student model的方法如下圖所示:
其思想就是要求student模型模擬teacher模型的輸出,使得其輸出的
s
i
s_i
si,
t
i
t_i
ti的embedding向量逼近於teacher模型輸出的
s
i
s_i
siembedding向量。
通過這樣的方式,student模型就學到了一個多語言的sentence embedding space。這個vector space具有以下的特點:
- 不同語言的句子在該向量空間中已對齊,即相同含義的不同語言句子在該空間中的表示位置是接近的。
- teacher模型 M M M中原始源語言的向量空間屬性,已被student模型繼承並且還新增了其他語言。
緊接著,作者介紹了一些多語言模型的baseline模型,並提出了baseline模型的一些弊端:
LASER模型
LASERR (Artetxe and Schwenk, 2019b) 模型是一個基於LSTM的encoder-decoder模型,通過translation task任務訓練,其encoder編碼器輸出部分被用作句子的embeding。LASER可以很好地識別不同語言的準確翻譯,但是它在評估不是精確翻譯的句子的相似性方面表現較差。
mUSE模型
Multilingual Universal Sentence Encoder(mUSE) (Chidambaram et al., 2019; Yang et al.,2019)
mUSE模型在SNLI和十億問答對上進行多工訓練,為了對齊跨語言向量空間,mUSE使用了translation ranking task,即給定一句話,從很多待選項句子中挑選出該句子對應的最準確的翻譯句子。
弊端:
- 多工學習是困難的,會面臨災難性的遺忘問題。
- 執行transation ranking task 會增加很多額外的計算開銷。
作者採用Sentence-BERT (SBERT)(Reimers and Gurevych, 2019)作為teacher模型,SBERT模型在很多sentence embeddings task上達到了SOTA水平。
採用XLM-R (Conneau et al., 2019)作為student模型,XLM-R模型對100種語言進行了預訓練。
選擇XLM-R作為student模型的原因:使用English SBERT作為 M ^ \widehat{M} M 的初始化模型並不是一個最好的選擇,因為像阿拉丁這樣較長的語言,會被SBERT模型切成短字元序列。而XLM-R模型則使用SentencePiece方式,避免了對特殊語言的預處理,並且使用100種不同語言的詞彙表。
Training
多語言知識蒸餾方法需要一個teacher模型
M
M
M,將一種或多種語言的句子
s
s
s對映到一個稠密的向量空間。
然後需要一些平行的(經過翻譯的)句子對
(
(
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是經過翻譯後目標語言句子。
訓練方式:
文中使用
M
^
←
M
\widehat{M}←M
M
←M來表示:已從teacher模型
M
M
M學習到相應的句子embeding知識的student模型
M
^
\widehat{M}
M
。
Training Data
這部分作者首先介紹了訓練用到的資料集:
在一些資源匱乏的語言中,獲取平行句子對較為困難,因此作者也用到了雙語詞典作為訓練資料:
一些訓練引數:
- epochs:最大20
- batch size:64
- warm-up steps:10,000
- learning rate:2e-5
- MSE loss
Experiments
文章在三個任務上進行了驗證:Multi- and cross-lingual semantic textual similarity(STS); bitext retrieval; cross-lingual similarity search。
同時文章選取了很多的baseline模型進行比較分析,參與實驗的所有模型如下所示:
多語言語義文字相似度 Multilingual Semantic Textual Similarity
STS任務就是給定一個句子對,模型輸出對這兩個句子的相似度判定打分。輸出分數範圍為0~5分,5分代表這兩個句子語義完全一致。
實驗除了使用multilingual STS 2017 資料集外,作者又通過谷歌翻譯加人工檢查方式,擴充套件了一部分多語言資料集。
使用 cosine similarity計算兩個句子embeding的相似度,同時使用斯皮爾曼相關係數 ρ(Spearman’s rank correlation)來評估模型輸出score和給定的標籤score之間的差異。(在作者提供的sentence-transorformers的程式碼中,其實還用到了pearson相關係數進行評估)
實驗結果:
通過實驗結果表格可以看出,經過知識蒸餾後的student模型效果取得了明顯的提升:
實驗分析:
- 未經微調的mBERT / XLM-R模型均表現很差,經過在English NLI & STS 資料上微調後,效果明顯提升。
- 在表1中單語言測試中,這些模型都表現的較為出色,但在表2中跨語言測試中,實驗結果效能明顯下降。
- 經過多語言知識蒸餾後的模型,無論是在單語言測試還是在多語言測試,均達到了SOTA水平,勝於LASER、 mUSE 、LaBSE這些模型。
- 經過知識蒸餾的XLM-R模型,比經過知識蒸餾的mBERT、DistilmBERT模型表現更加出色,原因可能在於XLM-R使用SentencePiece方式,使得XLM-R模型可以直接被用於處理所有語言的原始資料。
雙語言文字檢索 BUCC: Bitext Retrieval
Bitext Retrieval 任務應該就是從兩個不同語言的語料庫中,找出語義一樣的兩個句子(即互為翻譯)進行配對。
實驗結果:
使用F1 score進行評估,實驗結果如下:
實驗分析:
- 使用mean pooling的 mBERT / XLM-R模型,表現很差。
- 使用English NLI and STS資料進行微調XLM-R模型,實驗結果分數反而更差了,原因不知。。。
- mBERT 和 XLM-R模型表現較差,還有由於他們僅在English data上進行train,向量空間沒有很好的對齊。
- 經過知識蒸餾的XLM-R模型效果提升非常明顯。
- 比較有意思的是,LASER和LaBSE模型的表現比該文的模型還好一點。這不能忍,必須踩一波,自圓其說。也就是在文中開頭介紹所提到的,LASER和LaBSE模型可以很好地識別不同語言的準確翻譯,但是它在評估不是精確翻譯的句子的相似性方面表現較差。
相似搜尋Tatoeba: Similarity Search
給定一個句子,從其他語言的所有句子中,找出最相似的一個句子。
經過實驗,發現經過知識蒸餾的模型效果有了很大的提升,遠勝過LASER模型。
實驗結果:
同時,實驗還發現,即使XLM-R模型之前未預訓練的語言,經過蒸餾後,也取得了較高的準確率,作者得出結論:蒸餾策略也可很好的應用於語料資源較少的語言上。
Evaluation of Training Datasets
為了評估不同訓練集的適用性,作者訓練了English-German和English-Arabic的雙語言 XLM-R模型。
實驗結果:
實驗分析:
- 語言模型的測試效果比10種語言模型的測試效果好一點。分析其原因可能是因為模型的容量是固定的,因此使得模型記憶更多語言會降低效能。
- 從表格可以看出,更多資料的資料集並不一定會帶來更好的結果。
Target Language Training
之前的parent模型都是基於英文預訓練模型,這一節作者做了一些實驗,討論是否將英文模型轉化為目標語言模型或者直接用目標語言模型的資料集訓練會產生更好的效果。
實驗採用KorNLI 和 KorSTS 資料集,這些資料集是將SNLI (Bowman et al., 2015), MultiNLI (Williams et al., 2018), and STSbenchmark (STSb)等英文資料集通過翻譯轉化為朝鮮語得到的。
實驗結果:
實驗分析:
實驗結果證明,只有一小部分效果提升。因此,之前使用多語言的知識蒸餾方式其實就能取得較為不錯的效果,並且通過這種方式能同時學習到兩種語言的對齊向量空間。
Language Bias
語言偏見的概念是指模型更喜歡將同一語言的句子編碼對映到向量空間的同一片近鄰區域內,在單語言模型上,出現模型偏見現象並不會產生什麼影響,但是在多語言模型上,如果模型的語言偏見現象較為嚴重的話,會嚴重導致不同的語言在向量空間中無法對齊。
沒有語言偏見的模型在多語言的資料集上的測試效能應與單語言的資料集平均效能相近。
因此,作者做了一些相關的實驗,實驗結果如下:
由結果可以看出,LASER和LaBSE模型語言偏見現象較明顯,在單語言測試集和多語言測試集上評估分數相差較大,mUSE和本文提出的經過蒸餾的模型的語言偏見影響較小。
同時,作者還以圖表的形式進行了展示,從圖中可以明顯看出,受語言偏見影響較大的LaBSE模型,圖中兩個顏色點分散聚成兩個不同的堆。
Related Work & Conclusion
最後是相關工作的文獻綜述和總結,略過了,感興趣可以看原文。