NLP-2015:Subword NMT模型【使用子词来解决OOV问题】
《原始論文:Neural Machine Translation of Rare Words with Subword Units》
一、概述
1、摘要
神經(jīng)機器翻譯(NMT)模型通常以固定的詞匯量運行,但是翻譯是一個開放詞匯的問題。
先前的工作通過退回到字典來解決詞匯外單詞的翻譯。
在本文中,我們介紹了一種更簡單,更有效的方法,通過將稀疏和未知詞編碼為子詞單元序列,使NMT模型能夠進行開放詞匯翻譯。這是基于這樣的直覺,即:可以通過比單詞小的單位來翻譯各種單詞類別,例如名稱(通過字符復(fù)制或音譯),復(fù)合詞(通過組成翻譯)以及同源詞和借詞(通過語音和詞法轉(zhuǎn)換)。
我們討論了不同的分詞技術(shù)的適用性,包括簡單字符n-gram模型和基于字節(jié)對編碼壓縮算法的分詞,并通過經(jīng)驗證明子詞模型在WMT 15翻譯任務(wù)的基礎(chǔ)上比備用字典基線有所改進,其中, 德語→英語以及英語→俄語分別最多提升了1.1和1.3 BLEU。
2、介紹
神經(jīng)機器翻譯最近顯示出令人印象深刻的結(jié)果。 但是,罕見詞的翻譯是一個亟待解決的問題。神經(jīng)模型的詞匯量通常限制在3萬至5萬個詞,但是翻譯是一個開放詞匯的問題,尤其是對于具有高效詞形成過程(如凝集和復(fù)合)的語言,翻譯模型需要的機制必須低于詞級 。例如,考慮使用諸如德國 Abwasser | behandlungs | angange “污水處理廠”之類的化合物,對于這些化合物,分段可變長度表示比將單詞編碼為固定長度向量更具吸引力。
**對于單詞級NMT模型,已通過退回字典查找解決了詞匯外單詞的翻譯。**我們注意到,這種技術(shù)做出的假設(shè)通常在實踐中不成立。例如,由于語言之間形態(tài)合成程度的差異,就像在我們的復(fù)合示例中一樣,源詞和目標詞之間并不總是存在一對一的對應(yīng)關(guān)系。此外,單詞級模型也無法翻譯或生成看不見的單詞。 就像(Jean等人,2015; Luong等人,2015b)所做的那樣,將未知單詞復(fù)制到目標文本中是一種合理的名稱策略,但是通常需要進行形態(tài)變化和音譯,尤其是在字母不同的情況下。
我們研究在子詞單元級別上運行的NMT模型。我們的主要目標是在NMT網(wǎng)絡(luò)本身中對開放詞匯翻譯進行建模,而無需為稀有單詞提供回退模型。除了簡化翻譯過程之外,我們還發(fā)現(xiàn)子詞模型與大詞匯量模型和回退詞典相比,對稀有詞的翻譯具有更好的準確性,并且能夠高效地生成訓(xùn)練中未見到的新詞。我們的分析表明,神經(jīng)網(wǎng)絡(luò)能夠從子詞表示中學(xué)習(xí)復(fù)合和音譯。
這篇論文主要有兩個方面貢獻:
- 我們表明,通過子詞單元對(稀有)詞進行編碼,可以實現(xiàn)開放詞匯的神經(jīng)機器翻譯。我們發(fā)現(xiàn)我們的架構(gòu)比使用大型詞匯表和退回詞典更簡單,更有效。
- 我們將字節(jié)對編碼(BPE)(一種壓縮算法)用于分詞任務(wù)。BPE允許通過可變長度字符序列的固定大小的詞匯表來表示開放式詞匯表,這使其成為神經(jīng)網(wǎng)絡(luò)模型非常合適的分詞策略。
3、相關(guān)工作
對于統(tǒng)計機器翻譯(SMT),未知單詞的翻譯一直是深入研究的主題。
大部分未知單詞都是名稱,如果兩種語言都共享一個字母,則可以將其復(fù)制到目標文本中。如果字母不同,則需要音譯。基于字符的翻譯也已經(jīng)用基于短語的模型進行了研究,這對于緊密相關(guān)的語言尤其成功。
諸如化合物之類的形態(tài)復(fù)雜的詞的分割已廣泛用于SMT,并且已經(jīng)研究了多種詞素分割算法。通常用于基于短語的SMT的分割算法在其拆分決策中趨于保守,而我們的目標是進行激進的分割,該分割允許使用緊湊的網(wǎng)絡(luò)詞匯進行開放詞匯的翻譯,而不必求助于備用詞典。
子詞單元的最佳選擇可能是針對某個具體任務(wù)的。對于語音識別,已使用因素級語言模型。Mikolov等研究子詞語言模型,并提出使用音節(jié)。對于多語言分割任務(wù),已經(jīng)提出了多語言算法。我們發(fā)現(xiàn)這些雖然有趣,但在測試時不適用。
已經(jīng)提出了多種技術(shù)來基于字符或語素產(chǎn)生定長的連續(xù)單詞向量。與我們的方法類似,將此類技術(shù)應(yīng)用于NMT的努力并未比基于單詞的方法有顯著改善。與我們的工作有一個技術(shù)上的區(qū)別是,注意力機制仍在Ling等人的模型中的單詞級別上運行,并且每個單詞的表示都是固定長度的。我們希望注意力機制可以從可變長度表示中受益:網(wǎng)絡(luò)可以學(xué)習(xí)在每個時刻將注意力放在不同的子詞單元上。回想一下我們的介紹性示例Abwasserbehandlungsanlange,該示例的子詞分段避免了固定長度表示形式的信息瓶頸。
神經(jīng)機器翻譯與基于短語的方法的不同之處在于,有強烈的動機來使神經(jīng)模型的詞匯量最小化,以增加時間和空間效率,并允許在沒有回退模型的情況下進行翻譯。同時,我們還需要文本本身的緊湊表示形式,因為文本長度的增加會降低效率并增加神經(jīng)模型需要傳遞信息的距離。
在詞匯量和文本大小之間進行折衷的一種簡單方法是使用未分段詞的短列表,僅對稀有詞使用子詞單元。作為替代方案,我們提出了一種基于字節(jié)對編碼(BPE)的分段算法,該算法可讓我們學(xué)習(xí)提供良好文本壓縮率的詞匯表。
二、NMT(神經(jīng)機器翻譯)
我們遵循Bahdanau等人的神經(jīng)機器翻譯架構(gòu),我們將在此簡單地進行總結(jié)。但是,我們注意到我們的方法并不特定于該體系結(jié)構(gòu)。
神經(jīng)機器翻譯系統(tǒng)被實現(xiàn)為具有循環(huán)神經(jīng)網(wǎng)絡(luò)的編碼器-解碼器網(wǎng)絡(luò)。
編碼器是帶有門控循環(huán)單元的雙向神經(jīng)網(wǎng)絡(luò),它讀取輸入序列 x=(x1,...,xm)x=(x_1,...,x_m)x=(x1?,...,xm?) 并計算隱藏狀態(tài)的前向序列 (h→1,...,h→m)(\overrightarrow h_1,...,\overrightarrow h_m)(h1?,...,hm?) 和后向序列 (h←1,...,h←m)(\overleftarrow h_1,...,\overleftarrow h_m)(h1?,...,hm?)。將隱藏狀態(tài) h→j\overrightarrow h_jhj? 和 h←j\overleftarrow h_jhj? 連接起來以獲得最終矢量表示 hjh_jhj?。
解碼器是一個循環(huán)神經(jīng)網(wǎng)絡(luò),可預(yù)測目標序列 y=(y1,...,yn)y=(y_1,...,y_n)y=(y1?,...,yn?)。基于循環(huán)隱藏狀態(tài) sis_isi?,先前預(yù)測的單詞 yi?1y_{i-1}yi?1? 和上下文向量 cic_ici? 預(yù)測每個單詞 yiy_iyi?。cic_ici? 被計算為 hjh_jhj? 的加權(quán)和。每個 hjh_jhj? 的權(quán)重通過對齊模型 αijα_{ij}αij? 計算,該模型對 yiy_iyi? 對齊到 xjx_jxj? 的概率進行建模。對齊模型是單層前饋神經(jīng)網(wǎng)絡(luò),可通過反向傳播與網(wǎng)絡(luò)的其余部分一起學(xué)習(xí)。
可以在(Bahdanau et al.,2015)中找到詳細描述。在具有隨機梯度下降的平行語料庫上進行訓(xùn)練。為了翻譯,采用了具有小集束尺寸的集束搜索。
三、子詞翻譯
本文背后的主要動機是,某些單詞的翻譯是未知的,因為即使是有能力的譯者對他或她來說是新穎的,這些單詞也可以基于已知的子詞單位(例如詞素或音素)的翻譯進行翻譯。翻譯可能未知的單詞類別包括:
- 命名實體。在共享字母的語言之間,名稱通常可以從源文本復(fù)制到目標文本。也可能需要轉(zhuǎn)錄或音譯,尤其是在字母或音節(jié)不同的情況下。例如:Barack Obama (English; German)、Барак Обама (Russian)、バラク?オバマ (ba-ra-ku o-ba-ma) (Japanese)。
- 同源詞和外來詞。同源語言的同源詞和外來詞在語言之間可能會以常規(guī)方式有所不同,因此字符級翻譯規(guī)則就足夠了。例如:claustrophobia (English)、Klaustrophobie (German)、Клаустрофобия (Klaustrofobia) (Russian)。
- 形態(tài)復(fù)雜的單詞。包含多個詞素的單詞,例如通過復(fù)合,詞綴或詞尾變化形成的單詞,可以通過分別翻譯這些詞素來進行翻譯。例如:solar system (English)、Sonnensystem (Sonne + System) (German)、Naprendszer (Nap + Rendszer) (Hungarian)。
在我們的德國訓(xùn)練數(shù)據(jù)中分析了100個稀有單詞(不包括在50,000種最常見的單詞中),大多數(shù)單詞都有可能從英語翻譯成較小的單位。我們發(fā)現(xiàn)56個化合物,21個名稱,6個具有共同起源的外來詞(emancipate→emanzipieren),5個未知附加詞(sweetish ‘sweet’+’-ish’→sü?lich ‘sü?’+’-lich’),1個數(shù)字和1個計算機語言標識符。
我們的假設(shè)是,將稀有詞分割成適當?shù)淖釉~單元就足以使神經(jīng)翻譯網(wǎng)絡(luò)學(xué)習(xí)未知的翻譯,并概括該知識來翻譯和生成看不見的詞。我們在第4節(jié)和第5節(jié)中對此假設(shè)提供了經(jīng)驗支持。首先,我們討論不同的子詞表示形式。
四、字節(jié)對編碼(BPE)
字節(jié)對編碼(BPE)是一種簡單的數(shù)據(jù)壓縮技術(shù),可以用一個未使用的字節(jié)迭代地替換序列中最頻繁的一對字節(jié)。我們將這種算法用于分詞。我們不合并頻繁的字節(jié)對,而是合并字符或字符序列。
首先,我們使用字符詞匯表來初始化符號詞匯表,并將每個單詞表示為一個字符序列,再加上一個特殊的單詞結(jié)尾符號“·”,這使我們能夠在翻譯后恢復(fù)原始的字符化。我們迭代地計算所有符號對,并用新的符號“AB”替換每個出現(xiàn)頻率最高的符號對(“ A”,“ B”)。 每個合并操作都會產(chǎn)生一個代表字符n-gram的新符號。常見的字符n-gram(或整個單詞)最終合并為一個符號,因此BPE不需要候選詞。最終符號詞匯的大小等于初始詞匯的大小加上合并操作的數(shù)量,后者是算法的唯一超參數(shù)。
為了提高效率,我們不考慮跨越單詞邊界的對。因此,該算法可以在從文本中提取的詞典上運行,每個單詞均按其頻率加權(quán)。算法1中顯示了一個最小的Python實現(xiàn)。實際上,我們通過索引所有對并逐步更新數(shù)據(jù)結(jié)構(gòu)來提高效率。
圖1顯示了學(xué)習(xí)到的BPE操作的簡單示例。在測試時,我們首先將單詞分成字符序列,然后應(yīng)用學(xué)習(xí)到的操作將字符合并為更大的已知符號。這適用于任何單詞,并允許帶有固定符號詞匯的開放式詞匯網(wǎng)絡(luò)。在我們的示例中,OOV的“ lower”將被細分為“ lower·”。
我們評估了兩種應(yīng)用BPE的方法:學(xué)習(xí)兩種獨立的編碼,一種用于源詞匯,一種用于目標詞匯,或者學(xué)習(xí)兩種詞匯的并集編碼(我們稱為聯(lián)合BPE)。前者具有以下優(yōu)點:在文本和詞匯量方面更加緊湊,并具有更強的保證力,即每個子詞單元都已在相應(yīng)語言的訓(xùn)練文本中被看到,而后者則改善了源和目標分段之間的一致性。如果我們獨立地應(yīng)用BPE,則相同的名稱在兩種語言中可能會進行不同的細分,這使得神經(jīng)模型更難學(xué)習(xí)子詞單元之間的映射。為了提高英語和俄語分割之間的一致性,盡管字母有所不同,我們使用ISO-9將俄語詞匯音譯為拉丁字符以學(xué)習(xí)聯(lián)合BPE編碼,然后將BPE合并操作音譯回西里爾字母,以將其應(yīng)用于俄語訓(xùn)練文本。
五、評估
我們旨在回答以下經(jīng)驗性問題:
- 我們可以通過子詞單元來表示神經(jīng)機器翻譯中的稀有和看不見的詞嗎?
- 在詞匯量,文本大小和翻譯質(zhì)量方面,哪個細分為子詞單元的效果最佳?
我們對來自WMT 2015的共享翻譯任務(wù)的數(shù)據(jù)進行實驗。對于英語→德語,我們的訓(xùn)練集包括420萬個句子對,并且有大約1億個字符。對于英語→俄語,訓(xùn)練集包括260萬個句子對,并且有大約5000萬個字符。我們使用Moses提供的腳本對數(shù)據(jù)進行標記化和Truecase處理。 我們使用newstest2013作為開發(fā)集,并在newstest2014和newstest2015上測試結(jié)果。
我們報告了BLEU和CHRF3的結(jié)果,CHRF3是一個字符n-gram F3得分,被發(fā)現(xiàn)與人類的判斷有很好的相關(guān)性,尤其是英語以外的翻譯。由于我們的主要主張與稀有和看不見的單詞的翻譯有關(guān),因此我們針對這些單詞分別報告了統(tǒng)計數(shù)據(jù)。我們通過一元F1來測量這些值,我們將其計算為裁剪一元精度和召回率的調(diào)和平均值。
我們使用Groundhog進行所有實驗。我們通常會根據(jù)之前的工作來進行參數(shù)設(shè)置。所有網(wǎng)絡(luò)的隱藏層大小為1000,嵌入層大小為620,我們僅在內(nèi)存中保留一個τ = 30000 τ=30000τ=30000個單詞的候選列表。
在訓(xùn)練期間,我們使用Adadelta,minibatch大小為80,并在各個時期之間重新調(diào)整訓(xùn)練集。我們訓(xùn)練網(wǎng)絡(luò)約7天,然后獲取最后4個保存的模型(每12小時保存一次模型),并繼續(xù)使用固定的嵌入層訓(xùn)練每個模型12小時 。我們?yōu)槊總€模型執(zhí)行兩次獨立的訓(xùn)練,一次將梯度的截斷值設(shè)為5.0,一次將截斷值設(shè)為1.0,后者會在大多數(shù)情況下產(chǎn)生更好的單個模型。我們報告了在我們的開發(fā)平臺上表現(xiàn)最佳的系統(tǒng)的結(jié)果(newstest2013),以及所有8個模型的集合。
我們進行集束搜索的寬度為12,并通過句子長度對概率進行歸一化。 我們使用基于快速對齊的雙語詞典。 對于我們的基線,這是稀有單詞的備用詞典。我們還使用字典來加快所有實驗的翻譯速度,僅對篩選后的候選翻譯列表執(zhí)行softmax,我們使用 K = 30000 ;K ′ = 10。
1、子詞統(tǒng)計
除了翻譯質(zhì)量(我們將通過經(jīng)驗驗證)以外,我們的主要目標是通過緊湊的固定大小的子詞詞匯表來表示開放式詞匯表,并進行有效的訓(xùn)練和解碼。
表1中顯示了并行數(shù)據(jù)德文的不同分段的統(tǒng)計信息。簡單的基線是將單詞分段為n-grams字符。n-grams字符允許在序列長度(#tokens)和詞匯量(#types)之間進行不同的折衷,具體取決于n的選擇。序列長度的增加是可觀的;減少序列長度的一種方法是不對k個最常見的單詞類型進行分段。只有字母組合表示法才是真正的公開詞匯。但是,在初步實驗中,字母組合表示的表現(xiàn)很差,我們用二元字母組表示來報告翻譯結(jié)果,從經(jīng)驗上講它更好,但是在帶有訓(xùn)練集詞匯的測試集中無法產(chǎn)生某些字符。
我們報告了在以前的SMT研究中被證明有用的幾種分詞技術(shù)的統(tǒng)計數(shù)據(jù),包括基于頻率的復(fù)合拆分,基于規(guī)則的連字和Morfessor。我們發(fā)現(xiàn)它們僅適度地減小了詞匯量,并且不能解決未知單詞的問題,因此我們發(fā)現(xiàn)它們不適合我們的不帶回退詞典的開放式詞匯翻譯的目標。
BPE滿足了我們實現(xiàn)開放詞匯的目標,并且可以將學(xué)習(xí)到的合并操作應(yīng)用于測試集以獲得沒有未知符號的分段。它與字符級模型的主要區(qū)別在于BPE的表示更加緊湊,并可以實現(xiàn)更短的句子序列。表1顯示了具有59500個合并操作的BPE和具有89500個操作的聯(lián)合BPE。
實際上,我們沒有在NMT網(wǎng)絡(luò)詞匯表中包含不常見的子詞單元,因為子詞符號集,例如, 來自外國字母的字符。因此,表2中的網(wǎng)絡(luò)詞匯量通常比表1中的類型數(shù)小。
參考資料:
Neural Machine Translation of Rare Words with Subword Units翻譯
OOV問題-論文筆記《Neural Machine Translation of Rare Words with Subwords Units》- ACL2016
通過BPE解決OOV問題----Neural machine Translation of Rare Words with Subword Units
論文分享 – > NLP – > Neural machine Translation of Rare Words with Subword Units
【論文筆記】Neural Machine Translation of Rare Words with Subword Units
《Neural Machine Translation of Rare Words with Subword Units》閱讀筆記
NMT十篇必讀論文(二)Neural Machine Translation of Rare Words with Subword Units
[ THUNLP-MT(9/10) ] Neural Machine Translation of Rare Words with Subword Units | Byte Pair Encoding
總結(jié)
以上是生活随笔為你收集整理的NLP-2015:Subword NMT模型【使用子词来解决OOV问题】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STS下载安装出错
- 下一篇: 电脑硬件名称 中英文对照