圖1.機器翻譯的發(fā)展

神經(jīng)機器翻譯始于2013年提出的Encoder-Decoder框架,在發(fā)展的過程中,大部分模型由RNN結(jié)構(gòu)組成,RNN的序列特性利于自然語言建模的同時也帶來無法高效并行化的弊端。2015年Attention概念的提出使得機器翻譯的品質(zhì)大幅度提升,2017年谷歌在此基礎(chǔ)上提出的Transformer模型成為當(dāng)今神經(jīng)機器翻譯模型的基石。

11cf8cc7ee487f249bb17edfd0ce1201.jpg

圖2.神經(jīng)機器翻譯的發(fā)展

2. Transformer結(jié)構(gòu)

Transformer的本質(zhì)是一個帶有自注意力機制的Encoder-Decoder結(jié)構(gòu),具體結(jié)構(gòu)如圖所示。從整體上看,左半部分為Encoder編碼器,右半部分為Decoder解碼器。編碼器讀取源語言句子并編碼成固定長度的向量,然后解碼器將向量解碼并生成對應(yīng)的目標(biāo)語言翻譯。

5322beede95bc5f47213ab9db3f2f51a.png

圖3.Transformer整體結(jié)構(gòu)

編碼端和解碼端分別由6層結(jié)構(gòu)相同的EncoderLayer和結(jié)構(gòu)相同的Decoder Layer堆疊而成。Encoder和Decoder之間的連接方式為:Inputs經(jīng)過各層Encoder Layer作用后的輸出序列作為Encoder的最終結(jié)果,分別輸入各層Decoder Layer。

5e1b007dc36bbb739c8ad8291560e4f6.png

圖4.Transformer編碼端解碼端整體結(jié)構(gòu)

具體每個EncoderLayer由2個sub-layers組成,依次為編碼器多頭自注意力(圖左Encoder中的self-attention)、前饋網(wǎng)絡(luò)(Feed Forward);每個DecoderLayer由3個sub-layers組成,依次為解碼器多頭自注意力(圖右Decoder中的self-attention)、編碼器解碼器多頭自注意力(Encoder-DecoderAttention)和前饋網(wǎng)絡(luò)(Feed Forward)。

192b9fee795565d788a776d1cd8f5bce.jpg

圖5.單層EncoderLayer-Decoder Layer結(jié)構(gòu)

下面將詳細(xì)介紹各個子結(jié)構(gòu)。

2.1 多頭自注意力機制

Transformer的核心在于多頭自注意力機制,分為點積注意力計算和多頭注意力兩大步驟。

(1)點積注意力

點積注意力函數(shù)有3個輸入:Q(請求(query))、K(主鍵(key))、V(數(shù)值(value))。出現(xiàn)在編碼器或解碼器中不同的注意力計算時,Q,K,V的表示也有所不同:

db17d9be3b1d99c181cf0a8ff920dd29.png

圖6.Transformer的三種自注意力

點積注意力具體計算公式如下:

5d9857692f08756645c805264d24ec30.jpg

第一步,對和的轉(zhuǎn)置進行點乘操作。此為利用點積的方式計算相關(guān)性系數(shù),表示一個序列上任意兩個位置的相關(guān)性。

第二步,通過系數(shù)

0351e6460d03b8863beac7a5b598911b.jpg

進行放縮操作,防止過大的輸入進入Softmax函數(shù)的飽和區(qū)造成梯度過小等問題。

第三步,與掩碼矩陣相加,從而對句子序列中Padding的位置屏蔽,以及解碼器自注意力中需額外對目標(biāo)語言序列未來位置的信息進行屏蔽。

第四步,使用Softmax函數(shù)對相關(guān)性矩陣在行的維度上進行歸一化操作,結(jié)果對應(yīng)中的不同位置上向量的注意力權(quán)重。

第五步,和進行矩陣乘法,即對Value加權(quán)求和。

(2)多頭注意力

3773e5080453fb2aae8b54a4e6db9189.jpg
c3070e8f9ab70750b47fd2aa28130c6b.jpg
63d72fb51bc7e712f0172f2ae4b5a41c.png

圖7.點乘注意力

