滴滴翻譯技術探索與實踐

桔妹導讀:機器翻譯系統是使用深度學習技術從其支持的語言中翻譯大量文本的服務。服務將 "源" 文本從一種語言轉換爲不一樣的 "目標" 語言。滴滴做爲一家國際化的公司,不管是在國際化網約車中仍是司乘溝通都有着豐富的落地場景。本文詳細的介紹了滴滴翻譯的總體框架、原理以及方法,同時還會簡單介紹滴滴NLP在今年參加的機器翻譯大賽(WMT2020)的一些技術。html




1. 
背景
‍‍‍‍

機器翻譯系統是使用深度學習技術從其支持的語言中翻譯大量文本的服務。服務將 "源" 文本從一種語言轉換爲不一樣的 "目標" 語言。算法


機器翻譯技術背後的概念和使用它的接口相對簡單,但背後的技術是極其複雜的,並聚集了一些前沿技術,特別是深度機器學習、大數據、語言學、GPU加速計算等。api


大規模商業化使用的機器翻譯主要經歷了SMT與NMT階段:安全



1.1 統計機器翻譯(SMT)

機器翻譯行業使用的比較早的技術是統計機器翻譯 (SMT)。SMT採用統計分析方法,根據源語言的語境,利用已有的雙語語料學習到的短語翻譯知識,將源語言的分隔片斷短語轉化爲對應的目標短語,最後利用語言模型估計出一個句子的最佳可能譯文。SMT也是最先商用的機器翻譯系統。

統計機器翻譯結構


1.2 神經機器翻譯(NMT)

神經機器翻譯是利用深度神經網絡將源句子進行編碼,再進行解碼翻譯爲目標語言。2016年,Google發表GNMT[1],改變了SMT的地位,使翻譯技術發生了根本性的轉變,自此進入NMT時代,而且有了如今更高的翻譯質量。微信


神經機器翻譯結構



1.3 SMT與NMT的相同點

  • 二者都須要大量的標註數據(人類翻譯內容 )來訓練翻譯系統。網絡

  • 二者不能用作雙語字典。翻譯是基於潛在翻譯列表翻譯單詞,並根據句子中使用的單詞的上下文進行翻譯。app




2. 
評價指標 (BLEU)

對於機器翻譯的結果,能夠採用人工評估的方法,可是比較受限。首先是人工評估具備必定的主觀性,其次每次訓練結果須要人工評估成本較高。框架


所以誕生了一些使用機器進行評估的方法,評測關鍵就在於如何定義翻譯譯文與參考譯文 (Reference) 之間的類似度。目前比較經常使用的方法爲BLEU[2] (Bilingual Evaluation Understudy),該方法由IBM提出,BLEU採用的方式是比較並統計共現的n-gram詞的個數,即統計同時出如今翻譯譯文和參考譯文中的n元詞的個數,最後把匹配到的n元詞的數目除以翻譯譯文的單詞數目,通過幾何平均以及短句懲罰獲得評測結果。這種方法的打分越高,則認爲翻譯系統的譯文越接近人工翻譯結果,即機器翻譯系統的翻譯質量越高。如下爲標準的BLEU score的計算公式。機器學習





3. 
Transformer

3.1 簡介


目前NMT的基本上都是Encoder(源端語言編碼)- Decoder(目標語言解碼)框架,應用普遍的是transformer[3]模型。Transformer的編碼器 Encoder由6個相同的編碼疊加而成,Encoder中的每層包含2個子層:multi-head self-attention 和 FFN(Feed-Forward Network)。解碼器 Decoder 也是由6個相同的編碼疊加而成,每層包含3個子層:masked multi-head attention、multi-head attention 和 FFN。Transformer結構參考下圖:工具

 



3.2 Transformer With Relative Position Representations


傳統的Transformer經過將絕對位置嵌入做爲輸入的方式利用位置信息,這種方式並未在其結構中明確捕獲信息。Shaw[4] 等人提出了將Transformer中的注意力機制和相對位置表達結合起來,而且在兩個翻譯任務上取得了比較好的翻譯效果。咱們進行了消融研究,發現具備相對位置嵌入的模型比傳統的模型具備更快的收斂性和更好的性能。



3.3 Transformer with Larger FFN Size


在實際翻譯模型中,採用了更大的FFN size (8,192 or 15,000)。而且在實驗中發現,在可控的網絡大小的同時,模型的性能有了合理的提高。因爲更大的FFN size容易過擬合,咱們將dropout rate設置爲0.3。



4. 
滴滴翻譯實踐
滴滴翻譯主要以 Transformer-big (6 layers encoder & decoder, hidden size: 1,024, FFN size: 4,096, number of heads: 16) 結構做爲基礎模型,在此模型之上進行一系列的優化。如下爲滴滴翻譯總體框架圖:

滴滴翻譯總體框架圖
 

4.1 數據準備


