1. 程式人生 > >讓AI觸類旁通93種語言:Facebook推出跨語言句嵌入,搞定小語種

讓AI觸類旁通93種語言:Facebook推出跨語言句嵌入,搞定小語種

搞定一種語言之後,是不是很希望演算法能在近百種語言上無縫遷移?

AI真能無師自通,對於我們這些“因為語言不通而分散在各處”的人們來說,簡直是天大的福音。

新鮮出爐的Facebook“多語種句嵌入”,就是這樣一種“神器”。他們提出了一種新架構,為橫跨34個語族、28種不同文字寫成的的93種語言,學習了統一的聯合多語種句嵌入。

舉個例子,只要用標註好的英語資料訓練一個分類器演算法,教會它判斷一個英語句子是不是少兒不宜,就可以無縫遷移到其他語言上,不管你是豪薩語、韃靼語還是漢語粵方言,它都能判斷有沒有少兒不宜。

能一下子準備好接受這麼多種語言,是怎麼做到的呢?

我們來看一下這個系統的架構:

 

讓AI觸類旁通93種語言:Facebook推出跨語言句嵌入,搞定小語種

 

 

它由編碼器(encoder)、解碼器(decoder)兩大部分組成。其中,編碼器是個無關語種的BiLSTM,負責構建句嵌入,這些句嵌入接下來會通過線性變來換初始化LSTM解碼器。

為了讓這樣一對編碼器、解碼器能處理所有語言,還有個小條件:編碼器最好不知道輸入的究竟是什麼語言,這樣才能學會獨立於語種的表示。所以,還要從所有輸入語料中學習出一個“位元對嵌入詞庫”(BPE)。

不過,解碼器又有著完全相反的需求:它得知道輸入的究竟是什麼語言,才能得出相應的輸出。於是,Facebook就為解碼器附加了一項輸入:語言ID,也就是上圖的Lid。

訓練這樣一個系統,Facebook用了16個英偉達V100 GPU,將batch size設定為12.8萬個token,花5天時間訓練了17個週期。

架構說起來不算複雜,效果怎麼樣呢?

 

讓AI觸類旁通93種語言:Facebook推出跨語言句嵌入,搞定小語種

 

 

用包含14種語言的跨語種自然語言推斷資料集(cross-lingual natural language inference,簡稱XNLI)來測試,這種多語種句嵌入(上圖的Proposed method)零資料(Zero-Shot) 遷移成績,在其中13種語言上都創造了新紀錄,只有西班牙語例外。

另外,Facebook用其他任務測試了這個系統,包括ML-Doc資料集上的分類任務、BUCC雙語文字資料探勘。他們還在收集了眾多外語學習者翻譯例句的Tatoeba資料集基礎上,製造了一個122種語言對齊句子的測試集,來證明自家演算法在多語言相似度搜索任務上的能力。