網(wǎng)上有很多關(guān)于pos機(jī)網(wǎng)絡(luò)解碼,萬字長文深度解讀機(jī)器翻譯的知識(shí),也有很多人為大家解答關(guān)于pos機(jī)網(wǎng)絡(luò)解碼的問題,今天pos機(jī)之家(www.tjfsxbj.com)為大家整理了關(guān)于這方面的知識(shí),讓我們一起來看下吧!
本文目錄一覽:
pos機(jī)網(wǎng)絡(luò)解碼
編者按
在“機(jī)器翻譯是如何煉成的(上)”的文章中,我們回顧了機(jī)器翻譯的發(fā)展史。在本篇文章中,我們將分享機(jī)器翻譯系統(tǒng)的理論算法和技術(shù)實(shí)踐,講解神經(jīng)機(jī)器翻譯具體是如何煉成的。讀完本文,您將了解:
· 神經(jīng)機(jī)器翻譯模型如何進(jìn)化并發(fā)展成令NLP研究者萬眾矚目的Transformer模型;
· 基于Transformer模型,我們?nèi)绾未蛟旃I(yè)級(jí)的神經(jīng)機(jī)器翻譯系統(tǒng)。
2013年~2014年不溫不火的自然語言處理(NLP)領(lǐng)域發(fā)生了翻天覆地的變化,因?yàn)楣雀璐竽X的Mikolov等人提出了大規(guī)模的詞嵌入技術(shù)word2vec,RNN、CNN等深度網(wǎng)絡(luò)也開始應(yīng)用于NLP的各項(xiàng)任務(wù),全世界NLP研究者歡欣鼓舞、躍躍欲試,準(zhǔn)備告別令人煎熬的平淡期,開啟一個(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ī)器翻譯,開始全面超越此前以統(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)典的基于短語的機(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ī)械感”,如果您在閱讀過程感到十分費(fèi)勁,那煩請(qǐng)您直接閱讀第4部分,了解百分點(diǎn)如何打造自己的工業(yè)級(jí)NMT系統(tǒng)。
01 新的曙光:Encoder-Decoder模型
上文已經(jīng)提到在2013年提出的這種端到端的機(jī)器翻譯模型。一個(gè)自然語言的句子可被視作一個(gè)時(shí)間序列數(shù)據(jù),類似LSTM、GRU等循環(huán)神經(jīng)網(wǎng)絡(luò)比較適于處理有時(shí)間順序的序列數(shù)據(jù)。如果假設(shè)把源語言和目標(biāo)語言都視作一個(gè)獨(dú)立的時(shí)間序列數(shù)據(jù),那么機(jī)器翻譯就是一個(gè)序列生成任務(wù),如何實(shí)現(xiàn)一個(gè)序列生成任務(wù)呢?一般以循環(huán)神經(jīng)網(wǎng)絡(luò)為基礎(chǔ)的編碼器-解碼器模型框架(亦稱Sequence to Sequence,簡稱Seq2Seq)來做序列生成,Seq2Seq模型包括兩個(gè)子模型:一個(gè)編碼器和一個(gè)解碼器,編碼器、解碼器是各自獨(dú)立的循環(huán)神經(jīng)網(wǎng)絡(luò),該模型可將給定的一個(gè)源語言句子,首先使用一個(gè)編碼器將其映射為一個(gè)連續(xù)、稠密的向量,然后再使用一個(gè)解碼器將該向量轉(zhuǎn)化為一個(gè)目標(biāo)語言句子。
編碼器Encoder對(duì)輸入的源語言句子進(jìn)行編碼,通過非線性變換轉(zhuǎn)化為中間語義表示C:
在第i時(shí)刻解碼器Decoder根據(jù)句子編碼器輸出的中間語義表示C和之前已經(jīng)生成的歷史信息y?,y?,……,y?-?來生成下一個(gè)目標(biāo)語言的單詞:
每個(gè)y?都依次這么產(chǎn)生,即seq2seq模型就是根據(jù)輸入源語言句子生成了目標(biāo)語言句子的翻譯模型。源語言與目標(biāo)語言的句子雖然語言、語序不一樣,但具有相同的語義,Encoder在將源語言句子濃縮成一個(gè)嵌入空間的向量C后,Decoder能利用隱含在該向量中的語義信息來重新生成具有相同語義的目標(biāo)語言句子??偠灾琒eq2Seq神經(jīng)翻譯模型可模擬人類做翻譯的兩個(gè)主要過程:
編碼器Encoder解譯來源文字的文意;解碼器Decoder重新編譯該文意至目標(biāo)語言。02 突破飛躍:注意力機(jī)制模型
2.1. Seq2Seq模型的局限性
Seq2Seq模型的一個(gè)重要假設(shè)是編碼器可把輸入句子的語義全都?jí)嚎s成一個(gè)固定維度的語義向量,解碼器利用該向量的信息就能重新生成具有相同意義但不同語言的句子。由于隨著輸入句子長度的增加編解碼器的性能急劇下降,以一個(gè)固定維度中間語義向量作為編碼器輸出會(huì)丟失很多細(xì)節(jié)信息,因此循環(huán)神經(jīng)網(wǎng)絡(luò)難以處理輸入的長句子,一般的Seq2Seq模型存在信息表示的瓶頸。
一般的Seq2Seq模型把源語句跟目標(biāo)語句分開進(jìn)行處理,不能直接地建模源語句跟目標(biāo)語句之間的關(guān)系。那么如何解決這種局限性呢?2015年Bahdanau等人發(fā)表論文首次把注意機(jī)制應(yīng)用到聯(lián)合翻譯和對(duì)齊單詞中,解決了Seq2Seq的瓶頸問題。注意力機(jī)制可計(jì)算目標(biāo)詞與每個(gè)源語詞之間的關(guān)系,從而直接建模源語句與目標(biāo)語句之間的關(guān)系。注意力機(jī)制又是什么神器,可讓NMT一戰(zhàn)成名決勝機(jī)器翻譯競(jìng)賽呢?
2.2. 注意力機(jī)制的一般原理
通俗地解釋,在數(shù)據(jù)庫里一般用主鍵Key唯一地標(biāo)識(shí)某一條數(shù)據(jù)記錄Value,訪問某一條數(shù)據(jù)記錄的時(shí)候可查詢語句Query搜索與查詢條件匹配的主鍵Key并取出其中的數(shù)據(jù)Value。注意力機(jī)制類似該思路,是一種軟尋址的概念:假設(shè)數(shù)據(jù)按照<Key, Value>存儲(chǔ),計(jì)算所有的主鍵Key與某一個(gè)查詢條件Query的匹配程度,作為權(quán)重值再分別與各條數(shù)據(jù)Value做加權(quán)和作為查詢的結(jié)果,該結(jié)果即注意力。因此,注意力機(jī)制的一般原理(參考上圖):首先,將源語句中的構(gòu)成元素想象成是由一系列的<Key, Value>數(shù)據(jù)對(duì)構(gòu)成,目標(biāo)語句由一序列元素Query構(gòu)成;然后給定目標(biāo)語句中的某個(gè)元素Query,通過計(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ì)源語句中元素的Value值進(jìn)行加權(quán)求和,而Query和Key用來計(jì)算對(duì)應(yīng)Value的權(quán)重系數(shù)。一般性計(jì)算公式為:
在機(jī)器翻譯中Seq2Seq模型一般是由多個(gè)LSTM/GRU等RNN層疊起來。2016年9月谷歌發(fā)布神經(jīng)機(jī)器翻譯系統(tǒng)GNMT,采用Seq2Seq+注意力機(jī)制的模型框架,編碼器網(wǎng)絡(luò)和解碼器網(wǎng)絡(luò)都具有8層LSTM隱層,編碼器的輸出通過注意力機(jī)制加權(quán)平均后輸入到解碼器的各個(gè)LSTM隱層,最后連接softmax層輸出每個(gè)目標(biāo)語言詞典的每個(gè)詞的概率。
GNMT如何計(jì)算讓性能大幅提升的注意力呢?假設(shè)(X,Y)為平行語料的任一組源語句-目標(biāo)語句對(duì),則:
源語句長度為M的字符串:目標(biāo)語句長度為N的字符串:編碼器輸出d維向量作為h的編碼:利用貝葉斯定理,句子對(duì)的條件概率:
解碼時(shí)解碼器在時(shí)間點(diǎn)i根據(jù)編碼器輸出的編碼和前i-1個(gè)解碼器輸出,最大化P(Y|X)可求得目標(biāo)詞。
GNMT注意力機(jī)制實(shí)際的計(jì)算步驟如下:
讀到這里,您也許開始倦意十足,甚至唾棄本文不知所云。請(qǐng)多給點(diǎn)耐心閱讀,因?yàn)橹链思?dòng)人心的時(shí)刻才開始:文章的主角Transformer(變形金剛)同學(xué)出場(chǎng)了!
03 高光時(shí)刻:基于自注意力機(jī)制的Transformer模型
第2部分我們提到基于seq2seq+注意力機(jī)制比一般的seq2seq的模型架構(gòu)取得了更好的效果,那么這種組合有什么缺點(diǎn)呢?事實(shí)上循環(huán)神經(jīng)網(wǎng)絡(luò)存在著一個(gè)困擾研究者已久的問題:無法有效地平行運(yùn)算,但不久研究者就等來了福音。2017年6月Transformer模型橫空問世,當(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è)簡單的、位置完全連接的前饋網(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。與編碼器類似,我們?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,過程和過去的seq2seq+attention的模型相似。3.2.自注意力機(jī)制
Transformer模型的核心思想就是自注意力機(jī)制(self-attention),能注意輸入序列的不同位置以計(jì)算該序列的表示的能力。自注意力機(jī)制顧名思義指的不是源語句和目標(biāo)語句之間的注意力機(jī)制,而是同一個(gè)語句內(nèi)部元素之間發(fā)生的注意力機(jī)制。而在計(jì)算一般Seq2Seq模型中的注意力以Decoder的輸出作為查詢向量q,Encoder的輸出序列作為鍵向量k、值向量v,Attention機(jī)制發(fā)生在目標(biāo)語句的元素和源語句中的所有元素之間。
自注意力機(jī)制的計(jì)算過程是將Encoder或Decoder的輸入序列的每個(gè)位置的向量通過3個(gè)線性轉(zhuǎn)換分別變成3個(gè)向量:查詢向量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)積注意力即如何使用向量來計(jì)算自注意力,通過四個(gè)步驟來計(jì)算自注意力:
從每個(gè)編碼器的輸入向量(每個(gè)單詞的詞向量)中生成三個(gè)向量:查詢向量q、鍵向量k、值向量v。矩陣運(yùn)算中這三個(gè)向量是通過編解碼器輸入X與三個(gè)權(quán)重矩陣W??、W?、W?相乘創(chuàng)建的。計(jì)算得分。圖示例子輸入一個(gè)句子“Thinking Machine”,第一個(gè)詞“Thinking”計(jì)算自注意力向量,需將輸入句子中的每個(gè)單詞對(duì)“Thinking”打分。分?jǐn)?shù)決定了在編碼單詞“Thinking”的過程中有多重視句子的其它部分。分?jǐn)?shù)是通過打分單詞(所有輸入句子的單詞)的鍵向量k與“Thinking”的查詢向量q相點(diǎn)積來計(jì)算的。比如,第一個(gè)分?jǐn)?shù)是q?和k?的點(diǎn)積,第二個(gè)分?jǐn)?shù)是q?和k?的點(diǎn)積。縮放求和:將分?jǐn)?shù)乘以縮放因子1/√d? (d?是鍵向量的維數(shù)d?=64)讓梯度更穩(wěn)定,然后通過softmax傳遞結(jié)果。softmax的作用是使所有單詞的分?jǐn)?shù)歸一化,得到的分?jǐn)?shù)都是正值且和為1。softmax分?jǐn)?shù)決定了每個(gè)單詞對(duì)編碼當(dāng)下位置(“Thinking”)的貢獻(xiàn)。將每個(gè)值向量v乘以softmax分?jǐn)?shù),希望關(guān)注語義上相關(guān)的單詞,并弱化不相關(guān)的單詞。對(duì)加權(quán)值向量求和,然后即得到自注意力層在該位置的輸出z?。因此,可縮放的點(diǎn)積注意力可通過下面公式計(jì)算:
在實(shí)際中,注意力計(jì)算是以矩陣形式完成的,以便算得更快。那我們接下來就看看如何用通過矩陣運(yùn)算實(shí)現(xiàn)自注意力機(jī)制的。
首先求取查詢向量矩陣Q、鍵向量矩陣K和值向量矩陣V,通過權(quán)重矩陣W??、W?、W?與輸入矩陣X相乘得到;同樣求取任意一個(gè)單詞的得分是通過它的鍵向量k與所有單詞的查詢向量q相點(diǎn)積來計(jì)算的,那么我們可以把所有單詞的鍵向量k的轉(zhuǎn)置組成一個(gè)鍵向量矩陣K?,把所有單詞的查詢向量q組合在一起成為查詢向量矩陣Q,這兩個(gè)矩陣相乘得到注意力得分矩陣A=QK?;然后,對(duì)注意力得分矩陣A求softmax得到歸一化的得分矩陣A^,這個(gè)矩陣在左乘以值向量矩陣V得到輸出矩陣Z。
?多頭注意力
如果只計(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ú)立的查詢/鍵/值權(quán)重矩陣W???、W??、W??,從而產(chǎn)生不同的查詢/鍵/值矩陣(Q?、K?、V?)。用X乘以W???、W??、W??矩陣來產(chǎn)生查詢/鍵/值矩陣Q?、K?、V?。與上述相同的自注意力計(jì)算,只需八次不同的權(quán)重矩陣運(yùn)算可得到八個(gè)不同的Z?矩陣,每一組都代表將輸入文字的隱向量投射到不同空間。最后把這8個(gè)矩陣拼在一起,通過乘上一個(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”上,從某種意義上說,模型對(duì)“it”一詞的表達(dá)在某種程度上是“animal”和“street”的代表,但是在不用語義下,第一句的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),將輸出改寫為和輸入的殘差,使得模型在訓(xùn)練時(shí),微小的變化可以被注意到,該方法在計(jì)算機(jī)視覺常用。
在把數(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,因此稱為point-wise的FFN。計(jì)算公式如下:
?線性變換和softmax層
解碼器最后會(huì)輸出一個(gè)實(shí)數(shù)向量。如何把浮點(diǎn)數(shù)變成一個(gè)單詞?這便是線性變換層要做的工作,它之后就是softmax層。線性變換層是一個(gè)簡單的全連接神經(jīng)網(wǎng)絡(luò),它可以把解碼器產(chǎn)生的向量投射到一個(gè)比它大得多的、被稱作對(duì)數(shù)幾率(logits)的向量里。
不妨假設(shè)我們的模型從訓(xùn)練集中學(xué)習(xí)一萬個(gè)不同的英語單詞(我們模型的“輸出詞表”)。因此對(duì)數(shù)幾率向量為一萬個(gè)單元格長度的向量——每個(gè)單元格對(duì)應(yīng)某一個(gè)單詞的分?jǐn)?shù)。接下來的softmax層便會(huì)把那些分?jǐn)?shù)變成概率(都為正數(shù)、上限1.0)。概率最高的單元格被選中,并且它對(duì)應(yīng)的單詞被作為這個(gè)時(shí)間步的輸出。
?位置編碼
Seq2Seq模型的輸入僅僅是詞向量,但是Transformer模型摒棄了循環(huán)和卷積,無法提取序列順序的信息,如果缺失了序列順序信息,可能會(huì)導(dǎo)致所有詞語都對(duì)了,但是無法組成有意義的語句。作者是怎么解決這個(gè)問題呢?為了讓模型利用序列的順序,必須注入序列中關(guān)于詞語相對(duì)或者絕對(duì)位置的信息。在論文中作者引入Positional Encoding:對(duì)序列中的詞語出現(xiàn)的位置進(jìn)行編碼。下圖是20個(gè)詞512個(gè)詞嵌入維度上的位置編碼可視化。
將句子中每個(gè)詞的“位置編碼”添加到編碼器和解碼器堆棧底部的輸入嵌入中,位置編碼和詞嵌入的維度d(model)相同,所以它倆可以相加。論文使用不同頻率的正弦和余弦函數(shù)獲取位置信息:
其中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)爭力、工業(yè)級(jí)的多語言神經(jīng)翻譯系統(tǒng)呢?第4部分將為您娓娓道來。
04 工業(yè)級(jí)多語言神經(jīng)翻譯模型實(shí)踐
4.1. 多語言模型翻譯框架
谷歌GNMT采用對(duì)多種語言的巨大平行語料同時(shí)進(jìn)行訓(xùn)練得到一個(gè)可支持多種源語言輸入多種目標(biāo)語言輸出的神經(jīng)翻譯模型,但該方法需要昂貴的計(jì)算資源支持訓(xùn)練和部署運(yùn)行。
百分點(diǎn)的神經(jīng)翻譯系統(tǒng)Deep Translator目前支持中文、英文、日文、俄文、法文、德文、阿拉伯文、西班牙文、葡萄牙文、意大利文、希伯來文、波斯文等20多個(gè)語言數(shù)百個(gè)方向兩兩互譯,如何在有限的服務(wù)器資源的條件下進(jìn)行模型訓(xùn)練與在線計(jì)算呢?
不同于谷歌GNMT采用多語言單一翻譯模型的架構(gòu),研發(fā)團(tuán)隊(duì)提出的Deep Translator的多語言翻譯模型為多平行子模型集成方案。該方案有兩個(gè)主要特點(diǎn):一是模型獨(dú)立性,針對(duì)不同語言方向訓(xùn)練不同的翻譯模型;二是“橋接”翻譯,對(duì)于中文到其他語言平行語料較少的語言方向,以語料資源較為豐富的英文作為中間語言進(jìn)行中轉(zhuǎn)翻譯,即先將源語言翻譯為英文,再將英文翻譯為目標(biāo)語言。
采取上述方案研發(fā)團(tuán)隊(duì)有何深度思考呢?第一點(diǎn),不同于谷歌面向全球的互聯(lián)網(wǎng)用戶,國內(nèi)企業(yè)最終用戶語種翻譯需求明確且要求系統(tǒng)本地化部署,對(duì)部分語言方向如英中、中俄等翻譯質(zhì)量要求較高,同時(shí)希望這些語言方向的翻譯效果能持續(xù)提升,發(fā)現(xiàn)問題時(shí)能及時(shí)校正,而其他使用頻次較低的翻譯模型能保證其穩(wěn)定性,這導(dǎo)致高頻使用的語言模型更新頻率會(huì)較高,低頻使用的語言模型更新頻率較低。若將多語言方向的模型統(tǒng)一在一個(gè)框架下,既增加模型復(fù)雜度也影響模型穩(wěn)定性,因?yàn)樯?jí)一個(gè)語言方向,勢(shì)必會(huì)對(duì)整個(gè)模型參數(shù)進(jìn)行更新,這樣其他語言方向的翻譯效果也會(huì)受到影響,每次升級(jí)都要對(duì)所有語言方向進(jìn)行效果評(píng)測(cè),若部分翻譯效果下降明顯還要重新訓(xùn)練,費(fèi)時(shí)費(fèi)力。而獨(dú)立的模型結(jié)構(gòu)對(duì)一種語言方向的參數(shù)優(yōu)化不會(huì)影響到其他語言方向的翻譯效果,在保證系統(tǒng)整體翻譯效果穩(wěn)定性的基礎(chǔ)上又大大減少了模型更新的工作量。
第二點(diǎn),工業(yè)級(jí)可用的神經(jīng)機(jī)器翻譯模型對(duì)平行語料質(zhì)量要求較高,一個(gè)可用的翻譯模型需要千萬級(jí)以上的平行訓(xùn)練語料,系統(tǒng)支持的語言方向相對(duì)較多,現(xiàn)階段很多語言方向很難獲取足夠的雙邊訓(xùn)練數(shù)據(jù)。針對(duì)這個(gè)問題的解決方案一般有兩種,一是采用無監(jiān)督翻譯模型,這種翻譯模型只需單邊訓(xùn)練語料,而單邊訓(xùn)練語料相對(duì)容易獲取,但缺點(diǎn)是目前無監(jiān)督翻譯模型成熟度較低翻譯效果難以滿足使用需求;二是采用“橋接”的方式,因?yàn)椴煌Z言同英文之間的雙邊語料相對(duì)容易獲取,缺點(diǎn)是經(jīng)英文轉(zhuǎn)譯后精度有所損失,且計(jì)算資源加倍執(zhí)行效率降低。通過對(duì)用戶需求進(jìn)行分析發(fā)現(xiàn)用戶對(duì)翻譯效果的要求大于執(zhí)行效率的要求,且通過對(duì)兩種模型翻譯效果的測(cè)評(píng)對(duì)比,“橋接”結(jié)構(gòu)的翻譯效果優(yōu)于目前無監(jiān)督翻譯模型,所以最終選擇通過英文“橋接”的框架結(jié)構(gòu)。
4.2. 十億級(jí)平行語料構(gòu)建
平行語料是神經(jīng)機(jī)器翻譯研究者夢(mèng)寐以求的資源,可以毫不夸張地說在突破Transformer模型結(jié)構(gòu)之前平行語料資源就是機(jī)器翻譯的競(jìng)爭力!不論谷歌、臉書如何從海量的互聯(lián)網(wǎng)爬取多少平行語料,在行業(yè)領(lǐng)域的平行語料永遠(yuǎn)是稀缺資源,因?yàn)樾袠I(yè)領(lǐng)域大量的單邊語料(電子文檔、圖書)、專業(yè)的翻譯工作者的翻譯成果并不在互聯(lián)網(wǎng)上。這些資源的獲取、整理成平行語料并不免費(fèi),需要大量的人工,因此是神經(jīng)機(jī)器翻譯深入行業(yè)應(yīng)用的攔路虎。
認(rèn)知智能實(shí)驗(yàn)室如何構(gòu)建自有的多語種平行語料庫呢?除了獲取全世界互聯(lián)網(wǎng)上開放的語料庫資源,開發(fā)團(tuán)隊(duì)設(shè)計(jì)一種從電子文檔中的單邊語料構(gòu)建領(lǐng)域平行語料的模型與工具,可較為高效地構(gòu)建高質(zhì)量的行業(yè)領(lǐng)域平行語料支撐模型訓(xùn)練。從單邊語料構(gòu)建平行語料需經(jīng)過分句和句子對(duì)齊,那么如何從上千萬句單邊語料計(jì)算語句語義的相似性?開發(fā)團(tuán)隊(duì)提出通過給譯文分類的方式學(xué)習(xí)語義相似性:給定一對(duì)雙語文本輸入,設(shè)計(jì)一個(gè)可以返回表示各種自然語言關(guān)系(包括相似性和相關(guān)性)的編碼模型。利用這種方式,模型訓(xùn)練時(shí)間大大減少,同時(shí)還能保證雙語語義相似度分類的性能。由此,實(shí)現(xiàn)快速的雙語文本自動(dòng)對(duì)齊,構(gòu)建十億級(jí)平行語料。
經(jīng)過整理網(wǎng)上開源的平行語料與構(gòu)建行業(yè)級(jí)平行語料,認(rèn)知智能實(shí)驗(yàn)室形成部分語種高質(zhì)量平行語料庫的數(shù)量如下。
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)前效果最佳的多語言翻譯質(zhì)量,還要提供多用戶協(xié)同使用的端到端的翻譯系統(tǒng)。端到端的翻譯系統(tǒng)主要需要解決兩個(gè)問題:第一,如何解決多種格式多語言文檔格式轉(zhuǎn)換、圖片文字OCR的技術(shù)難題?第二,如何提供多用戶協(xié)同操作使用UI界面?
最終用戶一般希望將PDF、圖片、幻燈片等不同格式的通過系統(tǒng)統(tǒng)一轉(zhuǎn)換為可編輯的電子版文件并轉(zhuǎn)譯成最終的目標(biāo)語言,并較好地保持原有文檔的排版格式進(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、圖片等多種格式、多種語言文檔的直接多語言翻譯而不用人工進(jìn)行轉(zhuǎn)換,最終輸出PDF、Word、PPT等可編輯的格式并保持原有的排版風(fēng)格與格式,方便用戶在源文與譯文之間比較閱讀。
面向科研院所或公司,需要在服務(wù)器資源有限的條件下支持多用戶協(xié)同操作使用并提供友好的UI操作界面。Deep Translator翻譯系統(tǒng)經(jīng)過迭代打磨,形成了四大特色:第一,提供文檔翻譯、文本翻譯和文檔轉(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)認(rèn)知智能實(shí)驗(yàn)室推出的多語種機(jī)器翻譯系統(tǒng)Deep Translator支持本地化部署、定制化訓(xùn)練模型并達(dá)到行業(yè)最佳的工業(yè)級(jí)機(jī)器翻譯水平。表1給出了Deep Translator在聯(lián)合國平行語料庫的官方測(cè)試集進(jìn)行翻譯質(zhì)量評(píng)測(cè)結(jié)果,在英譯中、俄譯中等行業(yè)領(lǐng)域主流翻譯方向的BLEU得分達(dá)到最佳水平。
自2017年問世以來Deep Translator已服務(wù)于數(shù)百家客戶,包括在國內(nèi)航空、電子等軍工研究所并得到良好口碑,另外與融融網(wǎng)(www.rongrong.cn)合作面向上千家軍工科研院所推廣售賣,在推廣行業(yè)機(jī)器翻譯服務(wù)的道路上我們?cè)阶咴竭h(yuǎn),踐行用認(rèn)知智能技術(shù)服務(wù)國防的使命。
參考文獻(xiàn):
Nal Kalchbrenner and Phil Blunsom. 2013. Recurrent Continuous TranslationModels. In Proceedings of EMNLP 2013Ilya 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以上就是關(guān)于pos機(jī)網(wǎng)絡(luò)解碼,萬字長文深度解讀機(jī)器翻譯的知識(shí),后面我們會(huì)繼續(xù)為大家整理關(guān)于pos機(jī)網(wǎng)絡(luò)解碼的知識(shí),希望能夠幫助到大家!
