一种基于标准化流的全并行化文本生成方法

文档序号:1556933 发布日期:2020-01-21 浏览:26次 >En<

阅读说明:本技术 一种基于标准化流的全并行化文本生成方法 (Full-parallelization text generation method based on standardized stream ) 是由 蔡翔 于 2019-10-12 设计创作,主要内容包括:为了解决现有的采用序列到序列的框架的文本生成算法效率低的问题,本发明提出一种基于标准化流的全并行化文本生成方法,包括训练过程和应用过程,其特征在于,包括如下处理步骤:将标准答案输入编码器,编码器经过处理后输出中间隐层信息,中间隐层信息直接分别输入到标准化流模块和解码器中,标准化流模块在接收到中间隐层信息后会直接处理得到标准化流输出结果;将条件信息输入到条件信息模块,经过条件信息模块的处理后得到条件隐层信息,将条件隐层信息直接输入到解码器中,当解码器同时接收到条件隐层信息和中间隐层信息后,解码器对条件隐层信息和中间隐层信息进行注意力机制和非线性变换,然后得到解码器输出结果。(In order to solve the problem of low efficiency of the existing text generation algorithm adopting a sequence-to-sequence framework, the invention provides a full-parallelization text generation method based on a standardized stream, which comprises a training process and an application process and is characterized by comprising the following processing steps: inputting the standard answers into an encoder, outputting intermediate hidden layer information after the encoder processes the intermediate hidden layer information, directly and respectively inputting the intermediate hidden layer information into a standardized stream module and a decoder, and directly processing the intermediate hidden layer information by the standardized stream module to obtain a standardized stream output result after receiving the intermediate hidden layer information; the method comprises the steps of inputting condition information into a condition information module, obtaining condition hidden layer information after the condition information is processed by the condition information module, directly inputting the condition hidden layer information into a decoder, and after the decoder receives the condition hidden layer information and the middle hidden layer information at the same time, performing attention mechanism and nonlinear transformation on the condition hidden layer information and the middle hidden layer information by the decoder to obtain an output result of the decoder.)

一种基于标准化流的全并行化文本生成方法

技术领域

本发明涉及自然语言处理技术领域,较为具体的,涉及到一种基于标准化流的全并行化文本生成方法,其可以应用于文章标题生成、自动化摘要、新闻生成、机器翻译、以及问答方法生成等方向。

背景技术

随着技术的发展,信息的传递不但越来越频繁,而且也越来越多元化。人们对于文本生成算法的时速性能要求越来越高,这样可以更好的应用在机器翻译、机器生成新闻等技术领域,所以机器自动生成文本成为了未来不可避免的科技发展趋势。

现有的文本生成算法采用序列到序列(seq2seq)的框架,其包括编码器(encoder)和解码器(decoder)两个部分,解码器(decoder)采用自回归式的解码器,即需要将前一个字或词输入到方法后,得到后一个字,如此往复得到整个句子以及段落,采用这种序列到序列(seq2seq)的框架,只能在较短的句子或者文章生成时满足实时要求,对于大篇幅的文章生成上,则完全达不到要求。

标准化流是一种全新的密度估计方式,其原理是通过多步跳转,将一种分布向目标分布转换的过程,由于手动设计的高斯噪声具有独立性,其能够打破序列到序列(seq2seq)框架中的解码器(decoder)原有的自回归的限定,可以使得文字序列生成并行化。

有鉴于此,迫切需要提出一种新的文本生成方法,并且能够将标准化流的方法应用在其中,这样可以实现所有文字序列化并行生成,能够大大提升文本生成的效率,实现大规模生成文字的效果,可以适用于大篇幅的文章生成。

发明内容

有鉴于此,为了解决现有的采用序列到序列(seq2seq)的框架的文本生成算法效率低的问题,本发明提出一种基于标准化流的全并行化文本生成方法,其通过标准化流模块的可逆特性,将编码器的输入转化为高斯白噪声,然后通过高斯白噪声的输入取代编码器的输入,这样使得编码器也可以不再使用自回归式的编码器,其在生成文字序列时,解码器(decoder)不再受到自回归的约束,在时间维度上可以并行生成文字,使得文本生成的效率大大提升。

一种基于标准化流的全并行文本生成方法,包括训练过程和应用过程,其特征在于,包括如下处理步骤:

训练过程:

