掌桥专利:专业的专利平台
掌桥专利
首页

一种用户对话的生成方法、系统、设备和存储介质

文献发布时间:2024-04-18 19:59:31


一种用户对话的生成方法、系统、设备和存储介质

技术领域

本发明涉及人机对话技术领域,具体为一种用户对话的生成方法、系统、设备和存储介质。

背景技术

随着人工智能的发展,人机对话逐渐出现在人们的日常生活中。任务型对话系统作为一种人机对话系统,其主要功能是通过人机交流达到用户的目的,满足用户的需求。任务型对话系统面向垂直领域。它通常以软件的形式出现,通过人机交流的方式用于预定、预定餐馆、推荐地点等,回答用户所提出的请求并协助用户完成任务。

任务型对话系统中,常使用离线强化学习完成对话任务交互。但离线强化学习旨在完全从以前收集的数据中学习有效的策略,而不与环境交互,过度依赖旧策略生成对话结果,会导致对话输出结果真实性较低,不符合真实人类对话的思维逻辑,导致对话任务结果不佳,用户对话体验感较差。

发明内容

本发明的目的是提供一种用户对话的生成方法、系统、设备和存储介质

本发明技术方案如下:

一种用户对话的生成方法,包括如下操作:

S1、获取当前用户对话目标,基于所述当前用户对话目标和历史系统动作,得到当前系统状态;

S2、所述当前系统状态经对话策略扩散处理,得到初始系统回复动作;

所述初始系统回复动作和当前系统状态形成初始当前用户对话,获取所述初始当前用户对话的价值;

基于所述价值,更新所述对话策略扩散处理的扩散政策损失函数,当扩散政策损失函数输出值小于损失阈值时,输出当前系统动作,得到当前系统回复动作;

所述当前系统回复动作经转化后,得到当前用户对话结果;

所述当前系统回复动作和当前系统状态形成当前对话信息,获取所述当前对话信息的真实度,判断所述真实度是否超过阈值;若超过,增加当前系统回复动作对应的对话策略扩散路径的优先执行值,保存所述对话策略路径至历史对话策略后,用于下一轮的用户对话生成;若未超过,降低当前系统回复动作对应的对话策略路径的优先执行值,保存所述对话策略扩散路径至历史对话策略后,用于下一轮的用户对话生成。

所述S2中对话策略扩散处理的操作具体为:所述当前系统状态经分类处理,得到分类标签;基于所述分类标签,在历史对话策略中,选取同类型、且最大优先执行值对应的对话策略路径生成待选动作,所述待选动作中最大奖励值对应的动作为所述初始系统回复动作。

所述S2中获取初始当前用户对话的价值的具体过程是:所述初始当前用户对话经双延迟深度确定性策略梯度方法处理后,得到第一梯度价值和第二梯度价值,所述第一梯度价值和第二梯度价值的最小值为所述价值。

所述S2中基于价值,更新对话策略扩散处理的扩散政策损失函数的操作具体为:基于所述价值、累计折扣奖励和折扣系数,得到目标值;当所述目标值与评估值的误差达到最小时,得到更新第一梯度价值网络;基于所述更新第一梯度价值网络,得到扩散政策梯度函数;所述扩散政策梯度函数与行为克隆函数相加后,得到所述扩散政策损失函数。

所述S2中扩散政策损失函数可通过如下公式得到:

L

L

为最大化均值函数,λ为正则化超参数,/>

为平均值函数,∈为初步采样动作,/>

获取下一轮系统状态,与所述当前系统回复动作和当前系统状态组合后,形成优化当前对话信息,所述优化当前对话信息用于执行获取真实度的操作。

所述获取当前对话信息的真实度的操作具体为:将所述当前对话信息,与标准对话数据库中同类型的用户对话信息进行语义特征对比,得到的相似度均值为所述真实度。

一种用户对话的生成系统,包括:

