論文題目:《Subword Regularization: Improving Neural Network Translation Models with Multiple Subword Candidates》

來源:ACL2018

鏈接:link

一.簡介

Subword單元是一種在神經機器翻譯(NMT)中解決開放辭彙的有效的方式。雖然句子通常被轉換為獨一無二的subword序列,但是subword的分割卻是模糊的,而且即使使用了相同的詞表也有可能會被分割為多種結果。本文解決的問題是,是否可以將模糊分割作為一種雜訊來提高NMT的魯棒性。

神經機器翻譯(NMT)模型通常都有一個固定的詞表,因為模型的訓練和預測都非常依賴於詞表的大小。然而,限制詞表大小會增加未知詞的數量,這使得翻譯不準確,尤其是在開放的詞表設置中。一個常用的做法就是把稀缺的詞語分割為subword單元。BPE是很多NMT系統中使用的標準subword分割方式。BPE分割在詞表大小和解碼效率之間提供了良好的平衡,並且避免了對未知單詞進行特殊處理的需要。

BPE將一個句子編碼成為唯一的subword序列。但是即使是使用相同的詞表,一個句子也可以被表示為多個subword序列。如下圖所示:

在訓練期間,多個分割候選將使模型對雜訊和分割錯誤更具有魯棒性,因為它們可以間接幫助模型學習單詞的組合性,例如books可以被分割為book和s。

本論文中,我們這對開放辭彙NMT提出了一種新的正則化方法:subword regularization。採用多種subword分割來使NMT更具有魯棒性。

二.本文貢獻

1. 我們提出一種簡單的NMT訓練演算法來整合多種分割候選者。我們的方法是作為一種即時採樣數據來實現的,這對NMT結構來說並不是特別的。Subword regularization可以被用於任何模型,而不用改變模型的結構。

2. 我們提出一種基於一元語言模型的新的subword分割演算法,這種演算法提供了多個具有概率的分割。

三.NMT的多subword分割

1.NMT訓練中的即時subword採樣。

給定一個源端句子X和目標端句子Y,x=(x1,x2,…,xM)和y=(y1,y2,…,yN)是用subword分割器分割得到的對應的subword序列。NMT將翻譯概率P(Y | X)= P(y | x)建模為一個目標語言序列模型:

這裡theta是模型參數。通常用RNN來預測yn,但是需要注意的是subword regularization可以被用於任意的NMT模型而不只是基於RNN的翻譯模型。

使用最大似然估計來訓練NMT。具體來說就是根據給定的語料庫D來最大化對數似然函數L:

這裡我們假設源端句子X和目標端句子Y被分割為多種subword序列,P(x|X)和P(y|Y)分別是對應的概率。在subword regularization中,我們用邊緣似然函數來獲得最優參數theta。

想要精確優化邊緣似然函數是不可行的,因為可能分割的數量隨句子長度的增加呈現指數增長。我們分別從源端和目標端獲取k個序列來近似上述邊緣似然函數:

為了簡化,這裡我們k=1.訓練NMT的時候,參數theta是按照batch來進行迭代優化的,所以只要迭代次數足夠多,即便k=1,也可以得到邊緣似然函數的近似值。需要注意的是,subword序列是在每次參數更新時來採樣的。

2.Decoding

解碼的時候,我們只有一個源端句子X。一個最直接的方式是根據P(x|X)選擇最優的分割序列。另外,我們可以用n個最好的分割結果來合併多個候選。具體來說就是,給定n個最好的分割(x1,x2,…,xn),我們通過以下方式來得到最優的解碼結果y:

這裡|y|表示y的subword數量,λ是用來懲罰較短的句子的參數,λ是通過開發集來進行優的。在這篇論文中我們把這兩個演算法稱為one-best decoding和n-best decoding.

四.基於語言模型的subword分割

1.Byte-Pair-Encoding(BPE)

Byte-Pair-Encoding(BPE)是一種被廣泛用於NMT系統的subword分割方式。BPE首先把一個完整的句子分割為單個的字元,頻率最高的相連字元對合併以後加入到詞表中,直到達到目標詞表大小。對測試句子採用相同的subword分割方式。BPE分割的優勢是它可以較好的平衡詞表大小和需要用於句子編碼的token數量。

BPE只是通過字元的頻率來進行分割操作的,高頻的子字元串會較早的被合併,這樣常用的詞語就會保持為一個獨特的符號。而對於由很多稀有的字元組成的單詞,就會被分割為較小的單元。所以,只有目標詞表比較小(16k到32k)的時候,用於編碼句子的符號數量不會顯著增加,這對於高效解碼來說是一個重要的特徵。

BPE的缺點在於,它不能提供多種分割的概率。

2.一元語言模型

在這篇論文中,我們基於一元語言模型提出一個新的subword分割方式,這種方式可以獲得不同分割結果所對應的概率。一元語言模型假設每個subword都是獨立的,所以subword序列x=(x1,x2,…,xM)的概率為subword出現概率的乘積,目標序列以相同的方法進行建模:

這裡V表示的是預先設置好的詞表。輸入X最有可能的分割結果是:

這裡的S(X)表示的是所有候選分割。

如果詞表V已經給定了,可以由EM演算法得到subword的共現概率。p(xi)是隱變數,該演算法最大化下列邊緣似然函數L:

但是在實際設置中,詞表的大小是未知的。因為詞表設置和出現概率的聯合優化是棘手的,這裡我們採用下列迭代方式來找到它們。

1. 根據訓練語料設置一個合理的seed詞表。

2. 重複下列步驟直到達到目標詞表的大小。

a. 修改詞表,用EM演算法來優化p(x)

b. 對於每一個subword xi,計算lossi。這裡lossi表示當subword xi被移出當前詞表的時候,似然函數減小的可能性。

c. 根據lossi 對符號進行排序,然後保留前a%的subword。

這裡有一些選擇seed詞表的方法,常用方法是結合語料中所有字元和最高頻的子字元串。

最終的詞表將包含語料中所有獨立的字元,基於字元的分割還被包含在分割候選集S(X)中。換句話說,使用一元語言模型的subword分割可以看作是字元,subword和word的概率混合。

3.subword sampling

Subword regularization在每次參數更新的時候從分佈P(x|X)中採樣一個subword分割。一個方法來近似採樣是用l-best分割。更具體地,我們首先根據概率P(x|X)獲得l-best分割。l-best查詢是通過多項分佈概率得到的。一個分割xi對應的概率分佈是:

這裡alpha是一個用於控制分佈平滑性的超參數。

4.BPE VS Unigram language model

BPE是一種字典編碼的變體,就是可以找到一個符號集合,這個符號集合就是所有用於文本編碼的符號數量是最少的。一元語言模型是一種熵編碼,就是為了使文本的編碼長度最短。

BPE和一元語言模型共有的特點就是根據特殊的數據壓縮原理用較少的bit去編碼文本。所以,我們期望看到BPE和一元語言模型的共同優點。但是一元語言模型更具有靈活性因為它是基於概率語言模型來實現的,可以輸出多個分割對應的概率,這對subword regularization是非常重要的。

五.實驗結果

BPE作為baseline,分別進行one-best decoding和n-best decoding兩種方式的解碼。

推薦閱讀:

相關文章