S1,将标准答案输入编码器,编码器经过处理后输出中间隐层信息,中间隐层信息直接分别输入到标准化流模块和解码器中,标准化流模块在接收到中间隐层信息后会直接处理得到标准化流输出结果;

S2,将条件信息输入到条件信息模块,经过条件信息模块的处理后得到条件隐层信息,将条件隐层信息直接输入到解码器中,当解码器同时接收到条件隐层信息和中间隐层信息后,解码器对条件隐层信息和中间隐层信息进行注意力机制和非线性变换,然后得到解码器输出结果;

S3,将标准化流输出结果与高斯白噪声做损失函数计算,损失函数采用KL散度(中文翻译为相对熵,英文全称为KL Divergence),KL散度可以用于衡量标准化流输出结果与高斯白噪声的概率分布的匹配程度,当标准化流输出结果与高斯白噪声的分布差异越大时,KL散度越大,反之当标准化流输出结果与高斯白噪声的分布差异越小时,KL散度越小;将解码器输出结果与标准答案做损失函数计算,损失函数采用交叉熵(英文全称为crossentropy),交叉熵是标准的分类问题的损失函数,与之前的KL散度不同,由于只有具体的标准答案样本,而没有标准答案的分布,所以在做解码器输出结果与标准答案的损失函数时采用交叉熵;

S4,然后采用梯度下降法计算步骤S3中的两个损失函数的KL散度和交叉熵,这两个损失函数共同组成了变分自编码器的最低下界(英文全称Evidence Lower Bound,英文简称ELBO),使用梯度下降法将变分自编码器的最低下界(ELBO)回传给标准化流模块和编码器,反向回传后会更新神经网络的参数,使得目标函数,也就是最低下界(ELBO)的值变得越来越小,计算损失函数的最低下界(ELBO)的目的是为了得到反向回传的梯度;

S5,在下一次训练的过程中,编码器使用跟更新过的网络参数进行计算,然后生成调整后的中间隐层信息,并将调整后的中间隐层信息输送给标准化流模块和解码器,标准化流模块会使用更新过的参数进行计算,从而获得新的标准化流模块输出结果;解码器接收条件信息模块输入的条件隐层信息和调整后的中间隐层信息,进行运算后得到解码器输出结果;接着重复S3-S4的步骤;

S6,然后不断重复S5的步骤,直至当反向回传的KL散度和交叉熵在整个神经网络的最低下界低于某个固定阈值时,训练结束;反向回传的KL散度和交叉熵的最低下界代表与标准答案的误差,当最低下界比较大时,表明解码器的输出结果与标准答案差异比较大,训练过程还需要继续进行,当最低下界越小时,解码器的输出结果与标准答案越来越接近,直至当反向回传的KL散度和交叉熵在整个神经网络的最低下界低于某个固定阈值时,就说明神经网络的输出结果和目标一模一样了,表明训练过程已经结束。

应用过程:

S7,将高斯白噪声输入到训练好的标准化流模块,得到标准化流输出信息,然后输送给解码器,解码器结合条件信息模块输入的条件隐层信息,对标准化流输出信息和条件隐层信息进行注意力机制和非线性变换,然后得到解码器输出结果。

进一步的,整个框架基于变分自编码器框架进行了扩展。

进一步的,当标准答案答案输入编码器后,编码器内部的处理步骤依次包括词嵌入模型(embedding)处理、多层长短时记忆模型(LSTM)和/或卷积层堆叠处理、和全连接非线性变换处理,最后输出中间隐层信息。多层长短时记忆模型(LSTM)主要用于学习整个序列,例如一个句子的特征,而卷积层堆叠处理主要用于学习一个句子中前后两个词或者字之间的特征,具体在使用的过程中,编码器内部是选用多层长短时记忆模型(LSTM),还是卷积层堆叠处理,还是多层长短时记忆模型(LSTM)和卷积层堆叠处理的组合,需要在实际的应用场景下进行调整,试验出来后哪种处理方式效果好则使用哪种处理方式。

进一步的,标准化流模块包括多项可逆变换,较为具体的,在训练过程中,编码器输出的中间隐层信息输入到标准化流模块后,会依次经过掩膜自回归流(MaskedAutoregressive Flow,简称MAF)模块、1X1可逆卷积模块和再仿射耦合层模块的处理,且以上三个模块依次循环8次后得到标准化流输出。

