Facebook 開源增強版LASER 可使用90多種語言
為了加速將自然語言處理(NLP)應用到更多的語言,Facebook 開源了增強版LASER庫,成為第一個成功地與NLP社區分享的大型多語種句子表示工具。該工具目前可以使用90多種語言,涉及28種不同的字符表。
LASER通過將所有語言都嵌入在一個共享空間來實現這點(而不是不同語言使用著不同的模型)。Facebook同時開源的還有免費提供的多語言編碼器和PyTorch代碼,以及包括100多種語言的多語言測試集。
LASER 實現了從一種語言(如英語)到其他幾種語言(包括訓練數據極為有限的語言)進行NLP 零樣本遷移的大門,是第一個使用單個模型處理各種語言的庫(其中包括低資源語言,如卡拜爾語、維吾爾語,以及吳語等方言)。有朝一日,這項工作可以幫助Facebook 或其他公司推出些特定的NLP 功能,例如可以將同一語言的電影評論分正面和負面,然後用其他100多種語言進行發布。
LASER 功能亮點
LASER 為XNLI 語料庫(注:語料庫一詞在語言學上意指大量的文本)14 種語言中的13 種帶來了更高的零樣本跨語言自然語言推理準確率,在跨語言文檔分類、並行語料庫挖掘、多語言相似性(即使是低資源語言)方面也有很好的表現。
LASER 還擁有以下優勢:
- 極快的性能,能在GPU 上每秒處理多達2000 個句子。
- 句子編碼器是在PyTorch 中實現的,只需很少的外部依賴。
- 資源有限的語言可以從多種語言的聯合訓練中受益。
- 該模型支持在一個句子中使用多種語言。
- 隨著新語言的加入,系統會學習識別其語系特徵,從而使相關性能有所提高。
通用、語言無關的句子嵌入
LASER 的句子向量表示對輸入語言和NLP 任務是通用的。該工具將任何語言的句子映射到高維空間中的一個點,為的是任何語言中的相同語句最終會出現在同一鄰域中。該表示可以被視為語義向量空間中的一種通用語言。Facebook 觀察到,該空間中的距離與句子的語義接近度非常相關。(見下圖,圖左顯示的是單語嵌入空間,圖右說明了LASER 的方法——將所有語言嵌入到同一共享空間。)
LASER 的方法建立在與神經機器翻譯相同的基礎技術之上:編碼器/解碼器方法,也稱為序列到序列處理。Facebook 為所有輸入語言使用一個共享編碼器,並使用共享解碼器生成輸出語言。編碼器是五層雙向LSTM(長短期記憶)網絡。與神經機器翻譯相比,Facebook 不使用注意機制,而是使用1024維固定大小的向量來表示輸入句子。它是通過對BiLSTM 的最後狀態進行最大池化來獲得的。這使得句子表示能夠被比較並直接輸入到分類器。下圖說明的是LASER 的結構。
零樣本、跨語言的自然語言推理
該模型在跨語言自然語言推理(NLI)中取得好的成績,而這項任務的表現是一個強有力的指標,代表著模型可以表示句子的意義。關於零樣本設置,可以在英語上訓練NLI 分類器,然後在沒有微調或目標語言資源的情況下將其應用於所有目標語言。14種語言中的8種,零樣本性能在英語表現的5%以內,其中包括俄語,中文和越南語等。此外,也在斯瓦希里語和烏爾都語等低資源語言上取得好的成績。在最後,14種語言中,LASER 有13種語言的表現優於所有以前的零樣本遷移方法。
與之前需要句子為英語的方法相比,該系統是完全可以多語言的,並且支持不同語言的前提和假設的組合。下表顯示了LASER 如何能夠確定不同語言的XNLI 語料庫中句子之間的關係,而以前的方法只考慮了同一語言的前提和假設。
此外,相同的句子編碼器也被用於挖掘大量單語文本中的並行數據,只需要計算出所有句子間的距離,並選擇距離最小的一對句子(語言對)。這在共享BUCC任務上的表現遠遠超過了現有水平。(該方法的詳細描述可見論文:https://arxiv.org/abs/1812.10464)
一樣的方法可以用在使用任何語言對,來挖掘90多種語言的並行數據。預計這將改善許多依賴於並行訓練數據的NLP 應用程序,包括低資源語言的神經機器翻譯。
未來的應用
LASER 庫也可用於其他相關任務。比如多語言語義空間的屬性,就可用於對同種語言或LASER 現支持的其他93種語言做出句子的解釋、或是搜索相似含義的句子。Facebook 表示將繼續改進模型、新增更多的語言。
新聞來源:https://code.fb.com/ai-research/laser-multilingual-sentence-embeddings