2.2 前饋神經(jīng)網(wǎng)絡(luò)

該網(wǎng)絡(luò)獨立且相同的應(yīng)用于每個編碼層及解碼層的最后一個子層,包含兩個線性變換,中間有一個ReLU激活函數(shù)。

2.3 殘差正則化

為防止梯度消失或者梯度爆炸并加快模型收斂,在每個子層均使用殘差鏈接和層歸一化操作:( + ())

2.4 位置編碼

為捕捉句子序列的位置順序信息,將編碼端輸入的InputEmbedding、解碼端輸入的OutputEmbedding均與位置編碼的對應(yīng)位置嵌入相加。

0cbb649de02ab6072428f5785f5ff69a.jpg

其中為位置,為維度。

以上是對Transformer結(jié)構(gòu)的介紹。

2.5 創(chuàng)新點總結(jié)

Transformer的創(chuàng)新點在于提出的自注意力機制。

第一,不采用RNN和CNN的結(jié)構(gòu),具有并行運算的能力,體現(xiàn)在編碼器的所有詞向量以矩陣的形式并行進行注意力計算,改進了此前RNN最被人詬病的訓(xùn)練慢的缺點。

第二,在計算復(fù)雜度方面,Self-Attention層將所有位置連接到恒定數(shù)量的順序操作,而循環(huán)層需要O(n) 順序操作。 對于每層復(fù)雜度,當(dāng)序列長度n 小于表示維度d 時,自注意力層比循環(huán)層快。

表1.不同圖層類型最大路徑長度、復(fù)雜度、最少順序操作數(shù)對比表

3c11d2f5cd06e9c3ec6b5a1b93bfb5a4.png

其中,n為序列的長度,d為表示的維度,k為卷積的核的大小,r為受限self-attention中鄰域大小.

第三,多頭自注意力機制使得Transformer可以學(xué)習(xí)到豐富的上下文信息。由于自注意力的計算直接將句子中任意兩個單詞的關(guān)系通過同一種操作(Query和Key的相關(guān)度)處理,將信息傳遞的距離拉近為1,所以可以更好的捕獲遠距離依賴的特征,如:同一個句子中單詞之間的句法特征,包含指代關(guān)系的語義特征等。同時,多頭機制將模型分為多個頭,分別在不同的表示子空間學(xué)習(xí),使得模型在各個子空間關(guān)注不同方面的信息,有的頭可以捕捉句法信息,有頭可以捕捉詞法信息,最后綜合得到更豐富全面的信息。

9a7e90bbdc55d58c68f4a3dcf77a11d5.png

圖8.捕捉語法信息

bdaded4f0c8dd26485e2187f5bb9e3b7.png

圖9.捕捉語義信息

另一方面,Transformer可以增加到非常深的深度,使得表層的詞法信息隨著模型的逐步加深組合為更加抽象的語義信息。Transformer充分發(fā)掘DNN模型的特性,為模型準(zhǔn)確率帶來提升,這也是其性能優(yōu)越的原因之一。

二、百分點科技智能翻譯實踐

1. 產(chǎn)品邏輯架構(gòu)

246de7a086cea043eb968c669a220438.png

圖10.產(chǎn)品邏輯架構(gòu)圖

下面詳細(xì)闡述各個邏輯層及其子層。

1.1 語料倉庫

該層包括語料收集、語料清洗、質(zhì)量評測、語料入庫四個子層次。其中:

語料收集:機器翻譯模型的效果同訓(xùn)練語料數(shù)量成正相關(guān)。為了充分發(fā)掘自有數(shù)據(jù)的價值,并靈活應(yīng)對未來的個性化挑戰(zhàn),我們必須持續(xù)收集各類語料庫。百分點科技在國內(nèi)外多語言輿情分析、文本分析、機器翻譯的項目中,積累了大量的多語言語料,為機器翻譯的效果奠定了堅實的數(shù)據(jù)基礎(chǔ)。

