低資源神經機器翻譯MetaNMT :來自MAML與NLP的溫柔救贖
過去十年,隨著Attention模型、LSTM、記憶Memory等等方法的出現,尤其是在神經網路的加持下,機器翻譯的水平取得了長足的進步。
在英法、中英這樣的大語種(Rich Language)翻譯任務上,機器的表現幾乎可以媲美人類的水平,甚至已經開始登堂入室,承接了不少國際大會的翻譯業務,讓人類翻譯感受到了深深的失業焦慮。
然而,神經機器翻譯(NMT)的成功往往依賴於大量高質量的雙語語料作為訓練資料。如果是蒙古語、印度語這些小語種,無法提供足夠多的雙語資料,更極端的現實情況是,有些語言幾乎沒有任何雙語預料,這種情況下NMT就無能為力了。
標註資料資源的貧乏問題,一直沒有什麼好的解決辦法。因此,來自香港大學、紐約大學的研究人員Jiatao Gu、Yong Wang等人所提出的新神經機器翻譯方法MetaNMT,論文一經發表,就憑藉在低資源神經機器翻譯(NMT)上的優異效能表現驚豔了學界,成為2018年最具影響力的NLP創新之一。
論文不僅被NLP領域領先的會議EMNLP收錄,還拿下了Facebook的低資源神經機器翻譯獎。今天,我們就來看看MetaNMT方法究竟有何過人之處?
什麼是MetaNMT演算法?
簡單來說,MetaNMT演算法就是將元學習演算法(MAML),用於低資源神經機器翻譯(NMT)中,將翻譯問題建構為元學習問題,從而解決低資源語言語料匱乏的難題。
研究人員先使用許多高資源語言(比如英語和法語),訓練出了一個表現極佳的初始引數,然後使構建一個所有語言的詞彙表。再以初始引數/模型為基礎,訓練低資源語言的翻譯(比如英語VS希伯來語,法語VS希伯來語)。在此基礎上進行進一步最佳化初始模型,最終得到的模型就可以很好地提升小語種翻譯模型的效能。
具體到實驗中,研究人員使用十八種歐洲語言所訓練的元學習策略,被應用在以五種小語種語言(Ro,Lv,Fi,Tr和Ko)為目標的任務中。結果證明,透過16000個翻譯單詞(約600個並行句子),羅馬尼亞語-英語WMT'16上實現高達22.04 BLEU。
資料顯示,MetaNMT訓練出的系統,表現要明顯優於基於多語言遷移學習。這意味著只需要一小部分的訓練樣例,我們就能訓練出效果更好的NMT系統,很多語料庫非常小的語言,機器翻譯時也不會再一籌莫展或者胡言亂語了。
NLP的神助攻:元學習強在何處?
MetaNMT之所以取得如此良好的效果,核心就在於引入的MAML(Model Agnostic Meta Learning),即與模型無關的元學習方法。
簡單來說,元學習就是要讓智慧體利用以往的知識經驗“學會如何學習”(Learning to learn),然後更高效地完成新任務。
傳統NLP任務中常用的遷移學習(transfer leaning)或多工學習(Multi-Task Learning),輸入端訓練得到的編碼器(Encoder)會直接轉化為對應的向量表示序列,直指目標任務。而MetaNMT則是透過高資源語言系統的訓練得到一個獨立於原任務的通用策略方法,再讓極低資源的語言系統根據這種學習方法,並反覆地模擬訓練。
過去,元學習一直被用來進行小樣本學習、通用機器人等訓練中,MetaNMT的提出,也是MAML第一次在NLP領域成功應用。那麼,未來隨著元學習的加入,NLP領域會產生哪些可能的變化呢?
首先,降低NLP任務的研究門檻。
深度增強學習需要的訓練資料量規模越來越大,遊戲等動態任務環境所涉及的獎勵機制也日趨複雜。在StyleGAN、BERT等“巨無霸”模型的爭奪下,GPU/TPU計算時長變得極其昂貴,NLP儼然快要成為土豪大公司才有資格玩的遊戲了。
與之相比,透過少量樣本資源就能學會新概念的元學習方法,可以只使用少量的梯度迭代步來解決新的學習任務,就顯得平易近人很多。
其次,提升NLP任務的學習效率。
傳統的資料集更新週期長,往往需要根據新任務進行改造和再編輯。而元學習就改變了這一現狀。先讓系統接觸大量的任務進行訓練,再從中學會完成新任務的方法,可以快速(只需少量步驟)高效(只使用幾個例子)地應用於廣泛的NLP任務中。
尤其是在特定領域對話系統、客服系統、多輪問答系統等任務中,在使用者的使用過程中就可以收集豐富的資訊,讓系統在動態學習中構建越來越強大的效能。
除此之外,元學習還能幫助NLP實現個性化、智慧化進階。
特定使用者可以根據已有的知識經驗和認知結構與元學習系統之間建立聯絡,透過不同個體的動態互動與資訊反饋等,元學習系統可以不斷豐富和修正自身的知識網路和輸出效果,最終使得構建個性化產品變得更加方便快捷,高智慧互動也因此成為可能。
總而言之,Few-Shot(低資源)、Fast Adaptation(高適應性)、Reusability(重用性)等特點,使得元學習的價值前所未有地清晰起來,某種程度上也代表了NLP接下來的研究方向。
道阻且長:NLP的進化之路
既然元學習之於NLP領域意義重大,為什麼直到現在才出現了一個成功案例呢?這恐怕還要從低資源型語言的研究現狀說起。
前面提到,驗證元學習系統效能最好的方式,就是將其放到低資源任務中,看看是否和大規模任務一樣出色。但這麼做有個前提,就是能夠建立起對應的資料集。然而這對稀缺資源的小語種來說,也不是件容易的事。
以MetaNMT為例,就為各個語言建立了詞彙表。其中的低資源型目標任務,土耳其語、拉脫維亞語、羅馬尼亞語、芬蘭語等等,就是透過16000個翻譯單詞(約600個並行句子)完成的,這已經是目前神經機器翻譯的極限了。
然而全世界6000多種語言中,80%人口講的都是主要的83種語言,剩下的有30%都處在語料資源極度匱乏的狀態,而且絕大多數沒有任何文字記載,有的甚至使用者不足十人。缺乏相關的資料集,往往只有少量文字可供使用,成為阻礙小語種機器翻譯最大的攔路虎。即使有元學習這樣的神兵利器,也沒有用武之地。
而近年來,情況正在發生一些積極的變化。
一方面越來越多的人開始重視瀕危語言保護問題,出現了公益化的語料收集專案和相關資料庫,大大降低了小語種的研究難度。比如南非數字語言資源中心(SADiLaR),已經能夠提供許多南非的語言資源;
另外,NLP研究的發展,也激發了更多的人建立並開放出極低資源語料資料集,為跨語言模型開發、低資源語言訓練等提供了可能性。
比如FAIR 和紐約大學的研究者合作開發的一個自然語言推斷語料庫 XNLI,將 MultiNLI 的測試集和開發集擴充套件到 15 種語言,裡面就包含了斯瓦西里語和烏爾都語等低資源語言。
目前看來,MetaNMT之所以備受褒獎,並不是因為它一出手就取得了什麼炸裂至極的效果。它的價值,更多的是作為一種靈感和理念,去傳達技術的本質,引領更具價值的理想化的創造。
NLP的進步,不應來自於堆砌資源和規模,不應只停留在本就飽和的領域,而是構建出真正無障礙的語言系統。讓說著匱乏型語言的人們,也能夠閱讀非母語的新聞,或者在遇到問題時求助於可靠的專家系統。
如果技術不去往那些真正的荒蕪之地,又有什麼意義?
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31561483/viewspace-2637285/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 微軟提出新型通用神經機器翻譯方法,挑戰低資源語言翻譯問題微軟
- NLP教程(6) - 神經機器翻譯、seq2seq與注意力機制
- 神經機器翻譯實戰
- 神奇的神經機器翻譯:從發展脈絡到未來前景(附論文資源)
- 今晚直播:非自迴歸神經機器翻譯 | PhD Talk #24
- 翻譯的未來:翻譯機器和譯後編譯編譯
- 谷歌神經網路機器翻譯NMT:人人可利用TensorFlow快速建立翻譯模型谷歌神經網路模型
- 多對多多語言神經機器翻譯的對比學習
- 【NLP】瞭解用於NLP的卷積神經網路(譯)卷積神經網路
- 從規則到神經網路:機器翻譯技術的演化之路神經網路
- 天辰的救贖(JS)第一章(救贖之地)JS
- 香港大學顧佳濤:非自迴歸神經機器翻譯 | 直播預告
- 直播實錄 | 非自迴歸神經機器翻譯 + ICLR 2018 論文解讀ICLR
- Android呼叫系統分享的坑與救贖Android
- css菜雞的自我救贖CSS
- 後疫情時代,酒店行業的掙扎與救贖!行業
- C++的救贖 C++開源程式庫評話(轉)C++
- 程式碼故事:漢德的救贖
- 第四期知識與認知圖譜:神經機器翻譯也應該嵌入「知識」
- Stupid && 祖傳Fortran程式碼救贖之路(編譯Dll)編譯
- NLP教程(3) | 神經網路與反向傳播神經網路反向傳播
- NLP教程(3) - 神經網路與反向傳播神經網路反向傳播
- 入門Python神經機器翻譯,這是一篇非常精簡的實戰指南Python
- 機器閱讀理解 / 知識庫 / 深度學習 / 對話系統 / 神經機器翻譯 | 本週值得讀深度學習
- 用強化學習做神經機器翻譯:中山大學&MSRA填補多項空白強化學習
- 微軟機器翻譯系統:中-英翻譯水平可“與人類媲美”微軟
- NLP與深度學習(二)迴圈神經網路深度學習神經網路
- 疫情之下,民宿行業的生死掙扎與自我救贖行業
- nlp中的傳統語言模型與神經語言模型模型
- 程式翻譯新突破:UC伯克利提出樹到樹的程式翻譯神經網路神經網路
- 谷歌大腦神經機器翻譯大規模實驗:尋找最優的超引數組合谷歌
- 將科幻變成現實,谷歌百度用神經機器翻譯踐行人類的「巴別塔之夢」谷歌
- NLP機器翻譯全景:從基本原理到技術實戰全解析
- 聯想開啟物聯網救贖
- 如何參與翻譯開源專案技術文件?來 Breword
- Oracle-AUL:黑夜前的最後救贖Oracle
- 天辰的救贖(JS)第二章(變數製造器)JS變數
- python書的中文翻譯資源Python