FAIR重磅发布大规模语料库XNLI:解决跨15种语言理解难题
作者 | Facebook AI 研究院和紐約大學研究團隊
譯者 | 蓋磊
編輯 | Vincent
AI 前線導讀:自然語言處理系統依賴于使用基于標注數據的有監督學習提高模型的處理能力。目前,許多模型是使用單一語言(通常是英語)訓練的,并不能直接應用于其他語言。鑒于收集每種語言的語料數據是不現實的,因此如何實現跨語言句子理解(XLU)和低資源的跨語言遷移得到了越來越多的關注。
XNLI 論文進一步將多類型自然語言推理語料庫(MultiNLI)的開發和測試集擴展到 15 種語言,其中甚至包括斯瓦希里語和烏爾都語等低資源語言,構建了一種用于 XLU 的基準測試數據集。此外,XNLI 數據集還提供了一些標準的評估任務,可促進對跨語言句子理解的研究。
更多優質內容請關注微信公眾號“AI 前線”(ID:ai-front)
近期,EMNLP 2018 收錄的一篇論文“XNLI: Evaluating Cross-lingual Sentence Representations”得到了 Yann LeCun 的關注,他轉發并推薦了該論文提供的公開數據集 XNLI(Cross-lingual Sentence Representations)。XNLI 是 Facebook AI 研究院(FAIR)和紐約大學研究團隊的一項合作研究成果,它提供了一種用于評估跨語句表征的數據集。
自然語言處理系統依賴于使用基于標注數據的有監督學習提高模型的處理能力。目前,許多模型是使用單一語言(通常是英語)訓練的,并不能直接應用于其他語言。由于收集每種語言的語料數據是不現實的,因此如何實現跨語言句子理解(XLU)和低資源的跨語言遷移得到了越來越多的關注。
這篇論文進一步將多類型自然語言推理語料庫(MultiNLI)的開發和測試集擴展到 15 種語言,其中甚至包括斯瓦希里語和烏爾都語等低資源語言,構建了一種用于 XLU 的基準測試數據集。
對該論文感興趣的讀者,可訪問 XNLI 項目主頁:http://www.nyu.edu/projects/bowman/xnli/
下載數據集:http://www.nyu.edu/projects/bowman/xnli/XNLI-1.0.zip,
據 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) 的矩陣,對應于出現在并行字典中的對齊詞嵌入; 是一組維度為 d 的對角矩陣;U 和 V 是由 做 SVD 得到,即。一些現有研究表明,在詞翻譯任務中對線性映射強制對角約束將,將會給出更好的結果。
通用多語言句子嵌入
已有對通用句子表征的學習基本都是基于英語的。雖然一些研究中也考慮了使用公開可用的并行語料庫構建對多種語言可共享的句子編碼器,但是面對缺少大規模句子曾語義評估,限制了這些方法的應用。這些方法所考慮的語言規模都沒有 XNLI 廣泛,并局限于一些具有豐富資源的語言。我們考慮使用 CBOW 編碼器的 Common Crawl 嵌入。我們的方法考慮翻譯詞的 CBOW 表征對在嵌入空間中具有很近的距離。認為多語言句子日安全是預訓練的,并只在其上學習分類器,并評估分類器的性能,這類似于在多語言環境中的遷移學習。
對齊句子嵌入
相比于翻譯源句子和目標句子對的方法而言,在嵌入空間中訓練兩者間相似度的方法從概念上更易于理解,計算復雜度也更低。論文提出了一種訓練跨語言相似度的方法,并驗證了對齊句子表征任務評估方法的有效性。兩個并行句子的嵌入可能并不相同,但是它們在嵌入空間中可能具有非常近的距離,這種距離上的相似性可用英語分類器的決策邊界捕獲。
為了對齊兩種不同語言的嵌入空間,論文提出了一種簡單的對齊損失函數。在 NLI 上訓練英語編碼器是,采用了最小化損失函數
訓練目標編碼器。其中,$(x,y)$ 對應于源句子嵌入和目標句子嵌入; 是對比詞(即負向抽樣);λ控制了損失函數中負向實例的權重。距離函數使用了 L2 范數。排序損失(Ranking Loss)采用:
這使得翻譯句子對的嵌入間距離,比導致不好結果的負向句子對嵌入間的距離更近。不同于,為使得共享分類器可以理解具有同一意思的句子, 并不強制句子對的嵌入距離必須足夠近。
論文對跨語言基線 X-CBOW、X-BILSTM-LAST 和 X-BILSTM-MAX 使用了。對于 X-CBOW,編碼器是預訓練的,但是沒有在 NLI 上調優(即做遷移學習),而 BILSTM 的兩個英語基線是在 MultiNLI 訓練集上做了訓練。在上述三個基線方法中,英語編碼器和分類器是固定的。其它十四種語言分別具有自己的編碼器,它們具有相同的結構。編碼器使用 損失函數和并行數據在英語編碼器上訓練。句子嵌入對齊方法如圖三所示。
圖三 圖示使用句子嵌入對齊的語言
實 ?驗
在實驗中,翻譯系統使用的是 Facebook 內部的一種翻譯系統,將英語句子翻譯為其它十種語言。圖四給出了“翻譯測試”方法下的翻譯情況,其中每個訓練集都翻譯為英語句子。使用“翻譯訓練”方法翻譯 MultiNLI 的英語訓練數據,翻譯質量以 BLEU 分值給出,如圖六實驗結果所示。大部分語言的分詞使用了 MOSES,中文使用了 Stanford 分段,泰語使用了 pythainlp 軟件包。
圖四 十五種語言的 XNLI 測試準確率
X-CBOW 和 X-BILSTM 使用預訓練的 300D 對齊詞嵌入,只考慮了詞典中最頻繁的 50 萬個詞,通常可覆蓋 XNLI 數據集中 98% 的詞。對于 BiLSTM 基線,隱含單元數量設置為 512,使用 Adam 優化器作為默認參數。分類器接收參數向量,其中 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 語料庫到十五種語言,設計用于解決在跨語言理解中缺少語料庫的問題,并希望能有助于研究社區進一步推動這一領域研究的發展。論文還給出了對多種基于跨語言編碼器和翻譯系統的評估。雖然機器翻譯基線在實驗中給出了最優的結果,但是這些方法在訓練和測試中依賴于計算強度很大的翻譯模型。
查看英文原文:
https://arxiv.org/pdf/1809.05053
總結
以上是生活随笔為你收集整理的FAIR重磅发布大规模语料库XNLI:解决跨15种语言理解难题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习算法实现解析:libFM之lib
- 下一篇: 各大公司java面试整理对应问题博客整理