Parameter Sharing Methods for Multilingual Self-Attentional Translation Models阅读笔记

论文链接
motivation:本文研究了参数共享技术,这些技术在完全共享和个体训练之间找到了一个令人满意的平衡点,特别是关注自我注意的transformer模型。本文发现,主要当目标语言来自相似的语系时,全参数共享方法导致BLEU分数的增加。然而,在目标语言来自不同语系的情况下,全参数共享会导致BLEU分数显著下降

production

神经机器翻译(NMT)现在是机器翻译研究中事实上的标准,因为它的实现相对简单,能够进行端到端的训练,并且翻译精度高。NMT的早期方法是在编码器和解码器层使用递归神经网络(RNNs),通常是LSTMS,并增加了注意机制以在决定下一个翻译目标输出时更加关注特定的编码源词。最近,NMT研究团体已经从RNNs过渡到一种使用自我注意编码句子的替代方法,以所谓的“transformer”模型为代表,这种模型既提高了在计算硬件(如GPU)上处理句子的速度,因为它缺乏重复性,又取得了令人印象深刻的结果。
在向自我注意模式过渡的同时,人们也对NMT系统的多语言训练产生了浓厚的兴趣,与标准的bilingual模型相比,多语言模型遵循多任务训练范式,其中模型是在来自几个语言对的训练数据上联合训练的,具有一定程度的参数共享。这样做的目的有两个方面:首先,与为每个感兴趣的语言对分别训练单独的模型相比,这保持了有竞争力的翻译准确性,同时减少了需要存储的模型总数,这在部署实际系统时是一个相当大的优势。其次,通过同时利用来自多种语言对的数据,可以提高每种语言对的翻译精度。
在多语言翻译中,一对多翻译(从一种通用源语言(如英语)到多种目标语言(如德语和荷兰语)的翻译)被认为特别困难。先前针对此任务的多任务学习(MTL)模型大致包括两种方法,如图1所示:(a)每种目标语言具有一个共享编码器和一个解码器的模型(董等人(2015),如图1a所示)。这种方法的优点是能够分别对每个目标建模,但代价是训练速度较慢,内存需求增加。(b)一个单一的统一模型,由所有语言对的共享编码器和共享解码器组成(Johnson等人(2017),如图1b所示)。这种简单的方法使用标准的双语翻译模型很容易实现,并且具有不管语言数量多少都具有恒定数量的可训练参数的优点,但是解码器对多种语言建模的能力会显著降低。
在这里插入图片描述
本文提出了第三种选择:©一个共享编码器和多个解码器的模型,以便共享一些解码器参数(如图1c所示)。这种混合方法结合了上述两种方法的优点。它小心地调节多种语言之间共享的参数类型,以提供解码两种不同语言所需的灵活性,但仍然共享尽可能多的参数,以利用多种语言之间的信息共享。具体来说,使用前面提到的自注意transformer模型,其中包含一组由各种注意权重、线性层权重或嵌入权重组成的可共享参数。以前工作中使用的解码器参数的完全共享和不共享是特殊情况。
为了从经验上检验这种方法的实用性,考察了从一种公共源语言到多种目标语言的翻译情况,其中目标语言可以是相关的,也可以是不相关的。结果表明当使用来自同一个系列的目标语言时,完全参数共享工作得相当好,而当翻译成多种远程语言时,部分参数共享对于实现最佳精度至关重要。

Method

Transformer Architecture

在NMT的seq2seq模型中很常见的是,自我注意Transformer模型由一个嵌入层、多个编码器-解码器层和一个输出生成层组成。每个编码器层依次由两个子层组成:自关注网络和前馈网络。每个解码器层由三个子层组成:屏蔽自我注意、编码器-解码器注意和前馈网络。所有这些层中的核心构建块由计算仿射变换的不同权重矩阵集组成。
首先,嵌入层从输入单词中获得源和目标单词向量:WE∈Rdm×V,其中dm是模型大小,V是词汇大小。在嵌入查找步骤之后,字向量乘以比例因子√dm。为了捕捉单词在输入序列中的相对位置,根据不同频率的正弦曲线定义的位置编码被添加到源和目标的缩放单词向量。编码器层将输入字向量映射到连续的隐藏状态表示。如前所述,它由两个子层组成。第一个子层执行多头点积自我关注。在单头情况下,将子层的输入定义为x = (x1,…,xT),输出为z = (z1,…,zT),其中xi,zi∈ Rdm,输入x经过线性变化得到关键字(ki)、值(vi)和查询(qi)向量(如图2)。
在这里插入图片描述
接下来,通过执行缩放的点积来计算查询和关键向量之间的相似性分数。
在这里插入图片描述
接下来,通过对这些相似度值应用softmax函数来计算注意力系数(αij)。
在这里插入图片描述
自我关注输出(zi)是通过关注权重与值向量的凸组合,然后进行线性变换来计算的。
在这里插入图片描述
在这里插入图片描述
在上述方程中,WK、WV、WQ、WFare是形状Rdm×dm的可学习变换矩阵。为了扩展到多头注意力(“多头注意力”),可以将键、值和查询向量拆分成“向量”,对每个“向量”并行执行注意力计算,然后在WF进行最终线性变换之前进行连接。第二个子层由带有ReLU激活函数的两层深度位置前馈网络(FFN)组成。
在这里插入图片描述
其中WL1∈ Rdm×dh,WL2∈ Rdh×dm,B1和b2是偏差,这是隐藏大小。子层输出随后作为输入提供给下一个编码器层。
解码器层由三个子层组成。第一个子层类似于编码器,执行屏蔽的自我关注,其中使用屏蔽来防止位置关注后续位置。第二子层执行编码器-解码器相互关注,其中查询向量的输入来自解码器层,而关键字和值向量的输入来自编码器的最后一层。为了表示这两个子层中的参数,被屏蔽的自关注子层的变换权重被称为W1K、W1V、W1Q、W1F,以及编码器-解码器关注子层W2K、W2V、W2Q、W2F,这也在图2中示出。第三个子层由FFN组成。为了生成下一个单词的预测,在解码器层的顶部有一个线性层。该线性层的重量与嵌入层的重量共享。
残差连接和层归一化应用于每个子层和最终编码器和解码器层的输出向量。

