楊 艦,高盛祥,余正濤,朱浩東,文永華
(1.昆明理工大學(xué) 信息工程與自動(dòng)化學(xué)院,云南 昆明 650500; 2.昆明理工大學(xué) 云南省人工智能重點(diǎn)實(shí)驗(yàn)室,云南 昆明 650500)
自然處理應(yīng)用依賴于大規(guī)模的平行語料庫,而這種平行語料僅可用于少數(shù)幾種語言,比如英語、中文、少數(shù)歐洲語言等,對(duì)于大多數(shù)其他語言,并行數(shù)據(jù)實(shí)際上是稀缺的.可比語料作為一種豐富型資源,為數(shù)據(jù)稀疏性問題提供了一種可能的解決方案.雖然在2個(gè)可比較的文檔之間很少有句子級(jí)平行的情況,但是在可比較的語料庫中仍然存在潛在的大量并行短語,從可比語料中抽取平行短語對(duì)能緩解資源匱乏的語言數(shù)據(jù)稀疏性問題.
隨著互聯(lián)網(wǎng)的快速發(fā)展,網(wǎng)絡(luò)上存在大量的漢越可比語料資源,如維基百科的漢越對(duì)照頁面,雙語新聞網(wǎng)站等,這些新聞都是對(duì)同一事件進(jìn)行描述,但并不是完全對(duì)齊的雙語文本.從這些雙語文本能很好的提取雙語知識(shí),主要的提取任務(wù)有雙語詞典抽取,其主要是基于WordNet的語義相似性度量的使用,它可以消除翻譯后的上下文向量的歧義,然后通過種子字典構(gòu)建2種語言之間的雙語詞典,這個(gè)方法的關(guān)鍵是種子字典,它在影響精度方面起著重要作用[1].如雙語短語對(duì)抽取,Zhang等使用SVM來從可比語料中抽取平行短語對(duì),但是該方法需要人工設(shè)計(jì)短語特征,如:短語長度差、短語單詞數(shù)目等等,非常耗費(fèi)人力和資源[2].近年來,隨著將詞使用分布式表示方法得到低維向量表示取得了較好的效果,越來越多的研究人員開始研究更大語言單元的分布式表示問題,尤其是短語[3],是由詞組成,但粒度又比句子小,如Mikolov等人將短語視為不可分的n-gram[4],Socher等提出了遞歸自編碼器來學(xué)習(xí)短語表示[5-8].然而上述的短語表示很少考慮融入上下文語義信息,使得短語表示脫離了句子語義本身,抽取出的短語準(zhǔn)確率不高,因此本文提出融合上下文語義信息的漢越平行短語對(duì)抽取方法,主要利用注意力機(jī)制將句子編碼向量融入到短語向量中,本文為了學(xué)習(xí)雙語短語表示,引入半監(jiān)督自編碼器,如下圖1所示,利用平行短語對(duì)作為約束條件,誘導(dǎo)性的學(xué)習(xí)雙語短語表示,在本文提出的方法中有效避免了構(gòu)建SVM分類器模型需要使用的特征選擇過程,也引入了上下文語義信息和雙語短語對(duì)的約束條件來學(xué)習(xí)雙語短語向量表示.
圖1 半監(jiān)督自編碼器
文中的主要貢獻(xiàn)有以下2個(gè)方面:(1)融合上下文語義信息到短語表示中;(2)學(xué)習(xí)雙語短語向量表示的預(yù)訓(xùn)練編碼器.
可比語料作為豐富型的語料資源,為數(shù)據(jù)稀疏性問題提供了一種很好的解決方案,早期對(duì)可比語料庫的許多嘗試都集中在學(xué)習(xí)雙語單詞翻譯,這些嘗試的基本假設(shè)是基于單詞及其翻譯在相應(yīng)的語言中以相似的上下文出現(xiàn),因此可以使用共現(xiàn)統(tǒng)計(jì)來檢測它們;Munteanu等首次提出了從可比句子中檢測亞句片段[9].
目前,從可比語料庫中抽取平行短語對(duì)的方法主要有以下幾種方法:(1)SVM分類器,Zhang等提出將短語提取作為分類任務(wù),首先在平行語料庫中通過GIZA++生成所有可能的短語對(duì),將平行短語對(duì)設(shè)置為正例,然后把非平行的短語設(shè)置為負(fù)例;然后,人工設(shè)計(jì)短語對(duì)特征,如短語長度差、相同起始、相同結(jié)尾、短語中單詞數(shù)目等;最后,構(gòu)建SVM分類器以判斷短語對(duì)是否平行[10-11].(2)模板方法,Santanu Pal等人通過定義模板方法抽取短語對(duì)來提升英語-孟加拉語機(jī)器翻譯的性能.首先,使用文本蘊(yùn)含方法將雙語可比語料庫的兩側(cè)分為幾組;然后,使用概率雙語詞典的n-best列表在組之間建立了跨語言鏈接;最后,在每個(gè)對(duì)齊的組之間使用了基于模板的短語提取技術(shù)[12].Hewavitharana S等從可比句子對(duì)中,繞過非平行片段,只對(duì)齊平行片段,抽取雙語平行短語,融合到統(tǒng)計(jì)機(jī)器翻譯中,解決數(shù)據(jù)稀疏的問題[13];(3)短語樹對(duì)齊,Zhan等[14]提出了一種利用解析技術(shù)和詞對(duì)齊方法從漢英雙語語料庫中提取短語翻譯對(duì)的新方法.
在上述方法中,基本上是利用短語的特征來提出算法和分類器等,而實(shí)際上,上下文語義信息對(duì)于短語的定位、切割有很重要的支撐作用,同時(shí),表示學(xué)習(xí)方法能夠有效的學(xué)習(xí)到短語本身的特征.因此,本文提出融合上下文語義信息的漢越平行短語對(duì)抽取方法,來從可比語料中抽取平行短語對(duì),緩解漢越數(shù)據(jù)稀疏的問題.
考慮到上下文語義信息會(huì)對(duì)平行短語對(duì)抽取產(chǎn)生影響,本文提出的融合上下文語義信息的漢越平行句對(duì)抽取模型,主要基于兩部分組成:預(yù)訓(xùn)練模型和分類器模型.對(duì)于預(yù)訓(xùn)練模型,其主要目的是預(yù)訓(xùn)練出編碼器,通過注意力機(jī)制將句子編碼信息融入到短語中,同時(shí),利用平行短語對(duì)約束學(xué)習(xí)漢越雙語短語表示,如下圖2(A)所示.分類器模型則主要是由編碼器和全連接層組成,如下圖2(B)所示.
其中源語言句子A和目標(biāo)語言句子B代表漢越平行句對(duì),源語言短語X和目標(biāo)語言短語Y分別表示A,B句子中利用工具抽取到的漢語短語集合及越南語短語集合.圖2(A)左邊輸入為漢語句子和漢語短語,輸出的X1是帶有上下文語義信息的漢語短語,右半部分輸入為越南語句子和越南語短語,輸出的Y1是帶有上下文語義信息的越南語短語,這個(gè)過程為自編碼,其中損失稱為重構(gòu)損失.為了使?jié)h語、越南語訓(xùn)練的短語向量相關(guān)聯(lián),采取訓(xùn)練雙語詞向量的方法訓(xùn)練雙語短語向量,讓漢、越短語向量在空間中靠近,目的是把學(xué)習(xí)到的漢、越短語編碼器用作分類器.如圖2(B)中所示,把編碼器學(xué)習(xí)到的參數(shù)用到分類器中再進(jìn)行微調(diào)以得到效果最優(yōu)的分類器,其中源語言句子C和目標(biāo)語言句子D代表可比句子,源語言短語M和目標(biāo)語言短語N代表C,D句子中的漢、越短語.
圖2 模型架構(gòu)
圖3 漢語短語結(jié)構(gòu)樹
在本小節(jié)中,將從漢越可比語料中抽取漢語、越南語的短語集合,以便模型從中抽取出平行短語對(duì),對(duì)于漢語和越南語的短語抽取,先利用偽平行句對(duì)抽取模型方式從可比語料中得到可比句子,將可比句子轉(zhuǎn)化為短語結(jié)構(gòu)樹的形式[15-16],然后根據(jù)短語結(jié)構(gòu)樹中的結(jié)點(diǎn)來獲取短語.漢、越單語短語抽取方法一致,以中文為例,如下圖3所示.
具體描述如下:
1) 利用斯坦福工具可以將句子轉(zhuǎn)化為Tree結(jié)構(gòu).
2) 對(duì)Tree結(jié)構(gòu)進(jìn)行遍歷,對(duì)于本文來說,只需將葉子節(jié)點(diǎn)以及相應(yīng)的父結(jié)點(diǎn)取出來,如NP-PN,NP等.
3) 對(duì)于每個(gè)父結(jié)點(diǎn)可認(rèn)為是句子中的一個(gè)短語,再利用短語中包含的單詞個(gè)數(shù)進(jìn)行二次篩選.
4) 最后得到了漢語短語集合和越南語短語集合.
本文的預(yù)訓(xùn)練模型主要利用上下文信息和雙語短語對(duì)作為約束訓(xùn)練出漢、越編碼器.模型的實(shí)現(xiàn)主要是基于半監(jiān)督自編碼.從上圖2(A)可看出,本文通過平行句對(duì)以及其包含的短語對(duì)作為訓(xùn)練語料,在編碼層通過LSTM模型獲取短語和句子特征,經(jīng)過注意力機(jī)制把獲取到的特征融入到短語表示中,使其帶有一定的上下文語義信息.對(duì)于給定長度為m個(gè)詞組成的句子x={x1,x2,…,xm},LSTM編碼得到的隱含向量ht在時(shí)間步為t時(shí)刻的更新公式如下所示:
ht=f(xt,ht-1),
(1)
其中,xt表示第t個(gè)詞,ht-1表示t-1時(shí)刻的隱含向量,通過逐詞編碼,生成句子語義向量h,同理,可以得到短語編碼向量.為了獲取最終包含上下文語義信息的短語向量表示c,通過注意力機(jī)制將句子編碼向量h和短語每個(gè)時(shí)刻的隱狀態(tài)hj=(h1,h2,…,hn)進(jìn)行結(jié)合,如下公式所示:
(2)
(3)
et,j=a(st-1,hj),
(4)
其中,et,j表示的是句子編碼向量和短語中的對(duì)應(yīng)關(guān)系,at,j則代表所占權(quán)重大小.a是匹配函數(shù),其目的是計(jì)算該時(shí)刻兩個(gè)隱層狀態(tài)的匹配程度.其具體實(shí)現(xiàn)有多種方法,本文中采用點(diǎn)乘法.在解碼層同樣使用LSTM進(jìn)行解碼,引入注意力機(jī)制后t時(shí)刻詞的產(chǎn)生概率公式如下所示:
st=f(st-1,yt-1,ct),
(5)
(6)
定義重構(gòu)損失為Erec,其中s是源短語的向量列表,s′是目標(biāo)短語的向量列表,si表示短語中的每一個(gè)詞,如下公式所示:
(7)
因此,漢越雙語短語對(duì)可以用(s,t)表示,θ為參數(shù),分別學(xué)習(xí)到的向量特征代表源語言及目標(biāo)語言短語對(duì)的約束程度:
Erec(s,t;θ)=Erec(s;θ)+Erec(t;θ).
(8)
為了學(xué)習(xí)到雙語短語表示,本文將平行短語對(duì)作為約束條件,目的是使得源語言的短語語義表示和目標(biāo)語言的短語語義表示距離最小化,由于兩種語言的詞嵌入是分別單獨(dú)學(xué)習(xí)的并且位于不同的向量空間中,因此假設(shè)兩個(gè)語義嵌入空間之間存在轉(zhuǎn)換矩陣w,則雙語短語語義損失為Esem(s,t;θ),如下式所示:
Esem(s,t;θ)=Esem(s|t;θ)+Esem(t|s;θ).
(9)
用ps表示源短語s的向量特征,對(duì)語義損失作以下變換,首先將轉(zhuǎn)換矩陣w*pt,添加偏置項(xiàng)b,激活函數(shù)使用f=tanh激活函數(shù),最后,我們計(jì)算它們的歐幾里得距離為:
(10)
Esem(s|t;θ) 可以使用相同的方式計(jì)算.
由于公式9只計(jì)算了語義的正向誤差,所以為了增強(qiáng)語義錯(cuò)誤使用了正反兩個(gè)例子,即相應(yīng)的最大語義邊際誤差變?yōu)?/p>
(11)
本文的短語對(duì)分類器模型主要是通過少量語料,對(duì)預(yù)訓(xùn)練好的編碼器進(jìn)行微調(diào),對(duì)含有上下文語義信息的漢越短語向量輸入到全連接層中進(jìn)行Softmax分類,用來判斷任意的漢、越短語是否為平行短語對(duì),首先對(duì)短語對(duì)進(jìn)行點(diǎn)乘和相減得到包含下文語義信息的短語向量表示c,然后分別與權(quán)重矩陣Wa及Wb點(diǎn)乘使之處于同一向量空間,加上偏置項(xiàng)b后使用激活函數(shù)tanh得到隱狀態(tài)hi,最后計(jì)算出短語對(duì)的概率p,σ代表sigmoid激活函數(shù),公式如下所示:
(12)
(13)
(14)
p(yi)=σ(Wchi+c).
(15)
E(s,t;θ)=αErec(s,t;θ)+(1-α)Esem(s,t;θ).
(16)
超參數(shù)α代表了重構(gòu)損失和語義損失的占比程度,模型在訓(xùn)練集中要達(dá)到的最終目是:
(17)
本文的分類器的損失函數(shù)應(yīng)為:
(18)
表1 語料統(tǒng)計(jì)表
表2 實(shí)驗(yàn)語料
表3 實(shí)驗(yàn)設(shè)置
為驗(yàn)證本文提出融合上下文語義信息的漢越平行短語對(duì)抽取方法的效果,本文的實(shí)驗(yàn)數(shù)據(jù)規(guī)模如下表1所示,主要包含漢越平行語料和漢越可比語料.對(duì)于漢越平行語料,主要是利用GIZA++和一致性短語算法,獲取的平行短語對(duì)作為正例,非平行短語對(duì)作為負(fù)例.對(duì)于漢越可比語料,先得到可比語料中的可比句子,然后利用短語樹,得到句子中的短語集合.
本文模型的實(shí)驗(yàn)設(shè)置如下表3所示.
實(shí)驗(yàn)中采用了基于SVM的分類器[2]模型、自編碼器Auto Encoder訓(xùn)練的分類器模型和融合短語對(duì)的半監(jiān)督自編碼器Semi-AutoEncoder模型與本文模型在漢越短語對(duì)抽取效果上進(jìn)行比較.其中SVM的參數(shù)設(shè)置及分類特征選擇引用Munteanu[9]的方法.Auto Encoder選擇tensorflow1.14版本,使用gpu,latent_size設(shè)置為128,batch_size設(shè)置為512,test_batch_size設(shè)置為256,training_epochs設(shè)置為50,神經(jīng)網(wǎng)絡(luò)層數(shù)3層.Semi-AutoEncoder其參數(shù)training_epoches設(shè)置為100,drop_out設(shè)置為0.5,word_ebd_dims設(shè)置為300,dev_batch_size設(shè)置為50.
為了驗(yàn)證方法的有效性,本文采用準(zhǔn)確率(Precision)、召回率(Recall)、F值(F-Measure)作為評(píng)測指標(biāo).計(jì)算公式如下:
(18)
(19)
(20)
實(shí)驗(yàn)1漢越短語對(duì)抽取實(shí)驗(yàn)對(duì)比
表4 漢越短語對(duì)抽取實(shí)驗(yàn)對(duì)比
從表4實(shí)驗(yàn)結(jié)果可以看出,對(duì)比SVM和AutoEncoder模型可知,將漢、越短語向量分別訓(xùn)練效果不是很好,而當(dāng)添加了短語對(duì)作為Semi-AutoEncoder約束,其準(zhǔn)確度超過了基于SVM的分類器,同時(shí),也可以看出本文提出融合上下文語義信息的漢越平行句對(duì)抽取模型,其準(zhǔn)確率達(dá)到了75.62%,召回率為79.13%,相比于其他模型來說,都有所提升.說明融入了上下文語義信息的句子對(duì)分類器模型準(zhǔn)確地更高更好.
實(shí)驗(yàn)2短語對(duì)融入Moses系統(tǒng)前后Blue值對(duì)比
同時(shí),為了檢測本文從可比語料中抽取的平行短語對(duì)能否提升翻譯性能,本文搭建了Moses翻譯系統(tǒng),在數(shù)據(jù)清洗時(shí)將長語句與空語句刪除,詞對(duì)齊使用GIZA++訓(xùn)練,語言模型訓(xùn)練使用IRSTLM,最后對(duì)pharse-table和reordering-table進(jìn)行優(yōu)化加快速度,首先用漢越平行語料訓(xùn)練得到基線的Blue值,然后將本文抽取的平行短語對(duì)添加到訓(xùn)練數(shù)據(jù)中觀察Blue值的提升.性能評(píng)估使用BLEU值,實(shí)驗(yàn)結(jié)果如表5所示:
表5 融合短語對(duì)的機(jī)器翻譯
從表5可以看出,當(dāng)增加從可比語料中抽取的平行句對(duì)為200 k時(shí),其BLEU增加了0.48,短語對(duì)增加為500 k時(shí),BLUE值增加為0.93.從中我們可以看出,抽取的平行短語對(duì)能夠有效提高機(jī)器翻譯的性能.而隨著增加更多的平行短語對(duì),性能會(huì)更優(yōu).因此,從可比語料中抽取知識(shí)是一種能夠有效解決數(shù)據(jù)稀缺型問題.
實(shí)驗(yàn)3融入短語對(duì)后的譯文示例
表6給出的是基線系統(tǒng)與本文提出的加入抽取短語對(duì)后的翻譯對(duì)比示例.
本文為了解決稀缺型數(shù)據(jù)稀缺的問題,利用可比語料作為豐富型資源的特點(diǎn),提出融合上下文語義信息的平行短語對(duì)抽取方法,從可比語料中抽取平行短語對(duì),該方法主要考慮句子能為短語提供上下文信息以及平行短語對(duì)作為半監(jiān)督的約束條件,可以預(yù)訓(xùn)練出編碼器,通過預(yù)訓(xùn)練的編碼器很容易訓(xùn)練出漢越雙語平行短語對(duì)分類器,實(shí)驗(yàn)結(jié)果表明,本文方法相比傳統(tǒng)的手工設(shè)計(jì)特征的基于SVM分類器方法性能有所提升,同時(shí)將本文方法用于抽取平行短語對(duì)應(yīng)用于Moses系統(tǒng)中,也提高了翻譯性能.在接下來的工作中,探索將抽取的平行短語對(duì)融入到端到端的神經(jīng)機(jī)器翻譯.