当前系统状态生成模块,用于获取当前用户对话目标,基于所述当前用户对话目标和历史系统动作,得到当前系统状态;

当前用户对话结果生成模块,用于所述当前系统状态经对话策略扩散处理,得到初始系统回复动作;所述初始系统回复动作和当前系统状态形成初始当前用户对话,获取所述初始当前用户对话的价值;基于所述价值,更新所述对话策略扩散处理的扩散政策损失函数,当扩散政策损失函数输出值小于损失阈值时,输出当前系统动作,得到当前系统回复动作;所述当前系统回复动作经转化后,得到当前用户对话结果;

真实度判断模块,用于所述当前系统回复动作和当前系统状态形成当前对话信息,获取所述当前对话信息的真实度,判断所述真实度是否超过阈值;若超过,增加当前系统回复动作对应的对话策略扩散路径的优先执行值,保存所述对话策略路径至历史对话策略后,用于下一轮的用户对话生成;若未超过,降低当前系统回复动作对应的对话策略路径的优先执行值,保存所述对话策略扩散路径至历史对话策略后,用于下一轮的用户对话生成。

一种用户对话的生成设备,包括处理器和存储器,其中,所述处理器执行所述存储器中保存的计算机程序时实现上述的用户对话的生成方法。

一种计算机可读存储介质,用于存储计算机程序,其中,所述计算机程序被处理器执行时实现上述的用户对话的生成方法。

本发明的有益效果在于:

本发明提供一种用户对话的生成方法,通过将对话策略扩散处理当前系统状态后得到的初始系统回复动作,与当前系统状态结合形成初始当前用户对话,并获取初始当前用户对话的价值,基于价值构建对话策略扩散处理的损失函数,以此不断更新对话策略扩散处理,使对话策略扩散处理后输出的系统回复动作更符合真实的人类对话思维逻辑,更具有真实性;同时,为提升计算效率,并鼓励对话策略扩散处理提供更合适的对话策略路径,通过对比对话信息的的真实度与阈值的大小,来决定是否正强化对话策略扩散路径,从而引导对话策略扩散处理过程中能够灵活根据系统状态类型提供更好的对话策略路径,从而使得最终输出的用户对话结果真实性更高,符合真实人类对话的思维逻辑,提升对话任务结果的质量,提升用户对话体验感。

附图说明

通过阅读下文优选实施方式的详细描述,本申请的方案和优点对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。

在附图中:

图1为实施例中用户对话生成方法的流程示意图;

图2为实施例中,不同方法的对话成功率曲线图;

图3为实施例中,本实施例方法与引导式对话策略学习方法的奖励值对比图;

图4为实施例中,本实施例方法与引导式对话策略学习方法和近端策略优化方法的成功率曲线图。

具体实施方式

下面将结合附图更详细地描述本公开的示例性实施方式。

本实施例提供一种用户对话的生成方法,包括如下操作:

S1、获取当前用户对话目标,基于所述当前用户对话目标和历史系统动作,得到当前系统状态;

S2、所述当前系统状态经对话策略扩散处理,得到初始系统回复动作;

所述初始系统回复动作和当前系统状态形成初始当前用户对话,获取所述初始当前用户对话的价值;

基于所述价值,更新所述对话策略扩散处理的扩散政策损失函数,当扩散政策损失函数输出值小于损失阈值时,输出当前系统动作,得到当前系统回复动作;

所述当前系统回复动作经转化后,得到当前用户对话结果;

所述当前系统回复动作和当前系统状态形成当前对话信息,获取所述当前对话信息的真实度,判断所述真实度是否超过阈值;若超过,增加当前系统回复动作对应的对话策略扩散路径的优先执行值,保存所述对话策略路径至历史对话策略后,用于下一轮的用户对话生成;若未超过,降低当前系统回复动作对应的对话策略路径的优先执行值,保存所述对话策略扩散路径至历史对话策略后,用于下一轮的用户对话生成。

