Jointly Learning to Align and Translate with Transformer Models翻譯

2020-08-13 20:30:02

摘要

機器翻譯(MT)的最新技術是由神經網路方法實現的,它通常比統計方法具有更高的翻譯精度。但是,在與單詞對齊緊密相關的任務上,傳統的統計單詞對齊模型通常仍然是首選解決方案。在本文中,我們提出了一種訓練Transformer模型以產生準確翻譯和對齊的方法。我們從常規神經機器翻譯模型訓練獲得的注意力概率中提取離散對齊,並在多工框架中利用它們來優化翻譯和對齊目標。我們證明,與GIZA ++訓練的IBM對齊模型相比,我們的方法可產生更好結果,而不會犧牲翻譯準確性,並且優於以前基於Transformer模型的單詞對齊的嘗試。最後,通過將IBM模型對齊納入我們的多工訓練中,我們在三個可公開獲得的數據集上報告了比GIZA ++更好的對齊的準確性。另外,我們的實現已開源。

1.介紹

神經機器翻譯(NMT)構成了MT的最新技術,而Transformer模型架構在MT評估中擊敗了其他神經架構。NMT模型中使用的注意力機制 機製是由單詞對齊建模的需求推動的,但是,由於上下文單詞而不是對齊的源單詞可能有助於翻譯,因此注意力概率與傳統意義上的詞對齊可能存在顯着差異。Transformer模型中多層、多頭注意力機制 機製的存在進一步使解釋注意力概率和從中提取高品質離散對齊變得更加複雜
  在MT的背景下,找到從源單詞到目標單詞的對齊有許多應用。(1)單詞對齊的直接應用是從並行語料庫生成雙語詞典。(2)單詞對齊也已用於外部詞典輔助翻譯,以改善低頻詞的翻譯或符合某些術語的翻譯。(3)文件和網頁通常包含單詞註釋,例如格式樣式和超鏈接,這些單詞註釋需要保留在翻譯中。在這種情況下,單詞對齊可用於將這些註釋從源句子轉移到其譯文。(4)在面向使用者的翻譯服務中,將單詞對齊作爲附加資訊提供給使用者可能會提高他們的信任度和信心,還可以幫助他們診斷諸如翻譯不足之類的問題。
  在這項工作中,我們引入一種方法來教Transformer模型以同時生成翻譯和可解釋的對齊:

  • 我們使用多工損失函數,將常規NMT模型訓練中使用的負對數似然(NLL)損失與監督一個注意頭以學習對齊的對齊損失相結合(第4.2節)。
  • 之前時刻的目標上下文對於維持翻譯的自動迴歸屬性至關重要,但可能會限制對齊。我們通過在不同數量的上下文中調節多工目標函數的不同組成部分來緩解此問題(第4.3節)。
  • 我們證明,可以通過平均常規NMT模型(第4.1節)的注意力概率或從統計工具獲得的對齊(第4.4節)獲得的種子來監督該系統。

我們證明我們的模型在對齊精度方面勝過以前的神經網路模型和統計對齊模型,而不會遭受翻譯精度的任何下降。

2.初步工作

2.1 詞對齊任務

給定一個源語言的句子f1J=f1,...,fj,...fJf^J_1=f_1,...,f_j,...f_J以及一個目標語言的翻譯e1I=e1,...,ei,...,eIe^I_1=e_1,...,e_i,...,e_I,一個對齊A\mathcal A被定義爲單詞位置的笛卡爾積的子集:
A{(j,i):j=1,...,J;i=1,...,I}(1)\mathcal A\subseteq \{(j,i):j=1,...,J;i=1,...,I\}\tag{1}
單詞對齊任務旨在找到一個離散對齊,表示從源單詞到目標句子中相應翻譯的多對多對映。

2.2 transformer模型

Transformer模型是一種編碼器-解碼器模型,僅依靠注意力來計算源句子和目標句子的上下文表示。編碼器和解碼器均由多層組成,每個層都包括一個多頭自注意力層和前饋層。解碼器中的層還會在自注意力和前饋層之間施加多頭編碼器-解碼器注意力。爲了保持自迴歸屬性,解碼器中的自我注意子層僅關注由較低層計算的過去字元的表示。
  在這項工作中,我們將專注於指導解碼器中的編碼器-解碼器注意力層。設demb,dk,dv,Nd_{emb},d_k,d_v,N分別表示嵌入維度,key和value的投影維度以及頭的數量。如Vaswani et al所述,對於該層,將與第ii個目標字元相對應的前一個解碼器層的輸出用作query向量qiR1×demb\pmb q^i∈\mathbb R^{1×d_{emb}},源句子所有字元的編碼器輸出打包在一起作爲值VRJ×dembV∈\mathbb R^{J×d_{emb}}和鍵KRJ×dembK∈\mathbb R^{J×d_{emb}}矩陣。爲了計算輸出M(qi,K,V)\mathcal M(\pmb q^i,K,V),N個頭首先將query向量以及鍵和值矩陣投影到不同的子空間中,在各自的子空間中計算注意力,將其輸出彙總並投影回原始空間:
