针对多轮对话的问题识别方法和装置与流程

文档序号:21457181发布日期:2020-07-10 17:53阅读:262来源:国知局
针对多轮对话的问题识别方法和装置与流程

本说明书一个或多个实施例涉及计算机领域,尤其涉及针对多轮对话的问题识别方法和装置。



背景技术:

当前,在智能客服中,由机器与用户进行对话,解答用户问题,由于用户的表达口语化,一轮对话往往无法明确用户诉求,需要机器与用户之间进行多轮对话,针对多轮对话进行问题识别,才能最终明确用户诉求。其中,问题识别是根据用户的问题描述等来识别用户的问题对应的标准问题。标准问题是根据业务整理的一些用户可能问的问题。每个问题有一个问题标识(identity,id)。

现有技术中,针对多轮对话的问题识别方法,一般都是将多轮对话中的用户文本输入深度学习模型,通过深度学习模型输出对应于标准问题的分类结果,由于深度学习模型的分类结果不具有可解释性,因此很难理解为什么用户文本会分类到一个标准问题。

因此,希望能有改进的方案,能够使得针对多轮对话的问题识别结果具有可解释性。



技术实现要素:

本说明书一个或多个实施例描述了一种针对多轮对话的问题识别方法和装置,能够使得针对多轮对话的问题识别结果具有可解释性。

第一方面,提供了一种针对多轮对话的问题识别方法,所述方法基于预先建立的知识图谱进行问题识别,所述知识图谱包括多个类型的节点,所述多个类型的节点包括与用户文本对应的文本节点、与业务要素对应的业务节点、与诉求要素对应的诉求节点和与标准问句对应的标准问句节点,所述多个类型的节点之间通过对应类型的连接边进行连接,方法包括:

获取当前多轮对话的当前用户文本;

将所述当前用户文本输入预先训练的要素预测模型,通过所述要素预测模型输出所述当前用户文本中包括的第一业务要素和/或第一诉求要素;

确定所述知识图谱中对应于所述当前用户文本的第一文本节点,对应于所述第一业务要素的第一业务节点和/或对应于所述第一诉求要素的第一诉求节点;至少将所述第一业务节点和/或所述第一诉求节点作为所述第一文本节点的关联节点;

在所述知识图谱中,以所述第一文本节点作为初始的当前节点,执行不超过预定次数的迭代,每次迭代包括,根据当前节点确定当前状态,根据所述当前状态从所述当前节点的各关联节点中搜索下一跳节点,并将该下一跳节点更新为当前节点;若所述当前节点的类型为标准问句节点,则停止迭代,返回所述当前节点对应的标准问句,作为所述当前用户文本的问题识别结果。

在一种可能的实施方式中,所述确定所述知识图谱中对应于所述当前用户文本的第一文本节点,包括:

将所述知识图谱中的已有节点,确定为所述知识图谱中对应于所述当前用户文本的第一文本节点;或者,在所述知识图谱中添加节点,将添加的节点确定为所述知识图谱中对应于所述当前用户文本的第一文本节点。

在一种可能的实施方式中,所述方法还包括:

若执行所述预定次数的迭代之后,所述当前节点的类型不为标准问句,则将所述当前用户文本的上一轮用户文本对应的节点更新为当前节点,执行所述不超过预定次数的迭代。

在一种可能的实施方式中,所述第一文本节点与所述当前节点之间的各节点和连接边构成搜索路径;所述根据当前节点确定当前状态,根据所述当前状态从所述当前节点的各关联节点中搜索下一跳节点,包括:

根据所述搜索路径,将所述当前节点开始往回数,指定步数的路径节点的节点嵌入向量和连接边的边嵌入向量组成的集合作为当前状态,根据所述当前节点的各关联节点确定可选动作集合,利用强化学习模型,根据所述当前状态输出所述可选动作集合中的目标动作,将所述目标动作作为所述下一跳节点。

进一步地,所述知识图谱中的各节点对应各自的节点嵌入向量;各连接边对应各自的边嵌入向量;

各节点嵌入向量和各边嵌入向量通过如下方式确定:

将文本节点、业务节点和诉求节点利用预训练的语言表示模型转换成第一初始嵌入向量;