S1、获取当前用户对话目标,基于当前用户对话目标和历史系统动作,得到当前系统状态。

获取当前用户对话目标。获取当前用户的对话语音,将对话语音翻译成机器语言形式的当前用户对话,提取当前用户对话的语义信息,得到的关键词形成当前用户对话目标。翻译成机器语言的操作可通过用户模拟器实现,提取语义信息的操作可通过对话状态追踪器实现。

得到当前系统状态。将当前用户对话目标与预设系统对话库中的历史对话目标进行匹配,得到对应的历史系统动作,并根据用户对话目标和历史系统动作估计来估计对话状态,然后使用此对话状态作为当前系统状态。此过程可通过对话状态追踪器实现。

S2、当前系统状态经对话策略扩散处理,得到初始系统回复动作;初始系统回复动作和当前系统状态形成初始当前用户对话,获取初始当前用户对话的价值;基于价值,更新对话策略扩散处理的扩散政策损失函数,当扩散政策损失函数输出值小于损失阈值时,输出当前系统动作,得到当前系统回复动作;当前系统回复动作经转化后,得到当前用户对话结果。

对话策略扩散处理的操作为:当前系统状态经分类处理,得到分类标签;基于分类标签,在历史对话策略中,选取同类型、且最大优先执行值对应的对话策略路径生成待选动作,待选动作中最大奖励值对应的动作为初始系统回复动作。

具体为,当前系统状态经分类处理后,得到分类标签,根据分类标签,在历史对话策略中,选择同一类、且优先执行值为最大值的对话策略路径去生成若干个动作,得到待选动作;接着,对待选动作中每一个动作进行奖惩处理,并挑选出奖励值为最大值的动作作为输出,得到初始系统回复动作。生成待选动作的操作可通过MLP神经网络实现,奖惩处理和获取奖励值的操作可通过强化学习实现。

为进一步优化系统回复动作,会对初始系统回复动作的真实性或自然性(与人类对话中逻辑性的相似度)进行提升,因此引入更新策略,通过不断更新对话策略扩散处理来达到目的。

于是,将初始系统回复动作和当前系统状态形成初始当前用户对话,获取初始当前用户对话的价值。获取初始当前用户对话的价值的操作为:初始当前用户对话经双延迟深度确定性策略梯度方法处理后,得到第一梯度价值和第二梯度价值,第一梯度价值和第二梯度价值的最小值为价值。得到第一梯度价值和第二梯度价值可分别通过第一梯度价值网络和第二梯度价值网络实现,第一梯度价值网络和第二梯度价值网络分别优选为第一Critic网络和第二Critic网络。

具体为,利用双延迟深度确定性策略梯度方法处理初始当前用户对话的过程中,经过第一梯度价值网络和第二梯度价值网络(第一Critic网络和第二Critic网络)处理会得到两个奖励值Q值,即价值,可通过如下计算公式得到:

Q

为提升计算获得梯度价值网络的Q值(价值)的准确度,本实施例在动作中加入噪音,即将初始系统回复动作与噪音相加后,执行上述获得第一梯度价值和第二梯度价值的操作后,选取最小值作为优化价值,优化价值用于执行更新对话策略扩散处理的扩散政策损失函数的操作。

初始系统回复动作中加入噪音的操作可通过如下公式实现:

a

ε~clip(N,-c,c)

ε为噪音,N为噪声大小,c为噪声裁剪系数,对噪声裁剪以保证目标接近原始动作。

基于价值,更新对话策略扩散处理的扩散政策损失函数的操作为:基于价值(或优化价值)、累计折扣奖励和折扣系数,得到目标值;当目标值与评估值的误差达到最小时,得到更新第一梯度价值网络;基于更新第一梯度价值网络,得到扩散政策梯度函数;扩散政策梯度函数与行为克隆函数相加后,得到扩散政策损失函数。