q~ni=qiWnQ,K~n=KWnK,V~n=VWnV(2)\pmb{\tilde q}^i_n=\pmb q^iW^Q_n,\tilde K_n=KW^K_n,\tilde V_n=VW^V_n\tag{2}
Hni=Attention(q~ni,K~n,V~n)(3)H^i_n=Attention(\pmb{\tilde q^i_n},\tilde K_n,\tilde V_n)\tag{3}
M(qKi,V)=Concat(H1i,...,HNi)WO,(4)\mathcal M(\pmb q^i_K,V)=Concat(H^i_1,...,H^i_N)W^O,\tag{4}
其中投影矩陣WnQ,WnK,WnVW^Q_n,W^K_n,W^V_nWOW^O是第n個頭的學習參數。每個頭都按比例分配點積注意力:
Attention(q~ni,K~n,V~n)=aniV~n,(5)Attention(\pmb{\tilde q^i_n},\tilde K_n,\tilde V_n)=\pmb a^i_n\tilde V_n,\tag{5}
where ani=softmax(q~niK~nTdk).(6)where~\pmb a^i_n=softmax(\frac{\pmb{\tilde q^i_n}\tilde K^T_n}{\sqrt{d_k}}).\tag{6}
  向量aniR1×J\pmb a^i_n∈\mathbb R^{1×J}表示由第n個注意力頭計算出的第ii個目標字元與所有jj個源字元的注意力概率。對於任何特定的頭部,可以通過將與所有目標字元相對應的向量ani\pmb a^i_n分組在一起來構造注意力矩陣AI×JA_{I×J}。 在以下各節中,我們分析了可以從這些注意力矩陣AI×JA_{I×J}中提取的對齊概率的品質,並描述瞭如何有效地監督它們以學習單詞對齊。

3.baseline模型

從受過訓練的NMT Transformer中提取單詞對齊的常規方法是對所有層和頭計算的注意力矩陣AI×JA_{I×J}求平均值。所得矩陣給出了每個目標字元在所有源字元上的概率分佈。然後,通過將每個目標單詞與具有最高注意力概率的相應源單詞對齊,將該分佈轉換爲離散對齊。
  Peter et al. (2017)通過基於對齊分佈和注意力分佈之間的距離施加額外的損失,指導注意力概率接近於從統計MT工具包獲得的對齊分佈。通過將當前目標單詞提供給注意力模組,從而爲它提供有關目標句子的更多上下文,與基於指導的對齊訓練的先前方法相比,它們在對齊精度上有所提高。
  Zenkel et al. (2019)提出了一種方法,該方法不依賴外部工具包的一致性進行訓練。相反,他們在Transformer架構之上新增了一個額外的注意層,並直接優化了其啓用方式以預測給定的目標單詞。
  所有上述方法都涉及針對兩個方向的模型訓練以獲得雙向對齊。 然後使用「grow diagonal」合併這些雙向對齊。

4.提出的方法

4.1 平均各層注意力得分

單層中的注意力頭是對稱的,但是不同的層本身可以學習完全不同的對齊。爲了更好地瞭解在不同層上學習的編碼器-解碼器注意力的行爲,我們對在每一層內所有頭上計算的注意力矩陣求平均值,並評估獲得的對齊。結果表明,與對所有層進行平均相比,倒數第二層的注意力概率自然傾向於學習對齊並提供明顯更好的結果(請參閱第5.3節)。在本文的其餘部分,我們將這一種方法稱爲層平均baseline

4.2 多工學習

