本文作者:kaifamei

文本生成方法和文本生成模型的训练方法、装置与流程

更新时间:2025-02-24 22:48:02 0条评论

文本生成方法和文本生成模型的训练方法、装置与流程



1.本公开涉及人工智能领域,具体涉及深度学习、自然语言处理和智能语音等技术领域,尤其涉及一种文本生成方法和文本生成模型的训练方法、装置、设备、介质。


背景技术:



2.随着计算机技术和网络技术的发展,基于视觉的自注意力机制得到广泛应用。例如,在自然语言处理领域中,可以依赖于自注意力机制来捕捉文本中长距离的语义特征。但由于自注意力机制的编码长度受限,自注意力机制通常无法记住长期信息。


技术实现要素:



3.本公开旨在提供一种可以利用长期记忆来生成文本的文本生成方法、装置、电子设备和存储介质,旨在提高生成的文本的准确性。
4.根据本公开的一个方面,提供了一种文本生成方法,包括:对待处理文本进行预处理,得到嵌入特征序列,嵌入特征序列包括与待处理文本中文本单元对应的嵌入特征;将嵌入特征序列输入由编码单元构成的注意力网络,得到注意力网络输出的文本特征序列;以及对文本特征序列进行解码,生成待处理文本的在后文本,其中,编码单元被配置执行以下操作:采用注意力机制对输入的特征序列进行编码,得到第一特征序列;根据隐藏状态特征调整第一特征序列,得到第二特征序列;隐藏状态特征表征待处理文本的在前文本的语义;以及根据第二特征序列更新隐藏状态特征。
5.根据本公开的另一个方面,提供了一种文本生成模型的训练方法,其中,文本生成模型包括预处理网络、注意力网络和解码网络;注意力网络由编码单元构成,训练方法包括:采用预处理网络对文本序列中的每个目标文本进行预处理,得到嵌入特征序列,嵌入特征序列包括与每个目标文本中文本单元对应的嵌入特征;将嵌入特征序列输入注意力网络,得到注意力网络输出的文本特征序列;采用解码网络对文本特征序列进行解码,生成每个目标文本的预测在后文本;以及根据预测在后文本和文本序列中每个目标文本的相邻在后文本,对文本生成模型进行训练;其中,编码单元被配置为对执行以下操作:采用注意力机制对输入的特征序列进行编码,得到第一特征序列;根据隐藏状态特征调整第一特征序列,得到第二特征序列;隐藏状态特征表征每个目标文本的在前文本的语义;以及根据第二特征序列更新隐藏状态特征。
6.根据本公开的另一个方面,提供了一种文本生成装置,包括:预处理模块,用于对待处理文本进行预处理,得到嵌入特征序列,嵌入特征序列包括与待处理文本中文本单元对应的嵌入特征;文本特征获得模块,用于将嵌入特征序列输入由编码单元构成的注意力网络,得到注意力网络输出的文本特征序列;以及特征解码模块,用于对文本特征序列进行解码,生成待处理文本的在后文本,其中,特征序列获得模块包括:编码子模块,用于针对编码单元,采用注意力机制对输入的特征序列进行编码,得到第一特征序列;调整子模块,用于根据隐藏状态特征调整第一特征序列,得到第二特征序列;隐藏状态特征表征待处理文
本的在前文本的语义;以及更新子模块,用于根据第二特征序列更新隐藏状态特征。
7.根据本公开的另一个方面,提供了一种文本生成模型的训练装置,其中,文本生成模型包括预处理网络、注意力网络和解码网络;注意力网络由编码单元构成;训练装置包括:预处理模块,用于采用预处理网络对文本序列中的每个目标文本进行预处理,得到嵌入特征序列,嵌入特征序列包括与每个目标文本中文本单元对应的嵌入特征;文本特征获得模块,用于将嵌入特征序列输入注意力网络,得到注意力网络输出的文本特征序列;特征解码模块,用于采用解码网络对文本特征序列进行解码,生成每个目标文本的预测在后文本;以及模型训练模块,用于根据预测在后文本和文本序列中每个目标文本的在后文本,对文本生成模型进行训练;其中,文本特征获得模块包括:编码子模块,用于针对编码单元,采用注意力机制对输入的特征序列进行编码,得到第一特征序列;调整子模块,用于根据隐藏状态特征调整第一特征序列,得到第二特征序列;隐藏状态特征表征每个目标文本的在前文本的语义;以及更新子模块,用于根据第二特征序列更新隐藏状态特征。
8.根据本公开的另一个方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开提供的文本生成方法和/或文本生成模型的训练方法。
9.根据本公开的另一个方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开提供的文本生成方法和/或文本生成模型的训练方法。
10.根据本公开的另一个方面,提供了一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令存储于可读存储介质和电子设备其中至少之一上,所述计算机程序/指令在被处理器执行时实现本公开提供的文本生成方法和/或文本生成模型的训练方法。
11.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
12.附图用于更好地理解本方案,不构成对本公开的限定。其中:
13.图1是根据本公开实施例的文本生成方法和文本生成模型的训练方法、装置的应用场景示意图;
14.图2是根据本公开实施例的文本生成方法的流程示意图;
15.图3是根据本公开实施例的调整第一特征序列的原理示意图;
16.图4是根据本公开实施例的更新隐藏状态特征的原理示意图;
17.图5是根据本公开实施例的文本生成方法的实现原理图;
18.图6是根据本公开实施例的文本生成模型的训练方法的流程示意图;
19.图7是根据本公开实施例的文本生成装置的结构框图;
20.图8是根据本公开实施例的文本生成模型的训练装置的结构框图;以及
21.图9是用来实施本公开实施例的文本生成方法和/或文本生成模型的训练方法的电子设备的框图。
具体实施方式
22.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
23.基于自注意力机制构建的注意力网络可以编码(encoding)一段文本,即对该段文本进行编码处理,将该段文本表示成一个向量序列。例如,该注意力网络可以为transformer网络。但注意力网络只能编码一小段文本,不具备结合该段文本的在前文本的语义对该段文本进行编码的能力。尽管通过大量的预训练,注意力网络可以通过学习大量文本的语义来调整网络参数,但训练之后,该网络参数即为固定的。在实际使用场景中,注意力网络无法根据在前输入文本的语义来对当前文本进行编码,并完成预测任务。这使得注意力网络难以掌握大量的垂直领域的信息。
24.例如,在将注意力网络应用于某个产品的问答场景时,在该注意力网络缺乏该产品的详细介绍文档时,无法很好的胜任问答任务。相反,需要基于该某个产品的大量介绍文档来对注意力网络进行单独训练。存在训练得到的注意力网络的泛化能力弱的问题。
25.为了解决该泛化能力弱的问题,迁移学习、元学习、预训练和提示(prompting)学习等方法随之出现。但该些方法受限于自注意力机制的编码长度的限制,仍旧存在只能对较短文本进行编码的问题。如此,在对当前文本进行编码时,无法考虑当前文本的在前文本的语义,这会限制编码得到的特征表达信息的准确性,影响生成文本的精度。
26.为了解决该问题,本公开提供了一种文本生成方法和文本生成模型的训练方法、装置、设备、介质,以下将结合图1对本公开提供的方法和装置的应用场景进行详细描述。
27.图1是根据本公开实施例的文本生成方法和文本生成模型的训练方法、装置的应用场景示意图。
28.如图1所示,该实施例的应用场景100可以包括电子设备110,该电子设备110可以为具有处理功能的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机、台式计算机和服务器等等。
29.该电子设备110可以具有文本处理功能,用于对输入的文本120进行处理,以预测得到该文本120的在后文本130。在一实施例中,电子设备110例如还可以具有智能语音功能,用于将用户提供的语音信号转换为文本120,并生成该文本的在后文本130,同时将该在后文本130转换为语音信号进行播放,以实现与用户的智能交互。
30.示例性地,电子设备110可以采用将自注意力机制和循环机制相结合的模型,来对文本120进行编码。例如,可以采用解决长序列问题的transformer-xl模型或块循环transformer(block recurrent transformer)模型。其中,xl表示超长(extra long)。通过该些模型,可以使得注意力网络的编码长度不再受限于局部,而是可以通过递归累积长期信息,从而影响和修正后续的推断过程。例如,在文本生成场景中,文本生成模型可以包括该将自注意力机制和循环机制相结合的模型。
31.示例性地,电子设备110还可以采用本公开提供的文本生成方法来对文本120进行处理,从而生成在后文本130。如此,可以延长模型记忆的语义的长度,持续记忆较长时间之前的信息,提高生成的在后文本130的精度。相应地,电子设备110可以采用本公开提供的文
本生成模型140来实现文本生成方法。
32.如图1所示,该应用场景100中还可以包括服务器150,该服务器150可以为支持电子设备110中客户端应用运行的后台管理服务器。电子设备110可以通过网络与服务器150通信连接,网络可以包括有线或无线通信链路。服务器150还可以为云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
33.例如,服务器150可以采用大量的文本对文本生成模型140进行训练,并响应于电子设备110的获取请求,将训练得到的文本生成模型140发送给电子设备110,以供电子设备110采用该文本生成模型140生成在后文本130。
34.在一实施例中,电子设备110还可以将文本120发送给服务器150,由服务器150采用训练得到的文本生成模型来对文本120进行处理,从而得到在后文本130。
35.需要说明的是,本公开提供的文本生成方法可以由电子设备110执行,也可以由服务器150执行。相应地,本公开提供的文本生成装置可以设置在电子设备110中,也可以设置在服务器150中。本公开提供的文本生成模型的训练方法可以由服务器150执行。相应地,本公开提供的文本生成模型的训练装置可以设置在服务器150中。
36.应该理解,图1中的电子设备110和服务器150的数目和类型仅仅是示意性的。根据实现需要,可以具有任意数目和类型的电子设备110和服务器150。
37.以下将结合图2~图5对本公开提供的文本生成方法进行详细描述。
38.图2是根据本公开实施例的文本生成方法的流程示意图。
39.如图2所示,该实施例的文本生成方法200可以包括操作s210~操作s230。其中,操作s220中,注意力网络中的每个编码单元可以被配置为执行操作s221~操作s223。
40.在操作操作s210,对待处理文本进行预处理,得到嵌入特征序列。
41.根据本公开的实施例,操作s210可以对待处理文本x切分为多个文本单元,该多个文本单元可以组成文本单元序列。例如设定可以划分得到l个文本单元,则待处理文本x可以表示为x=(x1,x2,

,x
l
)。其中,xi表示l个文本单元中的第i个文本单元。l的取值可以为大于1的整数,i的取值范围为[1,l]。其中,文本单元例如可以是任意粒度的文本单元,例如可以是以词为粒度或者以字为粒度的文本单元,本公开对此不做限定。
[0042]
根据本公开的实施例,在得到文本特征序列后,该实施例例如可以对文本单元序列进行嵌入处理,以得到嵌入特征序列。例如,对于文本单元xi,通过嵌入处理可以得到嵌入特征e(xi)。该实施例中,例如可以采用嵌入层(embedding layer)来对文本单元进行嵌入处理,以通过线性处理得到密集特征序列。例如,嵌入层可以为全连接层,本公开对此不做限定。该实施例得到的嵌入特征序列包括与待处理文本中的文本单元对应的嵌入特征,即嵌入特征序列中的嵌入特征与文本单元序列中的文本单元一一对应。
[0043]
在操作s220,将嵌入特征序列输入由编码单元构成的注意力网络,得到注意力网络输出的文本特征序列。
[0044]
根据本公开的实施例,注意力网络例如可以由依次连接的至少两个编码单元构成,该注意力网络可以理解为编码网络,用于基于自注意力机制对嵌入特征序列进行处理,提取到文本x的上下文语义特征。该实施例可以将嵌入特征序列输入依次连接的至少两个编码单元中排在首位的编码单元,经由至少两个编码单元处理后,将至少两个编码单元中排在末位的编码单元输出的特征序列作为文本特征序列。
[0045]
根据本公开的实施例,注意力网络的中的每个编码单元例如可以被配置为执行操作s221~操作s223。
[0046]
在操作s221,采用注意力机制对输入的特征序列进行编码,得到第一特征序列。
[0047]
根据本公开的实施例,对于排在首位的编码单元,输入的特征序列可以包括操作s210得到的嵌入特征序列。对于除排在首位的编码单元外的其他编码单元,输入的特征序列为与该其他编码单元连接的在前编码单元输出的特征序列。
[0048]
该实施例中,可以通过对输入的特征序列中的特征进行注意力运算,从而实现对输入的特征序列的编码,得到第一特征序列。例如,可以采用自注意力机制来对输入的特征序列进行编码。即采用自注意力原理对每两个特征进行注意力运算。
[0049]
在一实施例中,编码单元可以包括transformer编码器中的自注意力层。该自注意力层可以采用多头注意力机制构建,则对于输入的特征序列中的第i个特征可以采用以下公式(1)实现编码,得到第一特征序列中的相应特征。其中,j表示编码单元在依次连接的至少两个编码单元中的排列顺序,j的取值范围为[1,n],其中,n为注意力网络中编码单元的总个数。则为第(j-1)个编码单元输出的特征序列中的第i个特征。其中,设定则
[0050][0051]
例如,对于至少两个编码单元中排在首位的编码单元,输入的特征序列可以为上文描述的嵌入特征e(xi)构成的嵌入特征序列。或者,注意力网络可以对该嵌入特征序列进行正则化处理,将正则化处理后的嵌入特征序列作为输入排在首位的编码单元的特征序列。例如,正则化处理后的嵌入特征序列中第i个嵌入特征可以采用以下公式(2)计算得到。
[0052][0053]
在操作s222,根据隐藏状态特征调整第一特征序列,得到第二特征序列。
[0054]
在操作s223,根据第二特征序列更新隐藏状态特征。
[0055]
根据本公开的实施例,隐藏状态特征与循环神经网络中的隐藏变量类似,用于作为一个动态变量来存储并传播历史信息。例如,隐藏状态特征可以表征待处理文本的在前文本的语义。该实施例可以通过对隐藏状态特征与第一特征序列加权融合,实现对第一特征序列的调整。或者,可以将第一特征序列与隐藏状态特征进行concat()连接,随后,对连接得到的特征进行线性处理,实现对第一特征序列的调整。
[0056]
在得到第二特征序列后,该实施例可以根据预定学习率和第二特征序列来得到隐藏状态特征的更新量,随后根据该更新量更新隐藏状态特征。其中,预定学习率可以根据实际需求进行设定,本公开对此不做限定。
[0057]
在操作s230,对文本特征序列进行解码,生成待处理文本的在后文本。
[0058]
根据本公开的实施例,可以采用基于循环神经网络或者transformer架构的解码器等来对文本特征序列进行解码,由解码器生成待处理文本的在后文本。例如,若待处理文本为询问语句的文本,则在后文本可以为答复语句的文本。
[0059]
本公开的实施例,通过先根据表征在前文本的语义的隐藏状态特征调整第一特征
序列,得到第二特征序列,可以使得得到的第二特征序列不仅可以能够表达待处理文本的语义,还可以表达该在前文本的语义,可以提高第二特征序列的表达能力。随后通过根据第二特征序列来更新隐藏状态特征,可以使得隐藏状态特征融入实时处理的语句的语义。即,在文本生成过程中,隐藏状态特征具有实时学习语义的能力。如此,在文本生成过程中,可以根据实时学习到的语义持续地修正已有知识,而无需进行梯度回传或者网络参数的微调,无需为了适应不同的应用场景而对注意力网络中的网络参数进行微调。并因此利于提高生成的在后文本的精度和文本生成方法的鲁棒性。
[0060]
在一实施例中,编码单元还可以包括transformer编码器中的非线性处理层等,用于对得到的第二特征序列进行非线性处理。则编码单元输出的特征序列为非线性处理后得到的特征序列。相应地编码单元还被配置为对第二特征序列进行非线性处理,得到输出的特征序列。例如可以采用relu激活函数或者gelu激活函数等对第二特征序列进行非线性处理,以提高整个文本生成方法的鲁棒性。
[0061]
在一实施例中,编码单元还可以包括正则化层,用于对得到的第二特征序列进行正则化处理。则编码单元输出的特征序列为正则化处理后得到的特征序列。相应地编码单元还被配置为对第二特征序列进行正则化处理,得到输出的特征序列。通过对第二特征序列进行正则化处理,可以降低解码过程的复杂度,利于提高文本生成效率。
[0062]
在一实施例中,编码单元可以同时包括正则化层和非线性处理层。则编码单元可以被配置为:先对第二特征序列进行正则化处理,随后对正则化处理得到的特征序列进行非线性处理。编码单元输出的特征序列为非线性处理后的特征序列。
[0063]
在一实施例中,可以将第二特征序列与正则化处理后的特征序列相加,以避免发生退化问题。随后,再对相加得到的特征进行非线性处理。例如,设定第二特征序列中第i个特征为则可以通过以下公式(3)来对第二特征序列中第i个特征的正则化处理并将正则化处理后特征与该第i个特征相加,得到相加后的特征
[0064][0065]
其中,layernorm()为正则化操作的函数,
[0066]
在得到相加后的特征后,可以采用以下公式(4)来对相加后的特征进行非线性处理,从而得到与该第二特征序列中第i个特征对应的输出特征
[0067][0068]
其中,σ1()为非线性激活函数,均为非线性层的网络参数。
[0069]
以下将结合图3对上文描述的调整第一特征序列的操作s222的实现原理进行进一步地扩展和限定。
[0070]
图3是根据本公开实施例的调整第一特征序列的原理示意图。
[0071]
如图3所示,在实施例300中,编码网络例如可以根据隐藏状态特征301和输入的特征序列302来确定对应第一特征序列的调整量303。随后根据该调整量303调整第一特征序
列304,得到第二特征序列305。例如,编码网络可以将隐藏状态特征301和输入的特征序列302进行融合,以使得融合得到的特征可以表征待处理文本的长期语义(可以理解为全局语义),即根据在前文本的语义确定的待处理文本的语义。该实施例可以将该长期语义作为第一特征序列的调整量。由于第一特征序列是通过仅对输入的特征序列进行处理得到的,第一特征序列可以表征待处理文本的短期语义(可以理解为局部语义)。如此,调整后的第二特征序列不仅可以表征待处理文本的短期语义,又可以表征待处理文本的长期语义,提高第二特征序列的表达能力。
[0072]
例如,可以将隐藏状态特征301和输入的特征序列302进行concat()连接,随后对连接得到的特征进行线性处理,从而得到表征待处理文本的长期语义的特征。
[0073]
例如,对于排在第j个位置的编码单元,若当前的隐藏状态特征输入的特征序列中第i个特征该实施例还可以通过计算隐藏状态特征301与输入的特征序列中第i个特征的内积,来实现两个特征的融合。即将,计算得到的内积作为表征待处理文本的长期语义的特征。在此基础上,可以将该表征待处理文本的长期语义的特征与第一特征序列相加,从而得到第二特征序列。例如,对于第一特征序列中排在第i个位置的特征,可以采用以下公式(5)计算得到第二特征序列中对应的特征其中,t可以表示待处理文本在文本生成方法处理的文本序列中的顺序。即,上文描述的待处理文本为文本生成方法处理的第t个文本,当前的隐藏状态特征即为文本生成方法根据第(t-1)个待处理文本生成在后文本的过程中,排在第j个位置的编码单元得到的更新后的隐藏状态特征。
[0074][0075]
例如,可以设定w
1j
的取值为预先设定的初始值,例如,可以为0矩阵等任意初始值,本公开对此不做限定。
[0076]
以下将结合图4对上文描述的更新隐藏状态特征的操作s223的实现原理进行进一步的扩展和限定。
[0077]
图4是根据本公开实施例的更新隐藏状态特征的原理示意图。
[0078]
根据本公开的实施例,可以根据生物可塑性原理来进行隐藏状态特征进行更新时。例如,可以将编码网络的输入特征序列类比为突触前神经元状态,将第二特征序列类比为突触后神经元状态。根据该突触前神经元状态和突触后神经元状态来确定隐藏状态的更新量,该更新量可以表征在前文本与待处理文本之间的连接关系。通过该方式,可以实现隐藏状态的持续更新,且无需依赖损失函数的引导,即可实现无人工干预的自动学习。且可以使得隐藏状态特征的更新原理更为贴合生物机制,提高更新准确性。
[0079]
如图4所示,在该实施例400中,设定输入的特征序列401包括与文本单元对应的第一文本特征。若待处理文本切分后得到的文本单元为l个,则输入的特征序列包括l个第一文本特征。相应地,编码得到的第一特征序列和根据隐藏状态特征调整后得到的第二特征序列402均包括与l个文本单元对应的l个特征。该实施例可以将第二特征序列402包括的l个特征作为l个第二文本特征。
[0080]
该实施例400中,可以根据针对每个文本单元的第一文本特征和第二文本特征,来确定针对该每个文本单元的更新量。从而总计可以得到与l个文本单元对应的l个更新量。
[0081]
例如,该实施例可以将第一文本特征与第二文本特征叉乘,根据该叉乘得到的特征来确定更新量。该叉乘得到的特征的尺寸例如可以与待更新的隐藏状态特征的尺寸相同。例如,对于l个文本单元中的第i个文本单元,输入第j个编码单元的特征序列中与该第i个文本单元对应的第一文本特征为得到第二特征序列中与第i个文本单元对应的第二文本特征为则针对该第i个文本单元的调整量δw
ij
例如可以采用以下公式(6)计算得到。
[0082][0083]
其中,例如可以表示为其中,若设定则为第j个编码单元中的网络参数,为第j个编码单元中的网络参数,
[0084]
在一实施例中,还可以采用赫布定律(hebb’s rule)来对对应于每个文本单元的第二文本特征和第一文本特征进行处理,从而得到文本单元的更新量。例如,排在第j个位置的编码单元可以采用以下公式(7)计算得到针对该第i个文本单元的调整量δw
ij