Parameter Sharing Strategies

本文目标是研究使用MTL的变压器模型的有效参数共享策略,主要用于一对多多语言翻译。使用符号θ来表示模型中的共享参数集。这些参数共享策略描述如下:
策略1:基础案例由每种语言对的独立双语翻译模型组成,其中Θ = ∅。
策略2:对所有双语模型使用通用嵌入层,其中θ= { WE }。这将通过在源和目标句子中存在的共同单词之间共享参数而导致总参数的显著减少。
策略3:对源语言使用通用编码器,对每种目标语言使用单独的解码器?θ= { WE,θENC}?。这样做的好处是,编码器现在可以看到更多的源语言训练数据。
接下来,将解码器参数包含在共享参数集中。这样做时,我们将假设嵌入和编码器参数总是在双语模型之间共享。因为考虑到多个解码器之间共享参数的所有不同可行集合,可以有指数级的许多组合,所以我们仅基于我们的初步结果选择这些组合的子集。除非另有说明,否则这些选定的权重在解码器的所有层中共享。图3显示了一个示意图,说明了在我们的MTL模型的每个子层中可以共享的各种可能的参数矩阵。
在这里插入图片描述
选择1:只共享FFN子层参数Θ ={WE,θENC,WL1,WL2}
选择2:共享自我关注子层的权重?Θ = {WE,θENC,W1K,W1Q,W1V,W1F}
选择3:共享编码器-解码器关注子层的权重Θ = {WE,θENC,W2K,W2Q,W2V,W2F}
选择4:我们将共享的关注参数限制为仅包括关键字和查询权重Θ ={WE,θENC,W1K,W1Q,W2K,W2Q}或者关键值和价值权重Θ ={WE,θENC,W1K,W1V,W2K,W2V}。这样做的动机是,共享注意子层权重可以模拟目标语言的共同方面,而单个FFN子层权重可以模拟每种语言的个性的方面。
选择5:共享解码器的所有参数以拥有单一的统一模型Θ ={WE,θENC,θDEC},解码器中较少的参数表明有限的建模能力,我们期望这种方法主要在目标语言相关时获得良好的翻译精度。

Experimental Setup

代码链接
论文中有实现细节

Conclusion

共享全部参数(即拥有一个模型)会导致EN→RO+FR的最佳BLEU分数,而仅共享来自两个关注层的关键字和查询矩阵会导致EN→DE+NL的最佳BLEU分数。BLEU如此大幅度增加的原因之一是编码器可以访问更多的英语训练数据,而对于解码器来说,由于目标语言属于同一家族,它们可能包含共同的词汇,从而改善了两种目标语言的泛化错误。
当两种目标语言都属于遥远的语系并且不相关时,从实验结果观察到共享所有参数的方法会导致所考虑的两种语言对的BLEU分数显著下降。在这种部分参数共享策略中,关键和查询关注权重的共享有效地模拟了共同的语言属性,而单独的FFN子层权重模拟了每种目标语言的独特特征,因此总体上导致BLEU分数的大幅提高。其他解码器参数共享方法的结果接近于密钥和查询参数共享方法。由于目标语言来自不同的语系,它们的词汇可能有一些重叠,但彼此之间会有很大的不同。在这种情况下,一个有用的替代方法是为每个源-目标语言对考虑一个单独的嵌入层,同时共享所有的编码器和解码器参数。然而,我们没有试验这种方法,因为包含单独的嵌入层将导致模型参数的大幅度增加,因此模型训练将变得更加需要大量的内存。将对这种参数共享策略的研究留给将来的工作。
对于一对多翻译任务,当目标语言来自遥远的家庭时,我们观察到完全共享的转换器模型与双语模型相比,会导致BLEU分数的大幅下降或小幅上升。只有当两种目标语言来自同一个家族时,完全共享的转换器模型才是有效的策略

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值