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