多轮对话场景下的话术推荐方法和装置
技术领域
本说明书一个或多个实施例涉及计算机领域,尤其涉及多轮对话场景下的话术推荐方法和装置。
背景技术
客服作为企业直接接触用户和消费者的重要环节,很大程度上影响着企业的销售业绩、服务质量和企业形象。随着云计算和人工智能技术的发展,原先的客服工作通过在线客服、客服机器人等实现分流和效率提升。在一些售前咨询、高转化需求场景下,使用客服机器人风险比较高,可以采用人机协作的方式,由机器根据用户问句向人工客服推荐话术,人工客服可以对推荐的话术进行编辑修改或者直接发送,不仅能够提升回复效率,还能减少企业培训成本,把企业的业务经验和销售经验通过实时推荐的方式辅助客服人员,达到知识传递的效果。
在人机协作的场景下,对于用户而言,他默认聊天的对象是客服人员,对话内容会更加随意和口语化,通过多轮交互才能获取用户完整意图;对于客服而言,在与用户对话过程中,需要机器推荐的内容就是客服准备回复,需要做到想客服之所想。对于多轮次问答,机器人往往无法抓住聊天中的有用信息,而这些信息作为整个聊天中的上下文,对于机器人理解对话有着至关重要的作用。
因此,如何有效地利用上下文信息辅助人机对话系统生成相应推荐话术,是一个亟需解决的问题。
发明内容
本说明书一个或多个实施例描述了一种多轮对话场景下的话术推荐方法和装置,能够有效地利用上下文信息辅助人机对话系统生成相应推荐话术。
第一方面,提供了一种多轮对话场景下的话术推荐方法,方法包括:
针对当前用户问句,获取所述当前用户问句的上文信息;
将所述当前用户问句和所述当前用户问句的上文信息作为述求信息,在预先建立的知识库中做相似检索,得到预设数目个答案,及每个答案对应的标准问题;其中,所述知识库包含多组问答对,每组问答对包括对应的标准问题和答案;
将所述预设数目个答案中的各答案、各答案对应的标准问题、各句所述述求信息,输入到预先训练的上下文模型中,通过所述上下文模型的输出得到各答案与所述当前用户问句的匹配分数;
根据各答案与所述当前用户问句的匹配分数由高到低的排序,从所述各答案中选择部分答案;
将所述部分答案作为推荐话术,推荐给客服。
在一种可能的实施方式中,所述通过所述上下文模型的输出得到各答案与所述当前用户问句的匹配分数之前,所述方法还包括:
从用户和客服的对话日志中,获取多组一类训练样本;其中,每组一类训练样本包括回答和作为所述述求信息的所述回答的上文信息;
根据所述回答,在预先建立的所述知识库中做相似检索,得到所述回答的相似答案,及所述相似答案对应的标准问题;将所述回答、所述相似答案对应的标准问题和所述回答的上文信息,作为一组二类训练样本。
进一步地,所述通过所述上下文模型的输出得到各答案与所述当前用户问句的匹配分数之前,所述方法还包括:
基于多组所述一类训练样本,对所述上下文模型进行预训练;
基于多组所述二类训练样本,对预训练后的所述上下文模型进行微调。
进一步地,所述通过所述上下文模型的输出得到各答案与所述当前用户问句的匹配分数之前,所述方法还包括:
根据所述回答,在预先建立的所述知识库中做相似检索,若无法得到所述回答的相似答案,及所述相似答案对应的标准问题,则将所述回答、预先设定的默认标准问题和所述回答的上文信息,作为一组二类训练样本;
基于多组所述二类训练样本,对所述上下文模型进行训练。
在一种可能的实施方式中,所述通过所述上下文模型的输出得到各答案与所述当前用户问句的匹配分数,包括:
根据所述预设数目个答案中的目标答案包含的各词对应的词向量,得到所述预设数目个答案中的目标答案对应的句子的初始向量表达;根据所述目标答案对应的知识点标题包含的各词对应的词向量,得到所述知识点标题对应的句子的初始向量表达;根据各句所述述求信息包含的各词对应的词向量,得到各句所述述求信息对应的句子的初始向量表达;
根据各句述求信息对应的句子的初始向量表达和所述目标答案对应的句子的初始向量表达二者之间的交互信息,以及各句述求信息对应的句子的初始向量表达和所述知识点标题对应的句子的初始向量表达二者之间的交互信息,得到各句述求信息对应的第一交互矩阵;
根据各句述求信息对应的所述第一交互矩阵,得到所述目标答案与所述当前用户问句的匹配分数。
进一步地,所述根据各句述求信息对应的所述第一交互矩阵,得到所述目标答案与所述当前用户问句的匹配分数之前,所述方法还包括:
将所述目标答案对应的句子的初始向量表达作为自注意力模型的输入,通过所述自注意力模型的输出得到所述目标答案对应的句子的二次向量表达;将所述知识点标题对应的句子的初始向量表达作为所述自注意力模型的输入,通过所述自注意力模型的输出得到所述知识点标题对应的句子的二次向量表达;将各句所述述求信息对应的句子的初始向量表达作为自注意力模型的输入,通过所述自注意力模型的输出得到各句所述述求信息对应的句子的二次向量表达;
根据各句所述述求信息对应的句子的二次向量表达和所述目标答案对应的句子的二次向量表达二者之间的交互信息,以及各句所述述求信息对应的句子的二次向量表达和所述知识点标题对应的句子的二次向量表达二者之间的交互信息,得到各句所述述求信息对应的第二交互矩阵;
根据各句所述述求信息对应的所述第一交互矩阵,得到所述目标答案与所述当前用户问句的匹配分数,包括:
根据各句所述述求信息对应的所述第一交互矩阵和所述第二交互矩阵,得到所述目标答案与所述当前用户问句的匹配分数。
进一步地,所述根据各句所述述求信息对应的所述第一交互矩阵和所述第二交互矩阵,得到所述目标答案与所述当前用户问句的匹配分数,包括:
将各句所述述求信息对应的所述第一交互矩阵和所述第二交互矩阵经过卷积和池化,得到各句所述述求信息对应的句子的三次向量表达;
将各句所述述求信息对应的句子的三次向量表达作为序列模型的输入,得到所述目标答案与所述当前用户问句的匹配分数。
进一步地,所述序列模型为门控循环神经网络(gated recurrent unit,GRU)模型或长短期记忆网络(long short-term memory network,LSTM)模型。
第二方面,提供了一种多轮对话场景下的话术推荐装置,装置包括:
第一获取单元,用于针对当前用户问句,获取所述当前用户问句的上文信息;
第一检索单元,用于将所述当前用户问句和所述第一获取单元获取的所述当前用户问句的上文信息作为述求信息,在预先建立的知识库中做相似检索,得到预设数目个答案,及每个答案对应的标准问题;其中,所述知识库包含多组问答对,每组问答对包括对应的标准问题和答案;
匹配单元,用于将所述第一检索单元得到的预设数目个答案中的各答案、各答案对应的标准问题、各句所述述求信息,输入到预先训练的上下文模型中,通过所述上下文模型的输出得到各答案与所述当前用户问句的匹配分数;
选择单元,用于根据所述匹配单元得到的各答案与所述当前用户问句的匹配分数由高到低的排序,从所述第一检索单元得到的各答案中选择部分答案;
推荐单元,用于将所述选择单元选择的部分答案作为推荐话术,推荐给客服。
第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
通过本说明书实施例提供的方法和装置,首先针对当前用户问句,获取所述当前用户问句的上文信息;接着将所述当前用户问句和所述当前用户问句的上文信息作为述求信息,在预先建立的知识库中做相似检索,得到预设数目个答案,及每个答案对应的标准问题;其中,所述知识库包含多组问答对,每组问答对包括对应的标准问题和答案;然后将所述预设数目个答案中的各答案、各答案对应的标准问题、各句所述述求信息,输入到预先训练的上下文模型中,通过所述上下文模型的输出得到各答案与所述当前用户问句的匹配分数;再根据各答案与所述当前用户问句的匹配分数由高到低的排序,从所述各答案中选择部分答案;最后将所述部分答案作为推荐话术,推荐给客服。由上可见,通过在知识库中检索的方式,得到多个答案,并有效利用上下文信息从多个答案中选择出最合适的答案,回复可控且具有人工流利、通顺特点,能够有效地利用上下文信息辅助人机对话系统生成相应推荐话术。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书披露的一个实施例的实施场景示意图;
图2示出根据一个实施例的多轮对话场景下的话术推荐方法流程图;
图3示出根据一个实施例的上下文模型的训练过程示意图;
图4示出根据一个实施例的上下文模型的网络结构示意图;
图5示出根据一个实施例的线上服务结构示意图;
图6示出根据一个实施例的多轮对话场景下的话术推荐装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1为本说明书披露的一个实施例的实施场景示意图。该实施场景涉及多轮对话场景下的话术推荐。参照图1,终端的显示屏上显示了聊天窗口11和推荐话术列表12,当终端接收到用户输入的当前用户问句时,在该当前用户问句之前已经存在该用户和客服的N轮对话,例如,聊天窗口11中示出的用户问句1和回答1构成一轮对话,用户问句2和回答2构成另一轮对话,用户问句N和回答N构成又一轮对话,这N轮对话统称为当前用户问句的上文信息。为了方便客服针对当前用户问句作出合适的回答,终端根据该当前用户问句和该当前用户问句的上文信息,生成推荐话术列表12,该推荐话术列表12中包括从预先建立的知识库中筛选出来的一组或多组问答对,问答对中的答案作为推荐话术推荐给客服,以使客服可以直接输入推荐话术,将推荐话术作为针对当前用户问句的回答,或者,客服可以输入稍作修改的推荐话术,将稍作修改的推荐话术作为针对当前用户问句的回答。
该场景中,在接收到当前用户问句时,根据该当前用户问句和该当前用户问句的上文信息,生成向客服展示的推荐话术列表,可以帮助客服尽快熟悉业务流程,在客服与用户文字聊天过程中,聊天窗口旁边实时提示相关话术,辅助客服回答用户问题,使得客服的言语显得更加得体。
其中,知识库包含多组问答对,每组问答对包括对应的标准问题和答案。
本说明书实施例中,还可以从客服海量的对话记录中挖掘并建立话术库,话术库的组织形式可以与知识库相同,因此在本说明书实施例中,在涉及到知识库时,可以将知识库替换为话术库,或者,将知识库替换为知识库和话术库。
本说明书实施例提供的多轮对话场景下的话术推荐方法,能够有效地利用上下文信息辅助人机对话系统生成相应推荐话术。
图2示出根据一个实施例的多轮对话场景下的话术推荐方法流程图,该方法可以基于图1所示的应用场景。如图2所示,该实施例中多轮对话场景下的话术推荐方法包括以下步骤:步骤21,针对当前用户问句,获取所述当前用户问句的上文信息;步骤22,将所述当前用户问句和所述当前用户问句的上文信息作为述求信息,在预先建立的知识库中做相似检索,得到预设数目个答案,及每个答案对应的标准问题;其中,所述知识库包含多组问答对,每组问答对包括对应的标准问题和答案;步骤23,将所述预设数目个答案中的各答案、各答案对应的标准问题、各句所述述求信息,输入到预先训练的上下文模型中,通过所述上下文模型的输出得到各答案与所述当前用户问句的匹配分数;步骤24,根据各答案与所述当前用户问句的匹配分数由高到低的排序,从所述各答案中选择部分答案;步骤25,将所述部分答案作为推荐话术,推荐给客服。下面描述以上各个步骤的具体执行方式。
首先在步骤21,针对当前用户问句,获取所述当前用户问句的上文信息。
可以理解的是,在当前用户问句之前可能包含多轮问答,即已经存在多组问答对,可以预先设定当前用户问句的上文信息包含的问答对的数目,或预先设定当前用户问句的上文信息包含的问句的数目,或预先设定当前用户问句的上文信息包含的答案的数目。例如,参照图1,在当前用户问句之前包含N轮问答,即已经存在N组问答对,可以预先设定当前用户问句的上文信息包含的问答对的数目为2,则此时当前用户问句的上文信息包含用户问句2、回答2、用户问句1、回答1。
接着在步骤22,将所述当前用户问句和所述当前用户问句的上文信息作为述求信息,在预先建立的知识库中做相似检索,得到预设数目个答案,及每个答案对应的标准问题;其中,所述知识库包含多组问答对,每组问答对包括对应的标准问题和答案。
可以理解的是,述求信息包括多个句子,可以根据各句子分别在预先建立的知识库中做相似检索,从检索到的问答对中筛选出预设数目个问答对。
然后在步骤23,将所述预设数目个答案中的各答案、各答案对应的标准问题、各句所述述求信息,输入到预先训练的上下文模型中,通过所述上下文模型的输出得到各答案与所述当前用户问句的匹配分数。可以理解的是,为了衡量多个答案中每个答案与当前用户问句是否匹配,各答案应分别输入上下文模型,而不是同时输入上下文模型。
其中,上下文模型需要经过预先训练。在一个示例中,可以采取如下方式获取训练样本:从用户和客服的对话日志中,获取多组一类训练样本;其中,每组一类训练样本包括回答和作为所述述求信息的所述回答的上文信息;根据所述回答,在预先建立的所述知识库中做相似检索,得到所述回答的相似答案,及所述相似答案对应的标准问题;将所述回答、所述相似答案对应的标准问题和所述回答的上文信息,作为一组二类训练样本。
类似地,可以预先设定答案的上文信息包含的问答对的数目,或预先设定答案的上文信息包含的问句的数目,或预先设定答案的上文信息包含的答案的数目。
进一步地,在一个示例中,采取如下方式对上下文模型进行训练:基于多组所述一类训练样本,对所述上下文模型进行预训练;基于多组所述二类训练样本,对预训练后的所述上下文模型进行微调。
在另一个示例中,采取如下方式对上下文模型进行训练:根据所述回答,在预先建立的所述知识库中做相似检索,若无法得到所述回答的相似答案,及所述相似答案对应的标准问题,则将所述回答、预先设定的默认标准问题和所述回答的上文信息,作为一组二类训练样本;基于多组所述二类训练样本,对所述上下文模型进行训练。
在一个示例中,所述通过所述上下文模型的输出得到各答案与所述当前用户问句的匹配分数,包括:
根据所述预设数目个答案中的目标答案包含的各词对应的词向量,得到所述预设数目个答案中的目标答案对应的句子的初始向量表达;根据所述目标答案对应的知识点标题包含的各词对应的词向量,得到所述知识点标题对应的句子的初始向量表达;根据各句所述述求信息包含的各词对应的词向量,得到各句所述述求信息对应的句子的初始向量表达;
根据各句述求信息对应的句子的初始向量表达和所述目标答案对应的句子的初始向量表达二者之间的交互信息,以及各句述求信息对应的句子的初始向量表达和所述知识点标题对应的句子的初始向量表达二者之间的交互信息,得到各句述求信息对应的第一交互矩阵;
根据各句述求信息对应的所述第一交互矩阵,得到所述目标答案与所述当前用户问句的匹配分数。
进一步地,所述根据各句述求信息对应的所述第一交互矩阵,得到所述目标答案与所述当前用户问句的匹配分数之前,所述方法还包括:
将所述目标答案对应的句子的初始向量表达作为自注意力模型的输入,通过所述自注意力模型的输出得到所述目标答案对应的句子的二次向量表达;将所述知识点标题对应的句子的初始向量表达作为所述自注意力模型的输入,通过所述自注意力模型的输出得到所述知识点标题对应的句子的二次向量表达;将各句所述述求信息对应的句子的初始向量表达作为自注意力模型的输入,通过所述自注意力模型的输出得到各句所述述求信息对应的句子的二次向量表达;
根据各句所述述求信息对应的句子的二次向量表达和所述目标答案对应的句子的二次向量表达二者之间的交互信息,以及各句所述述求信息对应的句子的二次向量表达和所述知识点标题对应的句子的二次向量表达二者之间的交互信息,得到各句所述述求信息对应的第二交互矩阵;
根据各句所述述求信息对应的所述第一交互矩阵,得到所述目标答案与所述当前用户问句的匹配分数,包括:
根据各句所述述求信息对应的所述第一交互矩阵和所述第二交互矩阵,得到所述目标答案与所述当前用户问句的匹配分数。
进一步地,所述根据各句所述述求信息对应的所述第一交互矩阵和所述第二交互矩阵,得到所述目标答案与所述当前用户问句的匹配分数,包括:
将各句所述述求信息对应的所述第一交互矩阵和所述第二交互矩阵经过卷积和池化,得到各句所述述求信息对应的句子的三次向量表达;
将各句所述述求信息对应的句子的三次向量表达作为序列模型的输入,得到所述目标答案与所述当前用户问句的匹配分数。
进一步地,所述序列模型为门控循环神经网络GRU模型或长短期记忆网络LSTM模型。
再在步骤24,根据各答案与所述当前用户问句的匹配分数由高到低的排序,从所述各答案中选择部分答案。
在一个示例中,可以预先设定选择的部分答案的数目,选择排序在前的该数目的答案。例如,预先设定选择的部分答案的数目为3,步骤22检索得到的答案数为10个,在步骤24中可以选择排序在前的3个答案。
在另一个示例中,可以预先设定分数阈值,当匹配分数大于该分数阈值时,输出相应的答案,例如,预先设定分数阈值为0.8,步骤22检索得到的答案数为10个,其中仅有1个答案的匹配分数大于该分数阈值,则在步骤24中可以选择匹配分数大于该分数阈值的1个答案。
最后在步骤25,将所述部分答案作为推荐话术,推荐给客服。
例如,可以按照图1中的推荐话术列表12的形式显示推荐话术,每个推荐话术可以配上标准问题。当然,也可以采取其他的方式将推荐话术推荐给客服,例如语音播放的形式。
通过本说明书实施例提供的方法,首先针对当前用户问句,获取所述当前用户问句的上文信息;接着将所述当前用户问句和所述当前用户问句的上文信息作为述求信息,在预先建立的知识库中做相似检索,得到预设数目个答案,及每个答案对应的标准问题;其中,所述知识库包含多组问答对,每组问答对包括对应的标准问题和答案;然后将所述预设数目个答案中的各答案、各答案对应的标准问题、各句所述述求信息,输入到预先训练的上下文模型中,通过所述上下文模型的输出得到各答案与所述当前用户问句的匹配分数;再根据各答案与所述当前用户问句的匹配分数由高到低的排序,从所述各答案中选择部分答案;最后将所述部分答案作为推荐话术,推荐给客服。由上可见,通过在知识库中检索的方式,得到多个答案,并有效利用上下文信息从多个答案中选择出最合适的答案,回复可控且具有人工流利、通顺特点,能够有效地利用上下文信息辅助人机对话系统生成相应推荐话术。
图3示出根据一个实施例的上下文模型的训练过程示意图。参照图3,利用客服和用户的海量对话日志,对话抽取模块可以抽取出结合上文的问答系统,以上下文+回答的形式得到相应数据样本;但是对话日志只是个简单的问答形式,尤其在针对业务的问答上面,答案往往非常的长,如果只使用答案和上文做相应匹配,效果往往不佳。对于一些常见的业务问题,运营人员往往会整理相应的常见问题解答FAQ,一般是通过相应的知识库或者话术库的形式存储于数据库中。对话抽取模型在获取到相应的上下文+回答的数据后,通过在数据库中检索,给有些答案配上相应的标题信息,从而得到最终的训练数据,以上下文+标题+回答的形式存储。需要说明的是,并不是所有的训练数据都会带有相应的标题信息,只有回答是在知识库中或者和知识库中的答案相接近的对话才会带有相应的标题。针对训练样本中,有些样本带有标题,有些并没有标题的情况,模型训练分为两个部分。第一部分,模型首先在不加标题的训练样本上面训练相应的模型;第二部分,在模型训练完毕后,模型在加入标题的训练数据上面进行微调模型,依据相应的模型存储条件,对最好的模型进行存储,用于在线服务时候使用。
图4示出根据一个实施例的上下文模型的网络结构示意图。参照图4,用户和客户的对话组成相应的上下文信息,在图中用u1,u2,…,un表示,相应的候选回答和标题分别由r和t表示。所有的上下文和回答以及标题通过填充(padding)的形式填充(pad)到一样的长度,如果样本没有标题,则通过填充(padding)的形式填充(pad)对应默认字符,这相当于预先设定默认标题(即默认标准问题)。首先通过词预训练的方式得到大的训练预料的词嵌入向量(word embedding),然后对于每条样本u1,u2,…,un,t,r,通过查询词向量文件的方式得到对应的词嵌入向量(embedding),这层网络称为嵌入(embedding)层。然后,每个句子的词嵌入向量(embedding)通过自注意力(self-attention)的方式得到各自的句子表示,这里自注意力(self-attention)层数可以自己设置,一般是多层自注意力(self-attention)。在得到各自句子的表示后,用上文的句子(u1,u2,…,un)分别和t以及t的句子表示做交互,得到各自的交互矩阵。另外,原始的句子嵌入(embedding)层也进行交互,得到各自的交互矩阵。交互矩阵各自拼接,组成不同的通道,然后经过卷积神经网络(convolutional neural network,CNN)卷积层进行卷积以及最大值池化(max pooling)操作,得到各自的抽象表示。所有的表示层输出到GRU序列网络中,利用上文的顺序信息得到最终的表示。最后接一个全连接神经网络,输出二分类结果,0表示该标题和回答是上下文的合适回复,1表示该标题和回答不是上下文的合适回复。
图5示出根据一个实施例的线上服务结构示意图。参照图5,对于用户新来的问题(query)请求,先通过对话上下文管理模块获取当前问题(query)之前用户和客服的对话上下文。与当前问题(query)一起,整合为新的问题(query)。将新的问题(query)输入到检索模块中,召回固定数量的知识点或话术。检索模块离线对知识库建立索引,供线上召回使用。给定数量的知识点或话术和新问题(query)一起,输入到上下文模型中,依据模型的打分结果对其进行排序,从而得到最有可能的回答。线上还可以通过阈值控制,从而输出最可能的回答。
其中,词嵌入(word embedding)训练可通过word2vec、glove、fasttext等工具;序列模型也可通过LSTM实现。
本说明书实施例中,提出一种端到端的上下文理解模型,在客服和用户对话过程中,实时理解对话上下文,并从知识库和/或话术库中推出最合适的回答;有效利用知识库和/或话术库中的标题和答案信息,并给出一种利用标题信息和原始对话数据训练上下文理解模型的方案;给出在线服务架构,并给出如何利用实时对话数据,结合模型推出合适回答。由上可见,该实施例中,不需要预先定义场景,减少了大量的预先标注任务;不需要通过聚类方式来生成场景,减少超参数的调优;通过知识库检索的方式,有效利用上下文信息得到最合适的答案,回复可控且具有人工流利、通顺特点。
根据另一方面的实施例,还提供一种多轮对话场景下的话术推荐装置,该装置用于执行本说明书实施例提供的多轮对话场景下的话术推荐方法。图6示出根据一个实施例的多轮对话场景下的话术推荐装置的示意性框图。如图6所示,该装置600包括:
第一获取单元61,用于针对当前用户问句,获取所述当前用户问句的上文信息;
第一检索单元62,用于将所述当前用户问句和所述第一获取单元61获取的所述当前用户问句的上文信息作为述求信息,在预先建立的知识库中做相似检索,得到预设数目个答案,及每个答案对应的标准问题;其中,所述知识库包含多组问答对,每组问答对包括对应的标准问题和答案;
匹配单元63,用于将所述第一检索单元62得到的预设数目个答案中的各答案、各答案对应的标准问题、各句所述述求信息,输入到预先训练的上下文模型中,通过所述上下文模型的输出得到各答案与所述当前用户问句的匹配分数;
选择单元64,用于根据所述匹配单元63得到的各答案与所述当前用户问句的匹配分数由高到低的排序,从所述第一检索单元得到的各答案中选择部分答案;
推荐单元65,用于将所述选择单元64选择的部分答案作为推荐话术,推荐给客服。
可选地,作为一个实施例,所述装置还包括:
第二获取单元,用于在所述匹配单元63通过所述上下文模型的输出得到各答案与所述当前用户问句的匹配分数之前,从用户和客服的对话日志中,获取多组一类训练样本;其中,每组一类训练样本包括回答和作为所述述求信息的所述回答的上文信息;
第二检索单元,用于根据所述第二获取单元获取的回答,在预先建立的所述知识库中做相似检索,得到所述回答的相似答案,及所述相似答案对应的标准问题;将所述回答、所述相似答案对应的标准问题和所述回答的上文信息,作为一组二类训练样本。
进一步地,所述装置还包括:
预训练单元,用于在所述匹配单元63通过所述上下文模型的输出得到各答案与所述当前用户问句的匹配分数之前,基于多组所述第二获取单元获取的一类训练样本,对所述上下文模型进行预训练;
微调单元,用于基于多组所述第二检索单元得到的二类训练样本,对所述预训练单元得到的预训练后的所述上下文模型进行微调。
进一步地,所述装置还包括:
默认处理单元,用于在所述匹配单元63通过所述上下文模型的输出得到各答案与所述当前用户问句的匹配分数之前,根据所述回答,在预先建立的所述知识库中做相似检索,若无法得到所述回答的相似答案,及所述相似答案对应的标准问题,则将所述回答、预先设定的默认标准问题和所述回答的上文信息,作为一组二类训练样本;
训练单元,用于基于多组所述第二检索单元得到的二类训练样本和所述默认处理单元得到的二类训练样本,对所述上下文模型进行训练。
可选地,作为一个实施例,所述匹配单元63,包括:
词嵌入子单元,用于根据所述预设数目个答案中的目标答案包含的各词对应的词向量,得到所述预设数目个答案中的目标答案对应的句子的初始向量表达;根据所述目标答案对应的知识点标题包含的各词对应的词向量,得到所述知识点标题对应的句子的初始向量表达;根据各句所述述求信息包含的各词对应的词向量,得到各句所述述求信息对应的句子的初始向量表达;
第一交互子单元,用于根据各句述求信息对应的句子的初始向量表达和所述目标答案对应的句子的初始向量表达二者之间的交互信息,以及各句述求信息对应的句子的初始向量表达和所述知识点标题对应的句子的初始向量表达二者之间的交互信息,得到各句述求信息对应的第一交互矩阵;
匹配子单元,用于根据所述第一交互子单元得到的各句述求信息对应的所述第一交互矩阵,得到所述目标答案与所述当前用户问句的匹配分数。
进一步地,所述装置还包括:
自注意力子单元,用于所述匹配子单元根据各句述求信息对应的所述第一交互矩阵,得到所述目标答案与所述当前用户问句的匹配分数之前,将所述目标答案对应的句子的初始向量表达作为自注意力模型的输入,通过所述自注意力模型的输出得到所述目标答案对应的句子的二次向量表达;将所述知识点标题对应的句子的初始向量表达作为所述自注意力模型的输入,通过所述自注意力模型的输出得到所述知识点标题对应的句子的二次向量表达;将各句所述述求信息对应的句子的初始向量表达作为自注意力模型的输入,通过所述自注意力模型的输出得到各句所述述求信息对应的句子的二次向量表达;
第二交互子单元,用于根据各句所述述求信息对应的句子的二次向量表达和所述目标答案对应的句子的二次向量表达二者之间的交互信息,以及各句所述述求信息对应的句子的二次向量表达和所述知识点标题对应的句子的二次向量表达二者之间的交互信息,得到各句所述述求信息对应的第二交互矩阵;
所述匹配子单元,具体用于根据各句所述述求信息对应的所述第一交互矩阵和所述第二交互矩阵,得到所述目标答案与所述当前用户问句的匹配分数。
进一步地,所述匹配子单元,具体用于:
将各句所述述求信息对应的所述第一交互矩阵和所述第二交互矩阵经过卷积和池化,得到各句所述述求信息对应的句子的三次向量表达;
将各句所述述求信息对应的句子的三次向量表达作为序列模型的输入,得到所述目标答案与所述当前用户问句的匹配分数。
进一步地,所述序列模型为门控循环神经网络GRU模型或长短期记忆网络LSTM模型。
通过本说明书实施例提供的装置,首先第一获取单元61针对当前用户问句,获取所述当前用户问句的上文信息;接着第一检索单元62将所述当前用户问句和所述当前用户问句的上文信息作为述求信息,在预先建立的知识库中做相似检索,得到预设数目个答案,及每个答案对应的标准问题;其中,所述知识库包含多组问答对,每组问答对包括对应的标准问题和答案;然后匹配单元63将所述预设数目个答案中的各答案、各答案对应的标准问题、各句所述述求信息,输入到预先训练的上下文模型中,通过所述上下文模型的输出得到各答案与所述当前用户问句的匹配分数;选择单元64再根据各答案与所述当前用户问句的匹配分数由高到低的排序,从所述各答案中选择部分答案;最后推荐单元65将所述部分答案作为推荐话术,推荐给客服。由上可见,通过在知识库中检索的方式,得到多个答案,并有效利用上下文信息从多个答案中选择出最合适的答案,回复可控且具有人工流利、通顺特点,能够有效地利用上下文信息辅助人机对话系统生成相应推荐话术。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2所述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。