張 楠,李 響,靳曉寧,陳 偉
(1. 北京工業(yè)大學(xué) 北京未來網(wǎng)絡(luò)科技高精尖創(chuàng)新中心,北京 100124;2. 中國科學(xué)院 計算技術(shù)研究所,北京 100190;3. 中國科學(xué)院大學(xué),北京 100049;4. 北京搜狗科技發(fā)展有限公司,北京 100084)
受現(xiàn)實應(yīng)用的驅(qū)動,機器翻譯近幾年一直是備受關(guān)注的研究熱點[1]。針對機器翻譯,傳統(tǒng)的解決方案是統(tǒng)計機器翻譯。近幾年深度學(xué)習(xí)在圖像領(lǐng)域得到了很好的發(fā)展,在分類領(lǐng)域取得了超越人類的成績[2],受此影響,深度學(xué)習(xí)的方式也迅速在機器翻譯中得到廣泛應(yīng)用。2014年,Jacob Devlin提出了神經(jīng)網(wǎng)絡(luò)聯(lián)合模型,相對于傳統(tǒng)的統(tǒng)計機器翻譯方法獲得了顯著的性能提升[3]。今年,微軟Hany等又應(yīng)用神經(jīng)機器翻譯的方式將翻譯的質(zhì)量首次超越人類[4]。神經(jīng)機器翻譯逐漸成為機器翻譯的主流方法,本文亦是采用神經(jīng)機器翻譯進行漢英翻譯任務(wù)。
以往的漢英翻譯任務(wù),生成的英文譯文多為小寫,需要額外的步驟恢復(fù)譯文中單詞的大小寫信息。一般情況下,單詞的大小寫形式可分為三種: 全大寫(USA、WTO等)、首字母大寫(China、Bill等)、全小寫(prediction、model等)。同一單詞的不同大小寫形式,有時會代表不同的含義。比如“the white house” 可翻譯為白色房子,但是“the White House” 則特指“白宮”。不規(guī)范的書寫形式,會極大地阻礙文本的可讀性,降低閱讀速度。當(dāng)前,很多機器翻譯方法得到小寫形式的英文譯文后,通過使用大小寫詞表或者訓(xùn)練好的單詞大小寫恢復(fù)模型來恢復(fù)單詞的原有大小寫信息,增強譯文的可讀性。大小寫恢復(fù)是對輸入的單詞序列恢復(fù)其應(yīng)有的大小寫信息[5]。這在命名體識別和語音識別等領(lǐng)域中亦有廣泛應(yīng)用[6-7]。
本文基于目前主流的Transformer翻譯模型[8],提出了一種聯(lián)合預(yù)測小寫形式英文單詞及其對應(yīng)大小寫屬性的神經(jīng)機器翻譯方法,在同一個解碼器輸出層分別預(yù)測單詞及其大小寫屬性。預(yù)測單詞和預(yù)測單詞大小寫兩項任務(wù)共享模型中的同一個解碼器,在預(yù)測單詞大小寫屬性時,不僅考慮了譯文中單詞的屬性及位置,還充分融合了源端漢語的上下文信息。解碼端預(yù)測單詞及其對應(yīng)單詞的大小寫是同時進行的,相較于傳統(tǒng)方式減少了處理流程和處理時間。翻譯預(yù)測結(jié)束后,根據(jù)解碼得到的大小寫類別信息,對小寫譯文中的單詞進行大小寫還原。在WMT 2017漢英新聞翻譯任務(wù)測試集上,相比基線方法,我們提出的方法在大小寫敏感和大小寫不敏感兩個評價指標(biāo)上分別提高0.97 BLEU和1.01 BLEU。
針對恢復(fù)譯文中英語單詞的大小寫,傳統(tǒng)的處理方式主要有兩種。一是基于查表的方式,通過對訓(xùn)練語料中單詞的各種大小寫形式進行統(tǒng)計,將含有特定大小寫信息的單詞構(gòu)建成一個表。在翻譯得到譯文后,譯文中的每個單詞根據(jù)詞表選擇一個可行性最大的形式進行恢復(fù)。該方法一般需要較大的詞表才能達到一定的詞語覆蓋度。單詞大小寫形式與單詞屬性、在句子中所處的位置以及上下文語境都有關(guān)系,這種方式?jīng)]有考慮譯文的上下文信息,因此也容易產(chǎn)生錯誤恢復(fù)。而且在實際的數(shù)據(jù)中,同一單詞可能有多種不同的大小寫形式,會造成恢復(fù)結(jié)果的歧義。另一種譯文大小寫恢復(fù)的方法是訓(xùn)練一個單詞大小寫的恢復(fù)模型。例如,Lita等使用trigram 模型恢復(fù)句子中的大小寫信息[5];Chelba和Acero 將大小寫恢復(fù)視為一個序列標(biāo)注問題[9],并使用最大熵馬爾科夫模型來融合單詞和它們的大小寫信息;Raymond 利用循環(huán)神經(jīng)網(wǎng)絡(luò)在字符級別上預(yù)測單詞大小寫信息[10]。以上這些訓(xùn)練恢復(fù)模型的方法都是在單語料上進行,翻譯結(jié)束后,針對目標(biāo)端譯文進行大小寫恢復(fù),增加了處理流程和時間開銷。并且這些方法都沒有考慮源端語料的情況,當(dāng)翻譯結(jié)果不準(zhǔn)確時將對單詞大小寫信息的恢復(fù)產(chǎn)生極大干擾。
除了以上兩種方式,Sennrich和Haddow提出的BPE(Byte Pair Encoding)[11]方式也能在一定程度上解決譯文大小寫恢復(fù)的問題。BPE將單詞拆解為更小、更常見的子詞單元。通過這種方式既在詞表中保留字詞的大小寫屬性,詞表大小也未顯著增大。
我們提出的聯(lián)合預(yù)測模型,將預(yù)測單詞和預(yù)測單詞的大小寫屬性進行聯(lián)合,在翻譯預(yù)測單詞的同時,也預(yù)測單詞的大小寫屬性。預(yù)測大小寫時,不僅考慮了目標(biāo)端英文單詞的上下文信息,也考慮了源端漢語的上下文語義信息,因此能得到質(zhì)量更好的譯文。
基于Transformer模型的聯(lián)合預(yù)測架構(gòu),將預(yù)測單詞的任務(wù)task1和預(yù)測單詞大小寫屬性的任務(wù)task2進行聯(lián)合。
在進行大小寫預(yù)測時,用一個獨立的解碼器來預(yù)測單詞的大小寫屬性,實際上會給模型增加很多的參數(shù),加大了模型的訓(xùn)練難度及解碼時間。單詞的大小寫形式很少,大致可以分為4類: 全大寫、開頭大寫、小寫、其他。對于這種較少屬性類別的預(yù)測,不需過多的參數(shù),所以我們針對單詞預(yù)測和大小寫預(yù)測這兩個任務(wù)采用共享解碼器的方案。
訓(xùn)練聯(lián)合預(yù)測模型需要漢語語料、英語語料,以及根據(jù)英語語料中單詞原有大小寫屬性構(gòu)建的英語單詞標(biāo)簽語料。選取公開數(shù)據(jù)集中的漢英平行語料,根據(jù)其中英語語料中單詞的大小寫屬性構(gòu)建英語標(biāo)簽語料。根據(jù)英語單詞具有首字母大寫、全大寫、小寫、其他四種大小寫屬性,構(gòu)建對應(yīng)的單詞屬性訓(xùn)練語料。英語標(biāo)簽語料構(gòu)建完成后,將英語語料中的單詞全部轉(zhuǎn)為小寫。由此得到漢語語料、英語語料和英語標(biāo)簽語料。
基于Transformer模型,翻譯模型由兩部分組成: 編碼器和解碼器。編碼器由一個多頭注意力結(jié)構(gòu)和一個前向反饋組成,解碼器由兩個多頭注意力結(jié)構(gòu)和一個前向反饋組成。多頭注意力結(jié)構(gòu)是用于學(xué)習(xí)單詞或者詞組之間的注意力,前向反饋學(xué)習(xí)語言內(nèi)部的關(guān)系。將漢語語料輸入編碼器,經(jīng)過多頭注意力結(jié)構(gòu),編碼器學(xué)習(xí)漢語詞組之間的注意力,然后經(jīng)過正則化處理做前向反饋,再經(jīng)過正則化處理輸出到下一部分。此編碼器處理過程重復(fù)N次。編碼器每次正則化處理都要加上前一步的輸入。編碼器的輸出是解碼器的部分輸入。解碼器的另一部分輸入為英語語料。將英語語料輸入到解碼器時,英語詞向量要右移一位。將輸入的英語詞向量序列通過做標(biāo)記(Mask)的方式,屏蔽還未翻譯到的單詞。然后解碼器通過多頭注意力結(jié)構(gòu)學(xué)習(xí)英語單詞之間的注意力,將結(jié)果正則化處理后與編碼器的輸出再次輸入到一個多頭注意力結(jié)構(gòu)中,學(xué)習(xí)漢語與英語之間的注意力,再將結(jié)果正則化處理后進行前向反饋,對前向反饋的結(jié)果再正則化處理后輸入到下一部分。此解碼器處理過程處理N次。解碼器每次正則化處理也都要加上前一步的輸入。有異于Transformer模型,本模型的解碼器輸出有兩個預(yù)測任務(wù),一個預(yù)測單詞task1,另一個用于預(yù)測單詞的大小寫信息task2。解碼器輸出經(jīng)過線性映射和softmax處理后預(yù)測單詞,以英語詞向量語料為真實標(biāo)簽求取預(yù)測損失。另一個解碼器輸出經(jīng)過線性映射和softmax處理后預(yù)測單詞大小寫,以英語單詞大小寫標(biāo)簽為真實標(biāo)簽求取預(yù)測損失。所以,模型損失函數(shù)Loss由兩部分組成,一部分是預(yù)測單詞task1的損失,另一部分是預(yù)測單詞大小寫task2的損失,如式(1)所示。
Loss=losstask1+λlosstask2
(1)
兩部分均使用交叉熵損失函數(shù)[12]。
圖1中,模型注意力函數(shù)的輸入Q、K、V,分別代表query、key、value。具體實現(xiàn)操作如圖2(a)所示,根據(jù) query和 key 的相似度計算注意力權(quán)重。然后根據(jù)注意力權(quán)重對value每個詞向量進行加權(quán)即得到注意力。模型采用了縮放點積注意力(scaled dot-product attention),如式(2)所示。
(2)
圖1 共享解碼器聯(lián)合預(yù)測架構(gòu)
圖2 多頭注意力機制模型
其中,queryQ和keyK的維度是相同的,都是dk。ValueV的維度是dv。其中標(biāo)記(mask)主要是用來去除矩陣乘后對角線之間的關(guān)系。
模型采用了多頭注意力的機制(multi-head attention),如圖2(b)所示,將Q、K、V進行h次不同的線性映射,然后再將線性映射的結(jié)果映射到dk、dk、dv維。分別對每一個映射之后得到的queries,keys以及values進行注意力函數(shù)的并行操作,生成dv維的輸出值,如式(3)、式(4)所示。
Transformer模型沒有使用循環(huán)神經(jīng)網(wǎng)絡(luò)或者卷積神經(jīng)網(wǎng)絡(luò),為了使用序列的順序信息,需要將序列的相對位置及絕對位置信息加入到模型中去。對漢英語料、標(biāo)簽語料分別抽取詞表,建立單詞與ID的映射,通過詞表將語料轉(zhuǎn)換成ID序列。再將漢、英序列以及標(biāo)簽序列轉(zhuǎn)換成對應(yīng)的詞向量,在詞向量中采用正弦和余弦函數(shù)[8]加入位置編碼信息后輸入到模型中。
本實驗采用的平行語料為WMT 2017漢英任務(wù)訓(xùn)練數(shù)據(jù)中的CWMT部分?jǐn)?shù)據(jù),共700萬條漢英數(shù)據(jù)。測試用的是WMT 2017漢英新聞翻譯任務(wù)測試集。
根據(jù)漢英訓(xùn)練語料里英語語料單詞的大小寫屬性構(gòu)建英語標(biāo)簽語料。我們將英語單詞分為4種類別: ①其他; ②小寫; ③開頭大寫; ④全大寫。根據(jù)英語語料里英文單詞的大小寫屬性,構(gòu)建對應(yīng)的單詞屬性標(biāo)簽訓(xùn)練語料。英語單詞標(biāo)簽訓(xùn)練語料構(gòu)建完成后,將英語語料中的單詞全部轉(zhuǎn)換為小寫形式。對于源端漢語語料,我們用jieba分詞[注]https: //github.com/fxsjy/jieba將訓(xùn)練語句進行分詞。至此得到了訓(xùn)練要用的漢語語料、英語語料以及英語標(biāo)簽語料。
對漢語語料、英語語料分別進行詞頻統(tǒng)計,取詞頻出現(xiàn)較高的單詞構(gòu)建漢語詞表以及英語詞表。針對訓(xùn)練語料中詞表未覆蓋到的單詞,用UNK來表示。英語單詞大小寫的分類很少,所以選取全部的類別,得到英語標(biāo)簽語料的標(biāo)簽詞表。
3.2.1 基本實驗
本文設(shè)計了3組實驗,如表1所示。
Baseline1: 將訓(xùn)練數(shù)據(jù)和驗證集中英語單詞轉(zhuǎn)為小寫,抽取英語詞表大小6萬,詞表對英文數(shù)據(jù)中單詞的覆蓋率達到98%。漢語詞表大小4萬,對訓(xùn)練數(shù)據(jù)中分詞后詞組覆蓋率達到97%。同時驗證集的英語端也轉(zhuǎn)小寫,用于測試,作為Baseline1。
表1 實驗詞表大小
Baseline2: 保留英語數(shù)據(jù)大小寫信息,重新抽取英文詞表,詞表大小9.3萬(與實驗1 英語詞表的覆蓋率保持一致),漢語詞表大小不變。
Our_Method: 我們提出的聯(lián)合預(yù)測方法根據(jù)單詞所處的位置預(yù)測大小寫信息。模型在預(yù)測單詞的同時預(yù)測該單詞可能的大小寫信息。詞表大小和Baseline1相同,漢語詞表4萬,英文詞表6萬。
3.2.2 BPE實驗
目前處理翻譯譯文大小寫的主要方法是BPE(Byte Pair Encoding)。BPE方法將大小寫敏感的語料拆解為常見的子詞,在降低詞表的同時又減少了譯文中UNK的數(shù)量,從而極大地保存了句子的結(jié)構(gòu)特征和流暢性。用BPE漢英平行語料進行處理。效果如下:
源端: 企業(yè) 集團 就 網(wǎng)絡(luò) 安全@@ 法 向 中國 提@@ 訴求 。
目標(biāo)端: Business Groups Appeal to China Over Cyber@@ security Law.
BPE將單詞或詞組拆解成了更小的組成部分。比如“安全法”拆解成“安全@@”和“法”,將“提訴求”拆解成“提@@”和“訴求”,將“Cybersecurity”拆解成了“Cyber@@”和“security”
這個實驗主要是用來驗證聯(lián)合預(yù)測的方式在BPE的方法下是否依然能取得較好的效果。根據(jù)BPE處理后的訓(xùn)練數(shù)據(jù)抽取詞表。以3.2.1節(jié)中Baseline2和Our_Method為基礎(chǔ)設(shè)置對比實驗Baseline3和Our_Method_BPE。
Baseline3: 除詞表大小和訓(xùn)練數(shù)據(jù)與Baseline2不同外,其余操作、設(shè)置均相同。
Our_Method_BPE: 除卻詞表大小和訓(xùn)練數(shù)據(jù)與Our_Method不同外,其余操作、設(shè)置均相同(表2)。
表2 BPE實驗詞表達小
Baseline3的目標(biāo)端詞表大小為35 599,Our_Method_BPE的目標(biāo)端詞表大小為29 457,兩個詞表對英文數(shù)據(jù)單詞的覆蓋度達到100%。
在預(yù)測使用beam search 解碼時,大小寫分類的選擇并不參與beam search,只是選取概率最大的一個類別作為預(yù)測單詞大小寫屬性的結(jié)果。
我們在兩張Titan XP上訓(xùn)練我們的模型。在tensor2tensor框架[13]下,基于Transformer模型實現(xiàn)程序。Transformer中N=4,4個編碼層4個解碼層,詞向量(embeding)為512維度,隱層的維度是1 024。batch大小為4 096,學(xué)習(xí)率0.1,warm up為4 000。損失函數(shù)中λ=1。其他參數(shù)選用的均是transformer_base的參數(shù)。
我們使用機器翻譯領(lǐng)域常用的BLEU[14]作為評價指標(biāo)來比較各個實驗的結(jié)果, 腳本使用Moses系統(tǒng)[15]提供的multi-bleu.pl[注]https: //github.com/moses-smt/mosesdecoder/blob/master/scripts/generic/multi-bleu.perl。
3.3.1 基本實驗
由表3可知,我們的方法在大小寫敏感和不敏感的兩個指標(biāo)上均高于Baseline2 1BLEU左右。大小寫不敏感也高于Baseline1聯(lián)合的方式,不僅在翻譯的同時預(yù)測單詞大小寫,還提升了譯文的質(zhì)量。
表3 基本實驗結(jié)果
由于3個實驗的詞表大小寫有所不同,我們還統(tǒng)計了4個實驗結(jié)果中UNK字符的數(shù)量(表4)。
表4 實驗結(jié)果UNK數(shù)量
由表4可知,Baseline2和Our_Method的UNK均比Baseline1少。Baseline2的目標(biāo)端英文詞表(9.3萬)比Baseline1的詞表(6萬)要大,所以降低了譯文中的UNK數(shù)量。Baseline1和Our_Method的英文詞表雖然相同,但是由于Our_Method同時預(yù)測了單詞的大小寫信息,所以O(shè)ur_Method的英文詞表的可表示單詞量遠大于Baseline1,以此降低了UNK的數(shù)量。
由于Baseline1的UNK數(shù)量非常多。在去除結(jié)果中所有的UNK后,再次測試了BLEU結(jié)果,如表5所示。
表5 去除UNK后結(jié)果
由表5可知,在排除UNK影響后,Baseline1的大小寫不敏感結(jié)果要優(yōu)于Baseline2。雖然Baseline2的英文詞表(9.3萬)與Baseline1的詞表對訓(xùn)練語料具有相同的單詞覆蓋度,但是詞表的增大也增加了模型的訓(xùn)練參數(shù),提升了模型的訓(xùn)練難度,進而影響譯文質(zhì)量。由于Baseline2和Our_Method的UNK數(shù)量較少,所以去除UNK后的結(jié)果基本沒有變化。Our_Method結(jié)果依然比兩個Baseline的翻譯質(zhì)量要好。與Baseline1相比,兩者具有相同的詞表大小,但是Our_Method由于預(yù)測了大小寫屬性,增加了可表示單詞的數(shù)量,擴大了單詞覆蓋率。從圖1聯(lián)合預(yù)測的翻譯架構(gòu)可知,模型學(xué)習(xí)的注意力分為3個部分: 源端漢語注意力、目標(biāo)端英語注意力以及源端漢語和目標(biāo)端英語之間的注意力。當(dāng)擴大了英文詞表的大小或者提升了詞表的可表示單詞數(shù)量,可以讓模型學(xué)習(xí)到更多英語單詞之間的注意力分配機制以及漢語字詞與英語單詞之間的注意力關(guān)系,使模型在翻譯預(yù)測單詞時能夠做出更精確的預(yù)測。Our_Method與Baseline2相比,雖然漢語詞表大小相同且英語詞表對訓(xùn)練數(shù)據(jù)具有相同的覆蓋度,但是由于Our_Method預(yù)測單詞有四種分類,所以實際可表示的單詞數(shù)量比Baseline2的詞表要多。另一方面,Our_Method的詞表大小比Baseline2小了3.3萬,這也減少了模型的參數(shù),更有利于模型訓(xùn)練。
3.3.2 BPE實驗
從表6可知,多任務(wù)聯(lián)合預(yù)測的Our_Method_BPE結(jié)果要好于Baseline3的結(jié)果,但是不像Our_Method與Baseline2相比提升得那么明顯。同時,通過比較Baseline2和Baseline3,我們可知BPE處理數(shù)據(jù)后訓(xùn)練出的模型,性能也較優(yōu)。通過統(tǒng)計翻譯結(jié)果,譯文中未發(fā)現(xiàn)UNK,這是由于BPE通過分解子詞的方式,有效地提升了詞表對訓(xùn)練數(shù)據(jù)的覆蓋度,英語詞表對訓(xùn)練數(shù)據(jù)的覆蓋度達到了100%,所以在結(jié)果中沒有出現(xiàn)UNK的情況。在英語詞表對訓(xùn)練數(shù)據(jù)的覆蓋度達到了100%的情況下,通過預(yù)測子詞的大小寫屬性,增加的可表示單詞數(shù)量有限。同時聯(lián)合預(yù)測方式,英文詞表比Baseline3英文詞表小了6 142,在一定程度上有所減小,所以O(shè)ur_Method_BPE的結(jié)果對Baseline3有所提升,但是提升不像之前實驗?zāi)敲疵黠@。
表6 BPE實驗結(jié)果
本文以漢英翻譯中英文單詞的大小寫預(yù)測為研究對象,提出了一種在神經(jīng)機器翻譯訓(xùn)練中聯(lián)合預(yù)測英語單詞及其大小寫屬性的方法。以往的大小寫恢復(fù)多是在機器翻譯結(jié)束后根據(jù)譯文進行恢復(fù)。本文提出的方法,綜合考慮了源端和目標(biāo)端兩者的信息,根據(jù)單詞所處的位置以及單詞本身的屬性預(yù)測,達到了很高的準(zhǔn)確度。由于聯(lián)合預(yù)測大小寫的方式降低了詞表的大小,并且提升了詞表的可表示單詞數(shù)量,使模型可以學(xué)習(xí)到更多單詞之間的注意力關(guān)系,降低模型參數(shù)數(shù)量的同時還提升了譯文的質(zhì)量。在WMT 2017漢英新聞翻譯任務(wù)測試集上,本文提出的聯(lián)合預(yù)測方法在大小寫敏感和不敏感兩個指標(biāo)上均高于基線實驗。