计划引导的响应提供
文献发布时间:2023-06-19 11:52:33
背景技术
人工智能(AI)聊天机器人变得越来越流行,并且正在越来越多的场景中得到应用。聊天机器人被设计用于模拟人类话语,并且可以通过文本、语音、图像等与用户进行聊天。通常,聊天机器人可以识别由用户输入的消息内的语言内容或对消息应用自然语言处理,并进而向用户提供针对该消息的响应。
发明内容
提供本发明内容以便介绍一组概念,这组概念将在以下的具体实施方式中做进一步描述。本发明内容并非旨在标识所保护主题的关键特征或必要特征,也不旨在用于限制所保护主题的范围。
本公开的实施例提供了一种用于计划引导的响应提供的方法和装置。可以获得与对话中的先前话语相关联的上下文,所述上下文至少包括所述先前话语。可以获得与所述对话相对应的计划的当前计划表示。可以针对一组候选响应中的每个候选响应,基于所述候选响应和所述上下文来生成第一匹配表示,基于所述候选响应和所述当前计划表示来生成第二匹配表示,以及至少基于所述第一匹配表示和所述第二匹配表示来计算与所述候选响应相对应的匹配分数。可以在所述对话中提供所述一组候选响应中具有最高匹配分数的候选响应。
应当注意,以上一个或多个方面包括以下详细描述以及权利要求中具体指出的特征。下面的说明书及附图详细提出了所述一个或多个方面的某些说明性特征。这些特征仅仅指示可以实施各个方面的原理的多种方式,并且本公开旨在包括所有这些方面和其等同变换。
附图说明
以下将结合附图描述所公开的多个方面,这些附图被提供用以说明而非限制所公开的多个方面。
图1示出了根据本公开实施例的使用基于计划的匹配模型来获得匹配分数的示例性过程。
图2示出了根据本公开实施例的表示生成部分的示例性结构。
图3示出了根据本公开实施例的用于生成多级别自注意力表示的示例性过程。
图4示出了根据本公开实施例的用于生成上下文中的话语与计划的多级别互注意力表示的示例性过程。
图5示出了根据本公开实施例的匹配部分和聚合部分的示例性结构。
图6示出了根据本公开实施例的用于生成上下文中的话语与计划之间的匹配矩阵的示例性过程。
图7示出了根据本公开实施例的用于生成上下文与计划之间的匹配立方体以及上下文与计划之间的匹配向量的示例性过程。
图8示出了根据本公开实施例的用于生成上下文与计划之间的匹配立方体以及上下文与计划之间的匹配向量的另一示例性过程。
图9示出了根据本公开实施例的用于生成候选响应与计划之间的匹配向量的示例性过程。
图10示出了根据本公开实施例的用于生成匹配分数的示例性过程。
图11示出了根据本公开实施例的使用基于更新计划的匹配模型来获得匹配分数的示例性过程。
图12示出了根据本公开实施例的表示生成部分的示例性结构。
图13示出了根据本公开实施例的计划更新的示例性过程。
图14示出了根据本公开实施例的利用附加匹配矩阵来生成上下文与计划之间的基于更新机制的匹配立方体的示例性过程。
图15示出了根据本公开实施例的示例性聊天流。
图16示出了根据本公开实施例的生成对话的具体示例。
图17是根据本公开实施例的用于计划引导的响应提供的示例性方法的流程图。
图18示出了根据本公开实施例的用于计划引导的响应提供的示例性装置。
图19示出了根据本公开实施例的用于计划引导的响应提供的示例性装置。
具体实施方式
现在将参考多种示例性实施方式来讨论本公开。应当理解,这些实施方式的讨论仅仅用于使得本领域技术人员能够更好地理解并从而实施本公开的实施例,而并非教导对本公开的范围的任何限制。
通常,聊天机器人可以在与用户的会话中进行自动聊天。在本文中,“会话”可以指两个聊天参与者之间的时间连续对话。聊天机器人在进行自动聊天时,可以从用户处接收话语,并通过从其相关联的数据库中存储的一组候选响应中选择一个候选响应来进行回复。目前的聊天机器人在进行候选响应选择时,通常会考虑各个候选响应与对话中的已有话语之间的匹配,并向用户提供最匹配的候选响应。然而,人类在进行对话时,不仅会考虑对方之前说过的话,还会考虑自身的心理框架,并在心理框架的引导下进行对话。这种心理框架可以是希望通过对话来实现的目标、表达的立场或观点、做出的决策或判断,或者是对话要提及的事项的顺序等。目前的聊天机器人在与用户聊天的过程中缺乏这样的心理框架进行引导,因此其所提供的响应可能是前后矛盾的或者散乱的。
本公开的实施例提出使用计划来模拟这样的心理框架,并进一步提出一种用于计划引导的响应提供的方法和装置。在本文中,计划可以用于定义对话的全局规划或情节,例如希望通过对话来实现的目标、表达的立场或观点、做出的决策或判断,或者是对话要提及的事项的顺序等。计划可以有助于在对话中选择出更一致且更合理的响应,以及更好地控制对话。
在一个方面,本公开的实施例提出一种基于计划的匹配模型,其可以获得与对话中的先前话语相关联的上下文以及与对话相对应的计划,并基于候选响应与上下文之间的匹配以及候选响应与计划之间的匹配来在对话中提供响应。在本文中,先前话语可以指在对话中最新接收的话语,并且与先前话语相关联的上下文可以包括对话中的所有话语,且可以包括该先前话语本身。候选响应与上下文之间的匹配可以有助于选择出更适合于回复上下文的响应,候选响应与计划之间的匹配则可以有助于选择出与计划更为一致的响应。
在另一个方面,本公开的实施例提出在进行候选响应提供时,不仅考虑候选响应与上下文之间的匹配以及候选响应与计划之间的匹配,还考虑上下文与计划之间的匹配。上下文与计划之间的匹配可以用于帮助匹配模型“记住”计划中有多少信息已经在上下文中被传达,这将可以隐式地促进选择出与计划相一致的候选响应。
在另一个方面,本公开的实施例提出一种计划更新机制以及相应的基于更新计划的匹配模型。该计划更新机制可以基于上下文中已经传达的信息来更新计划的表示,从而获得计划的当前计划表示。相应地,基于更新计划的匹配模型可以基于候选响应与上下文之间的匹配和候选响应与当前计划表示之间的匹配来在对话中提供响应。根据本公开实施例的基于更新计划的匹配模型可以跟踪计划中的哪些信息已经在对话的上下文中被传达,并且对候选响应的选择将关注于计划中未传达的信息。这可以使得所选择出的候选响应可以传达计划中尚未在上下文中传达的信息,并且可以促使对话中的信息的顺序与计划中的信息的顺序一致。
在另一个方面,本公开实施例所提出的用于计划引导的响应提供的方法和装置不仅可以用于在聊天机器人与用户之间的对话中提供响应,即只提供对话中聊天机器人一方的话语,还可以提供对话中双方或更多方的话语。也就是说,本公开实施例所提出的用于计划引导的响应提供的方法和装置可以用于生成对话。可以基于预先确定的计划以及初始话语来生成对话,该初始话语可以是从用户处接收的、预先指定的、或者基于计划从语料库中检索出的。
根据本公开的实施例,在对话中进行候选响应提供时,可以获得与对话中的先前话语相关联的上下文、与对话相对应的计划以及一组候选响应。可以针对该组候选响应中的每个候选响应,基于该候选响应与上下文之间的匹配、该候选响应与上下文之间的匹配以及上下文与计划之间的匹配来对该候选响应进行评分,从而获得与该候选响应相对应的匹配分数。随后,可以在对话中提供该组候选响应中具有最高匹配分数的候选响应。
图1示出了根据本公开实施例的使用基于计划的匹配模型来获得匹配分数的示例性过程100。
在过程100中,基于计划的匹配模型110可以获得与对话中的先前话语相关联的上下文104,其可以包括对话中的所有话语,例如话语1 104-1、话语2 104-2、……、话语n104-n,其中话语i 104-i表示上下文中的第i个话语,并且话语n 104-n是先前话语。
基于计划的匹配模型110还可以获得与对话相对应的计划102。计划102可以包括例如至少一个句子、关键词或者实体,例如计划“收到录取通知书,她非常高兴。妈妈却因不舍女儿离家而高兴不起来”,计划“炫耀”,计划“故宫”等。可以依据基于计划的匹配模型110所应用的场景来确定计划102可以针对的对话参与者。例如,当基于计划的匹配模型110应用于聊天机器人与用户进行对话的场景时,计划可以只针对聊天机器人一方;而当基于计划的匹配模型110应用于生成对话的场景时,计划可以针对对话所涉及的各方。
在一些实施方式中,计划102可以是从一组候选计划中选择的。该组候选计划可以是针对预定义的话题而手动编写的,从语料库中提取的,或者是基于从语料库中检索出的与预定义话题相关的句子来生成的。例如,针对话题“考试没通过”,可以手动编写出诸如“不要难过,这次考试成绩不重要,继续努力”之类的计划。此外,可以从语料库中提取与话题“考试没通过”相关的计划。替代地,还可以从语料库中检索出的与话题“考试没通过”相关的句子,并通过对这些句子进行组合来生成计划。在一些实施方式中,在聊天机器人与用户进行对话的场景中,可以基于对话中的上下文,例如用户输入的话语,来确定计划。例如,如果用户提及故宫,则可以为聊天机器人确定与故宫有关的计划,例如“我去过故宫,有机会还要再去”。
基于计划的匹配模型110还可以从其所连接到的或所包含的数据库(未示出)中获得一组候选响应106,其可以包括多个候选响应。下面以所述一组候选响应106中的候选响应108为例说明用于获得该候选响应108的匹配分数118的示例性过程。
基于计划的匹配模型110可以包括例如表示生成部分112、匹配部分114、聚合部分116等。
通过表示生成部分112,可以生成计划102的多级别自注意力表示、上下文104中的各个话语i的多级别自注意力表示、候选响应108的多级别自注意力表示等。表示生成部分112可以进一步将这些多级别自注意力表示用于生成话语i-计划多级别互注意力表示、候选响应-话语i多级别互注意力表示、候选响应-计划多级别互注意力表示等。后面将结合图2来解释表示生成部分112的具体结构。
通过匹配部分114,可以基于表示生成部分112所生成的多级别自注意力表示和多级别互注意力表示来执行匹配过程,以生成上下文中的各个话语与计划之间的匹配矩阵、候选响应与上下文中的各个话语之间的匹配矩阵以及候选响应与计划之间的匹配矩阵。聚合部分116可以基于这些匹配矩阵来生成与候选响应108相对应的匹配分数118。后面将结合图5来解释匹配部分114和聚合部分116的具体结构。
图2示出了根据本公开实施例的表示生成部分200的示例性结构。表示生成部分200可以对应于图1中的表示生成部分112。
通过计划自注意力表示生成单元208,可以生成计划202的多级别自注意力表示。计划202可以对应于图1中的计划102。通过话语i自注意力表示生成单元210,可以生成话语i 204的多级别自注意力表示。话语i 204可以对应于图1中的话语i 104-i。通过候选响应自注意力表示生成单元212,可以生成候选响应206的多级别自注意力表示。候选响应206可以对应于图1中的候选响应108。后面将结合图3来解释生成计划202的多级别自注意力表示、话语i 204的多级别自注意力表示和候选响应206的多级别自注意力表示的具体过程。
计划202的多级别自注意力表示和话语i 204的多级别自注意力表示可以进一步用于在214处生成话语i-计划多级别互注意力表示。话语i 204的多级别自注意力表示和候选响应206的多级别自注意力表示可以进一步用于在216处生成候选响应-话语i多级别互注意力表示。计划202的多级别自注意力表示和候选响应206的多级别自注意力表示可以进一步用于在218处生成候选响应-计划多级别互注意力表示。后面将结合图4来解释生成话语i-计划多级别互注意力表示、候选响应-话语i多级别互注意力表示和候选响应-计划多级别互注意力表示的具体过程。
图3示出了根据本公开实施例的用于生成多级别自注意力表示的示例性过程300、310和320。
在过程300中,可以通过计划自注意力表示生成单元302来生成计划p的多级别自注意力表示。计划自注意力表示生成单元302可以对应于图2中的计划自注意力表示生成单元208。假定计划可以被表示为
P
其中,AttentiveBlock表示多级别注意力模块的输出,l∈{1,2,…,L}。所获得的
在过程310中,可以通过话语i自注意力表示生成单元312来生成上下文中c的各个话语的多级别自注意力表示。话语i自注意力表示生成单元312可以对应于图2中的话语i自注意力表示生成单元210。假定上下文可以被表示为c={u
其中,AttentiveBlock表示多级别注意力模块的输出,l∈{1,2,…,L}。所获得的
在过程320中,可以通过候选响应自注意力表示生成单元322来生成候选响应r的多级别自注意力表示。候选响应自注意力表示生成单元322可以对应于图2中的候选响应自注意力表示生成单元212。假定候选响应可以被表示为
R
其中,AttentiveBlock表示多级别注意力模块的输出,l∈{1,2,…,L}。所获得的
在生成了计划的多级别自注意力表示
图4示出了根据本公开实施例的用于生成上下文中的话语与计划的多级别互注意力表示的示例性过程400。可以获得计划的多级别自注意力表示
其中,AttentiveBlock表示多级别注意力模块的输出,l∈{0,1,…,L}。
可以通过与图4中的用于生成话语i-计划多级别互注意力表示的过程400相类似的过程来生成候选响应-话语i多级别互注意力表示
其中,AttentiveBlock表示多级别注意力模块的输出,l∈{0,1,…,L}。
同样地,可以通过与图4中的用于生成话语i-计划的多级别互注意力表示的过程400相类似的过程来生成候选响应-计划多级别互注意力表示
其中,AttentiveBlock表示多级别注意力模块的输出,l∈{0,1,…,L}。
通过结合图2至图4所描述的过程可以生成多级别自注意力表示,例如计划的多级别自注意力表示、上下文中的各个话语i的多级别自注意力表示和候选响应的多级别自注意力表示,以及多级别互注意力表示,例如话语i-计划多级别互注意力表示、候选响应-话语i多级别互注意力表示和候选响应-计划多级别互注意力表示。这些表示可以被组合成一表示集合。该表示集合可以被提供给基于计划的匹配模型中的匹配部分和聚合部分,例如图1中的匹配部分114和聚合部分116,从而获得与候选响应相对应的匹配分数。
图5示出了根据本公开实施例的匹配部分510和聚合部分520的示例性结构。匹配部分510和聚合部分的520可以分别对应于图1中的匹配部分114和聚合部分116。
可以获得表示集合502。表示集合502可以包括通过结合图2至图4所描述的过程来生成的多级别自注意力表示,例如计划的多级别自注意力表示
通过话语i-计划匹配矩阵生成单元512,可以生成话语i与计划之间的匹配矩阵。后面将结合图6来解释用于生成话语i与计划之间的匹配矩阵的具体过程。通过候选响应-话语i匹配矩阵生成单元514,可以生成候选响应与话语i之间的匹配矩阵。通过候选响应-计划匹配矩阵生成单元516,可以生成候选响应与计划之间的匹配矩阵。用于生成候选响应与话语i之间的匹配矩阵的过程和用于生成候选响应与计划之间的匹配矩阵的过程可以与用于生成话语i与计划之间的匹配矩阵的过程相类似。
通过上下文-计划匹配立方体生成单元522,可以基于话语i与计划之间的匹配矩阵来生成上下文与计划之间的匹配立方体。通过上下文-计划匹配立方体生成单元524,可以基于上下文与计划之间的匹配立方体来生成上下文与计划之间的匹配向量。后面将结合图7来解释用于生成上下文与计划之间的匹配立方体和匹配向量的具体过程。
通过候选响应-上下文匹配立方体生成单元526,可以基于候选响应与话语i之间的匹配矩阵来生成候选响应与上下文之间的匹配立方体。通过候选响应-上下文匹配向量生成单元528,可以基于候选响应与上下文之间的匹配立方体来生成候选响应与上下文之间的匹配向量。用于生成候选响应与上下文之间的匹配立方体的过程可以与用于生成上下文与计划之间的匹配立方体的过程相类似,并且用于生成候选响应与上下文之间的匹配向量的过程可以与用于生成上下文与计划之间的匹配向量的过程相类似。
通过候选响应-计划匹配向量生成单元530,可以基于候选响应与计划之间的匹配矩阵来生成候选响应与计划之间的匹配向量。后面将结合图9来解释用于生成候选响应与计划之间的匹配向量的具体过程。
通过匹配分数生成单元532,可以基于上下文与计划之间的匹配向量、候选响应与上下文之间的匹配向量以及候选响应与计划之间的匹配向量来生成与候选响应相对应的匹配分数534。后面将结合图10来解释用于生成匹配分数的具体过程。
图6示出了根据本公开实施例的用于生成上下文中的话语与计划之间的匹配矩阵的示例性过程600。可以通过使用话语i-计划匹配矩阵生成单元602来生成上下文中的话语与计划之间的匹配矩阵。话语i-计划匹配矩阵生成单元602可以对应于图5中的话语i-计划匹配矩阵生成单元512。
在过程600中,可以首先获得计划的多级别注意力表示
其中,l∈{0,1,…,L}。
接下来,可以对话语i与计划的各个级别处的自注意力匹配矩阵
还可以获得话语i-计划的多级别互注意力表示
其中,l∈{0,1,…,L}。
接下来,可以对话语i与计划的各个级别处的互注意力匹配矩阵
最后,在612处,可以对话语i与计划的自注意力匹配矩阵
通过上述公式(11)、(13)和(14)中的级联操作,
可以通过与用于生成话语i与计划之间的匹配矩阵的过程相类似的过程来生成候选响应与话语i之间的匹配矩阵
图7示出了根据本公开实施例的用于生成上下文与计划之间的匹配立方体以及上下文与计划之间的匹配向量的示例性过程700。
在过程700中,可以首先获得上下文中的各个话语,例如话语1 u
随后,通过上下文-计划匹配立方体生成单元702,可以基于匹配矩阵
通过上下文-计划匹配向量生成单元704,可以基于上下文与计划之间的匹配立方体Q
可以通过与图7中的过程700相类似的过程来生成候选响应与上下文之间的匹配立方体以及候选响应与上下文之间的匹配向量。例如,可以基于候选响应与上下文中的各个话语之间的匹配矩阵
图8示出了根据本公开实施例的用于生成上下文与计划之间的匹配立方体以及上下文与计划之间的匹配向量的另一示例性过程800。在对话过程中,上下文中的话语是逐轮增加的。因此,可以通过逐轮更新的方式来生成上下文与计划之间的匹配立方体、匹配向量等。例如,可以基于上下文中的最新话语,即先前话语,来生成附加匹配矩阵,并通过利用该附加匹配矩阵更新与上下文中位于先前话语之前的一个话语相关联的先前匹配立方体来生成上下文与计划之间的匹配立方体,所得到的匹配立方体可以进而用于生成匹配向量。
在过程800中,可以首先获得与上下文中位于先前话语,例如话语n u
还可以获得计划的多级别自注意力表示
在获得了对话中的先前话语,例如话语n u
接下来,在802处,可以基于话语n的多级别自注意力表示
在804处,可以对先前匹配立方体
在806处,可以用与图7的704处的上下文-计划匹配向量生成相类似的方式,基于上下文与计划之间的匹配立方体Q
过程800可以随着对话中新的话语的出现而不断迭代地执行,从而可以不断地更新匹配立方体并进而生成匹配向量。
图9示出了根据本公开实施例的用于生成候选响应与计划之间的匹配向量的示例性过程900。
可以获得候选响应与计划之间的匹配矩阵M
通过候选响应-计划匹配向量生成单元902,可以基于候选响应与计划之间的匹配矩阵M
在生成了上下文与计划之间的匹配向量f(c,p)、候选响应与上下文之间的匹配向量f(r,c)以及候选响应与计划之间的匹配向量f(r,p)之后,可以基于这些匹配向量来生成与候选响应相对应的匹配分数。图10示出了根据本公开实施例的用于生成匹配分数的示例性过程1000。
在过程1000中,可以首先获得上下文与计划之间的匹配向量f(c,p)、候选响应与上下文之间的匹配向量f(r,c)以及候选响应与计划之间的匹配向量f(r,p)。
通过匹配分数生成单元1002,可以基于上下文与计划之间的匹配向量f(c,p)、候选响应与上下文之间的匹配向量f(r,c)以及候选响应与计划之间的匹配向量f(r,p)来生成匹配分数g(r,c,p)。匹配分数生成单元1002可以对应于图5中的匹配分数生成单元532。在一种实施方式中,可以先通过对上下文与计划之间的匹配向量f(c,p)、候选响应与上下文之间的匹配向量f(r,c)以及候选响应与计划之间的匹配向量f(r,p)进行组合1004,例如级联,来生成综合向量f(r,c,p),如以下公式所示:
所生成的综合向量f(r,c,p)可以作为输入提供给具有Sigmoid激活函数的多层感知器(MLP)1006,以生成与候选响应相对应的匹配分数g(r,c,p),如以下公式所示:
g(r,c,p)=sigmoid(W
其中,W和b是可训练的参数。
可以基于训练数据集
其中,g(r,c,p)是与候选响应r相对应的匹配分数,其可以例如通过上文结合图1至图10所描述的过程来获得。
上文结合图1至图10描述了根据本公开实施例的用于生成与候选响应相对应的匹配分数的过程。该过程可以包括生成候选响应与上下文之间的匹配表示,例如候选响应与上下文中的各个话语之间的匹配矩阵、候选响应与上下文之间的匹配立方体以及候选响应与上下文之间的匹配向量。候选响应与上下文之间的匹配表示可以用于计算候选响应与上下文之间的相关性,从而有助于选择出更适合于回复上下文的响应。
根据本公开实施例的用于生成与候选响应相对应的匹配分数的过程还可以包括生成候选响应与计划之间的匹配表示,例如候选响应与计划之间的匹配矩阵以及候选响应与计划之间的匹配向量。候选响应与计划之间的匹配表示可以用于计算候选响应与计划之间的相关性,从而有助于选择出与计划更为一致的响应。
根据本公开实施例的用于生成与候选响应相对应的匹配分数的过程还可以包括生成上下文与计划之间的匹配表示,例如上下文中的各个话语与计划之间的匹配矩阵、上下文与计划之间的匹配立方体和上下文与计划之间的匹配向量。上下文与计划之间的匹配表示可以用于帮助匹配模型“记住”计划中有多少信息已经在上下文中被传达,这将可以隐式地促进选择出与计划相一致的候选响应。
应当理解,上文结合图1至图10描述的用于生成与候选响应相对应的匹配分数的过程仅是示例性的。根据实际应用需求,用于生成匹配分数的过程可以包括任意其他步骤,并且可以包括更多或更少的步骤。例如,尽管在以上描述中,与候选响应相对应的匹配分数是基于候选响应与上下文之间的匹配表示、候选响应与计划之间的匹配表示和上下文与计划之间的匹配表示三者来生成的,但是在一些实施例中,可以仅基于候选响应与上下文之间的匹配表示、上下文与计划之间的匹配表示和上下文与计划之间的匹配表示中的一者或两者来生成与候选响应相对应的匹配分数。例如,可以仅基于候选响应与上下文之间的匹配表示和候选响应与计划之间的匹配表示来生成与候选响应相对应的匹配分数。
为了更有效地跟踪计划中的哪些信息已经在对话的上下文中被传达,从而使得对候选响应的选择关注于计划中尚未在上下文中传达的信息,本公开的实施例提出一种计划更新机制以及相应的基于更新计划的匹配模型。图11示出了根据本公开实施例的使用基于更新计划的匹配模型来获得匹配分数的示例性过程1100。
在过程1100中,基于更新计划的匹配模型1110可以获得与对话相对应的计划1102。基于更新计划的匹配模型1110还可以获得与对话中的先前话语相关联的上下文1104,其可以包括该先前话语所位于的会话中的所有话语,例如话语1 1104-1、话语21104-2、……、话语n 1104-n,其中话语i 1104-i表示上下文文中的第i个话语,并且话语n1104-n可以是先前话语。此外,基于更新计划的匹配模型1110还可以从其所连接到的或所包含的数据库(未示出)中获得一组候选响应1106,其可以包括多个候选响应。下面以所述一组候选响应1106中的候选响应1108为例说明用于获得该候选响应1108的匹配分数1120的示例性过程。
基于更新计划的匹配模型1110可以包括例如表示生成部分1112、匹配部分1114、聚合部分1116等。
通过表示生成部分1112,可以生成上下文1104中的各个话语i的多级别自注意力表示和候选响应1108的多级别自注意力表示。表示生成部分1112可以包括计划更新单元1118。通过计划更新单元1118,可以生成计划1102的基于更新机制的多级别自注意力表示。表示生成部分1112可以进一步将这些多级别自注意力表示用于生成话语i-计划的基于更新机制的多级别互注意力表示、候选响应-话语i多级别互注意力表示和候选响应-计划的基于更新机制的多级别互注意力表示。后面将结合图12来解释表示生成部分1112的具体结构。
通过匹配部分1114,可以基于表示生成部分1112所生成的多级别自注意力表示和多级别互注意力表示来执行匹配过程,以生成上下文中的各个话语与计划之间的基于更新机制的匹配矩阵、候选响应与上下文中的各个话语之间的匹配矩阵以及候选响应与计划之间的基于更新机制的匹配矩阵。聚合部分1116可以基于这些匹配矩阵来生成与候选响应1108相对应的匹配分数1120。
图12示出了根据本公开实施例的表示生成部分1200的示例性结构。表示生成部分1200可以对应于图11中的表示生成部分1112。
在对话开始时,可以首先通过计划自注意力生成单元1208,基于计划1202来生成计划的原始多级别自注意力表示
通过话语i自注意力生成单元1210,可以生成话语i 1204的多级别自注意力表示
通过候选响应自注意力生成单元1212,可以生成候选响应1206的多级别自注意力表示
通过计划更新单元1214,可以基于话语i自注意力生成单元1210生成的话语i的多级别自注意力,对计划自注意力生成单元1208生成的计划的多级别自注意力表示进行更新。计划更新单元1214可以对应于图11中的计划更新单元1118。图13示出了根据本公开实施例的计划更新的示例性过程1300。图13以级别l处的自注意力表示为例来解释计划更新的过程。
在对话开始时,对话中的上下文可以包括话语1。此外,该对话可以具有相对应的计划。可以获得话语1的自注意力表示
根据本公开的实施例,可以基于对话中的上下文中的各个话语,逐轮更新计划的自注意力表示。例如,可以基于话语1的自注意力表示
在一种实施方式中,在基于话语i的自注意力表示
其中,j表示话语i中的第j个词,并且k表示计划中的第k个词。
随后,可以通过对
其中,
在获得了向量
应当理解,每基于一个话语来更新计划的自注意力表示时,都将降低该话语中的信息在计划的先前自注意力表示中的权重,从而产生持续的衰减效应。在上下文包括n个话语的情况下,可以执行n次更新操作,每次操作都可以获得计划的相应表示。这些表示可以构成计划的基于更新机制的多级别自注意力表示,包括例如
返回参考图12,应当理解,计划1202仅在生成计划的原始多级别自注意力表示
计划的基于更新机制的多级别自注意力表示
通过话语i自注意力生成单元1210生成的话语i的多级别自注意力表示
通过计划自注意力生成单元1208生成的计划的基于更新机制的多级别自注意力表示
通过图11中的表示生成部分1112或图12中的表示生成部分1200可以生成多级别自注意力表示,例如计划的基于更新机制的多级别自注意力表示、上下文中的各个话语的多级别自注意力表示和候选响应的多级别自注意力表示,以及多级别互注意力表示,例如话语i-计划的基于更新机制的多级别互注意力表示、候选响应-话语i多级别互注意力表示和候选响应-计划的基于更新机制的多级别互注意力表示。这些表示可以被组合成一表示集合。该表示集合可以被提供给基于更新计划的匹配模型中的匹配部分和聚合部分,例如图11中的匹配部分1114和聚合部分1116,从而获得与候选响应相对应的匹配分数。
返回参考图11,匹配部分1114可以具有与图5中的匹配部分510的结构相类似的结构。例如,匹配部分1114可以包括话语i与计划之间的基于更新机制的匹配矩阵生成单元、候选响应与话语i之间的匹配矩阵生成单元以及候选响应与计划之间的基于更新机制的匹配矩阵生成单元。
候选响应与话语i之间的匹配矩阵生成单元可以用于生成候选响应与话语i之间的匹配矩阵
话语i与计划之间的基于更新机制的匹配矩阵生成单元可以用于生成话语i与计划之间的基于更新机制的匹配矩阵
其中,l∈{0,1,…,L}。
可以对话语i与计划的各个级别处的基于更新机制的自注意力匹配矩阵
类似地,可以例如通过以下公式来表示对话语i与计划的互注意力表示进行的相关性运算,例如点积运算,该运算可以获得话语i与计划的级别l处的基于更新机制的互注意力匹配矩阵
可以对话语i与计划的各个级别处的基于更新机制的互注意力匹配矩阵
随后,可以对话语i与计划的基于更新机制的自注意力匹配矩阵
候选响应与计划之间的基于更新机制的匹配矩阵生成单元可以用于生成候选响应与计划之间的基于更新机制的匹配矩阵。在一种实施方式中,可以基于候选响应的多级别自注意力表示
通过上述过程生成的话语i与计划之间的基于更新机制的匹配矩阵
返回参考图11,聚合部分1116可以具有与图5中的聚合部分520的结构相类似的结构。例如,聚合部分1116可以包括上下文与计划之间的基于更新机制的匹配立方体生成单元、上下文与计划之间的基于更新机制的匹配向量生成单元、候选响应与上下文之间的匹配立方体生成单元、候选响应与上下文之间的匹配向量生成单元、候选响应与计划之间的基于更新机制的匹配向量生成单元以及基于更新机制的匹配分数生成单元。
候选响应与上下文之间的匹配立方体生成单元和候选响应与上下文之间的匹配向量生成单元可以用于生成候选响应与上下文之间的匹配立方体Q
候选响应与计划之间的基于更新机制的匹配向量生成单元可以用于生成候选响应与计划之间的基于更新机制的匹配向量f′(r,p)。可以基于候选响应与计划之间的基于更新机制的匹配矩阵
上下文与计划之间的基于更新机制的匹配立方体生成单元和上下文与计划之间的基于更新机制的匹配向量生成单元可以用于生成上下文与计划之间的基于更新机制的匹配立方体Q′
在对话过程中,上下文中的话语是逐轮增加的。因此,可以通过逐轮更新的方式来生成上下文与计划之间的匹配立方体、匹配向量等。例如,可以基于上下文中的最新话语,即先前话语,来生成附加匹配矩阵,并通过利用该附加匹配矩阵更新与上下文中位于先前话语之前的一个话语相关联的先前匹配立方体来生成上下文与计划之间的基于更新机制的匹配立方体,所得到的匹配立方体可以进而用于生成匹配向量。图14示出了根据本公开实施例的利用附加匹配矩阵来生成上下文与计划之间的基于更新机制的匹配立方体的示例性过程1400。
在过程1400中,可以首先获得与上下文中位于先前话语,例如话语n u
在获得了对话中的先前话语,例如话语n u
还可以获得计划的与先前话语相对应的多级别自注意力表示
随后,可以基于话语n的多级别自注意力表示
接下来,在1402处,可以基于话语n的多级别自注意力表示
在1404处,可以对先前匹配立方体
在获得了上下文与计划之间的基于更新机制的匹配向量f′(c,p)、候选响应与上下文之间的匹配向量f(r,c)以及候选响应与计划之间的基于更新机制的匹配向量f′(r,p)之后,可以基于这些匹配向量来生成与候选响应相对应的基于更新机制的匹配分数g′(r,c,p)。
用于生成基于更新机制的匹配分数g′(r,c,p)的过程可以与图10中的用于生成匹配分数的过程1000相类似。例如,可以先通过对上下文与计划之间的基于更新机制的匹配向量f′(c,p)、候选响应与上下文之间的匹配向量f(r,c)以及候选响应与计划之间的基于更新机制的匹配向量f′(r,p)进行组合,例如级联,来生成综合向量f′(r,c,p),如以下公式所示:
所生成的综合向量f′(r,c,p)可以作为输入提供给具有Sigmoid激活函数的多层感知器(MLP),以生成与候选响应相对应的基于更新机制的匹配分数g′(r,c,p),如以下公式所示:
g′(r,c,p)=sigmoid(W′
其中,W′
可以基于训练数据集来训练根据本公开实施例的基于更新计划的匹配模型,例如图11中的基于更新计划的匹配模型1100。该训练数据集可以是与用于训练基于计划的匹配模型的训练数据集相同的训练数据集,即训练数据集
其中,g′(r,c,p)是与候选响应r相对应的基于更新机制的匹配分数,其可以例如通过上文结合图11至图14所描述的过程来获得。
上文结合图11至图14描述了根据本公开实施例的用于使用基于更新计划的匹配模型来生成与候选响应相对应的匹配分数的过程。该基于更新计划的匹配模型可以跟踪计划中的哪些信息已经在对话的上下文中被传达,并且对候选响应的选择将关注于计划中未被传达的信息。这可以使得所选择出的候选响应可以传达计划中尚未在上下文中传达的信息,并且可以促使对话中的信息的顺序与计划的顺序一致。
应当理解,上文结合图11至图14描述的用于生成与候选响应相对应的基于更新机制的匹配分数的过程仅是示例性的。根据实际应用需求,用于生成基于更新机制的匹配分数的过程可以包括任意其他步骤,并且可以包括更多或更少的步骤。例如,尽管在上文中,与候选响应相对应的基于更新机制的匹配分数是基于候选响应与上下文之间的匹配表示、候选响应与计划之间的基于更新机制的匹配表示和上下文与计划之间的基于更新机制的匹配表示三者来生成的,但是在一些实施例中,可以仅基于候选响应与上下文之间的匹配表示、候选响应与计划之间的基于更新机制的匹配表示和上下文与计划之间的基于更新机制的匹配表示中的一者或两者来生成与候选响应相对应的基于更新机制的匹配分数。例如,可以仅基于候选响应与上下文之间的匹配表示和候选响应与计划之间的基于更新机制的匹配表示来生成与候选响应相对应的基于更新机制的匹配分数。
图15示出了根据本公开实施例的示例性聊天流1500。聊天流1500可以发生在聊天机器人与用户之间。该聊天机器人可以包括根据本公开实施例的基于计划的匹配模型或基于更新计划的匹配模型。
在1502处,可以获得针对聊天机器人的计划,例如“我不想说话,请你不要再打扰我”。
在1504处,用户可以输入初始话语“和我聊会儿天吧”。
在1506处,聊天机器人可以通过根据本公开实施例的计划引导的响应提供过程来输出响应“我要听你说你不想和我聊天”。
在1508处,用户可以输入话语“你不知道我有多想和你聊天”。
在1510处,聊天机器人可以通过根据本公开实施例的计划引导的响应提供过程来输出响应“当然可以,只要你觉得好就可以”。
在1512处,用户可以输入话语“和你聊天我很开心啊”。
在1514处,聊天机器人可以通过根据本公开实施例的计划引导的响应提供过程来输出响应“我们下次再聊吧”。
从聊天流1500中可以看出,尽管用户输入的三轮话语均传达出想和聊天机器人聊天的信息,但聊天机器人输出的三轮响应所传达的信息均是不想聊天,这与1502处的计划“我不想说话,请你不要再打扰我”是一致的。
根据本公开实施例的基于计划的匹配模型或基于更新计划的匹配模型不仅可以用于在聊天机器人与用户之间的对话中提供响应,即只提供对话中聊天机器人一方的话语,还可以提供对话中双方或更多方的话语。也就是说,根据本公开实施例的基于计划的匹配模型或基于更新计划的匹配模型可以用于生成对话。图16示出了根据本公开实施例的生成对话的具体示例1600。
示例1600可以包括计划“露西不喜欢回家。因为担心露西的安全,汤姆决定晚点回家。汤姆是露西最好的朋友”。该计划可以包括三项关键信息,例如“不喜欢回家”、“晚点回家”和“最好的朋友”。
示例1600还可以包括初始话语“妈妈催我回去了”。在一种实施方式中,初始话语可以是预先指定的。例如,可以手动编写与计划相匹配的初始话语。在另一种实施方式中,初始话语可以是基于计划从语料库中检索出的。例如,可以将从含有电影对白的数据库中检索出的与计划相匹配的话语作为初始话语。在确定初始话语时,还可以同时确定该初始话语的讲话者,例如汤姆。
可以通过根据本公开实施例的计划引导的响应提供过程,基于计划和初始话语来提供对话中的后续话语。第一轮话语可以例如是露西说的“再坐一会吧”。该轮话语所表达的信息与计划中的关键信息“不喜欢回家”是一致的。第二轮话语可以例如是汤姆说的“好的,露西,我留下来”。该轮话语所表达的信息与计划中的关键信息“晚点回家”是一致的。第三轮话语可以例如是露西说的“汤姆,我愿意和你在一起”。第四轮话语可以例如是汤姆说的“我是你最好的朋友”。第三轮话语和第四轮话语所表达的信息与计划中的关键信息“最好的朋友”是一致的。
从示例1600中可以看出,根据本公开的实施例提供的第一轮至第四轮话语传达了计划中的所有关键信息,并且第一轮至第四轮话语中的信息的顺序与计划中的信息的顺序是一致的。
图17是根据本公开实施例的用于计划引导的响应提供的示例性方法1700的流程图。
在步骤1710处,可以获得与对话中的先前话语相关联的上下文,所述上下文至少包括所述先前话语。
在步骤1720处,可以获得与所述对话相对应的计划的当前计划表示。
在步骤1730处,可以针对一组候选响应中的每个候选响应,基于所述候选响应和所述上下文来生成第一匹配表示,基于所述候选响应和所述当前计划表示来生成第二匹配表示,以及至少基于所述第一匹配表示和所述第二匹配表示来计算与所述候选响应相对应的匹配分数。
在步骤1740处,可以在所述对话中提供所述一组候选响应中具有最高匹配分数的候选响应。
在一种实施方式中,方法1700还可以包括:基于所述上下文和所述当前计划表示来生成第三匹配表示。所述计算匹配分数可以包括:基于所述第一匹配表示、所述第二匹配表示和所述第三匹配表示来计算所述匹配分数。
所述生成第三匹配表示可以包括:基于所述先前话语和所述当前计划表示来生成附加匹配表示;以及通过利用所述附加匹配表示更新先前匹配表示来获得所述第三匹配表示,所述先前匹配表示是基于与所述先前话语之前的一个话语相关联的先前上下文和所述当前计划表示来生成的。
在一种实施方式中,所述获得当前计划表示可以包括:基于所述先前话语,将与所述先前话语相对应的先前计划表示更新为所述当前计划表示。所述更新可以包括:降低所述先前话语中的信息在所述先前计划表示中的权重。
方法1700还可以包括:基于所述上下文和所述先前计划表示来生成第三匹配表示。所述计算匹配分数可以包括:基于所述第一匹配表示、所述第二匹配表示和所述第三匹配表示来计算所述匹配分数。
所述生成第三匹配表示可以包括:基于所述先前话语和所述先前计划表示来生成附加匹配表示;以及通过利用所述附加匹配表示更新先前匹配表示来获得所述第三匹配表示,所述先前匹配表示是基于与所述先前话语之前的一个话语相关联的先前上下文和相对应的计划表示来生成的。
在一种实施方式中,所述对话中的初始话语可以是从用户处接收的、预先指定的、或者基于所述计划从语料库中检索出的。
在一种实施方式中,所述计划可以包括至少一个句子。
在一种实施方式中,所述计划可以是基于所述上下文来确定的。
在一种实施方式中,所述计划可以是从一组候选计划中选择的。所述一组候选计划可以是从语料库中提取的,或者是基于从语料库中检索出的与预定义话题相关的句子来生成的。
应当理解,方法1700还可以包括根据上述本公开的实施例的用于计划引导的响应提供的任何步骤/处理。
图18示出了根据本公开实施例的用于计划引导的响应提供的示例性装置1800。装置1800可以包括:上下文获得模块1810,用于获得与对话中的先前话语相关联的上下文,所述上下文至少包括所述先前话语;计划表示获得模块1820,用于获得与所述对话相对应的计划的当前计划表示;计算模块1830,用于针对一组候选响应中的每个候选响应,基于所述候选响应和所述上下文来生成第一匹配表示,基于所述候选响应和所述当前计划表示来生成第二匹配表示,以及至少基于所述第一匹配表示和所述第二匹配表示来计算与所述候选响应相对应的匹配分数;以及响应提供模块1840,用于在所述对话中提供所述一组候选响应中具有最高匹配分数的候选响应。
在一种实施方式中,装置1800还可以包括:第三匹配表示生成模块,用于基于所述上下文和所述当前计划表示来生成第三匹配表示。所述计算模块还可以被配置为:基于所述第一匹配表示、所述第二匹配表示和所述第三匹配表示来计算所述匹配分数。
所述第三匹配表示生成模块还可以被配置为:基于所述先前话语和所述当前计划表示来生成附加匹配表示;以及通过利用所述附加匹配表示更新先前匹配表示来获得所述第三匹配表示,所述先前匹配表示是基于与所述先前话语之前的一个话语相关联的先前上下文和所述当前计划表示来生成的。
在一种实施方式中,所述计划表示获得模块1820还可以被配置为:基于所述先前话语,将与所述先前话语相对应的先前计划表示更新为所述当前计划表示。所述更新可以包括:降低所述先前话语中的信息在所述先前计划表示中的权重。
装置1800还可以包括:第三匹配表示生成模块,用于基于所述上下文和所述先前计划表示来生成第三匹配表示。所述计算模块还可以被配置为:基于所述第一匹配表示、所述第二匹配表示和所述第三匹配表示来计算所述匹配分数。
所述第三匹配表示生成模块还可以被配置为:基于所述先前话语和所述先前计划表示来生成附加匹配表示;以及通过利用所述附加匹配表示更新先前匹配表示来获得所述第三匹配表示,所述先前匹配表示是基于与所述先前话语之前的一个话语相关联的先前上下文和相对应的计划表示来生成的。
应当理解,装置1800还可以包括根据上述本公开的实施例的被配置用于计划引导的响应提供的任何其他模块。
图19示出了根据本公开实施例的用于计划引导的响应提供的示例性装置1900。
装置1900可以包括至少一个处理器1910。装置1900还可以包括与处理器1910连接的存储器1920。存储器1920可以存储计算机可执行指令,当所述计算机可执行指令被执行时,使得处理器1910执行根据上述本公开的实施例的用于计划引导的响应提供的方法的任何操作。
本公开的实施例可以实施在非暂时性计算机可读介质中。该非暂时性计算机可读介质可以包括指令,当所述指令被执行时,使得一个或多个处理器执行根据上述本公开实施例的用于计划引导的响应提供的方法的任何操作。
应当理解,以上描述的方法中的所有操作都仅仅是示例性的,本公开并不限制于方法中的任何操作或这些操作的顺序,而是应当涵盖在相同或相似构思下的所有其他等同变换。
还应当理解,以上描述的装置中的所有模块都可以通过各种方式来实施。这些模块可以被实施为硬件、软件、或其组合。此外,这些模块中的任何模块可以在功能上被进一步划分成子模块或组合在一起。
已经结合各种装置和方法描述了处理器。这些处理器可以使用电子硬件、计算机软件或其任意组合来实施。这些处理器是实施为硬件还是软件将取决于具体的应用以及施加在系统上的总体设计约束。作为示例,本公开中给出的处理器、处理器的任意部分、或者处理器的任意组合可以实施为微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、状态机、门逻辑、分立硬件电路、以及配置用于执行在本公开中描述的各种功能的其他适合的处理部件。本公开给出的处理器、处理器的任意部分、或者处理器的任意组合的功能可以实施为由微处理器、微控制器、DSP或其他适合的平台所执行的软件。
软件应当被广泛地视为表示指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、运行线程、过程、函数等。软件可以驻留在计算机可读介质中。计算机可读介质可以包括例如存储器,存储器可以例如为磁性存储设备(如,硬盘、软盘、磁条)、光盘、智能卡、闪存设备、随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、寄存器或者可移动盘。尽管在本公开给出的多个方面中将存储器示出为是与处理器分离的,但是存储器也可以位于处理器内部(如,缓存或寄存器)。
以上描述被提供用于使得本领域任何技术人员可以实施本文所描述的各个方面。这些方面的各种修改对于本领域技术人员是显而易见的,本文限定的一般性原理可以应用于其他方面。因此,权利要求并非旨在被局限于本文示出的方面。关于本领域技术人员已知或即将获知的、对本公开所描述各个方面的元素的所有结构和功能上的等同变换都将由权利要求所覆盖。
- 计划引导的响应提供
- 工作计划支持信息提供方法和工作计划支持信息提供设备