溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

百分點(diǎn)技術(shù)干貨分享,萬(wàn)字長(zhǎng)文深度解讀機(jī)器翻譯

發(fā)布時(shí)間:2020-08-11 23:24:54 來(lái)源:ITPUB博客 閱讀:185 作者:思動(dòng)大數(shù)據(jù) 欄目:互聯(lián)網(wǎng)科技

編者按

“機(jī)器翻譯是如何煉成的(上)”的文章中,我們回顧了機(jī)器翻譯的發(fā)展史。在本篇文章中,我們將分享機(jī)器翻譯系統(tǒng)的理論算法和技術(shù)實(shí)踐,講解神經(jīng)機(jī)器翻譯具體是如何煉成的。讀完本文,您將了解:

· 神經(jīng)機(jī)器翻譯模型如何進(jìn)化并發(fā)展成令NLP研究者萬(wàn)眾矚目的Transformer模型;

· 基于Transformer模型,我們?nèi)绾未蛟旃I(yè)級(jí)的神經(jīng)機(jī)器翻譯系統(tǒng)。


2013年~2014年不溫不火的自然語(yǔ)言處理(NLP)領(lǐng)域發(fā)生了翻天覆地的變化,因?yàn)楣雀璐竽X的Mikolov等人提出了大規(guī)模的詞嵌入技術(shù)word2vec,RNN、CNN等深度網(wǎng)絡(luò)也開(kāi)始應(yīng)用于NLP的各項(xiàng)任務(wù),全世界NLP研究者歡欣鼓舞、躍躍欲試,準(zhǔn)備告別令人煎熬的平淡期,開(kāi)啟一個(gè)屬于NLP的新時(shí)代。

在這兩年機(jī)器翻譯領(lǐng)域同樣發(fā)生了“The Big Bang”。2013年牛津大學(xué)Nal Kalchbrenner和Phil Blunsom提出端到端神經(jīng)機(jī)器翻譯(Encoder-Decoder模型),2014年谷歌公司的Ilya Sutskerver等人將LSTM引入到Encoder-Decoder模型中。這兩件事標(biāo)志著以神經(jīng)網(wǎng)絡(luò)作為基礎(chǔ)的機(jī)器翻譯,開(kāi)始全面超越此前以統(tǒng)計(jì)模型為基礎(chǔ)的統(tǒng)計(jì)機(jī)器翻譯(SMT),并快速成為在線翻譯系統(tǒng)的主流標(biāo)配。2016年谷歌部署神經(jīng)機(jī)器翻譯系統(tǒng)(GNMT)之后,當(dāng)時(shí)網(wǎng)上有一句廣為流傳的話:“作為一個(gè)翻譯,看到這個(gè)新聞的時(shí)候,我理解了18世紀(jì)紡織工人看到蒸汽機(jī)時(shí)的憂慮與恐懼?!?/p>

2015年注意力機(jī)制和基于記憶的神經(jīng)網(wǎng)絡(luò)緩解了Encoder-Decoder模型的信息表示瓶頸,是神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯優(yōu)于經(jīng)典的基于短語(yǔ)的機(jī)器翻譯的關(guān)鍵。2017年谷歌Ashish Vaswani等人參考注意力機(jī)制提出了基于自注意力機(jī)制的Transformer模型,Transformer家族至今依然在NLP的各項(xiàng)任務(wù)保持最佳效果??偨Y(jié)近十年NMT的發(fā)展主要?dú)v經(jīng)三個(gè)階段:一般的編碼器-解碼器模型(Encoder-Decoder)、注意力機(jī)制模型、Transformer模型。

下文將逐步深入解析這三個(gè)階段的NMT,文中少量的數(shù)學(xué)公式和概念定義可能充滿“機(jī)械感”,如果您在閱讀過(guò)程感到十分費(fèi)勁,那煩請(qǐng)您直接閱讀第4部分,了解百分點(diǎn)如何打造自己的工業(yè)級(jí)NMT系統(tǒng)。

01 新的曙光:Encoder-Decoder模型

上文已經(jīng)提到在2013年提出的這種端到端的機(jī)器翻譯模型。一個(gè)自然語(yǔ)言的句子可被視作一個(gè)時(shí)間序列數(shù)據(jù),類(lèi)似LSTM、GRU等循環(huán)神經(jīng)網(wǎng)絡(luò)比較適于處理有時(shí)間順序的序列數(shù)據(jù)。如果假設(shè)把源語(yǔ)言和目標(biāo)語(yǔ)言都視作一個(gè)獨(dú)立的時(shí)間序列數(shù)據(jù),那么機(jī)器翻譯就是一個(gè)序列生成任務(wù),如何實(shí)現(xiàn)一個(gè)序列生成任務(wù)呢?一般以循環(huán)神經(jīng)網(wǎng)絡(luò)為基礎(chǔ)的編碼器-解碼器模型框架(亦稱(chēng)Sequence to Sequence,簡(jiǎn)稱(chēng)Seq2Seq)來(lái)做序列生成,Seq2Seq模型包括兩個(gè)子模型:一個(gè)編碼器和一個(gè)解碼器,編碼器、解碼器是各自獨(dú)立的循環(huán)神經(jīng)網(wǎng)絡(luò),該模型可將給定的一個(gè)源語(yǔ)言句子,首先使用一個(gè)編碼器將其映射為一個(gè)連續(xù)、稠密的向量,然后再使用一個(gè)解碼器將該向量轉(zhuǎn)化為一個(gè)目標(biāo)語(yǔ)言句子。