将标准问句节点随机初始化转换成第二初始嵌入向量;

基于各第一初始嵌入向量和各第二初始嵌入向量,利用知识图谱的结构化信息,得到各节点各自对应的节点嵌入向量,以及各连接边各自对应的边嵌入向量。

进一步地,所述强化学习模型包括预测网络,所述利用强化学习模型,根据所述当前状态输出所述可选动作集合中的目标动作,包括:

将所述当前状态输入所述预测网络,通过所述预测网络输出所述可选动作集合中的目标动作,所述预测网络基于强化学习的策略梯度算法实现。

进一步地,所述强化学习模型还包括判别网络,所述通过所述预测网络输出所述可选动作集合中的目标动作之后,所述方法还包括:

将所述当前状态和所述目标动作输入所述判别网络,通过所述判别网络输出本次决策的打分,所述判别网络基于强化学习的q学习算法实现;

若所述目标动作对应标准问句节点,则确定所述当前状态和所述目标动作对应的奖励;

根据所述奖励,优化所述判别网络;根据所述打分,优化所述预测网络。

进一步地,所述根据所述当前节点的各关联节点确定可选动作集合,包括:

通过计算当前节点的各关联节点的权重对各关联节点排序;

根据各关联节点的排序,将排序在前预设数目的关联节点组成所述可选动作集合。

进一步地,所述确定所述当前状态和所述目标动作对应的奖励,包括:

确定从所述第一文本节点到返回的标准问句对应的标准问句节点之间的目标路径;

确定所述目标路径中包含的各业务节点与该标准问句节点之间的第一奖励;

确定所述目标路径中包含的各诉求节点与该标准问句节点之间的第二奖励;

确定所述目标路径中包含的各文本节点与该标准问句节点之间的第三奖励;

根据所述第一奖励、所述第二奖励和所述第三奖励,综合确定所述当前状态和所述目标动作对应的奖励。

第二方面,提供了一种针对多轮对话的问题识别装置,所述装置基于预先建立的知识图谱进行问题识别,所述知识图谱包括多个类型的节点,所述多个类型的节点包括与用户文本对应的文本节点、与业务要素对应的业务节点、与诉求要素对应的诉求节点和与标准问句对应的标准问句节点,所述多个类型的节点之间通过对应类型的连接边进行连接,装置包括:

获取单元,用于获取当前多轮对话的当前用户文本;

预测单元,用于将所述获取单元获取的当前用户文本输入预先训练的要素预测模型,通过所述要素预测模型输出所述当前用户文本中包括的第一业务要素和/或第一诉求要素;

确定单元,用于确定所述知识图谱中对应于所述获取单元获取的当前用户文本的第一文本节点,对应于所述预测单元输出的第一业务要素的第一业务节点和/或对应于所述预测单元输出的第一诉求要素的第一诉求节点;至少将所述第一业务节点和/或所述第一诉求节点作为所述第一文本节点的关联节点;

识别单元,用于在所述知识图谱中,以所述确定单元确定的第一文本节点作为初始的当前节点,执行不超过预定次数的迭代,每次迭代包括,根据当前节点确定当前状态,根据所述当前状态从所述当前节点的各关联节点中搜索下一跳节点,并将该下一跳节点更新为当前节点;若所述当前节点的类型为标准问句节点,则停止迭代,返回所述当前节点对应的标准问句,作为所述当前用户文本的问题识别结果。

第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。

第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。

通过本说明书实施例提供的方法和装置,预先建立知识图谱,所述知识图谱包括多个类型的节点,所述多个类型的节点包括与用户文本对应的文本节点、与业务要素对应的业务节点、与诉求要素对应的诉求节点和与标准问句对应的标准问句节点,所述多个类型的节点之间通过对应类型的连接边进行连接,从而将用户文本与标准问句通过知识图谱建立联系。在针对多轮对话进行问题识别时,首先获取当前多轮对话的当前用户文本;然后将所述当前用户文本输入预先训练的要素预测模型,通过所述要素预测模型输出所述当前用户文本中包括的第一业务要素和/或第一诉求要素;接着确定所述知识图谱中对应于所述当前用户文本的第一文本节点,对应于所述第一业务要素的第一业务节点和/或对应于所述第一诉求要素的第一诉求节点;至少将所述第一业务节点和/或所述第一诉求节点作为所述第一文本节点的关联节点;最后在所述知识图谱中,以所述第一文本节点作为初始的当前节点,通过迭代的方式搜索下一跳节点,直到搜索到标准问句节点,返回所述当前节点对应的标准问句,作为所述当前用户文本的问题识别结果。由于知识图谱展现了第一文本节点与该标准问句节点之间的联系,从而使得针对多轮对话的问题识别结果具有可解释性。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1示出根据一个实施例的针对用户问句的处理方法流程图;