进一步的,注意力机制是神经翻译框架中的重要的一个环节,现有的注意力机制也有很多变体,此处的注意力机制为最普通的注意力机制(英文名称为attentionmechanism),注意力机制是一种数学计算,它可以将两个非对齐的信息进行融合,主要是对条件隐层信息和当前隐层信息的对其融合。举个例子,将中文句子做得好翻译成德语Gutgemacht,Gut表示好,gemacht表示已经做某件事,中文为3个字,而德语却只有2个字,中文的“好”在句子末尾,而德语的“Gut”在句子开头,注意力机制会将“Gut”这个字自动的和“好”这个字进行对齐,并输出数字矩阵。

进一步的,条件信息模块的结构跟编码器的结构相同,其表示生成相应文字需要的信息,比如中文翻译成英文,则中文就是条件信息;如果生成文章,则文章的关键字就是条件信息;条件信息模块的处理步骤依次包括词嵌入模型(embedding)处理、多层长短时记忆模型(LSTM)和/或卷积层堆叠处理、和全连接非线性变换处理,最终得到条件隐层信息。

进一步的,在测试过程中,高斯白噪声的样本个数决定了文本的长度,有多少个高斯噪声样本点,就有多少个文字产生。例如想要输出100个单词的文本,则输入到标准化流模块的高斯白噪声的长度为100。

进一步的,解码器输出的结果为产生文字序列的ID,而且每个文字在词库中都有唯一的ID,后续可以根据ID号找到对应文字。

由此可见,采用本发明的基于标准化流的全并行文本生成方法,可以使用高斯白噪声和标准化流模块取代解码器,使得在传统的序列到序列(seq2seq)的框架中在解码器的时间维度上的相关性得到打破,使得一个段落或者句子的所有文字能够同时生成,大大提高了生成速度。

其次,本发明将注意力机制加入到解码器中,使得生成文字能够以非对齐的方式融合到解码器中,更加有利于实际应用。因为在实际应用中,很多时候,条件信息和目标文本是非对齐的,例如:从中文翻译到英文,中文文本长度和英文文本长度大部分概率不等,且语法顺序不同。

并且,本发明使用变分自编码器的形式,构建网络。使得训练变得稳定可靠,并且学习方式与传统的seq2seq方式采用了完全不同的解决方案。

附图说明

图1为本发明所揭示的基于标准化流的全并行文本生成方法的框架结构。

如下

具体实施方式

将结合上述附图进一步说明本发明。

具体实施方式

具体实施案例1:

如图1所示,为基于标准化流的全并行文本生成方法的框架结构。

一种基于标准化流的全并行文本生成方法,包括训练过程和应用过程,其特征在于,包括如下处理步骤:

训练过程:

S1,将标准答案输入编码器,编码器经过处理后输出中间隐层信息,中间隐层信息直接分别输入到标准化流模块和解码器中,标准化流模块在接收到中间隐层信息后会直接处理得到标准化流输出结果;

S2,将条件信息输入到条件信息模块,经过条件信息模块的处理后得到条件隐层信息,将条件隐层信息直接输入到解码器中,当解码器同时接收到条件隐层信息和中间隐层信息后,解码器对条件隐层信息和中间隐层信息进行注意力机制和非线性变换,然后得到解码器输出结果;

S3,将标准化流输出结果与高斯白噪声做损失函数计算,损失函数采用KL散度(中文翻译为相对熵,英文全称为KL Divergence),KL散度可以用于衡量标准化流输出结果与高斯白噪声的概率分布的匹配程度,当标准化流输出结果与高斯白噪声的分布差异越大时,KL散度越大,反之当标准化流输出结果与高斯白噪声的分布差异越小时,KL散度越小;将解码器输出结果与标准答案做损失函数计算,损失函数采用交叉熵(英文全称为crossentropy),交叉熵是标准的分类问题的损失函数,与之前的KL散度不同,由于只有具体的标准答案样本,而没有标准答案的分布,所以在做解码器输出结果与标准答案的损失函数时采用交叉熵;

