本发明涉及人工智能领域,尤其涉及一种基于知识图谱的意图跳转方法、装置、设备及存储介质。
背景技术:
垂直领域的智能人机交互系统的优越性取决于其多轮对话的能力,而常见的多轮对话系统通常采取如下策略:首先获取到用户问题后进行自然语言处理获取内在信息以及隐含信息;同时利用上下文信息进行对话意图判断以及场景建模,根据对话过程中已提供的信息以及预设模型中缺少的信息进行针对性的问答。显而易见,在上述策略中用户意图的不同将直接决定多轮对话系统分支的走向以及对话的推进。在多轮对话中,由于聊天的开放性和用户输入的随意性,在基于任务的对话过程中,用户往往会打断当前对话,进行新的问题的问询和希望得到新任务的答案。
现有开放域中基于数据驱动的用户意图切换识别方法,并不能准确地进行意图的切换,意图切换准确率较低。主要有两点原因,一是训练样本的匮乏,在限定域中难以收集大量的数据;二是识别依据单一,仅凭模型的训练经验往往并不能适应具体的应用场景,模型泛化能力较弱。
技术实现要素:
本发明的主要目的在于解决由现有意图跳转方法的意图切换准确率较低的问题。
本发明第一方面提供了一种基于知识图谱的意图跳转方法,包括:
基于预置产品数据、所述预置产品数据对应的知识图谱以及所述预置产品数据对应的意图跳转业务规则,创建历史对话;
提取所述历史对话中的至少一条实体信息,并基于所述知识图谱,依次创建与每个实体信息对应的元路径,得到元路径集,其中,所述元路径集包括多个元路径;
根据所述历史对话、所述元路径集对预置语言模型进行训练,得到预训练模型,并调用所述预训练模型,获取待判断问题的有效信息,得到所述待判断问题的至少一个有效字向量;
基于所述待判断问题的至少一个有效字向量,对所述待判断问题进行意图识别,得到所述待判断问题的意图;
基于所述待判断问题的至少一个有效字向量,计算意图切换概率,若所述意图切换概率大于预置阈值,则跳转至所述待判断问题的意图。
可选的,在本发明第一方面的第一种实现方式中,所述基于预置产品数据、所述预置产品数据对应的知识图谱以及所述预置产品数据对应的意图跳转业务规则,创建历史对话包括:
提取预置产品数据中的至少一条属性信息,并基于预置规则模板,依次对每个属性信息进行字符串拼接,得到至少一条产品问答数据;
基于所述至少一条产品问答数据、所述预置产品数据对应的知识图谱以及所述预置产品数据对应的意图跳转业务规则,构建正例样本集和负例样本集;
基于所述正例样本集和所述负例样本集,构建意图切换训练对话集;
将所述意图切换训练对话集中的至少两个对话语句进行合并,并对合并得到的长对话语句进行对话标识,得到历史对话。
可选的,在本发明第一方面的第二种实现方式中,所述根据所述历史对话、所述元路径集对预置语言模型进行训练,得到预训练模型包括:
调用所述预置语言模型中的多层翻译网络,对所述历史对话和所述元路径集进行编码,得到编码序列;
基于所述编码序列,对所述预置语言模型进行至少一项训练任务,得到预训练模型。
可选的,在本发明第一方面的第三种实现方式中,所述调用所述预置语言模型中的多层翻译网络,对所述历史对话和所述元路径集进行编码,得到编码序列包括:
调用所述多层翻译网络中的多层多头注意力子网络,对所述历史对话和所述元路径集进行上下文编码,得到上下文编码序列;
调用所述多层翻译网络中的多层前馈子网络,对所述上下文编码序列进行非线性变换,得到编码序列。
其中,所述多层翻译网络由多层多头自注意力子网络和多层前馈子网络组成。
可选的,在本发明第一方面的第四种实现方式中,所述调用所述多层翻译网络中的多层多头注意力子网络,对所述历史对话和所述元路径集进行上下文编码,得到上下文编码序列包括:
基于所述历史对话,对待编码序列进行段落嵌入,得到第一编码序列;
识别所述第一编码序列中的多个实体信息,并在所述元路径集中匹配每个实体信息对应的元路径;
基于每个实体信息对应的元路径,对第一编码序列进行元路径嵌入,得到第二编码序列;
对所述第二编码序列中的段落进行顺序编码,得到第三编码序列;
对所述第三编码序列中的元路径进行相对编码,得到上下文表示序列。
可选的,在本发明第一方面的第五种实现方式中,所述基于所述待判断问题的至少一个有效字向量,对所述待判断问题进行意图识别,得到所述待判断问题的意图包括:
对所述待判断问题的至少一个有效字向量求和后进行平均,得到平均向量;
根据预置多分类函数,计算所述平均向量对应的多分类意图概率分布,并将所述多分类意图概率分布中第一意图作为所述待判断问题的意图,其中,所述第一意图为所述多分类意图概率分布中最高概率值对应的意图。
可选的,在本发明第一方面的第六种实现方式中,所述基于所述待判断问题的至少一个有效字向量,计算意图切换概率,若所述意图切换概率大于预置阈值,则跳转至所述待判断问题的意图包括:
对所述待判断问题的至少一个有效字向量求和后进行平均,得到平均向量;
根据预置二分类函数,计算所述平均向量对应的概率,得到意图切换概率,若所述意图切换概率大于预置阈值,则跳转至所述待判断问题的意图。
本发明第二方面提供了一种基于知识图谱的意图跳转装置,包括:
历史对话生成模块,用于基于预置产品数据、所述预置产品数据对应的知识图谱以及所述预置产品数据对应的意图跳转业务规则,创建历史对话;
元路径集生成模块,用于提取所述历史对话中的至少一条实体信息,并基于所述知识图谱,依次创建与每个实体信息对应的元路径,得到元路径集,其中,所述元路径集包括多个元路径;
有效信息获取模块,用于根据所述历史对话、所述元路径集对预置语言模型进行训练,得到预训练模型,并调用所述预训练模型,获取待判断问题的有效信息,得到所述待判断问题的至少一个有效字向量;
意图识别模块,用于基于所述待判断问题的至少一个有效字向量,对所述待判断问题进行意图识别,得到所述待判断问题的意图;
意图跳转模块,用于基于所述待判断问题的至少一个有效字向量,计算意图切换概率,若所述意图切换概率大于预置阈值,则跳转至所述待判断问题的意图。
可选的,在本发明第二方面的第一种实现方式中,所述历史对话生成模块具体用于:
拼接单元,用于提取预置产品数据中的至少一条属性信息,并基于预置规则模板,依次对每个属性信息进行字符串拼接,得到至少一条产品问答数据;
第一构建单元,用于基于所述至少一条产品问答数据、所述预置产品数据对应的知识图谱以及所述预置产品数据对应的意图跳转业务规则,构建正例样本集和负例样本集;
第二构建单元,用于基于所述正例样本集和所述负例样本集,构建意图切换训练对话集;
预处理单元,用于将所述意图切换训练对话集中的至少两条对话语句进行合并,并对合并得到的长对话语句进行对话标识,得到历史对话。
可选的,在本发明第二方面的第二种实现方式中,所述有效信息获取模块具体用于:
编码单元,用于调用所述预置语言模型中的多层翻译网络,对所述历史对话和所述元路径集进行编码,得到编码序列;
训练单元,用于基于所述编码序列,对所述预置语言模型进行至少一项训练任务,得到预训练模型;
预测单元,用于调用所述预训练模型,获取待判断问题的有效信息,得到所述待判断问题的至少一个有效字向量。
可选的,在本发明第二方面的第三种实现方式中,所述编码单元具体用于:
调用所述多层翻译网络中的多层多头注意力子网络,对所述历史对话和所述元路径集进行上下文编码,得到上下文编码序列;
调用所述多层翻译网络中的多层前馈子网络,对所述上下文编码序列进行非线性变换,得到编码序列。
可选的,在本发明第二方面的第四种实现方式中,所述编码单元具体用于:
基于所述历史对话,对待编码序列进行段落嵌入,得到第一编码序列;
识别所述第一编码序列中的多个实体信息,并在所述元路径集中匹配每个实体信息对应的元路径;
基于每个实体信息对应的元路径,对第一编码序列进行元路径嵌入,得到第二编码序列;
对所述第二编码序列中的段落进行顺序编码,得到第三编码序列;
对所述第三编码序列中的元路径进行相对编码,得到上下文表示序列。
可选的,在本发明第二方面的第五种实现方式中,所述意图识别模块具体用于:
第一平均单元,用于对所述待判断问题的至少一个有效字向量求和后进行平均,得到平均向量;
识别单元,用于根据预置多分类函数,计算所述平均向量对应的多分类意图概率分布,并将所述多分类意图概率分布中第一意图作为所述待判断问题的意图,其中,所述第一意图为所述多分类意图概率分布中最高概率值对应的意图。
可选的,在本发明第二方面的第六种实现方式中,所述意图跳转模块具体用于:
第二平均单元,用于对所述待判断问题的至少一个有效字向量求和后进行平均,得到平均向量;
跳转单元,用于根据预置二分类函数,计算所述平均向量对应的概率,得到意图切换概率,若所述意图切换概率大于预置阈值,则跳转至所述待判断问题的意图。
本发明第三方面提供了一种基于知识图谱的意图跳转设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述基于知识图谱的意图跳转设备执行上述的基于知识图谱的意图跳转方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的基于知识图谱的意图跳转方法。
本发明提供的技术方案中,首先通过产品数据及其对应的知识图谱和业务跳转规则创建历史对话,其次创建元路径集,然后将历史对话、元路径集以及待判断的问题输入预训练模型进行训练并输出相应的训练结果,得到待判断问题的有效字向量,最后基于所述有效字向量进行意图识别并计算相应的意图切换概率,最后根据意图切换概率确定是否跳转到相应意图。本发明通过图谱知识与限定域的知识有效融合,提升模型输出的有效字向量的丰富度,从而计算得到较高准确性的意图切换概率,提升意图切换的准确率。
附图说明
图1为本发明实施例中基于知识图谱的意图跳转方法的第一个实施例示意图;
图2为本发明实施例中基于知识图谱的意图跳转方法的第二个实施例示意图;
图3为本发明实施例中基于知识图谱的意图跳转方法的第三个实施例示意图;
图4为本发明实施例中基于知识图谱的意图跳转方法的第四个实施例示意图;
图5为本发明实施例中基于知识图谱的意图跳转方法的第五个实施例示意图;
图6为本发明实施例中基于知识图谱的意图跳转装置的一个实施例示意图;
图7为本发明实施例中基于知识图谱的意图跳转装置的另一个实施例示意图;
图8为本发明实施例中基于知识图谱的意图跳转设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种基于知识图谱的意图跳转方法、装置、设备及存储介质,可以对客服系统中客服人员服务态度的检测和识别。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中基于知识图谱的意图跳转方法的一个实施例包括:
101、基于预置产品数据、预置产品数据对应的知识图谱以及预置产品数据对应的意图跳转业务规则,创建历史对话;
产品数据为人机对话中可能涉及到的产品信息,包括产品的名称、属性、属性值,例如产品名称为“平安福19”,对应的属性包括“产品类型”、“上架时间”、“产品ids”,其中“产品类型”属性对应的属性值为“保险产品”,“上架时间”属性对应的属性值为“2019年2月”,“产品ids”属性对应的属性值为“1358-1”。知识图谱用可视化技术绘制和显示知识以及它们之间的相互联系,例如知识图谱中包含了多个产品的分类,在每一种分类下包含多个产品名,在每个产品名下对应多个属性,每一个属性对应一个属性值,其中图谱与分类的对应数量关系、分类与产品名的对应数量关系、产品名与属性的对应数量关系均为1:n,其中为正整数,属性与属性值的对应数量关系为1:1。意图跳转业务规则用于判断是否进行意图的跳转,例如在用户在咨询某个产品的价格时,同时进行了产品上架时间的询问,这时候便会涉及到意图的跳转。
服务器通过提取产品数据中的属性,按照一定的规则模板,将每一个产品数据的属性其拼接为一轮对话,其次基于所述意图跳转规则,将多个所述产品问答数据进行拼接,生成包含多轮对话的样本,其中符合意图跳转规则的为正例样本,不符合意图跳转规则的为负例样本,并且由多个正例样本构成正例样本集,由多个负例样本构成负例样本集,最后将两者进行数据合并,得到意图切换训练对话集。
102、提取历史对话中的至少一条实体信息,并基于知识图谱,依次创建与每个实体信息对应的元路径,得到元路径集,其中,元路径集包括多个元路径;
意图切换训练对话集包括多条多轮对话样本,可以通过数据抓取的方式提取其中的实体信息,该实体信息至少为一条,实体信息即相应的产品名,例如通过正则表达式匹配相应的实体信息字符。在知识图谱中,实体与属性之间的对应数量关系为1:n,其中n为正整数,而属性与属性值之间的对应数量关系为1:1,元路径为实体名、产品类型属性或上架时间或产品ids、对应属性值的组合,例如“平安福19”对应的三条元路径为<平安福19:产品类型:保险产品>、<平安福19:上架时间:2019年2月>、<平安福19:产品ids:1358-1>。对于意图跳转而言,能够识别出不同的产品尤为重要,因为不同的产品是由产品ids和上架时间结合后唯一确定的,所以选择了此三条不同的元路径对产品进行唯一标识。
103、根据历史对话、元路径集对预置语言模型进行训练,得到预训练模型,并调用预训练模型,获取待判断问题的有效信息,得到待判断问题的至少一个有效字向量;
本实施例中,预置语言模型采用了bert预训练模型,将历史对话、元路径集输入bert预训练模型中,经过编码后学习其上下文表示特征,根据学习到特征去执行训练任务,bert模型一般包含双向训练任务,分别为随机遮蔽字的预测任务和句子连续性的预测任务,通过这两个任务来学习文本的表示特征。最后在最后一层网络的预测位置([cls])输出模型输入文本的有效字向量,从而将知识图谱中的常识和限定域的知识融合,进一步进行意图识别以及意图的跳转判断。
104、基于待判断问题的至少一个有效字向量,对待判断问题进行意图识别,得到待判断问题的意图;
服务器将预训练模型的输出的所有的有效字向量相加后取平均,得到一个平均向量,然后将其输入到全连接层,通过一个多分类函数(如softmax)计算得到一个多分类意图概率分布,将其中概率值最高的一个意图类别作为待判断问题的意图。
105、基于待判断问题的至少一个有效字向量,计算意图切换概率,若意图切换概率大于预置阈值,则跳转至待判断问题的意图。
服务器将预训练模型的输出的所有的有效字向量相加后取平均,得到一个平均向量,然后将其输入到全连接层,最后用一个二分类函数(如sigmoid)计算相应的意图切换概率,若意图切换概率大于预置阈值,如意图切换概率为0.7,而预置阈值为0.5,则判断为需要进行意图跳转,否则,判断为不需要进行意图跳转。
本实施例中,通过将图谱知识与限定域的知识有效融合,提升模型输出的有效字向量的丰富度,从而计算得到较高准确性的意图切换概率,提升意图切换的准确率。
参阅图2,本发明实施例中基于知识图谱的意图跳转方法的第二个实施例包括:
201、提取预置产品数据中的至少一条属性信息,并基于预置规则模板,依次对每个属性信息进行字符串拼接,得到至少一条产品问答数据;
每一种产品数据包括至少一条属性,每一条属性都存在唯一属性值与其对应。其中,预置规则模板例如“{{product_name}}产品的{{attr}}是多少?{{attr_value}}。”其中,{{product_name}}对应产品名称,{{attr}}对应产品的属性,{{attr_value}}对应属性值,例如根据“平安福19”这款产品,经过提取属性,用预置规则模板进行字符串拼接后,分别得到三条产品问答数据:1、平安福19产品的产品类型是多少?保险类型。2、平安福19产品的上架时间是多少?2019年2月。3.平安福19产品的产品ids是多少?1358-1。
202、基于至少一条产品问答数据、预置产品数据对应的知识图谱以及预置产品数据对应的意图跳转业务规则,构建正例样本集和负例样本集;
其中,每一条产品问答数据是一轮对话,通过至少一条产品问答数据进行拼接,得到相应的正例样本或负例样本,正例样本即符合意图跳转业务规则的多轮对话,每一轮对话始终围绕的同一个产品进行提问;而负例样本是不符合意图跳转业务规则的多轮对话,可能在其中一轮对话中对多个产品进行提问。
本实施例中,正例样本的生成方式例如识别产品a中a属性对应的产品问答数据中的实体和属性,在知识图谱中识别当前实体(产品a)的其他属性(如b、c、d……),根据所述其他属性查到找其他属性对应的产品问答数据,将当前产品a中a属性对应的产品问答数据和当前产品其他属性对应的问答数据进行拼接,得到一个符合意图跳转规则的多轮对话样本,该样本为正例样本。
本实施例中,负例样本的生成方式例如识别产品a中a属性对应的问答数据中的实体和属性,在知识图谱中识别其他实体(产品b、产品c……)的其他属性(如b、c、d……),根据所述其他属性查到找其他属性对应的产品问答数据,将当前产品a中a属性对应的产品问答数据和其他产品的其他属性问答数据进行拼接,得到一个不符合意图跳转规则的多轮对话样本。
203、基于正例样本集和负例样本集,构建意图切换训练对话集;
服务器将正例样本集和负例样本集进行数据合并,得到一个包含正负样本的意图切换训练对话集。
204、将意图切换训练对话集中的至少两条对话语句进行合并,并对合并得到的长对话语句进行对话标识,得到历史对话;
服务器将意图切换训练对话集中的至少两条对话进行合并,并且以不同标识符分割对话,主要包括对话问题和答案的分割(对话角色的分割)以及对话轮次的分割,例如“[p1]我想查询保费[r1]请提供您要查询的产品[p2]平安福19[r2]请提供要查询的投保年龄[sep]安心百分百的等待期”,其中以p和r两个标识符分别代表问题和答案,而sep标识符用于分割不同的对话轮次,从而得到历史对话,在该历史对话中将对话语句中的深层语义(对话语句所属的角色、对话语句所属的对话轮次)进行了表示,以供预训练模型进行深层次语义的学习。
205、提取历史对话中的至少一条实体信息,并基于知识图谱,依次创建与每个实体信息对应的元路径,得到元路径集,其中,元路径集包括多个元路径;
206、根据历史对话、元路径集对预置语言模型进行训练,得到预训练模型,并调用预训练模型,获取待判断问题的有效信息,得到待判断问题的至少一个有效字向量;
207、基于待判断问题的至少一个有效字向量,对待判断问题进行意图识别,得到待判断问题的意图;
208、基于待判断问题的至少一个有效字向量,计算意图切换概率,若意图切换概率大于预置阈值,则跳转至待判断问题的意图。
其中,步骤205-208与上述步骤102-105的执行步骤类似,具体此处不再赘述。
本实施例中,详细描述了历史对话的创建过程,通过模板化式地生成训练对话样本数据,为模型提供大量的样本数据进行训练,从而提升了模型的泛化能力。
参阅图3,本发明实施例中基于知识图谱的意图跳转方法的第三个实施例包括:
301、基于预置产品数据、预置产品数据对应的知识图谱以及预置产品数据对应的意图跳转业务规则,创建历史对话;
302、提取历史对话中的至少一条实体信息,并基于知识图谱,依次创建与每个实体信息对应的元路径,得到元路径集,其中,元路径集包括多个元路径;
其中,步骤301-302与上述步骤101-102的执行步骤类似,具体此处不再赘述。
303、调用预置语言模型中的多层翻译网络,对历史对话和元路径集进行编码,得到编码序列;
服务器通过调用bert模型的多层翻译网络(transformer)来对历史对话和元路径集进行编码,其中transformer网络中包括一个多头自注意力子网络以及一个前馈子网络,在多头自注意力子网络中以自注意力机制(self-attention)机制来学习词与词之间的关系,编码其上下文,得到一个上下文表示序列,其次,通过该前馈子网络对该上下文表示序列进行非线性变化,最后输出一个综合了上下文特征的各个词的向量表示,即一个编码序列。
304、基于编码序列,对预置语言模型进行至少一项训练任务,得到预训练模型,并调用预训练模型,获取待判断问题的有效信息,得到待判断问题的至少一个有效字向量;
本实施例中,预置语言模型采用bert模型,该语言模型为一个双向语言模型,在训练时通过两项训练任务使模型较好学习文本表示。其中,第一项任务是采用掩码(mask-lm)的方式来训练语言模型,在输入一句话的时候,随机地抹去这句话中的一个词或几个词,然后用一个特殊的符号[mask]来代替它们,之后让模型根据所给的标签去学习这些地方该填的词。第二项任务在双向语言模型的基础上额外增加了一个句子级别的连续性预测任务,即预测输入bert的两段文本是否为连续的文本,通过该训练任务让模型能够学到连续的文本片段之间的关系。基于这两个训练任务进行训练后得到了相应的预训练模型,能够较好地对语句含义进行表示,其中,表示形式为向量形式。
最后,服务器将待判断问题输入该预训练模型中,格式为[cls]token+句子,bert模型会根据训练时学习到的文本表示特征,将每一个词(包括cls)用其周边的词表示为一个长度为768的向量,这些向量表示即该待判断问题的有效信息,可以将其输入全连接层中执行具体的任务,例如将其输入全连接层,并通过多分类器进行意图的识别,抑或者通过一个二分类器计算当前输入的待判断问题进行意图跳转的概率。
305、基于待判断问题的至少一个有效字向量,对待判断问题进行意图识别,得到待判断问题的意图;
306、基于待判断问题的至少一个有效字向量,计算意图切换概率,若意图切换概率大于预置阈值,则跳转至待判断问题的意图。
其中,步骤305-306与上述步骤104-105的执行步骤类似,具体此处不再赘述。
本实施例中,详细描述了模型的训练过程,通过输入的历史对话、元路径集以及待判断问题进行编码,学习其上下文表示特征,并基于学习到的上下文表示特征提取待判断问题中的有效信息,提升了有效信息的准确性,从而提升意图切换的准确性。
参阅图4,本发明实施例中基于知识图谱的意图跳转方法的第四个实施例包括:
401、基于预置产品数据、预置产品数据对应的知识图谱以及预置产品数据对应的意图跳转业务规则,创建历史对话;
402、提取历史对话中的至少一条实体信息,并基于知识图谱,依次创建与每个实体信息对应的元路径,得到元路径集,其中,元路径集包括多个元路径;
其中,步骤401-402与上述步骤101-102的执行步骤类似,具体此处不再赘述。
403、调用多层翻译网络中的多层多头注意力子网络,对历史对话和元路径集进行上下文编码,得到上下文编码序列;
首先,服务器通过多头注意力子网络对历史对话进行段落嵌入(tokenembendding),得到第一编码序列;其次,依次识别出该第一编码序列中的实体,该实体至少为一个,并在在元路径集中匹配每一个实体对应的元路径;然后,将元路径嵌入到对应的实体后的位置,实现元路径的嵌入,得到第二编码序列;最后,从0对第二编码序列进行顺序编码,当编码过程中遇到元路径时,暂停当前的编码,对元路径执行相对编码,即每一个元路径都从0开始编码,当元路径编码结束后,继续之前暂停的编码,按照这样的编码方式,直至对所述第二编码序列完成编码。
404、调用多层翻译网络中的多层前馈子网络,对上下文编码序列进行非线性变换,得到编码序列;
本实施例中,非线性变换即通过一个非线性函数来对原上下文编码表示序列进行信息的叠加,例如通过一个对数项函数y=logx。
405、基于编码序列,对预置语言模型进行至少一项训练任务,得到预训练模型,并调用预训练模型,获取待判断问题的有效信息,得到待判断问题的至少一个有效字向量;
其中,步骤405与上述步骤304的执行步骤类似,具体此处不再赘述。
406、基于待判断问题的至少一个有效字向量,对待判断问题进行意图识别,得到待判断问题的意图;
407、基于待判断问题的至少一个有效字向量,计算意图切换概率,若意图切换概率大于预置阈值,则跳转至待判断问题的意图;
其中,步骤406-407与上述步骤104-105的执行步骤类似,具体此处不再赘述。
本实施例中,详细描述了输入信息的编码过程,通过顺序编码结合相对编码的方式,将知识图谱的知识、历史对话以及待判断问题进行有效融合,得到包含上下文信息的编码序列,进而提升有效字预测的准确性。
参阅图5,本发明实施例中基于知识图谱的意图跳转方法的第五个实施例包括:
501、基于预置产品数据、预置产品数据对应的知识图谱以及预置产品数据对应的意图跳转业务规则,创建历史对话;
502、提取历史对话中的至少一条实体信息,并基于知识图谱,依次创建与每个实体信息对应的元路径,得到元路径集,其中,元路径集包括多个元路径;
503、根据历史对话、元路径集对预置语言模型进行训练,得到预训练模型,并调用预训练模型,获取待判断问题的有效信息,得到待判断问题的至少一个有效字向量;
504、对待判断问题的至少一个有效字向量求和后进行平均,得到平均向量;
服务器对待判断问题中的所有有效字向量求和后,计算其平均值,并对其进行归一化处理,得到平均向量。
505、根据预置多分类函数,计算平均向量对应的多分类意图概率分布,并将多分类意图概率分布中第一意图作为待判断问题的意图,其中,第一意图为多分类意图概率分布中最高概率值对应的意图;
本实施例中,预置多分类函数优先采用softmax函数,服务器通过该函数可以计算平均向量对应的多分类概率分布,其中的每一个分类即一种意图,当某个类别的概率值越高,表示该平均向量对应类别(意图)可能性越大,显而易见,最终将该多分类概率分布中概率值最高的一个分类作为该平均向量的意图,即待判断问题的意图。
506、根据预置二分类函数,计算平均向量对应的概率,得到意图切换概率,若意图切换概率大于预置阈值,则跳转至待判断问题的意图。
本实施例中,预置二分类函数优选采用sigmoid函数。输入的待判断问题是否改变了意图,可以看作是一个二分类问题。待判断问题意图改变和意图未改变的概率之和为1。服务器通过该函数计算平均向量对应的一个二分类概率分布,如(t:0.7,f:0.3),其中0.7为意图跳转的概率,0.3为不进行意图跳转的概率,如预置阈值为0.5,则跳转至上述待判断问题的意图。
其中,步骤501-503与上述步骤101-103的执行步骤类似,具体此处不再赘述。
本实施例中,详细描述了意图切换的判断过程,通过对有效字向量平均且归一化处理,并基于一个多分类函数确定待判断问题的意图和基于一个二分类函数计算得到意图切换的预测概率,进而可以依据该概率确定是否跳转至待判断问题的意图,从而提升了意图切换的准确性。
上面对本发明实施例中基于知识图谱的意图跳转方法进行了描述,下面对本发明实施例中基于知识图谱的意图跳转装置进行描述,请参阅图6,本发明实施例中基于知识图谱的意图跳转装置的一个实施例包括:
历史对话生成模块601,用于基于预置产品数据、所述预置产品数据对应的知识图谱以及所述预置产品数据对应的意图跳转业务规则,创建历史对话;
元路径集生成模块602,用于提取所述历史对话中的多个实体信息,并基于所述知识图谱,依次创建与每个实体信息对应的元路径,得到元路径集,其中,所述元路径集包括多个元路径;
有效信息获取模块603,用于根据所述历史对话、所述元路径集对预置语言模型进行训练,得到预训练模型,并调用所述预训练模型,获取待判断问题的有效信息,得到所述待判断问题的至少一个有效字向量;
意图识别模块604,用于基于所述待判断问题的至少一个有效字向量,对所述待判断问题进行意图识别,得到所述待判断问题的意图;
意图跳转模块605,用于基于所述待判断问题的至少一个有效字向量,计算意图切换概率,若所述意图切换概率大于预置阈值,则跳转至所述待判断问题的意图。
本实施例中,通过将图谱知识与限定域的知识有效融合,提升模型输出的有效字向量的丰富度,从而计算得到较高准确性的意图切换概率,提升意图切换的准确率。
参阅图7,本发明实施例中基于知识图谱的意图跳转装置的另一个实施例包括:
历史对话生成模块701,用于基于预置产品数据、所述预置产品数据对应的知识图谱以及所述预置产品数据对应的意图跳转业务规则,创建历史对话;
元路径集生成模块702,用于提取所述历史对话中的多个实体信息,并基于所述知识图谱,依次创建与每个实体信息对应的元路径,得到元路径集,其中,所述元路径集包括多个元路径;
有效信息获取模块703,用于根据所述历史对话、所述元路径集对预置语言模型进行训练,得到预训练模型,并调用所述预训练模型,获取待判断问题的有效信息,得到所述待判断问题的至少一个有效字向量;
意图识别模块704,用于基于所述待判断问题的至少一个有效字向量,对所述待判断问题进行意图识别,得到所述待判断问题的意图;
意图跳转模块705,用于基于所述待判断问题的至少一个有效字向量,计算意图切换概率,若所述意图切换概率大于预置阈值,则跳转至所述待判断问题的意图。
其中,所述历史对话生成模块701包括:
拼接单元7011,用于提取预置产品数据中的至少一条属性信息,并基于预置规则模板,依次对每个属性信息进行字符串拼接,得到至少一条产品问答数据;
第一构建单元7012,用于基于所述至少一条产品问答数据、所述预置产品数据对应的知识图谱以及所述预置产品数据对应的意图跳转业务规则,构建正例样本集和负例样本集;
第二构建单元7013,用于基于所述正例样本集和所述负例样本集,构建意图切换训练对话集;
预处理单元7014,用于将所述意图切换训练对话集中的至少两条对话语句进行合并,并对合并得到的长对话语句进行对话标识,得到历史对话。
其中,所述有效信息获取模块703包括:
编码单元7031,用于调用所述预置语言模型中的多层翻译网络,对所述历史对话和所述元路径集进行编码,得到编码序列;
训练单元7032,用于基于所述编码序列,对所述预置语言模型进行至少一项训练任务,得到预训练模型;
预测单元7033,用于调用所述预训练模型,获取待判断问题的有效信息,得到所述待判断问题的至少一个有效字向量。
其中,所述编码单元7031具体用于:
基于所述历史对话,对待编码序列进行段落嵌入,得到第一编码序列;
识别所述第一编码序列中的多个实体信息,并在所述元路径集中匹配每个实体信息对应的元路径;
基于每个实体信息对应的元路径,对第一编码序列进行元路径嵌入,得到第二编码序列;
对所述第二编码序列中的段落进行顺序编码,得到第三编码序列;
对所述第三编码序列中的元路径进行相对编码,得到上下文表示序列。
其中,所述意图识别模块704包括:
第一平均单元7041,用于对所述待判断问题的至少一个有效字向量求和后进行平均,得到平均向量;
识别单元7042,用于根据预置多分类函数,计算所述平均向量对应的多分类意图概率分布,并将所述多分类意图概率分布中第一意图作为所述待判断问题的意图,其中,所述第一意图为所述多分类意图概率分布中最高概率值对应的意图。
其中,所述意图跳转模块705包括:
第二平均单元7051,用于对所述待判断问题的至少一个有效字向量求和后进行平均,得到平均向量;
跳转单元7052,用于根据预置二分类函数,计算所述平均向量对应的概率,得到意图切换概率,若所述意图切换概率大于预置阈值,则跳转至所述待判断问题的意图。
本发明实施例中,模块化的设计让基于知识图谱的意图跳转装置各部位的硬件专注于某一功能的实现,最大化实现了硬件的性能,同时模块化的设计也降低了装置的模块之间的耦合性,更加方便维护。
上面图6和图7从模块化功能实体的角度对本发明实施例中的基于知识图谱的意图跳转装置进行详细描述,下面从硬件处理的角度对本发明实施例中基于知识图谱的意图跳转设备进行详细描述。
图8是本发明实施例提供的一种基于知识图谱的意图跳转设备的结构示意图,该基于知识图谱的意图跳转设备800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)810(例如,一个或一个以上处理器)和存储器820,一个或一个以上存储应用程序833或数据832的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器820和存储介质830可以是短暂存储或持久存储。存储在存储介质830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对基于知识图谱的意图跳转设备800中的一系列指令操作。更进一步地,处理器810可以设置为与存储介质830通信,在基于知识图谱的意图跳转设备800上执行存储介质830中的一系列指令操作。
基于知识图谱的意图跳转设备800还可以包括一个或一个以上电源840,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口860,和/或,一个或一个以上操作系统831,例如windowsserve,macosx,unix,linux,freebsd等等。本领域技术人员可以理解,图8示出的基于知识图谱的意图跳转设备结构并不构成对基于知识图谱的意图跳转设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种基于知识图谱的意图跳转设备,所述基于知识图谱的意图跳转设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例中的所述基于知识图谱的意图跳转方法的步骤。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述基于知识图谱的意图跳转方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。