一种基于级联式搜索的对话机器人应答引擎实现方法

文档序号:168811 发布日期:2021-10-29 浏览:14次 >En<

阅读说明:本技术 一种基于级联式搜索的对话机器人应答引擎实现方法 (Method for realizing dialogue robot response engine based on cascading search ) 是由 何思佑 于 2021-06-30 设计创作,主要内容包括:本发明公开了一种基于级联式搜索的对话机器人应答引擎实现方法,属于NLU技术和对话机器人领域,解决了现有部分对话机器人需要人工维护关键词字典且泛化能力低的问题。本发明提出一种结合字符搜索与语义相似度模型的实现方法来解决此问题,通过引入级联式搜索,综合评分排序等方法提升单轮会话和多轮会话的准确性,并在一定程度上提升了应答引擎的泛化能力,同时支撑意图式应答模式,较大程度降低机器人对人工知识库语料数量的依赖。(The invention discloses a method for realizing a response engine of a conversational robot based on cascade search, belongs to the field of NLU (non line segment) technology and conversational robots, and solves the problems that the prior conversational robot needs to manually maintain a keyword dictionary and has low generalization capability. The invention provides a realization method combining character search and a semantic similarity model to solve the problem, and the method improves the accuracy of single-round conversation and multi-round conversation by introducing methods such as cascading search, comprehensive grading and sequencing and the like, improves the generalization capability of a response engine to a certain extent, supports a semantic graph response mode, and greatly reduces the dependence of a robot on the number of linguistic data of an artificial knowledge base.)

一种基于级联式搜索的对话机器人应答引擎实现方法

技术领域

本发明属于NLU技术和对话机器人领域,具体涉及一种基于级联式搜索的对话机器人应答引擎实现方法。

背景技术

对话机器人系统在各个互联网公司,尤其是电商平台非常常见,主要代表产品有:智能客服机器人、辅助客服机器人。其主要用是解决用户的一些常见问题为人工客服做好第一道拦截网,过滤简单问题重复打扰人工客服造成人力资源浪费,同时也能及时响应用户需求提升用户体验。

对话机器人的本质是当用户发起问题Q时,如何精准匹配到对应意图I,并作出对应回答A的一套完整解决方案,完整链路大致可描述为Q->I->A,现有对话机器人商业用例中大多采取传统模式识别应答:(1)使用文本检索+文本分类的方式识别用户意图;(2)根据意图匹配答案区分对话类型(单轮、多轮);(3)根据对应的回答类型进入对话树或直接返回答案。其中文本检索阶段需要人工配置可能出现问题涉及的关键词等;文本分类阶段需要人工标注大量数据,且知识库要随着问题的增加而增加标注数据;进入对话树以后必须根据对话内容进行文本匹配返回结果,无法真正做到语义级别识别用户意图跳转到对应答案。

综上,现有对话机器人存在的弊端在于:

(1)现有技术中基于关键词和文本分类的方法识别用户意图准确率较低,且泛化能力差,当用户更改提问方式或出现同音字、错别字,识别率下降较快;

(2)原有文本分类需使用各个类别的正反例标注数据进行训练,对标注数据的质量和数量要求较高,且当应用场景发生改变时必须重复进行人工标注才能完成整个流程,花费大量人工。

发明内容

本发明公开了一种基于级联式搜索的对话机器人应答引擎实现方法,基于Q->I的过程做主要优化,通过采用ES检索意图候选集C,再通过transform类预训练模型直接计算用户问题Q与候选集C之间的相似度分数,结合各阶段评分最终做出意图I的确定。此方案抛弃了直接文本分类的方法,采用预训练模型+候选集相似计算提升了泛化能力、准确率;通过使用标准问-相似问与部分外域属于即可构建一个包含正反例的完整数据集从而获得对应的语义模型,仅需人工总结对应的标准问-相似问对关系即可,标准问与相似问为一对多关系,可节约大量人工。

本发明采用的技术方案如下:

1.一种基于级联式搜索的对话机器人应答引擎实现方法,其特征在于,包括如下步骤:

步骤1:构建标准问-相似问知识库、标准意图-相似意图知识库和多轮问答树,并将以上结果整合成知识库K;

