Command Palette
Search for a command to run...
基于子词单元的稀有词神经机器翻译
基于子词单元的稀有词神经机器翻译
Rico Sennrich Barry Haddow Alexandra Birch
摘要
神经机器翻译(NMT)模型通常在固定词表上运行,但翻译本质上是一个开放词表问题。已有工作通过回退到字典来解决未登录词的翻译问题。本文提出了一种更简单且更有效的方法,通过将稀有词和未知词编码为子词单元序列,使 NMT 模型具备开放词表翻译能力。这基于一个直觉:各类词汇可以通过比词更小的单元进行翻译,例如人名(通过字符复制或音译)、复合词(通过组合式翻译)以及同源词和外来词(通过语音和形态转换)。我们讨论了不同词切分技术的适用性,包括简单的字符 n-gram 模型和基于字节对编码压缩算法的切分方法,并通过实验表明,子词模型相较于回退字典基线,在 WMT 15 英德和英俄翻译任务上分别提升了最高 1.1 和 1.3 个 BLEU 分数。
一句话总结
爱丁堡大学研究人员提出了一种基于子词的开放词表神经机器翻译方法,该方法将罕见词和未知词编码为由字节对编码派生的子词单元序列,在 WMT 15 英语-德语和英语-俄语翻译任务上,较词典回退基线最高提升 1.1 和 1.3 BLEU。
核心贡献
-
论文提出了一种开放词表神经机器翻译方法,将罕见词和未见词编码为变长子词单元序列,从而无需词典回退系统即可进行翻译。
-
论文提出了一种字节对编码分割方法,并结合简单的字符二元组分割方法,用于构建紧凑子词词表,同时允许模型在子词单元上进行注意力建模,而不是使用固定长度词表示。
-
在 WMT 15 英语-德语和英语-俄语翻译任务上的实验表明,较回退词典基线分别提升最高 1.1 和 1.3 BLEU,并显示减小词表的子词模型也能改善词表内罕见词的翻译。
引言
神经机器翻译已成为强大的文本翻译方法,但由于神经系统通常依赖固定词表,其在罕见词和未见词上表现不佳。这对形态丰富或构词活跃的语言尤其重要,在这些语言中,新词由更小的有意义单元组合而成。
以往工作通常通过查词典或将未知词复制到输出来处理这些词,但当源词和目标词不是一一对应,或需要音译和形态变化时,这些方法可能失败。词级模型也难以生成训练时未出现过的词。
作者利用子词单元使神经机器翻译在模型内部直接实现开放词表。他们改写字节对编码,将词切分为变长字符序列,使网络能够学习复合词、人名、借词和未见词的翻译,而不依赖回退词典。
方法
该方法将神经机器翻译模型与子词分割方法结合。系统核心是用于序列到序列学习的编码器-解码器架构。编码器使用双向循环网络读取输入序列 x=(x1,…,xm)。它产生前向隐藏状态序列 (h1,…,hm) 和后向序列 (h1,…,hm)。两个方向的状态在每个位置被拼接,形成标注向量 hj,用于概括对应源词及其周边上下文。
解码器一次一个元素地生成目标序列 y=(y1,…,yn)。每个预测词 yi 依赖于当前循环隐藏状态 si、前一个生成词 yi−1 以及上下文向量 ci。上下文向量是源标注向量的加权和:
ci=j=1∑mαijhj其中 αij 由对齐模型产生,该模型估计目标位置 i 应对源位置 j 关注多强。该对齐模型是前馈神经网络,并与整体架构一起通过反向传播联合训练。整体模型在平行句对上使用随机梯度下降优化,推理通常使用束宽相对较小的束搜索。
翻译模型与子词表示层结合,以支持开放词表翻译。关键直觉在于,许多难以翻译或此前未见过的词仍可通过更小语言单元透明地翻译,例如词素、共享人名成分、同源模式或形态词缀。作者利用如下假设:如果将罕见词切分为有意义或高频的子词片段,神经网络就能学习从源子词到目标子词的映射,并将这些映射泛化到训练时未看到的词。
主要子词方法是字节对编码(Byte Pair Encoding, BPE),该方法从数据压缩改写而来,用于字符级分割。该过程首先将每个词表示为字符序列加上一个特殊词边界符号。这个标记使模型能够在翻译后重建词边界。然后算法反复统计训练文本中相邻符号对,并将最高频符号对合并为新的复合符号。例如,如果符号对 (a,b) 频率很高,它可能被替换为单个符号 ab。每次合并都会创建一个新的子词符号,该符号随后还可以参与更多合并。过程在指定次数的合并操作后停止。
合并次数是主要超参数。最终子词词表大小由初始字符词表加上合并次数决定。为提高效率,分割过程不跨越词边界进行合并。这一限制使算法可以在按词频加权词表的字典上操作。在实现中,符号对出现次数和合并操作会被索引并增量更新。在测试时,任何输入词首先被分解为字符,然后按顺序应用学习到的合并操作,以获得子词分割。由于分割过程可应用于任意字符序列,因此模型无需未知词类别即可表示原始训练词表之外的词。
方案考虑了两种分割变体。一种变体分别为源语言和目标语言学习独立子词编码。这可以产生更小词表和更紧凑的分段文本,并确保每个子词单元都在其自身语言的训练文本中被观察到。另一种变体在合并后的源语言和目标语言词表上学习联合编码。联合编码能提升相关语言分割之间的一致性,使翻译模型更容易对齐对应子词单元。对于使用不同书写系统的语言对,可以暂时将一种语言音译到共享文字中以学习合并操作,然后将得到的合并操作映射回原始文字,从而提升一致性。
实验
在 WMT 2015 英语-德语和英语-俄语翻译任务上的实验,将带与不带回退词典的词级系统,与使用字符二元组、BPE 和联合 BPE 分割的子词模型进行比较。实验验证紧凑子词词表能够支持开放词表翻译,在罕见词和未见词上收益尤其明显;英语-俄语因需要音译而优势更明显。进一步的基于频率分析和人工检查显示,子词表示提升了能产性和鲁棒性,尤其是在分割更一致时,但总体指标提升受到罕见词占比很小以及训练波动的影响。
在英语到德语翻译中,相比词级基线,子词表示通常提升罕见词准确率,同时整体质量仍具竞争力。联合 BPE 对罕见词尤其有效,而字符二元组可达到有竞争力的翻译得分,但引入更多词表外问题。模型集成通常在各项报告指标上提升性能。相比词级回退词典基线,子词分割改善了罕见词处理。联合 BPE 在罕见词重叠方面最强,而字符二元组仍可行,但对未见词不够可靠。
语料统计显示,基于字符的分割通过用更小单元表示词,大幅减少未知 tokens,但也会显著增加 token 序列。频率、连字符和 Morfessor 分割仅中等程度降低词表大小,仍保留未知词,因此不太适合开放词表德语翻译。BPE 和联合 BPE 在应用学习到的合并操作后仍保持开放词表,并提供序列元素更少的紧凑子词表示。字符分割以更长的序列换取更小词表和非常少的未知 tokens。复合词拆分、连字符和 Morfessor 能降低词表大小,但并不能消除未知 tokens。BPE 提供比字符 n 元组更短的子词表示,并且能够在没有未知符号的情况下分割新文本。
在英语-俄语翻译质量和词覆盖率指标上,子词分割系统一致优于带回退词典的词级基线。增益对罕见词和需要跨不同字母系统音译的未见词最大。在子词变体中,采用模型集成的联合 BPE 分割在罕见词和未知词上取得最强覆盖,而单个模型在总体翻译得分上可能波动。集成模型取得比单个模型更高的 BLEU 和 CHRF3 分数。子词系统在 unigram F1 上优于基于词典的基线,尤其在罕见词上。在必须音译人名的英语-俄语任务中,子词模型处理未知词远优于回退词典基线。对于罕见词和未知词识别,联合 BPE 分割比分别学习的 BPE 或字符二元组更有效。与仅含 UNK 的词级模型相比,回退词典可改善未知词处理,但对俄语音译人名帮助较小。
在英语-德语示例中,词典基线因丢失内容或复制应翻译词而失败,而子词系统即使子词分割过度切分或不匹配词素边界,也能生成正确的复合词翻译。对稀疏源术语,有些系统会生成错误但类似借词的输出,而不是学习到的翻译。相关结果表明,不一致分割会导致复制或音译错误,而联合 BPE 系统改善分割一致性和词表外处理。子词系统即使分割不理想,也能恢复复合词翻译。基线可能省略必需内容或保留源词未翻译。不一致分割会导致音译错误和虚假字符变化。联合 BPE 系统相比标准 BPE 改善一致性和词表外处理。
在英语-俄语的人名和罕见术语翻译中,词典基线往往复制源词或无法产生目标形式,而子词模型可以生成西里尔字母音译。联合子词编码被呈现为更一致的选择,因为不规则分割可能引入插入或缺少字符。即使直接复制无益,子词系统也能将未知英语词音译为俄语。联合子词分割比不一致 BPE 分割支持更稳定的目标侧映射。基线在所显示英语-俄语示例中因保留源材料未翻译而失败。
实验比较了英语-德语和英语-俄语翻译中的词级回退词典基线与子词分割,包括 BPE、联合 BPE、字符二元组、基于频率、连字符和 Morfessor 变体。子词模型通常比词级基线更能处理罕见词、未见词和音译量大的情况,其中联合 BPE 和模型集成给出最强一致性和覆盖。语料分析显示,字符分割以更长的序列为代价减少未知 tokens,而 BPE 变体仍保持紧凑和开放词表。定性示例进一步显示,在基线丢失内容或复制源文本时,子词系统能够翻译复合词并音译人名。