【論文解讀】Fixing Translation Divergences in Parallel Corpora 機(jī)器翻譯分歧
Fixing Translation Divergences in Parallel Corpora for Neural MT 修復(fù)神經(jīng)機(jī)器翻譯平行語料庫中的翻譯分歧
這是 Multilingual Natural Language Processing (多語言自然語言處理) 的課推薦讀的論文。
機(jī)器翻譯領(lǐng)域確實(shí)好多 challenge,但是人工智能領(lǐng)域好多問題真的說白了都是數(shù)據(jù)集的問題 orz。
看一下大家的解決方案~
0. 摘要
基于語料庫的機(jī)器翻譯方法依賴于干凈的平行語料庫的可用性。但是這些資源是稀缺的,而且由于在準(zhǔn)備過程中涉及自動(dòng)過程,它們通常很 noisy。
本文描述了一種用于檢測平行句中翻譯分歧的無監(jiān)督方法。
我們依靠一個(gè)神經(jīng)網(wǎng)絡(luò)來計(jì)算跨語言句子相似度分?jǐn)?shù),然后用它來有效地過濾掉不同的翻譯。
此外,網(wǎng)絡(luò)預(yù)測的相似性分?jǐn)?shù)用于識(shí)別和修復(fù)一些部分分歧,產(chǎn)生額外的平行片段。我們針對英法和英德機(jī)器翻譯任務(wù)評估了這些方法,并表明使用過濾/校正的語料庫實(shí)際上提高了 MT 性能。
1. 介紹
機(jī)器翻譯 (Machine Translation, MT) 系統(tǒng)的質(zhì)量在很大程度上取決于平行句對的可用性和質(zhì)量。平行文本是稀缺資源,并且存在大型平行語料庫的語言對很少。
為了解決并行數(shù)據(jù)的缺乏,已經(jīng)開發(fā)了各種方法,包括使用非并行或可比較數(shù)據(jù)的方法,從單語語料庫生成合成并行數(shù)據(jù)的技術(shù),以及容易在生成的并行中引入噪聲的自動(dòng)對齊/翻譯引擎句子。平行句中的不匹配是一個(gè)常見問題,在 MT 中大多被忽略,但它們似乎對神經(jīng) MT 引擎尤為重要。
下表是語義不同的平行句子的例子。英語 (en)、法語 (fr) 和法語注解 (gl)。分歧以粗體字表示:

表中給出了一些從 OpenSubtitles 語料庫中提取的不完全語義等同的英法平行句示例。在平行語料庫中發(fā)現(xiàn)多種類型的翻譯分歧:
平行句子的兩邊(第一行和第二行)包含額外的片段,很可能是由于句子分割錯(cuò)誤
有些翻譯可能完全不相關(guān)(第三行)
不準(zhǔn)確的翻譯也存在(第四行)
我們提出了一種基于建模單詞相似性構(gòu)建跨語言句子嵌入的無監(jiān)督方法,該方法依賴于能夠識(shí)別幾種常見跨語言分歧的神經(jīng)架構(gòu)。然后使用生成的嵌入來衡量句子之間的語義等價(jià)性。
為了評估我們的方法,我們發(fā)現(xiàn)過濾掉英法和英德翻譯任務(wù)中的不同句子對后,可以提高翻譯準(zhǔn)確性。另外在某些情況下,可以通過刪除不同的片段來修復(fù)不同的句子,從而進(jìn)一步提高翻譯質(zhì)量。
2. Related Work
衡量機(jī)器翻譯 (MT) 中翻譯分歧的影響主要集中在句子對齊中引入噪聲。結(jié)果表明,統(tǒng)計(jì) MT 對噪聲具有很強(qiáng)的魯棒性,而神經(jīng) MT 往往更敏感。已經(jīng)進(jìn)行了幾項(xiàng)研究來表征文本片段之間的語義等價(jià)程度。
一項(xiàng)研究提出了一種單語句子相似性網(wǎng)絡(luò),該網(wǎng)絡(luò)在文本蘊(yùn)含任務(wù)中取得了最先進(jìn)的結(jié)果。
另一項(xiàng)研究訓(xùn)練了一個(gè)基于 SVM 的跨語言分歧檢測器,結(jié)果表明,僅在非分歧句子上訓(xùn)練的 NMT 系統(tǒng)的翻譯分?jǐn)?shù)略高,同時(shí)需要較少的訓(xùn)練時(shí)間。
我們的工作不同之處在于,我們使用具有更簡單拓?fù)浣Y(jié)構(gòu)的網(wǎng)絡(luò)通過優(yōu)化基于單詞對齊的損失函數(shù)來建模句子相似度,并預(yù)測單詞相似度分?jǐn)?shù)以糾正分歧的句子。
3. Neural Divergence 分類器
我們網(wǎng)絡(luò)的架構(gòu)受到 word alignment (詞對齊)工作的啟發(fā)。使用上下文而不是固定的詞嵌入

