首页> 中国专利> 基于两阶段解码的对话生成方法及装置、介质和计算设备

基于两阶段解码的对话生成方法及装置、介质和计算设备

摘要

本发明公开了一种基于两阶段解码的对话生成方法及装置、介质和计算设备,方法将对话的回复生成过程分成两个解码阶段,先向对话生成模型输入对话上下文以将其映射为词嵌入向量;然后将词向量输入到上下文自注意力编码器中,得到对话上下文的特征向量,之后将该特征向量输入到第一阶段Transformer解码器中,解码生成一个实词序列;再将实词序列输入到实词序列编码器中,得到实词序列的特征向量;最后将上下文和实词序列的特征向量一起输入到第二阶段Transformer解码器中,解码生成最终的回复。本发明通过两阶段的解码过程,防止了频率较高但缺乏语义信息的虚词对实词造成的干扰,从而提高回复的相关性和信息量。

著录项

  • 公开/公告号CN112988967A

    专利类型发明专利

  • 公开/公告日2021-06-18

    原文格式PDF

  • 申请/专利权人 华南理工大学;

    申请/专利号CN202110248798.1

  • 发明设计人 蔡毅;钟志成;孔俊生;

    申请日2021-03-08

  • 分类号G06F16/33(20190101);G06F16/332(20190101);G06N3/04(20060101);

  • 代理机构44245 广州市华学知识产权代理有限公司;

  • 代理人郑浦娟

  • 地址 510640 广东省广州市天河区五山路381号

  • 入库时间 2023-06-19 11:29:13

说明书

技术领域

本发明涉及自然语言处理技术领域,尤其涉及一种基于两阶段解码的对话生成方法及装置、介质和计算设备。

背景技术

近几年,随着深度学习技术的发展以及大量的对话数据集的出现,使得可以利用深度学习技术构建面向开放领域的对话系统,大大扩展了对话系统的应用场景。

在开放领域的对话生成领域,目前主流的做法是基于端对端的生成框架:使用一个编码器将对话上下文编码成一个特征向量,然后基于前面生成的向量,使用一个解码器,解码生成对话回复。然而,基础的端对端对话生成模型,会倾向于生成一般性的、缺乏信息量的回复。如“好的”,“不知道”等。近些年已有大量的针对该问题提出的解决方法,如:加入个性化信息、主题信息或外部知识信息,让模型更好地理解上下文的语义等,然而这些方法,仍然只使用单一的解码器,对实词、虚词不加区分地一次性生成整个对话回复。这样一来,模型会倾向于生成语义信息较少但出现频率较高的虚词,而不是语义信息较多但出现频率较低的实词,仍然会致使模型会生成一般性的、缺乏信息量的回复。

发明内容

本发明的第一目的在于克服现有技术的不足,提供一种基于两阶段解码的对话生成方法。本发明通过在第一阶段的解码中,先生成回复中需要的实词序列,再基于生成的实词序列和上下文的信息,在第二阶段的解码中生成最终的对话回复,有效避免了高频虚词对低频实词生成的影响,在保证回复流畅性的前提下,提高回复的相关性和信息量。

本发明的第二目的在于提供一种基于两阶段解码的对话生成装置。

本发明的第三目的在于提供一种计算机可读存储介质。

本发明的第四目的在于提供一种计算设备。

本发明的第一目的能够通过以下技术方案实现:

一种基于两阶段解码的对话生成方法,通过两阶段解码的对话生成模型生成对话,模型包括两个自注意力编码器和两个Transformer解码器,所述方法包括步骤:

(1)在模型中输入对话上下文的文本,将文本中的每一个单词都映射为词嵌入向量;

(2)以句子为单位,将词嵌入向量输入到上下文自注意力编码器中,通过上下文自注意力编码器提取出上下文的特征向量;

(3)将得到的上下文特征向量输入到第一阶段Transformer解码器中,解码生成一个实词序列,该实词序列表达的是最终回复中的主要语义信息;

(4)将得到的实词序列输入到实词序列自注意力编码器中,得到实词序列的特征向量;

(5)将编码得到的上下文和实词序列的特征向量一起输入到第二阶段Transformer解码器中,解码生成最终的回复。

优选的,步骤(1)中,文本中第i个单词映射得到的词嵌入向量表示为:

其中,i代表单词在文本中的位置;x