編碼器Encoder對(duì)輸入的源語(yǔ)言句子進(jìn)行編碼,通過(guò)非線性變換轉(zhuǎn)化為中間語(yǔ)義表示C:

百分點(diǎn)技術(shù)干貨分享,萬(wàn)字長(zhǎng)文深度解讀機(jī)器翻譯

在第i時(shí)刻解碼器Decoder根據(jù)句子編碼器輸出的中間語(yǔ)義表示C和之前已經(jīng)生成的歷史信息y?,y?,……,y?-?來(lái)生成下一個(gè)目標(biāo)語(yǔ)言的單詞:

百分點(diǎn)技術(shù)干貨分享,萬(wàn)字長(zhǎng)文深度解讀機(jī)器翻譯
百分點(diǎn)技術(shù)干貨分享,萬(wàn)字長(zhǎng)文深度解讀機(jī)器翻譯

每個(gè)y?都依次這么產(chǎn)生,即seq2seq模型就是根據(jù)輸入源語(yǔ)言句子生成了目標(biāo)語(yǔ)言句子的翻譯模型。源語(yǔ)言與目標(biāo)語(yǔ)言的句子雖然語(yǔ)言、語(yǔ)序不一樣,但具有相同的語(yǔ)義,Encoder在將源語(yǔ)言句子濃縮成一個(gè)嵌入空間的向量C后,Decoder能利用隱含在該向量中的語(yǔ)義信息來(lái)重新生成具有相同語(yǔ)義的目標(biāo)語(yǔ)言句子??偠灾?,Seq2Seq神經(jīng)翻譯模型可模擬人類(lèi)做翻譯的兩個(gè)主要過(guò)程:

  • 編碼器Encoder解譯來(lái)源文字的文意;
  • 解碼器Decoder重新編譯該文意至目標(biāo)語(yǔ)言。

02 突破飛躍:注意力機(jī)制模型

2.1. Seq2Seq模型的局限性

Seq2Seq模型的一個(gè)重要假設(shè)是編碼器可把輸入句子的語(yǔ)義全都?jí)嚎s成一個(gè)固定維度的語(yǔ)義向量,解碼器利用該向量的信息就能重新生成具有相同意義但不同語(yǔ)言的句子。由于隨著輸入句子長(zhǎng)度的增加編解碼器的性能急劇下降,以一個(gè)固定維度中間語(yǔ)義向量作為編碼器輸出會(huì)丟失很多細(xì)節(jié)信息,因此循環(huán)神經(jīng)網(wǎng)絡(luò)難以處理輸入的長(zhǎng)句子,一般的Seq2Seq模型存在信息表示的瓶頸。

一般的Seq2Seq模型把源語(yǔ)句跟目標(biāo)語(yǔ)句分開(kāi)進(jìn)行處理,不能直接地建模源語(yǔ)句跟目標(biāo)語(yǔ)句之間的關(guān)系。那么如何解決這種局限性呢?2015年Bahdanau等人發(fā)表論文首次把注意機(jī)制應(yīng)用到聯(lián)合翻譯和對(duì)齊單詞中,解決了Seq2Seq的瓶頸問(wèn)題。注意力機(jī)制可計(jì)算目標(biāo)詞與每個(gè)源語(yǔ)詞之間的關(guān)系,從而直接建模源語(yǔ)句與目標(biāo)語(yǔ)句之間的關(guān)系。注意力機(jī)制又是什么神器,可讓NMT一戰(zhàn)成名決勝機(jī)器翻譯競(jìng)賽呢?

2.2. 注意力機(jī)制的一般原理

百分點(diǎn)技術(shù)干貨分享,萬(wàn)字長(zhǎng)文深度解讀機(jī)器翻譯

通俗地解釋?zhuān)跀?shù)據(jù)庫(kù)里一般用主鍵Key唯一地標(biāo)識(shí)某一條數(shù)據(jù)記錄Value,訪問(wèn)某一條數(shù)據(jù)記錄的時(shí)候可查詢(xún)語(yǔ)句Query搜索與查詢(xún)條件匹配的主鍵Key并取出其中的數(shù)據(jù)Value。注意力機(jī)制類(lèi)似該思路,是一種軟尋址的概念:假設(shè)數(shù)據(jù)按照<Key, Value>存儲(chǔ),計(jì)算所有的主鍵Key與某一個(gè)查詢(xún)條件Query的匹配程度,作為權(quán)重值再分別與各條數(shù)據(jù)Value做加權(quán)和作為查詢(xún)的結(jié)果,該結(jié)果即注意力。因此,注意力機(jī)制的一般原理(參考上圖):首先,將源語(yǔ)句中的構(gòu)成元素想象成是由一系列的<Key, Value>數(shù)據(jù)對(duì)構(gòu)成,目標(biāo)語(yǔ)句由一序列元素Query構(gòu)成;然后給定目標(biāo)語(yǔ)句中的某個(gè)元素Query,通過(guò)計(jì)算Query和各個(gè)Key的相似性或者相關(guān)性,得到每個(gè)Key對(duì)應(yīng)Value的權(quán)重系數(shù);最后,可對(duì)Value進(jìn)行加權(quán),即得到最終的Attention數(shù)值。因此,本質(zhì)上注意力機(jī)制是對(duì)源語(yǔ)句中元素的Value值進(jìn)行加權(quán)求和,而Query和Key用來(lái)計(jì)算對(duì)應(yīng)Value的權(quán)重系數(shù)。一般性計(jì)算公式為:

百分點(diǎn)技術(shù)干貨分享,萬(wàn)字長(zhǎng)文深度解讀機(jī)器翻譯

在機(jī)器翻譯中Seq2Seq模型一般是由多個(gè)LSTM/GRU等RNN層疊起來(lái)。2016年9月谷歌發(fā)布神經(jīng)機(jī)器翻譯系統(tǒng)GNMT,采用Seq2Seq+注意力機(jī)制的模型框架,編碼器網(wǎng)絡(luò)和解碼器網(wǎng)絡(luò)都具有8層LSTM隱層,編碼器的輸出通過(guò)注意力機(jī)制加權(quán)平均后輸入到解碼器的各個(gè)LSTM隱層,最后連接softmax層輸出每個(gè)目標(biāo)語(yǔ)言詞典的每個(gè)詞的概率。

GNMT如何計(jì)算讓性能大幅提升的注意力呢?假設(shè)(X,Y)為平行語(yǔ)料的任一組源語(yǔ)句-目標(biāo)語(yǔ)句對(duì),則:

  • 源語(yǔ)句長(zhǎng)度為M的字符串:
百分點(diǎn)技術(shù)干貨分享,萬(wàn)字長(zhǎng)文深度解讀機(jī)器翻譯
  • 目標(biāo)語(yǔ)句長(zhǎng)度為N的字符串:
百分點(diǎn)技術(shù)干貨分享,萬(wàn)字長(zhǎng)文深度解讀機(jī)器翻譯
  • 編碼器輸出d維向量作為h的編碼:
百分點(diǎn)技術(shù)干貨分享,萬(wàn)字長(zhǎng)文深度解讀機(jī)器翻譯

利用貝葉斯定理,句子對(duì)的條件概率:

百分點(diǎn)技術(shù)干貨分享,萬(wàn)字長(zhǎng)文深度解讀機(jī)器翻譯

解碼時(shí)解碼器在時(shí)間點(diǎn)i根據(jù)編碼器輸出的編碼和前i-1個(gè)解碼器輸出,最大化P(Y|X)可求得目標(biāo)詞。

GNMT注意力機(jī)制實(shí)際的計(jì)算步驟如下:

百分點(diǎn)技術(shù)干貨分享,萬(wàn)字長(zhǎng)文深度解讀機(jī)器翻譯
百分點(diǎn)技術(shù)干貨分享,萬(wàn)字長(zhǎng)文深度解讀機(jī)器翻譯

讀到這里,您也許開(kāi)始倦意十足,甚至唾棄本文不知所云。請(qǐng)多給點(diǎn)耐心閱讀,因?yàn)橹链思?dòng)人心的時(shí)刻才開(kāi)始:文章的主角Transformer(變形金剛)同學(xué)出場(chǎng)了!

百分點(diǎn)技術(shù)干貨分享,萬(wàn)字長(zhǎng)文深度解讀機(jī)器翻譯

03 高光時(shí)刻:基于自注意力機(jī)制的Transformer模型

第2部分我們提到基于seq2seq+注意力機(jī)制比一般的seq2seq的模型架構(gòu)取得了更好的效果,那么這種組合有什么缺點(diǎn)呢?事實(shí)上循環(huán)神經(jīng)網(wǎng)絡(luò)存在著一個(gè)困擾研究者已久的問(wèn)題:無(wú)法有效地平行運(yùn)算,但不久研究者就等來(lái)了福音。2017年6月Transformer模型橫空問(wèn)世,當(dāng)時(shí)谷歌在發(fā)表的一篇論文《Attention Is All You Need》里參考了注意力機(jī)制,提出了自注意力機(jī)制(self-attention)及新的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)——Transformer。該模型具有以下優(yōu)點(diǎn):

  • 傳統(tǒng)的Seq2Seq模型以RNN為主,制約了GPU的訓(xùn)練速度,Transformer模型是一個(gè)完全不用RNN和CNN的可并行機(jī)制計(jì)算注意力的模型;
  • Transformer改進(jìn)了RNN最被人詬病的訓(xùn)練慢的缺點(diǎn),利用self-attention機(jī)制實(shí)現(xiàn)快速并行計(jì)算,并且Transformer可以增加到非常深的深度,充分發(fā)掘DNN模型的特性,提升模型準(zhǔn)確率。

下面我們深入解析Transformer模型架構(gòu)。

3.1. Transformer模型架構(gòu)

Transformer模型本質(zhì)上也是一個(gè)Seq2Seq模型,由編碼器、解碼器和它們之間的連接層組成,如下圖所示。在原文中介紹的“The Transformer”編碼器:編碼器Encoder由N=6個(gè)完全相同的編碼層Encoder layer堆疊而成,每一層都有兩個(gè)子層。第一個(gè)子層是一個(gè)Multi-Head Attention機(jī)制,第二個(gè)子層是一個(gè)簡(jiǎn)單的、位置完全連接的前饋網(wǎng)絡(luò)Feed-Forward Network。我們對(duì)每個(gè)子層再采用一個(gè)殘差連接Residualconnection,接著進(jìn)行層標(biāo)準(zhǔn)化Layer Normalization。每個(gè)子層的輸出是LayerNorm(x+Sublayer(x)),其中Sublayer(x)是由子層本身實(shí)現(xiàn)的函數(shù)。