[0085][0086]
其中,均为排在第j个位置的编码单元的网络参数,且若不考虑编码单元为n个编码单元中的位置,则对于每个编码单元,则可以去除掉公式(7)中的上标j,去掉上标的hi即为输入该每个编码单元的对应第i个文本单元的第一文本特征,y
′i即为该每个编码单元得到的对应第i个文本单元的第二文本特征。
[0087]
可以理解的是,还可以采用仅包括上述公式(7)中右侧第一项、以及右侧第二项~第四项中至少一项的公式来计算针对该第i个文本单元的调整量δw
ij
,本公开对此不做限定。
[0088]
通过采用赫布定律来确定更新量,可以使得隐藏状态特征的更新更为符合生物学原理,可以使得该隐藏状态特征的更新更为贴合实际和逼真,利于提高生成的在后文本的精度。
[0089]
随后,该实施例400在得到l个更新量之后,可以根据该l个更新量,来更新隐藏状态特征。例如,可以将该l个更新量的加权和作为总更新量403,随后,将该总更新量403与隐藏状态特征404相加,从而完成对隐藏状态特征的更新,得到更新后的隐藏状态特征405。其中,计算加权和时采用的权重例如可以作为编码单元的网络参数,通过预训练得到。或者,计算加权和时采用的权重也可以为1/l等根据实际需求设定的值,本公开对此不做限定。
[0090]
在一实施例中,可以采用多巴胺神经元的原理来确定加权时采用的权重,并将该权重作为学习率。通过该原理,可以整合第二文本特征中不同区域的信号,从而增加隐藏状
态特征的可塑性。例如,该实施例可以对对应于每个文本单元的第二文本特征进行非线性处理,从而得到针对该每个文本单元的学习率。最后,根据该学习率和更新量,来更新隐藏状态特征。
[0091]
例如,对于第i个文本单元,排在第j个位置的编码单元可以采用以下公式(8)得到学习率
[0092][0093]
其中,即为第二特征序列中针对第i个文本单元的第二文本特征。为排在第j个位置的编码单元的网络参数,其中,排在第j个位置的编码单元的网络参数,其中,σ2()为非线性激活函数,σ2()与σ1()类似。
[0094]
根据本公开的实施例,在得到学习率后,该实例400即可根据学习率和更新量,来更新隐藏状态特征。
[0095]
例如,可以根据针对每个文本单元的学习率和更新量,确定针对该每个文本单元的加权更新量。最后,根据针对l个文本单元的l个加权更新量,来更新隐藏状态特征。例如,将针对每个文本单元的学习率作为针对该每个文本单元的更新量的权重,将学习率与更新量相乘,得到加权更新量。最后,将多个加权更新量的和,作为总更新量403。将总更新量403与待更新的隐藏状态特征404相加,即可得到更新后的隐藏状态特征405。例如,对于排在第j个位置的编码单元,可以采用以下公式(9)计算得到更新后的隐藏状态特征
[0096][0097]
在一实施例中,可以为隐藏状态特征中的元素设置边界,以避免隐藏状态特征中元素的取值过大,为文本生成方法带来计算风险,使得隐藏状态特征的更新不合理的情况。并因此,可以提高因隐藏状态特征表达语义的准确性。
[0098]
例如,该实施例在根据多个加权更新量更新隐藏状态特征时,可以先根据多个加权更新量的和,调整隐藏状态特征,即采用上文描述的公式(9)调整隐藏状态特征,并因此将公式(9)得到的特征作为调整后状态特征。随后,再采用边界函数来更新调整后状态特征,得到更新后的隐藏状态特征。例如,设定边界值为hw,则在该实施例中,上述得到更新后的隐藏状态特征的公式(9)可以改写为如下公式(10)。
[0099][0100]
其中,boundeddecay()为边界函数。
[0101]
例如,该实施例可以将调整后状态特征中的每个元素与边界值进行比较,若某个元素的取值超过该边界值,则将该边界值赋值给该某个元素。若某个元素的取值未超过该边界值,则保留该某个元素的取值。
[0102]
在一实施例中,在采用边界函数更新调整后状态特征时,例如还可以在调整后状态特征中包括超出预定边界的目标元素时,根据预定遗忘率来更新目标元素。
[0103]
例如,可以将1与预定遗忘率的差值,作为调整系数,将该调整系数与该目标元素
的取值相乘,将相乘得到的值赋值给该目标元素。
[0104]
例如,边界函数还可以采用以下公式(11)来表示。
[0105][0106]
该实施例可以采用公式(10)中的替代公式(11)中的a,即可完成对调整后状态特征的更新,得到更新后的隐藏状态特征。其中,p为预定遗忘率,该预定遗忘率的取值可以根据实际需求进行设定,例如可以设定为0.05,本公开对此不做限定。
[0107]
以下将结合图5对本公开提供的文本生成方法的原理进行进一步的扩展和限定。
[0108]
图5是根据本公开实施例的文本生成方法的实现原理图。
[0109]
如图5所示,该实施例500可以采用包括预处理网络510、注意力网络520和解码网络530的文本生成模型来执行文本生成方法。
[0110]
对于待处理文本501,可以先将该待处理文本501输入预处理网络510,由预处理网络510输出嵌入特征序列502。该预处理网络包括上文描述的嵌入网络。
[0111]
注意力网络520由依次连接的l个编码单元构成。每个编码单元包括多头自注意力层521、特征调整层522、隐藏状态更新层523和叠加&正则化层524。为了降低模型计算的复杂度,在该l个编码单元之前,注意力网络520例如还可以设置有正则化层525,用于采用上文描述的公式(2)对嵌入特征序列502进行正则化处理。
[0112]
相应地,在得到嵌入特征序列502后,可以先将嵌入特征序列502输入正则化层525。随后,将正则化层525输出的特征序列输入依次连接的l个编码单元中排在首位的编码单元。第j个编码单元中的多头自注意力层521用于采用上文描述的公式(1)对输入的特征序列进行编码,得到上文描述的第一特征序列。例如,该多头自注意力层521可以用于执行上文描述的操作s221。
[0113]
隐藏状态更新层523用于存储并更新隐藏状态特征。第一特征序列可以输入隐藏状态更新层和特征调整层522。同时,特征调整层522存储的隐藏状态特征可以与第一特征序列同步地输入特征调整层522。需要说明的是,输入到特征调整层522的隐藏状态特征为根据第一特征序列进行更新之前存储的隐藏状态特征。特征调整层522用于根据输入的隐藏状态特征对第一特征序列进行调整,从而得到第二特征序列。例如,该特征调整层522可以用于执行上文描述的操作s222,该特征调整层522例如可以采用上文描述的公式(5)来调整第一特征序列。同时,隐藏状态更新层523用于根据第一特征序列对隐藏状态特征进行更新。例如,隐藏状态更新层523可以用于执行上文描述的操作s223,该隐藏状态更新层523可以用于采用上文描述的公式(9)来更新隐藏层状态。
[0114]
叠加&正则化层524可以用于采用上文描述的公式(3)对第二特征序列进行正则化处理,并将正则化处理所得到的特征序列和第一特征序列进行相加。该叠加&正则化层524例如还可以用于采用上文描述的公式(4)对相加得到的特征进行非线性处理,从而得到输出的特征序列。l个编码单元中排在末尾的编码单元输出的特征序列可以作为文本特征序列503。
[0115]
解码网络530用于对输入的文本特征序列503进行解码,从而输出在后文本504。
[0116]
可以理解的是,注意力网络可以基于transformer编码器构建得到。该注意力网络
中编码单元与transformer编码器中编码单元的区别在于,该注意力网络中的编码单元设置了特征调整层522和隐藏状态更新层523。从而可以使得注意力网络在编码过程中具有不断修正和补充学习到的语义,使得注意力网络具有在不调整网络参数的前提下,捕捉长时记忆的能力。
[0117]
基于该实施例的实现原理,对于排在第j个位置的编码单元,例如可以采用以下公式(12)来表示其针对第i个文本单元的计算原理。
[0118][0119]
可以理解的是,n个编码单元的计算原理均为公式(12),区别仅在于上标j的取值不同。若不考虑针对哪个文本单元进行处理,则针对第t个待处理文本x,排在第j个位置的编码单元编码网络的计算原理可以采用以下公式(13)来表示。
[0120][0121]
对于整个注意力网络而言,计算原理可以采用以下公式(14)来表示。
[0122][0123]
其中,为针对第t个待处理文本输出的文本特征序列,
[0124]
将本公开实施例的文本生成方法应用于智能语音交互系统中,则智能语音交互系统经由与用户的智能语音交互,可以记住用户的喜好,并因此利于在后续语音交互中,向用户提供更为真实可靠的语音答复。例如,若用户在于智能语音交互系统语音交互的历史中,提供过第一语音“世界上最高的山是喜马拉雅山,海拔为8848米”。在提供第一语音之后的一段时间后,提供了第二语音“喜马拉雅山因地质运动高度发生了变化,变成了8850米”。则在提供第二语音后,若用户提供询问语音“世界上最高的山有多高”时,智能语音交互系统可以生成文本“喜马拉雅山8850米”,并将该文本转换为语音进行播放。
[0125]
为了便于本公开提供的文本生成方法的实施,本公开还提供了一种文本生成模型的训练方法。以下将结合图6对该训练方法进行详细描述。
[0126]
图6是根据本公开实施例的文本生成模型的训练方法的流程示意图。
[0127]
如图6所示,该实施例的文本生成模型的训练方法600可以包括操作s610~操作s640。其中,操作s620中,注意力网络中的每个编码单元可以被配置为执行操作s621~操作s623。文本生成模型可以包括预处理网络、注意力网络和解码网络。其中,注意力网络可以由编码单元构成。
[0128]
在一实施例中,文本生成模型可以采用如上文描述的图5所示的模型结构。
[0129]
在操作s610,采用预处理网络对文本序列中的每个目标文本进行预处理,得到嵌入特征序列,嵌入特征序列包括与每个目标文本中文本单元对应的嵌入特征。该实施例可以将文本序列作为训练文本,并将文本序列中除最后一个文本外的任一文本作为目标文本,将该任一文本的下一文本作为该任一文本的在后文本真值。该文本序列例如可以通过对一个文本段分句后得到。
[0130]
该操作s610的实现原理与上文描述的操作s210的实现原理类似,在此不再赘述。
[0131]
在操作s620,将嵌入特征序列输入注意力网络,得到注意力网络输出的文本特征序列。
[0132]
在操作s621,采用注意力机制对输入的特征序列进行编码,得到第一特征序列。
[0133]
在操作s622,根据隐藏状态特征调整第一特征序列,得到第二特征序列。其中,隐藏状态特征表征每个目标文本的在前文本的语义。
[0134]
在操作s623,根据第二特征序列更新隐藏状态特征。
[0135]
可以理解的是,该操作s620的实现原理可以与上文描述的操作s220的实现原理类似,操作s621~操作s623的实现原理可以分别与上文描述的操作s221~操作s223的实现原理类似,在此不再赘述。
[0136]
在操作s630,采用解码网络对文本特征序列进行解码,生成每个目标文本的预测在后文本。该操作s630的实现原理可以与上文描述的操作s230的实现原理类似,在此不再赘述。
[0137]
在操作s640,根据预测在后文本和文本序列中每个目标文本的相邻在后文本,对文本生成模型进行训练。
[0138]
根据本公开的实施例,该相邻在后文本即为文本序列中每个目标文本的下一文本。该实施例可以根据该预测在后文本与相邻在后文本之间的差异,确定文本生成模型的损失值。以最小化损失值为目标,对文本生成模型进行训练。例如,该预测在后文本与相邻在后文本之间的差异可以采用文本之间的语义相似度,相同字符个数的比例等来确定。例如,可以采用生成准确率来确定文本生成模型的损失值。本公开对差异和损失值的确定方法不做限定。可以理解的是,可以设计损失函数,要求预测在后文本逼近于相邻在后文本,并通过梯度回传算法来优化文本生成模型中的网络参数。
[0139]
在一实施例中,在确定了损失值后,可以采用梯度回传算法来确定文本生成模型中网络参数的梯度。
[0140]
在一实施例中,可以采用梯度回传算法和梯度回传的预定截断位置,确定损失值关于所述文本生成模型中网络参数的梯度。这是由于根据上文描述的公式(14)可知,在梯度回传过程中,需要回传至m1。如此,可能会存在在时间上反传的梯度下降耗费过长时间,需要占用过多显存的情况。为了避免该情况,该实施例可以预先设定梯度回传的截断位置。例如,设定梯度仅回传到m
t-k
,则在确定损失值关于文本生成模型中网络参数的梯度时,仅计算到涉及m
t-k
的网络参数的梯度。对于涉及到m
t-k-1
~m1的网络参数的梯度,则不再计算。随后,该实施例可以以最小化计算得到的损失值为目标,根据计算得到的梯度来对文本生成模型的网络参数进行调整,实现对文本生成模型的训练。
[0141]
基于本公开提供的文本生成方法,本公开还提供了一种文本生成装置。以下将结合图7对该装置进行详细描述。
[0142]
图7是根据本公开实施例的文本生成装置的结构框图。
[0143]
如图7所示,该实施例的文本生成装置700包括预处理模块710、文本特征获得模块720和特征解码模块730。其中,文本特征获得模块720可以包括编码子模块721、调整子模块722和更新子模块723。
[0144]
预处理模块710用于对待处理文本进行预处理,得到嵌入特征序列,嵌入特征序列包括与待处理文本中文本单元对应的嵌入特征。在一实施例中,预处理模块710可以用于执
行上文描述的操作s210,在此不再赘述。
[0145]
特征解码模块730用于对文本特征序列进行解码,生成待处理文本的在后文本。在一实施例中,特征解码模块730可以用于执行上文描述的操作s230,在此不再赘述。
[0146]
编码子模块721用于针对编码单元,采用注意力机制对输入的特征序列进行编码,得到第一特征序列。在一实施例中,编码子模块721可以用于执行上文描述的操作s221,在此不再赘述。
[0147]
调整子模块722用于根据隐藏状态特征调整第一特征序列,得到第二特征序列;隐藏状态特征表征待处理文本的在前文本的语义。在一实施例中,调整子模块722可以用于执行上文描述的操作s222,在此不再赘述。
[0148]
更新子模块723用于根据第二特征序列更新隐藏状态特征。在一实施例中,更新子模块723可以用于执行上文描述的操作s223,在此不再赘述。
[0149]
文本特征获得模块720用于将嵌入特征序列输入由编码单元构成的注意力网络,得到注意力网络输出的文本特征序列。在一实施例中,文本特征获得模块720可以用于执行上文描述的操作s220,在此不再赘述。
[0150]
根据本公开的实施例,调整子模块包括:调整量确定单元,用于根据隐藏状态特征和输入的特征序列,确定对应第一特征序列的调整量;以及调整单元,用于根据调整量调整第一特征序列,得到第二特征序列。
[0151]
根据本公开的实施例,输入的特征序列包括与文本单元对应的第一文本特征;第二特征序列包括与文本单元对应的第二文本特征;更新子模块包括:更新量确定单元,用于根据第二文本特征和第一文本特征,确定针对文本单元的更新量;以及更新单元,用于根据更新量,更新隐藏状态特征。
[0152]
根据本公开的实施例,更新量确定单元用于:采用赫布定律对第二文本特征和第一文本特征进行处理,得到针对文本单元的更新量。
[0153]
根据本公开的实施例,更新量确定单元用于采用以下公式得到更新量:
[0154][0155]
其中,δwi为针对待处理文本中第i个文本单元的更新量;y
′i为对应第i个文本单元的第二文本特征;hi为对应第i个文本单元的第一文本特征,wa、wb、wc、w
p
为编码单元的网络参数。
[0156]
根据本公开的实施例,更新子模块还包括:学习率确定单元,用于对第二文本特征进行非线性处理,得到针对文本单元的学习率,其中,更新单元用于:根据学习率和更新量,更新隐藏状态特征。
[0157]
根据本公开的实施例,待处理文本中包括多个文本单元。更新单元包括:加权量确定子单元,用于根据针对文本单元的学习率和更新量,确定针对文本单元的加权更新量;以及更新子单元,用于根据针对多个文本单元的多个加权更新量,更新隐藏状态特征。
[0158]
根据本公开的实施例,更新子单元用于:根据多个加权更新量的和,调整隐藏状态特征,得到调整后状态特征;以及采用边界函数更新调整后状态特征,得到更新后的隐藏状态特征。
[0159]
根据本公开的实施例,更新子单元用于:响应于调整后状态特征中各元素位于预定边界内,确定调整后状态特征为更新后的隐藏状态特征;以及响应于调整后状态特征中
包括超出预定边界的目标元素,根据预定遗忘率更新目标元素,得到更新后的隐藏状态特征。
[0160]
根据本公开的实施例,注意力网络由依次连接的多个编码单元构成;输入多个编码单元中排在首位的编码单元的特征序列包括嵌入特征序列;文本特征获得模块还包括:非线性处理子模块,用于对第二特征序列进行非线性化处理,获得输出的特征序列,其中,文本特征序列包括:多个编码单元中排在末位的编码单元输出的特征序列;输入多个编码单元中除排在首位的编码单元外其他编码单元的特征序列包括:与其他编码单元连接的在前编码单元输出的特征序列。
[0161]
基于本公开提供的文本生成模型的训练方法,本公开还提供了一种文本生成模型的训练装置。以下将结合图8对该装置进行详细描述。
[0162]
图8是根据本公开实施例的文本生成模型的训练装置的结构框图。
[0163]
如图8所示,该实施例的文本生成模型的训练装置800包括预处理模块810、文本特征获得模块820、特征解码模块830和模型训练模块840。其中,文本特征获得模块820可以包括编码子模块821、调整子模块822和更新子模块823。文本生成模型包括预处理网络、注意力网络和解码网络;注意力网络由编码单元构成。
[0164]
预处理模块810用于采用预处理网络对文本序列中的每个目标文本进行预处理,得到嵌入特征序列,嵌入特征序列包括与每个目标文本中文本单元对应的嵌入特征。在一实施例中,预处理模块810可以用于执行上文描述的操作s610,在此不再赘述。
[0165]
文本特征获得模块820用于将嵌入特征序列输入注意力网络,得到注意力网络输出的文本特征序列。在一实施例中,文本特征获得模块820可以用于执行上文描述的操作s620,在此不再赘述。
[0166]
特征解码模块830用于采用解码网络对文本特征序列进行解码,生成每个目标文本的预测在后文本。在一实施例中,特征解码模块830可以用于执行上文描述的操作s630,在此不再赘述。
[0167]
模型训练模块840用于根据预测在后文本和文本序列中每个目标文本的在后文本,对文本生成模型进行训练。在一实施例中,模型训练模块840可以用于执行上文描述的操作s640,在此不再赘述。
[0168]
编码子模块821用于针对编码单元,采用注意力机制对输入的特征序列进行编码,得到第一特征序列。在一实施例中,编码子模块821可以用于执行上文描述的操作s621,在此不再赘述。
[0169]
调整子模块822用于根据隐藏状态特征调整第一特征序列,得到第二特征序列;隐藏状态特征表征待处理文本的在前文本的语义。在一实施例中,调整子模块822可以用于执行上文描述的操作s622,在此不再赘述。
[0170]
更新子模块823用于根据第二特征序列更新隐藏状态特征。在一实施例中,更新子模块823可以用于执行上文描述的操作s623,在此不再赘述。
[0171]
根据本公开的实施例,模型训练模块包括:损失值确定子模块,用于根据预测在后文本和文本序列中每个目标文本的在后文本之间的差异,确定文本生成模型针对每个目标文本的损失值;梯度确定子模块,用于采用梯度回传算法和梯度回传的预定截断位置,确定损失值关于文本生成模型中网络参数的梯度;以及训练子模块,用于以最小化损失值为目
标,根据网络参数的梯度对文本生成模型进行训练。
[0172]
需要说明的是,本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供、公开和应用等处理,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。在本公开的技术方案中,在获取或采集用户个人信息之前,均获取了用户的授权或同意。
[0173]
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
[0174]
图9示出了可以用来实施本公开实施例的文本生成方法和/或文本生成模型的训练方法的示例电子设备900的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
[0175]
如图9所示,设备900包括计算单元901,其可以根据存储在只读存储器(rom)902中的计算机程序或者从存储单元908加载到随机访问存储器(ram)903中的计算机程序,来执行各种适当的动作和处理。在ram 903中,还可存储设备900操作所需的各种程序和数据。计算单元901、rom 902以及ram 903通过总线904彼此相连。输入/输出(i/o)接口905也连接至总线904。
[0176]
设备900中的多个部件连接至i/o接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0177]
计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理,例如文本生成方法和/或文本生成模型的训练方法。例如,在一些实施例中,文本生成方法和/或文本生成模型的训练方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由rom902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序加载到ram 903并由计算单元901执行时,可以执行上文描述的文本生成方法和/或文本生成模型的训练方法的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行文本生成方法和/或文本生成模型的训练方法。
[0178]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、复杂可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器
可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0179]
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0180]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0181]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0182]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
[0183]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。其中,服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务(

virtual private server

,或简称

vps

)中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
[0184]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
[0185]
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明
白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

