徐東欽,李軍輝,貢正仙
(蘇州大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 蘇州 215006)
近年來(lái),神經(jīng)機(jī)器翻譯(neural machine translation)[1-3]憑借其序列到序列(Seq2Seq)[4]框架的良好表現(xiàn),已成為主流的機(jī)器翻譯方法。序列到序列框架包含一個(gè)編碼器和一個(gè)解碼器,其通過(guò)編碼器將源端序列編碼成高維度向量,再通過(guò)解碼器將高維度向量解碼獲得目標(biāo)端序列。在這一過(guò)程中,各類(lèi)信息皆表示為高維度向量,很難直觀地去解釋編碼器與解碼器的工作,例如:
(1)編碼器是否能夠從源端序列中捕獲源端語(yǔ)義信息?
(2)如果編碼器能夠捕獲源端語(yǔ)義信息,那么捕獲的是何種語(yǔ)義信息?對(duì)下游任務(wù)是否有幫助?
(3)如果為編碼器提供更多的語(yǔ)義信息,是否能夠提升神經(jīng)機(jī)器翻譯的性能?
本文的工作側(cè)重于回答上述三個(gè)問(wèn)題。特別地,本文使用了抽象語(yǔ)義表示(abstract meaning representation, AMR)[5]作為語(yǔ)義信息的表示載體。AMR是近些年來(lái)備受關(guān)注的一種語(yǔ)義表示方法,其把自然語(yǔ)言文本以句子為單位,將句子的語(yǔ)義抽象表示為單根有向無(wú)環(huán)圖。如圖1(c)所示,句子中l(wèi)ost和our等詞分別被映射 “l(fā)ose-02”和“we”等AMR圖中節(jié)點(diǎn),這類(lèi)節(jié)點(diǎn)被稱為概念(concept)。連接概念之間的邊,如圖1中“:ARG1”和“:manner”等表示兩個(gè)概念之間有向的語(yǔ)義關(guān)系。如圖1中(d)所示,AMR圖文本表示中“~e.N”等表示概念、邊與源端序列中第N個(gè)詞所對(duì)齊(從第0個(gè)詞開(kāi)始計(jì)數(shù)),如“bitter~e.0”表示“bitter”與源端序列中第0個(gè)詞“Bitterly”對(duì)齊?!皐”等變量表示指示引用節(jié)點(diǎn),如“l(fā)”指向“l(fā)ose-02”。需要注意的是,目前AMR還無(wú)法做到表述句子的完整語(yǔ)義。AMR側(cè)重的是描述某個(gè)句子內(nèi)部存在的概念(concept),以及它們之間的語(yǔ)義關(guān)系,但同時(shí)忽略了時(shí)態(tài)、名詞單復(fù)數(shù)等信息。例如,圖1中(c)并沒(méi)有標(biāo)注概念“l(fā)ose-02”的時(shí)態(tài)信息。
圖1 抽象語(yǔ)義表示示例
本文通過(guò)AMR中所包含的詞對(duì)齊信息與語(yǔ)義信息,分別抽取單詞級(jí)別與句子級(jí)別的語(yǔ)義信息,再設(shè)計(jì)實(shí)驗(yàn)驗(yàn)證神經(jīng)機(jī)器翻譯在多大程度上能夠捕獲單詞級(jí)別語(yǔ)義和句子級(jí)別語(yǔ)義。單詞級(jí)別的語(yǔ)義分析實(shí)驗(yàn)利用AMR圖中詞對(duì)齊信息設(shè)計(jì)序列標(biāo)注任務(wù),利用編碼器對(duì)源端序列編碼后的每個(gè)單詞的隱藏狀態(tài)去預(yù)測(cè)與其對(duì)齊的AMR語(yǔ)義標(biāo)簽。句子級(jí)別的語(yǔ)義分析實(shí)驗(yàn)則利用AMR圖中的語(yǔ)義信息設(shè)計(jì)序列生成任務(wù),利用編碼器編碼源端序列,利用解碼器生成對(duì)應(yīng)的AMR序列。
如何理解神經(jīng)機(jī)器翻譯模型在訓(xùn)練過(guò)程中學(xué)習(xí)到了何種信息是研究者一直想解決的問(wèn)題。為了更好地去理解神經(jīng)機(jī)器翻譯模型的運(yùn)行方式,已有一些相關(guān)工作嘗試從不同的角度,如詞法、句法和語(yǔ)義等,去解釋翻譯模型所捕獲的信息。本文按照發(fā)表時(shí)間順序,將相關(guān)工作歸納如下。
(1)解釋神經(jīng)網(wǎng)絡(luò)模型的一種常見(jiàn)方法,是將如詞嵌入、隱藏狀態(tài)等高維度向量使用t-SNE方法[6]映射到二維空間。
(2)Shi等[7]通過(guò)設(shè)計(jì)兩種不同的實(shí)驗(yàn)方案,分析神經(jīng)機(jī)器翻譯編碼器能否學(xué)習(xí)到句法類(lèi)信息,并發(fā)現(xiàn)編碼器能夠捕獲到一定量的源端局部信息與全局句法信息。
(3)Belinkov等[8-9]從詞匯語(yǔ)義、形態(tài)句法角度研究了神經(jīng)機(jī)器翻譯編碼器、解碼器的詞嵌入與句嵌入信息。
(4)Ding等[10]利用層級(jí)相關(guān)性傳播算法,計(jì)算模型中任意兩個(gè)節(jié)點(diǎn)之間的相關(guān)性,可視化分析了神經(jīng)機(jī)器翻譯中源端、目標(biāo)端與隱藏狀態(tài)之間的關(guān)系,并對(duì)翻譯中出現(xiàn)錯(cuò)誤進(jìn)行了原因分析。
(5)Conneau等[11]在探索主流模型的句子嵌入表示學(xué)習(xí)到哪些信息時(shí),設(shè)計(jì)實(shí)驗(yàn)從表層信息、句法信息、語(yǔ)義信息三個(gè)方向研究不同編碼器學(xué)習(xí)到的信息,從中發(fā)現(xiàn)神經(jīng)機(jī)器翻譯編碼器能夠?qū)W習(xí)到豐富有效的語(yǔ)義特征。
(6)Marvin等[12]從單詞語(yǔ)義的角度,利用主成分分析圖,解析神經(jīng)機(jī)器翻譯模型學(xué)習(xí)到的詞義消歧能力。
(7)Poliak等[13]使用預(yù)訓(xùn)練的神經(jīng)機(jī)器翻譯模型,通過(guò)自然語(yǔ)言推斷任務(wù)研究編碼器捕獲到的語(yǔ)義信息,并發(fā)現(xiàn)編碼器可能捕獲到大部分語(yǔ)義角色標(biāo)注信息,不善于捕捉指代消解信息,或許在語(yǔ)義推理方面的表現(xiàn)較差。
(8)Voita等[14]分析基于自注意力機(jī)制的編碼器,并發(fā)現(xiàn)其多頭自注意力機(jī)制可以學(xué)到相鄰詞語(yǔ)信息與句法結(jié)構(gòu)。
本文從語(yǔ)義的角度研究神經(jīng)機(jī)器翻譯編碼器能否學(xué)習(xí)到語(yǔ)義信息。但與Conneau等的工作不同,本文以AMR作為詞或句子的語(yǔ)義表示載體,分析神經(jīng)機(jī)器翻譯編碼器對(duì)源端句子的語(yǔ)義捕獲能力?;贏MR的語(yǔ)義分析近年來(lái)受到越來(lái)越多的關(guān)注,一種常見(jiàn)的語(yǔ)義分析方法是將AMR進(jìn)行線性化,將AMR語(yǔ)義分析看作是一個(gè)序列到序列的問(wèn)題[15-18]。本文以此為基礎(chǔ),利用AMR圖中包含的語(yǔ)義信息,設(shè)計(jì)單詞級(jí)別與句子級(jí)別的語(yǔ)義分析實(shí)驗(yàn),并提出語(yǔ)義分析和機(jī)器翻譯的聯(lián)合學(xué)習(xí)模型。
本節(jié)將詳細(xì)描述分別從單詞級(jí)別和句子級(jí)別的角度分析編碼器捕獲語(yǔ)義。兩種語(yǔ)義分析方法可分別看作序列標(biāo)注任務(wù)與序列生成任務(wù),通過(guò)預(yù)測(cè)標(biāo)簽的準(zhǔn)確率和預(yù)測(cè)AMR序列的準(zhǔn)確率來(lái)判斷編碼器是否學(xué)習(xí)到語(yǔ)義及其掌握語(yǔ)義的程度。
本文使用Transformer[3]序列到序列神經(jīng)機(jī)器翻譯模型。Transformer模型由編碼器與解碼器組成,編碼器與解碼器分別由多個(gè)堆疊的編碼器層與解碼器層組成。編碼器層包括自注意力層(self-attention layer)和全連接前饋神經(jīng)網(wǎng)絡(luò)(position-wise feed-forward networks, FFN),解碼器則包括自注意力層、編碼器與解碼器注意力層(encoder-decoder attention layer)和全連接前饋神經(jīng)網(wǎng)絡(luò)。每一子層之間使用了殘差連接(residual connection),并且應(yīng)用了層級(jí)正則化(layer normalization)。
與基于循環(huán)神經(jīng)網(wǎng)絡(luò)和基于卷積神經(jīng)網(wǎng)絡(luò)的序列到序列模型相比,通過(guò)注意力機(jī)制Transformer不僅能夠捕獲序列之間的長(zhǎng)距離依賴,同時(shí)還能夠并行處理。目前在機(jī)器翻譯、句法樹(shù)解析等任務(wù)中,Transformer均取得了較好的成績(jī)。有關(guān)Transformer模型的更多細(xì)節(jié),可以參閱Vaswani等[3]的論文。
本節(jié)將描述基于AMR對(duì)神經(jīng)機(jī)器翻譯編碼器的語(yǔ)義分析方法?;陬A(yù)訓(xùn)練好的神經(jīng)機(jī)器翻譯模型,利用該模型的編碼器(NMT_encoder),并固定編碼器模型參數(shù),分別從單詞級(jí)別與句子級(jí)別兩個(gè)方面設(shè)計(jì)實(shí)驗(yàn)。由于目前神經(jīng)機(jī)器翻譯大都采用子詞技術(shù)以解決低頻詞的翻譯問(wèn)題,為了與神經(jīng)機(jī)器翻譯模型兼容,本文實(shí)驗(yàn)中對(duì)源端序列與目標(biāo)端序列均使用了BPE方法[19]處理。
2.2.1 單詞級(jí)別語(yǔ)義分析方法
單詞級(jí)別語(yǔ)義分析方法從單詞級(jí)別的角度出發(fā),研究編碼器捕獲到的每個(gè)單詞對(duì)應(yīng)的語(yǔ)義信息。記源端句子為X=(x1,x2,…,xn),根據(jù)句子中單詞與其AMR圖中節(jié)點(diǎn)與邊的對(duì)齊關(guān)系,可以為X中每個(gè)單詞xi獲取其語(yǔ)義標(biāo)簽。下面以引言中的圖1中(a)源端句子為例,說(shuō)明獲取句子中每個(gè)單詞的對(duì)齊語(yǔ)義標(biāo)簽。
(1)如果單詞xi在AMR圖中有唯一對(duì)齊的節(jié)點(diǎn)或邊,則將該結(jié)點(diǎn)或邊記為xi的語(yǔ)義標(biāo)簽。如單詞“l(fā)ost”僅對(duì)齊AMR圖中“l(fā)ose-02”節(jié)點(diǎn),記單詞“l(fā)ost”的語(yǔ)義標(biāo)簽為“l(fā)ose”。為方便起見(jiàn),本文忽略AMR圖中概念節(jié)點(diǎn)的數(shù)字后綴。
(2)如果單詞xi在AMR圖中有多個(gè)對(duì)應(yīng)的節(jié)點(diǎn)或邊,則將多個(gè)節(jié)點(diǎn)或邊用“_”連接,記作一個(gè)聯(lián)合語(yǔ)義標(biāo)簽。如單詞“our”與AMR圖中的邊“:ARG0”、節(jié)點(diǎn)“we”對(duì)齊,記“our”的語(yǔ)義標(biāo)簽為“:ARG0_we”。
(3)除以上情況,將單詞xi的語(yǔ)義標(biāo)簽設(shè)置為“
由此可以獲得源端單詞序列的X的語(yǔ)義標(biāo)簽序列L=(l1,l2,…,ln)。對(duì)圖1(a)中單詞序列,其對(duì)應(yīng)的語(yǔ)義標(biāo)簽序列為(:manner_bitter, lose,:ARG0_we, Ryukyu, Islands)。
單詞級(jí)別語(yǔ)義分析實(shí)驗(yàn)將源端單詞序列X=(x1,x2,…,xn)看作輸入,預(yù)測(cè)語(yǔ)義標(biāo)簽L=(l1,l2,…,ln)。其中,n代表序列中單詞個(gè)數(shù)。源端每個(gè)單詞均有與之唯一對(duì)應(yīng)的語(yǔ)義標(biāo)簽,因此,實(shí)驗(yàn)可以看作一個(gè)序列標(biāo)注任務(wù),使用源端單詞xi經(jīng)過(guò)神經(jīng)機(jī)器翻譯編碼器(NMT_encoder)編碼后的隱藏狀態(tài)hi,預(yù)測(cè)其語(yǔ)義標(biāo)簽li。由于語(yǔ)義標(biāo)簽種類(lèi)較多,傳統(tǒng)的CRF方法并不適用;同時(shí),為了與使用子詞化處理的神經(jīng)機(jī)器翻譯保持兼容,這里對(duì)源端序列與目標(biāo)端語(yǔ)義標(biāo)簽均做了子詞化處理。
源端單詞序列X=(x1,x2,…,xn)經(jīng)過(guò)BPE處理后得到源端子詞序列X′=(x′1,x′2,…,x′m),語(yǔ)義標(biāo)簽li經(jīng)過(guò)BPE處理后得到子語(yǔ)義標(biāo)簽序列l(wèi)′i=(l′i1,l′i2,…,l′ij)。其中,n代表單詞個(gè)數(shù),m代表子詞個(gè)數(shù),i代表語(yǔ)義標(biāo)簽序列L中第i個(gè)語(yǔ)義標(biāo)簽,j代表子語(yǔ)義標(biāo)簽個(gè)數(shù)。
源端子詞序列X′經(jīng)過(guò)編碼器(NMT_encoder)編碼后獲得源端子詞序列的隱藏狀態(tài)H′=(h′1,h′2,…,h′m),根據(jù)源端單詞序列xi對(duì)應(yīng)的子詞序列(x′i1,x′i2,…,x′is),將子詞序列隱藏狀態(tài)(h′i1,h′i2,…,h′is)求和獲得xi的隱藏狀態(tài)hi,由此可獲得源端單詞序列X=(x1,x2,…,xn)的經(jīng)過(guò)編碼器(NMT_encoder)編碼后的隱藏狀態(tài)H=(h1,h2,…,hn)。其中,s代表單詞對(duì)應(yīng)的子詞數(shù)量。如圖2所示,源端單詞“Bitterly”由BPE處理得到子詞序列“Bit@@”、“terly”,子詞序列經(jīng)過(guò)編碼器編碼后獲得其隱藏狀態(tài),對(duì)“Bitterly”的子詞序列隱藏狀態(tài)求和即可獲得“Bitterly”的經(jīng)過(guò)編碼器的隱藏狀態(tài)。
對(duì)于每個(gè)單詞xi的隱藏狀態(tài)hi,使用解碼器(記為L(zhǎng)abel_decoder)預(yù)測(cè)其語(yǔ)義子標(biāo)簽序列l(wèi)′i=(l′i1,l′i2,…,l′ij),并去除BPE標(biāo)記,合并獲得單詞xi的語(yǔ)義標(biāo)簽。由于語(yǔ)義子標(biāo)簽序列均較短,解碼器Label_decoder采用基于門(mén)控循環(huán)單元(gated recurrent unit,GRU)[20]的解碼器。
2.2.2 句子級(jí)別語(yǔ)義分析方法
句子級(jí)別語(yǔ)義分析方法從句子級(jí)別的角度出發(fā),研究編碼器捕獲到的整個(gè)句子中包含的語(yǔ)義信息。
將源端單詞序列X=(x1,x2,…,xn)看作輸入,預(yù)測(cè)AMR序列Y=(y1,y2,…,yt)。其中,n,t分別表示源端序列X和目標(biāo)端序列Y中單詞(或子詞)個(gè)數(shù)。以圖1所示,由于句子級(jí)別語(yǔ)義分析的輸入是經(jīng)過(guò)BPE處理的源端序列(b),輸出是經(jīng)過(guò)BPE處理的AMR簡(jiǎn)化序列(f),因此,句子級(jí)別語(yǔ)義分析可以看作序列生成任務(wù)。
本文使用Ge等人[18]的AMR解析方法,訓(xùn)練時(shí)使用預(yù)處理將AMR圖轉(zhuǎn)化為AMR序列,測(cè)試時(shí)使用后處理將AMR序列轉(zhuǎn)化為AMR圖。以圖1為例,在預(yù)處理過(guò)程中,通過(guò)移除變量、刪除wiki鏈接、換行符和復(fù)制共同引用的節(jié)點(diǎn),可以獲得AMR圖文本表示的AMR簡(jiǎn)化序列;在后處理過(guò)程中將AMR序列中的概念分配唯一變量,同時(shí)修復(fù)冗余、重復(fù)信息和不完整的概念,添加wiki鏈接,修改共同引用節(jié)點(diǎn),使其恢復(fù)成完整的AMR圖(1)詳細(xì)的預(yù)處理和后處理過(guò)程可以參見(jiàn)https://github.com/RikVN/AMR。
源端序列X=(x1,x2,…,xn)經(jīng)過(guò)神經(jīng)機(jī)器翻譯編碼器(NMT_encoder)編碼后得到隱藏狀態(tài)序列H=(h1,h2,…,hn),通過(guò)使用解碼器(記為AMR_decoder)預(yù)測(cè)其AMR序列Y′=(y′1,y′2,…,y′t),最后使用后處理腳本將AMR序列Y′恢復(fù)成完整的AMR圖。
在句子級(jí)別的語(yǔ)義分析實(shí)驗(yàn)中,使用的解碼器(AMR_decoder)是基于Transformer的解碼器。圖2是預(yù)測(cè)單詞的語(yǔ)義標(biāo)簽示意圖。
圖2 預(yù)測(cè)單詞的語(yǔ)義標(biāo)簽示意圖
3.1.1 數(shù)據(jù)集
為了更好地理解神經(jīng)機(jī)器翻譯編碼器捕獲源端句子語(yǔ)義的能力,本文對(duì)兩個(gè)編碼器進(jìn)行語(yǔ)義分析。這兩個(gè)編碼器分別用于訓(xùn)練大規(guī)模和小規(guī)模機(jī)器翻譯數(shù)據(jù)。具體地,大規(guī)模機(jī)器翻譯訓(xùn)練數(shù)據(jù)來(lái)源自WMT14機(jī)器翻譯數(shù)據(jù)集(2)http://www.statmt.org/wmt14/translation-task.html,由英語(yǔ)到德語(yǔ)的平行語(yǔ)料庫(kù)Europarl v7、Common Crawl corpus和News Commentary構(gòu)成,共包含4.5 M平行句對(duì)。此外,本文使用數(shù)據(jù)集中News Commentary v7(NC-v7)部分做小規(guī)模數(shù)據(jù)實(shí)驗(yàn),共包含201 K平行句對(duì)。實(shí)驗(yàn)使用newstest2013和newstest2014分別作為開(kāi)發(fā)集和測(cè)試集。
語(yǔ)義分析AMR語(yǔ)料來(lái)自AMR 2.0(LDC2017T10)數(shù)據(jù)集,其中,訓(xùn)練集、開(kāi)發(fā)集和測(cè)試集分別包含36 521、1 368和1 371個(gè)標(biāo)記了AMR圖的句子。
實(shí)驗(yàn)使用BPE方法對(duì)數(shù)據(jù)集進(jìn)行處理。英文語(yǔ)料與語(yǔ)義分析語(yǔ)料聯(lián)合BPE處理并設(shè)置20 K合并操作,機(jī)器翻譯德語(yǔ)語(yǔ)料BPE處理同樣設(shè)置20 K合并操作。在小規(guī)模數(shù)據(jù)上獲得英文及語(yǔ)義詞匯20 179個(gè),德語(yǔ)詞匯20 052個(gè);在大規(guī)模數(shù)據(jù)上,獲得英文及語(yǔ)義詞匯23 270個(gè),德語(yǔ)詞匯23 031個(gè)。
AMR語(yǔ)義解析基準(zhǔn)實(shí)驗(yàn)與Ge等人[18]的處理方法保持一致,對(duì)聯(lián)合源端、目標(biāo)端做BPE處理,設(shè)置20 KB合并操作且共享源端與目標(biāo)端詞表。在單詞級(jí)別語(yǔ)義數(shù)據(jù)上獲得詞表的大小為17 274,在句子級(jí)別語(yǔ)義數(shù)據(jù)上詞表大小為19 102。
3.1.2 評(píng)測(cè)指標(biāo)
機(jī)器翻譯性能使用multi-bleu.perl(3)https://github.com/moses-smt/mosesdecoder/blob/master/scripts/generic/multi-bleu.perl腳本評(píng)測(cè);句子級(jí)別語(yǔ)義性能使用Smatch[21]腳本評(píng)測(cè)(4)https://github.com/snowblink14/smatch;單詞級(jí)別語(yǔ)義性能使用F1值評(píng)測(cè),計(jì)算如式(1)~式(3)所示。
其中,P為準(zhǔn)確率,R為召回率。在計(jì)算過(guò)程中,并沒(méi)有包括那些語(yǔ)義標(biāo)簽為
3.1.3 模型設(shè)置
本文實(shí)驗(yàn)?zāi)P突陂_(kāi)源框架OpenNMT-py實(shí)現(xiàn)的Transformer。單詞級(jí)別語(yǔ)義分析基準(zhǔn)模型由Transformer編碼器與GRU解碼器組成,句子級(jí)別語(yǔ)義分析基準(zhǔn)模型由Transformer編碼器與Transformer解碼器組成。語(yǔ)義分析模型(NMT_small、NMT_big)的編碼器使用預(yù)訓(xùn)練好的神經(jīng)機(jī)器翻譯模型編碼器參數(shù),并固定編碼器參數(shù)。
在參數(shù)設(shè)置方面,詞向量和編碼器、解碼器的隱藏層的維度均為512維,編碼器層與解碼器層的層數(shù)均設(shè)置為6層,多頭注意力機(jī)制設(shè)置為8個(gè)頭,前饋神經(jīng)網(wǎng)絡(luò)的維度設(shè)置為2 048維。模型參數(shù)均使用Glorot Initialisation方法初始化,共享初始化解碼器詞嵌入層與生成器的參數(shù),句子級(jí)別語(yǔ)義分析模型額外共享初始化了編碼器與解碼器的詞嵌入層參數(shù)。模型參數(shù)使用優(yōu)化器Adam優(yōu)化,其中Adam優(yōu)化器的參數(shù)β1為0.9,β2為0.98,ε為10-9。在訓(xùn)練過(guò)程中,固定了隨機(jī)種子seed為3 435,以token為單位的批處理大小設(shè)置為4 096(神經(jīng)機(jī)器翻譯NMT_big為8 192),warm-up step設(shè)置為16 000,learning rate為0.5,dropout為0.1(GRU解碼器dropout設(shè)置為0),label smoothing為0.1,并使用相對(duì)熵作為損失函數(shù)。
實(shí)驗(yàn)?zāi)P驮贕TX 1080Ti顯卡上訓(xùn)練,迭代更新250 K次結(jié)束。在測(cè)試過(guò)程中,使用集束搜索(beam search)進(jìn)行解碼,并設(shè)置beam size為4,長(zhǎng)度懲罰因子α為0.6,測(cè)試集中報(bào)告結(jié)果的模型來(lái)自開(kāi)發(fā)集上性能最高的單個(gè)模型。
表1給出了神經(jīng)機(jī)器翻譯在英語(yǔ)到德語(yǔ)小規(guī)模數(shù)據(jù)(NMT_small)與大規(guī)模數(shù)據(jù)(NMT_big)上的性能。單詞級(jí)別語(yǔ)義分析實(shí)驗(yàn)與句子級(jí)別語(yǔ)義分析實(shí)驗(yàn)均使用兩個(gè)翻譯實(shí)驗(yàn)的編碼器。表2給出了單詞級(jí)別語(yǔ)義分析實(shí)驗(yàn)結(jié)果,分別比較了基準(zhǔn)模型(Baseline),使用小規(guī)模數(shù)據(jù)(NMT_small)、大規(guī)模數(shù)據(jù)(NMT_big)上神經(jīng)機(jī)器翻譯編碼器(NMT_encoder)的模型之間的性能。
表1 神經(jīng)機(jī)器翻譯BLEU值
表2 單詞級(jí)別語(yǔ)義分析實(shí)驗(yàn)結(jié)果
從表2可以看出,使用固定神經(jīng)機(jī)器翻譯編碼器參數(shù)的模型的性能在大規(guī)模數(shù)據(jù)上比小規(guī)模高出4.91個(gè)F1值,但與基準(zhǔn)模型相比仍然低了17.84個(gè)F1值。這一結(jié)果說(shuō)明,神經(jīng)機(jī)器翻譯模型的編碼器能捕獲到一定的單詞級(jí)別的語(yǔ)義信息,并且隨著訓(xùn)練語(yǔ)料的增加,編碼器能夠捕獲到單詞級(jí)別的語(yǔ)義信息也隨之增加,這與表1中的神經(jīng)機(jī)器翻譯的實(shí)驗(yàn)結(jié)果相符合;另一方面,實(shí)驗(yàn)結(jié)果說(shuō)明,神經(jīng)機(jī)器翻譯模型的編碼器在捕獲單詞級(jí)別的語(yǔ)義上還有進(jìn)一步的提升空間。
表3給出了句子級(jí)別語(yǔ)義分析的實(shí)驗(yàn)結(jié)果,同樣比較了基準(zhǔn)模型、使用小規(guī)模數(shù)據(jù)與大規(guī)模數(shù)據(jù)的神經(jīng)機(jī)器翻譯編碼器的模型之間的性能。從表3可以看出,在語(yǔ)料規(guī)模較小時(shí),使用固定神經(jīng)機(jī)器翻譯編碼器參數(shù)的模型的性能與基線模型相差3.07個(gè)F1值,而在語(yǔ)料規(guī)模較大時(shí),與基線模型相比,高出2.61個(gè)F1值。這一實(shí)驗(yàn)結(jié)果說(shuō)明,神經(jīng)機(jī)器翻譯模型的編碼器能捕獲到相當(dāng)多句子級(jí)別的語(yǔ)義信息,并且隨著語(yǔ)料數(shù)量的增加,捕獲到的語(yǔ)義信息量會(huì)隨之增加,與神經(jīng)機(jī)器翻譯的實(shí)驗(yàn)結(jié)果、單詞級(jí)別語(yǔ)義分析實(shí)驗(yàn)結(jié)果保持一致。值得注意的是,在大規(guī)模語(yǔ)料上,神經(jīng)機(jī)器翻譯的編碼器比基線模型的編碼器能捕獲到更多的語(yǔ)義信息。
表3 句子級(jí)別語(yǔ)義分析實(shí)驗(yàn)結(jié)果
本節(jié)將深入探討神經(jīng)機(jī)器翻譯編碼器捕獲的語(yǔ)義信息。假設(shè)神經(jīng)機(jī)器翻譯編碼器能夠捕獲到充分的句子級(jí)別的語(yǔ)義,那么一般情況下同樣能對(duì)單詞的語(yǔ)義產(chǎn)生足夠的理解。然而,3.2節(jié)語(yǔ)義分析實(shí)驗(yàn)結(jié)果說(shuō)明,基于大規(guī)模翻譯語(yǔ)料,神經(jīng)機(jī)器翻譯編碼器能學(xué)習(xí)到較強(qiáng)的句子級(jí)別語(yǔ)義信息,而在單詞級(jí)別語(yǔ)義的學(xué)習(xí)上還有進(jìn)一步提升的空間。
圖3給出了一個(gè)基于NMT_big編碼器的語(yǔ)義分析結(jié)果例子。從中可以看出,句子級(jí)別語(yǔ)義分析模型能較好地恢復(fù)編碼器中捕獲的句子級(jí)語(yǔ)義,但是單詞級(jí)別語(yǔ)義分析過(guò)程卻將單詞“Elsevier”和“N.V.”的語(yǔ)義標(biāo)簽錯(cuò)誤地預(yù)測(cè)為“ElRather”和“Federal”。從單詞級(jí)別語(yǔ)義分析的實(shí)驗(yàn)上看,存在一種可能的情況,神經(jīng)機(jī)器翻譯編碼器能夠捕獲單詞的語(yǔ)義信息,然而在捕獲的單詞語(yǔ)義信息中,存在部分語(yǔ)義信息對(duì)預(yù)測(cè)AMR圖中對(duì)齊信息不能發(fā)揮直接作用。
圖3 單詞級(jí)別和句子級(jí)別語(yǔ)義分析結(jié)果示例
為了克服這一問(wèn)題,本文對(duì)語(yǔ)義分析實(shí)驗(yàn)進(jìn)行了微調(diào),即不再固定神經(jīng)機(jī)器翻譯編碼器的參數(shù),而是在訓(xùn)練語(yǔ)義分析任務(wù)的解碼器時(shí),同時(shí)也對(duì)編碼器參數(shù)進(jìn)行更新,表4給出了對(duì)單詞級(jí)別語(yǔ)義分析微調(diào)后的實(shí)驗(yàn)結(jié)果。從表中可以看出,神經(jīng)機(jī)器翻譯編碼器微調(diào)后的模型準(zhǔn)確率與召回率較之前有明顯的提升,在小規(guī)模數(shù)據(jù)上比基準(zhǔn)模型高2.53個(gè)F1值,在大規(guī)模數(shù)據(jù)上比基準(zhǔn)模型高3.78個(gè)F1值,且在大規(guī)模數(shù)據(jù)上的F1值比小規(guī)模數(shù)據(jù)高1.25,證明在神經(jīng)機(jī)器翻譯編碼器能夠捕獲到的單詞級(jí)別語(yǔ)義信息中,有部分語(yǔ)義信息是基準(zhǔn)系統(tǒng)的語(yǔ)義分析編碼器無(wú)法完全學(xué)習(xí)到的。結(jié)合3.2節(jié)的實(shí)驗(yàn)結(jié)果,說(shuō)明了神經(jīng)機(jī)器翻譯編碼器能夠捕獲到單詞級(jí)別與句子級(jí)別語(yǔ)義信息,并且通過(guò)微調(diào)能夠提升編碼器對(duì)單詞級(jí)別語(yǔ)義信息的學(xué)習(xí),使得編碼器捕獲更多的語(yǔ)義信息。
表4 單詞級(jí)別語(yǔ)義分析微調(diào)后實(shí)驗(yàn)結(jié)果
類(lèi)似地,本文對(duì)句子級(jí)別語(yǔ)義分析同樣進(jìn)行微調(diào)。實(shí)驗(yàn)結(jié)果如表5所示,神經(jīng)機(jī)器翻譯編碼器在小規(guī)模數(shù)據(jù)上的性能提升較為明顯,較微調(diào)前提升5.14個(gè)F1值,超過(guò)了基準(zhǔn)系統(tǒng)2.07個(gè)F1值,在大規(guī)模語(yǔ)料上的神經(jīng)機(jī)器翻譯編碼器F1值更是達(dá)到了75.54,超過(guò)基準(zhǔn)系統(tǒng)3.7個(gè)F1值。句子級(jí)別語(yǔ)義分析實(shí)驗(yàn)結(jié)果同樣能夠證明,機(jī)器翻譯編碼器能夠捕獲到語(yǔ)義信息。
表5 句子級(jí)別語(yǔ)義分析微調(diào)后實(shí)踐結(jié)果
從3.3節(jié)的實(shí)驗(yàn)結(jié)果分析得出,使用神經(jīng)機(jī)器翻譯編碼器參數(shù)并基于AMR分析任務(wù)進(jìn)行微調(diào),可以得到較好的分析性能。此外,本文使用以下兩種模型集成方法進(jìn)一步提升性能:①將訓(xùn)練過(guò)程保留的最后10個(gè)模型參數(shù)平均,記為NMT_big_avg;②對(duì)訓(xùn)練過(guò)程中保留的最后5個(gè)模型輸出的概率值求平均,記為NMT_big_avg_multiple。
表6比較了相關(guān)工作與本文的AMR分析性能。與其他使用非BERT外部資源的相關(guān)工作相比,本文方法取得更佳的語(yǔ)義分析性能;與使用BERT的相關(guān)工作相比,本文模型簡(jiǎn)單,并且集成方法取得的性能與其差距較小。
表6 與其他模型性能的比較
從第3節(jié)中可以得知,神經(jīng)機(jī)器翻譯的編碼器在學(xué)習(xí)語(yǔ)義上存在潛在的提升空間。本節(jié)嘗試?yán)肁MR中的語(yǔ)義信息輔助神經(jīng)機(jī)器翻譯編碼器學(xué)習(xí)語(yǔ)義,提高翻譯性能。
為了使編碼器融合更多語(yǔ)義信息,本文在機(jī)器翻譯任務(wù)中聯(lián)合了AMR解析任務(wù),使用神經(jīng)機(jī)器翻譯編碼器與AMR解碼器解析AMR序列。聯(lián)合學(xué)習(xí)模型如圖4所示,神經(jīng)機(jī)器翻譯與AMR解析共享編碼器、獨(dú)立解碼器,在模型訓(xùn)練的每一步中,共享編碼器分別聯(lián)合神經(jīng)機(jī)器翻譯解碼器(shared encoder-NMT decoder)訓(xùn)練機(jī)器翻譯任務(wù)、聯(lián)合AMR解碼器(shared encoder-AMR decoder)訓(xùn)練AMR解析任務(wù)。這里,機(jī)器翻譯的部分warmup_step參數(shù)設(shè)置為4 000,learning rate設(shè)置為1.0,其余保持與3.1.3節(jié)設(shè)置一致。
圖4 聯(lián)合學(xué)習(xí)模型
實(shí)驗(yàn)結(jié)果如表7所示,在小規(guī)模數(shù)據(jù)上,聯(lián)合學(xué)習(xí)模型(Joint_small)比純神經(jīng)機(jī)器翻譯模型(NMT_small)提高了1.17個(gè)BLEU值,而在大規(guī)模語(yǔ)料上,聯(lián)合學(xué)習(xí)模型(Joint_big)比并純神經(jīng)機(jī)器翻譯模型(NMT_big)低了0.92個(gè)BLEU值。
表7 神經(jīng)機(jī)器翻譯模型與聯(lián)合學(xué)習(xí)模型機(jī)器翻譯的結(jié)果對(duì)比
實(shí)驗(yàn)結(jié)果表明,在小規(guī)模語(yǔ)料上,神經(jīng)機(jī)器翻譯編碼器捕獲到的語(yǔ)義信息有限,可以利用AMR輔助神經(jīng)機(jī)器翻譯學(xué)習(xí)語(yǔ)義信息、提高翻譯性能,這一結(jié)論與3.3節(jié)的分析保持一致;而基于大規(guī)模翻譯語(yǔ)料,聯(lián)合學(xué)習(xí)中神經(jīng)機(jī)器翻譯性能甚至出現(xiàn)下降。綜上所述,本文總結(jié)了兩種可能的原因:
(1)目前AMR還無(wú)法做到表示完整的語(yǔ)義。例如,AMR側(cè)重的是描述某個(gè)句子內(nèi)部存在的概念(concept),以及它們之間的語(yǔ)義關(guān)系,但同時(shí)忽略了時(shí)態(tài)、名詞單復(fù)數(shù)等信息。神經(jīng)機(jī)器翻譯編碼器已經(jīng)能夠從大規(guī)模的機(jī)器翻譯語(yǔ)料中捕獲到較強(qiáng)的句子級(jí)別語(yǔ)義,而AMR中缺失的部分語(yǔ)義反而會(huì)影響編碼器捕獲完整的語(yǔ)義信息。
(2)在大規(guī)模數(shù)據(jù)中,由于聯(lián)合學(xué)習(xí)的兩個(gè)任務(wù)語(yǔ)料差距較大,AMR訓(xùn)練語(yǔ)料大小僅為36 K,而機(jī)器翻譯訓(xùn)練語(yǔ)料大小高達(dá)4.5 M。聯(lián)合學(xué)習(xí)容易造成模型過(guò)擬合AMR分析任務(wù),因此影響了翻譯的性能。
本文利用了AMR圖中包含的單詞級(jí)別語(yǔ)義與句子級(jí)別語(yǔ)義設(shè)計(jì)實(shí)驗(yàn)分析神經(jīng)機(jī)器翻譯編碼器能否學(xué)習(xí)到語(yǔ)義信息,并試圖利用AMR中包含的語(yǔ)義信息輔助神經(jīng)機(jī)器翻譯、提高翻譯性能。語(yǔ)義分析實(shí)驗(yàn)的結(jié)果表明,神經(jīng)機(jī)器翻譯編碼器能夠在很大程度上捕獲單詞級(jí)別與句子級(jí)別上的語(yǔ)義,但在單詞級(jí)別語(yǔ)義的學(xué)習(xí)上,還有進(jìn)一步提升的空間。融合語(yǔ)義的神經(jīng)機(jī)器翻譯實(shí)驗(yàn)表明,在小規(guī)模語(yǔ)料中可以通過(guò)AMR中語(yǔ)義信息提高神經(jīng)機(jī)器翻譯性能,在大規(guī)模語(yǔ)料上利用AMR中語(yǔ)義信息提高神經(jīng)機(jī)器翻譯性能還存在一定的困難。在未來(lái)的工作中,將進(jìn)一步探索如何在大規(guī)模語(yǔ)料中利用AMR中語(yǔ)義信息提高神經(jīng)機(jī)器翻譯性能。