图2为本说明书披露的一个实施例的实施场景示意图;

图3示出根据一个实施例的针对多轮对话的问题识别方法流程图;

图4示出根据一个实施例的知识图谱的结构示意图;

图5示出根据一个实施例的强化学习模型的结构示意图;

图6示出根据一个实施例的针对多轮对话的问题识别装置的示意性框图。

具体实施方式

下面结合附图,对本说明书提供的方案进行描述。

图1示出根据一个实施例的针对用户问句的处理方法流程图,该方法主要包括两个阶段的处理过程。在第一阶段,引导用户说出需求,机器跟用户对话,详细分析用户需求,进行问题识别,也就是识别用户问句对应的标准问句,可以理解的是,当用户与机器之间进行了多轮对话时,进行问题识别,也就是识别多轮对话对应的标准问句。当问题识别不成功时,进入第二阶段,智能派单,小二(即人工客服)跟用户对话并且标注用户问题,其中,智能派单即确定用户问句对应的人工客服技能组,或者说是确定多轮对话对应的人工客服技能组,标注用户问题即标注用户问句对应的标准问句,或者说是标注多轮对话对应的标准问句。

在一个示例中,机器在接收到用户问句后,针对用户问句,确定该用户问句对应的标准问句,并将确定的标准问句展示给用户,由用户确认该标准问句是否满足其述求,如果用户确认该标准问句不满足其述求,则由用户补充部分描述,机器会针对该用户问句,再次确定该用户问句对应的标准问句。当确定标准问句的次数达到预定次数,并且仍然不满足用户述求时,确定多轮对话对应的人工客服技能组,由人工客服跟用户对话并且标注多轮对话对应的标准问句。

图2为本说明书披露的一个实施例的实施场景示意图。该实施场景涉及针对多轮对话的问题识别,应用于前述第一阶段的处理过程。可以理解的是,该多轮对话可以为智能客服中用户与机器的多轮对话,其中,机器也可以称为智能体(agent)。该方法基于预先建立的知识图谱进行问题识别,所述知识图谱包括多个类型的节点,所述多个类型的节点包括与用户文本对应的文本节点、与业务要素对应的业务节点、与诉求要素对应的诉求节点和与标准问句对应的标准问句节点,所述多个类型的节点之间通过对应类型的连接边进行连接。在用户与智能体的多轮对话过程中,可以先在知识图谱中确定用户文本对应的文本节点,然后从该文本节点开始迭代搜索下一跳节点,直到找到满足预设迭代次数的标准问句节点,将该标准问句节点对应的标准问句返回给智能体,作为针对多轮对话的问题识别结果,智能体可以依据该问题识别结果进一步询问用户,以得到用户的确认或否认回答。

知识图谱(knowledgegraph),在图书情报界称为知识域可视化或知识领域映射地图,是显示知识发展进程与结构关系的一系列各种不同的图形,用可视化技术描述知识资源及其载体,挖掘、分析、构建、绘制和显示知识及它们之间的相互联系。