具体为,将价值与折扣系数相乘后,与累计折扣奖励相加,得到目标值。得到目标值的操作可通过如下公式实现:

y=r

y为目标值,r

通过最小化目标值与评估值的误差,更新第一梯度价值网络和第二梯度价值网络,从而更新整个双延迟深度确定性策略梯度方法,使获得的价值的准确度更高。目标值与评估值的误差公式为:

L

接着基于更新第一梯度价值网络、当前系统状态s,初始系统回复动作a

扩散政策损失函数可通过如下公式得到:

L

L

为最大化均值函数,λ为正则化超参数,/>

为平均值函数,∈为初步采样动作,/>

最后,将当前系统回复动作经机器语言翻译转化后,得到当前用户对话结果。

为进一步增强对话生成方法的真实度,当前系统回复动作和当前系统状态形成当前对话信息,获取当前对话信息的真实度,判断真实度是否超过阈值;若超过,增加当前系统回复动作对应的对话策略扩散路径的优先执行值,保存对话策略路径至历史对话策略后,用于下一轮的用户对话生成;若未超过,降低当前系统回复动作对应的对话策略路径的优先执行值,保存对话策略扩散路径至历史对话策略后,用于下一轮的用户对话生成。

获取当前对话信息的真实度的操作为:将当前对话信息,与标准对话数据库中同类型的用户对话信息进行语义特征对比,得到的相似度均值为真实度。具体为,将当前对话信息,与标准对话数据库中同类型的所有用户对话信息进行语言逻辑相似性对比,得到所有相似度值取均值后,即为当前对话信息的真实度。

接着,判断当前对话信息的真实度是否超过预设阈值。若超过,则证明当前对话信息更符合人类思维逻辑,因此,将获得当前系统回复动作的对话策略路径,进行优先执行值加分处理,并保存该对话策略路径到历史对话策略中,当下一次的用户对话目标对应的系统状态与当前系统状态为同类型时,优先选择该对话策略路径生成动作;若是出现对话策略路径的优先执行值相同时,可随机选择一个对话策略路径生成动作。若未超过,则证明当前对话信息的逻辑性较差,不符合人类对话思维,则将当前系统回复动作对应的对话策略路径进行优先执行值减分处理。

为提升真实度的准确性,本实施例获取下一轮系统状态,与当前系统回复动作和当前系统状态组合后,形成优化当前对话信息,优化当前对话信息用于执行获取真实度的操作。获取优化当前对话信息的操作与获取当前对话信息的真实度的操作相同,为节省篇幅,不在此重复叙述。

具体为,上述对对话策略扩散处理的奖励行为可通过奖励估计器实现。奖励估计器f

为验证本实施例提供的生成方法(以下简称本实施例方法)的效果,做了如下实验。

数据集和模拟器。实验使用的数据集是MultiWOZ数据集。这是一个多领域、多意图的任务导向对话语料库,它包含生活中常见的七个不同领域和10438个对话。每个对话跨越多个领域和主题。该数据集中的主要场景是对话代理试图满用户的需求,例如预订餐厅或推荐有特定要求的酒店。单域对话和多域对话的平均回合数分别为8.93和15.39。ConvLab是一个开源多领域端到端对话系统平台,提供带注释的MultiWOZ数据集和相关的预训练参考模型。实验主要使用ConvLab提供的基于规则的对话状态跟踪器来跟踪用户和对话代理之间交互过程中出现的信息。另外还提供了基于议程的用户模拟器。基于议程的用户模拟器使用启发式方法,将预先定义的用户目标作为用户消息提供给对话系统。

训练。实验分为预训练和正式训练两个过程。在训练开始前,使用监督学习从数据集得到初始的对话策略,在这个阶段对话没有对话策略的参与。预训练过程中只对奖励估计器和Critic网络进行训练,预训练之后得到奖励估计器模型和价值网络模型。预训练之后,对话智能体再通过与用户模拟器交互学习提高对话策略,正式训练阶段主要依靠扩散策略。为了确保实验的公平性,将主要实验的预训练统一设置为16回合,训练4回合。

