Facebook開源增強版LASER庫,包含93種語言工具包
前不久,Facebook 釋出了一項新研究,提出一種可學習 93 種語言的 聯合多語言句子表徵的架構 。該架構僅使用一個編碼器,且可在不做任何修改的情況下實現跨語言遷移。今日,Facebook 開源增強版 LASER 庫,包含上述研究的模型和程式碼。目前,LASER 庫包含 93 種語言工具包。
為了將 NLP 應用盡快部署到更多語言, Facebook 的研究者拓展並改進了其 LASER(Language-Agnostic SEntence Representations)工具箱。今天,他們開源了第一個可探索大量多語言句子表徵形式的工具——LASER,將其與 NLP 社群分享。據稱,該工具現在能應用於涉及 28 種不同字元系統的 90 多種語言中。LASER 將所有語言共同嵌入到一個共享空間中(而不是為每種語言建立一個單獨的模型),從而實現這樣的結果。一起開源的還包括涵蓋 100 多種語言的多語言測試集。
多語言編碼器和 PyTorch 程式碼連結:https://github.com/facebookresearch/LASER
Facebook 表示:LASER 為實現 NLP 模型從一種語言(如英語)到其它語言(包括訓練資料極其有限的語言)的零樣本遷移打開了大門。它是首個用單個模型解決多種語言(包括低資源語言,如卡拜爾語、維吾爾語、吳語)的同類型庫。有朝一日,這項工作可能會幫助 Facebook 和其它公司推出特定的 NLP 功能,比如將一種語言的電影評論分為正面或負面評論,然後立即用 100 多種其它語言將其展示出來。
LASER 的效能和功能亮點
LASER 在 XNLI語料庫14 種語言中的 13 種語言上獲得了零樣本跨語言自然語言推理任務的當前最佳準確率結果。它還在跨語言文件分類(MLDoc語料庫)上取得了良好的結果。利用 LASER 獲得的句子嵌入在平行語料庫挖掘上表現不錯,在 BUCC(2018 Workshop on Building and Using Comparable Corpora)4 個語言對中 3 個語言對的共享任務上達到了當前最佳。除了 LASER 以外,Facebook 還發布了新的基於 Tatoeba語料庫的 100 多種語言的對齊句子測試集。使用該資料集,Facebook 稱其句子嵌入可以在多語言相似性搜尋上獲得良好的結果,即使低資源語言也不例外。
LASER 還擁有以下優勢:
-
它能在 GPU 上每秒處理約 2000 個句子。
-
句子編碼器是在 PyTorch 中實現的,只需要很少的外部依賴。
-
資源有限的語言可以從多個語言的聯合訓練中受益。
-
該模型支援在一個句子中使用多種語言。
-
隨著新語言的加入,系統會學習識別其語系特徵,從而使相關任務效能得到提升。
通用的語言無關的句子嵌入
LASER 的句子向量表徵對於輸入語言和 NLP 任務都是通用的。該工具能將任何語言的句子對映到高維空間中的一個點,而該句子的其它語言的嵌入也會位於附近。這種表徵可以看成是語義向量空間的一種通用語言。Facebook 稱該空間中的句子距離和句子語義接近度非常相關。
圖左顯示了單語嵌入空間。圖右展示了 LASER 的方法,它將所有語言嵌入到一個共享空間中。
LASER 的方法建立在與神經機器翻譯相同的基礎技術之上:編碼器/解碼器方法,也稱為序列到序列處理。Facebook 為所有輸入語言使用一個共享編碼器,並使用共享解碼器生成輸出語言。編碼器是五層雙向 LSTM 網路。與神經機器翻譯相比,研究者沒有使用注意力機制,而是使用 1024 維固定大小的向量來表徵輸入句子。它是通過對 BiLSTM 的最後狀態進行最大池化來獲得的。這使得句子表徵可以互相比較,並將它們直接輸入分類器。
上圖說明了 LASER 的架構。
這些句子嵌入通過線性變換初始化解碼器 LSTM,並且還在每個時間步和其輸入嵌入拼接。編碼器和解碼器之間沒有其它連線,因為 Facebook 希望通過句子嵌入捕獲輸入序列的所有相關資訊。
解碼器必須被告知生成哪種語言。它會獲得一個語言標識嵌入,在每個時間步和輸入以及句子嵌入拼接。Facebook 使用具有 50000 個操作的聯合位元組對編碼(BPE)詞彙表,在所有訓練語料庫的拼接上進行訓練。由於編碼器沒有指示輸入語言的顯式訊號,因此該方法鼓勵它學習與語言無關的表徵。Facebook 對 2.23 億個與英語或西班牙語對齊的公共平行資料進行了系統訓練。對於每個批量,Facebook 隨機選擇一種輸入語言並訓練系統將句子翻譯成英語或西班牙語。大多數語言都與目標語言保持一致,但這不是必要的。
開始時,Facebook 只用不到 10 種歐洲語言進行訓練,這些語言都用相同的拉丁語書寫。將 Europarl語料庫中的語言逐漸增加至 21 種後發現,語言越多,多語言遷移的表現也越好。該系統學習了語系的一般特徵。通過這些方法,低資源語言受益於同語系中高資源語言的資源。
通過使用在所有語言拼接上訓練的共享 BPE 詞彙,這是可能實現的。對每種語言的 BPE 詞彙分佈之間對稱的 Kullback-Leiber 距離進行的分析和聚類表明其與語言定義的語系完全相關。
這幅圖展示了 LASER 自動發現的各種語言之間的關係,與語言學家手工定義的語言分類高度一致。
研究者意識到,單個共享 BiLSTM 編碼器可以處理多個指令碼,他們逐漸將其擴充套件到所有可以找到免費平行文字的語言。LASER 可以處理的 93 種語言包括主動賓(SVO)順序的語言(如英語)、主賓動(SOV)順序語言(如孟加拉語和突厥語)、動主賓(VSO)順序語言(如塔加拉族語和柏柏爾語),甚至是動賓主(VOS)順序的語言(如馬達加斯加語)。
該編碼器可以推廣到沒有被訓練過(即使作為單語言文字訓練集)的語言中。研究者發現編碼器在地區性語言上有良好表現,包括阿斯圖里亞斯語、法羅語、弗裡西語、卡舒比語、北摩鹿加語、皮埃蒙特語、施瓦本語、索布語。這些語言都不同程度地和其他主要語言有一些相同點,但是它們有自己的語法系統和特定詞彙。
上表展示了 LASER 在 XNLI語料庫上的零樣本遷移學習效能。BERT模型的結果是從其 GitHub README 上提取的。(注意:這些結果是通過 PyTorch 1.0 實現的,因此具體數值會和論文中略有不同,論文中使用的是 PyTorch 0.4)。
零資料、跨語言的自然語言推理
該模型在跨語言自然語言推理(NLI)上表現出色,這表明該模型極強地表示了句子的意義。研究者使用零資料設定,即先用英語訓練自然語言推理器,然後在沒有微調或者目標語言資源的情況下將其應用於所有的目標語言。在 14 種目標語言中,模型在 8 種語言上的零資料表現是在應用於英語時效能的 5% 上下區間。這 8 種語言包括與英語親屬關係遠的俄語、漢語、越南語等。該模型也在資源比較少的斯瓦希里語和烏爾都語上取得了很好的成績。最終,14 種目標語言,LASER 在 13 種語言的表現超過了所有以前使用零資料遷移的方法。
與以前要求句子必須是英語的方法相比,本文研究者的系統是完全使用目標語言的,並且支援不同語言中的各種前提和假設。
該圖表明 LASER 是如何確定 XNLI 資料集中不同語言句子之間關係的。以前的方法只會考慮同一語言中的前提和假設。
該句子編碼器也可被用於挖掘大型單語言文字集合中的平行資料。Facebook 研究者只需要計算所有語言對之間的距離,並選擇最近的一對。這種方法通過考慮最近語句和其他最近鄰之間的間隔而得到進一步改進。該搜尋通過 Facebook 的 FAISS 庫高效完成。
該方法在 BUCC 任務上顯著優於當前最優結果。該獲勝系統確實是為此任務設計的,但 Facebook 研究者把德譯英的 F1 分數從 85.5 提升到了 96.2,法譯英的 F1 分數從 81.5 提升到了 93.9,俄譯英從 81.3 改進到 93.3,中譯英從 77.5 到 92.3。可以看出,Facebook 的結果在所有語言上都高度均勻。
更多細節描述請參見論文《Massively Multilingual Sentence Embeddings for Zero-Shot Cross-Lingual Transfer and Beyond》(論文連結:https://arxiv.org/abs/1812.10464)。
該方法可用於在使用任意語言對的情況下,挖掘 90 多種語言中的平行資料。這有助於改進眾多依賴平行訓練資料的的 NLP 應用,包括低資源語言的神經機器翻譯。
未來應用
LASER 庫也可被用於其他相關任務,例如多語言語義空間可被用於對同樣語言或 LASER 支援的 93 種其他語言做句子闡述或者搜尋相似含義的句子。Facebook 表示將會繼續改進模型,增加更多的語言。
原文地址:https://code.fb.com/ai-research/laser-multilingual-sentence-embeddings/