图3示出根据一个实施例的针对多轮对话的问题识别方法流程图,该方法可以基于图1所示的方法流程,以及图2所示的实施场景。该方法基于预先建立的知识图谱进行问题识别,所述知识图谱包括多个类型的节点,所述多个类型的节点包括与用户文本对应的文本节点、与业务要素对应的业务节点、与诉求要素对应的诉求节点和与标准问句对应的标准问句节点,所述多个类型的节点之间通过对应类型的连接边进行连接。如图3所示,该实施例中针对多轮对话的问题识别方法包括以下步骤:步骤31,获取当前多轮对话的当前用户文本;步骤32,将所述当前用户文本输入预先训练的要素预测模型,通过所述要素预测模型输出所述当前用户文本中包括的第一业务要素和/或第一诉求要素;步骤33,确定所述知识图谱中对应于所述当前用户文本的第一文本节点,对应于所述第一业务要素的第一业务节点和/或对应于所述第一诉求要素的第一诉求节点;至少将所述第一业务节点和/或所述第一诉求节点作为所述第一文本节点的关联节点;步骤34,在所述知识图谱中,以所述第一文本节点作为初始的当前节点,执行不超过预定次数的迭代,每次迭代包括,根据当前节点确定当前状态,根据所述当前状态从所述当前节点的各关联节点中搜索下一跳节点,并将该下一跳节点更新为当前节点;若所述当前节点的类型为标准问句节点,则停止迭代,返回所述当前节点对应的标准问句,作为所述当前用户文本的问题识别结果。下面描述以上各个步骤的具体执行方式。

首先在步骤31,获取当前多轮对话的当前用户文本。可以理解的是,若当前多轮对话进行到第一轮,则当前用户文本为第一轮的用户文本;若当前多轮对话进行到第二轮,则当前用户文本为第二轮的用户文本。

本说明书实施例中,用户文本为用户对问题的描述。可以直接获取用户的文字输入,将该文字输入作为上述用户文本;或者,可以先获取用户的语音输入,然后将该语音输入转为上述用户文本。

然后在步骤32,将所述当前用户文本输入预先训练的要素预测模型,通过所述要素预测模型输出所述当前用户文本中包括的第一业务要素和/或第一诉求要素。可以理解的是,当前用户文本中可能仅包括业务要素,不包括诉求要素;或者,当前用户文本中可能仅包括诉求要素,不包括业务要素;或者,当前用户文本中可能既包括业务要素,又包括诉求要素。

举例来说,当前用户文本为“我想咨询如何修改本月花呗还款日”,第一业务要素为“花呗还款”,第一诉求要素为“花呗还款日”。

接着在步骤33,确定所述知识图谱中对应于所述当前用户文本的第一文本节点,对应于所述第一业务要素的第一业务节点和/或对应于所述第一诉求要素的第一诉求节点;至少将所述第一业务节点和/或所述第一诉求节点作为所述第一文本节点的关联节点。可以理解的是,知识图谱中包含的文本节点可以不断扩充,现有的知识图谱中可能已经包含对应于所述当前用户文本的第一文本节点,也可能还未包含对应于所述当前用户文本的第一文本节点。

在一个示例中,将所述知识图谱中的已有节点,确定为所述知识图谱中对应于所述当前用户文本的第一文本节点;或者,在所述知识图谱中添加节点,将添加的节点确定为所述知识图谱中对应于所述当前用户文本的第一文本节点。

图4示出根据一个实施例的知识图谱的结构示意图。参照图4,该知识图谱中包括四种类型的节点,其中,文本节点,对应于每一轮对话中的用户文本,该用户文本可以是用户的问题(question)或用户的表达(utterance);诉求节点,对应于诉求要素,即用户的问题的潜在需求(demand);业务节点,对应于业务要素,即用户的问题的业务单元;标准问句节点,简称标问节点,对应于标准问句,即整个对话的意图。多个类型的节点之间通过对应类型的连接边进行连接。连接边共有七种类型,分别记为l1、l2、l3、l4、l5、l6、l7。其中,l1类型的连接边为从一个文本节点到另一个文本节点的连接边,表明上述两个文本节点对应的用户文本为相邻两轮对话的用户文本;l2类型的连接边为从一个文本节点到一个诉求节点的连接边,表明上述文本节点对应的用户文本中包含上述诉求节点对应的诉求要素;l3类型的连接边为从一个文本节点到一个业务节点的连接边,表明上述文本节点对应的用户文本中包含上述业务节点对应的业务要素;l4类型的连接边为从一个业务节点到一个诉求节点的连接边,表明上述业务节点对应的业务要素中包含上述诉求节点对应的诉求要素;l5类型的连接边为从一个标问节点到一个诉求节点的连接边,表明上述标问节点对应的标准问句是上述诉求节点对应的诉求要素;l6类型的连接边为从一个标问节点到一个业务节点的连接边,表明上述标问节点对应的标准问句是上述业务节点对应的业务要素;l7类型的连接边为从一个文本节点到一个标问节点的连接边,表明上述文本节点对应的用户文本是上述标问节点对应的标准问句。