翻譯和對齊任務密切相關。具有注意力的NMT模型也顯示了學習中間注意力層的對齊。因此,通過利用這兩個任務之間的相關性,從給定翻譯和給定對齊進行監督訓練的神經模型可以從多工學習中受益。
  詞對齊是一項艱鉅且昂貴的任務,但第4.1節中描述的層平均baseline能夠以無監督的方式生成合理的對齊。因此,我們將層平均baseline生成的對齊用作監督模型的標籤。我們首先將對齊轉換爲每個目標字元在源字元上的概率分佈。令GI×JG_{I×J}表示一個0-1矩陣,如果第jj個源字元與第ii個目標字元對齊,則Gi,j=1G_{i,j}=1。我們簡單地歸一化矩陣G中至少與一個源字元對齊的目標字元對應的行,以獲得矩陣GpG^p。如2.2節所述,Transformer模型網路中不同頭和層中的每個目標字元,針對源字元計算出多個注意力概率分佈。由於我們觀察到倒數第二層的注意力概率最自然地傾向於學習對齊(第5.3節),因此我們從倒數第二層中任意選擇一個頭(隨後稱爲對齊頭)並監督其注意力概率分佈,使其接近標籤的對齊分佈(GpG^p)。令AI×JA_{I×J}表示由對齊頭計算出的注意力矩陣。對於每個目標詞ii,我們將GipG^p_iAiA_i之間的Kullback-Leibler散度最小化,這等效於優化以下交叉熵損失La\mathcal L_a
La(A)=1Ii=1Ij=1JGi,jplog(Ai,j).(7)\mathcal L_a(A)=-\frac{1}{I}\sum^I_{i=1}\sum^J_{j=1}G^p_{i,j}log(A_{i,j}).\tag{7}
  監督一個頭的動機在於,它使模型具有靈活性,可以讓模型要麼使用對齊頭計算的表示形式,或者更多地依賴於其他頭計算的表示形式。我們結合標準的NLL翻譯損失Lt\mathcal L_t訓練模型以使La\mathcal L_a最小化。總損失L\mathcal L爲:
L=Lt+λLa(A),(8)\mathcal L=\mathcal L_t + \lambda \mathcal L_a(A),\tag{8}
其中λ\lambda是一個超參。

4.3 提供全目標上下文

transformer解碼器計算以過去的目標字元和所有源字元爲條件的下一個目標字元的概率。這是通過遮蔽自我注意力的概率來實現的,即,在計算第ii個目標字元的表示時,解碼器的elf-attention只能計算來自上一層的{1,2...i1}\{1,2...i−1\}字元的表示。解碼器的這種自迴歸行爲對於模型表示目標句子上的有效概率分佈至關重要。但是,僅以過去的目標字元爲條件限制了對齊任務。如第4.2節所述,僅在過去的目標字元和所有源字元的情況下,訓練對齊頭以對第ii個目標字元的對齊分佈進行建模。由於對齊頭不知道下一個目標字元,因此很難學習此字元與源字元的對齊方式。先前的工作還通過將要對齊的目標字元輸入到計算對齊方式的模組,強制模組預測目標字元或屬性(例如POS標籤)來緩解該問題。輸入下一個目標字元假定我們已經事先知道它,因此需要單獨的翻譯和對齊模型。強制對齊模組預測目標字元的屬性會有所幫助,但仍會以間接方式傳遞目標字元的資訊。通過在不同數量的上下文中調節損失函數的兩個組成部分,我們克服了這些限制。NLL損失Lt\mathcal L_t取決於過去的目標標記,以保留自迴歸屬性:
Lt=1Ilog(p(eif1J,e1i1)).(9)\mathcal L_t=-\frac{1}{I}log(p(e_i|f^J_1,e^{i-1}_1)).\tag{9}
但是,對齊損失La\mathcal L'_a現在取決於整個目標句子:
La=La(Af1J,e1I).(10)\mathcal L'_a=\mathcal L_a(A|f^J_1,e^I_1).\tag{10}
這是通過執行解碼器模型的兩次前向傳遞來實現的,其中一個傳遞對未來目標令牌進行遮蔽以計算NLL損失Lt\mathcal L_t,而另一個傳遞不進行遮蔽以計算來自對準頭的對準損耗La\mathcal L'_a。儘管這種表述迫使網路學習適應於全部和部分目標語境的表示形式,但第5.5節表明,這種方法在提高對齊精度的同時不會降低翻譯品質。

4.4 對齊訓練數據

到目前爲止,我們描述的方法不依賴於外部統計工具包中的對齊,而是對從層平均baseline中提取的對齊執行自訓練。但是,GIZA ++提供了一種可靠的方法來計算準確的對齊。如果獲得更高的對準精度至關重要,那麼我們的多工框架也可以利用GIZA++的對齊來產生更好的對準精度(第5.4節)。在此設定中,我們使用GIZA ++對齊作爲標籤,而不是從層平均baseline獲得的標籤來監督對齊頭。