“The Transformer”解碼器:解碼器Decoder同樣由N=6個(gè)完全相同的解碼層Decoder Layer堆疊而成。除了與每個(gè)編碼器層中的相同兩個(gè)子層之外,解碼器還插入第三個(gè)子層(Encoder-Decoder Attention層),該層對(duì)編碼器堆棧的輸出執(zhí)行Multi-HeadAttention。與編碼器類(lèi)似,我們?cè)诿總€(gè)子層再采用殘差連接,然后進(jìn)行層標(biāo)準(zhǔn)化。

Transformer模型計(jì)算attention的方式有三種:

  • 編碼器自注意力,每一個(gè)Encoder都有Multi-Head Attention層;
  • 解碼器自注意力,每一個(gè)Decoder都有Masked Multi-Head Attention層;
  • 編碼器-解碼器注意力,每一個(gè)Decoder都有一個(gè)Encoder-Decoder Attention,過(guò)程和過(guò)去的seq2seq+attention的模型相似。
百分點(diǎn)技術(shù)干貨分享,萬(wàn)字長(zhǎng)文深度解讀機(jī)器翻譯

3.2.自注意力機(jī)制

Transformer模型的核心思想就是自注意力機(jī)制(self-attention),能注意輸入序列的不同位置以計(jì)算該序列的表示的能力。自注意力機(jī)制顧名思義指的不是源語(yǔ)句和目標(biāo)語(yǔ)句之間的注意力機(jī)制,而是同一個(gè)語(yǔ)句內(nèi)部元素之間發(fā)生的注意力機(jī)制。而在計(jì)算一般Seq2Seq模型中的注意力以Decoder的輸出作為查詢(xún)向量q,Encoder的輸出序列作為鍵向量k、值向量v,Attention機(jī)制發(fā)生在目標(biāo)語(yǔ)句的元素和源語(yǔ)句中的所有元素之間。

自注意力機(jī)制的計(jì)算過(guò)程是將Encoder或Decoder的輸入序列的每個(gè)位置的向量通過(guò)3個(gè)線性轉(zhuǎn)換分別變成3個(gè)向量:查詢(xún)向量q、鍵向量k、值向量v,并將每個(gè)位置的q拿去跟序列中其他位置的k做匹配,算出匹配程度后利用softmax層取得介于0到1之間的權(quán)重值,并以此權(quán)重跟每個(gè)位置的v作加權(quán)平均,最后取得該位置的輸出向量z。下面介紹self-attention的計(jì)算方法。

?可縮放的點(diǎn)積注意力

百分點(diǎn)技術(shù)干貨分享,萬(wàn)字長(zhǎng)文深度解讀機(jī)器翻譯

可縮放的點(diǎn)積注意力即如何使用向量來(lái)計(jì)算自注意力,通過(guò)四個(gè)步驟來(lái)計(jì)算自注意力:

  1. 從每個(gè)編碼器的輸入向量(每個(gè)單詞的詞向量)中生成三個(gè)向量:查詢(xún)向量q、鍵向量k、值向量v。矩陣運(yùn)算中這三個(gè)向量是通過(guò)編解碼器輸入X與三個(gè)權(quán)重矩陣W??、W?、W?相乘創(chuàng)建的。
  2. 計(jì)算得分。圖示例子輸入一個(gè)句子“Thinking Machine”,第一個(gè)詞“Thinking”計(jì)算自注意力向量,需將輸入句子中的每個(gè)單詞對(duì)“Thinking”打分。分?jǐn)?shù)決定了在編碼單詞“Thinking”的過(guò)程中有多重視句子的其它部分。分?jǐn)?shù)是通過(guò)打分單詞(所有輸入句子的單詞)的鍵向量k與“Thinking”的查詢(xún)向量q相點(diǎn)積來(lái)計(jì)算的。比如,第一個(gè)分?jǐn)?shù)是q?和k?的點(diǎn)積,第二個(gè)分?jǐn)?shù)是q?和k?的點(diǎn)積。
  3. 縮放求和:將分?jǐn)?shù)乘以縮放因子1/√d? (d?是鍵向量的維數(shù)d?=64)讓梯度更穩(wěn)定,然后通過(guò)softmax傳遞結(jié)果。softmax的作用是使所有單詞的分?jǐn)?shù)歸一化,得到的分?jǐn)?shù)都是正值且和為1。softmax分?jǐn)?shù)決定了每個(gè)單詞對(duì)編碼當(dāng)下位置(“Thinking”)的貢獻(xiàn)。
  4. 將每個(gè)值向量v乘以softmax分?jǐn)?shù),希望關(guān)注語(yǔ)義上相關(guān)的單詞,并弱化不相關(guān)的單詞。對(duì)加權(quán)值向量求和,然后即得到自注意力層在該位置的輸出z?。

因此,可縮放的點(diǎn)積注意力可通過(guò)下面公式計(jì)算:

百分點(diǎn)技術(shù)干貨分享,萬(wàn)字長(zhǎng)文深度解讀機(jī)器翻譯