技术特征:


1.一种文本生成方法,包括:对待处理文本进行预处理,得到嵌入特征序列,嵌入特征序列包括与所述待处理文本中文本单元对应的嵌入特征;将所述嵌入特征序列输入由编码单元构成的注意力网络,得到所述注意力网络输出的文本特征序列;以及对所述文本特征序列进行解码,生成所述待处理文本的在后文本,其中,所述编码单元被配置执行以下操作:采用注意力机制对输入的特征序列进行编码,得到第一特征序列;根据隐藏状态特征调整所述第一特征序列,得到第二特征序列;所述隐藏状态特征表征所述待处理文本的在前文本的语义;以及根据所述第二特征序列更新所述隐藏状态特征。2.根据权利要求1所述的方法,其中,所述根据隐藏状态特征,调整所述第一特征序列,得到第二特征序列包括:根据所述隐藏状态特征和所述输入的特征序列,确定对应所述第一特征序列的调整量;以及根据所述调整量调整所述第一特征序列,得到所述第二特征序列。3.根据权利要求1所述的方法,其中,所述输入的特征序列包括与所述文本单元对应的第一文本特征;所述第二特征序列包括与所述文本单元对应的第二文本特征;所述根据所述第二特征序列更新所述隐藏状态特征包括:根据所述第二文本特征和所述第一文本特征,确定针对所述文本单元的更新量;以及根据所述更新量,更新所述隐藏状态特征。4.根据权利要求3所述的方法,其中,所述根据所述第二文本特征和所述第一文本特征,确定针对所述文本单元的更新量包括:采用赫布定律对所述第二文本特征和所述第一文本特征进行处理,得到针对所述文本单元的所述更新量。5.根据权利要求4所述的方法,其中,所述采用赫布定律对所述第二文本特征和所述第一文本特征进行处理,得到针对所述文本单元的所述更新量包括:采用以下公式得到所述更新量:其中,δw
i
为针对待处理文本中第i个文本单元的所述更新量;t

