賀楚祎,張家俊
(1. 中國(guó)科學(xué)院 自動(dòng)化研究所 模式識(shí)別國(guó)家重點(diǎn)實(shí)驗(yàn)室,北京 100190;2. 中國(guó)科學(xué)院大學(xué),北京 100049)
可控翻譯[1]是在翻譯模型預(yù)測(cè)過(guò)程中添加預(yù)先指定的約束單詞和短語(yǔ),從而獲得包含約束詞匯的翻譯結(jié)果。它在領(lǐng)域機(jī)器翻譯、交互式機(jī)器翻譯等應(yīng)用中具有重要意義??煽胤g中使用的詞典可以是從領(lǐng)域詞典中抽取的術(shù)語(yǔ)[2],也可以是用戶(hù)在修正交互式機(jī)器翻譯系統(tǒng)的翻譯結(jié)果時(shí)所給定[3]。在基于短語(yǔ)的統(tǒng)計(jì)機(jī)器翻譯中[4],可控翻譯的思想比較容易實(shí)現(xiàn),然而在神經(jīng)機(jī)器翻譯(Neural Machine Translation,NMT)中[5],可控翻譯的任務(wù)相對(duì)難以完成,因?yàn)樵谀P陀?xùn)練過(guò)程中難以顯式引入額外的詞匯約束信息。
一些工作探索了神經(jīng)機(jī)器翻譯中的可控翻譯方法,這些方法可以分為兩類(lèi): 硬可控方法和軟可控方法。硬可控方法盡可能使給定的約束詞匯出現(xiàn)在翻譯結(jié)果中,這些工作通過(guò)設(shè)計(jì)新的解碼算法來(lái)實(shí)現(xiàn),而對(duì)模型或訓(xùn)練過(guò)程不做修改,例如,Hokamp等人[6]提出網(wǎng)格柱搜索(Grid Beam Search,GBS)算法用于模型推理解碼階段,Post等人[7]提出了動(dòng)態(tài)柱分配(Dynamic Beam Allocation,DBA)算法對(duì)GBS算法進(jìn)行加速優(yōu)化。然而,與傳統(tǒng)的柱搜索算法相比,這種解碼算法的計(jì)算復(fù)雜度要高出很多。軟可控方法則不能確保所有約束都出現(xiàn)在翻譯結(jié)果中,這類(lèi)方法通常修改NMT模型的訓(xùn)練過(guò)程來(lái)進(jìn)行可控翻譯。Li等人[8]在模型訓(xùn)練過(guò)程中用占位符標(biāo)簽替換源端和目標(biāo)端命名實(shí)體,模型通過(guò)學(xué)習(xí)翻譯這些占位符來(lái)學(xué)習(xí)翻譯約束詞匯;Song等人[9]和Dinu等人[10]提出了用數(shù)據(jù)增強(qiáng)方法來(lái)訓(xùn)練NMT模型,這些方法通過(guò)用約束替換相應(yīng)的源端詞匯或在相應(yīng)的源端詞匯后附加約束來(lái)構(gòu)建源端訓(xùn)練語(yǔ)料,盡管在訓(xùn)練數(shù)據(jù)中引入了雙語(yǔ)詞典信息,但模型無(wú)法有效區(qū)分文本和約束。
此外,在這兩類(lèi)方法中,雙語(yǔ)詞典在訓(xùn)練或推理階段都是必不可少的,因此,其性能在很大程度上取決于雙語(yǔ)詞典的質(zhì)量,但對(duì)于命名實(shí)體而言,類(lèi)似的雙語(yǔ)詞典構(gòu)建工作尚不完善。本文首先提出一種基于多引擎融合的雙語(yǔ)命名實(shí)體詞典構(gòu)建方法,構(gòu)建出高質(zhì)量大規(guī)模的雙語(yǔ)命名實(shí)體詞典,為可控翻譯提供可靠的外部數(shù)據(jù)支撐,接著使用數(shù)據(jù)增強(qiáng)方法在訓(xùn)練數(shù)據(jù)中顯式引入目標(biāo)端命名實(shí)體,并基于Transformer架構(gòu),修改嵌入層以適應(yīng)訓(xùn)練數(shù)據(jù)變化、引入指針網(wǎng)絡(luò)來(lái)訓(xùn)練模型在合適的時(shí)機(jī)對(duì)源端句子中的目標(biāo)端詞元進(jìn)行直接復(fù)制,從而完成可控翻譯的目標(biāo)。
本文的主要貢獻(xiàn)如下:
(1) 提出了一種雙語(yǔ)命名實(shí)體詞典構(gòu)建方法,該方法通過(guò)將源語(yǔ)言命名實(shí)體輸入多個(gè)在線(xiàn)翻譯系統(tǒng)得到候選翻譯,并使用最小貝葉斯風(fēng)險(xiǎn)決策方法對(duì)多個(gè)候選翻譯進(jìn)行篩選,獲得最優(yōu)目標(biāo)端翻譯,從而構(gòu)建大規(guī)模、高質(zhì)量的雙語(yǔ)命名實(shí)體詞典。
(2) 提出了一種在訓(xùn)練過(guò)程中引入詞典約束的Transformer模型,該模型能夠通過(guò)雙語(yǔ)命名實(shí)體詞典,在源端訓(xùn)練數(shù)據(jù)中引入命名實(shí)體約束,使模型生成的翻譯結(jié)果盡可能包含約束,從而達(dá)到翻譯可控。通過(guò)在NIST中-英測(cè)試集上的實(shí)驗(yàn)得出,該模型在譯文整體翻譯質(zhì)量和命名實(shí)體翻譯準(zhǔn)確率上相比其他NMT中可控翻譯相關(guān)工作都取得了顯著提升,且模型解碼速度尚在可接受范圍。
硬可控翻譯方法主要修改模型解碼過(guò)程,在解碼過(guò)程中盡最大可能保證約束出現(xiàn)在翻譯結(jié)果中。Hokamp等人[6]提出了GBS算法,在模型解碼過(guò)程中采用復(fù)雜動(dòng)態(tài)規(guī)劃方法,使得翻譯結(jié)果一定是滿(mǎn)足所有約束的結(jié)果。Post等人[7]在GBS算法的基礎(chǔ)上進(jìn)行優(yōu)化,提出了DBA算法,通過(guò)將假設(shè)與將相同數(shù)量的約束分配到組中,并在每個(gè)時(shí)間步動(dòng)態(tài)地在這些組中劃分固定大小的波束,解決了GBS算法每個(gè)句子所占用波束不固定的問(wèn)題,將解碼算法的時(shí)間復(fù)雜度降低為原來(lái)的1/C(C為約束數(shù)目)。這類(lèi)方法的問(wèn)題是它們不考慮譯文的整體置信度,在解碼過(guò)程中強(qiáng)制生成約束。此外,這類(lèi)方法對(duì)于約束的順序有著嚴(yán)格要求,這對(duì)于語(yǔ)法差異較大的兩種語(yǔ)言的翻譯任務(wù)可能存在負(fù)面影響。另一個(gè)問(wèn)題是與柱搜索相比,這類(lèi)方法的解碼速度顯著降低。
軟可控方法一般從數(shù)據(jù)或模型入手改變模型的訓(xùn)練流程。Li等人[8]在模型訓(xùn)練過(guò)程中用占位符標(biāo)簽替換源端和目標(biāo)端命名實(shí)體,將模型學(xué)習(xí)命名實(shí)體翻譯轉(zhuǎn)化為學(xué)習(xí)翻譯占位符,在推理階段同樣將源端與目標(biāo)端命名實(shí)體替換為占位符,待模型翻譯完成后再用雙語(yǔ)命名實(shí)體詞典進(jìn)行恢復(fù)。Song等人[9]提出了一種數(shù)據(jù)增強(qiáng)方法,通過(guò)雙語(yǔ)詞典將相應(yīng)的源端詞匯替換為目標(biāo)端約束,構(gòu)建增強(qiáng)后的訓(xùn)練語(yǔ)料,這樣模型在訓(xùn)練過(guò)程中可以學(xué)習(xí)到選擇源端詞匯或是目標(biāo)端約束詞匯作為當(dāng)前時(shí)間步預(yù)測(cè)的結(jié)果。Dinu等人[10]提出了類(lèi)似方法來(lái)翻譯給定的術(shù)語(yǔ)約束,用雙語(yǔ)詞典中相應(yīng)的目標(biāo)端術(shù)語(yǔ)直接替換源端術(shù)語(yǔ),或是將目標(biāo)端術(shù)語(yǔ)添加在源端術(shù)語(yǔ)之后。排除序列長(zhǎng)度改變所帶來(lái)的影響,軟可控方法相比于硬可控方法基本不影響模型解碼速度,但模型在翻譯過(guò)程中無(wú)法獲得源端詞匯和目標(biāo)端約束之間的對(duì)應(yīng)關(guān)系,因此會(huì)出現(xiàn)約束詞匯重復(fù)翻譯或漏翻譯的情況。Alkhouli等人[11]研究了Transformer中使用源端-目標(biāo)端注意力進(jìn)行詞對(duì)齊的質(zhì)量,并提出通過(guò)注入外部對(duì)齊信號(hào)來(lái)提高對(duì)齊精度。他們沒(méi)有使用所有源端詞元的注意力權(quán)重來(lái)計(jì)算源端上下文,而是添加了一個(gè)特殊的注意力頭,其源端上下文僅根據(jù)外部詞對(duì)齊信息在對(duì)齊的源端詞元上計(jì)算。為了在解碼過(guò)程中提供對(duì)齊信號(hào),一個(gè)單獨(dú)的“自注意力對(duì)齊模型”被訓(xùn)練來(lái)學(xué)習(xí)源端對(duì)齊,同樣來(lái)自相同的外部詞對(duì)齊信息。然而,使用單獨(dú)的對(duì)齊模型在很大程度上增加了解碼復(fù)雜性,需要特殊處理以?xún)?yōu)化速度。此外,訓(xùn)練和解碼中使用的對(duì)齊質(zhì)量之間的差異會(huì)對(duì)模型性能產(chǎn)生負(fù)面影響。Zenkel等人[12]提出在 Transformer 架構(gòu)中添加一個(gè)單獨(dú)的對(duì)齊層,并學(xué)習(xí)將注意力權(quán)重集中在給定目標(biāo)詞的相關(guān)源端詞元上,以無(wú)監(jiān)督的方式從雙語(yǔ)數(shù)據(jù)中獲取,而不使用外部詞對(duì)齊信息,從注意力層學(xué)習(xí)到的詞對(duì)齊比從樸素Transformer 模型中學(xué)習(xí)到的更加準(zhǔn)確。
本文提出的可控翻譯方法相比于上述方法可以在訓(xùn)練過(guò)程中有效利用雙語(yǔ)詞典信息,該方法對(duì)Transformer模型的源端訓(xùn)練數(shù)據(jù)及輸入表示層進(jìn)行了增強(qiáng),并在Transformer模型的解碼器中引入指針網(wǎng)絡(luò)來(lái)增加約束詞匯的復(fù)制概率,大大提高了模型使用外部約束的能力,從而大幅提升命名實(shí)體翻譯質(zhì)量。
本文主要聚焦于常見(jiàn)命名實(shí)體類(lèi)別,包括人名、地名和組織機(jī)構(gòu)名的翻譯。雙語(yǔ)命名實(shí)體是指屬于不同語(yǔ)言并具有互譯關(guān)系的命名實(shí)體對(duì)。本文提出的模型引入外部雙語(yǔ)命名實(shí)體信息,通過(guò)可控翻譯方法來(lái)提升神經(jīng)翻譯模型對(duì)于命名實(shí)體的翻譯能力,因此,雙語(yǔ)命名實(shí)體的質(zhì)量對(duì)模型的性能起著至關(guān)重要的作用。然而,在目前的相關(guān)工作中,雙語(yǔ)命名實(shí)體詞典雖然被廣泛應(yīng)用,但大多工作對(duì)其構(gòu)建并沒(méi)有引起重視,相關(guān)工作中對(duì)于雙語(yǔ)命名實(shí)體詞典的構(gòu)建方法都較為粗糙。此外,本文對(duì)于雙語(yǔ)命名實(shí)體詞典構(gòu)建的相關(guān)工作進(jìn)行了調(diào)研與實(shí)驗(yàn),并在此基礎(chǔ)上提出了一種融合在線(xiàn)翻譯引擎的構(gòu)建方法,相比之前的工作能夠構(gòu)建更高質(zhì)量的雙語(yǔ)命名實(shí)體詞典。
在線(xiàn)翻譯引擎對(duì)于命名實(shí)體的翻譯通常有特殊的處理方式,不同的在線(xiàn)翻譯引擎可能采用了不同的命名實(shí)體翻譯方法,因此本文希望綜合利用多個(gè)在線(xiàn)翻譯引擎的優(yōu)勢(shì)。例如,對(duì)于中-英翻譯,可以將中文命名實(shí)體送入在線(xiàn)翻譯引擎,獲得英文翻譯結(jié)果。當(dāng)同時(shí)爬取到多個(gè)在線(xiàn)翻譯系統(tǒng)的翻譯結(jié)果時(shí),使用最小貝葉斯風(fēng)險(xiǎn)決策方法從中選取出最佳翻譯候選,如式(1)所示。
(1)
其中,S為源語(yǔ)言命名實(shí)體,T為目標(biāo)語(yǔ)言命名實(shí)體,L為風(fēng)險(xiǎn)函數(shù)。
P(T|S)是給定源語(yǔ)言命名實(shí)體S,目標(biāo)語(yǔ)言命名實(shí)體T的條件概率,當(dāng)存在多個(gè)翻譯候選時(shí),P(T|S)可以由式(2)計(jì)算得出:
(2)
其中,P(T,S)是源語(yǔ)言命名實(shí)體S與翻譯候選T的聯(lián)合概率分布,若為統(tǒng)計(jì)機(jī)器翻譯系統(tǒng),該概率分布可以根據(jù)各個(gè)統(tǒng)計(jì)機(jī)器翻譯系統(tǒng)對(duì)翻譯候選T的總打分近似計(jì)算得出,但由于我們的翻譯系統(tǒng)都是在線(xiàn)翻譯系統(tǒng),因而我們可以假設(shè)條件概率近似服從于均勻分布,即P(T|S)~U(0,1)。L(T,T′)為風(fēng)險(xiǎn)函數(shù),在一般機(jī)器翻譯系統(tǒng)中,常使用BLEU值作為機(jī)器翻譯譯文評(píng)價(jià)指標(biāo),因而風(fēng)險(xiǎn)函數(shù)的定義如式(3)所示。
LTER(T,T′)=1+TER(T,T′)
(3)
TER(Translation Edit Rate)[13]度量的是將候選譯文修改為參考譯文所需要的編輯次數(shù)。盡管TER作為風(fēng)險(xiǎn)函數(shù)較為簡(jiǎn)單,但李等人[14]的研究表明,該指標(biāo)在機(jī)器翻譯系統(tǒng)融合領(lǐng)域中能夠取得不錯(cuò)的效果,計(jì)算也較為簡(jiǎn)單,因而本文在風(fēng)險(xiǎn)函數(shù)中采用這一指標(biāo)。
本文構(gòu)建了一個(gè)雙語(yǔ)命名實(shí)體測(cè)試集用于測(cè)試本文方法的效果,并與其他構(gòu)建方法進(jìn)行對(duì)比。本文從LDC中-英平行語(yǔ)料中抽取人名、地名和組織機(jī)構(gòu)名三類(lèi)中文命名實(shí)體,按照詞頻每類(lèi)抽取詞頻較高(>1000)和較低(<100)的命名實(shí)體各400對(duì),每類(lèi)再加上200對(duì)LDC平行語(yǔ)料不包含的命名實(shí)體構(gòu)成測(cè)試集。
本文爬取了Google翻譯、百度翻譯、有道翻譯和Bing翻譯四個(gè)在線(xiàn)翻譯系統(tǒng),并用2.1節(jié)中介紹的最小貝葉斯風(fēng)險(xiǎn)解碼方法進(jìn)行最佳翻譯候選獲取,結(jié)果如表1所示。
表1 最小貝葉斯風(fēng)險(xiǎn)解碼方法的效果 (單位: %)
從實(shí)驗(yàn)結(jié)果可以看出,最小貝葉斯風(fēng)險(xiǎn)決策方法能夠整合不同在線(xiàn)翻譯系統(tǒng)的優(yōu)勢(shì),從而篩選出最優(yōu)的翻譯候選,提升命名實(shí)體翻譯質(zhì)量。
作為對(duì)比,介紹兩個(gè)相關(guān)工作:
(1) 基于詞對(duì)齊的抽取方法。詞對(duì)齊是自然語(yǔ)言處理領(lǐng)域中的經(jīng)典任務(wù),能夠找出平行句對(duì)中詞的對(duì)應(yīng)關(guān)系,Chen等人[15]利用基于詞對(duì)齊和命名實(shí)體識(shí)別(Named Entity Recognition,NER)的多特征交互模型從雙語(yǔ)平行語(yǔ)料中進(jìn)行雙語(yǔ)命名實(shí)體的大規(guī)模對(duì)齊。
(2) 基于跨語(yǔ)言詞向量的方法。Harris等人[16]認(rèn)為,具有相同上下文的詞匯可能詞意相近,因此,我們可以通過(guò)跨語(yǔ)言詞向量來(lái)尋找雙語(yǔ)語(yǔ)料中的相似上下文??缯Z(yǔ)言詞向量是指一個(gè)向量空間,這個(gè)向量空間能夠表示不同語(yǔ)言的詞匯信息,因此可以用于計(jì)算不同語(yǔ)言之間的上下文或詞匯去相似性。Conneau等人[17]提出了通過(guò)跨語(yǔ)言詞向量構(gòu)建雙語(yǔ)詞典的方法,這一方法同樣可以用于雙語(yǔ)命名實(shí)體詞典的獲取: 對(duì)于每個(gè)平行句對(duì),首先對(duì)源語(yǔ)言句子和目標(biāo)語(yǔ)言句子分別做NER,得到雙語(yǔ)命名實(shí)體,用跨語(yǔ)言詞向量編碼雙邊命名實(shí)體的向量表示,對(duì)于每個(gè)源語(yǔ)言命名實(shí)體,都計(jì)算它與每個(gè)目標(biāo)端命名實(shí)體的上下文相似度,將最相似的作為其對(duì)應(yīng)的目標(biāo)端命名實(shí)體。
本文使用NIST03中-英測(cè)試集對(duì)三種方法進(jìn)行測(cè)試。由于命名實(shí)體的抽取率主要與NER模型的性能相關(guān),因而本文僅評(píng)估翻譯準(zhǔn)確率。由于一個(gè)源語(yǔ)言命名實(shí)體可能存在多個(gè)正確翻譯,如“北京”譯為“Beijing”或“Peking”都是正確翻譯,因而本文采用人工評(píng)估的方式對(duì)詞典準(zhǔn)確率進(jìn)行評(píng)估。結(jié)果如表2所示。
表2 三種構(gòu)建方法準(zhǔn)確率對(duì)比 (單位: %)
從實(shí)驗(yàn)結(jié)果看出,本文方法的命名實(shí)體翻譯準(zhǔn)確率遠(yuǎn)超這兩類(lèi)方法,并且由于算法簡(jiǎn)單,耗時(shí)較短,因此適用于構(gòu)建雙語(yǔ)命名實(shí)體詞典。同時(shí),本文方法也存在著一定的不足,例如,雙語(yǔ)命名實(shí)體詞典中仍會(huì)存在翻譯錯(cuò)誤,這些錯(cuò)誤會(huì)傳播到后續(xù)的翻譯流程中,給正確翻譯命名實(shí)體帶來(lái)一定困難。
本文在Transformer模型的基礎(chǔ)上進(jìn)行改進(jìn),Transformer模型由Vaswani等人在2017年提出[18],是一個(gè)使用了多頭自注意力機(jī)制的編-解碼網(wǎng)絡(luò),編碼器和解碼器均是由六個(gè)相同的子層堆疊而成,相比于之前的端到端序列模型,Transformer使用了多頭自注意力機(jī)制用于加速計(jì)算并能有效緩解長(zhǎng)距離依賴(lài)下梯度消失的問(wèn)題。
給定一個(gè)由源語(yǔ)言句子X(jué),目標(biāo)語(yǔ)言句子Y以及約束詞匯的集合C,模型的訓(xùn)練損失可以定義如式(4)所示。
L=∑log(Y|X′,C;θ)
(4)
其中,X′=[X,C]為約束增強(qiáng)后的源語(yǔ)言句子,它是通過(guò)將源語(yǔ)言句子X(jué)和該句子約束集合C中每個(gè)約束Ci用分隔符號(hào)拼接而成的:
約束詞匯可以在訓(xùn)練過(guò)程中隨機(jī)選取,也可以用第2節(jié)所構(gòu)建的雙語(yǔ)命名實(shí)體詞典進(jìn)行動(dòng)態(tài)添加,具體內(nèi)容將在4.2節(jié)中進(jìn)行闡述。
由于在源端訓(xùn)練數(shù)據(jù)中加入了目標(biāo)端詞匯,因此本文共享了源語(yǔ)言和目標(biāo)語(yǔ)言詞表,并共享源端和目標(biāo)端的詞匯嵌入層(Word Embedding)參數(shù),以強(qiáng)化模型對(duì)于雙語(yǔ)的表示能力,使得模型更容易將源端句子中的約束詞匯復(fù)制到翻譯結(jié)果中。同時(shí),為了讓模型適應(yīng)增強(qiáng)后的數(shù)據(jù),本文參考了BERT模型[19]的結(jié)構(gòu)來(lái)修改編碼器的表示層。
在編碼器的嵌入層網(wǎng)絡(luò)中增加段嵌入(Segment Embedding)部分,與BERT模型相同,段嵌入將文本部分與約束部分用不同的位置下標(biāo)進(jìn)行標(biāo)識(shí),讓模型的表示層獲得文本與約束的分塊信息,使我們的模型像BERT模型一樣能夠處理分段輸入信息。
參考Gulcehre等人[20]將指針網(wǎng)絡(luò)用于稀有詞與未登錄詞預(yù)測(cè)方面的工作,本文在Transformer解碼器中引入了指針網(wǎng)絡(luò)。指針網(wǎng)絡(luò)能讓每個(gè)指針對(duì)應(yīng)輸入序列的一個(gè)元素,從而能夠通過(guò)模型之外的一些計(jì)算,例如通過(guò)Transformer中的編碼-解碼器注意力得分對(duì)輸入序列的每個(gè)詞匯直接進(jìn)行權(quán)重分配,產(chǎn)生一個(gè)新的概率分布,這一概率分布通常被稱(chēng)為復(fù)制概率Pcopy,代表模型直接復(fù)制源端詞匯作為目標(biāo)端輸出的概率分布。這與我們的想法不謀而合: 在源端訓(xùn)練數(shù)據(jù)中加入了目標(biāo)端約束詞匯,希望模型能夠在合適的時(shí)機(jī)從源端句子中直接復(fù)制約束詞匯作為輸出,達(dá)到可控翻譯的目的。
具體來(lái)說(shuō),在任意解碼時(shí)間t,模型對(duì)于當(dāng)前目標(biāo)端詞匯的預(yù)測(cè)概率分布為P(yt|X′,y P(yt|X′,y (5) 模型預(yù)測(cè)概率分布Ppredict由模型解碼器輸出進(jìn)行Softmax運(yùn)算后得到;復(fù)制概率Pcopy由解碼器最后一層的多頭編碼-解碼器注意力(Multi-head Attention)均值作為權(quán)重得到。 對(duì)于輸出詞表中的每一個(gè)詞匯,如果目標(biāo)端詞匯y在源端句子中(即y為設(shè)置的約束),則其對(duì)應(yīng)的復(fù)制概率值Pcopy(y)為y在最后一層解碼器的編碼-解碼器注意力henc中對(duì)應(yīng)位置的得分;反之如果y沒(méi)有在源端句子中出現(xiàn),則將復(fù)制概率Pcopy(y)設(shè)置為0。結(jié)合Pcopy與Ppredict,就得到了模型新的輸出詞表概率分布如式(6)、式(7)所示。 其中,gt∈[0,1]是控制兩部分概率權(quán)重的門(mén)控信號(hào),由上下文向量ct和最后一層解碼器輸出的隱層狀態(tài)zt計(jì)算得到,其中上下文向量ct又由編碼-解碼器注意力和編碼器輸出隱狀態(tài)計(jì)算得到: 其中,hn是編碼器輸出在位置n的隱狀態(tài),αt,n是t時(shí)刻位置n最后一層解碼器的編碼-解碼器注意力得分,N是源端句子的長(zhǎng)度。gt由一個(gè)簡(jiǎn)單的前饋神經(jīng)網(wǎng)絡(luò)(Feed Forward Network,FFN)計(jì)算得到,其中,Wc,Wz,bg都是可訓(xùn)練的參數(shù),σ為sigmoid函數(shù)。gt的計(jì)算方式參考了傳統(tǒng)注意力分?jǐn)?shù),本文認(rèn)為,其意義可以概括為:gt可以度量模型在時(shí)間步t的注意力更傾向于復(fù)制源端詞匯,或是預(yù)測(cè)目標(biāo)端詞匯,以此來(lái)選擇復(fù)制約束詞匯的合適時(shí)機(jī)。模型整體架構(gòu)如圖1所示。 圖1 模型整體架構(gòu) 本節(jié)將詳細(xì)闡述模型訓(xùn)練的實(shí)驗(yàn)數(shù)據(jù),實(shí)驗(yàn)設(shè)置,并從譯文整體質(zhì)量、命名實(shí)體翻譯質(zhì)量以及模型解碼速度對(duì)模型性能進(jìn)行評(píng)估和分析。 我們從LDC中-英平行語(yǔ)料中抽取了約200萬(wàn)句對(duì)的平行數(shù)據(jù)對(duì)模型進(jìn)行訓(xùn)練,并使用NIST02-06中-英測(cè)試集進(jìn)行模型性能的測(cè)試。NIST測(cè)試集中有四個(gè)參考譯文,考慮到不同參考譯文給出的命名實(shí)體翻譯可能存在差異,我們不在一次測(cè)試中使用所有的參考譯文,而是對(duì)四個(gè)參考譯文分別測(cè)試后取平均值。中、英文句子均使用Mosesdecoder進(jìn)行預(yù)處理和子詞分割,并共同學(xué)習(xí)大小為32K的聯(lián)合詞表。 為了進(jìn)行對(duì)比和驗(yàn)證模型的效果,我們選取了一些相關(guān)工作中的方法作為基線(xiàn)模型: (1) 基于占位符替換的數(shù)據(jù)增強(qiáng)方法[8]。該方法將源端與目標(biāo)端訓(xùn)練數(shù)據(jù)中的命名實(shí)體替換為一一對(duì)應(yīng)的特殊符號(hào),對(duì)模型進(jìn)行訓(xùn)練。測(cè)試階段同樣將源語(yǔ)言測(cè)試集中的命名實(shí)體替換,并輸入模型翻譯,得到翻譯結(jié)果后再將特殊符號(hào)還原為目標(biāo)語(yǔ)言命名實(shí)體。 (2) Wang等人提出的Transformer + TME方法[21]。該方法對(duì)Transformer進(jìn)行了三處修改,一是Tagging,在源端訓(xùn)練數(shù)據(jù)中用分隔符將命名實(shí)體區(qū)分出來(lái);二是Mixed,即混合源端與目標(biāo)端命名實(shí)體,將目標(biāo)端命名實(shí)體直接拼接在源端命名實(shí)體之后;三是Extra Embedding,即加入額外的嵌入層向量,與我們的方法類(lèi)似,在嵌入層中加入一個(gè)區(qū)分普通詞匯與命名實(shí)體的向量表示,從而使模型能夠從源端訓(xùn)練數(shù)據(jù)中區(qū)分出命名實(shí)體,為了方便起見(jiàn),我們將該方法的三個(gè)改進(jìn)簡(jiǎn)寫(xiě)為“TME”。 同時(shí),為了驗(yàn)證雙語(yǔ)命名實(shí)體詞典在模型訓(xùn)練中的必要性,我們還對(duì)比了不添加約束和隨機(jī)選取約束進(jìn)行訓(xùn)練的情況。隨機(jī)選取約束的方式為: 首先隨機(jī)生成一個(gè)約束數(shù)目k(本文中設(shè)置為0~4),k服從[0.3,0.2,0.3,0.1,0.1]的概率分布。之后對(duì)訓(xùn)練集中的每個(gè)平行句對(duì),我們?cè)谟?xùn)練過(guò)程中都采取動(dòng)態(tài)約束選取,并在選取過(guò)程中從候選項(xiàng)排除高頻詞與停用詞。在測(cè)試階段,我們統(tǒng)一使用雙語(yǔ)命名實(shí)體詞典對(duì)測(cè)試集進(jìn)行約束。 超參數(shù)設(shè)置方面,由于設(shè)置了源端最大輸入長(zhǎng)度為1 024,因此我們將最大約束數(shù)量設(shè)置為50,避免過(guò)長(zhǎng)句的出現(xiàn);同時(shí)使用Adam優(yōu)化器和標(biāo)簽平滑(Label Smoothing)進(jìn)行訓(xùn)練,學(xué)習(xí)率l=0.000 5,warmup步數(shù)取4 000,所有網(wǎng)絡(luò)層的Dropout參數(shù)都設(shè)為0.3,最大更新步數(shù)設(shè)定為20萬(wàn)步。 該部分從BLEU值[22]、命名實(shí)體翻譯準(zhǔn)確率(Named Entity Translate Rate,NETR)和解碼速度(token/s)三個(gè)指標(biāo)分別對(duì)比了我們的方法和4.2節(jié)中提到的方法。NETR是命名實(shí)體翻譯準(zhǔn)確率指標(biāo),其計(jì)算方法是每個(gè)測(cè)試集中被正確翻譯的不重復(fù)命名實(shí)體占所有命名實(shí)體的比例。 BLEU值評(píng)估結(jié)果和NETR評(píng)估結(jié)果如表3、表4所示。 表3 BLEU值結(jié)果對(duì)比 表4 NETR結(jié)果對(duì)比 (單位: %) 可以看出,占位符替換方法雖然在NETR上相比Transformer模型有所提升,但BLEU值評(píng)估表明,該方法會(huì)損害整體譯文質(zhì)量。Wang等人提出的方法相比樸素Transformer在兩個(gè)指標(biāo)上都有顯著的提升,在四個(gè)測(cè)試集上分別平均提升0.97的BLEU值和32.3個(gè)百分點(diǎn)的NETR。而本文方法在BLEU和NETR上都超越了所有基線(xiàn)模型,相比基線(xiàn)模型在四個(gè)測(cè)試集上平均提升了1.56的BLEU值和35.3個(gè)百分點(diǎn)的NETR,同時(shí),在訓(xùn)練中使用雙語(yǔ)命名實(shí)體詞典進(jìn)行約束的方法比隨機(jī)選取約束的方法提升了0.3的BLEU值和4.5個(gè)百分點(diǎn)的NETR,這也證實(shí)了雙語(yǔ)命名實(shí)體詞典在模型訓(xùn)練中的有效性。此外,在訓(xùn)練時(shí)不添加約束的情況下,本文模型依然能夠保持與Transformer相比的性能。 我們還對(duì)比了在基線(xiàn)模型和本文方法中額外加入約束解碼方法DBA時(shí)[7]的效果。該方法通過(guò)在模型預(yù)測(cè)階段使用雙語(yǔ)命名實(shí)體詞典對(duì)模型進(jìn)行約束,采取復(fù)雜動(dòng)態(tài)規(guī)劃的方法改變束搜索的解碼過(guò)程,來(lái)確定模型當(dāng)前預(yù)測(cè)的詞匯,以滿(mǎn)足約束條件。由于這一方法只對(duì)模型的解碼策略進(jìn)行了調(diào)整,因此與模型結(jié)構(gòu)上的改進(jìn)可以共同使用,對(duì)比結(jié)果如表5所示,左右欄數(shù)據(jù)依次為添加DBA前后模型的效果。 表5 添加DBA算法前后模型表現(xiàn)對(duì)比 從表5中的結(jié)果可以得出,對(duì)于命名實(shí)體翻譯能力較弱的樸素Transformer來(lái)說(shuō),DBA算法的引入對(duì)命名實(shí)體翻譯能力的提升相當(dāng)顯著,但在BLEU指標(biāo)上的提升不明顯,對(duì)于Wang等人的方法和本文所提方法來(lái)說(shuō),DBA解碼策略對(duì)兩個(gè)指標(biāo)都沒(méi)有帶來(lái)正向提升,且模型性能與樸素Transformer接近,這可能是由于解碼策略所生成譯文的優(yōu)先級(jí)較高,因而我們認(rèn)為DBA解碼策略在一定程度上是與模型結(jié)構(gòu)的改進(jìn)策略沖突的。 表6給出了不同方法的平均訓(xùn)練時(shí)長(zhǎng)與解碼速度,所有測(cè)試均在NVIDIA TITAN X單卡GPU上進(jìn)行。訓(xùn)練時(shí)長(zhǎng)方面,所有結(jié)果均為獲得最佳模型所需的訓(xùn)練時(shí)間,對(duì)于占位符替換方法,由于將所有命名實(shí)體替換為特殊符號(hào),模型解碼器的計(jì)算量有所下降,可能加快了訓(xùn)練速度。對(duì)于Wang等人的方法和本文所提方法,盡管增加了額外的訓(xùn)練數(shù)據(jù)長(zhǎng)度與網(wǎng)絡(luò)結(jié)構(gòu),但這兩種模型達(dá)到收斂所需的訓(xùn)練輪數(shù)相比樸素Transformer也有所降低,因而訓(xùn)練時(shí)長(zhǎng)并未增加。 表6 模型訓(xùn)練時(shí)長(zhǎng)與解碼速度對(duì)比 解碼速度方面,本文方法相比基線(xiàn)模型的解碼速度稍慢,原因可能是引入的約束詞匯增加了輸入文本的長(zhǎng)度,以及引入段嵌入部分使得模型的參數(shù)量增加,導(dǎo)致了解碼速度的降低,但考慮到模型整體性能的提升,與樸素Transformer同一數(shù)量級(jí)的計(jì)算開(kāi)銷(xiāo)是可以接受的。此外,在引入DBA解碼策略的情況下,我們與Wang等人的方法解碼速度都出現(xiàn)大幅降低,這可以歸因于DBA解碼策略的算法復(fù)雜度較高,以及算法并行化較為困難。 因此,上述實(shí)驗(yàn)表明,DBA解碼策略對(duì)于命名實(shí)體翻譯能力較強(qiáng)的模型效果并沒(méi)有明顯提升,反而會(huì)影響模型解碼速度。 4.4.1 消融實(shí)驗(yàn) 在消融實(shí)驗(yàn)中,我們?cè)贜IST02中-英測(cè)試集上依次測(cè)試了不加任何優(yōu)化,增加數(shù)據(jù)增強(qiáng)方法(+Data Augment),增加嵌入層優(yōu)化(+Embedding Improvement),增加指針網(wǎng)絡(luò)(+Pointer Network)情況下模型的性能,結(jié)果如表7所示。 表7 消融實(shí)驗(yàn) 從實(shí)驗(yàn)結(jié)果可以看出,只增加數(shù)據(jù)增強(qiáng)方法雖然讓模型能夠一定程度上學(xué)習(xí)復(fù)制源端訓(xùn)練數(shù)據(jù)中的約束詞匯,但對(duì)于整體譯文質(zhì)量是有所損害的;嵌入層部分的改進(jìn)為模型帶來(lái)了譯文質(zhì)量的整體提升;而指針網(wǎng)絡(luò)在小幅提升整體譯文質(zhì)量的同時(shí),也大幅提升了實(shí)體命中率,這與我們的預(yù)期相符: 三個(gè)部分的改進(jìn)是相互促進(jìn)的,當(dāng)三者結(jié)合在一起時(shí),模型獲得了最佳性能。 4.4.2 實(shí)例分析 表8給出了兩個(gè)用Transformer模型和我們的模型將相同中文句子翻譯成英文的實(shí)例,可以看到,在這兩個(gè)實(shí)例中,Transformer模型對(duì)于命名實(shí)體分別存在錯(cuò)翻和漏翻現(xiàn)象。在實(shí)例1中,Transformer模型對(duì)于地名“寧邊”翻譯錯(cuò)誤,原因可能是該實(shí)體在訓(xùn)練數(shù)據(jù)中出現(xiàn)頻率較低,從而模型將其錯(cuò)譯成“南寧”的英文“nanning”,而我們的模型在成功翻譯“寧邊”的情況下,也將其他一些Transformer模型未成功翻譯的詞匯進(jìn)行了正確翻譯。在第二個(gè)實(shí)例中,Transformer模型漏翻了命名實(shí)體“時(shí)事通信社”,漏翻在機(jī)器翻譯中也是常見(jiàn)現(xiàn)象,大多出現(xiàn)在有低頻詞或復(fù)雜語(yǔ)法的句子中,這種情況往往如實(shí)例2一樣,會(huì)導(dǎo)致整個(gè)句子漏翻。而在我們的模型中,不僅“時(shí)事通信社”翻譯正確,被Transformer模型漏翻的句子也完整地得到翻譯。 表8 實(shí)例分析 4.4.3 約束數(shù)量對(duì)模型性能的影響 圖2與圖3對(duì)比了Transformer模型與本文模型在NIST中-英測(cè)試集上翻譯不同數(shù)量命名實(shí)體句子的性能表現(xiàn)。從圖2可以看出,在BLEU值指標(biāo)上,本文模型性能會(huì)隨著句子中命名實(shí)體數(shù)量的增加而不斷提升(提升幅度越來(lái)越小),而Transformer模型的BLEU值會(huì)隨著命名實(shí)體數(shù)量的增加而緩慢下降,這是因?yàn)楸疚哪P蛯?duì)于大部分命名實(shí)體都能正確翻譯而Transformer模型卻不能;從圖3可以看出,本文模型在不同數(shù)量命名實(shí)體的句子上都顯著優(yōu)于Transformer基線(xiàn)模型。不過(guò),我們也觀(guān)察到本文的方法對(duì)于命名實(shí)體的翻譯準(zhǔn)確率隨著句子中命名實(shí)體的數(shù)量增加出現(xiàn)小幅降低,我們猜測(cè)這種現(xiàn)象與本文使用的軟約束模型有關(guān),后續(xù)將進(jìn)行更加深入的分析。 圖2 BLEU值與句子中NE數(shù)量的關(guān)系 圖3 NETR與句子中NE數(shù)量的關(guān)系 本文主要完成了兩部分工作: 一是通過(guò)最小貝葉斯風(fēng)險(xiǎn)決策方法融合多個(gè)在線(xiàn)翻譯引擎,從而構(gòu)建了高質(zhì)量的雙語(yǔ)命名實(shí)體詞典輔助后續(xù)的文本翻譯。二是在可控翻譯的方法創(chuàng)新上,改進(jìn)了一種數(shù)據(jù)增強(qiáng)方法,引入了雙語(yǔ)命名實(shí)體詞典;在Transformer模型結(jié)構(gòu)中改進(jìn)了編碼器嵌入層,使之更適用于新的輸入數(shù)據(jù);引入了指針網(wǎng)絡(luò),使得模型可以高效利用雙語(yǔ)命名實(shí)體詞典帶來(lái)的額外信息。三者結(jié)合使得網(wǎng)絡(luò)可以有效實(shí)現(xiàn)可控翻譯的目標(biāo),根據(jù)在NIST中-英測(cè)試集上的實(shí)驗(yàn)表明,本文模型在譯文質(zhì)量和實(shí)體命中率兩個(gè)指標(biāo)上相比基線(xiàn)模型性能有著顯著提升。同時(shí),本文方法在領(lǐng)域翻譯的相關(guān)工作中也有一定的實(shí)用性,因?yàn)樵摲椒ú粌H可以用于命名實(shí)體,也可以用于任意領(lǐng)域的域內(nèi)詞匯和專(zhuān)業(yè)術(shù)語(yǔ)。 在未來(lái)的工作中,將這一方法用于其他任務(wù)例如領(lǐng)域機(jī)器翻譯和交互式機(jī)器翻譯是我們工作的重點(diǎn),我們相信這一方法在這些任務(wù)中同樣能夠取得很好的效果。4 實(shí)驗(yàn)與分析
4.1 實(shí)驗(yàn)數(shù)據(jù)
4.2 實(shí)驗(yàn)設(shè)置
4.3 實(shí)驗(yàn)結(jié)果
4.4 實(shí)驗(yàn)分析
5 總結(jié)與展望