在實(shí)際中,注意力計(jì)算是以矩陣形式完成的,以便算得更快。那我們接下來(lái)就看看如何用通過(guò)矩陣運(yùn)算實(shí)現(xiàn)自注意力機(jī)制的。

首先求取查詢(xún)向量矩陣Q、鍵向量矩陣K和值向量矩陣V,通過(guò)權(quán)重矩陣W??、W?、W?與輸入矩陣X相乘得到;同樣求取任意一個(gè)單詞的得分是通過(guò)它的鍵向量k與所有單詞的查詢(xún)向量q相點(diǎn)積來(lái)計(jì)算的,那么我們可以把所有單詞的鍵向量k的轉(zhuǎn)置組成一個(gè)鍵向量矩陣K?,把所有單詞的查詢(xún)向量q組合在一起成為查詢(xún)向量矩陣Q,這兩個(gè)矩陣相乘得到注意力得分矩陣A=QK?;然后,對(duì)注意力得分矩陣A求softmax得到歸一化的得分矩陣A^,這個(gè)矩陣在左乘以值向量矩陣V得到輸出矩陣Z。

百分點(diǎn)技術(shù)干貨分享,萬(wàn)字長(zhǎng)文深度解讀機(jī)器翻譯

?多頭注意力

百分點(diǎn)技術(shù)干貨分享,萬(wàn)字長(zhǎng)文深度解讀機(jī)器翻譯

如果只計(jì)算一個(gè)attention,很難捕捉輸入句中所有空間的信息,為了優(yōu)化模型,原論文中提出了一個(gè)新穎的做法——Multi-Head Attention。Multi-Head Attention是不能只用嵌入向量維度d(model)的K,Q,V做單一attention,而是把K,Q,V線性投射到不同空間h次,分別變成維度dq,d?,d?再各自做attention。

其中,dq=d?=d?=d(model)/h=64就是投射到h個(gè)Head上。Multi-Head Attention允許模型的不同表示子空間聯(lián)合關(guān)注不同位置的信息,如果只有一個(gè)attention Head則它的平均值會(huì)削弱這個(gè)信息。

Multi-Head Attention為每個(gè)Head保持獨(dú)立的查詢(xún)/鍵/值權(quán)重矩陣W???、W??、W??,從而產(chǎn)生不同的查詢(xún)/鍵/值矩陣(Q?、K?、V?)。用X乘以W???、W??、W??矩陣來(lái)產(chǎn)生查詢(xún)/鍵/值矩陣Q?、K?、V?。與上述相同的自注意力計(jì)算,只需八次不同的權(quán)重矩陣運(yùn)算可得到八個(gè)不同的Z?矩陣,每一組都代表將輸入文字的隱向量投射到不同空間。最后把這8個(gè)矩陣拼在一起,通過(guò)乘上一個(gè)權(quán)重矩陣W?,還原成一個(gè)輸出矩陣Z。

Multi-Head Attention的每個(gè)Head到底關(guān)注句子中什么信息呢?不同的注意力的Head集中在哪里?以下面這兩句話為例“The animal didn’t crossthe street because it was too tired”和“The animal didn’t cross the street because it was too wide”,兩個(gè)句子中"it"指的是什么呢?“it"指的是"street”,還是“animal”?當(dāng)我們編碼“it”一詞時(shí),it的注意力集中在“animal”上和“street”上,從某種意義上說(shuō),模型對(duì)“it”一詞的表達(dá)在某種程度上是“animal”和“street”的代表,但是在不用語(yǔ)義下,第一句的it更強(qiáng)烈地指向animal,第二句的it更強(qiáng)烈的指向street。

3.3.Transformer模型其他結(jié)構(gòu)

?殘差連接與歸一化

編解碼器有一種特別的結(jié)構(gòu):Multi-HeadAttention的輸出接到Feed-forward layer之間有一個(gè)子層:residual connection和layer normalization(LN),即殘差連接與層歸一化。殘差連接是構(gòu)建一種新的殘差結(jié)構(gòu),將輸出改寫(xiě)為和輸入的殘差,使得模型在訓(xùn)練時(shí),微小的變化可以被注意到,該方法在計(jì)算機(jī)視覺(jué)常用。

在把數(shù)據(jù)送入激活函數(shù)之前需進(jìn)行歸一化,因?yàn)槲覀儾幌M斎霐?shù)據(jù)落在激活函數(shù)的飽和區(qū)。LN是在深度學(xué)習(xí)中一種正規(guī)化方法,一般和batch normalization(BN)進(jìn)行比較。BN的主要思想就是在每一層的每一批數(shù)據(jù)上進(jìn)行歸一化,LN是在每一個(gè)樣本上計(jì)算均值和方差,LN的優(yōu)點(diǎn)在于獨(dú)立計(jì)算并針對(duì)單一樣本進(jìn)行正規(guī)化,而不是BN那種在批方向計(jì)算均值和方差。

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

編解碼層中的注意力子層輸出都會(huì)接到一個(gè)全連接網(wǎng)絡(luò):Feed-forward networks(FFN),包含兩個(gè)線性轉(zhuǎn)換和一個(gè)ReLu,論文是根據(jù)各個(gè)位置(輸入句中的每個(gè)文字)分別做FFN,因此稱(chēng)為point-wise的FFN。計(jì)算公式如下:

百分點(diǎn)技術(shù)干貨分享,萬(wàn)字長(zhǎng)文深度解讀機(jī)器翻譯

?線性變換和softmax層

解碼器最后會(huì)輸出一個(gè)實(shí)數(shù)向量。如何把浮點(diǎn)數(shù)變成一個(gè)單詞?這便是線性變換層要做的工作,它之后就是softmax層。線性變換層是一個(gè)簡(jiǎn)單的全連接神經(jīng)網(wǎng)絡(luò),它可以把解碼器產(chǎn)生的向量投射到一個(gè)比它大得多的、被稱(chēng)作對(duì)數(shù)幾率(logits)的向量里。

不妨假設(shè)我們的模型從訓(xùn)練集中學(xué)習(xí)一萬(wàn)個(gè)不同的英語(yǔ)單詞(我們模型的“輸出詞表”)。因此對(duì)數(shù)幾率向量為一萬(wàn)個(gè)單元格長(zhǎng)度的向量——每個(gè)單元格對(duì)應(yīng)某一個(gè)單詞的分?jǐn)?shù)。接下來(lái)的softmax層便會(huì)把那些分?jǐn)?shù)變成概率(都為正數(shù)、上限1.0)。概率最高的單元格被選中,并且它對(duì)應(yīng)的單詞被作為這個(gè)時(shí)間步的輸出。

?位置編碼

Seq2Seq模型的輸入僅僅是詞向量,但是Transformer模型摒棄了循環(huán)和卷積,無(wú)法提取序列順序的信息,如果缺失了序列順序信息,可能會(huì)導(dǎo)致所有詞語(yǔ)都對(duì)了,但是無(wú)法組成有意義的語(yǔ)句。作者是怎么解決這個(gè)問(wèn)題呢?為了讓模型利用序列的順序,必須注入序列中關(guān)于詞語(yǔ)相對(duì)或者絕對(duì)位置的信息。在論文中作者引入Positional Encoding:對(duì)序列中的詞語(yǔ)出現(xiàn)的位置進(jìn)行編碼。下圖是20個(gè)詞512個(gè)詞嵌入維度上的位置編碼可視化。

百分點(diǎn)技術(shù)干貨分享,萬(wàn)字長(zhǎng)文深度解讀機(jī)器翻譯

將句子中每個(gè)詞的“位置編碼”添加到編碼器和解碼器堆棧底部的輸入嵌入中,位置編碼和詞嵌入的維度d(model)相同,所以它倆可以相加。論文使用不同頻率的正弦和余弦函數(shù)獲取位置信息:

百分點(diǎn)技術(shù)干貨分享,萬(wàn)字長(zhǎng)文深度解讀機(jī)器翻譯

其中pos是位置,i是維度,在偶數(shù)位置使用正弦編碼,在奇數(shù)位置使用余弦編碼。位置編碼的每個(gè)維度對(duì)應(yīng)于一個(gè)正弦曲線。

Transformer模型毋庸置疑是當(dāng)前機(jī)器翻譯的主流模型,面對(duì)谷歌等科技巨頭公司強(qiáng)大的實(shí)力,百分點(diǎn)認(rèn)知智能實(shí)驗(yàn)室如何采用Transformer模型研制具有市場(chǎng)競(jìng)爭(zhēng)力、工業(yè)級(jí)的多語(yǔ)言神經(jīng)翻譯系統(tǒng)呢?第4部分將為您娓娓道來(lái)。

04 工業(yè)級(jí)多語(yǔ)言神經(jīng)翻譯模型實(shí)踐

4.1. 多語(yǔ)言模型翻譯框架

谷歌GNMT采用對(duì)多種語(yǔ)言的巨大平行語(yǔ)料同時(shí)進(jìn)行訓(xùn)練得到一個(gè)可支持多種源語(yǔ)言輸入多種目標(biāo)語(yǔ)言輸出的神經(jīng)翻譯模型,但該方法需要昂貴的計(jì)算資源支持訓(xùn)練和部署運(yùn)行。

百分點(diǎn)技術(shù)干貨分享,萬(wàn)字長(zhǎng)文深度解讀機(jī)器翻譯

百分點(diǎn)的神經(jīng)翻譯系統(tǒng)Deep Translator

百分點(diǎn)的神經(jīng)翻譯系統(tǒng)Deep Translator目前支持中文、英文、日文、俄文、法文、德文、阿拉伯文、西班牙文、葡萄牙文、意大利文、希伯來(lái)文、波斯文等20多個(gè)語(yǔ)言數(shù)百個(gè)方向兩兩互譯,如何在有限的服務(wù)器資源的條件下進(jìn)行模型訓(xùn)練與在線計(jì)算呢?

不同于谷歌GNMT采用多語(yǔ)言單一翻譯模型的架構(gòu),研發(fā)團(tuán)隊(duì)提出的Deep Translator的多語(yǔ)言翻譯模型為多平行子模型集成方案。該方案有兩個(gè)主要特點(diǎn):一是模型獨(dú)立性,針對(duì)不同語(yǔ)言方向訓(xùn)練不同的翻譯模型;二是“橋接”翻譯,對(duì)于中文到其他語(yǔ)言平行語(yǔ)料較少的語(yǔ)言方向,以語(yǔ)料資源較為豐富的英文作為中間語(yǔ)言進(jìn)行中轉(zhuǎn)翻譯,即先將源語(yǔ)言翻譯為英文,再將英文翻譯為目標(biāo)語(yǔ)言。