i
为对应所述第i个文本单元的第二文本特征;h
i
为对应所述第i个文本单元的第一文本特征,w
a
、w
b
、w
c
、w
d
为所述编码单元的网络参数。6.根据权利要求3所述的方法,其中,所述根据所述第二特征序列更新所述隐藏状态特征还包括:对所述第二文本特征进行非线性处理,得到针对所述文本单元的学习率;以及根据所述学习率和所述更新量,更新所述隐藏状态特征。7.根据权利要求6所述的方法,其中,所述待处理文本中包括多个文本单元;所述根据所述学习率和所述更新量,更新所述隐藏状态特征包括:
根据针对所述文本单元的所述学习率和所述更新量,确定针对所述文本单元的加权更新量;以及根据针对多个所述文本单元的多个加权更新量,更新所述隐藏状态特征。8.根据权利要求7所述的方法,其中,所述根据针对多个所述文本单元的多个加权更新量,更新所述隐藏状态特征包括:根据多个所述加权更新量的和,调整所述隐藏状态特征,得到调整后状态特征;以及采用边界函数更新所述调整后状态特征,得到更新后的隐藏状态特征。9.根据权利要求8所述的方法,其中,所述采用边界函数更新所述调整后状态特征,得到更新后的隐藏状态特征包括:响应于所述调整后状态特征中各元素位于预定边界内,确定所述调整后状态特征为所述更新后的隐藏状态特征;以及响应于所述调整后状态特征中包括超出所述预定边界的目标元素,根据预定遗忘率更新所述目标元素,得到更新后的隐藏状态特征。10.根据权利要求1所述的方法,其中,所述注意力网络由依次连接的多个编码单元构成;输入所述多个编码单元中排在首位的编码单元的特征序列包括所述嵌入特征序列;所述编码单元还被配置为:对所述第二特征序列进行非线性化处理,获得输出的特征序列,其中,所述文本特征序列包括:所述多个编码单元中排在末位的编码单元输出的特征序列;输入所述多个编码单元中除排在首位的编码单元外其他编码单元的特征序列包括:与所述其他编码单元连接的在前编码单元输出的特征序列。11.一种文本生成模型的训练方法,其中,所述文本生成模型包括预处理网络、注意力网络和解码网络;所述注意力网络由编码单元构成;所述方法包括:采用所述预处理网络对文本序列中的每个目标文本进行预处理,得到嵌入特征序列,嵌入特征序列包括与每个所述目标文本中文本单元对应的嵌入特征;将所述嵌入特征序列输入所述注意力网络,得到所述注意力网络输出的文本特征序列;采用所述解码网络对所述文本特征序列进行解码,生成每个所述目标文本的预测在后文本;以及根据所述预测在后文本和所述文本序列中每个所述目标文本的相邻在后文本,对所述文本生成模型进行训练;其中,所述编码单元被配置为对执行以下操作:采用注意力机制对输入的特征序列进行编码,得到第一特征序列;根据隐藏状态特征调整所述第一特征序列,得到第二特征序列;所述隐藏状态特征表征每个所述目标文本的在前文本的语义;以及根据所述第二特征序列更新所述隐藏状态特征。12.根据权利要求11所述的方法,其中,所述根据所述预测在后文本和所述文本序列中每个所述目标文本的在后文本,对所述文本生成模型进行训练包括:根据所述预测在后文本和所述文本序列中每个所述目标文本的在后文本之间的差异,确定所述文本生成模型针对所述每个目标文本的损失值;
采用梯度回传算法和梯度回传的预定截断位置,确定所述损失值关于所述文本生成模型中网络参数的梯度;以及以最小化所述损失值为目标,根据所述网络参数的梯度对所述文本生成模型进行训练。13.一种文本生成装置,包括:预处理模块,用于对待处理文本进行预处理,得到嵌入特征序列,嵌入特征序列包括与所述待处理文本中文本单元对应的嵌入特征;文本特征获得模块,用于将所述嵌入特征序列输入由编码单元构成的注意力网络,得到所述注意力网络输出的文本特征序列;特征解码模块,用于对所述文本特征序列进行解码,生成所述待处理文本的在后文本,其中,所述特征序列获得模块包括:编码子模块,用于针对编码单元,采用注意力机制对输入的特征序列进行编码,得到第一特征序列;调整子模块,用于根据隐藏状态特征调整所述第一特征序列,得到第二特征序列;所述隐藏状态特征表征所述待处理文本的在前文本的语义;以及更新子模块,用于根据所述第二特征序列更新所述隐藏状态特征。14.根据权利要求13所述的装置,其中,所述调整子模块包括:调整量确定单元,用于根据所述隐藏状态特征和所述输入的特征序列,确定对应所述第一特征序列的调整量;以及调整单元,用于根据所述调整量调整所述第一特征序列,得到所述第二特征序列。15.根据权利要求13所述的装置,其中,所述输入的特征序列包括与所述文本单元对应的第一文本特征;所述第二特征序列包括与所述文本单元对应的第二文本特征;所述更新子模块包括:更新量确定单元,用于根据所述第二文本特征和所述第一文本特征,确定针对所述文本单元的更新量;以及更新单元,用于根据所述更新量,更新所述隐藏状态特征。16.根据权利要求15所述的装置,其中,所述更新量确定单元用于:采用赫布定律对所述第二文本特征和所述第一文本特征进行处理,得到针对所述文本单元的所述更新量。17.根据权利要求16所述的装置,其中,所述更新量确定单元用于采用以下公式得到所述更新量:其中,δw
i
为针对待处理文本中第i个文本单元的所述更新量;y

