一种基于特征金字塔的神经机器翻译方法与流程

    专利查询2022-07-06  292



    1.本发明涉及一种机器语言翻译技术,具体为一种基于特征金字塔的神经机器翻译方法。


    背景技术:

    2.机器翻译(machine translation,简称mt)是采用计算机进行自然语言之间相互翻译的一门实验学科。利用机器翻译技术,可以将一门源语言自动地转化为目标语言。机器翻译作为消除人们跨语言交流障碍的关键技术,一直是自然语言处理研究的重要组成部分。相比于人工翻译,机器翻译效率更高并且成本更低,对于促进文化传播和交流有着重要意义。机器翻译技术可以概括为基于理性主义的方法和基于经验主义的方法两种,自20世纪40年代提出至今,机器翻译已经经历了近70年的发展,发展历史大致可以分为三个阶段:基于规则的机器翻译、基于统计的机器翻译和基于神经网络的机器翻译。
    3.基于规则的机器翻译技术采用人工构造规则的方法,对源语输入进行相应转换,得到目标翻译结果。这种方法的缺点在于需要大量的人工代价来构造规则,规则覆盖范围有限并且会出现冲突,使得系统可扩展性和鲁棒性差。之后,研究人员采用基于统计的机器翻译技术,利用统计方法进行建模,完全舍弃了对手工规则的依赖。统计机器翻译需要对大量的双语平行语料进行统计分析,从而构造统计翻译模型来完成翻译。近年来,神经网络在机器翻译领域受到了广泛的关注。神经机器翻译采用端到端的编码器-解码器框架,编码器将源语输入编码成一个稠密的源语上下文向量,解码器负责参考源语上下文向量进行自回归解码,生成最终的翻译结果。
    4.transformer模型作为目前最主流的神经机器翻译模型,仍然采用编解码器的结构,利用注意力机制对源语上下文信息和单词的位置信息进行编码和解码。在注意力计算过程中,采用多头切分的方式,使不同头关注到不同语义空间的信息。注意力机制除了自注意力外,还有编解码器注意力。它们的区别在于:自注意力的查询向量、键向量、值向量都是同一层的中间向量、而编解码器注意力的查询向量是解码端的中间向量,而键向量和值向量则是编码端输出的源语编码向量。在transformer中,隐层维度的大小是固定的(通常为512)。
    5.transformer的编码器和解码器采用层堆叠方式构建的,由于相同结构的层堆叠使得不同层的输出存在一定程度的冗余,模型的编码效率不高。同时解码器只关注编码器最后一层的输出,导致模型无法从更细粒度的方面利用源语上下文信息。
    6.特征金字塔模型最早是在图像领域提出的,图像领域任务一般采用卷积神经网络,而卷积神经网络由于池化层的存在,天然呈现一种金字塔的形状。在目标检测任务中,由于不同目标的尺度大小不同,而卷积网络中不同层的提取的特征粗细粒度不一样,因此需要把最后层的特征反向传递,与底层信息进行融合,作为检测任务最终需要用到的特征信息。


    技术实现要素:

    7.本发明提出一种基于特征金字塔的神经机器翻译方法,在transformer模型中解码端计算编解码注意力时,不仅关注编码端最后的源语编码信息,同时关注编码端不同层的隐层信息。
    8.为解决上述技术问题,本发明采用的技术方案是:
    9.本发明提供一种基于特征金字塔的神经机器翻译方法,包括以下步骤:
    10.1)将预处理后的源语言输入送入翻译模型的编码器端,通过词嵌入层和堆叠的编码器层编码成不同维度的上下文向量;
    11.2)编码器的隐层维度在前馈过程中成金字塔型缩放,根据维度大小将编码器层分为不同子块,不同子块的输出向量保存在源语编码向量序列中;
    12.3)将编码器的源语编码向量序列送入翻译模型的解码器端的编解码注意力模块,在编解码器注意力权重的计算过程中,对不同维度的编码键向量和解码查询向量进行不同尺度的多头分割,使得编码子键向量和解码子查询向量保持维度一致;
    13.4)将不同维度的编解码注意力计算结果加权平均,得到最终的编解码器注意力输出向量,解码器通过堆叠的解码器层将源语上下文向量解码成目标语译文,并通过交叉熵损失函数进行梯度更新,优化翻译模型的权重。
    14.步骤1)中,对训练数据进行预处理,将源语输入送入翻译模型的编码器端,将源语信息编码成不同维度的上下文向量;编码器由堆叠的编码器层构成,每个编码器层包括一个自注意力子层和一个全连接子层,其中,自注意力子层的计算方式如下:
    [0015][0016][0017]
    其中self_att表示自注意力子层,为输入的隐层向量,wq,wk,wv为自注意力子层的参数,softmax(
    ·
    )为注意力权重计算函数,ls为源语句长,d为对应的隐层向量维度,a为自注意力权重,
    [0018]
    步骤2)中,编码器的隐层维度在前馈过程中成金字塔型缩放,缩放过程发生在每个全连接子层:
    [0019]ho
    =w2relu(hiw1 b1) b2[0020]
    其中hi是全连接子层的输入向量,即前面自注意力子层的输出向量,ho是全连接层的输出向量,w1∈rd×
    4d
    ,w2∈r
    4d
    ×
    d/2
    ,b1∈r
    4d
    ,b2∈r
    d/2
    为全连接子层的参数,relu为激活函数,最终全连接子层将输入从对应的隐层向量维度d缩放到d/2;
    [0021]
    根据维度大小将编码器分为不同子块,不同子块的输出向量保存在源语编码向量序列中,作为源语不同维度的编码信息集合。
    [0022]
    步骤3)中,将编码器的源语编码向量序列送入模型的解码器端,解码器通过多头编解码注意力模块引入源语上下文信息,即编码器的源语编码向量序列;在多头分割时使用多尺度分割方式;对维度为dq的解码查询向量和维度为dk的源语键向量,注意力得分的计算步骤如下:
    [0023]
    301)将编码键向量切割为head_key个维度为head_dim的源语子键向量,其中head_key为键头的个数,head_dim为头的维度,head_key=dk/head_dim;
    [0024]
    302)将解码查询向量切割为head_query个维度为head_dim的解码子查询向量,其中head_query为查询头的个数,head_dim为头的维度,head_query=dq/head_dim,其中dq=n
    ×dk
    ,此时head_query=n
    ×
    head_key,n为dq和dk的比例系数;
    [0025]
    303)当n》1时,n个解码子查询向量对应1个编码子键向量;当n=1时,1个解码子查询向量对应1个编码子键向量;当n《1时,1个解码子查询向量对应n个编码子键向量;编解码器注意力的计算方式如下:
    [0026][0027]
    其中为输入的隐层向量,在此处作为解码查询向量,l
    t
    为目标语句长,为编码键向量,在此处作为解码键向量,ls为源语句长。
    [0028]
    步骤4)中,将不同维度的编解码注意力计算结果加权平均,其权重是可学习的,最终的编解码器注意力结果计算方式如下:
    [0029][0030]
    其中l为编码器的层数,对应l个不同维度的编码器层输出,vi表示对第i层编码器层输出的编解码注意力计算结果,γi为模型可学习的权重参数;
    [0031]
    解码器通过堆叠的解码器层将源语上下文向量解码成目标语译文,并过交叉熵损失函数进行梯度更新,优化模型的权重。
    [0032]
    本发明具有以下有益效果及优点:
    [0033]
    1.本发明使用特征金字塔的形式,减少不同层特征的冗余,使编码器捕获不同粗细粒度的语义信息;
    [0034]
    2.本发明在计算编解码注意力时,根据维度大小进行不同尺度的多头切割,解决查询向量和键向量维度不一致的问题,从而让解码端可以关注到不同维度的源语上下文向量;
    [0035]
    3.本发明通过多尺度的编解码注意力计算,在几乎不增加模型参数的情况下,依然能够有效提升模型的翻译质量。
    附图说明
    [0036]
    图1为transformer原始模型图示;
    [0037]
    图2为本发明中基于特征金字塔的transformer改进模型图示;
    [0038]
    图3a为本发明中多尺度编解码注意力计算方式图示(一);
    [0039]
    图3b为本发明中多尺度编解码注意力计算方式图示(二)。
    具体实施方式
    [0040]
    下面结合说明书附图对本发明作进一步阐述。
    [0041]
    本发明提出一种基于特征金字塔的transformer模型,在计算编解码注意力时,同时关注编码端不同编码层的隐层信息。由于相同结构层堆叠的方式存在冗余计算,因此通过编码层的全连接层将编码器隐层状态呈金字塔型进行缩放,越高层隐层状态包含的语义信息越稠密。同时使用不同尺度的多头分割,避免编解码注意力计算中查询向量维度和键向量维度不一致的问题。
    [0042]
    本发明一种基于特征金字塔的神经机器翻译方法,包括以下步骤:
    [0043]
    1)将预处理后的源语言输入送入翻译模型的编码器端,通过词嵌入层和堆叠的编码器层编码成不同维度的上下文向量;
    [0044]
    2)编码器的隐层维度在前馈过程中成金字塔型缩放,根据维度大小将编码器层分为不同子块,不同子块的输出向量保存在源语编码向量序列中;
    [0045]
    3)将编码器的源语编码向量序列送入翻译模型的解码器端的编解码注意力模块,在编解码器注意力权重的计算过程中,对不同维度的编码键向量和解码查询向量进行不同尺度的多头分割,使得编码子键向量和解码子查询向量保持维度一致;
    [0046]
    4)将不同维度的编解码注意力计算结果加权平均,得到最终的编解码器注意力输出向量,解码器通过堆叠的解码器层将源语上下文向量解码成目标语译文,并通过交叉熵损失函数进行梯度更新,优化翻译模型的权重。
    [0047]
    步骤1)中,首先对训练数据进行预处理,例如,对于中文句子“猫喜欢吃鱼。”,分词处理后变成“猫喜欢吃鱼。”,然后再将源语输入送入翻译模型的编码器端,将源语信息编码成不同维度的上下文向量。如图1所示,编码器由堆叠的编码器层构成,每个编码器层包括一个自注意力子层和一个全连接子层。其中,自注意力模块的计算方式如下:
    [0048][0049][0050]
    其中self_att表示自注意力子层,为输入的隐层向量,wq,wk,wv为自注意力子层的参数,softmax(
    ·
    )为注意力权重计算函数,ls为源语句长,d为对应的隐层向量维度,a为自注意力权重,
    [0051]
    在原始transformer模型中,编码器不同层的隐层维度大小都是一致的(通常为512维),因此不同层的网络结构是一样的,使得相邻层存在冗余计算。
    [0052]
    在步骤2)中,为了减少编码器层的冗余计算,同时为了捕获不同维度的源语语义信息,编码器的隐层维度在前馈过程中成金字塔型缩放,缩放过程发生在每个全连接子层:
    [0053]ho
    =w2relu(hiw1 b1) b2[0054]
    其中hi是全连接子层的输入向量,即前面自注意力子层的输出向量,ho是全连接层的输出向量,w1∈rd×
    4d
    ,w2∈r
    4d
    ×
    d/2
    ,b1∈r
    4d
    ,b2∈r
    d/2
    为全连接子层的参数,relu为激活函数,最终全连接子层将输入从对应的隐层向量维度d缩放到d/2;
    [0055]
    同时不同于原始transfomer模型将编码器最后一层的输出作为唯一的源语编码向量,本发明认为编码器不同子层的输出包含不同的语义信息,它们之间存在互补关系,因此根据维度大小将编码器分为不同子块,不同子块的输出向量保存在源语编码向量序列
    中,作为源语不同维度的编码信息集合。如图2所示,在计算编解码注意力时,解码器可以同时关注编码层不同层不同维度的编码信息。
    [0056]
    步骤3)中,将编码器的源语编码向量序列送入模型的解码器端,解码器通过多头编解码注意力模块引入源语上下文信息,即编码器的源语编码向量序列。由于注意力权重的计算要求解码查询向量和源语键向量维度一致,因此在多头分割的时候使用多尺度分割方式。对维度为dq的解码查询向量和维度为dk的源语键向量,注意力得分的计算步骤如下:
    [0057]
    301)将编码键向量切割为head_key个维度为head_dim的源语子键向量,其中head_key为键头的个数,head_dim为头的维度,head_key=dk/head_dim;
    [0058]
    302)将解码查询向量切割为head_query个维度为head_dim的解码子查询向量,其中head_query为查询头的个数,head_dim为头的维度,head_query=dq/head_dim,其中dq=n
    ×dk
    ,此时head_query=n
    ×
    head_key,n为dq和dk的比例系数;
    [0059]
    303)当n》1时,如图3a所示,n个解码子查询向量对应1个编码子键向量;当n=1时,和原始transformer模型一样,1个解码子查询向量对应1个编码子键向量;当n《1时,如图3b所示,1个解码子查询向量对应n个编码子键向量,最终的注意力计算结果为对应的多个输出平均。编解码器注意力的计算方式与自注意的计算稍有不同,其计算方式如下:
    [0060][0061]
    其中为输入的隐层向量,在此处作为解码查询向量,l
    t
    为目标语句长,为编码键向量,在此处作为解码键向量,ls为源语句长。
    [0062]
    步骤4)中,将不同维度的编解码注意力计算结果加权平均,其权重是可学习的,最终的编解码器注意力结果计算方式如下:
    [0063][0064]
    其中l为编码器的层数,对应l个不同维度的编码器层输出,vi表示对第i层编码器层输出的编解码注意力计算结果,γi为模型可学习的权重参数。
    [0065]
    在训练阶段,模型通过交叉熵损失函数进行梯度更新,优化模型的权重。
    [0066]
    在解码阶段,训练好的模型能够基于源语输入“猫喜欢吃鱼。”,通过自回归的方式生成对应的目标语译文“cats like to eat fish.”。
    [0067]
    为验证方法的有效性,本发明将基于特征金字塔的神经机器翻译模型应用于机器翻译标准数据集wmt 14英德和iwslt14德英两个任务上。其中wmt 14英德数据集有大约450万条训练数据,iwslt14德英数据集有大约15万条训练数据。通过表1可以发现,本发明提出的方法对比原始transformer模型,模型译文的bleu值有明显提升,证明本发明提出的方法能够有效提升模型的翻译性能。
    [0068][0069]
    表1实验结果对比
    [0070]
    本发明采用特征金字塔的方式,降低了编解码器注意力计算中的冗余计算,同时采用多尺度分割方法解决了编解码注意力计算中维度不一致的问题。最终的实验结果证明,本发明提出的特征金字塔神经机器翻译模型,可以有效融合不同尺度的源语特征从而提高模型的翻译质量。
    转载请注明原文地址:https://tc.8miu.com/read-338.html

    最新回复(0)