席紅旗,蔣亞平
(1.河南財政金融學院 計算機與信息技術學院,河南 鄭州 450000;2.鄭州輕工業大學 計算機與通信工程學院,河南 鄭州 450000)
隨著機器學習與神經網絡的不斷發展,神經機器翻譯(neural machine translation,NMT)由于其較強的翻譯能力得到了廣泛的應用[1,2]。NMT最廣泛采用的框架是編碼器-解碼器模型,該模型首先將源語句映射到分布式表示中,然后通過利用軟注意機制循環生成目標詞[3]。先前研究中的大多數編碼器都使用雙向遞歸神經網絡(recurrent neural network,RNNs)來編碼源端順序的上下文[4]。Sennrich等指出,這類模型的不足之處是缺乏對語法信息的考慮,即沒有對長距離單詞之間的依賴關系進行完整的建模[5]。為解決該問題,學者們提出了幾種語法感知的NMT模型[6-9]。從模型架構的角度來看,可以將這些基于語法的NMT模型分為兩種方法:通過線性化結構神經網絡或樹型結構神經網絡對語法結構進行建模。
樹型結構神經網絡根據句子的語法結構對句子進行編碼。在這種背景下,Socher等證明,在順序RNN層上按照語法結構對源語句進行進一步編碼有益于捕獲更多源端語言信息。盡管基于樹形方法已在多個翻譯任務中獲得了較好效果,但該類別下的方法仍面臨一些問題:
①詞匯信息在構成結構的內部節點的構成中被過度使用。Yang等指出,使用短語結構編碼器可能會導致過度翻譯問題[10]。此外,隨著語法結構的使用,模型參數數量會不斷增加,且其中的短語節點可能并不總是有益于神經翻譯模型。②樹形RNN模型采用子和架構,該架構依賴于預定義數量的子節點。因此,基于成分的模型通常用二叉樹進行處理,在某種程度上,這限制了它在計算短語表示時考慮遠程上下文之間的依賴關系,從而忽略了對于正確解釋源語句語義至關重要的單詞依存關系。③Socher等證明單一的權重參數集不足以完全捕獲解析和文本分類任務中語言短語的語法和語義豐富性,因此NMT也無法適應翻譯過程中存在的語法語義豐富性。
針對樹形神經機器翻譯方法存在的局限性,提出了一種動態詞匯化依賴編碼的樹形神經機器翻譯方法。實例驗證了所提出的模型在參數更少的情況下優于兩個先前的模型,對于機器翻譯、領域知識庫自動構建等領域具有較大應用價值。
樹形序列神經機器翻譯系統的思想是建立一個考慮源語句的語法結構的神經網絡。給定一個源語句X=(x1,…,xN) 及其語法樹T, 對模型進行訓練,從而在并行訓練語料庫上實現目標值Y=(y1,…,yM) 的條件翻譯概率p(Y|X,T) 最大化。

(1)
(2)

(3)

圖1 傳統的樹形編碼翻譯器

(4)
(5)

目標句子由RNN順序預測,使用非線性函數fsoftmax計算第j個目標詞yj的條件概率

(6)

上下文向量dj是由注意力模型計算的,該注意力模型用于將每個解碼的隱藏狀態與源端表示形式進行軟對齊
(7)

(8)
(9)
其中,Va、Ua、Wa和ba是模型參數。
如圖1所示,成分表示向量是從其子節點表示得到的,成分節點下面的葉節點處的詞匯信息會被重復使用,并傳播到根路徑上的所有內部節點。這導致以下情況:無論成分節點是否參與解碼,在目標詞的預測中始終考慮相同的詞法信息。Yang等和Chen等指出,對短語表示進行條件限制時,如果沒有適當的控制,可能會導致翻譯過度的問題,即部分源句被多次翻譯[12,13]。解決此問題的另一種方法是要么將成分結構的內部節點詞匯化,要么使用依賴關系結構對句子的語法建模,在這種依賴性結構中,每個節點自然都被詞匯化。此外,對于正確地解釋源句子的語義至關重要的單詞之間的依賴關系可能無法直接體現在連續的短語結構中。在一個句子中,頭詞和它的依存詞之間可能有很大的距離。圖2顯示了一個句子依賴結構的示例,其中單詞對之間的頭部依賴關系被直接鏈接。與依賴關系圖相比,信息流更直接,同時,它給出了更簡單的網絡體系結構,與其中引入了附加節點來代表句子成分的成分結構相反。使用依賴結構對句子的語法進行建模能夠緩解上述問題。