它計(jì)算任何源-目標(biāo)句子對 的相似度,其中 和 。該模型由 2 個(gè)雙向 LSTM 子網(wǎng)絡(luò) 和 組成,分別對源句和目標(biāo)句進(jìn)行編碼。
由于 和 采用相同的形式,我們只描述前一個(gè)網(wǎng)絡(luò):它輸出前向和后向隱藏狀態(tài) 和 。
然后將它們連接成一個(gè)向量,編碼第 個(gè)源詞作為 ;。
此外,最后的前向/后向隱藏狀態(tài)(圖 1 中的深灰色)也被連接起來表示整個(gè)句子 ;。然后可以使用例如獲得句子對之間的相似性。例如余弦相似度:
(Eq 1)
我們的模型經(jīng)過訓(xùn)練以最大化兩個(gè)句子中單詞之間的單詞對齊分?jǐn)?shù),使用匯總每個(gè)源/目標(biāo)單詞的對齊分?jǐn)?shù)的聚合函數(shù)。對齊分?jǐn)?shù) 由點(diǎn)積 給出,進(jìn)一步 aggregated 如下:
(Eq 2)
訓(xùn)練 loss:
(Eq 3)
3.1 反例訓(xùn)練
訓(xùn)練是通過最小化損失函數(shù)來進(jìn)行的。為此需要源 () 和目標(biāo) () 詞的注釋示例。作為正面例子,我們使用平行語料庫的成對句子;這些句子中的所有單詞都被標(biāo)記為平行 。
我們考慮三種類型的反面實(shí)例:
基本情況使用隨機(jī)不成對的句子。
在這種情況下,所有單詞都被標(biāo)記為 divergent 。
由于負(fù)對可能很容易分類并且我們希望我們的網(wǎng)絡(luò)檢測不太明顯的分歧,我們進(jìn)一步創(chuàng)建更困難的負(fù)樣本如下。
我們首先用具有相同詞性的單詞序列替換源或目標(biāo)中的隨機(jī)單詞序列。未替換的單詞被視為平行 ,而被替換的單詞被注釋為 。與某些替換詞對齊的詞也被分配了 divergent 標(biāo)簽。例如,給定原始句子對:
我們可以用詞性標(biāo)簽“PRP VB”替換“you feel”,用另一個(gè)具有相同標(biāo)簽的序列(即“we want”),產(chǎn)生一個(gè)新的否定實(shí)例(不同的詞以粗體顯示):
我們需要 word alignments (單詞對齊)來識(shí)別序列 “ressentez-vous” 的 divergent,它與原始句子中的“you feel”對齊。
最后,由于在許多語料庫中觀察到的句子分割錯(cuò)誤,我們還通過在源(或目標(biāo))句子的開頭(或結(jié)尾)插入一個(gè)句子來構(gòu)建反例。
原始句子對中的詞被標(biāo)注為 ,而插入的新詞被認(rèn)為是 divergent 的。給定與上面相同的句子對,通過在原始來源的末尾插入句子“Not.” 來創(chuàng)建一個(gè)反例:

為了最終避免生成句子長度差異較大的簡單否定句對,我們將否定示例限制為長度比 < 2.0(最短句子為 3.0)。
3.2 Divergence Correction
我們的訓(xùn)練語料庫包含許多遵循共同模式的不同句子,包括添加一些額外的前導(dǎo)/尾隨詞。
因此,我們實(shí)現(xiàn)了一個(gè)簡單的算法,可以丟棄兩側(cè)的前導(dǎo)/尾隨單詞序列。為了找到包含原始句子中平行片段的最佳源 和目標(biāo) 索引,我們計(jì)算:

序列 被認(rèn)為是可能的校正,其中我們使用具有最高相似性得分的序列來替換原始序列 。請注意,不考慮短句,我們強(qiáng)制 和 。下圖(左)顯示了對齊矩陣 的示例:
一個(gè)可接受的 correction 是:
Que ressentez-vous ? ? What do you feel ?
對應(yīng)于 。
4 Experiments
4.1 Corpora
我們從英語-法語 OpenSubtitles 語料庫中過濾掉 divergences,該語料庫由一系列電影和電視字幕組成。我們還使用非常 noisy 的英語-德語 Paracrawl4 語料庫。
這兩個(gè)語料庫都存在許多潛在的分歧。為了評估英法翻譯性能,我們使用了 En-Fr Microsoft Spoken Language Translation 語料庫,該語料庫是根據(jù)實(shí)際的 Skype 對話創(chuàng)建的。英語-德語的表現(xiàn)是在公開可用的 Newstest-2017 上評估的,對應(yīng)于從在線資源中選擇的新聞報(bào)道。
為了更好地評估我們的分類器在面對不同單詞分歧時(shí)的質(zhì)量,我們還從原始 OpenSubtitles 語料庫中收集了 500 個(gè)包含不同類型示例的句子:
200 對句子; 100 個(gè)不成對的句子; 100個(gè)帶有替換示例的句子; 100 個(gè)帶有插入示例的句子。
所有數(shù)據(jù)都使用 OpenNMT5 進(jìn)行預(yù)處理,執(zhí)行最少的標(biāo)記化。在標(biāo)記化之后,每個(gè)詞匯表之外的單詞都被映射到一個(gè)特殊的 UNK 標(biāo)記,假設(shè)詞匯表包含 50000 個(gè)更頻繁的單詞。
4.2 Neural Divergence
個(gè)單元格的詞嵌入使用 fastText 進(jìn)行初始化,通過 MUSE (Multilingual Unsupervised and Supervised Embeddings)[2] 進(jìn)一步對齊。
兩個(gè)雙向 LSTM 都使用 256 維隱藏表示 。網(wǎng)絡(luò)優(yōu)化是使用帶有梯度裁剪的 SGD 完成的。對于每個(gè) epoch,我們隨機(jī)選擇 100 萬個(gè)句子對,每 batch 放置 32 個(gè)示例。我們運(yùn)行 10 個(gè) epoch,當(dāng)驗(yàn)證集的損失增加時(shí),每個(gè) epoch 從 0.8 開始衰減。Divergence 按照(equation1) 計(jì)算,并設(shè)置 r = 1.0;對于 divergence correction,我們使用 N = 20 和 τ = 3。每種類型的示例(Paired, Unpaired, Replace 和 Inser)始終生成相同數(shù)量的示例。替換和插入方法所需的對齊是使用 fast align[3] 執(zhí)行的
4.3 Neural Translation
除了上面詳述的基本標(biāo)記化之外,我們還執(zhí)行 Byte-Pair Encoding,其中包含通過連接兩種語言端學(xué)習(xí)的 30000 次合并操作。神經(jīng)系統(tǒng)基于開源項(xiàng)目 OpenNMT;使用類似于 Transformer 的模型。
編碼器和解碼器都有 6 層
多頭注意力在 8 頭以上
隱藏層大小為 512
前饋網(wǎng)絡(luò)的內(nèi)層大小為 2048
詞嵌入有 512 個(gè) cells
dropout probability 設(shè)置為 0.1
batch size 設(shè)置為 3072
優(yōu)化器是 Lazy Adam,β1 = 0.9,β2 = 0.98
warmup steps = 4000
訓(xùn)練在 30 個(gè) epoch 后停止
5 Results
我們評估了 divergence 分類器在單詞級別預(yù)測不同類型發(fā)散的能力。測試集是手動(dòng)標(biāo)注的,模型是在 OpenSubtitles 語料庫上訓(xùn)練的。如果一個(gè)詞的聚合分?jǐn)?shù)為負(fù),則該詞被認(rèn)為是 divergence 的。
結(jié)果表明,只要模型是用這些類型的例子訓(xùn)練的,平行和不成對的句子中的 non-divergent 詞很容易被發(fā)現(xiàn)。
然而,當(dāng)模型沒有使用不成對的句子進(jìn)行訓(xùn)練時(shí),準(zhǔn)確性會(huì)急劇下降。包含 divergent 詞和 non-divergent 詞混合的句子的準(zhǔn)確性較低。

