Facebook今天開源了增強版的NLP工具包LASER,支持93種語言,用28種不同的字母表編寫。這成為第一個成功探索大型多語言句子表示的開源NLP工具。
Facebook今天宣布擴展并增強了NLP工具包LASER(Language-Agnostic SEntence Representations),并將其開源。
LASER成為第一個成功探索大型多語言句子表示的開源NLP工具。該工具包現在支持90多種語言,用28種不同的字母表編寫。LASER通過將所有語言聯合嵌入到一個共享空間(而不是為每種語言分別建模)來實現這些結果。
Facebook還免費提供多語言編碼器和PyTorch代碼,以及包含100多種語言的多語言測試集。
開源地址:
https://github.com/facebookresearch/LASER
LASER打開了從一種語言(如英語)到其他語言(包括訓練數據極其有限的語言)進行NLP模型零樣本遷移(zero-shot transfer)打開了大門。LASER是第一個使用單一模型處理多種語言的庫,包括低資源語言(如卡拜爾語和維吾爾語)以及方言(如吳語)。
未來,這項工作可以幫助Facebook和其他公司推出一些特定的NLP功能,比如用一種語言將電影評論分類為正面或負面,然后使用100多種其他語言發表。
性能和特征亮點
LASER將XNLI語料庫14種語言中13種的零樣本跨語言自然語言推理精度提高到新的最高水平。它還在跨文本文檔分類(MLDoc語料庫)得到強大的結果。我們的句子嵌入在并行語料庫挖掘方面也很強大,在BUCC共享任務中為四個語言對的其中三個提供了新的最優結果(BUCC是2018年的一個關于構建和使用可比較語料庫的研討會)。
除了LASER工具包,我們還在Tatoeba語料庫的基礎上共享了包含100多種語言的對齊句子測試集。使用這個數據集,我們的句子嵌入在多語言相似度搜索任務中獲得了強大的結果,即使是低資源語言也是如此。
LASER還提供了其他一些優勢:
它提供非常快的性能,在GPU上每秒能處理多達2000個句子。
句子編碼器使用PyTorch實現,只有最小的外部依賴性。
低資源語言可以從多種語言的聯合訓練中獲益。
模型支持在一個句子中使用多種語言。
隨著添加更多新語言,系統會學習識別語系的特征,性能也會提高。
通用的語言無關(language-agnostic)句子嵌入
LASER的句子向量表示對于輸入語言和NLP任務都是通用的。該工具將任何語言中的一個句子映射到高維空間中的一個點,目標是使任何語言中的相同語句最終位于同一個域。該表示可以看作是語義向量空間中的一種通用語言。我們已經觀察到,空間中的距離與句子的語義緊密程度密切相關。
左邊的圖像顯示了單語嵌入空間。右邊是LASER方法的圖示,它將所有語言嵌入到一個共享空間中。
我們的方法基于與神經機器翻譯相同的基礎技術:編碼器/解碼器方法,也稱為序列到序列處理(sequence-to-sequence processing)。我們為所有輸入語言使用一個共享編碼器,并使用一個共享解碼器生成輸出語言。編碼器是一個5層的雙向LSTM網絡。與神經機器翻譯不同的是,我們不使用注意力機制,而是使用1024維固定大小的向量來表示輸入的句子。它是通過對BiLSTM的最后狀態進行max-pooling得到的。這使我們能夠比較句子的表示形式,并將它們直接輸入分類器。
我們的方法的架構
這些句子嵌入用于通過線性轉換初始化 decoder LSTM,并在每個時間步上將其連接到輸入嵌入。編碼器和解碼器之間沒有其他的連接,因為我們希望輸入序列的所有相關信息都被句子嵌入所捕獲。
解碼器必須要知道應該生成哪種語言。它采用一種語言標識嵌入,該標識在每個時間步中連接到輸入和句子嵌入。我們使用帶有50000個操作的聯合字節對編碼(byte-pair encoding, BPE)詞匯表,在所有訓練語料庫的連接上進行訓練。由于編碼器沒有指示輸入語言的顯式信號,因此該方法鼓勵編碼器學習與語言無關的表示。
我們基于公共并行數據的2.23億個句子(這些句子與英語或西班牙語對齊)對系統進行訓練。對于每一個mini-batch,我們隨機選擇一種輸入語言,并訓練系統將句子翻譯成英語或西班牙語。大多數語言都與這兩種目標語言對齊,但這不是必需的。
這項工作的開始階段,我們訓練了不到10種歐洲語言,這些語言都使用同一個拉丁字母系統。后來,我們逐漸增加到Europarl語料庫中提供的21種語言,結果表明,隨著語言的增加,多語言遷移的性能也得到了提高。該系統學習了語言系屬(language families)的一般特征。通過這種方式,低資源語言可以從同語系高資源語言的資源中獲益。
這可以通過使用在所有語言的連接上進行訓練的共享BPE詞匯表來實現。我們對每種語言的BPE詞匯表分布之間的Kullback-Leiber距離進行了對稱聚類分析,結果表明,Kullback-Leiber距離與語言學上定義的語系幾乎完全相關。
上圖顯示了LASER自動發現的各種語言之間的關系。它們非常符合語言學家人工定義的語系。
然后,我們意識到,一個共享的BiLSTM編碼器可以處理多個腳本,我們逐漸擴展到所有可用并行文本的語言。納入LASER的93種語言包括主語-謂語-賓語(SVO)順序的語言(如英語)、主語-賓語-謂語(SOV)順序的語言(如孟加拉語和突厥語)、謂語-主語-賓語(VSO)順序的語言(如他加祿語和柏柏爾語),甚至謂語-主語-賓語(VOS)順序的語言(如馬達加斯加語)。
我們的編碼器能夠推廣到訓練期間沒有使用的語言(甚至是單語文本)。我們發現,它在一些區域語言上表現很好,如阿斯圖里亞語、法羅語、弗里斯蘭語、卡舒比語、北摩鹿加語、皮埃蒙特語、斯瓦比亞語和索布語。所有這些語言都在不同程度上與其他主要語言有一些相似之處,但它們的語法或特定詞匯有所不同。
這張表顯示了LASER在XNLI語料庫上的zero-shot遷移性能 (Conneau et al., Evaluating Cross-lingual Sentence Representations, EMNLP’18)。BERT的結果來自它的GitHub README。(注:這些結果是用PyTorch 1.0實現得到的,與本文使用PyTorch 0.4得到的結果略有不同。)
零樣本、跨語言的自然語言推理
我們的模型在跨語言自然語言推理(cross-lingual natural language inference, NLI)中取得了良好的效果。在這個任務上的表現是一個強有力的指標,它能很好地說明這個模型是如何表達一個句子的意思的。我們考慮了zero-shot設置,換句話說,是針對英語訓練NLI分類器,然后將其應用到所有目標語言,而不需要進行微調或使用目標語言資源。
在14種語言中,有8種語言的zero-shot 性能與英語的性能相比差距不超過5%,包括俄語、漢語和越南語等較遠的語言。我們在斯瓦希里語和烏爾都語這樣的低資源語言上也取得了不錯的成績。最后,LASER在14種語言中的測試中,有13種語言的表現優于之前所有的zero-shot transfer方法。
我們的系統是完全多語言的,支持不同語言的任意前提和假設組合,這與以前的方法不同,以前的方法需要一個英語句子。
上表顯示了LASER如何在不同語言的XNLI語料庫中確定句子之間的關系。以前的方法只考慮相同語言的前提和假設。
同樣的句子編碼器也被用于在大量單語文本中挖掘并行數據。我們只需要計算所有句子對之間的距離并選擇最接近的句子對。通過考慮最近的句子和其他最近句子之間的距離,這種方法得到了進一步的改進。這個搜索是使用Facebook的FAISS library高效執行的。
我們在共享BUCC任務上的表現遠遠超過了當前最高的技術水平。最優的系統是為這項任務專門開發的。我們將德語/英語的 F1得分從 85.5 提高到 96.2,法語/英語的得分從 81.5 提高到 93.9,俄語/英語從 81.3 提高到 93.3,漢語/英語從 77.5 提高到 92.3。所有這些示例都表明,我們的結果在所有語言中都是高度同質的。
該方法的詳細描述可以閱讀與Mikel Artetxe合著的研究論文Massively Multilingual Sentence Embeddings for Zero-Shot Cross-Lingual Transfer and Beyond
地址:https://arxiv.org/abs/1812.10464
使用任意語言對,同樣的方法也可以用來挖掘90多種語言的并行數據。這將顯著改善許多依賴于并行訓練數據的NLP應用,包括低資源語言的神經機器翻譯。
未來的應用
LASER庫還可以用于其他相關任務。例如,多語言語義空間的屬性可以用于解釋句子或搜索具有相似含義的句子——可以使用同一種語言,也可以使用LASER目前支持的93種語言中的任何一種。我們將繼續改進模型,在現有的93種語言基礎上增加更多的語言。
-
Laser
+關注
關注
0文章
22瀏覽量
9309 -
機器翻譯
+關注
關注
0文章
139瀏覽量
14903 -
數據集
+關注
關注
4文章
1208瀏覽量
24725
原文標題:Facebook開源NLP遷移學習工具包,支持93種語言,性能最優
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論