圖2 單詞之間的頭部依賴關系在依賴關系樹中表示
研究表明,自上向下的編碼方法可以更好地傳播和捕獲全局語法和語義信息[14]。為了攜帶語法信息并減少相應單詞之間的距離,提出從核心詞到其依存詞的對源句子進行遞歸編碼。如圖3所示,其中灰線表示單詞嵌入的輸入,黑線表示頭部依賴關系,左和右直線表示從頭到右依存和從頭到左依存順序編碼的方向。以h0作為根節點的隱藏狀態,首先將核心詞“live”編碼為h1, 然后再編碼其左、右依存詞“We”和“places”分別變成h2和h3。 帶箭頭的黑線表示依賴性。首先對核心詞(最重要的信息)和其依存詞(補充信息)建模。表1中說明了編碼過程,“Current”,“Head”和“Sibling”表示當前編碼的單詞、父單詞和兄弟單詞,其表示在每個時間步都輸入到變體GRU中。“INIT”表示初始隱藏狀態為的根節點。

圖3 詞匯化依賴編碼器

表1 每個時間步的編碼過程
在一個普通的基于樹形模型中,樹節點的表示是在二叉化的成分樹之后遞歸構建的,這增加了結構的深度,并沒有充分考慮順序上下文。依賴樹是一個有序圖,它包含頭部依賴關系以及依存詞到其頭部的相對位置。在所提出的方法中,為了對順序信息進行建模,將共享相同頭部的依存詞在中心以圓形方式順序編碼,即從頭到左的依賴和從頭到右的依賴。以頭節點h3為例,h4和h5是左依存詞,而h6是右依存詞。箭頭指示遞歸計算依賴關系的方向,如圖3所示。

(10)
(11)


(12)

為了用全局信息豐富源表示,僅將初始隱藏狀態h0視為根節點的表示,并通過提供其下層的平均值,即由雙向RNN生成的表示,對其進行初始化,即
(13)

由于源側隱藏狀態是以詞匯化的方式計算的,因此很容易將提出的模型與標準的NMT解碼器組合在一起。根據文獻[15],將源端隱藏狀態的平均值定義為解碼器的初始隱藏狀態
(14)
然后,將源隱藏狀態傳遞給標準注意力模型以預測目標詞的條件概率。
傳統方法的另一個缺點是它在整個合成過程中遞歸地使用相同的共享合成函數,并且由于無法捕獲語言短語的語法和語義豐富性而缺乏表達能力。Liu等提到在所有語義組成規則之間共享的相同參數可能無法捕獲文本分類和語義匹配任務上語義結構的豐富性。為了處理由文獻[16]啟發的語義組合中的多樣性所引起的擬合不足問題,進一步采用了由元網絡生成的低維潛在向量z, 以動態調節上下文特定的參數。

(15)


圖4 依賴模型框架

(16)

(17)

本文進行了一組關于英漢翻譯任務的實驗。使用LDC語料庫的并行數據訓練模型,使用NIST 08數據集進行開發,并在NIST 06測試集上進行評估。使用NiuTrans的中文分詞工具包對中文句子進行了分段。此外還在WMT14上針對英語-德語翻譯任務中更為突出的數據集上對提出的模型進行了訓練,其中使用newstest13數據集開發模型并在newstest14數據集上進行檢查。對于傳統的基于樹形模型和本文提出的模型,使用基于Shift-Reduce算法的Stanford Parser解析英語句子,并分別獲得二進制成分樹和依賴樹。該解析器在各種解析任務上均取得了較好的效果,在English Penn Treebank(PTB)上的準確度達到92.0%。出于計算效率的原因,超過50個單詞的句子被排除在訓練集中。通過最常用的30K(英語-漢語)和50K(英語-德語)單詞作為源詞匯和目標詞匯,在兩個平行語料庫的源端和目標端分別覆蓋了約99.8%/97.9%和97.6%/94.5%。所有詞匯量以外的詞都映射到特殊標記“UNK”。表2展示了過濾后的數據集的句子數。