S4,然后采用梯度下降法计算步骤S3中的两个损失函数的KL散度和交叉熵,这两个损失函数共同组成了变分自编码器的最低下界(英文全称Evidence Lower Bound,英文简称ELBO),使用梯度下降法将变分自编码器的最低下界(ELBO)回传给标准化流模块和编码器,反向回传后会更新神经网络的参数,使得目标函数,也就是最低下界(ELBO)的值变得越来越小,计算损失函数的最低下界(ELBO)的目的是为了得到反向回传的梯度;

S5,在下一次训练的过程中,编码器使用跟更新过的网络参数进行计算,然后生成调整后的中间隐层信息,并将调整后的中间隐层信息输送给标准化流模块和解码器,标准化流模块会使用更新过的参数进行计算,从而获得新的标准化流模块输出结果;解码器接收条件信息模块输入的条件隐层信息和调整后的中间隐层信息,进行运算后得到解码器输出结果;接着重复S3-S4的步骤;

S6,然后不断重复S5的步骤,直至当反向回传的KL散度和交叉熵在整个神经网络的最低下界低于某个固定阈值时,训练结束;反向回传的KL散度和交叉熵的最低下界代表与标准答案的误差,当最低下界比较大时,表明解码器的输出结果与标准答案差异比较大,训练过程还需要继续进行,当最低下界越小时,解码器的输出结果与标准答案越来越接近,直至当反向回传的KL散度和交叉熵在整个神经网络的最低下界低于某个固定阈值时,就说明神经网络的输出结果和目标一模一样了,表明训练过程已经结束。

应用过程:

S7,将高斯白噪声输入到训练好的标准化流模块,得到标准化流输出信息,然后输送给解码器,解码器结合条件信息模块输入的条件隐层信息,对标准化流输出信息和条件隐层信息进行注意力机制和非线性变换,然后得到解码器输出结果。

进一步的,整个框架基于变分自编码器框架进行了扩展。

进一步的,当标准答案答案输入编码器后,编码器内部的处理步骤依次包括词嵌入模型(embedding)处理、多层长短时记忆模型(LSTM)和/或卷积层堆叠处理、和全连接非线性变换处理,最后输出中间隐层信息。多层长短时记忆模型(LSTM)主要用于学习整个序列,例如一个句子的特征,而卷积层堆叠处理主要用于学习一个句子中前后两个词或者字之间的特征,具体在使用的过程中,编码器内部是选用多层长短时记忆模型(LSTM),还是卷积层堆叠处理,还是多层长短时记忆模型(LSTM)和卷积层堆叠处理的组合,需要在实际的应用场景下进行调整,试验出来后哪种处理方式效果好则使用哪种处理方式。

进一步的,标准化流模块包括多项可逆变换,较为具体的,在训练过程中,编码器输出的中间隐层信息输入到标准化流模块后,会依次经过掩膜自回归流(MaskedAutoregressive Flow,简称MAF)模块、1X1可逆卷积模块和再仿射耦合层模块的处理,且以上三个模块依次循环8次后得到标准化流输出。

进一步的,注意力机制是神经翻译框架中的重要的一个环节,现有的注意力机制也有很多变体,此处的注意力机制为最普通的注意力机制(英文名称为attentionmechanism),注意力机制是一种数学计算,它可以将两个非对齐的信息进行融合,主要是对条件隐层信息和当前隐层信息的对其融合。举个例子,将中文句子做得好翻译成德语Gutgemacht,Gut表示好,gemacht表示已经做某件事,中文为3个字,而德语却只有2个字,中文的“好”在句子末尾,而德语的“Gut”在句子开头,注意力机制会将“Gut”这个字自动的和“好”这个字进行对齐,并输出数字矩阵。

进一步的,条件信息模块的结构跟编码器的结构相同,其表示生成相应文字需要的信息,比如中文翻译成英文,则中文就是条件信息;如果生成文章,则文章的关键字就是条件信息;条件信息模块的处理步骤依次包括词嵌入模型(embedding)处理、多层长短时记忆模型(LSTM)和/或卷积层堆叠处理、和全连接非线性变换处理,最终得到条件隐层信息。

进一步的,在测试过程中,高斯白噪声的样本个数决定了文本的长度,有多少个高斯噪声样本点,就有多少个文字产生。例如想要输出100个单词的文本,则输入到标准化流模块的高斯白噪声的长度为100。

进一步的,解码器输出的结果为产生文字序列的ID,而且每个文字在词库中都有唯一的ID,后续可以根据ID号找到对应文字。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

9页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种文献著录格式转换方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!