本说明书实施例中,当在所述知识图谱中添加节点,将添加的节点确定为所述知识图谱中对应于所述当前用户文本的第一文本节点后,相应地,还需在所述知识图谱中建立第一文本节点与至少一个关联节点之间的连接边,上述至少一个关联节点包括第一业务节点、第一诉求节点或所述当前用户文本的上一轮用户文本对应的文本节点。

最后在步骤34,在所述知识图谱中,以所述第一文本节点作为初始的当前节点,执行不超过预定次数的迭代,每次迭代包括,根据当前节点确定当前状态,根据所述当前状态从所述当前节点的各关联节点中搜索下一跳节点,并将该下一跳节点更新为当前节点;若所述当前节点的类型为标准问句节点,则停止迭代,返回所述当前节点对应的标准问句,作为所述当前用户文本的问题识别结果。可以理解的是,每次迭代的过程都是搜索标准问句节点的过程,迭代的次数可能小于上述预定次数,例如,上述预定次数为3,在第一次迭代中就搜索到了标准问句节点,无需继续迭代;迭代的次数也可能等于上述预定次数,例如,上述预定次数为3,在前两次迭代中均未搜索到标准问句节点,需要进行第三次迭代,然而第三次迭代中可能搜索到标准问句节点,也可能仍然未搜索到标准问句节点。

在一个示例中,若执行所述预定次数的迭代之后,所述当前节点的类型不为标准问句,则将所述当前用户文本的上一轮用户文本对应的节点更新为当前节点,执行所述不超过预定次数的迭代。

该示例采用了路径回退搜索算法,由于是多轮对话,从最后一轮对话的文本节点开始搜索,直到搜索到标准问句节点停止。如果在规定的步数(即上述预定次数)内没找到标准问句节点,则对话轮数向后回退一轮(即倒数第二轮),再重复之前的迭代,搜索标准问句节点。如此反复,如果到第一轮对话都没有找到标准问句节点,则返回无效结果(例如null)。

基于前述示例,在从所述当前节点的各关联节点中搜索下一跳节点时,可以采用强化学习的方法来决策。

强化学习是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益。其灵感来源于心理学中的行为主义理论,即智能体如何在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的预期,产生能获得最大利益的习惯性行为。

本说明书实施例,智能体在从所述当前节点的各关联节点中搜索下一跳节点时,只能从自己的经历(experience)中进行学习,而经历中采取的行为并一定是最优的,这时利用强化学习就非常合适,因为强化学习不是利用正确的行为来指导,而是利用已有的训练信息来对行为进行评价。

在一个示例中,所述第一文本节点与所述当前节点之间的各节点和连接边构成搜索路径;所述根据当前节点确定当前状态,根据所述当前状态从所述当前节点的各关联节点中搜索下一跳节点,包括:根据所述搜索路径,将所述当前节点开始往回数,指定步数的路径节点的节点嵌入向量和连接边的边嵌入向量组成的集合作为当前状态,根据所述当前节点的各关联节点确定可选动作集合,利用强化学习模型,根据所述当前状态输出所述可选动作集合中的目标动作,将所述目标动作作为所述下一跳节点。

进一步地,所述知识图谱中的各节点对应各自的节点嵌入向量;各连接边对应各自的边嵌入向量;

各节点嵌入向量和各边嵌入向量通过如下方式确定:

将文本节点、业务节点和诉求节点利用预训练的语言表示模型转换成第一初始嵌入向量;

将标准问句节点随机初始化转换成第二初始嵌入向量;

基于各第一初始嵌入向量和各第二初始嵌入向量,利用知识图谱的结构化信息,得到各节点各自对应的节点嵌入向量,以及各连接边各自对应的边嵌入向量。