在機器翻譯任務中,最重要部分就是對齊的雙語語料,即須要原文與參考譯文這種成對的雙語數據。一般狀況下,網絡上存在的大都是單語語料。因此在任務開始以前,最主要的工做就是準備平行語料。


在滴滴翻譯任務中,數據採集框架示意圖以下圖所示。


數據採集框架示意圖[5]


數據準備工做主要分兩大部分:


4.1.1 數據過濾


滴滴翻譯會經過數據預處理pipeline在網絡上收集原始的平行語料。對語言對使用 language model, alignment model[5] 進行打分,對於分數較低的語言對直接過濾,不參與後續的訓練


4.1.2 數據加強


訓練 NMT 模型須要大量的平行語料。可是,平行語料相對於網絡上常見的大量單語數據要有限地多。Edunov[6] 等人在相關研究中展現瞭如何經過僅利用目標語言來提高模型的翻譯性能,而且代表利用大量的相關數據能夠大幅提高模型準確度。

經過單語語料提高模型效果的最有效的方法就是back translation,假設目標是訓練一箇中譯英模型,要利用back translation,須要先訓練一個英譯中的模型,利用該模型將全部的單語目標語言(英語)翻譯爲中文得到新的平行語料,而後將該語料應用到中譯英模型上。


在實際應用中,滴滴翻譯採用了迭代式回譯技術,以提升平行語料的質量。具體而言,在每次迭代中,目標語言到源語言模型負責使用目標語言單語數據爲源語言到目標語言模型生成平行訓練數據。同時,使用源語言到目標語言模型來使用源語言單語言數據爲目標語言到源語言模型生成平行訓練數據。目標語言到源語言模型和源語言到目標語言模型的性能均可以迭代地進一步提升。當沒法實現進一步的改進時將中止迭代。


回譯技術示意圖


4.2 模型訓練


4.2.1 交替知識蒸餾


滴滴翻譯採用了交替知識蒸餾和迭代集成,以進一步提升單個模型的性能。滴滴翻譯使用集成模型做爲教師模型,並經過數據加強來提高單學生模型的效果。考慮到較差的老師模型會下降學生模型的效果,因此咱們採用的是集成模型的方式訓練學生模型。假設訓練好三個單模型 (A, B, C) 以後,使用單模型A&B ensemble生成平行語料指導C模型的訓練,同理使用迭代方式對三個學生模型進行蒸餾學習以達到最好的單模型效果。


4.2.2 Fine-tuning


在滴滴國際化消息翻譯場景中,得到相關的翻譯平行語料,利用fine-tuning的方式能夠將base model快速的遷移到新領域,而且能夠達到較高的模型效果。


4.2.3 Ensemble


模型集成是常見的提升模型效果的方案,該方案能夠利用各個單模型的優點已達到最好的效果。在機器翻譯的實踐中,模型集成在序列預測的每一個步驟中,將不一樣模型的目標詞表的所有機率分佈組合在一塊兒進行投票。在初始模型較多的狀況下,滴滴翻譯使用greedy search的方式選擇最優的單模型組合。


因爲模型和數據的多樣性是集成模型的重要因素,咱們採用了不一樣的初始化種子,不一樣的參數,不一樣的Transformer變種和不一樣的訓練數據集來訓練各個單模型。



4.3 模型預測


4.3.1 模型訓練與模型部署的區別


部署階段的網絡權值已經固定,無需反向傳播過程

  • 模型固定,能夠對計算圖進行優化 (TensorRT會對一些網絡層進行合併計算)

  • 推斷過程可使用低精度的技術,能夠加速推斷,並減少模型大小。(FP32 -> FP16 Quantization)


4.3.2 模型預測加速


TensorRT是NVIDIA推出的深度學習優化加速工具,採用的原理以下圖所示:


TensorRT示意圖

針對網絡複雜,推理速度慢的問題,滴滴翻譯將Transformer模型改形成支持TensorRT加速推理的框架。在實踐中基於TensorRT框架的推理速度相較於原生TensorFlow模型提高了9倍。




5. 
WMT2020 機器翻譯比賽

WMT (Workshop on Machine Translation) 是機器翻譯領域承認度最高的國際頂級評測比賽,是由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器翻譯大賽。從2006年創辦至今,每一年都會吸引包括微軟、Facebook、DeepMind、百度、華爲、騰訊、清華大學、上海交通大學、約翰霍普金斯大學、劍橋大學、愛丁堡大學等全球企業、科研機構以及頂級高校的參與。每次比賽都是各家機器翻譯實力的大比拼,也見證了行業機器翻譯技術的不斷進步。


滴滴NLP團隊參與的是WMT2020新聞機器翻譯賽道(Shared Task: Machine Translation of News)。該賽道共設置了22項不一樣語言之間的翻譯任務,其中,中文到英文翻譯是競爭最激烈的任務,共吸引了DeepMind、騰訊、華爲、清華大學、上海交通大學等四十多支全球參賽團隊參與,在6月24日至6月30日爲期七天的比賽時間裏,參賽團隊累計共提交了近300次數據。