i
为对应所述第i个文本单元的第二文本特征;h
i
为对应所述第i个文本单元的第一文本特征,w
a
、w
b
、w
c
、w
d
为所述编码单元的网络参数。18.根据权利要求15所述的装置,其中,所述更新子模块还包括:学习率确定单元,用于对所述第二文本特征进行非线性处理,得到针对所述文本单元的学习率,其中,所述更新单元用于:根据所述学习率和所述更新量,更新所述隐藏状态特征。
19.根据权利要求18所述的装置,其中,所述待处理文本中包括多个文本单元;所述更新单元包括:加权量确定子单元,用于根据针对所述文本单元的所述学习率和所述更新量,确定针对所述文本单元的加权更新量;以及更新子单元,用于根据针对多个所述文本单元的多个加权更新量,更新所述隐藏状态特征。20.根据权利要求19所述的装置,其中,所述更新子单元用于:根据多个所述加权更新量的和,调整所述隐藏状态特征,得到调整后状态特征;以及采用边界函数更新所述调整后状态特征,得到更新后的隐藏状态特征。21.根据权利要求20所述的装置,其中,所述更新子单元用于:响应于所述调整后状态特征中各元素位于预定边界内,确定所述调整后状态特征为所述更新后的隐藏状态特征;以及响应于所述调整后状态特征中包括超出所述预定边界的目标元素,根据预定遗忘率更新所述目标元素,得到更新后的隐藏状态特征。22.根据权利要求13所述的装置,其中,所述注意力网络由依次连接的多个编码单元构成;输入所述多个编码单元中排在首位的编码单元的特征序列包括所述嵌入特征序列;所述文本特征获得模块还包括:非线性处理子模块,用于对所述第二特征序列进行非线性化处理,获得输出的特征序列,其中,所述文本特征序列包括:所述多个编码单元中排在末位的编码单元输出的特征序列;输入所述多个编码单元中除排在首位的编码单元外其他编码单元的特征序列包括:与所述其他编码单元连接的在前编码单元输出的特征序列。23.一种文本生成模型的训练装置,其中,所述文本生成模型包括预处理网络、注意力网络和解码网络;所述注意力网络由编码单元构成;所述装置包括:预处理模块,用于采用所述预处理网络对文本序列中的每个目标文本进行预处理,得到嵌入特征序列,嵌入特征序列包括与每个所述目标文本中文本单元对应的嵌入特征;文本特征获得模块,用于将所述嵌入特征序列输入所述注意力网络,得到所述注意力网络输出的文本特征序列;特征解码模块,用于采用所述解码网络对所述文本特征序列进行解码,生成每个所述目标文本的预测在后文本;以及模型训练模块,用于根据所述预测在后文本和所述文本序列中每个所述目标文本的在后文本,对所述文本生成模型进行训练;其中,所述文本特征获得模块包括:编码子模块,用于针对编码单元,采用注意力机制对所述输入的特征序列进行编码,得到第一特征序列;调整子模块,用于根据隐藏状态特征调整所述第一特征序列,得到第二特征序列;所述隐藏状态特征表征每个所述目标文本的在前文本的语义;以及更新子模块,用于根据所述第二特征序列更新所述隐藏状态特征。24.根据权利要求23所述的装置,其中,所述模型训练模块包括:
损失值确定子模块,用于根据所述预测在后文本和所述文本序列中每个所述目标文本的在后文本之间的差异,确定所述文本生成模型针对所述每个目标文本的损失值;梯度确定子模块,用于采用梯度回传算法和梯度回传的预定截断位置,确定所述损失值关于所述文本生成模型中网络参数的梯度;以及训练子模块,用于以最小化所述损失值为目标,根据所述网络参数的梯度对所述文本生成模型进行训练。25.一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1~12中任一项所述的方法。26.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1~12中任一项所述的方法。27.一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令存储于可读存储介质和电子设备其中至少之一上,所述计算机程序/指令在被处理器执行时实现根据权利要求1~12中任一项所述方法的步骤。