語料清洗:語料清洗是舉足輕重的關(guān)鍵步驟,它決定著一個好的模型訓(xùn)練難易程度,也是決定特定領(lǐng)域模型效果好壞的又一重大因素。語料質(zhì)量越高模型翻譯效果越好。對收集來的語料要經(jīng)過諸如長度失衡處理、雜質(zhì)識別去除、語種識別、標(biāo)點符號對齊等步驟處理。

質(zhì)量評測:為使模型效果更專業(yè)、更符合特定領(lǐng)域場景。我們需要質(zhì)量評測來選取高質(zhì)量語料作為模型訓(xùn)練數(shù)據(jù)。對于清洗好的語料要進行質(zhì)量評測,便于優(yōu)化調(diào)整語料清洗步驟,通常這些評測手段包括:詞法分析、句法分析、SMT校驗以及人工校驗等。

語料入庫:為適應(yīng)特定領(lǐng)域語言規(guī)律的發(fā)現(xiàn)、規(guī)則的制訂與挖掘、語言知識的發(fā)現(xiàn)等深層次研究,需要質(zhì)量評估合格的語料錄入到數(shù)據(jù)庫中,便于后續(xù)對語料進行智能檢索、版本管理、多維分類、質(zhì)量評級等多種操作。

1.2 模型工程

模型工程是翻譯系統(tǒng)的核心處理功能。包括主流語言翻譯模型的構(gòu)建、訓(xùn)練及針對特定問題的優(yōu)化。

主流語言翻譯:為滿足各大領(lǐng)域?qū)Ψ墙Y(jié)構(gòu)化文檔數(shù)據(jù)的高質(zhì)量翻譯要求,我們構(gòu)建先進的深度神經(jīng)網(wǎng)絡(luò)Transformer結(jié)構(gòu)作為翻譯模型,并通過回譯等方式提升翻譯效果。模型效果的提升,也是翻譯產(chǎn)品專業(yè)化的保證。

小語種翻譯:在各類翻譯場景中,也存在對小語種的需求,對此我們的解決方式是:無監(jiān)督學(xué)習(xí)方法、跨語言學(xué)習(xí)翻譯等。

特定問題優(yōu)化:為適應(yīng)特定領(lǐng)域場景,我們需要針對性優(yōu)化翻譯模型效果。對這些特定問題歸類,解決方式如:實體校正、術(shù)語干預(yù)、數(shù)詞量詞校正、漏譯補全等。

速度優(yōu)化:為更廣范圍地獲取最新態(tài)勢,及時響應(yīng)特定領(lǐng)域場景翻譯需求,我們需要對模型翻譯進行速度優(yōu)化。優(yōu)化包括如:減少浮點數(shù)精度,模型壓縮等。

1.3 服務(wù)架構(gòu)

在應(yīng)用服務(wù)部署的方式上,我們采用Nginx+ Tornado + RabbitMQ,簡單快速部署模型。在對外訪問接口的方式上,我們采用RESTAPI提供高效、標(biāo)準(zhǔn)的服務(wù)調(diào)用方式。接口按照協(xié)議類型來看,可以包括但不限于HTTP。

1.4 功能應(yīng)用

功能應(yīng)用即客戶終端,這里將客戶終端劃分為翻譯終端和管理終端。翻譯終端為用戶(游客、注冊用戶)提供文本及文檔翻譯服務(wù);管理終端為注冊用戶提供詞庫管理、句庫管理、任務(wù)管理、工具箱、權(quán)限管理等相應(yīng)服務(wù)。

2. 語料搜集及處理

2.1 語料搜集及產(chǎn)生來源

訓(xùn)練語料是模型的基礎(chǔ),此外翻譯模型效果還依賴于語料的質(zhì)量和分布,因此我們在語料收集階段在保證語料規(guī)模的同時平衡經(jīng)濟、政治、科技、生活、文化等各大領(lǐng)域的比例,使訓(xùn)練語料盡可能覆蓋實際使用中的語言場景。

語料收集渠道包括:

除了獲取全世界互聯(lián)網(wǎng)上開放的語料庫資源,開發(fā)團隊設(shè)計一種從電子文檔中的單邊語料構(gòu)建領(lǐng)域平行語料的模型與工具,可較為高效地構(gòu)建高質(zhì)量的行業(yè)領(lǐng)域平行語料支撐模型訓(xùn)練。百分點認(rèn)知智能實驗室團隊提出通過給譯文分類的方式學(xué)習(xí)語義相似性:給定一對雙語文本輸入,設(shè)計一個可以返回表示各種自然語言關(guān)系(包括相似性和相關(guān)性)的編碼模型。利用這種方式,模型訓(xùn)練時間大大減少,同時還能保證雙語語義相似度分類的性能。由此,實現(xiàn)快速的雙語文本自動對齊,構(gòu)建十億級平行語料。

2.2 語料對齊和管理

在語料庫建設(shè)過程中,需要充分利用自然語言處理以及相關(guān)技術(shù)開發(fā)語料庫自動加工工具,提高語料庫對齊建設(shè)效率,提升平行語料質(zhì)量,提高語料庫規(guī)模。

百分點智能翻譯系統(tǒng),可以對語料進行全流程科學(xué)管理,從而支撐模型的本地化、個性化訓(xùn)練和升級,及時提高翻譯效果。

語料庫自動加工工具系統(tǒng)涵蓋從語料的OCR、轉(zhuǎn)換、清洗、對齊、校對、標(biāo)簽、管理、檢索、分析、訓(xùn)練等多個子系統(tǒng)。

2.3 語料處理

神經(jīng)機器翻譯需要大量的訓(xùn)練語料,這些語料來源范圍廣,格式種類多,所以數(shù)據(jù)處理的第一步是將不同來源不同格式的數(shù)據(jù)統(tǒng)一處理,合并多源數(shù)據(jù)。

與統(tǒng)計機器翻譯一樣,神經(jīng)機器翻譯也需要對輸入和輸出的句子進行分詞,目的是得到翻譯的最基本單元。但是,這里所說的單詞并不是語言學(xué)上的單詞,更多的是指面向機器翻譯任務(wù)的最小翻譯片段。

自然語言的表達非常豐富,因此需要很多的單詞才能表達不同的語義。但是,神經(jīng)機器翻譯系統(tǒng)對大詞表的處理效率很低,比如,輸出層在大規(guī)模詞表上進行預(yù)測會有明顯的速度下降,甚至無法進行計算。因此,在神經(jīng)機器翻譯中會使用受限的詞表,比如包含30000-50000個單詞的詞表。另一方面,翻譯新的句子時,受限詞表會帶來大量的未登錄詞(Outof Vocabulary Word,OOV Word),系統(tǒng)無法對其進行翻譯。產(chǎn)生未登錄詞一方面的原因是詞表大小受限,另一方面的原因在于分詞的顆粒度過大。對于后者,一種解決方法是進一步對“單詞”進行切分,以得到更小的單元,這樣可以大大緩解單詞顆粒度過大造成的數(shù)據(jù)稀疏問題。這個過程通常被稱作子詞切分(Sub-wordSegmentation)。以BPE為代表的子詞切分方法已經(jīng)成為了當(dāng)今神經(jīng)機器翻譯所使用的標(biāo)準(zhǔn)方法,翻譯效果顯著超越基于傳統(tǒng)分詞的系統(tǒng)。

此外,機器翻譯依賴高質(zhì)量的訓(xùn)練數(shù)據(jù)。在神經(jīng)機器翻譯時代,模型對訓(xùn)練數(shù)據(jù)很敏感。由于神經(jīng)機器翻譯的模型較為復(fù)雜,因此數(shù)據(jù)中的噪聲會對翻譯系統(tǒng)產(chǎn)生較大的影響。特別是在實際應(yīng)用中,數(shù)據(jù)的來源繁雜,質(zhì)量參差不齊。因此,往往需要對原始的訓(xùn)練集進行標(biāo)準(zhǔn)化(Normalization)和數(shù)據(jù)清洗(DadaCleaning),從而獲得高質(zhì)量的雙語數(shù)據(jù)用于模型訓(xùn)練。

以上這些內(nèi)容統(tǒng)稱為數(shù)據(jù)處理。下圖展示了百分點智能翻譯系統(tǒng)數(shù)據(jù)處理流程,主要步驟包括分詞、標(biāo)準(zhǔn)化、數(shù)據(jù)過濾和子詞切分。