與往年不一樣,今年新聞中譯英比賽參賽方均爲匿名提交,比賽期間只能看到本身成績以及其餘匿名參賽方成績,而且每一個參賽方最多能夠提交7次翻譯結果,比賽結束後各參賽方不可再次提交,各參賽方從全部提交中選擇其中一個提交結果做爲Primary Submission供人工評估使用。


WMT組委會爲每一個語言賽道提供指定的雙語的訓練集以及單語語料。參賽方能夠根據本身的模型利用相關的訓練集。比賽開始後組委會提供的單語的測試集 (Source),參賽方利用本身的模型對測試集的語言進行預測,而後提交至OCELoT系統。組委會利用SacreBLEU1指標對參賽方提交的譯文與組委會未公開的標準答案 (Reference) 進行計算,分數越高表明翻譯效果越好。


在本次中譯英賽道中,滴滴NLP團隊在技術上以Transformer結構做爲基礎,在結構上引入Self-Attention, Relative Positional Attention, Larger FFN Size等變化,利用迭代式回譯技術 (Iterative Back-translation) 和交替知識蒸餾 (Alternate Knowledge Distillation) 方法生成高質量的合成語料,結合數據清洗、數據選擇、模型集成等技術提升翻譯質量。考慮到翻譯話題對於翻譯質量的影響,滴滴翻譯還採用了領域遷移、話題挖掘和個性化加權的方式,使得翻譯結果更加個性化。此外,咱們還經過EDA、權重剪枝等技術加強翻譯模型的魯棒性。最終滴滴翻譯高效準確的進行完成WMT2020中譯英賽道翻譯任務,而且最早得到36.6的高分,最終得到第三名的成績,充分彰顯了滴滴在機器翻譯領域的技術實力。


BLEU指標評估排名前十的參賽團隊


相關研究Paper已經提交至EMNLP2020 Workshop,具體Paper能夠參考arXiv( https://arxiv.org/abs/2010.08185)



參考連接:
  1. Wu, Yonghui, et al. "Google's neural machine translation system: Bridging the gap between human and machine translation." arXiv preprint arXiv:1609.08144 (2016).

  2. Papineni, Kishore, et al. "BLEU: a method for automatic evaluation of machine translation." Proceedings of the 40th annual meeting of the Association for Computational Linguistics. 2002.

  3. Vaswani, Ashish, et al. "Attention is all you need." Advances in neural information processing systems. 2017.

  4. Shaw, Peter, Jakob Uszkoreit, and Ashish Vaswani. "Self-attention with relative position representations." arXiv preprint arXiv:1803.02155 (2018).

  5. Zhang, Boliang, Ajay Nagesh, and Kevin Knight. "Parallel Corpus Filtering via Pre-trained Language Models." arXiv preprint arXiv:2005.06166 (2020).

  6. Edunov, Sergey, et al. "Understanding back-translation at scale." arXiv preprint arXiv:1808.09381 (2018).



本文做者


2016年2月份加入滴滴,目前擔任滴滴NLP團隊負責人,主要負責滴滴NLP在客服智能化、國際化網約車、內容安全、中臺服務等場景的相關算法研究與落地。今年帶領團隊首次參加機器翻譯大賽(WMT2020)並得到機器評估世界第三名的成績。



團隊招聘


滴滴智能中臺集結了中臺產品技術、AI能力和體驗平臺技術,致力於爲集團各業務線提供行業領先的專業服務,當前已沉澱了帳號、支付、計價、觸達、IOT、體驗等核心中臺能力;AI技術已深刻應用於安全、智能運營、智能客服、智能駕駛等場景;持續經過搭建客服及體驗平臺等技術手段,提高用戶體驗問題的解決效率。能中臺是一支專業、多元、高效、務實的團隊,堅持用技術賦能出行領域,力爭成爲業內多快好省的中臺標杆。


滴滴NLP團隊基於滴滴的海量出行場景構建模型,支持滴滴內部基礎NLP服務,包括情感分析、機器翻譯、情緒識別、文本分類、語義搜索等十幾個基礎NLP能力,目前已經爲公司內數十個團隊提供基礎的NLP服務。


團隊長期招聘高級NLP算法工程師,團隊內學習氛圍濃厚,能夠將前沿技術快速應用到業務場景,爲業務賦能。包括但不限於:小樣本學習、遷移學習、對抗學習、強化學習在天然語言場景的應用。歡迎感興趣的小夥伴加入,可投遞簡歷至 diditech@didiglobal.com,郵件請郵件主題請命名爲「姓名-應聘部門-應聘方向」。



掃碼瞭解更多崗位




延伸閱讀

內容編輯 | Charlotte
聯繫咱們 | DiDiTech@didiglobal.com
   

本文分享自微信公衆號 - 滴滴技術(didi_tech)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索