需要说明的是,当知识图谱中添加了新的节点和/或连接边后,需要更新各节点嵌入向量和各边嵌入向量,具体可以采用在线嵌入的方式确定更新后的各节点嵌入向量和各边嵌入向量,例如,采用动态知识图谱高效嵌入(efficientlyembeddingdynamicknowledgegraphs,dkge)模型进行在线嵌入。

其中,上述语言表示模型具体可以为基于转换器的双向编码器表征(bidirectionalencoderrepresentationfromtransformers,bert)模型。

其中,上述结构化信息的嵌入可以采用翻译嵌入(translatingembedding,transe)算法。

进一步地,所述根据所述当前节点的各关联节点确定可选动作集合,包括:

通过计算当前节点的各关联节点的权重对各关联节点排序;

根据各关联节点的排序,将排序在前预设数目的关联节点组成所述可选动作集合。

可以理解的是,与当前节点具有连接边的节点为当前节点的关联节点,由于节点非常多,搜索空间太大,因此对于各关联节点过滤掉一些噪音后组成可选动作集合,以减少搜索空间,提升搜索效率。

进一步地,所述强化学习模型包括预测网络,所述利用强化学习模型,根据所述当前状态输出所述可选动作集合中的目标动作,包括:将所述当前状态输入所述预测网络,通过所述预测网络输出所述可选动作集合中的目标动作,所述预测网络基于强化学习的策略梯度算法实现。

进一步地,所述强化学习模型还包括判别网络,所述通过所述预测网络输出所述可选动作集合中的目标动作之后,所述方法还包括:

将所述当前状态和所述目标动作输入所述判别网络,通过所述判别网络输出本次决策的打分,所述判别网络基于强化学习的q学习算法实现;

若所述目标动作对应标准问句节点,则确定所述当前状态和所述目标动作对应的奖励;

根据所述奖励,优化所述判别网络;根据所述打分,优化所述预测网络。

本说明书实施例中,当强化学习模型包括预测网络和判别网络时,可以相当于采用了演员-评论家(actor-critic)的强化学习框架,其中,预测网络相当于演员(actor),判别网络相当于评论家(critic)。

图5示出根据一个实施例的强化学习模型的结构示意图。参照图5,强化学习模型包括预测网络和判别网络,以及预处理单元,该预处理单元包括第一拼接层、lstm层、第二拼接层、第一全连接层和第二全连接层,该预处理单元用于得到前述当前状态。首先,在预处理单元,根据搜索路径,将当前节点开始往回数,指定步数的路径节点的节点嵌入向量和连接边的边嵌入向量,作为历史嵌入向量;先将各历史嵌入向量分别输入第一拼接层和长短期记忆(longshort-termmemory,lstm)层,然后将第一拼接层的输出和lstm层的输出依次经过第二拼接层、第一全连接层和第二全连接层的处理,得到前述当前状态。然后,将所述当前状态输入所述预测网络,通过所述预测网络输出所述可选动作集合中的目标动作,所述预测网络基于强化学习的策略梯度算法实现。最后,将所述当前状态和所述目标动作输入所述判别网络,通过所述判别网络输出本次决策的打分,所述判别网络基于强化学习的q学习算法实现;若所述目标动作对应标准问句节点,则确定所述当前状态和所述目标动作对应的奖励;根据所述奖励,优化所述判别网络;根据所述打分,优化所述预测网络。

进一步地,所述确定所述当前状态和所述目标动作对应的奖励,包括:

确定从所述第一文本节点到返回的标准问句对应的标准问句节点之间的目标路径;

确定所述目标路径中包含的各业务节点与该标准问句节点之间的第一奖励;

确定所述目标路径中包含的各诉求节点与该标准问句节点之间的第二奖励;

确定所述目标路径中包含的各文本节点与该标准问句节点之间的第三奖励;

根据所述第一奖励、所述第二奖励和所述第三奖励,综合确定所述当前状态和所述目标动作对应的奖励。

为了便于给出奖励的定义,首先给出k跳路径的定义。从节点e0到节点ek的k跳路径由通过k个连接边相连接的k+1个节点组成,k+1个节点分别为e0、e1…ek,节点ei-1和ei之间的连接边可以用ri表示。