f498e36a7dab9f1648d1c6380282c56e.jpg

圖11.機器翻譯數(shù)據(jù)處理流程

3. 模型訓(xùn)練

Transformer的訓(xùn)練流程:首先對模型進行初始化,然后在編碼器輸入包含結(jié)束符的源語言單詞序列。解碼端每個位置單詞的預(yù)測都要依賴已經(jīng)生成的序列。在解碼端輸入包含起始符號的目標(biāo)語序列,通過起始符號預(yù)測目標(biāo)語的第一個單詞,用真實的目標(biāo)語的第一個單詞去預(yù)測第二個單詞,以此類推,然后用真實的目標(biāo)語序列和預(yù)測的結(jié)果比較,計算它的損失。Transformer使用了交叉熵?fù)p失(CrossEntropy Loss)函數(shù),損失越小說明模型的預(yù)測越接近真實輸出。然后利用反向傳播來調(diào)整模型中的參數(shù)。由于Transformer將任意時刻輸入信息之間的距離拉近為1,摒棄了RNN中每一個時刻的計算都要基于前一時刻的計算這種具有時序性的訓(xùn)練方式,因此Transformer中訓(xùn)練的不同位置可以并行化訓(xùn)練,大大提高了訓(xùn)練效率。

需要注意的是,Transformer包含很多工程方面的技巧。首先,在訓(xùn)練優(yōu)化器方面,需要注意以下幾點:Transformer使用Adam優(yōu)化器優(yōu)化參數(shù);Transformer在學(xué)習(xí)率中同樣應(yīng)用了學(xué)習(xí)率預(yù)熱(Warm_up)策略。

另外,Transformer為了提高模型訓(xùn)練的效率和性能,還進行了以下幾方面的操作:

小批量訓(xùn)練(Mini-batchTraining):每次使用一定數(shù)量的樣本進行訓(xùn)練,即每次從樣本中選擇一小部分?jǐn)?shù)據(jù)進行訓(xùn)練。這種方法的收斂較快,同時易于提高設(shè)備的利用率。每一個批次中的句子并不是隨機選擇的,模型通常會根據(jù)句子長度進行排序,選取長度相近的句子組成一個批次。這樣做可以減少padding數(shù)量,提高訓(xùn)練效率。

Dropout:由于Transformer模型網(wǎng)絡(luò)結(jié)構(gòu)較為復(fù)雜,會導(dǎo)致過度擬合訓(xùn)練數(shù)據(jù),從而對未見數(shù)據(jù)的預(yù)測結(jié)果變差。這種現(xiàn)象也被稱作過擬合(OverFitting)。為了避免這種現(xiàn)象,Transformer加入了Dropout操作。Transformer中這四個地方用到了Dropout:詞嵌入和位置編碼、殘差連接、注意力操作和前饋神經(jīng)網(wǎng)絡(luò)。

標(biāo)簽平滑(LabelSmoothing):在計算損失的過程中,需要用預(yù)測概率去擬合真實概率。在分類任務(wù)中,往往使用One-hot向量代表真實概率,即真實答案位置那一維對應(yīng)的概率為1,其余維為0,而擬合這種概率分布會造成兩個問題:

因此Transformer里引入標(biāo)簽平滑來緩解這種現(xiàn)象,簡單的說就是給正確答案以外的類別分配一定的概率,而不是采用非0即1的概率。這樣,可以學(xué)習(xí)一個比較平滑的概率分布,從而提升泛化能力。

4. 翻譯效果

4.1 低資源翻譯優(yōu)化

機器翻譯依賴于大量高質(zhì)量的平行語料,然而對于小語種,存在數(shù)據(jù)量小,平行語料難以搜集問題。針對數(shù)據(jù)稀疏問題,百分點科技使用了回譯來進行語料擴充,進而提高翻譯效果。以日中模型為例,通過回譯方法,將原有的3308萬平行語料擴充到6700萬語料左右,然后再訓(xùn)練。通過此種方式,中日方向bleu較通過英文作為中間語言方式提升了10.4,日中方向bleu提升了12.5,對比結(jié)果如下表。