下圖圖 2 說明了我們的網(wǎng)絡(luò)在使用 PU 示例(右)和 PURI 示例(左)進(jìn)行訓(xùn)練時(shí)的輸出。前者(右)無法預(yù)測某些分歧,很可能是因?yàn)槠溆?xùn)練集不包含混合分歧和非分歧詞的句子。此外,使用 PURI 示例訓(xùn)練的網(wǎng)絡(luò)正確地為該對分配了較低的相似性分?jǐn)?shù),因?yàn)閮蓚€(gè)句子沒有傳達(dá)完全相同的含義。

最后,使用不同訓(xùn)練數(shù)據(jù)配置獲得的 BLEU 分?jǐn)?shù)如表 3 所示:
整個(gè)數(shù)據(jù)集 (all)
優(yōu)化 equation 3 后最相似的對 (sim)
在應(yīng)用 (sim+fix) 的校正算法之后
Ref 和 Fix 列表示訓(xùn)練中使用的原始句子和更正句子的數(shù)量(以百萬為單位)

過濾句子對 (sim) 后獲得的結(jié)果明顯優(yōu)于基線(all), 分別為 +0.94 和 +2.25 BLEU。
關(guān)于 OpenSubtitles,當(dāng)修復(fù) 250 萬個(gè)句子(第 4 行)時(shí),準(zhǔn)確度進(jìn)一步提高了 +2.01,而相同的句子對在以其原始形式(第 3 行)添加時(shí)沒有顯示任何改進(jìn)。
Paracrawl 語料庫也得到了類似的結(jié)果。修復(fù) 250 萬個(gè)句子(第 4 次)后的結(jié)果優(yōu)于使用原始形式(第 3 次)獲得的結(jié)果。
6 結(jié)論與展望
介紹了一種基于深度神經(jīng)網(wǎng)絡(luò)的無監(jiān)督方法,用于檢測平行語料庫中的翻譯差異。該模型優(yōu)化單詞對齊并在單詞級別計(jì)算細(xì)粒度的分歧預(yù)測。過濾掉未對齊或發(fā)散的單詞的結(jié)果會(huì)產(chǎn)生更大更好的訓(xùn)練集。與使用整個(gè)數(shù)據(jù)集進(jìn)行訓(xùn)練相比,實(shí)驗(yàn)顯示出顯著的改進(jìn)。
我們計(jì)劃使用該模型預(yù)測單語語料庫上的句子嵌入,通過向量相似性度量收集平行對,并在應(yīng)用子詞標(biāo)記化和使用多個(gè) LSTM 層捕獲機(jī)器翻譯上下文中的層次結(jié)構(gòu)后測量性能。
Reference
知乎 Echo: https://zhuanlan.zhihu.com/p/605716470
[1]原文地址:https://aclanthology.org/D18-1328/
[2]Facebook research 多語言無監(jiān)督和監(jiān)督嵌入: https://github.com/facebookresearch/MUSE
[3] word aligner: https://github.com/clab/fast_align
[4] github 地址:https://github.com/SYSTRAN/similarity
