FAIR重磅釋出大規模語料庫XNLI:支援15種語言,解決跨語言理解難題
近期,EMNLP 2018收錄的一篇論文“XNLI: Evaluating Cross-lingual Sentence Representations”得到了Yann LeCun的關注,他轉發並推薦了該論文提供的公開資料集XNLI(Cross-lingual Sentence Representations)。XNLI是Facebook AI研究院(FAIR)和紐約大學研究團隊的一項合作研究成果,它提供了一種用於評估跨語句表徵的資料集。自然語言處理系統依賴於使用基於標註資料的有監督學習提高模型的處理能力。目前,許多模型是使用單一語言(通常是英語)訓練的,並不能直接應用於其他語言。由於收集每種語言的語料資料是不現實的,因此如何實現跨語言句子理解(XLU)和低資源的跨語言遷移得到了越來越多的關注。這篇論文進一步將多型別自然語言推理語料庫(MultiNLI)的開發和測試集擴充套件到15種語言,其中甚至包括斯瓦希里語和烏爾都語等低資源語言,構建了一種用於XLU的基準測試資料集。對該論文感興趣的讀者,可訪問ofollow,noindex" target="_blank">XNLI專案主頁 下載資料集 。據XNLI主頁介紹,專案原始碼也將於近期公開。
XNLI資料集提供了一些標準的評估任務,意在促進對XLU的研究。此外,XNLI還給出了多語言句子理解的多種基線方法,其中兩種基線方法基於機器翻譯系統,另外有兩種基線分別使用了並行資料(parallel data)訓練對齊的多語言詞袋和LSTM編碼器。論文給出了與基線的對比實驗,表明XNLI具有更優的效能。本文將對XNLI的預發表ArXiv論文進行解讀。
研究現狀與挑戰
當前,自然語言處理系統通常依賴標註資料去訓練模型。常見的訓練資料主要集中於英語和中文等單一語言,系統也只能在訓練所用的語言中執行分類、序列標註、自然語言推理等任務。一款實用的國際化產品需要處理多種語言輸入,但是為所有的語言分別生成標註的資料集是難以實現的。為此,一些研究提出了跨語言語句理解(XLU,cross-lingual Language Understanding)去構建多語言系統。使用XLU的系統主要使用一種語言去訓練模型,並在其它語言上評估模型。儘管一些XLU研究在跨語種文件分類上給出了較好的結果,但目前XLU對自然語言推理(NLI,Natural Language Inference)等一些更難以理解的任務依然缺少基準測試資料集。大規模NLI,即文字蘊含識別(RTE,Recognizing Textual Entailment),業已成為評估語言理解的實際測試平臺。在RTE中,系統讀取兩句話,並判定兩者間的關係是否為“蘊含”(Entailment)、“矛盾”(Contradict)或“中性”(Neutral)。近期,一些眾包的標註工作已生成了具有上百萬例項的英語資料集,並在評估神經網路結構和訓練策略、訓練效果、可重用句子表徵等任務中得到了廣泛的應用。
該論文給出了一種稱為XNLI(Cross-lingual Natural Language)的資料集。XNLI將NLI資料集擴充套件到15種語言,包括英語、法語、西班牙語、德語、希臘語、保加利亞語、俄語、土耳其語、阿拉伯語、越南語、泰語、中文、印地語、斯瓦希里語和烏爾都語,並以NLI的三分類格式為每種語言分別提供了7500個經人工標註的開發和測試例項,合計112500個標準句子對。XNLI中包括的語言跨越了多個語系,特別還包括了斯瓦希里語和烏爾都語這兩種語料資源稀缺的語言。XNLI設計用於評估XLU,即使用一種語言訓練模型,並在另一種語言上測試模型。論文使用來自公開可用語料庫中的並行資料進行自然語言推理,對多種跨語言學習方法做了評估。論文的實驗結果顯示,並行資料有助於對齊多種語言中的句子編碼,這種對齊機制給出了非常好的結果,使得用英語NLI訓練的分類器可以正確地用於其它語言句子對的分類任務。XNLI的另一個實踐用於評估預訓練的(pretrained)語言通用(language-universal)句子編碼器。該基準測試有助於研究領域構建多語言文字嵌入空間,進而推進多語言系統的建立,實現在無監督或有很少監督的情況下實現語言間的遷移。
從相關的研究看,目前對多語言理解的工作主要停留在詞的層面,即多語言詞嵌入。一些方法提出了學習跨語言詞表示,即在嵌入空間中的詞表示具有很近的翻譯距離。還有一些方法需要做一定程度上的有監督學習,在同一空間中對齊源和目標嵌入。近期一些研究提出了無監督的跨語言詞嵌入。在句子表徵學習方面,一些方法提出將詞嵌入擴充套件到句子乃至段落表徵。生成句子嵌入的最直接方法是使用詞表徵的平均或加權平均,此類方法稱為連續詞包法(CBOW,Continuous Bag-Of-Words)。儘管CBOW類方法理念比較原始,但是它們通常能提供很好的基線。一類更復雜的方法是捕獲句子表徵中在語義和語法上的依賴性。儘管此類固定大小的句子嵌入方法在效能上要優於相應的有監督學習方法,但是一些近期研究表明,預訓練的語言模型在一定的條件下也可實現很好地遷移。此外,一些研究關注了多語言句子表徵問題。有研究訓練雙語自動編碼器,目標是最小化兩種語言間的重建錯誤。還有研究提出在多種語言上聯合訓練Seq2Seq機器翻譯系統,學習共享的多語言句子表徵。
在跨語言評估基準測試方面,可以說基準測試的缺乏已經妨礙了多語言表徵的發展。大量前期提出的方法在評估中使用的是Reuter跨語言文件分類語料。但是,該語料中的分類是在文件層面實現的,由於存在多種聚合句子嵌入的方法,非常難以比較不同句子嵌入。此外,Reuters語料中類的分佈是高度不平衡的,資料集並不提供目標語言的開發集,這使得測試更加複雜。此外,Cer等人在2017年提出一種句子層的多語言訓練和評估資料集,實現四種語言在語義上的文字相似性。還有研究通過翻譯英語資料集或是從並行語料中標註句子,構建了一種多語言RTE資料集。最近有研究給出的SNLI資料集是通過人工翻譯為阿拉伯語、法語、俄語和西班牙語而構建了1332個句子對。與上述研究相對比,XNLI是首個用於評估句子層表徵的大規模多語言語料庫。
XLNI資料集
XNLI同樣使用了構建Multi-Genre NLI語料庫所用的眾包方法。它從Multi-Genre NLI語料庫使用的10個文字源中分別收集並驗證了750新例項,合計7500個例項。以這部分資料為基礎,XNLI工作聘請了一些專業翻譯者,將這些例項分別翻譯為10種目標語言,由此建立了完整的XNLI語料庫。採用對每種語言分別翻譯而非生成新的假設句子的做法具有多個好處。首先,這種做法確保了在各個語言間的資料分佈的相似性最大化,避免了新增不必要的由人工表達所導致的自由度。第二,它使用了同一組受信任的人,無需為每種語言訓練新的一組人工。第三,它支援每種語言所對應的假設。這使得XNLI中包括了150萬假設(Hypothesis)和前提(Premise)的組合,具有支援評估各語言間對齊情況的能力。
但是,使用人工翻譯過程也存在一些風險,主要問題在於兩種語言對之間的語義關係可能會在翻譯中丟失。論文指出,他們針對此問題作了一些統計,結果表明XNLI中只有少到可以忽略不計的部分受此問題影響。
資料收集
XNLI中英語語料的採集使用了和MultiNLI語料同樣的方法。它從指定的10個文字源的250個句子中做抽樣,這確保了所得到的句子不會與語料的分佈產生重疊。在得到句子之後,研究者詢問生成MultiNLI語料的眾包平臺上的同一人,為每個的前提生成三個假設的標記,然後將前提語句按MultiNLI使用的同一模板展示給標記生成者,並做驗證。驗證後重標記的句子會指派給四個人做重標記。結果表明,其中93%的資料的標記是一致的(即四個人中有三人仲裁一致)。此外7%的資料也保留,並用“-”做特殊標記。
得到標記的句子後,XNLI工作聘請了翻譯者,將句子分別翻譯為十五種語言,其中前提和假設是分別翻譯的,以確保在假設中只是從英語句子中拷貝了標記,沒有新增任何額外的上下文。圖一給出了所得到結果的部分例項。
圖一 XNLI中各種語言和文體的部分例項,其中包括了前提和假設
生成語料庫
在生成語料庫時,一個重要的問題是確定一些句子對的金標記(gold label)是否由於新增資訊和翻譯過程而發生了改變。論文提及,XNLI研究者在手工檢視資料時,發現一個句子對在英文-中文翻譯中由“蘊含”關係變成了“矛盾”關係,而該句子在翻譯為其它語言時標記則未發生變化。為定量地確定該問題在XNLI中出現的規模,在論文工作中,英語-法語雙語人工標註者從資料來源中非重疊隨機抽取並重新檢查了100個例項。從整體情況看,在沒有任何訓練過程和Burn-in過程的情況下,標註者可以從85%的原始英語句子中得到與仲裁結果一致的標註,在翻譯得到法語句子上標註有83%是一致的。這是由於語料中的很多句子相對易於翻譯,尤其是人工得到的假設文字,因此在翻譯過程中不太可能新增歧義。擴充套件到整個語料庫,研究指出生成的XNLI具有和MultiNLI相似的屬性。如圖二所示,對於所有語言,前提平均會比假設的文字長兩倍。詞的重要性使用語料庫中每個詞和類的互資訊打分,假設中最重要的詞所顯示的類標記,在所有語言對應的句子中是一致的,並且與MultiNLI語料庫也是一致的。
圖二
XNLI資料集中每種語言的每個句子中的平均Token個數
當前版本的XNLI中的大部分句子以OANC許可公開提供,可自由使用、修改和共享。
跨語言NLI
實現XLU的最直接方法是使用已有的翻譯系統。有兩種使用翻譯系統的方式,一種方式稱為“翻譯訓練”(Translate Train),其中將訓練資料翻譯為每種目標語言,作為提供給訓練每個分類器的資料。另一種方式稱為“翻譯測試”(Translate Test),其中翻譯系統只在測試中使用,用於將輸入句子翻譯為訓練所用語言。這兩種方式都可以作為很好的對比基線,但是在實踐中都存在一些挑戰。前者需要訓練和維護使用同一目標語言資料的分類器,而後者在測試時依賴於計算強度很大的翻譯。兩者都受限於翻譯系統的質量,而翻譯系統本身則受限於可用的訓練資料,以及所用語言句子對之間的相似性。
多語言句子編碼器
與之相對比,另一種方法是使用文字的語言通用嵌入(language-universal encoder),並根據表徵構建多語言分類器。如果編碼器生成英語句子的嵌入與翻譯為其它語言的句子嵌入是非常相似的(即在嵌入空間中距離很近),那麼在英語句子嵌入上訓練的分類器就可以遷移到用於分類其它語言的句子,實現無線翻譯系統的推理任務。
論文對兩類跨語言句子編碼器做了評估。一類方法使用了基於詞嵌入均值的預訓練通用多語言句子嵌入X-CBOX,另一類方法是在MultiNLI訓練資料上訓練的雙向LSTM句子編碼器X-BILSTM。X-COBW評估了遷移學習,而X-BILSTM則評估了使用領域內資料訓練的特定NLI編碼器。兩類方法在對齊多語言句子嵌入空間時使用了同一種對齊損失函式。兩類方法在從BiLSTM中抽取特徵向量時,前者使用了最初的和最終的隱含狀態,後者使用的是所有狀態的逐元素最大值(element-wise max)。
第一類方法通常作為一種很好的單語言語句嵌入的對比基線。在實現中,論文使用了英語FastText詞嵌入空間,作為一種固定的、良好調優的到其他語言的嵌入,這樣句子中詞向量的均值非常接近於句子的英語翻譯詞向量。第二類方法使用MultiNLI訓練資料學習的英語句子編碼器和目標語言上的編碼器,目標是使得兩種翻譯的表徵在嵌入空間中的距離非常近。在這兩類方法中使用了固定的英語編碼器,訓練目標語言的編碼器,匹配編碼器的輸出,構建同一空間中的句子表徵。當然,對於改進並簡化句子嵌入空間,還可以考慮編碼器的聯合訓練和引數共享等方法,這也將作為該論文的進一步工作。
對齊詞嵌入
多語言詞嵌入是一種高效的語言間知識遷移方法。論文使用了跨語言嵌入直接實現對齊句子層編碼器。跨語言嵌入可以在非常少的監督情況下高效地生成。論文通過使用一個具有五千個詞對的小型並行字典,學習了一個線性對映去最小化代價函式:
其中,d是嵌入的維度;X和Y分別是形狀為(d,n)的矩陣,對應於出現在並行字典中的對齊詞嵌入;\(O_{d}(\mathbb{R})\) 是一組維度為d的對角矩陣;U和V是由\(YX^{T}\) 做SVD得到,即\(U\sum V^{T}=SVD(YX^{T})\) 。一些現有研究表明,在詞翻譯任務中對線性對映強制對角約束將,將會給出更好的結果。
通用多語言句子嵌入
已有對通用句子表徵的學習基本都是基於英語的。雖然一些研究中也考慮了使用公開可用的並行語料庫構建對多種語言可共享的句子編碼器,但是面對缺少大規模句子曾語義評估,限制了這些方法的應用。這些方法所考慮的語言規模都沒有XNLI廣泛,並侷限於一些具有豐富資源的語言。我們考慮使用CBOW編碼器的Common Crawl嵌入。我們的方法考慮翻譯詞的CBOW表徵對在嵌入空間中具有很近的距離。認為多語言句子日安全是預訓練的,並只在其上學習分類器,並評估分類器的效能,這類似於在多語言環境中的遷移學習。
對齊句子嵌入
相比於翻譯源句子和目標句子對的方法而言,在嵌入空間中訓練兩者間相似度的方法從概念上更易於理解,計算複雜度也更低。論文提出了一種訓練跨語言相似度的方法,並驗證了對齊句子表徵任務評估方法的有效性。兩個並行句子的嵌入可能並不相同,但是它們在嵌入空間中可能具有非常近的距離,這種距離上的相似性可用英語分類器的決策邊界捕獲。
為了對齊兩種不同語言的嵌入空間,論文提出了一種簡單的對齊損失函式。在NLI上訓練英語編碼器是,採用了最小化損失函式
\(L(x,y)=dist(x,y)-\lambda (dist(x_{c},y)+dist(x,y_{c}))\)
訓練目標編碼器。其中,對應於源句子嵌入和目標句子嵌入;\((x_{c},y_{c})\) 是對比詞(即負向抽樣);λ控制了損失函式中負向例項的權重。距離函式使用了L2範數\(dist(x,y)=||x-y||\) 。排序損失(Ranking Loss)採用:
\(L_{rank}(x,y)=max(0,\alpha -dist(x,y_{c})+dist(x,y))+max(0,\alpha -dist(x_{c},y)+dist(x,y))\)
這使得翻譯句子對的嵌入間距離,比導致不好結果的負向句子對嵌入間的距離更近。不同於\(L_{align}\) ,為使得共享分類器可以理解具有同一意思的句子,\(L_{rank}\) 並不強制句子對的嵌入距離必須足夠近。
論文對跨語言基線X-CBOW、X-BILSTM-LAST和X-BILSTM-MAX使用了\(L_{align}\) 。對於X-CBOW,編碼器是預訓練的,但是沒有在NLI上調優(即做遷移學習),而BILSTM的兩個英語基線是在MultiNLI訓練集上做了訓練。在上述三個基線方法中,英語編碼器和分類器是固定的。其它十四種語言分別具有自己的編碼器,它們具有相同的結構。編碼器使用\(L_{align}\) 損失函式和並行資料在英語編碼器上訓練。句子嵌入對齊方法如圖三所示。
圖三圖示使用句子嵌入對齊的語言
實驗
在實驗中,翻譯系統使用的是Facebook內部的一種翻譯系統,將英語句子翻譯為其它十種語言。圖四給出了“翻譯測試”方法下的翻譯情況,其中每個訓練集都翻譯為英語句子。使用“翻譯訓練”方法翻譯MultiNLI的英語訓練資料,翻譯質量以BLEU分值給出,如圖六實驗結果所示。大部分語言的分詞使用了MOSES,中文使用了Stanford分段,泰語使用了pythainlp軟體包。
圖四 十五種語言的XNLI測試準確率
X-CBOW和X-BILSTM使用預訓練的300D對齊詞嵌入,只考慮了詞典中最頻繁的50萬個詞,通常可覆蓋XNLI資料集中98%的詞。對於BiLSTM基線,隱含單元數量設定為512,使用Adam優化器作為預設引數。分類器接收引數向量\([u,v,|u-v|,u*v]\) ,其中u和v分別是共享編碼器給出的前提和假設的嵌入,“*”對應於逐元素乘積運算。對齊損失函式中設定λ=0.25,考慮了正向和負向對重要性之間的權衡情況,如圖七實驗結果所示。
負向例項採用隨機抽樣獲得。將目標BiLSTM編碼器擬合到英語編碼器中,論文在保持源詞嵌入固定的情況下,調優了目標編碼器關聯的查詢表(looup table)。分類器使用了前向反饋神經網路,其中隱含層具有128個隱含單元,使用0.1丟棄率的Dropout做規範化。對於X-BiLSTM,對每種語言在XNLI驗證集上執行模型選擇。對於X-CBOW,保留並行語句上的驗證集,用於評估對齊損失。但是在確定對齊的損失時,需要每種語言對中句子的並行資料集。
並行資料集
論文使用公開可用的並行資料集,學習英語和目標編碼器之間的對齊。對於法語、西班牙語、俄語、阿拉伯語和中文,使用UN語料庫。對於德語、希臘語和保加利亞語,使用了Europarl語料庫。對於土耳其語、越南語和泰語,使用了OpenSubtitles 2018語料庫。印地語使用了IIT Bombay大學的語料庫。所有上述的語言對,都可以收集到超過50萬並行語句,論文實驗中設定了最大並行語句數量為200萬。但是對於資源匱乏的語言烏爾都語和斯瓦希里語,並行句子的資料量要呈數量級地小於其它語言。烏爾都語使用了聖經和可蘭經文字、OpenSubtitles 2016和2018、LDC2010T21、LDC2010T23LDC語料庫,得到合計6.4萬並行句子。斯瓦希里語使用了Global Voices和Tanzil可蘭經文字語料庫,只能收集到4.2萬條並行句子。
對比分析
圖五給出了語言間效能情況。使用BiLSTM時,BiLSTM-max的效能總是優於BiLSTM-last。而BiLSTM類基線普遍優於CBOW類基線方法。BiLSTM編碼器也優於CBOW,即便是在MultiNLI訓練集上調優了詞嵌入。該實驗說明,正如前期一些研究所指出的,NLI任務需要的不僅僅是詞的資訊。
圖五 各類方法訓練中對齊損失的變化情況,觀測到的\(L_{align}\) 與準確性的關係
圖六顯示了翻譯給出的XLU的基線。“翻譯測試”方法在所有語言上看上去總是優於“翻譯訓練”。在評估中,最優的跨語言結果來自於“翻譯測試”。在使用翻譯方法時,跨語言效能取決於翻譯系統的效能。事實上,基於翻譯的結果與翻譯系統的BLEU分值具有很好的相關性。導致效能偏差的主要原因包括翻譯誤差、文風變化,以及由翻譯系統引入的訓練與測試資料集之間的差異。
圖六 多語言詞嵌入訓練模型(XX-En) P@1的BLUE分值
對於跨語言效能,實驗觀察到英語結果和其它語言的結果存在這一定差距。圖六顯示了在三種語言上的驗證準確性,其中使用了具有不同訓練超引數的BiLSTM-max。調優嵌入並未顯著地影響結果,這表明LSTM本身就確保了並行句子嵌入的對齊。
圖七 使用BiLSTM-max情況下的驗證準確性
結論
缺少英語以外其它語言(尤其是一些資源匱乏語言)的語料庫,這是工業級應用中面對的一個現實問題。考慮到為每種語言生成標記資料是不現實的做法,因此在各語言場景下的跨語言理解和低資源遷移得到了廣泛的關注。XNLI論文的工作擴充套件了MultiNLI語料庫到十五種語言,設計用於解決在跨語言理解中缺少語料庫的問題,並希望能有助於研究社群進一步推動這一領域研究的發展。論文還給出了對多種基於跨語言編碼器和翻譯系統的評估。雖然機器翻譯基線在實驗中給出了最優的結果,但是這些方法在訓練和測試中依賴於計算強度很大的翻譯模型。
檢視英文原文:XNLI: Evaluating Cross-lingual Sentence Representations
感謝蔡芳芳對本文的審校。