百分點(diǎn)技術(shù)干貨分享,萬(wàn)字長(zhǎng)文深度解讀機(jī)器翻譯

采取上述方案研發(fā)團(tuán)隊(duì)有何深度思考呢?第一點(diǎn),不同于谷歌面向全球的互聯(lián)網(wǎng)用戶,國(guó)內(nèi)企業(yè)最終用戶語(yǔ)種翻譯需求明確且要求系統(tǒng)本地化部署,對(duì)部分語(yǔ)言方向如英中、中俄等翻譯質(zhì)量要求較高,同時(shí)希望這些語(yǔ)言方向的翻譯效果能持續(xù)提升,發(fā)現(xiàn)問(wèn)題時(shí)能及時(shí)校正,而其他使用頻次較低的翻譯模型能保證其穩(wěn)定性,這導(dǎo)致高頻使用的語(yǔ)言模型更新頻率會(huì)較高,低頻使用的語(yǔ)言模型更新頻率較低。若將多語(yǔ)言方向的模型統(tǒng)一在一個(gè)框架下,既增加模型復(fù)雜度也影響模型穩(wěn)定性,因?yàn)樯?jí)一個(gè)語(yǔ)言方向,勢(shì)必會(huì)對(duì)整個(gè)模型參數(shù)進(jìn)行更新,這樣其他語(yǔ)言方向的翻譯效果也會(huì)受到影響,每次升級(jí)都要對(duì)所有語(yǔ)言方向進(jìn)行效果評(píng)測(cè),若部分翻譯效果下降明顯還要重新訓(xùn)練,費(fèi)時(shí)費(fèi)力。而獨(dú)立的模型結(jié)構(gòu)對(duì)一種語(yǔ)言方向的參數(shù)優(yōu)化不會(huì)影響到其他語(yǔ)言方向的翻譯效果,在保證系統(tǒng)整體翻譯效果穩(wěn)定性的基礎(chǔ)上又大大減少了模型更新的工作量。

第二點(diǎn),工業(yè)級(jí)可用的神經(jīng)機(jī)器翻譯模型對(duì)平行語(yǔ)料質(zhì)量要求較高,一個(gè)可用的翻譯模型需要千萬(wàn)級(jí)以上的平行訓(xùn)練語(yǔ)料,系統(tǒng)支持的語(yǔ)言方向相對(duì)較多,現(xiàn)階段很多語(yǔ)言方向很難獲取足夠的雙邊訓(xùn)練數(shù)據(jù)。針對(duì)這個(gè)問(wèn)題的解決方案一般有兩種,一是采用無(wú)監(jiān)督翻譯模型,這種翻譯模型只需單邊訓(xùn)練語(yǔ)料,而單邊訓(xùn)練語(yǔ)料相對(duì)容易獲取,但缺點(diǎn)是目前無(wú)監(jiān)督翻譯模型成熟度較低翻譯效果難以滿足使用需求;二是采用“橋接”的方式,因?yàn)椴煌Z(yǔ)言同英文之間的雙邊語(yǔ)料相對(duì)容易獲取,缺點(diǎn)是經(jīng)英文轉(zhuǎn)譯后精度有所損失,且計(jì)算資源加倍執(zhí)行效率降低。通過(guò)對(duì)用戶需求進(jìn)行分析發(fā)現(xiàn)用戶對(duì)翻譯效果的要求大于執(zhí)行效率的要求,且通過(guò)對(duì)兩種模型翻譯效果的測(cè)評(píng)對(duì)比,“橋接”結(jié)構(gòu)的翻譯效果優(yōu)于目前無(wú)監(jiān)督翻譯模型,所以最終選擇通過(guò)英文“橋接”的框架結(jié)構(gòu)。

4.2. 十億級(jí)平行語(yǔ)料構(gòu)建

平行語(yǔ)料是神經(jīng)機(jī)器翻譯研究者夢(mèng)寐以求的資源,可以毫不夸張地說(shuō)在突破Transformer模型結(jié)構(gòu)之前平行語(yǔ)料資源就是機(jī)器翻譯的競(jìng)爭(zhēng)力!不論谷歌、臉書(shū)如何從海量的互聯(lián)網(wǎng)爬取多少平行語(yǔ)料,在行業(yè)領(lǐng)域的平行語(yǔ)料永遠(yuǎn)是稀缺資源,因?yàn)樾袠I(yè)領(lǐng)域大量的單邊語(yǔ)料(電子文檔、圖書(shū))、專(zhuān)業(yè)的翻譯工作者的翻譯成果并不在互聯(lián)網(wǎng)上。這些資源的獲取、整理成平行語(yǔ)料并不免費(fèi),需要大量的人工,因此是神經(jīng)機(jī)器翻譯深入行業(yè)應(yīng)用的攔路虎。

百分點(diǎn)技術(shù)干貨分享,萬(wàn)字長(zhǎng)文深度解讀機(jī)器翻譯

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

經(jīng)過(guò)整理網(wǎng)上開(kāi)源的平行語(yǔ)料與構(gòu)建行業(yè)級(jí)平行語(yǔ)料,認(rèn)知智能實(shí)驗(yàn)室形成部分語(yǔ)種高質(zhì)量平行語(yǔ)料庫(kù)的數(shù)量如下。