评估指标。对话系统任务的成功率,意味着能够成功解决用户问题的对话。对话产生的成本,等同于对话轮次。一般来讲,成功率越高、对话轮次越少,证明对话系统的性能越高。F1分数能够评估对话结果是否回答了用户所有请求的信息,匹配率能够评估预订的实体是否匹配所有指示适用于所有领域,只有在提供了所有信息(即通知召回=1)并且实体也被正确预订(即匹配率=1)的情况下才认为对话成功。

对比的现有技术。近端策略优化方法(Proximal Policy Optimization,PPO):一种适应性很广的基于策略的裁剪方法,在实验设置中,它与用户模拟器直接交互,利用获得的轨迹段学习对话策略。深度Q网络(Deep Q-network,DQN):基于Bellman最优方程更新来学习对话策略。深度Dyna网络(Deep Dyna Q):通过加入世界模型并生成模拟经验,对话模型生成的是完整的对话轨迹,对话智能体利用真实经验和模拟经验更新学习对话策略。面向任务的神经对话模型对抗性学习(ALDM):对抗性学习对话模型,通过将对话序列编码为判别器的Bi-LSTM来学习对话奖励,以预测任务成功,奖励仅在会话结束时进行估计,并进一步用于优化对话策略。引导式对话策略学习(GDPL):基于对抗性逆强化学习的新颖方法,用于多领域面向任务的对话中的联合奖励估计和策略优化。人类对话评估(Human):ConvLab提供用于自动评估的用户模拟器,集成Amazon Mechanical Turk根据测试集进行人工评估。

基于规则的用户模拟器上的实验结果。实验各项评估指标结果如表1所示。从表中可以看出,本实施例方法的F1分数较高,且本实施例方法的成功率最高,这代表着对话任务能够很好地完成。在对话轮数方面,本实施例方法仍然领先其他方法。

表1基于规则的用户模拟器上的实验结果汇总表

此外,实验中使用ConvLab提供的人类评价模块与本实施例方法进行对比。本实施例方法在多域对话任务上整体效果优于人类评估结果。与人类对话相比,本实施例方法在回合数上比人类对话多一个回合,因为本实施例方法并不只是考虑如何快速结束对话,而是在保证成功率的同时尽可能减少对话回合数。本实施例方法的匹配率低于人类对话,人类的智慧使得在对话时总能精确的识别对话的领域和目标。本实施例方法的F1分数高于人类评估,这是由于本实施例方法总是按照既定程序识别对话领域和目标,从而针对对话领域和目标做出回应。总的来说,本实施例方法与人类对话相比,对话轮数接近,成功率较高。

预训练的实验结果。实验中,对GDPL和本实施例方法同时进行了16回合的预训练,得到了的结果如表2所示。在相同的训练前条件下,GDPL的成绩较差,正式训练后成绩显著提高。同时,本实施例方法仅在预训练后就取得了优异的成绩。

表2预训练的实验结果参数汇总表

另外,实验中还对比了本实施例方法和几种现有技术的成功率,如图2所示。可以看出由于预训练的效果显著,使得本实施例方法在训练时的起点成功率就很高,DQN和DDQ的学习曲线较为平缓。GDPL虽然预训练的起点不是很高,但是通过奖励估计器和策略的对抗学习,使得后期训练效果显著。

另外,实验中还对比了GDPL和本实施例方法训练过程中的奖励情况。如图3所示,其中纵坐标表示的不是每回合的奖励而是累计平均奖励,因此两者的奖励曲线都呈现上升趋势。图中可以明显看出,本实施例方法的累计平均奖励逐渐高于GDPL,曲线比GDPL更加陡峭。这说明本实施例方法能够在与扩散策略的对抗学习中很好的学习奖励函数,从而推断更准确的用户目标,得到的奖励更好的指导对话策略。