技术总结


本公开提供了一种文本生成方法和文本生成装置的训练方法、装置,涉及人工智能领域,具体涉及深度学习、自然语言处理和智能语音等技术领域。文本生成方法的具体实现方案为:预处理待处理文本,得到嵌入特征序列,嵌入特征序列包括与文本单元对应的嵌入特征;将嵌入特征序列输入由解码单元构成的注意力网络,得到注意力网络输出的文本特征序列;以及对文本特征序列进行解码,生成待处理文本的在后文本,解码单元被配置为执行以下操作:采用注意力机制对输入的特征序列进行编码,得到第一特征序列;根据隐藏状态特征调整第一特征序列,得到第二特征序列;隐藏状态特征表征待处理文本的在前文本的语义;以及根据第二特征序列更新隐藏状态特征。藏状态特征。藏状态特征。


技术研发人员:

王凡 鲍思琪 何煌 吴华 林英展 黄世维 何径舟

受保护的技术使用者:

北京百度网讯科技有限公司

技术研发日:

2022.10.24

技术公布日:

2023/1/19


文章投稿或转载声明

本文链接:http://www.wtabcd.cn/zhuanli/patent-1-84179-0.html

来源:专利查询检索下载-实用文体写作网版权所有,转载请保留出处。本站文章发布于 2023-01-28 08:51:42

发表评论

验证码:
用户名: 密码: 匿名发表
评论列表 (有 条评论
2人围观
参与讨论