Neural machine translation of rare words with subword units
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布!
Abstract
神经机器翻译(NMT)模型通常使用固定的词汇,但翻译是一个开放的词汇问题。以前的工作是通过使用字典来翻译词汇表外的单词。在本文中,我们介绍了一种更简单有效的方法,通过将稀有且未知的单词编码为子单词单元序列,使NMT模型能够进行开放词汇翻译。这是基于这样一种直觉,即各种单词类别都可以通过比单词更小的单位进行翻译,例如名称(通过字符复制或音译)、复合词(通过合成翻译)、同源词和外来词(通过语音和模态转换)。我们讨论了不同分词技术的适用性,包括简单的字符n-gram模型和基于字节对(byte pair encoding)编码压缩算法的分词,并根据经验表明,对于WMT 15翻译任务英语→德语和英语→俄语,子词模型分别比回退字典基线提高了1.1和1.3 BLEU。
1 Introduction
神经机器翻译最近取得了令人印象深刻的成果(Kalchbrenner and Blunsom, 2013; Sutskever et al., 2014; Bahdanau et al., 2015)。然而,生僻词的翻译是一个悬而未决的问题。神经模型的词汇通常限制在3万至5万个单词,但翻译是一个开放的词汇问题,尤其是对于具有高效单词形成过程(如聚合和复合)的语言,翻译模型需要低于单词水平的机制。例如,考虑德语Abwasser|behandlungs|anlange “sewage water treatment plant”等混合物,对其来说,分段的可变长度表示直观上比将单词编码为固定长度向量更具吸引力。
对于单词级NMT模型,词汇表外单词的翻译已经通过回退到字典查找来解决(Jean et al., 2015; Luong et al., 2015b)。我们注意到,这种技术所做的假设在实践中往往不成立。例如,源词和目标词之间并不总是一一对应,因为语言之间的词形合成程度存在差异,就像我们介绍的复合例子中一样。此外,单词级模型无法翻译或生成看不见的单词。正如(Jean et al., 2015; Luong et al., 2015b)所做的那样,将未知单词复制到目标文本中是一种合理的名称策略,但通常需要进行词形变化和音译,尤其是在字母不同的情况下。
我们研究了在子字单元级别上操作的NMT模型。我们的主要目标是在NMT网络中为开放词汇翻译建模,而不需要稀有单词的退避模型。除了使翻译过程更简单之外,我们还发现,与大型词汇模型和后备字典相比,子词模型在罕见词的翻译方面实现了更好的准确性,并且能够有效地生成训练时没有看到的新词。我们的分析表明,神经网络能够从子词表征中学习复合和音译。
本文有两个主要贡献:
- 我们证明,开放词汇神经机器翻译是可能的,通过子词单位编码(罕见)词。我们发现我们的架构比使用大量词汇表和备用字典更简单、更有效(Jean et al., 2015; Luong et al., 2015b)。
- 我们将字节对编码(BPE)(Gage, 1994)这一压缩算法应用于分词任务。BPE允许通过可变长度字符序列的固定大小词汇表来表示开放词汇表,使其成为神经网络模型的一种非常合适的分词策略。
2 Neural Machine Translation
我们遵循Bahdanau等人(2015)的神经机器翻译架构,我们将在这里简要总结。然而,我们注意到,我们的方法并不是针对这种架构的。
神经机器翻译系统被实现为具有循环神经网络的编码器-解码器网络。
编码器是一个具有门控递归单元的双向神经网络(Cho et al., 2014),它读取输入序列x = (x1, …, xm)并计算隐藏状态的前向序列和后向序列
。将隐藏状态
和
级联以获得注释向量hj。
解码器是预测目标序列y = (y1, … , yn)的循环神经网络。基于递归隐藏状态si、先前预测的单词yi-1和上下文向量ci来预测每个单词yi。ci被计算为注释hj的加权和。每个注释hj的权重是通过对齐模型αij计算的,该模型对yi与xj对齐的概率进行建模。对齐模型是一个单层前馈神经网络,通过反向传播与网络的其他部分联合学习。
详细描述见(Bahdanau et al., 2015)。训练是在具有随机梯度下降的并行语料库上进行的。对于平移,采用具有小波束尺寸的波束搜索。
3 Subword Translation
本文背后的主要动机是,一些单词的翻译是透明的,因为它们可以由有能力的翻译人员翻译,即使它们对他或她来说是新颖的,基于已知子单词单元(如语素或音素)的翻译。翻译可能是透明的单词类别包括:
- 命名实体。在共享字母表的语言之间,名称通常可以从源文本复制到目标文本。可能需要转录或音译,尤其是在字母表或音节不同的情况下。例子:Barack Obama (English; German) Барак Обама (Russian) バラク・オバマ (ba-ra-ku o-ba-ma) (Japanese)
- 同源词和外来词。同源词和外来词在不同语言之间可能有规律地不同,因此字符级翻译规则就足够了(Tiedemann, 2012)。例子:claustrophobia (English) Klaustrophobie (German) Клаустрофобия (Klaustrofobiâ) (Russian)
- 形态复杂的单词。包含多个词素的单词,例如通过复合、词缀或屈折形成的单词,可以通过单独翻译词素来翻译。例子:solar system (English) Sonnensystem (Sonne + System) (German) Naprendszer (Nap + Rendszer) (Hungarian)
在对我们的德语训练数据1中的100个稀有token(不在50000个最常见的类型中)的分析中,大多数token可能可以从英语翻译成更小的单位。我们发现了56个混合物、21个名称、6个共同来源的外来词(relevan→emanzipieren)、5种透明词缀(sweetish ‘sweet’+‘-ish’→süßlich ‘süß’+‘-lich’)、1个数字和1个计算机语言标识符。
我们的假设是,将稀有单词分割成适当的子单词单元就足以让神经翻译网络学习透明的翻译,并将这些知识推广到翻译和产生看不见的单词。2 我们在第4节和第5节中为这一假设提供了实证支持。首先,我们讨论不同的子词表征。
1 主要的议会议事程序和网络抓取数据。
2 并非我们制作的每个分割都是透明的。虽然我们预计不透明分割不会带来任何性能优势,即单位无法独立翻译的分割,但我们的NMT模型显示出对过度书写的稳健性。
3.1 Related Work
3.2 Byte Pair Encoding (BPE)
字节对编码(BPE)(Gage, 1994)是一种简单的数据压缩技术,它用一个单独未使用的字节迭代替换序列中最频繁的字节对。我们将该算法应用于分词。我们不合并频繁的字节对,而是合并字符或字符序列。
首先,我们用字符词汇初始化符号词汇,并将每个单词表示为一个字符序列,再加上一个特殊的词尾符号"·",这使我们能够在翻译后恢复原始的标记化。我们迭代地计算所有符号对,并用新的符号"AB"替换最频繁的对("A", "B")的每次出现。每个合并操作都会产生一个新的符号,表示一个字符n-gram。频繁字符n-gram(或整个单词)最终被合并为一个符号,因此BPE不需要短名单。最终的符号词汇表大小等于初始词汇表的大小,加上合并操作的数量——后者是算法的唯一超参数。
为了提高效率,我们不考虑跨越单词边界的对。因此,该算法可以在从文本中提取的词典上运行,每个单词都根据其频率进行加权。算法1中显示了一个最小的Python实现。在实践中,我们通过索引所有对和增量更新数据结构来提高效率。
与其他压缩算法(如霍夫曼编码)的主要区别在于,我们的符号序列仍然可以解释为子单词单元(subword units),并且网络可以基于这些子单词单元进行泛化,以翻译和产生新单词(在训练时看不见)。
图1显示了一个学到BPE操作的简单示例。在测试时,我们首先将单词拆分为字符序列,然后应用所学的操作将字符合并为更大的已知符号。这适用于任何单词,并允许具有固定符号词汇的开放词汇网络。3 在我们的示例中,OOV "lower"将被分割为"low er·"。
我们评估了两种应用BPE的方法:学习两种独立的编码,一种用于源,另一种用于目标词汇,或者学习在两个词汇的并集上的编码(我们称之为联合BPE)。4 前者的优点是在文本和词汇大小方面更紧凑,并且更有力地保证在各自语言的训练文本中看到每个子单词单元,而后者提高了源和目标分割之间的一致性。如果我们独立应用BPE,同一个名字在两种语言中可能会被不同地分割,这使得神经模型更难学习子单词单元之间的映射。为了提高英语和俄语分段之间的一致性,尽管字母不同,但我们使用ISO-9将俄语词汇音译为拉丁字符,以学习联合BPE编码,然后将BPE合并操作音译回西里尔文,将其应用于俄语训练文本。5
3 在测试时唯一未知的符号是未知字符,或者训练文本中所有出现的符号都已合并为更大的符号,如"safeguar",它将我们训练文本中的所有出现合并为"safeguard"。我们在测试时没有观察到这样的符号,但通过递归地反转特定的合并,直到所有符号都已知,这个问题可以很容易地解决。
4 在实践中,我们只需将训练集的源端和目标端连接起来,即可学习联合BPE。
5 由于俄语训练文本中也包含使用拉丁字母的单词,我们也应用了拉丁BPE操作。
4 Evaluation
4.1 Subword statistics
4.2 Translation experiments
5 Analysis
5.1 Unigram accuracy
5.2 Manual Analysis
6 Conclusion