支持93種語言!Facebook開源零樣本遷移學習工具包LASER(PyTorch代碼)
【新智元導讀】Facebook 今天開源了增強版的 NLP 工具包 LASER,支持 93 種語言,用 28 種不同的字母表編寫。這成為第一個成功探索大型多語言句子表示的開源 NLP 工具。
Facebook 今天宣布擴展並增強了 NLP 工具包 LASER(Language-Agnostic SEntence Representations),並將其開源。
LASER 成為第一個成功探索大型多語言句子表示的開源 NLP 工具。該工具包現在支持 90 多種語言,用 28 種不同的字母表編寫。LASER 通過將所有語言聯合嵌入到一個共享空間 (而不是為每種語言分別建模) 來實現這些結果。
Facebook 還免費提供多語言編碼器和 PyTorch 代碼,以及包含 100 多種語言的多語言測試集。
開源地址:
facebookresearch/LASERLASER 打開了從一種語言 (如英語) 到其他語言 (包括訓練數據極其有限的語言) 進行 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 任務都是通用的。該工具將任何語言中的一個句子映射到高維空間中的一個點,目標是使任何語言中的相同語句最終位於同一個域。該表示可以看作是語義向量空間中的一種通用語言。我們已經觀察到,空間中的距離與句子的語義緊密程度密切相關。
我們的方法基於與神經機器翻譯相同的基礎技術:編碼器 / 解碼器方法,也稱為序列到序列處理 (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 距離與語言學上定義的語系幾乎完全相關。
然後,我們意識到,一個共享的 BiLSTM 編碼器可以處理多個腳本,我們逐漸擴展到所有可用並行文本的語言。納入 LASER 的 93 種語言包括主語 - 謂語 - 賓語 (SVO) 順序的語言 (如英語)、主語 - 賓語 - 謂語(SOV) 順序的語言 (如孟加拉語和突厥語)、謂語 - 主語 - 賓語(VSO) 順序的語言 (如他加祿語和柏柏爾語),甚至謂語 - 主語 - 賓語(VOS) 順序的語言(如馬達加斯加語)。
我們的編碼器能夠推廣到訓練期間沒有使用的語言 (甚至是單語文本)。我們發現,它在一些區域語言上表現很好,如阿斯圖裡亞語、法羅語、弗里斯蘭語、卡舒比語、北摩鹿加語、皮埃蒙特語、斯瓦比亞語和索布語。所有這些語言都在不同程度上與其他主要語言有一些相似之處,但它們的語法或特定辭彙有所不同。
零樣本、跨語言的自然語言推理
我們的模型在跨語言自然語言推理 (cross-lingual natural language inference, NLI) 中取得了良好的效果。在這個任務上的表現是一個強有力的指標,它能很好地說明這個模型是如何表達一個句子的意思的。我們考慮了 zero-shot 設置,換句話說,是針對英語訓練 NLI 分類器,然後將其應用到所有目標語言,而不需要進行微調或使用目標語言資源。
在 14 種語言中,有 8 種語言的 zero-shot 性能與英語的性能相比差距不超過 5%,包括俄語、漢語和越南語等較遠的語言。我們在斯瓦希里語和烏爾都語這樣的低資源語言上也取得了不錯的成績。最後,LASER 在 14 種語言中的測試中,有 13 種語言的表現優於之前所有的 zero-shot transfer 方法。
我們的系統是完全多語言的,支持不同語言的任意前提和假設組合,這與以前的方法不同,以前的方法需要一個英語句子。
同樣的句子編碼器也被用於在大量單語文本中挖掘並行數據。我們只需要計算所有句子對之間的距離並選擇最接近的句子對。通過考慮最近的句子和其他最近句子之間的距離,這種方法得到了進一步的改進。這個搜索是使用 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 種語言基礎上增加更多的語言。
推薦閱讀:
TAG:Facebook | 自然語言處理 | 深度學習(DeepLearning) |