一种基于龙格-库塔高阶表示的翻译方法与流程

    专利查询2022-08-29  74



    1.本发明涉及一种机器语言翻译技术,具体为一种基于龙格-库塔高阶表示的翻译方法。


    背景技术:

    2.机器翻译是指将一种语言映射到另外一种语言的过程。这种依托于海量文本数据训练得到的机器翻译模型极大程度上缓解了人工翻译的压力。伴随着机器翻译技术的迭代,从最初的基于规则的机器翻译、到21世纪初的基于统计算法的机器翻译,再到目前基于神经网络的机器翻译,机器翻译的准确率越来越高。目前,基于自注意力机制的transformer模型已经达到能够媲美人类的翻译准确度,其翻译流畅度对比基于统计的机器翻译模型有了显著的改善。这也激发了结合机器翻译与人工翻译的辅助式翻译行业的发展。
    3.目前基于自注意力机制的transformer模型由于其高度并行的计算能力与性能优势,在很多机器翻译任务上取得了最佳性能,是当今最主流的神经机器翻译框架。其仍然采用编码器-解码器结构,编码器和解码器分别由多个相同的块堆叠而成,不同块之间采用独立的参数,进而保证网络的整体泛化能力。其中编码器包含注意力子层和前馈神经网络子层,同时为了训练的稳定性,层与层之间采用残差连接和层正则化机制。而解码器相比于编码器多引入了一个编码器-解码器注意力网络,用于捕获源语言与目标语言之间的对齐关系。
    4.神经网络并不是一个崭新的技术,早在上世纪50年代就有人提出了类似的构想,只不过受到当时计算资源的限制无法充分体现其优势。然而伴随着计算能力不断增强,以及大数据时代下海量数据的易于获取,基于神经网络的应用不断成为人工智能行业的核心技术,并取得了令人瞩目的成绩。然而基于神经网络的机器翻译模型的翻译性能不仅依赖于网络架构设计,同样与容量密切相关。容量,广义上来讲指代神经网络中神经元的数量,具体来说是模型的参数量。常见的增加模型容量的方式为增大模型宽度,例如transformer-big模型;亦或是网络堆叠的深度,如transformer-deep模型。近年来,深层transformer模型在机器翻译,语言建模,文本摘要等自然语言处理任务上已经成为主流的基线模型,如何进一步提高深层transformer的性能成为了讨论广泛的研究热点。目前为了使深层transformer模型能够正常训练需要对模型结构进行调整,即将编码层和解码层中层正则化的位置由每一个子层输出位置调整为子层输入位置,并在编码端和解码端的输出位置增加额外的层正则化操作,称之为pre-norm范式。
    5.残差连接最早追溯到图像处理领域的resnet网络结构,通过跨层连接的方式成功训练超过100层的卷积神经网络,在当时的imagenet任务上取得了第一名的优秀成绩。该方法的提出激发了后人的研究兴趣,让研究人员意识到利用多层堆叠进行逐层的特征提取是一种提高分类准确的可行技术手段。后人针对残差网络的解释性也进行了广泛的讨论。从数学上来看,残差连接的计算方式如下:
    6.y
    t 1
    =y
    t
    f(y
    t

    t
    )
    7.其中y
    t
    代表第t层网络输入,f(
    ·
    )代表特征提取函数,可以使卷积网络,也可以是自注意力网络或前馈神经网络。形式上来看第t 1层的输入不仅仅依赖于上一层的特征提取向量f(y
    t

    t
    ),同时也利用了y
    t
    的信息。
    8.一些研究人员指出通过对上述公式进行推导可以得到如下公式:
    [0009][0010]
    这里表示t时刻网络的表示的导数可以通过f(y(t),θ(t))进行近似,从而建立了常微分方程与残差连接的联系。上述的公式指代常微分方程中最简单的一阶欧拉求解方法,其解指代网络的中间层输出,理论上与真正的“解”存在一定的偏差,称之为截断误差。
    [0011]
    由于目前主流的transformer等神经网络都采用多层堆砌的方式,不同层可以看作是独立的常微分求解方法,因此也导致了网络计算中的错误累计,即全局的截断误差。现有的标准transformer结构采用的一阶欧拉求解方法,存在较大的阶段误差,因此如何有效地进一步减少误差的累计是亟待解决的。
    [0012]
    主流的多层堆叠的神经网络模型在引入残差连接后尽管模型能够堆叠更深,达到更好地性能,但没有解决错误累计问题。不同常微分方程求解器预测得到的具有偏差的“解”伴随着网络深度的增加,全局截断误差进一步增大,使网络受限于一定的模型深度,同时同等参数量下网络参数学习的并不足够充分。


    技术实现要素:

    [0013]
    针对上述多层神经网络在使用残差连接时导致不同层之间的错误累计,导致最终更大的全局截断误差问题,本发明采用高阶的常微分方程求解方法来减少不同层产生的截断误差。
    [0014]
    本发明采用的技术方案如下:
    [0015]
    本发明提供一种基于龙格-库塔高阶表示的翻译方法,包括以下步骤:
    [0016]
    1)将预处理后的源语言输入翻译模型的编码器端,通过词嵌入层和堆叠的编码器层编码为上下文向量;确立残差连接与常微分方程数值求解器之间的隐含联系,将每一个单独的残差块看作常微分方程中一阶求解方法;
    [0017]
    2)引入高阶的龙格-库塔方法进行网络的结构设计,通过将每一个子层的运算或整个块的运算看作独立的求解器,利用2阶龙格-库塔以及4阶龙格-库塔方法来重新设计transformer结构;
    [0018]
    3)在步骤2)的基础上进一步进行结构完善,将龙格-库塔中间表示的系数调整为1;
    [0019]
    4)在步骤3)的基础上将龙格-库塔的中间表示的系数作为可学习的网络参数,其初始化值设置为1,之后伴随网络整体参数的更新自适应的调整不同中间项的权重;
    [0020]
    5)在步骤4)的基础上利用高阶方法得到的不同时间步的中间状态通过自动学习获得每一个中间表示所对应的系数,得到更精确的层表示,实现基于龙格-库塔高阶表示的
    翻译方法。
    [0021]
    步骤1)中确立残差连接与常微分方程数值求解器之间的隐含联系,通过以下公式实现:
    [0022]yt 1
    =y
    t
    g(ln(y
    t
    ),θ
    t
    )
    [0023]
    其中ln(
    ·
    )表示正则化方法,g(
    ·
    )表示自注意力网络或者前馈神经网络,上述公式表示pre-norm的transformer中每一子层计算的流程,y
    t
    代表当前层的输入,y
    t 1
    代表当前层的输出;
    [0024]
    一阶常微分方程表示为:
    [0025][0026]
    这里f(y(t),t)定义了与时间独立的向量,通过重新定义g(ln(y
    t
    ),θ
    t
    )函数得到如下表示:
    [0027]
    y(t δt)=y(t) δt
    ·
    f(y(t),θ(t))
    [0028]
    这里,δt表示时间t的变化,在标准的transformer网络中δt=1;
    [0029]
    通过调整δt的步幅得到:
    [0030][0031][0032]
    通过上述两式建立起transformer模型与常微分方程之间的联系。
    [0033]
    步骤2)中,利用2阶龙格-库塔方法构造模型为:
    [0034][0035]
    f1=f(y
    t

    t
    )
    [0036]
    f2=f(y
    t
    f1,θ
    t
    )
    [0037]
    这里f1和f2代表模型的第一次中间预测结果以及第二次中间预测结果,不同中间结果的预测计算过程复用相同的网络参数θ
    t

    [0038]
    利用4阶的龙格-库塔方法构造模型为:
    [0039][0040]
    f1=f(y
    t

    t
    )
    [0041][0042][0043]
    f4=f(y
    t
    f3,θ
    t
    )
    [0044]
    其中f3和f4代表模型的第三次中间预测结果以及第四次中间预测结果。
    [0045]
    步骤3)中,将2阶方法的系数设为1,其公式为:
    [0046]yt 1
    =y
    t
    f(y
    t

    t
    ) f(y
    t
    f(y
    t

    t
    ),θ
    t
    )。
    [0047]
    步骤4)中,在步骤3)的基础上将中间项系数作为可学习的网络参数γ1和γ2,其初始化值设置为1,之后伴随网络整体参数的更新自动学习;
    [0048]yt 1
    =y
    t
    γ1f(y
    t

    t
    ) γ2f(y
    t
    f(y
    t

    t
    ),θ
    t
    )。
    [0049]
    步骤5)中,在步骤4)的基础上利用高阶方法得到的中间状态来自动学习不同时间步表示的权重,动态地确定不同表示对最终输出的贡献度;
    [0050]yt 1
    =y
    t
    g
    ·
    f(y
    t

    t
    ) (1-g)
    ·
    f(y
    t
    f(y
    t

    t
    ),θ
    t
    )
    [0051]
    g=sigmoid(w1·
    f(y
    t

    t
    ) w2·
    f(y
    t
    f(y
    t

    t
    ),θ
    t
    ))
    [0052]
    其中g代表通过学习得到的系数,sigmoid表示激活函数,w1,w2是可学习的网络参数。
    [0053]
    本发明具有以下有益效果及优点:
    [0054]
    1.本发明引入了高阶的龙格-库塔常微分方程求解器来提高每一层的表示的准确度,减少求解器产生的截断误差,仅仅使用更少的块堆叠就能达到更高的模型准确度,减少了模型的全局截断误差。
    [0055]
    2.本发明建立了残差连接与深层transformer模型之间的对应关系,从数值分析的角度解释了transformer模型的强大能力背后蕴含的机理,也给后续研究人员提供了一种新的视角,以可解释的数值方法来指导网络结构的设计,而不是一昧的通过经验性的调整进行网络的优化。
    [0056]
    3.本发明提出的基于龙格-库塔高阶表示的翻译方法不受限于网络深度与宽度,在不同的容量下均取得了显著的性能提升。同时在稀缺资源语种与富资源语言任务上取得了一致性的性能改善。
    [0057]
    4.本发明方法仅仅增加较小的额外存储开销与计算代价,其推断速度方法满足工业需求。
    [0058]
    5.本发明方法在通用数据集上取得了一致性的性能提升,并在wmt14英法任务上取得了最优的翻译性能。
    附图说明
    [0059]
    图1为现有技术中一阶欧拉方法结构图示;
    [0060]
    图2为本发明方法涉及的1阶基线方法模型结构示意图;
    [0061]
    图3为本发明方法涉及的2阶龙格库塔模型的结构示意图;
    [0062]
    图4为本发明方法涉及的4阶龙格库塔模型的结构示意图;
    [0063]
    图5为本发明方法涉及的改进系数的2阶龙格库塔模型的结构示意图。
    具体实施方式
    [0064]
    下面结合说明书附图对本发明作进一步阐述。
    [0065]
    本发明利用高阶的常微分求解方法来减少每一步预测的截断误差,进而减少模型的全局误差,提高模型的表示能力。
    [0066]
    本发明引入了高阶的常微分方程求解方法(如图1所示),替换标准transformer模型中的一阶欧拉方法,即残差连接(如图2所示)。
    [0067]
    本发明采用的技术方案包括以下步骤:
    [0068]
    1)将预处理后的源语言输入翻译模型的编码器端,通过词嵌入层和堆叠的编码器层编码为上下文向量;确立残差连接与常微分方程数值求解器之间的隐含联系,将每一个单独的残差块看作常微分方程中一阶求解方法;
    [0069]
    2)引入高阶的龙格-库塔方法进行网络的结构设计,通过将每一个子层的运算或整个块的运算看作独立的求解器,利用2阶龙格-库塔(如图3所示)以及4阶龙格-库塔(如图4所示)方法来重新设计transformer结构;
    [0070]
    3)在步骤2)的基础上进一步进行结构完善,将龙格-库塔中间表示的系数调整为1;实行上本步骤等价于直接连接,更易于参数的学习;
    [0071]
    4)在步骤3)的基础上将龙格-库塔的中间表示的系数作为可学习的网络参数,其初始化值设置为1,之后伴随网络整体参数的更新自适应的调整不同中间项的权重(如图5所示);
    [0072]
    5)在步骤4)的基础上利用高阶方法得到的不同时间步的中间状态通过自动学习获得每一个中间表示所对应的系数,得到更精确的层表示,实现基于龙格-库塔高阶表示的翻译方法。
    [0073]
    本发明中,步骤1)确立残差连接与常微分数值求解器之间的隐含联系;步骤2)引入高阶的龙格-库塔方法进行网络的结构设计。通过将每一个子层的运算或整个块的运算看作是独立的欧拉求解器,利用更精确地2阶和4阶龙格-库塔求解方法来重新设计transformer结构;
    [0074]
    步骤3)在步骤2)的基础上进一步进行结构的完善。由于当网络变深后,由于高阶的求解方法引入的中间项系数会导致模型反向更新参数时梯度消失问题,对其系数进行调整为1,实行上等价于直接连接,更易于参数的学习;
    [0075]
    步骤4)在步骤3)的基础上将中间项系数作为可学习的网络参数,其初始化值得大小设置为1,之后伴随网络整体参数的更新自适应的调整不同中间项的权重。
    [0076]
    在步骤1)中已经建立了基于pre-norm范式的transformer与常微分方程之间的联系。确立残差连接与常微分方程数值求解器之间的隐含联系,通过以下公式实现:
    [0077]yt 1
    =y
    t
    g(ln(y
    t
    ),θ
    t
    )
    [0078]
    其中ln(
    ·
    )表示正则化方法,g(
    ·
    )表示自注意力网络或者前馈神经网络,上述公式表示pre-norm的transformer中每一子层计算的流程,y
    t
    代表当前层的输入,y
    t 1
    代表当前层的输出;
    [0079]
    一阶常微分方程表示为:
    [0080][0081]
    这里f(y(t),t)定义了与时间独立的向量,通过重新定义g(ln(y
    t
    ),θ
    t
    )函数得到如下表示:
    [0082]
    y(t δt)=y(t) δt
    ·
    f(y(t),θ(t))
    [0083]
    这里,δt表示时间t的变化,在标准的transformer网络中δt=1;
    [0084]
    通过调整δt的步幅得到:
    [0085][0086][0087]
    通过上述两式建立起transformer模型与常微分方程之间的联系。
    [0088]
    在步骤2)中,利用数值分析中高阶龙格-库塔方法,transformer中的子层或层之间的残差连接可以替换成如下计算方式:
    [0089]
    201)利用2阶的龙格-库塔方法构造网络如下:
    [0090][0091]
    f1=f(y
    t

    t
    )
    [0092]
    f2=f(y
    t
    f1,θ
    t
    )
    [0093]
    这里f1和f2代表模型的第一次中间预测结果以及第二次中间预测结果。从公式中可以看到不同中间结果的预测计算过程复用了相同的网络参数θ
    t
    ,一定程度上提高了参数的利用效率。该2阶的龙格-库塔方法也被叫作改进的欧拉方法。
    [0094]
    202)类似地也可以利用4阶的龙格-库塔方法构造网络如下:
    [0095][0096]
    f1=f(y
    t

    t
    )
    [0097][0098][0099]
    f4=f(y
    t
    f3,θ
    t
    )
    [0100]
    其中f3和f4代表模型的第三次中间预测结果以及第四次中间预测结果。相比于2阶方法(如图3所示),4阶方法采用了4次具有前后依赖的中间预测表示得到最终的y
    t 1
    向量(如图4所示)。
    [0101]
    在步骤2)中,显示地runge-kutta方法在数值分析方法中表示为如下:
    [0102][0103]
    f1=hf(y
    t
    ,t)
    [0104][0105]
    这里h表示了步幅的大小,fi是中间预测结果,α,β以及γ是中间表示的数值系数,通过泰特展开计算得到。这里每一层的网络计算不仅仅依赖于层内部参数矩阵的特征提取
    与上一层的表示,同时在内部进行多次序列式的中间预测,最终的输出是多个中间表示的权重累加和。
    [0106]
    在步骤3)中,通过反向传播求解梯度的方式来阐述上述数值定义的中间项系数并不易于深层网络的训练。这里以2阶方法为例(如图3所示):
    [0107][0108]
    令ε表示训练的损失,l表示网络的整体深度,y
    l
    表示模型的最终输出。那么对于第y
    t
    的梯度可以通过链式法则计算得到:
    [0109][0110]
    这里
    [0111][0112]
    从上述公式可以观测到与相关,因此当深度继续增大会面临梯度消失问题。针对该问题,可以通过将中间项系数修改为1,那么经过修改后的rk2-block可以表示为:
    [0113]yt 1
    =y
    t
    f(y
    t

    t
    ) f(y
    t
    f(y
    t

    t
    ),θ
    t
    )
    [0114]
    同样,其y
    t
    的梯度可以通过链式法则得到:
    [0115][0116]
    对比两个公式的右侧可以看到改进后的rk2-block更易于梯度的传导,适用于深层网络的训练。
    [0117]
    在步骤4)中,通过进一步使用可学习的系数作为中间项的表示,以1为初始化让网络自适应的决定不同中间系数的权重:
    [0118]yt 1
    =y
    t
    γ1f(y
    t

    t
    ) γ2f(y
    t
    f(y
    t

    t
    ),θ
    t
    )
    [0119]
    其中γ1,γ2代表中间表示的数值系数。这种方式取得了更好的性能。
    [0120]
    在步骤5)中,利用高阶方法得到的中间状态来自动学习不同时间步表示的权重,动态地确定不同表示对最终输出的贡献度。
    [0121]yt 1
    =y
    t
    g
    ·
    f(y
    t

    t
    ) (1-g)
    ·
    f(y
    t
    f(y
    t

    t
    ),θ
    t
    )
    [0122]
    g=sigmoid(w1·
    f(y
    t

    t
    ) w2·
    f(y
    t
    f(y
    t

    t
    ),θ
    t
    ))
    [0123]
    其中g代表通过学习得到的系数,sigmoid表示激活函数,w1,w2是可学习的网络参数。
    [0124]
    本实施例采用机器翻译的标准数据集wmt英德和wmt英法进行实验。在wmt英德任务上,提出的方法取得了近29.03的bleu性能,对比基线(27.60)在参数量相同的条件下达到了1.43bleu提升。实验结果如下:
    [0125][0126]
    表1实验结果对比
    [0127]
    本发明显著的优势在于使用高阶的常微分方程求解方法后,每一块得到输出表示比transformer中原始的多块累计的表示更加精确,某种意义上讲采用更少的高阶常微分方程块堆叠达到了更精确的表示。一定程度上减少了错误累计,显著的缓解了全局截断误差问题。本发明选取高阶龙格-库塔方法作为常微分方程求解器,该方法是数值分析中的著名求解高阶常微分方程方法,对比于一阶的欧拉方法具备更小的截断误差。这里选取显示的龙格-库塔方法。
    [0128]
    本发明方法利用常微分方程高阶求解方法具备更小的截断误差特性,进而减少每一层的误差损失,大幅度减少全局误差。该网络结构具备模型参数的利用高,性能强劲等优势,在同等容量下能够取得大幅度的性能增益。

    技术特征:
    1.一种基于龙格-库塔高阶表示的翻译方法,其特征在于包括以下步骤:1)将预处理后的源语言输入翻译模型的编码器端,通过词嵌入层和堆叠的编码器层编码为上下文向量;确立残差连接与常微分方程数值求解器之间的隐含联系,将每一个单独的残差块看作常微分方程中一阶求解方法;2)引入高阶的龙格-库塔方法进行网络的结构设计,通过将每一个子层的运算或整个块的运算看作独立的求解器,利用2阶龙格-库塔以及4阶龙格-库塔方法来重新设计transformer结构;3)在步骤2)的基础上进一步进行结构完善,将龙格-库塔中间表示的系数调整为1;4)在步骤3)的基础上将龙格-库塔的中间表示的系数作为可学习的网络参数,其初始化值设置为1,之后伴随网络整体参数的更新自适应的调整不同中间项的权重;5)在步骤4)的基础上利用高阶方法得到的不同时间步的中间状态通过自动学习获得每一个中间表示所对应的系数,得到更精确的层表示,实现基于龙格-库塔高阶表示的翻译方法。2.按权利要求1所述的基于龙格-库塔高阶表示的翻译方法,其特征在于:步骤1)中确立残差连接与常微分方程数值求解器之间的隐含联系,通过以下公式实现:y
    t 1
    =y
    t
    g(ln(y
    t
    ),θ
    t
    )其中ln(
    ·
    )表示正则化方法,g(
    ·
    )表示自注意力网络或者前馈神经网络,上述公式表示pre-norm的transformer中每一子层计算的流程,y
    t
    代表当前层的输入,y
    t 1
    代表当前层的输出;一阶常微分方程表示为:这里f(y(t),t)定义了与时间独立的向量,通过重新定义g(ln(y
    t
    ),θ
    t
    )函数得到如下表示:y(t δt)=y(t) δt
    ·
    f(y(t),θ(t))这里,δt表示时间t的变化,在标准的transformer网络中δt=1;通过调整δt的步幅得到:通过调整δt的步幅得到:通过上述两式建立起transformer模型与常微分方程之间的联系。3.按权利要求1所述的基于龙格-库塔高阶表示的翻译方法,其特征在于:步骤2)中,利用2阶龙格-库塔方法构造模型为:f1=f(y
    t
    ,θ
    t
    )f2=f(y
    t
    f1,θ
    t
    )
    这里f1和f2代表模型的第一次中间预测结果以及第二次中间预测结果,不同中间结果的预测计算过程复用相同的网络参数θ
    t
    ;利用4阶的龙格-库塔方法构造模型为:f1=f(y
    t
    ,θ
    t
    ))f4=f(y
    t
    f3,θ
    t
    )其中f3和f4代表模型的第三次中间预测结果以及第四次中间预测结果。4.按权利要求1所述的基于龙格-库塔高阶表示的翻译方法,其特征在于:步骤3)中,将2阶方法的系数设为1,其公式为:y
    t 1
    =y
    t
    f(y
    t
    ,θ
    t
    ) f(y
    t
    f(y
    t
    ,θ
    t
    ),θ
    t
    )。5.按权利要求1所述的基于龙格-库塔高阶表示的翻译方法,其特征在于:步骤4)中,在步骤3)的基础上将中间项系数作为可学习的网络参数γ1和γ2,其初始化值设置为1,之后伴随网络整体参数的更新自动学习;y
    t 1
    =y
    t
    γ1f(y
    t
    ,θ
    t
    ) γ2f(y
    t
    f(y
    t
    ,θ
    t
    ),θ
    t
    )。6.按权利要求1所述的基于龙格-库塔高阶表示的翻译方法,其特征在于:步骤5)中,在步骤4)的基础上利用高阶方法得到的中间状态来自动学习不同时间步表示的权重,动态地确定不同表示对最终输出的贡献度;y
    t 1
    =y
    t
    g
    ·
    f(y
    t
    ,θ
    t
    ) (1-g)
    ·
    f(y
    t
    f(y
    t
    ,θ
    t
    ),θ
    t
    )g=sigmoid(w1·
    f(y
    t
    ,θ
    t
    ) w2·
    f(y
    t
    f(y
    t
    ,θ
    t
    ),θ
    t
    ))其中g代表通过学习得到的系数,sigmoid表示激活函数,w1,w2是可学习的网络参数。

    技术总结
    本发明公开一种基于龙格-库塔高阶表示的翻译方法,步骤为:将预处理后的源语言输入翻译模型的编码器端,确立残差连接与常微分方程数值求解器之间的隐含联系;引入高阶的龙格-库塔方法进行网络的结构设计,利用2阶龙格-库塔以及4阶龙格-库塔方法来重新设计Transformer结构;将龙格-库塔中间表示的系数调整为1;伴随网络整体参数的更新自适应的调整不同中间项的权重;利用高阶方法得到的不同时间步的中间状态通过自动学习获得每一个中间表示所对应的系数,得到更精确的层表示,实现基于龙格-库塔高阶表示的翻译方法。本发明方法在不同模型容量下均取得了显著的性能提升,在稀缺资源语种与富资源语言任务上取得了一致性的性能改善。一致性的性能改善。一致性的性能改善。


    技术研发人员:杜权 田丰宁 高博
    受保护的技术使用者:沈阳雅译网络技术有限公司
    技术研发日:2022.02.17
    技术公布日:2022/5/25
    转载请注明原文地址:https://tc.8miu.com/read-11806.html

    最新回复(0)