機器之心原創作者:虞喵喵
9 月 28 日,Google 在 Research Blog 中介紹其神經網絡機器翻譯系統(GNMT)進展,譯文質量的大幅提升引發業內極大關注。據稱,在雙語評估者的幫助下,通過對維基百科和新聞網站的例句測定,在多個樣本的翻譯中谷歌神經網絡機器翻譯系統將錯誤降低了 55-85%甚至更多。
翻譯質量對比,來自 Google Research Blog
即便如此,網友發現其翻譯效果雖有顯著提升,但仍未避免將「我想下班」翻譯為「I want to work」等低級錯誤(第二天已被修復)。
事實上百度的在線翻譯系統,一年前就應用了基於神經網絡的翻譯方法(NMT)。去年百度曾在 ACL 會議上發表論文《Multi-Task Learning for Multiple Language Translation》,探討用 NMT 技術解決多語言翻譯及語料稀疏的問題。該論文得到業內研究人員的極大關注,並被 ACL2016 的 NMT Tutorial 列為研究方向。Google 和 Bengio 的研究團隊都在此論文的基礎上進一步擴展了研究。
為此,機器之心專訪百度自然語言處理部技術負責人吳華、高級總監吳甜,就神經網絡機器翻譯系統的優缺點、如何獲得高質量訓練數據及百度翻譯目前進展展開話題。同時也藉此機會了解百度自然語言處理部及其開展的 NLP 技術研發工作。以下為採訪內容整理,以饗讀者。
NMT、SMT 的優與缺
機器之心:能請您先介紹一下百度 NLP 部門嗎?
答:百度 NLP 部門在公司內部是具有較長歷史的部門,從最初搜索誕生時,就已經有 NLP 方面的工作。2010 年,百度正式成立自然語言處理部。現在,這個團隊人員構成非常多元,有自然語言處理、機器學習、信息檢索、數據挖掘、機器翻譯等多領域的專業性人才,擅長工程實踐和擅長科學研究的人才都能夠在團隊中發揮重要作用。同時,架構開發、前端開發、客戶端等軟體開發和硬體開發工程師,產品設計及語言學專業人才也是團隊的重要組成部分。
整個部門的大方向有幾個。第一是為百度的眾多產品提供最基礎的、NLP 模型算法,包括百度所有產品都在用的分詞算法、專名識別、詞性分析、語義理解、篇章理解等等一些基礎的一些工具。目前 NLP 部門為整個公司提供一個大型平臺 NLP 雲,未來這個平臺也會對公司外有所開放,目前(這個平臺)每天都有千億量級的調動量。還有貼近應用的一些大型的應用系統,比如說深度問答系統。NLP 開發的深度問答系統在百度的搜索產品上,會有一些直接展示。比如在搜尋引擎中提出一個問題,用戶可以不需要打開網頁,直觀的得到答案。
第二大方向是語義理解,實際上從最初期開始,NLP 就一直在致力於這樣的一個方向。在原來的搜索時代,會分析用戶的搜索 Query 含義是什麼。到今天新的產品形態產生之後,已經不僅僅是分析搜索的意圖。越來越多的用戶會開始嘗試有上下文的、更積極的交互方式,這就需要有上下文的理解。
第三個方向是對話系統。對話系統就是讓機器能像人一樣,和用戶有對話性質的交互。NLP 過去幾年一直在積累相應的技術,通過對話引導讓用戶和機器人能一句一句的交流下去。這部分實際上已經應用在百度的度秘產品中。
第四個就是機器翻譯。百度在機器翻譯上已有 6 年的積累,每天有大量用戶使用線上機器翻譯產品,翻譯 API 也有很多外部的企業開發者在使用。從 2014 年開始,百度嘗試做基於神經網絡的翻譯系統,正式上線發布時間要早於 Google 一年。並且我們在發布的同時,還開發了離線版本,可以在手機上使用。
還有一些是更前瞻的探索。比如小度機器人。機器人能看、能寫、能聽,和人相比它還需要一個特別重要的能力就是思考。思考的前提,是先能聽得懂語言。所以從 NLP 角度來說,更多的是希望機器人能懂語言、理解語言,然後能夠跟人交流。那這款小度機器人,過去的幾年也有頻繁的亮相。
領導百度 NLP 工作的百度副總裁王海峰博士,已於近日當選 ACL Fellow
機器之心:谷歌最近發布了神經網絡翻譯系統,我們怎麼看這個系統?
答:Google 發布的系統綜合了 NMT(Neural Machine Translation,神經機器翻譯)領域近年來的研究成果。其所使用的 Seq2Seq 翻譯模型、Attention 機制、以及深層 LSTM,在此前已有 Bengio 團隊等多篇論文提及,從 Google 發布的論文的參考文獻中可以看到。
此外,Google 針對大數據和深層模型的訓練,進行了諸多工程方面的優化。例如,其使用了自身研發的針對深度學習的計算機器—TPU,加速了訓練和解碼。
機器之心:那麼百度是否有相關的研究?
答:百度在這方面的研究起步很早,成果也非常多。而且,我們的神經網絡翻譯系統早在 2015 年 5 月就正式上線發布了。
我們從 2014 年開始便嘗試做基於神經網絡的翻譯系統,2015 年發布在線翻譯系統的時,BLEU(Bilingual Evaluation Understudy)指標已經比傳統的 SMT(統計機器翻譯)系統高六、七個點。我們同時還開發了離線版本,可以在手機上使用,
當時學術界對於深度學習的翻譯方法到底是否實用還有一番爭論,我們很早就發現基於 Attention 機制的 Seq2Seq 深度學習模型是有用的,經過多次實驗驗證,在很多集合上超過了傳統方法。同時,針對 NMT 本身存在的一些問題,進行了技術攻關,短短 3 個月的時間便完成了開發和上線。當大家還在討論 Attention 機制時,我們已經結合了原有的統計方法上線。可以說,百度翻譯是全球首個網際網路神經網絡翻譯系統。
機器之心:NMT(基於神經網絡的翻譯系統)效果就真的好於 SMT(基於統計的翻譯系統)嗎?或者說他會在哪個方面會好於 SMT 呢?
答:機器翻譯目前是兩大流派,一大流派是統計翻譯模型(SMT),在整個業界已經持續了 20 多年的研究。另一個就是基於神經網絡的翻譯模型(NMT),過去的兩年發展比較迅速。
從很多公開的評測上能看出,基於神經網絡的翻譯系統已經取得了比以前系統更好的成績。這兩大翻譯系統我們一直在向前推進研究。總體上來說,基於神經網絡的翻譯系統,在長句翻譯上有明顯優勢。
機器之心:可以從技術角度具體解釋下嗎?
答:從整體看,在數據訓練比較充分,比如有大數據集的時候,NMT 效果是好於 SMT 的。一句英文翻譯成一句中文,這算一個句對。如果中文和英文之間的雙語語料對有很多,那麼 NMT 整體上好於 SMT。
原因就在於,SMT 以前用的都是局部信息,處理單位是句子切開以後的短語,最後解碼時將幾個短語聯繫在一起,並沒有充分利用全局信息。NMT 則利用全局信息,整個句子的信息解碼後,才生成結果。這就是它的優勢,也是其在流暢性上更勝一籌的原因。
再進一步,翻譯有一個很重要部分是「語序調整」。比如中文會把所有的定語都放在中心詞前面,英文則會把修飾中心詞的介詞短語放在後面,機器常混淆這個順序。NMT 在語序學習上的優勢也帶來了它翻譯的流暢性。
而 SMT 在短句或者數據較小的情況下,優勢較為明顯。以成語翻譯為例,實際上不是意譯而是直譯,必須在語料庫中有對應內容才能翻譯出來。NMT 的翻譯過程決定了其有時不能很好的處理這類問題。
如今網際網路用戶的需求是多種多樣的。翻譯涉及口語、簡歷、新聞等多領域,一種方法很難滿足所有的需求。因此現在百度的翻譯系統中包含了 SMT、NMT,甚至還有傳統的 EBMT。所以,一個線上服務的翻譯系統,其實是綜合的系統。
不過從整個大趨勢看,隨著神經網絡技術的進一步發展,它會越來越成為主流。目前在我們的中、英、日、韓等多個系統中,它就是主流。
機器之心:那麼能否通過不斷增加網絡層數來提升 NMT 效果?
答:在網絡層數的增加過程中,成本、複雜度也隨之提升。並不是線性地增加網絡層數,收益比就更高,我們會去繼續研究,但並不代表不斷增加層數就一定是好方法。
就翻譯本身這個任務,現在有兩大問題造成翻譯效果不好。一是在於,訓練語料本身是有噪音的,我們花費了大量時間和精力研究怎樣找到更好的訓練語料,怎樣清洗出更好的語料。第二個是模型本身的不完美性,我們會不斷優化。這兩大方面的工作都是我們的重點。
獲取數據與解決語料稀疏問題
機器之心:剛才有提到 NMT 是非常依賴數據規模的,以及訓練語料中的噪音問題,如何獲得高質量的訓練數據?
答:我們能獲取的語料很多,比如網絡上存在的大量翻譯句對,但這些數據存在三個問題。
第一個在於它們可能是機器翻譯產生的語料。因為機器翻譯技術已經比較普及,尤其是醫療方面有大量的機器翻譯產生的語料。由於國外的醫療研究比國內先進,很多人會藉助機器翻譯技術來看文檔。而這種語料若進入語料庫,翻譯系統學出來的還是機器翻譯的句子。
第二種噪聲是來自於惡搞。比如我們最早的時候看到「how old are you」,翻譯成「怎麼老是你」。因為語料裡面「how old are you」,全是「怎麼老是你」,出現頻次非常高。
第三種是翻譯得不地道的。網際網路上翻譯內容的人不一定是翻譯水平很高的人,他們在翻譯文章時會自己加入一些內容。這種是比較難識別的,因為很零散。
針對每一類噪聲,我們都會建立一個不同的質量檢測模型,結合了翻譯自身的技術以及網際網路技術。機器翻譯的語料是不能用機器翻譯的概率特徵過濾的,比如「how old are you」每個對齊,怎麼(how)老(old)是(are)你(you),翻譯得特別完美肯定無法過濾。所以我們一般從網站本身的權威性著手,對於權威性低的,相應高置信度就要打低。此外,我們還通過識別翻譯特徵判斷其是否為機器翻譯語料,比如:流暢性不好、語序不對等等。
機器之心:不同語言的語料規模的差別較大,英語可能會多一些,小語種會少一些。如何將 NMT 的研究成果,應用於不同語言語料的構建中?
答:這其實是語料稀疏問題。語料稀疏是 NLP 一直在面對的問題,以前有一些解決方案,比如說: Transfer Learning(轉移性學習)、機器翻譯的 Pivot-Language(樞軸語言)技術、標籤傳播等技術。從一種語言翻譯到另外一種語言,即使同一種語言在不同領域的語料也是不一樣的,從這個領域遷移到另外一個領域,都需要解決語料的構建問題。
NMT 是可以應用於此的,因為 NMT 本質是把一種語言翻譯成另外一種語言。它的好處在於,不同語言之間可以互相學習他們的語義表示,比如中文的「看」,和英文的「See」(看見)或者「Read」(看書)。以相似度來計算,相似度高的就認為它們擁有同樣的語義,可以用在不同語言的標註上。
用來解決語料稀疏問題的多任務學習框架,來自《Multi-Task Learning for Multiple Language Translation》
這樣說可能有些抽象,舉例來說我們去年在 NLP 領域國際會議 ACL 上發表了一篇文章,講述用 NMT 解決語料稀疏的問題。中文和英文之間的句對很多,但中文和其他語言如日文、泰文、西班牙文的句對就很少。怎麼辦?我們同時學習。中文翻譯成英文、日文、韓文、泰語的句對都一起學習,這樣就能充分利用中文在源語言端的表示。此外,還學習關聯知識,韓語-日語之間結構類似,從日語中學習到的結構性信息適用於韓語翻譯。
後來 Bengio 團隊還在我們論文的基礎上做了類似的工作,他們在我們的研究基礎上擴展成多(語言)對多(語言),其實思想是類似的。後來他們還把這個工作開源了。
機器翻譯能否取代人工翻譯?
機器之心:很多人可能就會問,人工翻譯會不會被機器取代?您怎麼看這個想法?
答:從很長一段時間來看,完全取代還是不太可能的。
現在基於網際網路大數據的機器翻譯的優勢在於,突破了原來編輯規則的局限。與人工翻譯相比的好處是能迅速翻譯很多語言。同時它解決了一些問題,比如幾個場景:出門旅遊的溝通、寫 E-mail 借鑑機器翻譯用詞、小孩利用機器翻譯擴充詞彙。這種形式解決了用戶的一些問題,也達到了實用的程度。
但是翻譯最終的目標是「信、達、雅」,「信」至少是忠於原文,「達」就是譯文通暢,符合目標語言用語習慣,「雅」是在這個基礎上表達生動、形象。尤其在「雅」上,目前機器翻譯遠遠不夠。
就像我們說英文,能說但不一定達到「達」的標準。「達」的意思是用語非常「native」(地道),我想機器翻譯也沒到。更不用說「雅」,即使人工翻譯也只有少數人能達到雅的標準。
機器之心:達到「信、達、雅」的關鍵是什麼?
答:主要是語義理解問題。我們現在的翻譯方法,沒有做到「理解」。深度學習只是在模式識別這個手段上更加高明一點,但還沒有理解語言。
與專業的人工翻譯相比,機器翻譯有很多不足。首先,機器翻譯是以句子為單位,即使是篇章翻譯也是不看上下文,翻譯完一句算一句。人工翻譯是以篇章為單位,翻譯前要先通讀一遍,抓住意境和主旨。
其次,翻譯需要常識背景。口語交流、會議翻譯、隨意聊天、正式作文等所需的文體是不同的,而同一個詞在不同的文體上翻譯也不同,這也是機器翻譯的缺點。尤其是意譯,比如翻譯詩歌。如果沒有知識背景,將中國的詩翻譯成英文就會顯得直白而沒有韻味。跨語言的「信、達、雅」,連人都很難做到。
事實上,機器翻譯需要綜合多學科,包括計算機學、語言學、認知學等等。機器翻譯,看似簡單,實則很難。因此我認為,機器翻譯的道路還任重道遠。