论文题目:《Subword Regularization: Improving Neural Network Translation Models with Multiple Subword Candidates》

来源:ACL2018

链接:link

一.简介

Subword单元是一种在神经机器翻译(NMT)中解决开放辞汇的有效的方式。虽然句子通常被转换为独一无二的subword序列,但是subword的分割却是模糊的,而且即使使用了相同的词表也有可能会被分割为多种结果。本文解决的问题是,是否可以将模糊分割作为一种杂讯来提高NMT的鲁棒性。

神经机器翻译(NMT)模型通常都有一个固定的词表,因为模型的训练和预测都非常依赖于词表的大小。然而,限制词表大小会增加未知词的数量,这使得翻译不准确,尤其是在开放的词表设置中。一个常用的做法就是把稀缺的词语分割为subword单元。BPE是很多NMT系统中使用的标准subword分割方式。BPE分割在词表大小和解码效率之间提供了良好的平衡,并且避免了对未知单词进行特殊处理的需要。

BPE将一个句子编码成为唯一的subword序列。但是即使是使用相同的词表,一个句子也可以被表示为多个subword序列。如下图所示:

在训练期间,多个分割候选将使模型对杂讯和分割错误更具有鲁棒性,因为它们可以间接帮助模型学习单词的组合性,例如books可以被分割为book和s。

本论文中,我们这对开放辞汇NMT提出了一种新的正则化方法:subword regularization。采用多种subword分割来使NMT更具有鲁棒性。

二.本文贡献

1. 我们提出一种简单的NMT训练演算法来整合多种分割候选者。我们的方法是作为一种即时采样数据来实现的,这对NMT结构来说并不是特别的。Subword regularization可以被用于任何模型,而不用改变模型的结构。

2. 我们提出一种基于一元语言模型的新的subword分割演算法,这种演算法提供了多个具有概率的分割。

三.NMT的多subword分割

1.NMT训练中的即时subword采样。

给定一个源端句子X和目标端句子Y,x=(x1,x2,…,xM)和y=(y1,y2,…,yN)是用subword分割器分割得到的对应的subword序列。NMT将翻译概率P(Y | X)= P(y | x)建模为一个目标语言序列模型:

这里theta是模型参数。通常用RNN来预测yn,但是需要注意的是subword regularization可以被用于任意的NMT模型而不只是基于RNN的翻译模型。

使用最大似然估计来训练NMT。具体来说就是根据给定的语料库D来最大化对数似然函数L:

这里我们假设源端句子X和目标端句子Y被分割为多种subword序列,P(x|X)和P(y|Y)分别是对应的概率。在subword regularization中,我们用边缘似然函数来获得最优参数theta。

想要精确优化边缘似然函数是不可行的,因为可能分割的数量随句子长度的增加呈现指数增长。我们分别从源端和目标端获取k个序列来近似上述边缘似然函数:

为了简化,这里我们k=1.训练NMT的时候,参数theta是按照batch来进行迭代优化的,所以只要迭代次数足够多,即便k=1,也可以得到边缘似然函数的近似值。需要注意的是,subword序列是在每次参数更新时来采样的。

2.Decoding

解码的时候,我们只有一个源端句子X。一个最直接的方式是根据P(x|X)选择最优的分割序列。另外,我们可以用n个最好的分割结果来合并多个候选。具体来说就是,给定n个最好的分割(x1,x2,…,xn),我们通过以下方式来得到最优的解码结果y:

这里|y|表示y的subword数量,λ是用来惩罚较短的句子的参数,λ是通过开发集来进行优的。在这篇论文中我们把这两个演算法称为one-best decoding和n-best decoding.

四.基于语言模型的subword分割

1.Byte-Pair-Encoding(BPE)

Byte-Pair-Encoding(BPE)是一种被广泛用于NMT系统的subword分割方式。BPE首先把一个完整的句子分割为单个的字元,频率最高的相连字元对合并以后加入到词表中,直到达到目标词表大小。对测试句子采用相同的subword分割方式。BPE分割的优势是它可以较好的平衡词表大小和需要用于句子编码的token数量。

BPE只是通过字元的频率来进行分割操作的,高频的子字元串会较早的被合并,这样常用的词语就会保持为一个独特的符号。而对于由很多稀有的字元组成的单词,就会被分割为较小的单元。所以,只有目标词表比较小(16k到32k)的时候,用于编码句子的符号数量不会显著增加,这对于高效解码来说是一个重要的特征。

BPE的缺点在于,它不能提供多种分割的概率。

2.一元语言模型

在这篇论文中,我们基于一元语言模型提出一个新的subword分割方式,这种方式可以获得不同分割结果所对应的概率。一元语言模型假设每个subword都是独立的,所以subword序列x=(x1,x2,…,xM)的概率为subword出现概率的乘积,目标序列以相同的方法进行建模:

这里V表示的是预先设置好的词表。输入X最有可能的分割结果是:

这里的S(X)表示的是所有候选分割。

如果词表V已经给定了,可以由EM演算法得到subword的共现概率。p(xi)是隐变数,该演算法最大化下列边缘似然函数L:

但是在实际设置中,词表的大小是未知的。因为词表设置和出现概率的联合优化是棘手的,这里我们采用下列迭代方式来找到它们。

1. 根据训练语料设置一个合理的seed词表。

2. 重复下列步骤直到达到目标词表的大小。

a. 修改词表,用EM演算法来优化p(x)

b. 对于每一个subword xi,计算lossi。这里lossi表示当subword xi被移出当前词表的时候,似然函数减小的可能性。

c. 根据lossi 对符号进行排序,然后保留前a%的subword。

这里有一些选择seed词表的方法,常用方法是结合语料中所有字元和最高频的子字元串。

最终的词表将包含语料中所有独立的字元,基于字元的分割还被包含在分割候选集S(X)中。换句话说,使用一元语言模型的subword分割可以看作是字元,subword和word的概率混合。

3.subword sampling

Subword regularization在每次参数更新的时候从分布P(x|X)中采样一个subword分割。一个方法来近似采样是用l-best分割。更具体地,我们首先根据概率P(x|X)获得l-best分割。l-best查询是通过多项分布概率得到的。一个分割xi对应的概率分布是:

这里alpha是一个用于控制分布平滑性的超参数。

4.BPE VS Unigram language model

BPE是一种字典编码的变体,就是可以找到一个符号集合,这个符号集合就是所有用于文本编码的符号数量是最少的。一元语言模型是一种熵编码,就是为了使文本的编码长度最短。

BPE和一元语言模型共有的特点就是根据特殊的数据压缩原理用较少的bit去编码文本。所以,我们期望看到BPE和一元语言模型的共同优点。但是一元语言模型更具有灵活性因为它是基于概率语言模型来实现的,可以输出多个分割对应的概率,这对subword regularization是非常重要的。

五.实验结果

BPE作为baseline,分别进行one-best decoding和n-best decoding两种方式的解码。

推荐阅读:

相关文章