步骤2:利用知识库K内容构建正反例数据集,分别训练标准问语义模型和意图语义模型得到模型M1和M2,同时将知识库K按行导入ES得到检索库E,将所有多轮问答树导入redis得到多轮库R;

步骤3:当系统接收到用户问题Q,查询检索库E得到最可能N个标准问候选集C=<c1,c2,c3,…,cn>与候选集得分集合,将标准问候选集与用户问题Q送入标准问语义模型计算相似度,得到相似度分数集合S=<s1,s2,s3,…,sn>,随后整合候选集得分集合与相似度得分集合,得到综合评分,对综合评分进行置信度计算并根据置信度进行排序,得到序列L=<l1,l2,l3,…,ln>,进入下一个步骤;

步骤4:根据排序后的序列L=<l1,l2,l3,…,ln>,取出第一个元素l1进行置信度判断;根据置信度判断的结果分别进行策略回答,直至完成会话状态;

其中,所述多轮问答树采用树形数据结构,是由标准问或标准意图触发的一种对话模式。

其中,所述标准问-相似问对知识库和标准意图-相似意图知识库由知识库系统配置或者是由excel文档配置。

进一步的,所述步骤2包括:

步骤2.1、构建正反例数据集,标准问-相似问为一对句子记作标签0集合,非标准问-相似问组合的句子堆记作标签1集合,混合两种标签所有数据得到最终数据集

据集,根据数据集使用bert或者xlnet+attention的方式训练语义模型M1,M2;

步骤2.2、将知识库K数据导入搭建好的ES集群中,为候选集检索做好准备,将多轮对话树保存为json格式,导入redis中,与ES中的查询语句以一个唯一键ID做关联。

进一步的,所述步骤3包括:

步骤3.1、当用户通过前端页面向机器人发起提问,获得请求Q,首先使用Q进行基本处理后,输入ES进行查询TOP K个最有可能的标准问题,查询得到候选集C=<c1,c2,c3,…,ck>与候选集得分集合;

步骤3.2、将候选集与用户问题Q组装为【Q-C】的形式请求标准问语义模型计算相似度,将会得到K个相似分数,得到相似度分数集合;随后整合候选集得分集合与相似度得分集合,得到综合评分。

其中,综合评分的计算方法包括加权平均求和:Rn=w1*cn+w2*sn,需满足w1+w2=1,其中w1、w2分别表示ES检索分数和语义模型相似度的权重比值;cn、sn分别表示对应的ES检索分数和语义相似度分数,对ES查询的候选集得分集合做一次归一化处理,最终得到置信度集合,并从大到小进行排序,得到序列L=<l1,l2,l3,…,lk>,归一化处理计算公式如下:

其中scorei表示归一化的分数;score_esi表示当前问题的es检索分数;min(score_es)表示当前所有检索分数中最小值;max(score_es)表示当前所有检索分数中最大值。

进一步的,所述步骤4包括:

步骤4.1、取出序列L=<l1,l2,l3,…,ln>中第一个结果l1进行判断:并设置置信度判断的可信度阈值t,当置信度小于可信阈值t时,给出l1,l2,l3,l4,l5提示让用户选择或再次输入,当置信度大于可信阈值t则进入下一步判断逻辑;

步骤4.2、判断标准问l1是简单单轮问答还是复杂多轮问答,判断结果如果是“简单单轮问答”时,直接给出知识库中配置的答案即可,并结束本轮对话,等待用户再次输入;

步骤4.3、当判断结果为“复杂多轮问答”类型时,根据ID则查询对应的多轮库R,检索到对应的多轮问答,对用户进行提示等待用户再次选择或输入,进入多轮问答树的下一个子节点并重复步骤3直到多轮问答树节点被遍历到叶子节点,直至完成会话状态。

综上所述,由于采用了上述技术方案,本发明的有益效果是:

(1)本发明采用ES检索意图候选集C,再通过transform类预训练模型直接计算用户问题Q与候选集C之间的相似度分数,结合各阶段评分最终做出意图I的确定,此方案抛弃了直接文本分类的方法,采用预训练模型+候选集相似计算提升了泛化能力、准确率。

