客服机器人知识库歧义检测方法、装置及相关设备

文档序号:7696 发布日期:2021-09-17 浏览:26次 英文

客服机器人知识库歧义检测方法、装置及相关设备

本申请要求于2018年07月19日提交中国专利局、申请号为201810801678.8、发明名称为“客服机器人知识库歧义检测方法”的中国专利申请的分案申请。

技术领域

本申请涉及人工智能

技术领域

,尤其是一种客服机器人知识库歧义检测方法、装置及相关设备。

背景技术

随着互联网用户的增加,企业的客服部门服务压力不断增大。由于大多数用户遇到的问题都是重复出现的,这些重复的问题往往可以用固定模板进行回答。为了减少客服中心的人工成本,可引入机器人客服,用程序判断用户的问题类型,如果问题属于FAQ(Frequently Asked Questions,经常问到的问题),则直接给出一个标准答案,反之则转接人工服务进行特殊干预。

相关技术中,客服机器人利用机器学习技术识别用户意图,将意图识别转化成问句分类问题。每个FAQ对应一个类别,每个类别有一句以上的相似问句。所有FAQ和对应的相似问句构成了机器人的知识库。

机器学习模型的效果往往依赖于从知识库中选出的训练数据,特别是训练数据的标注准确率会对模型效果产生较大影响。但由于时间和人工精力的限制,知识库往往会存在大量歧义,如问句对应到错误的类别、类别与类别语义重合等,这些歧义会导致模型学习到错误的知识,从而对模型的准确率产生负面影响,而由于机器学习训练过程中需要大量的标注数据,无法单纯依赖人工去发现并处理这些歧义,因此如何对知识库进行歧义检测,并辅助人工消除知识库歧义成为相关技术人员亟待解决的问题。

发明内容

为至少在一定程度上克服相关技术中存在的问题,本申请提供一种客服机器人知识库歧义检测方法、装置及相关设备。

第一方面,本申请提供一种客服机器人知识库歧义检测方法,包括:

构建知识库,所述知识库按FAQ划分,每个FAQ设有至少一个相似问句,且每个FAQ为一个类别;

将所述知识库划分为深度学习模型的测试集和训练集;

在训练集上训练深度学习模型,并利用学习出的所述深度学习模型进行歧义检测;

根据歧义检测结果更新所述知识库;

重复上述步骤直到学习效果不再提升,得到消除歧义的知识库。

进一步的,所述将所述知识库划分为深度学习模型的测试集和训练集,包括:随机抽取每个FAQ对应的预设数量的相似问句作FAQ对应类别的测试数据,其余相似问句作为所述FAQ对应类别的训练数据。所有类别的测试数据构成测试集,所有类别的训练数据构成训练集。

进一步的,所述深度学习模型包括:特征提取器、浅层分类器,所述在训练集上训练深度学习模型,包括:

将所述训练集中FAQ中的问句作为输入部分输入到所述深度学习模型;

利用所述深度学习模型中的特征提取器将输入部分中的问句转化成特征向量;

利用所述深度学习模型中的浅层分类器根据所述特征向量计算出预测结果,所述预测结果为输入部分中的问句所对应的类别;

利用优化器优化训练模型,将训练集中问句标注的实际类别和所述深度学习模型预测结果的平均差异最小化;

用测试集对训练完的模型进行评估,计算模型预测结果和测试集中问句标注的实际类别的一致率,作为模型学习效果的评估。

进一步的,所述歧义检测包括:类别歧义检测、标注错误检测和标注歧义检测,所述利用学习出的所述深度学习模型进行歧义检测,包括:

利用深度学习模型中特征提取器检测歧义;

利用深度学习模型中浅层分类器检测歧义。

进一步的,所述利用深度学习模型中特征提取器检测歧义,包括:

用所述深度学习模型中的特征提取器将数据集中的相似问句转化成特征向量,所述数据集包括训练集或/和测试集;

将问句对应的特征向量组合成问句特征向量对(x,y),其中特征向量x对应的问句和特征向量y对应的问句分别来自不同类别;

计算每组问句特征向量对的向量相似度cos(x,y),所述

将所有问句特征向量对按所述向量相似度从高到低排序,选择所述向量相似度排名靠前的问句特征向量对,并根据所述向量相似度排名靠前的问句特征向量对判断是否存在歧义。

更进一步的,所述根据所述向量相似度排名靠前的问句特征向量对判断是否存在歧义,包括:

判断是否存在标注歧义或标注错误:提取第一预设数量的所述相似度排名靠前的问句特征向量对,人工检查对应的问句对是否存在标注歧义和标注错误;

判断是否存在类别歧义:对于所述第一预设数量的问句特征向量对,统计对应类别对重复出现的次数,按照出现次数从高到低排序,取第二预设数量的类别对,人工检查是否存在类别歧义。

进一步的,所述利用深度学习模型浅层分类器检测歧义,包括:

将深度学习模型分类结果进行统计并形成混淆矩阵,所述混淆矩阵的每行i对应标注的类别,每列j对应所述深度学习模型预测的类别,元素xij是标注为类别i,而模型预测为类别j的问句个数,元素xji是标注为类别j,而模型预测为类别i的问句个数;

计算数据集中标注为类别i的样本个数,所述类别i的样本个数为其中k为任意类别;

计算数据集中标注为类别j的样本个数,所述类别j的样本个数为其中k为任意类别;

计算数据集中将标注为类别i的样本被所述深度学习模型预测为类别j的比例Pij与将标注为类别j的样本预测到类别i的比例Pji,所述Pij和Pji计算公式分别为:所述类别i与所述类别j属于不同类别,所述数据集包括训练集或/和测试集;

计算类别对(类别i、类别j)的混淆度,所述混淆度为Pij和Pji的调和平均值Sij,所述

根据混淆度判断类别i与类别j是否存在歧义。

更进一步的,所述根据混淆度判断类别i、类别j是否存在歧义,包括:

对计算出的混淆度进行排序;

提取第三预设数量的混淆度排名靠前的类别,人工检测是否存在类别歧义。

进一步的,所述利用深度学习模型浅层分类器检测歧义,还包括:找出数据集中标注的实际类别和深度学习模型预测的类别不一致的数据,人工检查是否存在标注错误,所述数据集包括训练集或/和测试集。

进一步的,所述根据歧义检测结果更新所述知识库,包括:

对检测出的歧义问句进行人工改写、人工重新标注,并删除原标注;

对检测出的歧义类别进行相似问句的重新组合、分配,并删除原歧义类别。

第二方面,本申请提供一种客服机器人知识库歧义检测装置,包括:

构建模块,用于构建知识库,所述知识库按FAQ划分,每个FAQ设有至少一个相似问句,且每个FAQ为一个类别;

划分模块,用于将所述知识库划分为深度学习模型的测试集和训练集;

训练模块,用于在训练集上训练深度学习模型,并利用学习出的所述深度学习模型进行歧义检测;所述歧义检测包括:类别歧义检测、标注错误检测和标注歧义检测,所述利用学习出的所述深度学习模型进行歧义检测,包括:利用深度学习模型中浅层分类器检测歧义,包括:将深度学习模型分类结果进行统计并形成混淆矩阵,所述混淆矩阵的每行i对应标注的类别,每列j对应所述深度学习模型预测的类别,元素xij是标注为类别i,而模型预测为类别j的问句个数,元素xji是标注为类别j,而模型预测为类别i的问句个数;计算数据集中标注为类别i的样本个数,所述类别i的样本个数为其中k为任意类别;计算数据集中标注为类别j的样本个数,所述类别j的样本个数为其中k为任意类别;计算数据集中将标注为类别i的样本被所述深度学习模型预测为类别j的比例Pij与将标注为类别j的样本预测到类别i的比例Pji,所述Pij和Pji计算公式分别为:所述类别i与所述类别j属于不同类别,所述数据集包括训练集或/和测试集;计算类别对(类别i、类别j)的混淆度,所述混淆度为Pij和Pji的调和平均值Sij,所述根据混淆度判断类别i与类别j是否存在歧义;

更新模块,用于根据歧义检测结果更新所述知识库;

重复模块,用于重复上述步骤直到学习效果不再提升,得到消除歧义的知识库。

第三方面,本申请提供一种电子设备,包括:

至少一个存储器,用于存储程序;

至少一个处理器,用于加载所述程序以执行如第一方面任一项所述的客服机器人知识库歧义检测方法。

第四方面,本申请提供一种计算机可读存储介质,其中存储有处理器可执行的程序,包括:

所述处理器可执行的程序在由处理器执行时用于执行如第一方面任一项所述的客服机器人知识库歧义检测方法。

本申请的实施例提供的技术方案可以包括以下有益效果:

本申请根据歧义检测结果更新所述知识库,重复训练步骤直到学习效果达到预期标准,可以辅助人工发现并修正知识库歧义,得到消除歧义的知识库,从消除歧义的知识库中提取数据作为深度学习模型的训练集和测试集,进一步提高深度学习模型学习效果。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

图1是本申请一个实施例提供的客服机器人知识库歧义检测方法的流程示意图。

图2是本申请另一个实施例提供的客服机器人知识库歧义检测方法的流程示意图。

具体实施方式

下面结合附图和实施例对本发明进行详细的描述。

图1是本申请一个实施例提供的客服机器人知识库歧义检测方法的流程示意图。

如图1所示,本实施例的方法包括:

S11:构建知识库,知识库按FAQ划分,每个FAQ各带有数量不定的相似问句,每个FAQ即为一个类别。

所述知识库是在大规模知识处理基础上发展起来的一项面向行业应用的,适用大规模知识处理、自然语言理解、知识管理、自动问答系统、推理等等技术行业,智能客服不仅为企业提供了细粒度知识管理技术,还为企业与海量用户之间的沟通建立了一种基于自然语言的快捷有效的技术手段。以一个电商企业的客服机器人知识库为例,所述知识库中包含多个FAQ,例如“退货流程”,“退款流程”。以“退货流程”为例,该FAQ可能包含以下相似问句:“我昨天买的东西怎么退货?”,“我想退货,应该怎么操作?”。

S12:将所述知识库划分为深度学习模型的测试集和训练集。

从所述知识库中选取需要检测歧义的N个FAQ,作为N个类别。对于每个FAQ,随机抽取预设数量的相似问句作该类别的测试数据,其余相似问句作为该类别的训练数据。所有类别的测试数据构成测试集,所有类别的训练数据构成训练集。

例如,所述知识库内包含10个FAQ,每个FAQ各包含20个相似问句,从知识库的每个类别中随机抽取预设量例如为3个相似问句作为深度学习模型的测试集,则所述测试集内包含30个相似问句,而其余170个相似问句被纳入深度学习模型的训练集。

需要说明的是,本发明所涉及的知识库内包含类别的数量、每个类别包含相似问句的数量不限于实施例中所涉及的举例,此处不再赘述。

S13:在训练集上训练深度学习模型,并利用学习出的所述深度学习模型进行歧义检测。

所述深度学习模型包括:特征提取器、浅层分类器。

所述歧义检测包括:类别歧义检测、标注错误检测和标注歧义检测;

所述歧义包括:

类别歧义:即两个类别的意思很相近,例如类别1为“订单问题”,类别2为“产品的变更取消问题”,类别1的语义和类别2的语义有重合,因为类别1基本可涵盖类别2;

标注歧义:即问句可以同时标为多个类,例如:类别1为“产品的退货问题”,类别2为“产品的价格问题”,如果问句是“这东西太贵了,我想退货”,则此句话存在标注歧义,因为该问句同时包含了所述两个类别的意思;

标注错误:问句对应到错误的类别,例如类别1为“产品的退货问题”,类别2为“产品的价格问题”,如果问句是“我不想要了”,却被标注成类别2,则会产生标注错误。

所述歧义检测针对测试集或\和训练集。

所述利用学习出的所述深度学习模型进行歧义检测,包括:

利用深度学习模型中特征提取器检测歧义;

利用深度学习模型中浅层分类器检测歧义;

所述利用深度学习模型中特征提取器检测歧义,包括:

用所述深度学习模型中的特征提取器将数据集中的相似问句转化成特征向量,所述数据集包括训练集或/和测试集;

将问句对应的特征向量组合成问句特征向量对(x,y),其中特征向量x对应的问句和特征向量y对应的问句分别来自不同类别;

计算每组问句特征向量对的向量相似度cos(x,y),所述

将所有问句特征向量对按所述向量相似度从高到低排序,选择所述向量相似度排名靠前的问句特征向量对,并根据所述向量相似度排名靠前的问句特征向量对判断是否存在歧义。

所述根据所述向量相似度排名靠前的问句特征向量对判断是否存在歧义,包括:

判断是否存在标注歧义或标注错误:提取第一预设数量例如为30个所述相似度排名靠前的问句特征向量对,人工检查对应的问句对是否存在标注歧义和标注错误;

判断是否存在类别歧义:对于所述第一预设数量的问句特征向量对,统计对应类别对重复出现的次数,按照出现次数从高到低排序,取第二预设数量例如为20个类别对,人工检查是否存在类别歧义。

所述利用深度学习模型浅层分类器检测歧义,包括:

将深度学习模型分类结果进行统计并形成混淆矩阵,所述混淆矩阵的每行i对应标注的类别,每列j对应所述深度学习模型预测的类别,元素xij是标注为类别i,而模型预测为类别j的问句个数,元素xji是标注为类别j,而模型预测为类别i的问句个数;

计算数据集中标注为类别i的样本个数,所述类别i的样本个数为其中k为任意类别;

计算数据集中标注为类别j的样本个数,所述类别j的样本个数为其中k为任意类别;

计算数据集中将标注为类别i的样本被所述深度学习模型预测为类别j的比例Pij与将标注为类别j的样本预测到类别i的比例Pji,所述Pij和Pji计算公式分别为:所述类别i与所述类别j属于不同类别,所述数据集包括训练集或/和测试集;

计算类别对(类别i、类别j)的混淆度,所述混淆度为Pij和Pji的调和平均值Sij,所述

根据混淆度判断类别i与类别j是否存在歧义。

所述根据混淆度判断类别i、类别j是否存在歧义,包括:

对计算出的混淆度进行排序;

提取第三预设数量例如为5个混淆度排名靠前的类别对,人工检测是否存在类别歧义。

所述利用深度学习模型浅层分类器检测歧义,还包括:找出数据集中标注的实际类别和深度学习模型预测的类别不一致的数据,人工检查是否存在标注错误,所述数据集包括训练集或/和测试集。

S14:根据歧义检测结果更新所述知识库,包括:

对检测出的歧义问句进行人工改写、人工重新标注,并删除原标注;

对检测出的歧义类别进行相似问句的重新组合、分配,并删除原歧义类别。

S15:重复上述步骤直到学习效果不再提升,得到消除歧义的知识库。

所述学习效果为模型预测结果和测试集中问句标注的实际类别的一致率,所述一致率例如为预测准确率,即预测结果一致的问句数量除以总的问句数量。所述学习效果不再提升例如为预测准确率提升小于0.5%。

当模型学习效果不再提升时,说明因知识库歧义导致的模型性能下降已消除,可以利用所述知识库训练模型并部署到生产环境中使用。

本实施例中,根据歧义检测结果更新所述知识库,重复训练步骤直到学习效果达到预期标准,可以辅助人工发现并修正知识库歧义,得到消除歧义的知识库,从消除歧义的知识库中提取数据作为深度学习模型的训练集和测试集,进一步提高深度学习模型学习效果。

图2是本申请另一个实施例提供的客服机器人知识库歧义检测方法的流程示意图。

如图2所示,所述在训练集上训练深度学习模型,包括:

所述深度学习的概念源于人工神经网络的研究,含多隐层的多层感知器。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。所述深度学习模型包括特征提取器和浅层分类器。

S21:将所述训练集中的问句作为输入部分输入到所述深度学习模型;

S22:利用所述深度学习模型中的特征提取器将输入部分中的问句转化成特征向量;

所述特征提取器例如为循环神经网络。该模型按顺序读入问句中的每个词,并输出一个固定维度的特征向量。需要说明的是,特征提取器不限于所举例的循环神经网络,任何可以将问句转化成固定维度的特征向量的方法都可以作为特征提取器。

S23:利用所述深度学习模型中的浅层分类器根据所述特征向量计算出预测结果,所述预测结果为输入部分中的问句所对应的类别;

所述的浅层分类器例如为线性分类器。该分类器读入一个固定维度的特征向量,并计算向量元素的线性组合得出各个类别的打分,取打分最高的类别作为预测结果。需要说明的是,浅层分类器不限于所举例的线性分类器,任何可以将固定维度的特征向量转化成各个类别的打分的方法都可以作为浅层分类器。

S24:利用优化器优化训练模型,将训练集中问句标注的实际类别和所述深度学习模型预测结果的平均差异最小化;

所述平均差异例如为损失函数。所述损失函数例如为交叉熵。

所述优化器例如为梯度下降法。所述梯度下降是迭代法的一种,在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一。在求解损失函数的最小值时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数和相应的模型参数值。

S25:用测试集对训练完的模型进行评估,计算模型预测结果和测试集中问句标注的实际类别的一致率,作为模型学习效果的评估,所述一致率例如为预测准确率,即预测结果一致的问句数量除以总的问句数量。

本实施例中,利用深度学习模型对训练集中FAQ进行训练,在训练过程中利用优化器不断优化模型,不断迭代提升深度学习模型学习效果,并且不断提升歧义检测正确率。

本申请一个实施例提供一种客服机器人知识库歧义检测装置,包括:

构建模块,用于构建知识库,所述知识库按FAQ划分,每个FAQ设有至少一个相似问句,且每个FAQ为一个类别;

划分模块,用于将所述知识库划分为深度学习模型的测试集和训练集;

训练模块,用于在训练集上训练深度学习模型,并利用学习出的所述深度学习模型进行歧义检测;所述歧义检测包括:类别歧义检测、标注错误检测和标注歧义检测,所述利用学习出的所述深度学习模型进行歧义检测,包括:利用深度学习模型中浅层分类器检测歧义,包括:将深度学习模型分类结果进行统计并形成混淆矩阵,所述混淆矩阵的每行i对应标注的类别,每列j对应所述深度学习模型预测的类别,元素xij是标注为类别i,而模型预测为类别j的问句个数,元素xji是标注为类别j,而模型预测为类别i的问句个数;计算数据集中标注为类别i的样本个数,所述类别i的样本个数为其中k为任意类别;计算数据集中标注为类别j的样本个数,所述类别j的样本个数为其中k为任意类别;计算数据集中将标注为类别i的样本被所述深度学习模型预测为类别j的比例Pij与将标注为类别j的样本预测到类别i的比例Pji,所述Pij和Pji计算公式分别为:所述类别i与所述类别j属于不同类别,所述数据集包括训练集或/和测试集;计算类别对(类别i、类别j)的混淆度,所述混淆度为Pij和Pji的调和平均值Sij,所述根据混淆度判断类别i与类别j是否存在歧义;

更新模块,用于根据歧义检测结果更新所述知识库;

重复模块,用于重复上述步骤直到学习效果不再提升,得到消除歧义的知识库。

一些实施例中,还包括:

随机抽取模块,用于将知识库划分为深度学习模型的测试集和训练集,包括:随机抽取每个FAQ对应的预设数量的相似问句作FAQ对应类别的测试数据,其余相似问句作为所述FAQ对应类别的训练数据;所有类别的测试数据构成测试集,所有类别的训练数据构成训练集。

排序模块,用于对计算出的混淆度进行排序,提取第三预设数量的混淆度排名靠前的类别,人工检测是否存在类别歧义。

标注模块,用于利用深度学习模型浅层分类器检测歧义,还包括:找出数据集中标注的实际类别和深度学习模型预测的类别不一致的数据,人工检查是否存在标注错误,所述数据集包括训练集或/和测试集。

本申请一个实施例提供一种电子设备,包括:

至少一个存储器,用于存储程序;

至少一个处理器,用于加载所述程序以执行如上述实施例所述的客服机器人知识库歧义检测方法。

本申请一个实施例提供一种计算机可读存储介质,其中存储有处理器可执行的程序,包括:

所述处理器可执行的程序在由处理器执行时用于执行如上述实施例所述的客服机器人知识库歧义检测方法。

可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。

需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

需要说明的是,本发明不局限于上述最佳实施方式,本领域技术人员在本发明的启示下都可得出其他各种形式的产品,但不论在其形状或结构上作任何变化,凡是具有与本申请相同或相近似的技术方案,均落在本发明的保护范围之内。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:基于知识库的酒店客服方法、系统、电子设备和存储介质

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!