对话生成方法、装置、电子设备及存储介质
文献发布时间:2023-06-19 10:24:22
技术领域
本申请涉及计算机技术领域,具体涉及语音技术领域、深度学习技术领域、人工智能技术领域,尤其涉及对话生成方法、装置、电子设备及存储介质。
背景技术
目前的基于端到端模型的对话系统,端到端模型在对对话进行处理时,需要将多轮对话的上文进行编码,并结合当前对话,解码出针对当前对话的回复信息。上述方案中,需要将所有上文一次性编码,编码长度很长,计算量大。但模型能够处理的编码长度有限,计算量有限,导致模型难以适用于对话轮次较多的场景,适用性差。
发明内容
本公开提供了一种对话生成方法、装置、电子设备及存储介质。
根据本公开的一方面,提供了一种对话生成方法,包括:获取当前对话,以及所述当前对话的历史对话;从所述历史对话之中选择多个参考历史对话并加入临时记忆对话集合;以及根据所述当前对话和所述临时记忆对话集合生成所述当前对话的回复信息。
根据本公开的另一方面,提供了一种对话生成装置,包括:获取模块,用于获取当前对话,以及所述当前对话的历史对话;选择模块,用于从所述历史对话之中选择多个参考历史对话并加入临时记忆对话集合;以及生成模块,用于根据所述当前对话和所述临时记忆对话集合生成所述当前对话的回复信息。
根据第三方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的对话生成方法。
根据第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如上所述的对话生成方法。
根据第五方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如上所述的对话生成方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请第一实施例的示意图;
图2是根据本申请第二实施例的示意图;
图3是当前对话的回复信息的生成示意图;
图4是根据本申请第三实施例的示意图;
图5是根据本申请第四实施例的示意图;
图6是用来实现本申请实施例的对话生成方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
下面参考附图描述本申请实施例的对话生成方法、装置、电子设备及存储介质。
图1是根据本申请第一实施例的示意图。其中,需要说明的是,本申请实施例的执行主体为对话生成装置,对话生成装置具体可以为硬件设备,或者硬件设备中的软件等。
如图1所示,对话生成方法的具体实现过程如下:
步骤101,获取当前对话,以及当前对话的历史对话。
在本申请实施例中,当前对话可以为用户与对话生成装置对话时,当前输入的对话,例如,用户所提的问题等。其中,对话生成装置获取当前对话的方式可以为,对话生成装置实时进行语音采集,获取采集到的用户的当前语音,或者,对话生成装置可以通过所连接的语音采集设备来获取用户的当前语音;然后将当前语音作为当前对话,或者将当前语音的语音识别结果作为当前对话。
在本申请实施例中,当前对话的历史对话,指的是当前对话的采集时间点之前,对话生成装置采集到并存储的对话。
步骤102,从历史对话之中选择多个参考历史对话并加入临时记忆对话集合。
在本申请实施例中,对话生成装置选择参考历史对话的方式例如可以为随机选择,或者按照历史对话的采集时间点进行选择,或者按照历史对话与当前对话的相关性等进行选择,或者结合历史对话的采集时间点以及与当前对话的相关性等进行选择,可以根据实际需要来确定选择方式。
在本申请实施例中,参考历史对话的数量,可以根据对话生成装置的性能等,或者根据对话生成装置所采用的模型的性能、计算量或者要求等进行设定。
步骤103,根据当前对话和临时记忆对话集合生成当前对话的回复信息。
在本申请实施例中,对话生成装置生成当前对话的回复信息的方式可以为,将当前对话和临时记忆对话集合输入至生成模型,以生成回复信息。其中,生成模型例如可以为Transformer模型等。
综上,通过获取当前对话,以及当前对话的历史对话;从历史对话之中选择多个参考历史对话并加入临时记忆对话集合;以及根据当前对话和临时记忆对话集合生成当前对话的回复信息,从而能够减少需要处理的历史对话的处理,降低对历史对话的编码长度,减小计算量,减少计算时间,使得对话生成装置能够适用于对话轮次较多的场景,适应性好。
图2是根据本申请第二实施例的示意图。其中,需要说明的是,本申请实施例的执行主体为对话生成装置,对话生成装置具体可以为硬件设备,或者硬件设备中的软件等。
如图2所示,对话生成方法的具体实现过程如下:
步骤201,获取当前对话,以及当前对话的历史对话,其中,当前对话为r
在本申请实施例中,当前对话可以为用户与对话生成装置对话时,当前输入的对话,例如,用户所提的问题等。历史对话可以为,当前对话的采集时间点之前,用户输入的对话;或者,当前对话的采集时间点之前,用户输入的对话以及对话生成装置针对该对话的回复。其中,历史对话的轮次可以为多轮。
步骤202,按照第一预设数量w,从历史对话之中选择对话r
在本申请实施例中,与当前对话的时间差值较小的历史对话,与当前对话的相关度一般较大,因此,可以将与当前对话的时间差值较小的w个对话直接加入临时记忆对话集合中;而对与当前对话的时间差值较大的历史对话,与当前对话的相关度一般较小,可以通过选择加入临时记忆对话集合中。
另外,若历史对话的总数量小于或者等于w,则可以不做选择,将所有历史对话加入临时记忆对话集合中。
步骤203,根据记忆选择策略模型从对话r
在本申请实施例中,对话生成装置从对话r
步骤204,根据当前对话和临时记忆对话集合生成当前对话的回复信息。
在本申请实施例中,对话生成装置生成当前对话的回复信息的方式可以为,将当前对话和临时记忆对话集合输入至生成模型,以生成回复信息。其中,生成模型例如可以为Transformer模型等,生成模型的采用,能够进一步提高当前对话的回复信息的生成效率。
在本申请实施例中,当前对话的回复信息的生成示意图可以如图3所示。在图3中,对话r
综上,通过获取当前对话,以及当前对话的历史对话,其中,当前对话为r
图4是根据本申请第三实施例的示意图。如图4所示,对话生成方法的具体实现过程如下:
步骤401,获取当前对话,以及当前对话的历史对话,其中,当前对话为r
步骤402,按照第一预设数量w,从历史对话之中选择对话r
上述两个步骤的详细描述可以参考图1或图2所示实施例,此处不再做详细说明。
步骤403,从对话r
在本申请实施例中,第一候选对话的选择方式例如可以为,随机选择;或者,从时间点最早的开始选择,如从r
其中,第一候选对话可以表征一个对话,也可以表征多个对话。在表征多个对话,例如两个对话的情况下,从对话r
步骤404,根据记忆选择策略模型、临时记忆对话集合以及第一候选对话,生成第一候选对话的概率。
在本申请实施例中,记忆选择策略模型,用于结合临时记忆对话集合以及第一候选对话,生成第一候选对话的概率。其中,记忆选择策略模型的计算公式可以如以下公式(1)至公式(3)所示。
f(TM,r
φ(TM)=∑
φ(r
其中,r
其中,第一候选对话对应的向量的获取方式可以为,将第一候选对话输入生成模型的编码部分,获取第一候选对话对应的向量。其中,生成模型,为用于生成当前对话的回复信息的模型。
步骤405,在根据第一候选对话的概率确定第一候选对话满足预设加入条件时,将第一候选对话加入至临时记忆对话集合。
在本申请实施例中,预设加入条件例如可以为,第一候选对话的概率大于等于预设概率阈值。预设加入条件例如还可以为,按照第一候选对话的概率,对第一候选对话及对话r
步骤406,判断临时记忆对话集合之中的对话数量是否小于n,以及对话r
其中,n表示临时记忆对话集合中对话的最大数量。
步骤407,在临时记忆对话集合之中的对话数量小于n,且对话r
步骤408,根据记忆选择策略模型、临时记忆对话集合以及第二候选对话,生成第二候选对话的概率。
步骤409,在根据第二候选对话的概率确定第二候选对话满足所述预设加入条件时,将第二候选对话加入至临时记忆对话集合,然后执行步骤406。
步骤410,在临时记忆对话集合之中的对话数量大于或等于n,或者,对话r
步骤411,根据当前对话和临时记忆对话集合生成当前对话的回复信息。
在本申请实施例中,对话生成装置生成当前对话的回复信息的方式可以为,将当前对话和临时记忆对话集合输入至生成模型,以生成回复信息。其中,生成模型例如可以为Transformer模型等。
在本申请实施例中,记忆选择策略模型和生成模型可以同时训练得到,从而降低训练成本,提高训练得到的模型的准确度。其中,记忆选择策略模型和生成模型的训练过程例如可以为,获取多个样本数据,样本数据包括:样本对话,以及对应的样本历史对话;在记忆选择策略模型上添加随机扰动分布;将每个样本数据分别输入记忆选择策略模型和生成模型,获取记忆选择策略模型输出的样本对话预测概率,以及生成模型输出的样本对话回复信息;结合样本对话回复信息以及生成模型的损失函数,对生成模型进行系数调整;结合损失函数、样本对话预测概率以及记忆选择策略模型的目标函数,对记忆选择策略模型进行系数调整。
其中,随机扰动分布例如可以为期望值为0的正态分布。生成模型的损失函数的公式例如可以如以下公式(4)所示;记忆选择策略模型的目标函数的公式例如可以如以下公式(5)所示。
其中,NLL表示生成模型的损失函数;G表示生成模型;G(r
综上,通过获取当前对话,以及当前对话的历史对话,其中,当前对话为r
为了实现上述实施例,本申请实施例还提出一种对话生成装置。
图5是根据本申请第四实施例的示意图。如图5所示,该对话生成装置500包括:获取模块510、选择模块520和生成模块530。
其中,获取模块510,用于获取当前对话,以及所述当前对话的历史对话;
选择模块520,用于从所述历史对话之中选择多个参考历史对话并加入临时记忆对话集合;以及
生成模块530,用于根据所述当前对话和所述临时记忆对话集合生成所述当前对话的回复信息。
作为本申请实施例的一种可能实现方式,其中,所述当前对话为r
作为本申请实施例的一种可能实现方式,所述生成模块530具体用于,将所述当前对话和所述临时记忆对话集合输入至生成模型,以生成所述回复信息。
作为本申请实施例的一种可能实现方式,所述生成模型和所述记忆选择策略模型同时训练得到。
作为本申请实施例的一种可能实现方式,所述第二选择单元具体用于,从所述对话r
作为本申请实施例的一种可能实现方式,所述第二选择单元具体还用于,在临时记忆对话集合之中的对话数量小于n,且所述对话r
作为本申请实施例的一种可能实现方式,所述第二选择单元具体还用于,在所述临时记忆对话集合之中的对话数量大于或等于n,或者,所述对话r
作为本申请实施例的一种可能实现方式,所述生成模型和所述记忆选择策略模型的训练过程为,获取多个样本数据,所述样本数据包括:样本对话,以及对应的样本历史对话;在所述记忆选择策略模型上添加随机扰动分布;将每个样本数据分别输入记忆选择策略模型和生成模型,获取所述记忆选择策略模型输出的样本对话预测概率,以及所述生成模型输出的样本对话回复信息;结合所述样本对话回复信息以及所述生成模型的损失函数,对所述生成模型进行系数调整;结合所述损失函数、所述样本对话预测概率以及所述记忆选择策略模型的目标函数,对所述记忆选择策略模型进行系数调整。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图6所示,是根据本申请实施例的对话生成方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图6所示,该电子设备包括:一个或多个处理器601、存储器602,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图6中以一个处理器601为例。
存储器602即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的对话生成方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的对话生成方法。
存储器602作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的对话生成方法对应的程序指令/模块(例如,附图5所示的获取模块510、选择模块520和生成模块530)。处理器601通过运行存储在存储器602中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的对话生成方法。
存储器602可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据对话生成的电子设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器602可选包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至对话生成的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
对话生成方法的电子设备还可以包括:输入装置603和输出装置604。处理器601、存储器602、输入装置603和输出装置604可以通过总线或者其他方式连接,图6中以通过总线连接为例。
输入装置603可接收输入的数字或字符信息,以及产生与对话生成的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置604可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
- 对话生成方法、对话生成装置、存储介质与电子设备
- 对话生成方法、对话生成装置、对话机器人和存储介质