多领域对比实验。实验中,在基于规则的用户模拟器上对多个领域进行了比较实验,以证明本实施例方法可以有效地执行足够多的多领域对话任务。在单域、对偶域和三个域上对对话任务进行了实验。随着领域数量的增加,对话目标变得更加复杂,完成对话变得更加困难。实验结果如图4所示。从图中可以看出,随着域数量的增加,图中所有的方法性能都会有所下降,这是因为域数量的增加使得对话任务变得复杂,对话中包含多个领域,识别领域和用户目标变得更加困难。PPO在涉及一个领域时发挥了很好地效果,这说明强化学习应用于简单的对话任务是非常有效的。但涉及到两个领域时,PPO的性能几乎下降了一半,在面对三个域时效果更差。这说明PPO并不能很好的应用于多领域的对话任务中,同时说明手工设计奖励函数的方法不能满足多领域对话任务的复杂要求,因此更加需要一个好的奖励函数来推断奖励和用户目标。实验中重点比较了GDPL和本实施例方法,它们两个都应用了奖励估计器。因此两种方法在面对两个以及三个领域时,仍然保持着较高的对话成功率。在单个领域时,两者差距不大,都取得了较高的成功率。实验中的测试选取了景点、餐馆、出租车三个领域,结果表面本实施例方法在这三个领域上取得了最佳的结果,可以证明本实施例方法可适用于多领域对话任务。

本实施例还提供一种用户对话的生成系统,包括:

当前系统状态生成模块,用于获取当前用户对话目标,基于当前用户对话目标和历史系统动作,得到当前系统状态;

当前用户对话结果生成模块,用于当前系统状态经对话策略扩散处理,得到初始系统回复动作;初始系统回复动作和当前系统状态形成初始当前用户对话,获取初始当前用户对话的价值;基于价值,更新对话策略扩散处理的扩散政策损失函数,当扩散政策损失函数输出值小于损失阈值时,输出当前系统动作,得到当前系统回复动作;当前系统回复动作经转化后,得到当前用户对话结果;

真实度判断模块,用于当前系统回复动作和当前系统状态形成当前对话信息,获取当前对话信息的真实度,判断真实度是否超过阈值;若超过,增加当前系统回复动作对应的对话策略扩散路径的优先执行值,保存对话策略路径至历史对话策略后,用于下一轮的用户对话生成;若未超过,降低当前系统回复动作对应的对话策略路径的优先执行值,保存对话策略扩散路径至历史对话策略后,用于下一轮的用户对话生成。

本实施例还提供一种用户对话的生成设备,包括处理器和存储器,其中,所述处理器执行所述存储器中保存的计算机程序时实现上述的用户对话的生成方法。

本实施例还提供一种计算机可读存储介质,用于存储计算机程序,其中,所述计算机程序被处理器执行时实现上述的用户对话的生成方法。

本实施例提供的一种用户对话的生成方法,通过将对话策略扩散处理当前系统状态后得到的初始系统回复动作,与当前系统状态结合形成初始当前用户对话,并获取初始当前用户对话的价值,基于价值构建对话策略扩散处理的损失函数,以此不断更新对话策略扩散处理,使对话策略扩散处理后输出的系统回复动作更符合真实的人类对话思维逻辑,更具有真实性;同时,为提升计算效率,并鼓励对话策略扩散处理提供更合适的对话策略路径,通过对比对话信息的的真实度与阈值的大小,来决定是否正强化对话策略扩散路径,从而引导对话策略扩散处理过程中能够灵活根据系统状态类型提供更好的对话策略路径,从而使得最终输出的用户对话结果真实性更高,符合真实人类对话的思维逻辑,提升对话任务结果的质量,提升用户对话体验感。

技术分类

06120116524271