在一个示例中,定义了如下的一跳打分公式:

其中,f用于计算节点e和节点ek之间通过连接边r相连接时的分数,代表与ek有关的向量。

在一个示例中,在et∈q的情形下,定义了如下的奖励的计算公式:

在et∈q以外的情形下,定义奖励为0。

其中,f就是前面定义的一跳打分公式,q是标问节点,b是业务节点,d是诉求节点,t是文本节点。e0属于d,e1属于b,e2属于t,n0是路径上诉求节点的个数,n1是路径上业务节点的个数,n2是路径上文本节点的个数。计算路径上所有节点和标问节点的奖励分数,然后计算每种节点的奖励分数的平均值,包括所有的文本节点与标问节点的奖励分数的第一平均值,所有的诉求节点与标问节点的奖励分数的第二平均值,所有的业务节点与标问节点的奖励分数的第三平均值,再计算这三个平均值的平均值,得到上述奖励。

通过本说明书实施例提供的方法,预先建立知识图谱,通过多个类型的节点,以及对应类型的连接边,从而将用户文本与标准问句通过知识图谱建立联系。在针对多轮对话进行问题识别时,首先获取当前多轮对话的当前用户文本;然后将所述当前用户文本输入预先训练的要素预测模型,通过所述要素预测模型输出所述当前用户文本中包括的第一业务要素和/或第一诉求要素;接着确定所述知识图谱中对应于所述当前用户文本的第一文本节点,对应于所述第一业务要素的第一业务节点和/或对应于所述第一诉求要素的第一诉求节点;至少将所述第一业务节点和/或所述第一诉求节点作为所述第一文本节点的关联节点;最后在所述知识图谱中,以所述第一文本节点作为初始的当前节点,通过迭代的方式搜索下一跳节点,直到搜索到标准问句节点,返回所述当前节点对应的标准问句,作为所述当前用户文本的问题识别结果。由于知识图谱展现了第一文本节点与该标准问句节点之间的联系,从而使得针对多轮对话的问题识别结果具有可解释性。

根据另一方面的实施例,还提供一种针对多轮对话的问题识别装置,所述装置基于预先建立的知识图谱进行问题识别,所述知识图谱包括多个类型的节点,所述多个类型的节点包括与用户文本对应的文本节点、与业务要素对应的业务节点、与诉求要素对应的诉求节点和与标准问句对应的标准问句节点,所述多个类型的节点之间通过对应类型的连接边进行连接,该装置用于执行本说明书实施例提供的针对多轮对话的问题识别方法。图6示出根据一个实施例的针对多轮对话的问题识别装置的示意性框图。如图6所示,该装置600包括:

获取单元61,用于获取当前多轮对话的当前用户文本;

预测单元62,用于将所述获取单元61获取的当前用户文本输入预先训练的要素预测模型,通过所述要素预测模型输出所述当前用户文本中包括的第一业务要素和/或第一诉求要素;

确定单元63,用于确定所述知识图谱中对应于所述获取单元61获取的当前用户文本的第一文本节点,对应于所述预测单元62输出的第一业务要素的第一业务节点和/或对应于所述预测单元62输出的第一诉求要素的第一诉求节点;至少将所述第一业务节点和/或所述第一诉求节点作为所述第一文本节点的关联节点;

识别单元64,用于在所述知识图谱中,以所述确定单元63确定的第一文本节点作为初始的当前节点,执行不超过预定次数的迭代,每次迭代包括,根据当前节点确定当前状态,根据所述当前状态从所述当前节点的各关联节点中搜索下一跳节点,并将该下一跳节点更新为当前节点;若所述当前节点的类型为标准问句节点,则停止迭代,返回所述当前节点对应的标准问句,作为所述当前用户文本的问题识别结果。

可选地,作为一个实施例,所述确定单元63,具体用于:

将所述知识图谱中的已有节点,确定为所述知识图谱中对应于所述当前用户文本的第一文本节点;或者,在所述知识图谱中添加节点,将添加的节点确定为所述知识图谱中对应于所述当前用户文本的第一文本节点。