百分點(diǎn)技術(shù)干貨分享,萬(wàn)字長(zhǎng)文深度解讀機(jī)器翻譯

4.3. 文檔格式轉(zhuǎn)換、OCR與UI設(shè)計(jì)

打造一款用戶體驗(yàn)良好的面向行業(yè)領(lǐng)域用戶機(jī)器翻譯系統(tǒng)始終是認(rèn)知智能實(shí)驗(yàn)室研發(fā)團(tuán)隊(duì)的孜孜不倦的追求。為了實(shí)現(xiàn)這個(gè)夢(mèng)想,不僅僅要采用端到端的神經(jīng)翻譯模型達(dá)到當(dāng)前效果最佳的多語(yǔ)言翻譯質(zhì)量,還要提供多用戶協(xié)同使用的端到端的翻譯系統(tǒng)。端到端的翻譯系統(tǒng)主要需要解決兩個(gè)問(wèn)題:第一,如何解決多種格式多語(yǔ)言文檔格式轉(zhuǎn)換、圖片文字OCR的技術(shù)難題?第二,如何提供多用戶協(xié)同操作使用UI界面?

最終用戶一般希望將PDF、圖片、幻燈片等不同格式的通過(guò)系統(tǒng)統(tǒng)一轉(zhuǎn)換為可編輯的電子版文件并轉(zhuǎn)譯成最終的目標(biāo)語(yǔ)言,并較好地保持原有文檔的排版格式進(jìn)行閱讀。那么如何對(duì)文檔的格式進(jìn)行轉(zhuǎn)換、對(duì)圖片的文字進(jìn)行識(shí)別并達(dá)到在此技術(shù)領(lǐng)域的最佳的效果呢?采用領(lǐng)先的OCR技術(shù)讓Deep Translator翻譯系統(tǒng)更加貼近用戶的實(shí)際工作場(chǎng)景,支持對(duì)PDF、PPT、圖片等多種格式、多種語(yǔ)言文檔的直接多語(yǔ)言翻譯而不用人工進(jìn)行轉(zhuǎn)換,最終輸出PDF、Word、PPT等可編輯的格式并保持原有的排版風(fēng)格與格式,方便用戶在源文與譯文之間比較閱讀。

面向科研院所或公司,需要在服務(wù)器資源有限的條件下支持多用戶協(xié)同操作使用并提供友好的UI操作界面。Deep Translator翻譯系統(tǒng)經(jīng)過(guò)迭代打磨,形成了四大特色:第一,提供文檔翻譯、文本翻譯和文檔轉(zhuǎn)換的功能操作,滿足用戶不同的使用需求;第二,設(shè)計(jì)任務(wù)優(yōu)先級(jí)調(diào)度與排序算法對(duì)多用戶加急任務(wù)和正常任務(wù)的翻譯;第三,支持單用戶多文檔批量上傳、批量下載、參數(shù)配置、翻譯進(jìn)度查看等豐富的操作;第四,支持多種權(quán)限、多種角色管理及賬號(hào)密碼的統(tǒng)一認(rèn)證。

4.4. 產(chǎn)品優(yōu)勢(shì)與實(shí)踐經(jīng)驗(yàn)

百分點(diǎn)技術(shù)干貨分享,萬(wàn)字長(zhǎng)文深度解讀機(jī)器翻譯

百分點(diǎn)認(rèn)知智能實(shí)驗(yàn)室推出的多語(yǔ)種機(jī)器翻譯系統(tǒng)Deep Translator支持本地化部署、定制化訓(xùn)練模型并達(dá)到行業(yè)最佳的工業(yè)級(jí)機(jī)器翻譯水平。表1給出了Deep Translator在聯(lián)合國(guó)平行語(yǔ)料庫(kù)的官方測(cè)試集進(jìn)行翻譯質(zhì)量評(píng)測(cè)結(jié)果,在英譯中、俄譯中等行業(yè)領(lǐng)域主流翻譯方向的BLEU得分達(dá)到最佳水平。

自2017年問(wèn)世以來(lái)Deep Translator已服務(wù)于數(shù)百家客戶,包括在國(guó)內(nèi)航空、電子等軍工研究所并得到良好口碑,另外與融融網(wǎng)(www.rongrong.cn)合作面向上千家軍工科研院所推廣售賣(mài),在推廣行業(yè)機(jī)器翻譯服務(wù)的道路上我們?cè)阶咴竭h(yuǎn),踐行用認(rèn)知智能技術(shù)服務(wù)國(guó)防的使命。

參考文獻(xiàn):

  • Nal Kalchbrenner and Phil Blunsom. 2013. Recurrent Continuous TranslationModels. In Proceedings of EMNLP 2013
  • Ilya Sutskever,etc. 2014. Sequence to Sequence Learning with NeuralNetworks.In Proceedings of NIPS 2014.
  • Dzmitry Bahdanau etc. 2015. Neural Machine Translation by Jointly Learningto Align and Translate. In Proceedings of ICLR 2015.
  • Ashish Vaswani,etc.Attention is All You Need. In Proceedings of NIPS2017.
  • Jay Alammar TheIllustrated Transformer,http://jalammar.github.io/illustrated-transformer/
  • 張俊林,深度學(xué)習(xí)中的注意力模型(2017版),https://zhuanlan.zhihu.com/p/37601161
向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI