用户问句与知识点标题的匹配方法和装置
技术领域
本说明书一个或多个实施例涉及计算机领域,尤其涉及用户问句与知识点标题的匹配方法和装置。
背景技术
在智能客服的机器人问答中,基于用户问句确定与该用户问句匹配的知识点标题,相应地,把该知识点标题和/或知识点标题对应的知识点推送给用户。客户在与机器人交互过程中,用户问句语言口语化、简略化,提升客服机器人匹配的能力和效果对整个客服系统十分关键,直接影响客服系统的服务体验。
传统的解决问答匹配的方法大概分为三类。第一类是语义解析(semanticparsing),第二类是信息抽取(information extraction),第三类是向量建模(vectormodeling)。上述匹配方法都只是单纯的考虑用户问句与匹配答案的相关性,机器人答案的整体用户满意度不佳。
因此,希望能有改进的方案,能够提升机器人答案的整体用户满意度。
发明内容
本说明书一个或多个实施例描述了一种用户问句与知识点标题的匹配方法和装置,能够提升机器人答案的整体用户满意度。
第一方面,提供了一种用户问句与知识点标题的匹配方法,方法包括:
获取当前用户查询信息,其中,所述当前用户查询信息包括当前用户问句;
针对当前用户问句,利用多种算法得到与所述当前用户问句匹配的多个候选知识点标题;
将当前用户查询信息和每个候选知识点标题组成的每组对话信息作为预先训练的深度反馈模型的输入,通过所述深度反馈模型的输出得到每个候选知识点标题的用户反馈级别及该用户反馈级别的相对概率;
根据每个候选知识点标题的用户反馈级别及该用户反馈级别的相对概率,确定所述多个候选知识点标题中每个候选知识点标题的排序;
根据每个候选知识点标题的排序,从所述多个候选知识点标题中选择至少一个候选知识点标题,将所述至少一个候选知识点标题作为与所述用户问句匹配的知识点标题。
在一种可能的实施方式中,利用所述多种算法中的每种算法得到一个或多个候选知识点标题。
在一种可能的实施方式中,所述将当前用户查询信息和每个候选知识点标题组成的每组对话信息作为预先训练的深度反馈模型的输入,通过所述深度反馈模型的输出得到每个候选知识点标题的用户反馈级别及该用户反馈级别的相对概率之前,所述方法还包括:
获取机器人问答的历史日志,所述历史日志包括多组历史查询信息、知识点标题和用户反馈数据;
根据预先设定的用户反馈数据与用户反馈级别的对应关系,确定所述用户反馈数据对应的用户反馈级别,所述用户反馈级别包括用于指示正向反馈的级别、用于指示中性反馈的级别、用于指示负向反馈的级别;
将每组历史查询信息、知识点标题和用户反馈级别作为深度反馈模型的一组训练样本,对所述深度反馈模型进行训练;其中,历史查询信息作为所述深度反馈模型的第一特征部分,知识点标题作为所述深度反馈模型的第二特征部分,用户反馈级别作为所述深度反馈模型的样本标签。
在一种可能的实施方式中,所述当前用户查询信息还包括如下至少一种扩展信息:用户行为轨迹信息、场景埋点信息和业务类型信息。
进一步地,所述深度反馈模型包括嵌入层、编码层、交互层、特征提取层和输出层;
所述嵌入层用于将所述当前用户问句的分词转化为对应的第一分向量;以及将所述至少一种扩展信息转化为对应的第二分向量;
所述嵌入层将所述第一分向量和所述第二分向量进行拼接,得到所述当前用户查询信息对应的合成向量。
进一步地,所述嵌入层用于将所述当前用户问句的分词转化为对应的第一分向量,包括:
根据预先训练好的词嵌入模型,确定分词对应的词向量;
根据分词的词性,确定分词对应的词性特征向量;
根据分词是否出现在知识点标题中,确定分词对应的精确匹配特征向量;
根据分词在预先建立的业务导图中匹配的节点,确定分词对应的导图特征向量;
将所述词向量、所述词性特征向量、所述精确匹配特征向量和所述导图特征向量进行拼接,得到分词对应的第一分向量。
进一步地,所述至少一种扩展信息包括用户行为轨迹信息;所述嵌入层用于将所述至少一种扩展信息转化为对应的第二分向量,包括:
将所述用户行为轨迹信息指示的多个轨迹点中的每个轨迹点的行为信息,转化为对应的轨迹向量;
将多个轨迹向量求平均,得到所述用户行为轨迹信息对应的第二分向量。
进一步地,所述编码层包括两层网络子层和一层自注意力子层;所述两层网络子层中的一层用于将输入向量的一部分进行非线性操作,另一部分直接映射到输出层;
所述注意力子层以注意力矩阵中的注意力系数为权重,对输入向量进行加权平均处理。
第二方面,提供了一种用户问句与知识点标题的匹配装置,装置包括:
获取单元,用于获取当前用户查询信息,其中,所述当前用户查询信息包括当前用户问句;
第一匹配单元,用于针对所述获取单元获取的当前用户问句,利用多种算法得到与所述当前用户问句匹配的多个候选知识点标题;
反馈预测单元,用于将所述获取单元获取的当前用户查询信息和所述第一匹配单元得到的每个候选知识点标题组成的每组对话信息作为预先训练的深度反馈模型的输入,通过所述深度反馈模型的输出得到每个候选知识点标题的用户反馈级别及该用户反馈级别的相对概率;
排序单元,用于根据所述反馈预测单元得到的每个候选知识点标题的用户反馈级别及该用户反馈级别的相对概率,确定所述多个候选知识点标题中每个候选知识点标题的排序;
第二匹配单元,用于根据所述排序单元确定的每个候选知识点标题的排序,从所述第一匹配单元得到的多个候选知识点标题中选择至少一个候选知识点标题,将所述至少一个候选知识点标题作为与所述用户问句匹配的知识点标题。
第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
通过本说明书实施例提供的方法和装置,首先获取当前用户查询信息,其中,所述当前用户查询信息包括当前用户问句,然后针对当前用户问句,利用多种算法得到与所述当前用户问句匹配的多个候选知识点标题,接着将当前用户查询信息和每个候选知识点标题组成的每组对话信息作为预先训练的深度反馈模型的输入,通过所述深度反馈模型的输出得到每个候选知识点标题的用户反馈级别及该用户反馈级别的相对概率,再根据每个候选知识点标题的用户反馈级别及该用户反馈级别的相对概率,确定所述多个候选知识点标题中每个候选知识点标题的排序,最后根据每个候选知识点标题的排序,从所述多个候选知识点标题中选择至少一个候选知识点标题,将所述至少一个候选知识点标题作为与所述用户问句匹配的知识点标题。由上可见,本说明书实施例中,在问答匹配过程中,通过预先训练的深度反馈模型对每个候选知识点标题的用户反馈进行预测,根据用户反馈从多个候选知识点标题中选择匹配的知识点标题,能够提升机器人答案的整体用户满意度。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书披露的一个实施例的实施场景示意图;
图2示出根据一个实施例的用户问句与知识点标题的匹配方法流程图;
图3为本发明实施例提供的一种深度反馈模型的结构示意图;
图4为本发明实施例提供的一种嵌入层的结构示意图;
图5示出根据一个实施例的用户问句与知识点标题的匹配装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1为本说明书披露的一个实施例的实施场景示意图。该实施场景涉及用户问句与知识点标题的匹配,其中,用户问句为用户输入的问句,通常语言口语化、简略化,甚至可能包含方言或错别字;而知识点标题可以理解为知识点对应的标准问句。在将用户问句与知识点匹配的过程中,首先要将用户问句与知识点标题相匹配,然后再根据匹配到的知识点标题找到对应的知识点。在一个示例中,用户问句为“购买了收款码怎么退款”,该用户问句匹配到的标准问题为“收钱码付款后能退款吗”。
参照图1,在问答匹配过程中,首先将用户问句输入采用不同算法的多个问答引擎,从而得到多个候选知识点标题,然后决策模块在获取多个候选知识点标题后,通过预先训练的深度反馈模型对每个候选知识点标题的用户反馈进行预测,根据用户反馈对多个候选知识点标题进行排序,根据排序从多个候选知识点标题中选择匹配的知识点标题,也就是说,根据排序输出多个问答引擎中一个引擎的结果。
本说明书实施例中,在机器人匹配答案的过程中,引入用户行为反馈信息,可以对机器人的匹配起到指导作用。通过收集用户端的反馈行为,并对这些行为进行分类建模,来引入用户对当前答案的正向反馈与负向反馈信息。并通过深度反馈模型对用户的反馈进行预测,应用至机器人决策模块,用来提升机器人答案的整体匹配度和用户满意度。
图2示出根据一个实施例的用户问句与知识点标题的匹配方法流程图。如图2所示,该实施例中用户问句与知识点标题的匹配方法包括以下步骤:步骤21,获取当前用户查询信息,其中,所述当前用户查询信息包括当前用户问句;步骤22,针对当前用户问句,利用多种算法得到与所述当前用户问句匹配的多个候选知识点标题;步骤23,将当前用户查询信息和每个候选知识点标题组成的每组对话信息作为预先训练的深度反馈模型的输入,通过所述深度反馈模型的输出得到每个候选知识点标题的用户反馈级别及该用户反馈级别的相对概率;步骤24,根据每个候选知识点标题的用户反馈级别及该用户反馈级别的相对概率,确定所述多个候选知识点标题中每个候选知识点标题的排序;步骤25,根据每个候选知识点标题的排序,从所述多个候选知识点标题中选择至少一个候选知识点标题,将所述至少一个候选知识点标题作为与所述用户问句匹配的知识点标题。下面描述以上各个步骤的具体执行方式。
首先在步骤21,获取当前用户查询信息,其中,所述当前用户查询信息包括当前用户问句。
在一个示例中,所述当前用户查询信息还包括如下至少一种扩展信息:用户行为轨迹信息、场景埋点信息和业务类型信息。
其中,用户的行为轨迹信息可以用于指示用户在客服页面提问之前在应用(Applicationapp)内的一些行为,比如浏览了花呗页面,查看了账单页面等等。
场景埋点信息可以用于指示用户进入客服页面的场景,例如用户从花呗页面进入,或者从余额宝收益页面进入。
业务类型信息可以用于指示当前用户问句对应的业务类型。例如,业务类型信息具体可以为当前用户的历史交易数据,举例来说,在用户账单场景下,根据用户交易账单信息来明确业务类型,例如用户话费账单进入,历史交易有充值话费的账单交易,则当前用户问句对应的业务类型即为手机话费充值业务类型,如果有充值流量的交易记录,则当前用户问句对应的业务类型即为手机流量充值业务类型。
接着在步骤22,针对当前用户问句,利用多种算法得到与所述当前用户问句匹配的多个候选知识点标题。可以理解的是,其中,利用所述多种算法中的每种算法得到一个或多个候选知识点标题。并且,不同的算法确定出的与当前用户问句匹配的知识点标题中可能存在相同的知识点标题。
为了明确算法与候选知识点标题的关系,本说明书实施例中通过表格展示二者之间的关系,如表一所示为多种算法与候选知识点标题的对应关系表。
表一:多种算法与候选知识点标题的对应关系表
参见表一,用于确定候选知识点标题的多种算法包括算法1、算法2和算法3,其中,通过算法1确定出的与当前用户问句匹配的知识点标题为知识点标题A,通过算法2确定出的与当前用户问句匹配的知识点标题为知识点标题B、A,通过算法3确定出的与当前用户问句匹配的知识点标题为知识点标题C,最后得到的候选知识点标题包括知识点标题A、B、C。
本说明书实施例中,对于用于确定候选知识点标题所采用的算法不做具体限定。
作为示例,可以采用一种算法包括语义解析算法,该算法是一种偏语法的算法,主体思想是将自然语言转化为一系列形式化的逻辑形式(logic form),通过对逻辑形式进行自底向上的解析,得到一种可以表达整个问题语义的逻辑形式,通过相应的查询语句(类似lambda-Caculus)在知识库中进行查询,从而得出答案。
作为示例,可以采用的另一种算法包括信息抽取算法,该算法通过提取问题中的实体,通过在知识库中查询该实体可以得到以该实体节点为中心的知识库子图,子图中的每一个节点或边都可以作为候选答案,通过观察问题依据某些规则或模板进行信息抽取,得到问题特征向量,建立分类器通过输入问题特征向量对候选答案进行筛选,从而得出最终答案。
作为示例,可以采用的另一种算法包括向量建模算法,该算法思想和信息抽取的思想比较接近,根据问题得出候选答案,把问题和候选答案都映射为分布式表达(distributed embedding),通过训练数据对该分布式表达进行训练,使得问题和正确答案的向量表达的得分(通常以点乘为形式)尽量高。模型训练完成后则可根据候选答案的向量表达和问题表达的得分进行筛选,得出最终答案。
然后在步骤23,将当前用户查询信息和每个候选知识点标题组成的每组对话信息作为预先训练的深度反馈模型的输入,通过所述深度反馈模型的输出得到每个候选知识点标题的用户反馈级别及该用户反馈级别的相对概率。其中,用户反馈级别的相对概率用于指示预测为该用户反馈级别的可能性,相对概率越大,则可能性越大。
可以理解的是,在步骤23之前,需要对深度反馈模型进行预先训练。
作为示例,训练的过程可以包括:获取机器人问答的历史日志,所述历史日志包括多组历史查询信息、知识点标题和用户反馈数据;根据预先设定的用户反馈数据与用户反馈级别的对应关系,确定所述用户反馈数据对应的用户反馈级别,所述用户反馈级别包括用于指示正向反馈的级别、用于指示中性反馈的级别、用于指示负向反馈的级别;将每组历史查询信息、知识点标题和用户反馈级别作为深度反馈模型的一组训练样本,对所述深度反馈模型进行训练;其中,历史查询信息作为所述深度反馈模型的第一特征部分,知识点标题作为所述深度反馈模型的第二特征部分,用户反馈级别作为所述深度反馈模型的样本标签。
图3为本发明实施例提供的一种深度反馈模型的结构示意图,所述深度反馈模型包括嵌入层(embedding layer)、编码层(encoding layer)、交互层(interaction layer)、特征提取层(feature extraction layer)和输出层(output layer)。
在一个示例中,所述嵌入层用于将所述当前用户问句的分词转化为对应的第一分向量;以及将所述至少一种扩展信息转化为对应的第二分向量;所述嵌入层将所述第一分向量和所述第二分向量进行拼接,得到所述当前用户查询信息对应的合成向量。
进一步地,所述嵌入层用于将所述当前用户问句的分词转化为对应的第一分向量,包括:根据预先训练好的词嵌入模型,确定分词对应的词向量;根据分词的词性,确定分词对应的词性特征向量;根据分词是否出现在知识点标题中,确定分词对应的精确匹配特征向量;根据分词在预先建立的业务导图中匹配的节点,确定分词对应的导图特征向量;将所述词向量、所述词性特征向量、所述精确匹配特征向量和所述导图特征向量进行拼接,得到分词对应的第一分向量。
进一步地,所述至少一种扩展信息包括用户行为轨迹信息;所述嵌入层用于将所述至少一种扩展信息转化为对应的第二分向量,包括:将所述用户行为轨迹信息指示的多个轨迹点中的每个轨迹点的行为信息,转化为对应的轨迹向量;将多个轨迹向量求平均,得到所述用户行为轨迹信息对应的第二分向量。
进一步地,所述编码层包括两层网络子层和一层自注意力子层;所述两层网络子层中的一层用于将输入向量的一部分进行非线性操作,另一部分直接映射到输出层;所述注意力子层以注意力矩阵中的注意力系数为权重,对输入向量进行加权平均处理。
再在步骤24,根据每个候选知识点标题的用户反馈级别及该用户反馈级别的相对概率,确定所述多个候选知识点标题中每个候选知识点标题的排序。
本说明书实施例中,约倾向于用于指示用户正向反馈的用户反馈级别的相对概率越高则相应的候选知识点标题的排序越靠前,或者,用于指示用户负向反馈的用户反馈级别的相对概率越低则相应的候选知识点标题的排序越靠前,根据最终的相对概率对候选知识点标题做排序操作。
最后在步骤25,根据每个候选知识点标题的排序,从所述多个候选知识点标题中选择至少一个候选知识点标题,将所述至少一个候选知识点标题作为与所述用户问句匹配的知识点标题。
可以理解的是,可以输出排序最靠前的引擎结果,完成最终的机器人引擎决策。
通过本说明书实施例提供的方法,首先获取当前用户查询信息,其中,所述当前用户查询信息包括当前用户问句,然后针对当前用户问句,利用多种算法得到与所述当前用户问句匹配的多个候选知识点标题,接着将当前用户查询信息和每个候选知识点标题组成的每组对话信息作为预先训练的深度反馈模型的输入,通过所述深度反馈模型的输出得到每个候选知识点标题的用户反馈级别及该用户反馈级别的相对概率,再根据每个候选知识点标题的用户反馈级别及该用户反馈级别的相对概率,确定所述多个候选知识点标题中每个候选知识点标题的排序,最后根据每个候选知识点标题的排序,从所述多个候选知识点标题中选择至少一个候选知识点标题,将所述至少一个候选知识点标题作为与所述用户问句匹配的知识点标题。由上可见,本说明书实施例中,在问答匹配过程中,通过预先训练的深度反馈模型对每个候选知识点标题的用户反馈进行预测,根据用户反馈从多个候选知识点标题中选择匹配的知识点标题,能够提升机器人答案的整体用户满意度。
下面介绍图2所示实施例的一些具体的可选的细节。
首先,涉及用户反馈数据的建模,即预先设定用户反馈数据与用户反馈级别的对应关系。
用户在与机器人进行交互的过程中,机器人端可以有非常多的行为。机器人端会针对用户问题推送不同的知识点,根据对回答不同的置信程度,将推送的答案分为A类和B类,A类答案推送一条知识点标题和知识点内容,B类答案只推送三条相关知识点标题,用户可以进行点选,同时对机器人的推送,还有丰富的评价按钮。同时,根据机器人推送给用户的知识点答案,用户端也有着非常丰富的反馈行为,例如A类点赞或点踩、B类点击等等,这些丰富的用户端行为能够为评价答案有一定的指导意义。作为示例,可以将机器人的动作与用户的行为模式进行如表二所示的分类:
表二:用户反馈数据分级分类表
表二列举了用户端不同的反馈动作,这些反馈动作有些是对机器人推送知识点的肯定评价,例如A类点赞、B类点击等,有些是对机器人推送知识点的负面评价,例如A类点踩等,根据用户的正负向反馈程度,将用户反馈划分为GradeOne、GradeTwo、GradeThree三个级别,GradeOne是正向反馈,GradeTwo是中性反馈,GradeThree是负向反馈。使用线上用户机器人问答的历史日志,并根据用户的反馈级别对每个对话进行反馈分级,建立反馈样本数据,这些样本数据用来训练深度反馈模型。
然后,涉及深度反馈模型的训练。
本说明书实施例中,使用深度反馈模型来预测当前用户查询信息(可记为query)和候选知识点标题(可记为title)的用户反馈级别。深度反馈模型的模型结构如图3所示。模型的输入端有两个,一个是当前用户查询信息,包含用户行为轨迹信息、场景埋点信息、业务类型信息(可记为tagId)等信息,另一个是候选知识点标题。这两个信息分别进入嵌入层,编码层得到query和title的向量表示,其中,这两层模型在query端和title端参数是一致的。然后进入交互层对query和title进行词对词的交互,然后使用特征提取层进行语义特征的提取,最后,进入一层全连接层(fully connected)使用分类器(例如softmax)输出最终结果。
每一层详细的信息列举如下:
嵌入层,使用预先训练好的词向量对用户的query的分词进行词嵌入(embedding),嵌入层的具体结构如图4所示。用户问句的分词除了使用词向量之外,还引入许多其他的特征,包含词性(PosTag)特征,精确匹配(ExactMatch)特征和导图(tag)特征。词性特征用来标识当前词的词性,如动词、名词等,采用one-hot形式表示,精确匹配特征用来表示当前词是否在title中出现过,如果有,设为1,没有为0,导图(tag)特征用来表示当前词表示的导图节点,例如“高血压”、“白血病”这些属于“疾病类型”的导图(tag)特征,将这些表示拼接起来,形成每一个词的向量,就完成了分词的embedding,对于句子长度,归一化至20个词,词数较多的句子进行截取,不足的进行填充(padding)操作。同时,query端还引入了其他信息,用户行为轨迹信息是用户在客服页面提问之前在app内的一些行为,比如浏览了花呗页面,查看了账单页面等等,这些行为按照时间排列形成一个序列,同样可以用embedding的方式向量化,这些轨迹点向量以sum的方式求平均,得到一个用户行为的向量表示behave。同理,场景埋点信息和用户tag也可以表示成向量scene和tagid。场景埋点信息用于指示用户进入客服页面的场景,例如用户从花呗页面进入,或者从余额宝收益页面进入,那么用户的问题很可能跟场景埋点有关联。用户tag指的是在用户账单场景下,根据用户交易账单信息来明确业务类型,例如用户话费账单进入,历史交易有充值话费的账单交易,则用户tag即为手机话费充值,如果有充值流量的交易记录,则用户tag即为手机流量充值。这些额外的信息,对于理解用户问题有着至关重要的作用,所以query端不仅使用了用户问句分词,还使用了这些额外信息输入embedding层。而对于候选知识点标题(title),只使用标题的分词进行embedding,使用和query一致的词向量数据。
编码层,使用P∈Rp×d和H∈Rh×d分别表示嵌入输出的query端和title端的表示,先通过两层highwaynetwork得到query和title新的表示highwaynetwork主要解决的问题是网络深度加深,梯度信息回流受阻造成网络训练困难的问题,所以会有一部分的输入直接映射至输出层。以P为例,一层highway做以下操作:
上式中,H(·),T(·)均为非线性操作,可以看出,等式右半部分P直接有一部分直接映射至输出,起到了“highway”的作用。之后,会通过一层自注意力模型(self-attention),得到最终的encoding表示,self-attention层结构如下:
其中,Aij表示注意力模型的注意力系数,最终通过注意力系数对中每一个向量进行加权平均处理,得到基于注意力的query端和title端向量表示
交互层,query端的每一个向量与title端的每一个向量做交互,使用最基本的向量点乘处理:
其中,β(a,b)=a
特征提取层,采用DenseNet作为特征提取算子。DenseNet为近年提出的一个基于卷积神经网络(convolutional neural networks,CNN)的深度卷积网络,这种网络的最大特点是层与层之间具有密集连接,即:
xl=Hl([x0,x1,…,xl-1])
上式表示加入当前层是第l层,则当前层的输出xl整合了之前所有层的输出x0,x1,...,xl-1,Hl(·)是卷积算子。
本说明书实施例中,特征提取层不仅可以使用DenseNet,也可以使用ResNet,VGG等卷积模型。
输出层,采用一层全连接层和softmax将输出映射为三个类别的分类,分别表示GradeOne、GradeTwo、GradeThree三个级别的反馈。
在一个示例中,以上深度反馈网络在训练时采用之前对用户反馈数据建模得到的数据,数据量约3000w。模型应用时,使用训练好的模型在线预测用户query和当前title用户的反馈级别,来指导机器人端推送知识点的策略。
最后,基于反馈模型的引擎决策。
使用训练好的深度反馈模型来指导机器人决策。机器人决策流程可以参照图1所示。机器人有n个算法引擎,通过不同的算法得到当前query对应的知识点结果,对于一个用户query,会并发的请求所有n个引擎拿到所有的结果,这些结果会集中至决策模块,由决策模块决定输出哪一个引擎的结果会更好,决策模块会将用户query和候选的知识点title发送至服务端的深度反馈模型,使用训练好的反馈模型预测用户反馈的级别并打分,打分结果会输入至排序模块进行最终的排序操作,预测结果约倾向于用户正向反馈的打分分值(即相对概率)越高,预测结果约倾向于用户负向反馈的打分分值越低,根据最终打分对候选的title做排序操作,并输出排序最靠前的引擎结果,完成最终的机器人引擎决策。
本说明书实施例的算法投放效果已经得到实际验证。
机器人决策模型投放线上之后,经过多次调整,AB实验提升实验桶解决率约0.4%,标注数据集diff匹配率提升约20%,具有不错的效果。表三展示了一部分应用决策模型之前和之后的效果对比,可以发现,使用决策模型之后,机器人的匹配精度和质量有了提升。
表三:问答匹配对应关系表
由表三可见,使用本说明书实施例提供的决策模型后,问答匹配效果更好,能够提升机器人答案的整体用户满意度。
根据另一方面的实施例,还提供一种用户问句与知识点标题的匹配装置。图5示出根据一个实施例的用户问句与知识点标题的匹配装置的示意性框图。如图5所示,该装置500包括:
获取单元51,用于获取当前用户查询信息,其中,所述当前用户查询信息包括当前用户问句;
第一匹配单元52,用于针对所述获取单元51获取的当前用户问句,利用多种算法得到与所述当前用户问句匹配的多个候选知识点标题;
反馈预测单元53,用于将所述获取单元51获取的当前用户查询信息和所述第一匹配单元52得到的每个候选知识点标题组成的每组对话信息作为预先训练的深度反馈模型的输入,通过所述深度反馈模型的输出得到每个候选知识点标题的用户反馈级别及该用户反馈级别的相对概率;
排序单元54,用于根据所述反馈预测单元53得到的每个候选知识点标题的用户反馈级别及该用户反馈级别的相对概率,确定所述多个候选知识点标题中每个候选知识点标题的排序;
第二匹配单元55,用于根据所述排序单元54确定的每个候选知识点标题的排序,从所述第一匹配单元52得到的多个候选知识点标题中选择至少一个候选知识点标题,将所述至少一个候选知识点标题作为与所述用户问句匹配的知识点标题。
可选地,作为一个实施例,所述第一匹配单元52,具体用于利用所述多种算法中的每种算法得到一个或多个候选知识点标题。
可选地,作为一个实施例,所述获取单元51,还用于在所述反馈预测单元53将所述获取单元51获取的当前用户查询信息和所述第一匹配单元52得到的每个候选知识点标题组成的每组对话信息作为预先训练的深度反馈模型的输入,通过所述深度反馈模型的输出得到每个候选知识点标题的用户反馈级别及该用户反馈级别的相对概率之前,获取机器人问答的历史日志,所述历史日志包括多组历史查询信息、知识点标题和用户反馈数据;
所述装置还包括:
级别确定单元,用于根据预先设定的用户反馈数据与用户反馈级别的对应关系,确定所述获取单元51获取的用户反馈数据对应的用户反馈级别,所述用户反馈级别包括用于指示正向反馈的级别、用于指示中性反馈的级别、用于指示负向反馈的级别;
训练单元,用于将所述获取单元51获取的每组历史查询信息、知识点标题和用户反馈级别作为深度反馈模型的一组训练样本,对所述深度反馈模型进行训练;其中,历史查询信息作为所述深度反馈模型的第一特征部分,知识点标题作为所述深度反馈模型的第二特征部分,用户反馈级别作为所述深度反馈模型的样本标签。
可选地,作为一个实施例,所述获取单元51获取的当前用户查询信息还包括如下至少一种扩展信息:用户行为轨迹信息、场景埋点信息和业务类型信息。
进一步地,所述反馈预测单元53利用的所述深度反馈模型包括嵌入层、编码层、交互层、特征提取层和输出层;
所述嵌入层用于将所述当前用户问句的分词转化为对应的第一分向量;以及将所述至少一种扩展信息转化为对应的第二分向量;
所述嵌入层将所述第一分向量和所述第二分向量进行拼接,得到所述当前用户查询信息对应的合成向量。
进一步地,所述反馈预测单元53利用的所述嵌入层用于将所述当前用户问句的分词转化为对应的第一分向量,包括:
根据预先训练好的词嵌入模型,确定分词对应的词向量;
根据分词的词性,确定分词对应的词性特征向量;
根据分词是否出现在知识点标题中,确定分词对应的精确匹配特征向量;
根据分词在预先建立的业务导图中匹配的节点,确定分词对应的导图特征向量;
将所述词向量、所述词性特征向量、所述精确匹配特征向量和所述导图特征向量进行拼接,得到分词对应的第一分向量。
进一步地,所述至少一种扩展信息包括用户行为轨迹信息;所述反馈预测单元53利用的所述嵌入层用于将所述至少一种扩展信息转化为对应的第二分向量,包括:
将所述用户行为轨迹信息指示的多个轨迹点中的每个轨迹点的行为信息,转化为对应的轨迹向量;
将多个轨迹向量求平均,得到所述用户行为轨迹信息对应的第二分向量。
进一步地,所述反馈预测单元53利用的所述编码层包括两层网络子层和一层自注意力子层;所述两层网络子层中的一层用于将输入向量的一部分进行非线性操作,另一部分直接映射到输出层;
所述注意力子层以注意力矩阵中的注意力系数为权重,对输入向量进行加权平均处理。
通过本说明书实施例提供的装置,首先由获取单元51获取当前用户查询信息,其中,所述当前用户查询信息包括当前用户问句,然后由第一匹配单元52针对当前用户问句,利用多种算法得到与所述当前用户问句匹配的多个候选知识点标题,接着由反馈预测单元53将当前用户查询信息和每个候选知识点标题组成的每组对话信息作为预先训练的深度反馈模型的输入,通过所述深度反馈模型的输出得到每个候选知识点标题的用户反馈级别及该用户反馈级别的相对概率,再由排序单元54根据每个候选知识点标题的用户反馈级别及该用户反馈级别的相对概率,确定所述多个候选知识点标题中每个候选知识点标题的排序,最后由第二匹配单元55根据每个候选知识点标题的排序,从所述多个候选知识点标题中选择至少一个候选知识点标题,将所述至少一个候选知识点标题作为与所述用户问句匹配的知识点标题。由上可见,本说明书实施例中,在问答匹配过程中,通过预先训练的深度反馈模型对每个候选知识点标题的用户反馈进行预测,根据用户反馈从多个候选知识点标题中选择匹配的知识点标题,能够提升机器人答案的整体用户满意度。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图1或图2所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图1或图2所描述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。