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