PE(i)表示位置正余弦编码函数,将位置i编码成一个向量,以便模型能够处理文本的序列信息,具体计算方式为:设d为最终向量的维度,向量位置为偶数的值为PE(i,2z)=sin(i/1000

优选的,步骤(2)中,提取的上下文特征向量为:

PSAE(U)=FFN(G)

G=MultiHead(In

In

其中,In

优选的,步骤(3)中,在生成第i个实词c

在第一阶段Transformer解码器的解码过程中,需要经过两次多头自主注意层,分别为:

其中,下标1代表第一阶段的解码过程;PSAE(U)代表提取得到的上下文特征向量;

为了得到第i个实词c

P(c

最终,根据概率分布P(c

以此类推,第一阶段Transformer解码器最终解码生成整个实词序列C=[c

优选的,步骤(4)中,实词序列自注意力编码器提取出的实词序列的特征向量为:

CwSAE(C)=FFN(G)

G=MultiHead(In

In

其中,In

优选的,步骤(5)中,在生成第i个回复词r

在第二阶段Transformer解码器的解码过程中,需要经过两次多头自主注意层,分别为:

其中,下标2代表第二阶段的解码过程;CwSAE(U)代表提取得到的实词序列的特征向量;

为了得到第i个回复词r

最终,根据概率分布P(r

以此类推,第二阶段Transformer解码器最终解码生成整个回复序列R=[r

优选的,利用已有对话的上下文句子、通过步骤(1)~(5)得到的实词序列和对话回复对模型进行训练,以得到最优模型;

在训练的过程中,先分别计算两个解码阶段的损失函数:

得到联合损失函数:

L

然后基于该联合损失函数L

本发明的第二目的能够通过以下技术方案实现:

一种基于两阶段解码的对话生成装置,包括依次连接的映射模块、上下文自注意力编码器、第一阶段Transformer解码器、实词序列自注意力编码器和第二阶段Transformer解码器,上下文自注意力编码器还连接至第二阶段Transformer解码器;

其中,映射模块用于以对话上下文的文本作为输入,将文本中的每一个单词都映射为词嵌入向量;

上下文自注意力编码器用于以句子为单位,将词嵌入向量作为输入,并提取出上下文的特征向量;

第一阶段Transformer解码器用于将上下文特征向量作为输入,解码生成一个实词序列,该实词序列表达的是最终回复中的主要语义信息;

实词序列自注意力编码器用于将实词序列作为输入,编码得到实词序列的特征向量;

第二阶段Transformer解码器用于将上下文的特征向量和实词序列的特征向量均作为输入,解码生成最终的回复。

本发明的第三目的能够通过以下技术方案实现:一种计算机可读存储介质,存储有程序,所述程序被处理器执行时,实现本发明第一目的所述的基于两阶段解码的对话生成方法。

本发明的第四目的能够通过以下技术方案实现:一种计算设备,包括处理器以及用于存储处理器可执行程序的存储器,所述处理器执行存储器存储的程序时,实现本发明第一目的所述的基于两阶段解码的对话生成方法。

本发明与现有技术相比,具有如下优点和有益效果:

(1)本发明是将常见的单一解码过程,解耦成两个阶段,单独生成实词序列以避免频率较高但缺乏语义信息的虚词对实词的影响,可提高对话生成回复的相关性和信息量,减少生成一般性的、缺乏信息量的回复的发生。

(2)本发明对话生成模型分为上下文自注意力编码器、实词序列自注意力编码器、两阶段的解码器,如此可以使模型更加具有可解释性,更便于实现模型的可控,即可通过调节模型输入来调整回复生成。

附图说明

图1为本发明基于两阶段解码的对话生成方法的流程图。

图2为对话生成模型的示意图。

具体实施方式

下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。

实施例1

本实施例公开了一种基于两阶段解码的对话生成方法,所述方法通过两阶段解码对话生成模型生成对话,可应用在人机交互领域中各类语言应答的系统,例如可聊天的智能机器人、语音控制的智能家居产品等。

所述对话生成模型的结构如图2所示,主要包括两个自注意力编码器(Self-Attention Encoder,SAE):上下文自注意力编码器(Post Self-Attention Encoder,PSAE)和实词序列自注意力编码器(Content-words Self-Attention Encoder,CwSAE),分别用来对上下文句子U和实词序列C进行特征提取,还有两个Transformer解码器:第一阶段Transformer解码器、第二阶段Transformer解码器。上下文自注意力编码器连接第一阶段Transformer解码器、第二阶段Transformer解码器,第一阶段Transformer解码器、实词序列自注意力编码器和第二阶段Transformer解码器依次连接。

如图1所示,所述对话生成方法包括步骤:

(1)在模型中输入对话上下文的文本(文本含有若干句句子),将文本中的每一个单词映射为词嵌入向量。单词包括实词(如动词、名词)、虚词(如语气助词等)。

文本中第i个单词映射得到的词嵌入向量表示为:

其中,+代表向量的相加;x

PE(i)表示位置正余弦编码函数,其可将位置i编码成一个向量,以便模型能够处理文本的序列信息,具体计算方式为:d为最终向量的维度,其中向量位置为偶数的值为PE(i,2z)=sin(i/1000

(2)以句子为单位,将词嵌入向量输入到上下文自注意力编码器中,通过上下文自注意力编码器提取出上下文的特征向量。

提取的上下文特征向量为:

PSAE(U)=FFN(G)

G=MultiHead(In

In

其中,In

(3)将提取得到的上下文特征向量输入到第一阶段Transformer解码器中,解码生成一个实词序列,该实词序列表达的是最终回复中的主要语义信息。

其中,在生成第i个实词c

在第一阶段Transformer解码器的解码过程中,需要经过两次多头自主注意层,分别为:

式中,下标1代表第一阶段的解码过程;PSAE(U)代表提取得到的上下文特征向量。

为了得到第i个实词c

P(c

最终,根据概率分布P(c

以此类推,可解码生成整个实词序列C=[c

(4)将第一阶段解码得到的实词序列(C)输入到实词序列自注意力编码器中,得到实词序列的特征向量,表示为:

CwSAE(C)=FFN(G)

G=MultiHead(In

In

式中,In

(5)将编码得到的上下文的特征向量和实词序列的特征向量一起输入到第二阶段Transformer解码器中,解码生成最终的回复。

其中,在生成第i个回复词r

与第一阶段解码器类似,在第二阶段Transformer解码器的解码过程中,需要经过两次多头自主注意层,分别为:

式中,下标2代表第二阶段的解码过程;CwSAE(U)代表提取得到的实词序列的特征向量。

为了得到第i个回复词r

最终,根据概率分布P(r

以此类推,可解码生成整个回复序列R=[r

在本实施例中,两个编码器和两个解码器可预先训练好,利用已有对话的上下文句子、通过步骤(1)~(5)得到的实词序列和对话回复进行联合训练,以得到最优模型。

在训练的过程中,先分别计算两个解码阶段的损失函数:

得到联合损失函数:

L

然后基于该联合损失函数L

实施例2

本实施例公开了一种基于两阶段解码的对话生成装置,可实现实施例1中的对话生成方法。该对话生成装置包括依次连接的映射模块、上下文自注意力编码器、第一阶段Transformer解码器、实词序列自注意力编码器和第二阶段Transformer解码器,上下文自注意力编码器还连接至第二阶段Transformer解码器。

其中,对于映射模块,其以对话上下文的文本作为输入,可用于将文本中的每一个单词都映射为词嵌入向量;

对于上下文自注意力编码器,其以句子为单位,将词嵌入向量作为输入,可用于提取出上下文的特征向量;

对于第一阶段Transformer解码器,其以上下文特征向量作为输入,可用于解码生成一个实词序列,该实词序列表达的是最终回复中的主要语义信息;

对于实词序列自注意力编码器,其以实词序列作为输入,可用于编码得到实词序列的特征向量;

对于第二阶段Transformer解码器,上下文的特征向量和实词序列的特征向量均作为其输入,可用于解码生成最终的回复。

在此需要说明的是,本实施例的装置仅以上述各功能模块的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

实施例3

本实施例公开了一种计算机可读存储介质,存储有程序,所述程序被处理器执行时,实现实施例1所述的基于两阶段解码的对话生成方法,具体为:

(1)在模型中输入对话上下文的文本,将文本中的每一个单词都映射为词嵌入向量;

(2)以句子为单位,将词嵌入向量输入到上下文自注意力编码器中,通过上下文自注意力编码器提取出上下文的特征向量;

(3)将得到的上下文特征向量输入到第一阶段Transformer解码器中,解码生成一个实词序列,该实词序列表达的是最终回复中的主要语义信息;

(4)将得到的实词序列输入到实词序列自注意力编码器中,得到实词序列的特征向量;

(5)将编码得到的上下文和实词序列的特征向量一起输入到第二阶段Transformer解码器中,解码生成最终的回复。

本实施例中的计算机可读存储介质可以是磁盘、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、U盘、移动硬盘等介质。

实施例4

本实施例公开了一种计算设备,包括处理器以及用于存储处理器可执行程序的存储器,所述处理器执行存储器存储的程序时,实现实施例1所述的基于两阶段解码的对话生成方法,具体为:

(1)在模型中输入对话上下文的文本,将文本中的每一个单词都映射为词嵌入向量;

(2)以句子为单位,将词嵌入向量输入到上下文自注意力编码器中,通过上下文自注意力编码器提取出上下文的特征向量;

(3)将得到的上下文特征向量输入到第一阶段Transformer解码器中,解码生成一个实词序列,该实词序列表达的是最终回复中的主要语义信息;

(4)将得到的实词序列输入到实词序列自注意力编码器中,得到实词序列的特征向量;

(5)将编码得到的上下文和实词序列的特征向量一起输入到第二阶段Transformer解码器中,解码生成最终的回复。

本实施例中所述的计算设备可以是台式电脑、笔记本电脑、智能手机、PDA手持终端、平板电脑或其他具有处理器功能的终端设备。

以上所述,仅为本发明专利较佳的实施例,但本发明专利的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明专利所公开的范围内,根据本发明专利的技术方案及其发明专利构思加以等同替换或改变,都属于本发明专利的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号