Facebook開源首個大型多語種句子表示工具包LASER,支持93種語言

爲了加速自然語言處理(NLP)在更多語言上進行零樣本遷移,Facebook 擴展並增強了LASER(Language-Agnostic SEntence Representations)工具包,並將其開源。這是第一個成功探索大型多語種句子表示並與廣大NLP社區共享的工具。

該工具包現在可以使用90多種語言和28種不同的字母表。LASER通過將所有語言聯合嵌入到單個共享空間(而不是爲每種語言分別建立單獨的模型)來實現這些結果。我們現在免費提供多語言編碼器和PyTorch代碼,以及針對100多種語言的多語言測試集。

LASER打開了從一種語言(如英語)到其他幾種語言(包括訓練數據極爲有限的語言)進行NLP模型零樣本遷移的大門。LASER是第一個使用單一模型處理各種語言的庫,包括低資源語言(如卡拜爾語和維吾爾語),以及中國的吳語等方言。有朝一日,這項工作可以幫助Facebook和其他公司推出一些特定的NLP功能,例如,使用一種語言將電影評論分類爲正面或負面,然後再使用其他100多種語言發佈。

性能和功能亮點

LASER爲XNLI語料庫14種語言中的13種帶來了更高的零樣本跨語言自然語言推理準確率。它還在跨語言文檔分類(MLDoc語料庫)方面獲得了很好的結果。我們的句子嵌入在並行語料庫挖掘方面也有很好的表現,在BUCC(BUCC是在2018年舉行的一個構建和使用可比較語料庫研討會)共享任務中將四個語言對中的三個提升到了一個新的技術水平。除了LASER工具包,我們在Tatoeba語料庫的基礎上共享了100多種語言對齊句子的測試集。使用這個數據集,我們的句子嵌入在多語言相似性搜索中獲得了很好的結果,即使是低資源語言也是如此。

LASER還提供了其他的一些好處:

  • 它提供了極快的性能,在GPU上每秒處理多達2,000個句子。
  • 句子編碼器使用PyTorch實現,只有很少的外部依賴。
  • 低資源語言可以從多種語言的聯合訓練中受益。
  • 該模型支持在一個句子中使用多種語言。
  • 隨着新語言的添加,性能會有所提高,因爲系統會學會識別語言族的特徵。

通用的語言無關性句子嵌入

LASER的句子向量表示對於輸入語言和NLP任務都是通用的。它將語言的句子映射到高維空間中的一個點,目標是讓語言中的相同語句最終出現在同一鄰域中。該表示可以被視爲語義向量空間中的一種通用語言。我們已經觀察到,空間中的距離與句子的語義緊密程度密切相關。

image

左邊的圖像顯示了單語嵌入空間。右側圖像說明了LASER的方法,它將所有語言嵌入到一個共享空間中。
我們的方法建立在與神經機器翻譯相同的基礎技術之上:編碼器/解碼器方法,也稱爲序列到序列處理。我們爲所有輸入語言使用一個共享編碼器,並使用共享解碼器生成輸出語言。編碼器是五層雙向LSTM(長短期記憶)網絡。與神經機器翻譯相比,我們不使用注意機制,而是使用1,024維固定大小的向量來表示輸入句子。它是通過對BiLSTM的最後狀態進行最大池化得到的。我們因此能夠比較句子的表示形式,並將它們直接輸入分類器中。

image

方法架構
這些句子嵌入用於初始化解碼器LSTM,通過線性變換以及在每個時間步驟上將其連接到輸入嵌入。編碼器和解碼器之間沒有其他的連接,因爲我們希望通過句子嵌入捕獲到輸入序列的所有相關信息。

我們必須告訴解碼器要生成哪種語言。它需要一個語言標識,也就是在每個時間步驟上連接到輸入和句子嵌入的標識。我們使用具有50,000個操作的聯合字節對編碼(BPE)詞彙表,在所有連接的訓練語料庫上進行訓練。由於編碼器沒有指示輸入語言的顯式信號,因此編碼器需要學習與語言無關的表示。我們基於公共並行數據的2.23億個句子(它們與英語或西班牙語對齊)訓練我們的系統。對於每個迷你批次,我們隨機選擇一種輸入語言,讓系統將句子翻譯成英語或西班牙語。大多數語言都與目標語言保持一致,雖然這不是必需的。

我們剛開始訓練了不到10種歐洲語言,所有語言都使用了相同的拉丁文字。後來,我們逐漸增加到Europarl語料庫中提供的21種語言,結果表明,隨着我們添加的語言越來越多,多語言遷移性能也得到了提升。系統學習了語言家族的通用特徵。通過這種方式,低資源語言可以從同一族高資源語言的資源中獲益。

這可能可以通過使用在所有語言的連接上訓練的共享BPE詞彙表來實現。我們對每種語言BPE詞彙表分佈之間的對稱Kullback-Leiber距離進行了分析和聚類,結果顯示,Kullback-Leiber距離與語言家族具有幾乎完美的相關性。

image

LASER自動發現各種語言之間的關係,與語言學家手動定義的語言家族非常吻合。
我們意識到,單個共享的BiLSTM編碼器可以處理多個腳本。我們逐漸擴展到所有可以識別免費並行文本的語言。被納入LASER的93種語言包括SVO順序(例如英語)、SOV順序(例如孟加拉語和突厥語)、VSO順序(例如塔加路語和柏柏爾語),甚至是VOS順序(例如馬達加斯加語)的語言。

我們的編碼器可以推廣到未使用的語言(甚至是單語文本)。我們發現了它在一些區域語言上表現良好,例如阿斯圖里亞斯語、法羅語、弗里斯蘭語、卡舒比語、北摩鹿加語馬來語、皮埃蒙特語、斯瓦比亞語和索布語。所有這些語言都在不同程度上與其他主要語言有一些相似之處,但它們的語法或特定詞彙有所不同。

image

LASER在XNLI語料庫上的零樣本遷移性能

零樣本跨語言的自然語言推理

我們的模型在跨語言自然語言推理(NLI)中獲得了良好的效果。在這項任務上的表現是一個強有力的指標,它能夠很好地說明這個模型是如何表達一個句子的意思的。我們針對英語訓練NLI分類器,然後將其應用於所有目標語言,不需要進行微調或使用目標語言資源。在14種語言中,有8種語言的零樣本性能表現在英語的5%以內,包括俄語、中文和越南語等。我們在斯瓦希里語和烏爾都語等低資源語言上也取得了很好的成績。最後,LASER在14種語言中的13種語言上的表現優於所有以前的零樣本遷移方法。

與之前的方法不同,之前的方法需要一個英語句子,而我們的系統是完全多語言的,並且支持不同語言的任意前提和假設組合。

image

LASER如何在不同語言的XNLI語料庫中確定句子之間的關係。以前的方法只考慮相同語言的前提和假設。
同樣的句子編碼器也被用於挖掘大量單語文本中的並行數據。我們只需要計算所有句子對之間的距離,並選擇最接近的句子對。我們考慮了最近句子和其他最近句子之間的距離,以此來進一步改進該方法。我們使用了Facebook的FAISS庫來高效執行這個搜索。

我們在共享BUCC任務上的表現遠遠超過了現有水平。我們的系統明顯是爲完成這個任務而開發的。我們將德語/英語的F1得分從85.5提高到96.2,法語/英語從81.5提高到93.9,俄語/英語從81.3提高到93.3,漢語/英語從77.5提高到92.3。正如這些示例所示,我們的結果在所有語言中都是高度同質的。

該方法的詳細信息可以在這篇研究論文中找到:https://arxiv.org/abs/1812.10464

同樣的方法也適用於使用任意語言對在90多種語言中挖掘並行數據。預計這將顯著改善許多依賴於並行訓練數據的NLP應用程序,包括低資源語言的神經機器翻譯。

未來的應用

LASER還可以用於其他相關任務。例如,多語言語義空間特性可用於解釋一個句子或搜索具有類似含義的句子——可以使用相同的語言,也可以使用LASER目前支持的93種其他語言中的任意一種。我們將繼續改進我們的模型,在現有的93種語言基礎上增加更多的語言。

英文原文:https://code.fb.com/ai-research/laser-multilingual-sentence-embeddings/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章