(2)本发明使用的方法仅需人工总结对应的标准问-相似问对关系即可,标准问与相似问为一对多关系,此方法可节约大量人工,仅使用标准问-相似问与部分外域属于即可构建一个包含正反例的完整数据集从而获得对应的语义模型。

(3)使用transformer类语义模型替换分类模型,实现问题识别准确率提升、同时降低人工语料库依赖度。

(4)通过引入级联式搜索,综合评分排序等方法提升单轮会话和多轮会话的准确性,并在一定程度上提升了应答引擎的泛化能力,同时支撑意图式应答模式,较大程度降低机器人对人工知识库语料数量的依赖。

附图说明

本发明将通过例子并参照附图的方式说明,其中:

图1是本发明中对话机器人应答流程图;

图2是实施例中多轮问答树的示意图。

名词解释

ES:全称是Elasticsearch,供了一个分布式多用户能力的全文搜索引擎。

检索库E:将知识库导入ES后形成的应答引擎检索基础库。

知识库K:由运营人员准备的应答引擎只是储备库,包含用户可能提到的常用语、标准问、相似问、对应回答、多轮回答关系等数据。

多轮库R:对于复杂的对话逻辑,单单理解用户的提问意图不足以给出满意的回答,可能存在多次对话才能解答的问题称为多轮对话,对应的知识库为多轮库。

Redis:Redis(Remote Dictionary Server),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

置信度:应答引擎最终识别用户是哪种意图的表达值(0~1概率值),越接近1表明应答引擎对当前回答越确信,反之不确定。在本发明中用于对话策略调整。

置信度补充解释:本发明中置信度=最终的综合评分,是一个0~1的概率值,表明当前应答引擎对用户输入意图的确定性,如果置信度大于可信阈值t(0.8)表明非常确定,此时直接推送相关答案给用户;如果置信度小于可信阈值但大于不确定阈值,则推送给用户推荐问,确认用户想问什么;如果置信度小于不确定阈值则告诉用户未识别用户问的问题,请重新提问。

Transformer语义模型:bert或者xlnet+attention两种模型的统称。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

在本申请实施例的描述中,需要说明的是,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

下面结合图1~图2对本发明作详细说明。

1.一种基于级联式搜索的对话机器人应答引擎实现方法,其特征在于,包括如下步骤:

步骤1:构建标准问-相似问知识库、标准意图-相似意图知识库和多轮问答树,并将以上结果整合成知识库K;

所述知识库K=标准问+标准答+相似问+多轮库,知识库构建是由人工完成,包含的内容是文档中的结构化数据。

本实施例中,与传统知识库类似,主要包含业务场景中可能出现的标准问-相似问,所述标准问-相似问对知识库和标准意图-相似意图知识库由知识库系统配置或者是由excel文档配置,示例如下:

标准问 相似问
车贷如何还款 开正车贷如何还款
车贷如何还款 车多多如何还款
车贷如何还款 创富车贷怎么还
车贷如何还款 易鑫还款
车贷如何还款 有利网车贷怎么还
车贷如何还款 微贷网车贷怎么还
车贷如何还款 瓜子车如何还款
车贷如何还款 毛豆车贷如何还款

同理也应当有标准问对应的标准问答:

本实施例中,如图1所示,所述多轮问答树采用树形数据结构,是由标准问或标准意图触发的一种对话模式。

步骤2:利用知识库K内容构建正反例数据集,分别训练标准问语义模型和意图语义模型得到模型M1和M2,同时将知识库K按行导入ES得到检索库E,将所有多轮问答树导入redis得到多轮库R;

进一步的,所述步骤2包括:

步骤2.1、构建正反例数据集,标准问-相似问为一对句子记作标签0集合,非标准问-相似问组合的句子堆记作标签1集合,混合两种标签所有数据得到最终数据集,根据数据集使用bert或者xlnet+attention的方式训练语义模型M1,M2,使用transformer类语义模型替换分类模型,实现问题识别准确率提升、同时降低人工语料库依赖度;

步骤2.2、将知识库K数据导入搭建好的ES集群中,为候选集检索做好准备,将多轮对话树保存为json格式,导入redis中,与ES中的查询语句以一个唯一键ID做关联。

进一步的,所述步骤3包括:

步骤3:当系统接收到用户问题Q,查询检索库E得到最可能N个标准问候选集C=<c1,c2,c3,…,cn>与候选集得分集合,将标准问候选集与用户问题Q送入标准问语义模型计算相似度,得到相似度分数集合S=<s1,s2,s3,…,sn>,随后整合候选集得分集合与相似度得分集合,得到综合评分,对综合评分进行置信度计算并根据置信度进行排序,得到序列L=<l1,l2,l3,…,ln>,进入下一个步骤;

步骤3.1、当用户通过前端页面向机器人发起提问,获得请求Q,首先使用Q进行基本处理后,输入ES进行查询TOP K个最有可能的标准问题,查询得到候选集C=<c1,c2,c3,…,ck>与候选集得分集合;

步骤3.2、将候选集与用户问题Q组装为【Q-C】的形式请求标准问语义模型计算相似度,将会得到K个相似分数,得到相似度分数集合;随后整合候选集得分集合与相似度得分集合,得到综合评分。

其中,综合评分的计算方法包括加权平均求和:Rn=w1*cn+w2*sn,需满足w1+w2=1,其中w1、w2分别表示ES检索分数和语义模型相似度的权重比值;cn、sn分别表示对应的ES检索分数和语义相似度分数,对ES查询的候选集得分集合做一次归一化处理,最终得到置信度集合,并从大到小进行排序,得到序列L=<l1,l2,l3,…,lk>,归一化处理计算公式如下:

其中scorei表示归一化的分数;score_esi表示当前问题的es检索分数;min(score_es)表示当前所有检索分数中最小值;max(score_es)表示当前所有检索分数中最大值。

步骤4:根据排序后的序列L=<l1,l2,l3,…,ln>,取出第一个元素l1进行置信度判断;根据置信度判断的结果分别进行策略回答,直至完成会话状态;

进一步的,所述步骤4包括:

步骤4.1、取出序列L=<l1,l2,l3,…,ln>中第一个结果l1进行判断:并设置置信度判断的可信度阈值t,当置信度小于可信阈值t时,给出l1,l2,l3,l4,l5提示让用户选择或再次输入,当置信度大于可信阈值t则进入下一步判断逻辑;

步骤4.2、判断标准问l1是简单单轮问答还是复杂多轮问答,判断结果如果是“简单单轮问答”时,直接给出知识库中配置的答案即可,并结束本轮对话,等待用户再次输入;

步骤4.3、当判断结果为“复杂多轮问答”类型时,根据ID则查询对应的多轮库R,检索到对应的多轮问答,对用户进行提示等待用户再次选择或输入,进入多轮问答树的下一个子节点并重复步骤3直到多轮问答树节点被遍历到叶子节点,直至完成会话状态。

本发明公开了一种基于级联式搜索的对话机器人应答引擎实现方法,基于Q->I的过程做主要优化,通过采用ES检索意图候选集C,再通过transform类预训练模型直接计算用户问题Q与候选集C之间的相似度分数,结合各阶段评分最终做出意图I的确定。此方案抛弃了直接文本分类的方法,采用预训练模型+候选集相似计算提升了泛化能力、准确率;通过使用标准问-相似问与部分外域属于即可构建一个包含正反例的完整数据集从而获得对应的语义模型,仅需人工总结对应的标准问-相似问对关系即可,标准问与相似问为一对多关系,可节约大量人工。

本发明采用ES检索意图候选集C,再通过transform类预训练模型直接计算用户问题Q与候选集C之间的相似度分数,结合各阶段评分最终做出意图I的确定,此方案抛弃了直接文本分类的方法,采用预训练模型+候选集相似计算提升了泛化能力、准确率。

本发明使用的方法仅需人工总结对应的标准问-相似问对关系即可,标准问与相似问为一对多关系,此方法可节约大量人工,仅使用标准问-相似问与部分外域属于即可构建一个包含正反例的完整数据集从而获得对应的语义模型。

通过引入级联式搜索,综合评分排序等方法提升单轮会话和多轮会话的准确性,并在一定程度上提升了应答引擎的泛化能力,同时支撑意图式应答模式,较大程度降低机器人对人工知识库语料数量的依赖。

以上所述实施例仅表达了本申请的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请技术方案构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于知识图谱的中文医药问答系统及方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!