可选地,作为一个实施例,所述识别单元64,还用于若执行所述预定次数的迭代之后,所述当前节点的类型不为标准问句,则将所述当前用户文本的上一轮用户文本对应的节点更新为当前节点,执行所述不超过预定次数的迭代。

可选地,作为一个实施例,所述第一文本节点与所述当前节点之间的各节点和连接边构成搜索路径;所述识别单元64,具体用于根据所述搜索路径,将所述当前节点开始往回数,指定步数的路径节点的节点嵌入向量和连接边的边嵌入向量组成的集合作为当前状态,根据所述当前节点的各关联节点确定可选动作集合,利用强化学习模型,根据所述当前状态输出所述可选动作集合中的目标动作,将所述目标动作作为所述下一跳节点。

进一步地,所述知识图谱中的各节点对应各自的节点嵌入向量;各连接边对应各自的边嵌入向量;

各节点嵌入向量和各边嵌入向量通过如下方式确定:

将文本节点、业务节点和诉求节点利用预训练的语言表示模型转换成第一初始嵌入向量;

将标准问句节点随机初始化转换成第二初始嵌入向量;

基于各第一初始嵌入向量和各第二初始嵌入向量,利用知识图谱的结构化信息,得到各节点各自对应的节点嵌入向量,以及各连接边各自对应的边嵌入向量。

进一步地,所述强化学习模型包括预测网络,所述识别单元64,具体用于将所述当前状态输入所述预测网络,通过所述预测网络输出所述可选动作集合中的目标动作,所述预测网络基于强化学习的策略梯度算法实现。

进一步地,所述强化学习模型还包括判别网络,所述装置还包括:

优化单元,包括:

打分子单元,用于在所述识别单元64通过所述预测网络输出所述可选动作集合中的目标动作之后,将所述当前状态和所述目标动作输入所述判别网络,通过所述判别网络输出本次决策的打分,所述判别网络基于强化学习的q学习算法实现;

奖励子单元,哟交给你于若所述目标动作对应标准问句节点,则确定所述当前状态和所述目标动作对应的奖励;

优化子单元,用于根据所述奖励子单元确定的奖励,优化所述判别网络;根据所述打分子单元输出的打分,优化所述预测网络。

进一步地,所述识别单元64,具体用于:

通过计算当前节点的各关联节点的权重对各关联节点排序;

根据各关联节点的排序,将排序在前预设数目的关联节点组成所述可选动作集合。

进一步地,所述奖励子单元,具体用于:

确定所述第一文本节点到返回的标准问句对应的标准问句节点之间的目标路径;

确定所述目标路径中包含的各业务节点与该标准问句节点之间的第一奖励;

确定所述目标路径中包含的各诉求节点与该标准问句节点之间的第二奖励;

确定所述目标路径中包含的各文本节点与该标准问句节点之间的第三奖励;

根据所述第一奖励、所述第二奖励和所述第三奖励,综合确定所述当前状态和所述目标动作对应的奖励。

通过本说明书实施例提供的装置,预先建立知识图谱,通过多个类型的节点,以及对应类型的连接边,从而将用户文本与标准问句通过知识图谱建立联系。在针对多轮对话进行问题识别时,首先获取单元61获取当前多轮对话的当前用户文本;然后预测单元62将所述当前用户文本输入预先训练的要素预测模型,通过所述要素预测模型输出所述当前用户文本中包括的第一业务要素和/或第一诉求要素;接着确定单元63确定所述知识图谱中对应于所述当前用户文本的第一文本节点,对应于所述第一业务要素的第一业务节点和/或对应于所述第一诉求要素的第一诉求节点;至少将所述第一业务节点和/或所述第一诉求节点作为所述第一文本节点的关联节点;最后识别单元64在所述知识图谱中,以所述第一文本节点作为初始的当前节点,通过迭代的方式搜索下一跳节点,直到搜索到标准问句节点,返回所述当前节点对应的标准问句,作为所述当前用户文本的问题识别结果。由于知识图谱展现了第一文本节点与该标准问句节点之间的联系,从而使得针对多轮对话的问题识别结果具有可解释性。

根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图3所描述的方法。

根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图3所描述的方法。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1