表2.兩個方向BLEU和公司A對比表

57550934ab53b83219dd3bc973c79e71.jpg

4.2 術(shù)語翻譯優(yōu)化

翻譯過程中,越來越多的筆譯工作者選擇調(diào)用和參考機器翻譯結(jié)果,并在機翻譯文的基礎(chǔ)上進行編輯修改。這種新型翻譯模式就是MTPE(機器翻譯+譯后編輯),能夠有效提升翻譯效率。不過,常有譯員被機翻譯文里不準(zhǔn)確的術(shù)語翻譯“拖了后腿”。每當(dāng)發(fā)現(xiàn)機翻譯文與給定術(shù)語、常用譯法或?qū)S忻~不一致時,譯員都要花費大量時間手動查找替換,十分麻煩。

術(shù)語干預(yù)功能可以提高公司名稱、品牌名稱、行業(yè)縮寫等術(shù)語機翻結(jié)果的準(zhǔn)確度,減輕譯者手動填充術(shù)語的負(fù)擔(dān)。機器翻譯+術(shù)語干預(yù)的翻譯新模式有效確保了譯文表達的一致性,大大提升了譯員和審校的工作效率和翻譯質(zhì)量。

百分點智能翻譯系統(tǒng)對文檔內(nèi)縮略語動態(tài)提取,然后以縮略語+全稱形式翻譯出來,效果如下圖:

1da84ce4e73296a5447b191f876996c2.png

圖12.百分點智能翻譯系統(tǒng)縮略語翻譯示例圖

4.3 百分點翻譯效果

表3.百分點智能翻譯系統(tǒng)評測BLEU得分表

fb9246353046ee77c1496c4a490813bc.png

5. 翻譯特色

百分點智能翻譯系統(tǒng)經(jīng)過迭代打磨,積累了以下6大特色:

三、結(jié)束語

機器翻譯算法發(fā)展非???,隨著全球信息交流的加快,要求翻譯形態(tài)更趨于多元化,人們對于翻譯效果要求越來越高。百分點科技將在機器翻譯效果優(yōu)化上持續(xù)發(fā)力,嘗試融合語音、圖像的多模態(tài)翻譯、元學(xué)習(xí)、遷移學(xué)習(xí)等方法,追蹤前沿技術(shù),踐行用認(rèn)知智能技術(shù)服務(wù)社會發(fā)展的使命。

參考資料

[1]Sutskever I, Vinyals O, Le Q V. Sequence to sequence learning with neuralnetworks[C]//Advances in neural information processing systems. 2014.

[2]Dzmitry Bahdanau, Kyunghyun Cho, and Yoshua Bengio. Neural machine translationby jointly learning to align and translate. CoRR, abs/1409.0473, 2014.

[3]Cho K, Van Merri?nboer B, Gulcehre C, et al. Learning phrase representationsusing RNN encoder-decoder for statistical machine translation[J]. arXiv, 2014.

[4]Yonghui Wu, Mike Schuster, Zhifeng Chen, Quoc V Le, Mohammad Norouzi, WolfgangMacherey, Maxim Krikun, Yuan Cao, Qin Gao, Klaus Macherey, et al. Google’sneural machine translation system: Bridging the gap between human and machinetranslation. arXiv preprint arXiv:1609.08144, 2016.

[5]Jonas Gehring, Michael Auli, David Grangier, Denis Yarats, and Yann N. Dauphin.Convolutional sequence to sequence learning. arXiv preprint arXiv:1705.03122v2,2017.

[6]Ashish Vaswani, Noam Shazeer, Niki Parmar,Jakob Uszkoreit, Llion Jones, Aidan N Gomez, L ukasz Kaiser, and IlliaPolosukhin. Attention is all you need. In Advances in neural informationprocessing systems, pages 5998–6008, 2017.

[7]肖桐, 朱靖波. 機器翻譯統(tǒng)計建模與深度學(xué)習(xí)方法.

[8]Vaswani A , Shazeer N , Parmar N , et al.Attention Is All You Need[J]. arXiv, 2017.

分享到

xiesc

相關(guān)推薦