表2 實驗數據統計
為了實現可比性,在本研究中,所有比較的NMT模型都是基于廣泛使用的NMT源代碼dl4mt實現的。NMT的參數設置如下:模型使用500維單詞嵌入和隱藏單元。為了進行公平的比較,建立了一個額外的順序模型,該模型的維數為700,該模型需要有與提出的模型相當數量的參數。為了防止過度擬合,在每個時期之后對訓練數據進行混洗。最小批量大小設置為50個句子。在解碼過程中,采用波束搜索算法來預測每一步的輸出單詞,并且波束搜索的大小為5。盡早停止對每個模型的訓練,以最大程度地減少開發集上的疑慮。此外,使用Adadelta優化模型參數,其中學習率根據梯度的變化進行調整。使用BLEU度量標準評估相對于參考文獻的翻譯準確性,對比系統為:
(1)順序編碼器:一種廣泛使用的逐序列基線,沒有對句子的語法結構進行任何顯式建模。
(2)成分編碼器:傳統的樹形序列基線,它使用基于雙向樹形編碼器。
(3)順序依賴編碼器:具有源方依賴性信息的順序到順序框架的表示。該模型用兩個附加的RNNs擴展了原始的順序編碼器,以對源依賴結構派生的頭富集和子富集序列進行建模。
(4)詞匯化的依賴編碼器:立即將源依賴結構利用到編碼器中。
4.2.1 詞匯化依賴
實驗結果總結見表3。“500 d”和“700 d”表示順序編碼器的隱藏大小,分別設置為500和700。第三列表示每個編碼器的參數數量。“訓練”和“解碼”表示在一個GeForce GTX 1080 GPU上檢查的訓練和解碼速度。最后一欄是通過BLEU分數評估的英漢測試集的翻譯準確性。粗體表示動態詞匯化依賴編碼器明顯優于普通的基于成分的編碼器(模型#3)(p<0.01)。基于依賴的編碼器(模型#6和#8)均優于傳統的順序編碼器(模型#1和#2)和傳統的成分模型(模型#3)。這揭示了依賴方法在結構上下文中對源端表示進行建模的有效性。關于依賴模型對比,所提出的詞匯化依賴模型(模型#8)優于其線性化依賴模型(模型#6)。分析可知提高的原因是:后者按順序構建依賴關系,但仍然僅限于捕獲長距離依賴關系,而所提出的模型能夠通過層次結構直接對依賴關系進行建模。

表3 英漢翻譯結果
進一步評估了捕獲順序上下文信息能力的模型。如前文所述,通過刪除雙向順序編碼層,它對成分模型(模型#4)的翻譯質量產生了巨大影響。英漢翻譯任務中的6.73 BLEU得分大幅下降,表明成分模型的成功取決于順序RNNs所學習的上下文。相反,在不使用顯式單詞序列的情況下,基于依賴關系的方法(模型#7和模型#10)的性能優于常規樹方法(模型#4),產生的結果要高得多。這證實了提出的理論,即在某種程度上,所提出的依賴模型能夠通過對兄弟節點的相對位置進行建模來捕獲順序上下文。
4.2.2 動態參數
潛在向量z控制基本網絡的性能,其維數確定模型參數的數量。本文研究了25、50、75、100、150和200不同維度模型的動態組成機制,而文獻[14]的工作只評估了25以下小維度的z。 圖5中的實驗結果表明,即使向量z的大小減小到25,該模型仍然可以在編碼器中以少2倍的參數獲得可觀的性能。通過研究翻譯質量和模型大小的組合,將z的維數設置為100。x軸表示的維數。圖5(a)的y軸報告編碼器所需的參數數量,圖5(b)的y軸顯示在英漢驗證集上評估的BLEU得分。

圖5 實驗結果
如圖5所示,通過利用動態參數,成分模型和提出的依賴模型(模型#5和模型#10)都可以用更少的參數實現漸進式改進。從結果可知,以潛在向量為組成函數的動態參數有助于捕獲各種語法模式,因此可以更準確地對源端信息進行建模。另外,順序依賴性編碼器(模型#6)由于其元網絡體系結構的不兼容性問題而無法從元網絡帶來的優勢中受益。此外,每個編碼器所需參數的統計數據表明,與傳統的基于樹形模型相比,提出的模型所需的模型參數更少,并且得到的處理速度更快。
順序編碼器(模型#1)和基于成分的編碼器(模型#3)在相同數據上均勝過報告的結果。通過將所有上述改進集成到NMT系統中,提出的動態詞匯化依賴編碼器(模型#10)在參數尺寸較小的情況下,明顯優于基于成分的編碼器(模型#3)(+0.84 BLEU評分)。所提出的模型展示了從順序和結構性上下文對源端表示進行有效建模的能力。
在大型訓練數據(4.5 M)上評估基于樹形NMT模型并進行英語-德語翻譯。如表4所示,動態詞匯化依賴編碼器明顯優于成分編碼器(p<0.01),在英語-德語翻譯任務中,所提出的模型始終優于成分編碼器和順序編碼器,顯示了提出方法的有效性和普遍性。但是,相對于順序模型,本文提出的方法在英語-德語翻譯任務中獲得了+0.52的BLEU分數,這與英語-漢語實驗相比是微不足道的(+1.05 的BLEU分數),原因一方面可能是德語屬于一種語義更為豐富的語言,其次在英語到德語的翻譯中,只使用了有限的詞匯,經常使用50k個單詞,它僅覆蓋了德國訓練數據上94.5%的詞匯量,因此存在模型訓練期間引入詞匯不足的問題。

表4 英語-德語翻譯任務的翻譯結果
根據等式(3),短語表示僅從其子節點的隱藏狀態中得出,并考慮了單詞的語法和語義關系。隨著子樹深度的增加,可以認為上層短語表示的隱藏狀態很難較好地學習語法信息。為了深入評估各個級別的短語表示形式對翻譯質量的影響,對英漢翻譯任務進行了多次實驗。模型允許在不同層次的組成樹上公開參與限制短語表示。通過控制方程(7)的變量i來訓練這些模型。
如表5所示的實驗結果,考慮了組成樹中靠近根(上層)的節點表示的模型(模型#5、模型#6、模型#7),其翻譯質量比那些上層短語向量的模型(模型#1、模型#2、模型#3、模型#4)要稍差一些。此外,忽略葉表示的模型(模型#8)可能會比其它同樣受葉節點約束的模型表現差。這表明在解碼過程中考慮源側高級短語表示會明顯損害翻譯質量。

表5 驗證集上的翻譯結果對比
關于較低節點例如葉節點及其直接父節點的表示,在提出的詞匯化模型與模型#1、模型#2之間僅存在少量改進。可以將縮小的差距歸因于以下事實:用語法信息更新詞法表示時,該信息從上層節點通過自上而下的編碼傳播。通過對組成樹進行詞匯化,傳統的基于樹形模型能夠獲得與依賴編碼器可比的結果,從而驗證了詞匯化形式在神經機器翻譯上下文中的有效性。但是基于依賴的模型和基于成分的模型之間仍然存在差距,原因是前者直接捕獲單詞的長距離依賴,而后者則不能。
進一步評估了所提出的依賴模型對長句子的影響。如圖6所示,根據句子的長度將句子分成10個不相交的組,并對其BLEU分數進行評估,Y軸表示提出的模型和成分編碼器之間的BLEU得分差距。所提出的方法在幾乎所有長度段中都優于成分模型。結果表明,所提出的依賴編碼器在對長距離依賴進行建模時表現更好,從而對長句實現了更好的翻譯質量。

圖6 輸入句子的長度對翻譯性能的影響
在沒有適當地控制來自結構表示形式的信息流的比例的情況下,成分模型往往會過度翻譯句子,尤其是構成要素的翻譯。從對翻譯結果的觀察進一步驗證了這一現象。選擇并檢查由兩個或多個連續的相同短語或片段組成的句子。如圖7所示,根據重復短語的長度,將統計數據分為5個不相交的組。顯然,與連續模型相比,成分模型產生較多的過度翻譯,尤其是在較短的短語上(N<4)。所提出的依賴模型能夠減輕這個問題,并且比其順序對應模型產生更少的過度翻譯。

圖7 重復翻譯結果
5.5.1 歧義表現分析
在表6的第一個示例中,順序編碼模型錯誤地將“signed up”轉換為“署名(signature)”,這在上下文中是不正確的,而兩個樹模型都給出了正確的翻譯“簽約(sign a contract)”。可以將其歸因于樹模型的能力,該樹模型在某種程度上能夠捕獲“sign”和“up”的關系并消除詞義的歧義,表明在NMT中對語法結構進行建模對翻譯是有效的。關于第二個翻譯錯誤,順序編碼模型和成分編碼模型都不能很好地解釋“play”,“music”和“piano”之間的關系,從而導致錯誤的翻譯“play...with a music player(播放)”,而不是“perform piano(演奏)”。但是,在依賴編碼模型中,這些詞的依賴關系以更直接的方式連接在一起,而不管它們在句子中的位置如何,從而產生了更加可靠的翻譯“演奏”。
5.5.2 過度翻譯問題
如表6中的第二個示例所示。成分編碼模型將短語“the same aspiration working in the same industry”翻譯了兩次。可以推斷問題主要是由句子的遞歸結構引起的。它允許注意力模型對不同層次的成分施加條件,這些成分可能攜帶共同的詞匯信息。在提出的依賴編碼模型中,遞歸結構隱含在依賴結構中,因此自然緩解了過度翻譯的問題。

表6 不同模型生成的翻譯示例
本文針對樹形神經機器翻譯方法存在的局限性,提出了一種動態詞匯化依賴編碼的樹形神經機器翻譯方法。通過實例數據分析可知:
(1)解碼過程中考慮源側高級短語表示會明顯損害翻譯質量,動態詞匯化編碼在神經機器翻譯上下文中能夠兼顧順序模型與依賴模型的優點。從而對長句實現了更好的翻譯質量。所提出的依賴模型能夠減輕這個問題,并且比其順序對應模型產生更少的過度翻譯。
(2)潛在向量動態調節每個節點表示的組成參數,能夠更加準確地捕捉語言短語的語法和語義豐富性。
(3)提出的模型有效地提高了翻譯質量與效率,對于多語義詞匯有較好的翻譯效果,并且有效地解決了基于樹形模型中的過度翻譯問題。所提出的動態詞匯化依賴關系模型在參數大小較小的情況下,顯著優于英語-漢語和英語-德語翻譯任務中基于樹形傳統模型。