本发明涉及人工智能领域,尤其涉及一种基于知识图谱的对话内容推荐方法、装置、设备及存储介质。
背景技术:
对话内容的推荐是指在人机对话过程中,机器根据用户在对话中提供的信息进行相应的内容推荐,向用户推荐用户感兴趣的内容。
现有的对话内容的推荐方案是通过对话推荐模型生成用户输入语句相应的推荐内容,并将该推荐内容返回给用户,而对话推荐模型通常采用结构性较差且关联性较弱的训练样本进行训练,从而导致模型泛化能力较弱,生成的推荐内容准确性较低。例如推荐的知识与对话相关性不足,导致推荐的内容往往不是用户想要的信息。
技术实现要素:
本发明的主要目的在于解决现有对话内容的推荐方案生成的推荐内容准确性较低的问题。
本发明第一方面提供了一种基于知识图谱的对话内容推荐方法,包括:
基于预置事理图谱和目标知识图谱,构建图谱知识库,其中,所述预置事理图谱与所述目标知识图谱之间存在对应关系;
获取历史对话语句和目标用户当前输入的待回复语句,其中,所述历史对话语句为系统与所述目标用户之间的多轮对话语句;
基于所述目标用户当前输入的待回复语句,在所述图谱知识库中匹配与所述待回复语句相关联的知识,得到目标知识集;
根据所述目标知识集和所述历史对话语句,对预置语言模型进行训练,得到对话推荐模型;
调用所述对话推荐模型对所述目标用户当前输入的待回复语句进行处理,生成所述待回复语句对应的对话内容。
可选的,在本发明第一方面的第一种实现方式中,所述基于预置事理图谱和目标知识图谱,构建图谱知识库包括:
获取预置事理图谱中的至少一个事理三元组,并调用预置三元组识别模型,对所述事理三元组进行识别,得到至少一个第一分布式向量;
获取目标知识图谱中的至少一个知识三元组,并调用预置三元组识别模型,对所述知识三元组进行识别,得到至少一个第二分布式向量;
基于所述预置事理图谱与所述目标知识图谱的对应关系,将所述第一分布式向量与所述第二分布式向量进行关联,得到图谱知识库,其中,所述图谱知识库包括至少一个分布式向量集,所述分布式向量集由一个第一分布式向量和至少一个第二分布式向量组成。
可选的,在本发明第一方面的第二种实现方式中,所述基于所述目标用户当前输入的待回复语句,在所述图谱知识库中匹配与所述待回复语句相关联的知识,得到目标知识集包括:
对所述目标用户当前输入的待回复语句进行语义提取,得到所述待回复语句的语义向量;
基于预置匹配概率计算规则,计算所述图谱知识库中的每个分布式向量集与所述待回复语句的语义向量之间的匹配概率,得到知识匹配概率集,其中,所述知识匹配概率集包括至少一个匹配概率;
将所述知识匹配概率集中的匹配概率与预置阈值进行比较,得到至少一个目标匹配概率,并基于所述目标匹配概率对应的分布式向量集生成目标知识集,其中,所述目标匹配概率为大于所述预置阈值的匹配概率。
其中,所述对所述目标用户当前输入的待回复语句进行语义提取,得到所述待回复语句的语义向量具体包括:
基于预置语言模型,对所述目标用户当前输入的待回复语句进行句向量编码,得到所述待回复语句的高维向量表示;
对所述待回复语句的高维向量表示进行降维处理,得到所述待回复语句的语义向量。
可选的,在本发明第一方面的第三种实现方式中,所述基于预置匹配概率计算规则,计算所述图谱知识库中的每个分布式向量集与所述待回复语句的语义向量之间的匹配概率,得到知识匹配概率集包括:
依次计算所述图谱知识库中的每个分布式向量与所述待回复语句的语义向量之间的匹配值,得到知识匹配值集,其中,所述知识匹配值集包括至少两个匹配值;
对所述知识匹配值集中的至少两个关联匹配值求和,得到知识匹配概率集,其中,所述关联匹配值为同一分布式向量集中的分布式向量与所述待回复语句的语义向量之间的匹配值。
可选的,在本发明第一方面的第四种实现方式中,在所述对所述目标用户当前输入的待回复语句进行语义提取,得到所述待回复语句的语义向量之后,还可以包括:
基于预置二分类器,对所述待回复语句的语义向量进行平均,并将平均后的语义向量均一化,得到推荐跳转概率;
将所述推荐跳转概率与预置阈值进行比较,若所述推荐跳转概率大于所述预置阈值,则生成推荐对话跳转指示。
可选的,在本发明第一方面的第五种实现方式中,所述根据所述目标知识集和所述历史对话语句,对预置语言模型进行训练,得到对话推荐模型包括:
对所述预置语言模型进行初始化,并将所述目标知识集和所述历史对话语句输入至所述预置语言模型中;
基于所述预置语言模型,计算所述历史对话语句中的目标对话与所述目标知识集中每个知识的匹配概率,得到多分类匹配概率分布;
根据预置损失函数,计算所述多分类匹配概率分布对应的损失结果;
基于所述损失结果,调节所述预置语言模型的参数,得到对话推荐模型。
可选的,在本发明第一方面的第六种实现方式中,所述基于所述损失结果,调节所述预置语言模型的参数,得到对话推荐模型包括:
将所述损失结果传输至所述预置语言模型中;
根据所述损失结果,基于随机梯度下降算法对所述预置语言模型的网络参数进行迭代更新,直至所述预置语言模型收敛;
当所述预置语言模型收敛时,确定当前所述预置语言模型的网络参数为目标参数,得到对话推荐模型。
本发明第二方面提供了一种基于知识图谱的对话内容推荐装置,包括:
知识库构建模块,用于基于预置事理图谱和目标知识图谱,构建图谱知识库,其中,所述预置事理图谱与所述目标知识图谱之间存在对应关系;
数据获取模块,用于获取历史对话语句和目标用户当前输入的待回复语句,其中,所述历史对话语句为系统与所述目标用户之间的多轮对话语句;
知识匹配模块,用于基于所述目标用户当前输入的待回复语句,在预置图谱知识库中匹配与所述待回复语句相关联的知识,得到目标知识集;
模型训练模块,用于根据所述目标知识集和所述历史对话语句,对预置语言模型进行训练,得到对话推荐模型;
推荐生成模块,用于调用所述对话推荐模型对所述目标用户当前输入的待回复语句进行处理,生成所述待回复语句对应的对话内容。
可选的,在本发明第二方面的第一种实现方式中,所述知识库构建模块具体用于:
第一识别单元,用于获取预置事理图谱中的至少一个事理三元组,并调用预置三元组识别模型,对所述事理三元组进行识别,得到至少一个第一分布式向量;
第二识别单元,用于获取目标知识图谱中的至少一个知识三元组,并调用预置三元组识别模型,对所述知识三元组进行识别,得到至少一个第二分布式向量;
关联单元,用于基于所述预置事理图谱与所述目标知识图谱的对应关系,将所述第一分布式向量与所述第二分布式向量进行关联,得到图谱知识库,其中,所述图谱知识库包括至少一个分布式向量集,所述分布式向量集由一个第一分布式向量和至少一个第二分布式向量组成。
可选的,在本发明第二方面的第二种实现方式中,所述知识匹配模块具体用于:
语义提取单元,用于对所述目标用户当前输入的待回复语句进行语义提取,得到所述待回复语句的语义向量;
计算单元,用于基于预置匹配概率计算规则,计算所述图谱知识库中的每个分布式向量集与所述待回复语句的语义向量之间的匹配概率,得到知识匹配概率集,其中,所述知识匹配概率集包括至少一个匹配概率;
知识集生成单元,用于将所述知识匹配概率集中的匹配概率与预置阈值进行比较,得到至少一个目标匹配概率,并基于所述目标匹配概率对应的分布式向量集生成目标知识集,其中,所述目标匹配概率为大于所述预置阈值的匹配概率。
可选的,在本发明第二方面的第三种实现方式中,所述计算单元具体用于:
依次计算所述图谱知识库中的每个分布式向量与所述待回复语句的语义向量之间的匹配值,得到知识匹配值集,其中,所述知识匹配值集包括至少两个匹配值;
对所述知识匹配值集中的至少两个关联匹配值求和,得到知识匹配概率集,其中,所述关联匹配值为同一分布式向量集中的分布式向量与所述待回复语句的语义向量之间的匹配值。
可选的,在本发明第二方面的第四种实现方式中,在所述语义提取单元之后,还可以包括:
基于预置二分类器,对所述待回复语句的语义向量进行平均,并将平均后的语义向量均一化,得到推荐跳转概率;
将所述推荐跳转概率与预置阈值进行比较,若所述推荐跳转概率大于所述预置阈值,则生成推荐对话跳转指示。
可选的,在本发明第二方面的第五种实现方式中,所述模型训练模块具体用于:
输入单元,用于对所述预置语言模型进行初始化,并将所述目标知识集和所述历史对话语句输入至所述预置语言模型中;
计算单元,用于基于所述预置语言模型,计算所述历史对话语句中的目标对话与所述目标知识集中每个知识的匹配概率,得到多分类匹配概率分布;
损失计算单元,用于根据预置损失函数,计算所述多分类匹配概率分布对应的损失结果;
参数调节单元,用于基于所述损失结果,调节所述预置语言模型的参数,得到对话推荐模型。
可选的,在本发明第二方面的第六种实现方式中,所述参数调节单元具体用于:
将所述损失结果传输至所述预置语言模型中;
根据所述损失结果,基于随机梯度下降算法对所述预置语言模型的网络参数进行迭代更新,直至所述预置语言模型收敛;
当所述预置语言模型收敛时,确定当前所述预置语言模型的网络参数为目标参数,得到对话推荐模型。
本发明第三方面提供了一种基于知识图谱的对话内容推荐设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述基于知识图谱的对话内容推荐设备执行上述的基于知识图谱的对话内容推荐方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的基于知识图谱的对话内容推荐方法。
本发明提供的技术方案中,首先通过将事理图谱中的知识以及事理图谱对应的知识图谱中的知识进行关联,构建相应的图谱知识库;其次,获取当前待回复语句以及历史对话,在图谱知识库中对待回复语句进行知识选择;然后,基于历史对话以及选择的知识对预置语言模型进行推荐对话生成的训练,得到相应的对话推荐模型;最后,调用该对话推荐模型对待回复对话进行处理,生成对应的推荐内容。本发明中结合事理图谱与知识图谱的知识对模型进行训练,提升了回复内容的丰富性和相关性,从而保证生成的推荐内容更加准确。
附图说明
图1为本发明实施例中基于知识图谱的对话内容推荐方法的第一个实施例示意图;
图2为本发明实施例中基于知识图谱的对话内容推荐方法的第二个实施例示意图;
图3为本发明实施例中基于知识图谱的对话内容推荐方法的第三个实施例示意图;
图4为本发明实施例中基于知识图谱的对话内容推荐方法的第四个实施例示意图;
图5为本发明实施例中基于知识图谱的对话内容推荐方法的第五个实施例示意图;
图6为本发明实施例中基于知识图谱的对话内容推荐装置的一个实施例示意图;
图7为本发明实施例中基于知识图谱的对话内容推荐装置的另一个实施例示意图;
图8为本发明实施例中基于知识图谱的对话内容推荐设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种基于知识图谱的对话内容推荐方法、装置、设备及存储介质,可以让生成的推荐内容更加准确。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中基于知识图谱的对话内容推荐方法的一个实施例包括:
101、基于预置事理图谱和目标知识图谱,构建图谱知识库,其中,预置事理图谱与目标知识图谱之间存在对应关系;
事理图谱揭示了事件的演化规律和发展逻辑,刻画和记录人类行为活动。在图结构上,事理图谱为一个有向有环图,由至少一个节点和至少一个有向边组成,其中,节点表示事件,有向边表示事件之间的演化关系。事理图谱中事件之间的关系包括顺承关系、因果关系、条件关系以及上下位关系。相应地,知识图谱则是在信息的基础上揭示了实体之间以及实体与属性之间的联系。
事理图谱以及知识图谱均由至少一个三元组实例(head,relation,tail)组成,其中,head代表第一个事件或主体对象,tail代表第二个事件或客体对象,relation代表两者之间的关系,例如事理图谱中的三元组(寻找电影院,顺承,订票),知识图谱中的三元组(电影,包括,电影1)。
服务器通过对事理图谱中的每个三元组以及其相应的知识图谱中的每个三元组进行编码,将三元组转化为对应分布式向量进行表示,而基于事理图谱与知识图谱之间的关联关系,对这些分布式向量建立联系,从而构建一个完整的图谱知识库。
值得一提的是,图谱知识库中的任意知识(三元组)均以分布式向量进行表示,并以键值对(<key,value>)的方式进行存储,其中key为三元组中(head+relation)的向量表示,而value是tail的向量表示。
102、获取历史对话语句和目标用户当前输入的待回复语句,其中,历史对话语句为系统与目标用户之间的多轮对话语句;
其中,历史对话语句为完整的人机对话记录,包括多轮对话语句,每轮对话语句中包括用户输入的对话语句以及系统回复的对话语句,例如“用户:请帮我查询一下二月份的账单情况,系统:正在查询您请稍等”。而目标用户当前输入的待回复语句为等待系统回复推荐对话的语句,例如“我想看电影”,系统会回复“电影”相关的推荐对话内容。
103、基于目标用户当前输入的待回复语句,在图谱知识库中匹配与待回复语句相关联的知识,得到目标知识集;
本实施例即实现待回复语句的知识选择,服务器通过点乘法计算待回复语句的语义向量与图谱知识库中分布式向量的匹配值,而在图谱知识库中的分布式向量之间是存在关联关系的,将至少两个存在关联关系的分布式向量作为一个分布式向量集,将属于同一分布式向量集下的分布式向量对应的匹配值进行求和,得到知识集合(分布式向量集)与当前输入的待回复语句之间的匹配概率,并将该匹配概率与预置阈值进行比较,若所述匹配概率大于预置阈值,如匹配概率为0.6,预置阈值为0.5,则将该知识集合(分布式向量集)作为知识匹配的结果,得到一个目标知识集合。
104、根据目标知识集和历史对话语句,对预置语言模型进行训练,得到对话推荐模型;
服务器基于goolege的gpt预训练语言模型进行训练,并在训练基础上对模型参数进行微调。
首先,服务器对该gpt预训练语言模型进行初始化;
其次,服务器将目标知识集以及历史对话语句输入该gpt预训练语言模型,其中目标知识集包括至少两个分布式向量,而历史对话语句在模型的输入层中转化为了向量表示,将目标知识集中的每个知识(分布式向量)拼接在历史对话语句中每个用户输入的对话对应的向量表示的后面,并输入该gpt模型中的多层翻译网络(transformer)中进行编码,学习语句的上下文表示,得到包含上下文信息的向量,其中,在学习上下文表示时,执行一项语言训练任务,即依据前面的文本,去预测下一个词,其损失函数为l1;
然后,服务器将该包含上下文信息的向量输入至模型的全连接层中,在一个具体的线性层中执行具体的训练任务,即服务器通过一个多分类器(如softmax)预测历史对话语句中某一目标对话与目标知识集中每个知识(分布式向量)的匹配概率,得到一个多分类匹配概率分布,其损失函数为l2,其中,每个分类对应一个目标知识集中的知识,且根据分布中概率值大小将对应的至少一个分类将作为输出的推荐对话;
最后,服务器将l1损失函数作为l2损失函数的目标辅助函数,得到模型最终的损失函数l3,即l3=l2+λ*l1,并基于该l3损失函数,计算多分类匹配分布概率对应的损失结果,并基于该损失结果对gpt预训练语言模型的网络参数进行调节,直至模型收敛,结束训练,得到对话推荐模型。
105、调用对话推荐模型对目标用户当前输入的待回复语句进行处理,生成待回复语句对应的对话内容。
服务器将目标用户当前输入的待回复语句输入至对话推荐模型中,首先在对话推荐模型的输入层中将待回复语句转化为对应的语义向量,并将目标知识集中的每一个知识对应的向量拼接于该待回复语句的语义向量之后,在transformer网络中进行编码,其次在对话推荐模型的一个隐节点中预测每一个知识为预测待回复语句对应推荐内容的概率,通过一个额外的线性层和多分类器计算得到分类标签的概率分布,可以将概率分布中指定概率对应分类标签对应的知识作为待回复语句对应的对话内容,并在最后一层网络的预测位置([cls])位置将该对话内容输出,例如通过多分类器计算得到一个多分类概率分布:知识a—概率值0.85,知识b—概率值0.2,知识c—概率值0.65,知识d—概率值0.4,知识e—概率值0.9,按照概率值的大小将概率分布中的分类进行排序后,将其中概率值最高的三个分类标签对应的知识作为生成的推荐内容,即生成的推荐内容为知识e、知识a、知识c,并在最后一层网络中的[cls]位置输出。
本实施例中,结合事理图谱与知识图谱的知识对模型进行训练,提升了回复内容的丰富性和相关性,从而保证生成的推荐语句更加准确、自然。
参阅图2,本发明实施例中基于知识图谱的对话内容推荐方法的第二个实施例包括:
201、获取预置事理图谱中的至少一个事理三元组,并调用预置三元组识别模型,对事理三元组进行识别,得到至少一个第一分布式向量;
事理图谱中包括至少一个事理三元组,该事理三元组以可视化的形式揭示该事件图谱总事件与事件之间发展规律,例如事理三元组(寻找电影院,顺承,订票)。
服务器基于transe算法的三元组识别模型,对该事理图谱中的至少一个事理三元组进行表示学习后将其转换为低维稠密的向量表示,即分布式向量表示。其具体识别过程为:服务器将每个三元组实例(head,relation,tail)中的关系(relation)看做从实体(head)到实体(tail)的翻译,通过不断调整h(head的向量表示)、r(relation的向量表示)和t(tail的向量表示),使h+r尽可能与t相等,即h+r=t,最后以分布式向量的形式输出,并以键值对(<key,value>)的方式进行存储,其中key为三元组中head+relation的向量表示(h+r),而value是tail的向量表示(t)。
本实施例中,服务器将事理图谱嵌入(embedding)到一个低维空间中进行表示,充分发挥了知识库(事理图谱、知识图谱)的图性(graph)以及统计学习(机器学习、深度学习)的优势。
202、获取目标知识图谱中的至少一个知识三元组,并调用预置三元组识别模型,对知识三元组进行识别,得到至少一个第二分布式向量;
其中,步骤202与上述步骤201的执行步骤类似,具体此处不再赘述。
203、基于预置事理图谱与目标知识图谱的对应关系,将第一分布式向量与第二分布式向量进行关联,得到图谱知识库,其中,图谱知识库包括至少一个分布式向量集,分布式向量集由一个第一分布式向量和至少一个第二分布式向量组成;
本实施例中,事理图谱与知识图谱之间的关联关系基于事理图谱中的事件与知识图谱中实体知识的联系,例如事理图谱中的事理三元组(寻找电影院,顺承,订票)中的订票事件,在知识图谱中存在至少一个对应的知识三元组,例如(电影,包含,电影1)、(电影1,基本属性,主演)、(电影1,基本属性,价格)、(电影1,基本属性,价格)。
服务器根据该关联关系,通过建立映射关系文件等方式对一个第一分布式向量与至少一个第二分布式向量进行关联。
204、获取历史对话语句和目标用户当前输入的待回复语句,其中,历史对话语句为系统与目标用户之间的多轮对话语句;
205、基于目标用户当前输入的待回复语句,在图谱知识库中匹配与待回复语句相关联的知识,得到目标知识集;
206、根据目标知识集和历史对话语句,对预置语言模型进行训练,得到对话推荐模型;
207、调用对话推荐模型对目标用户当前输入的待回复语句进行处理,生成待回复语句对应的对话内容。
其中,步骤204-207与上述步骤102-105的执行步骤类似,具体此处不再赘述。
本实施例中,详细描述了图谱知识库的构建过程,将事理图谱与知识图谱进行结合,并将其嵌入至低维空间进行表示,充分发挥了统计学习的优势,进而对话内容的推荐提供数据基础。
参阅图3,本发明实施例中基于知识图谱的对话内容推荐方法的第三个实施例包括:
301、基于预置事理图谱和目标知识图谱,构建图谱知识库,其中,预置事理图谱与目标知识图谱之间存在对应关系;
302、获取历史对话语句和目标用户当前输入的待回复语句,其中,历史对话语句为系统与目标用户之间的多轮对话语句;
其中,步骤301-302与上述步骤101-102的执行步骤类似,具体此处不再赘述。
303、对目标用户当前输入的待回复语句进行语义提取,得到待回复语句的语义向量;
首先,服务器基于常见的预训练模型(如bert模型)来提取所述待回复语句的语义表示,由模型内的transformer网络对所述待回复语句进行编码,以学习语句的深层语义,得到待回复语句的句向量表示,该句向量为一个高维空间内的向量。其中,该预训练模型已在公开数据集上进行了训练,并根据训练结果对模型参数进行微调,能够较为准确地提取语义。
其次,服务器将该待回复语句的句向量表示接入模型的全连接层,基于一个size为1的线性层进行降维处理,得到相应的低维向量,即待回复语句的语义向量。其中,降维处理简化了语义向量的表示,更易于统计学习。
可选地,服务器还可以将该语义向量输入至一个二分类器中生成相应的推荐跳转概率,从而进一步判断当前是否需要进行对话内容的推荐与回复。该二分类器通过一个激活函数(如sigmoid)实现语义向量的非线性变换,从而将输出结果映射得到(0,1)这一区间内,即一个概率值,将该概率值作为对话内容的推荐与回复的跳转信号,若概率值大于预置阈值(如0.5),则进行下面的待回复语句的知识匹配,及其对话内容的推荐生成。
304、基于预置匹配概率计算规则,计算图谱知识库中的每个分布式向量集与待回复语句的语义向量之间的匹配概率,得到知识匹配概率集,其中,知识匹配概率集包括至少一个匹配概率;
本实施例中,预置匹配概率计算规则为对关联分布式向量与待回复语句的语义向量的匹配值进行求和,得到相应的匹配概率,其中关联分布式向量为同一分布式向量集中的至少两个分布式向量。例如图谱知识库中仅包括分布式向量集a={a,b},其中,a,b均为分布式向量,且a与待回复语句的语义向量的匹配值为0.2,b与待回复语句的语义向量的匹配值为0.1,则该分布式向量集a对应的匹配概率为0.3,对应的知识匹配概率集为{0.3}。
305、将知识匹配概率集中的匹配概率与预置阈值进行比较,得到至少一个目标匹配概率,并基于目标匹配概率对应的分布式向量集生成目标知识集,其中,目标匹配概率为大于预置阈值的匹配概率;
服务器依次将知识匹配概率集中的匹配概率与预置阈值进行比较,将其中大于预置阈值的匹配概率作为目标匹配概率,其中目标匹配概率至少为一个,并基于至少一个目标匹配概率对应的至少一个分布式向量集生成目标知识集,即目标知识集中至少包括一个分布式向量集。例如图谱知识库中仅包括分布式向量集a={a,b},其中,a,b均为分布式向量,其中分布式向量集a对应的匹配概率为0.3,对应的知识匹配概率集为{0.3},预置阈值为0.2,则值为0.3的知识匹配概率将被作为目标匹配概率,由其对应分布式向量集a构成目标知识集。
306、根据目标知识集和历史对话语句,对预置语言模型进行训练,得到对话推荐模型;
307、调用对话推荐模型对目标用户当前输入的待回复语句进行处理,生成待回复语句对应的对话内容。
其中,步骤306-307与上述步骤104-105的执行步骤类似,具体此处不再赘述。
本实施例中,详细描述了知识匹配的过程,通过在图谱知识库中选择与用户输入语句的关联知识,最后基于该关联知识生成相应的推荐对话,增强了生成的推荐对话与用户输入语句的关联性。
参阅图4,本发明实施例中基于知识图谱的对话内容推荐方法的第四个实施例包括:
401、基于预置事理图谱和目标知识图谱,构建图谱知识库,其中,预置事理图谱与目标知识图谱之间存在对应关系;
402、获取历史对话语句和目标用户当前输入的待回复语句,其中,历史对话语句为系统与目标用户之间的多轮对话语句;
403、对目标用户当前输入的待回复语句进行语义提取,得到待回复语句的语义向量;
其中,步骤401-402与上述步骤101-102的执行步骤类似,步骤403与上述步骤303的执行步骤类似,具体此处不再赘述。
404、依次计算图谱知识库中的每个分布式向量与待回复语句的语义向量之间的匹配值,得到知识匹配值集,其中,知识匹配值集包括至少两个匹配值;
服务器对图谱知识库中的每个分布式向量与待回复语句的语义向量进行点乘运算,将其运算结果作为每个分布式向量与待回复语句的语义向量之间的匹配值。其中,点乘运算的计算规则例如图谱知识库中分布式向量u=(u1,u2,u3),待回复的语义向量为v=(v1,v2,v3),对其进行点乘运算即u*v=u1*v1+u2*v2+u3*v3。
405、对知识匹配值集中的至少两个关联匹配值求和,得到知识匹配概率集,其中,关联匹配值为同一分布式向量集中的分布式向量与待回复语句的语义向量之间的匹配值;
本实施例中,图谱知识库中每个分布式向量对应一个匹配值,而这些分布式向量之间也存在关联,即每个分布式向量对应一个分布式向量集,其中,同属于一个分布式向量集中的分布式向量为关联分布式向量,其对应的匹配值即为关联匹配值,例如分布式向量集a={a,b},其中,a,b均为分布式向量,且a对应的匹配值为0.05,b对应的匹配值为0.03,那么分布式向量a与分布式向量b即为两个关联分布式向量,其对应的匹配值0.05与0.03为两个关联匹配值,对其进行求和后,得到一个知识匹配概率为0.08,类似地计算图谱知识库中其他的分布式向量集对应的知识匹配概率,最后基于这些知识匹配概率生成对应的知识匹配概率集。
406、将知识匹配概率集中的匹配概率与预置阈值进行比较,得到至少一个目标匹配概率,并基于目标匹配概率对应的分布式向量集生成目标知识集,其中,目标匹配概率为大于所述预置阈值的匹配概率;
407、根据目标知识集和历史对话语句,对预置语言模型进行训练,得到对话推荐模型;
408、调用对话推荐模型对目标用户当前输入的待回复语句进行处理,生成待回复语句对应的对话内容。
其中,步骤406与上述步骤305的执行步骤类似,步骤407-408与上述步骤104-105的执行步骤类似,具体此处不再赘述。
本实施例中,详细描述了知识匹配概率集的生成过程,通过严格的数学方法计算知识与用户输入语句的匹配概率,从而实现知识与输入语句的强关联关系。
参阅图5,本发明实施例中基于知识图谱的对话内容推荐方法的第五个实施例包括:
501、基于预置事理图谱和目标知识图谱,构建图谱知识库,其中,预置事理图谱与目标知识图谱之间存在对应关系;
502、获取历史对话语句和目标用户当前输入的待回复语句,其中,历史对话语句为系统与目标用户之间的多轮对话语句;
503、基于目标用户当前输入的待回复语句,在图谱知识库中匹配与待回复语句相关联的知识,得到目标知识集;
其中,步骤501-503与上述步骤101-103的执行步骤类似,具体此处不再赘述。
504、对预置语言模型进行初始化,并将目标知识集和历史对话语句输入至预置语言模型中;
服务器对gpt预训练语言模型进行参数初始化处理,然后将目标知识集和历史对话语句输入至gpt预训练语言模型中,由模型的输入层将历史对话语句转为向量表示,并将目标知识集中的每个知识(分布式向量)拼接在历史对话语句中每个用户输入的对话对应的向量表示的后面,并输入该gpt模型中的transformer网络中进行编码,学习语句的上下文表示,得到包含上下文信息的向量。其中,在学习上下文表示时,对gpt模型执行一项语言训练任务,即依据前面的文本,去预测下一个词,其损失函数为l1。
505、基于预置语言模型,计算历史对话语句中的目标对话与目标知识集中每个知识的匹配概率,得到多分类匹配概率分布;
服务器将该包含上下文信息的向量输入至模型的全连接层中,在一个具体的线性层中执行具体的训练任务,即服务器通过一个多分类器(如softmax)计算目标知识集中每个知识(分布式向量)为历史对话语句中某一目标对话内容的推荐内容的预测概率,得到一个多分类匹配概率分布,其损失函数为l1,其中,每个分类对应一个目标知识集中的知识,且根据分布中概率值大小将至少对应的至少一个分类将作为输出的推荐对话。
506、根据预置损失函数,计算多分类匹配概率分布对应的损失结果;
服务器将l1损失函数作为l2损失函数的目标辅助函数来增强模型的效果,得到模型最终的损失函数l3,即l3=l2+λ*l1,并基于该l3损失函数,计算多分类匹配分布概率对应的损失结果。
507、基于损失结果,调节预置语言模型的参数,得到对话推荐模型;
服务器将损失结果从gpt预训练语言模型的输出层向隐藏层反向传播,直至传播到输入层,在反向传播的过程中,根据损失结果,随机选取一个点方向作梯度下降,直至该模型收敛。当模型收敛时,当前的预训练模型能够得到局部最优的结果,能够较为准确地生成推荐对话。
508、调用对话推荐模型对目标用户当前输入的待回复语句进行处理,生成待回复语句对应的对话内容。
其中,步骤508与上述步骤105的执行步骤类似,具体此处不再赘述。
本实施例中,详细描述了对话推荐模型的训练过程,通过将语言模型的损失函数作为具体训练任务的辅助目标函数来优化最终的损失函数,并基于最终的损失函数来调整模型参数,从而提升模型生成推荐对话的准确性。
上面对本发明实施例中基于知识图谱的对话内容推荐方法进行了描述,下面对本发明实施例中基于知识图谱的对话内容推荐装置进行描述,请参阅图6,本发明实施例中基于知识图谱的对话内容推荐装置的一个实施例包括:
知识库构建模块601,用于基于预置事理图谱和目标知识图谱,构建图谱知识库,其中,所述预置事理图谱与所述目标知识图谱之间存在对应关系;
数据获取模块602,用于获取历史对话语句和目标用户当前输入的待回复语句,其中,所述历史对话语句为系统与所述目标用户之间的多轮对话语句;
知识匹配模块603,用于基于所述目标用户当前输入的待回复语句,在预置图谱知识库中匹配与所述待回复语句相关联的知识,得到目标知识集;
模型训练模块604,用于根据所述目标知识集和所述历史对话语句,对预置语言模型进行训练,得到对话推荐模型;
推荐生成模块605,用于调用所述对话推荐模型对所述目标用户当前输入的待回复语句进行处理,生成所述待回复语句对应的对话内容。
本实施例中,结合事理图谱与知识图谱的知识对模型进行训练,提升了回复内容的丰富性和相关性,从而保证生成的推荐语句更加准确、自然。
参阅图7,本发明实施例中基于知识图谱的对话内容推荐装置的另一个实施例包括:
知识库构建模块701,用于基于预置事理图谱和目标知识图谱,构建图谱知识库,其中,所述预置事理图谱与所述目标知识图谱之间存在对应关系;
数据获取模块702,用于获取历史对话语句和目标用户当前输入的待回复语句,其中,所述历史对话语句为系统与所述目标用户之间的多轮对话语句;
知识匹配模块703,用于基于所述目标用户当前输入的待回复语句,在预置图谱知识库中匹配与所述待回复语句相关联的知识,得到目标知识集;
模型训练模块704,用于根据所述目标知识集和所述历史对话语句,对预置语言模型进行训练,得到对话推荐模型;
推荐生成模块705,用于调用所述对话推荐模型对所述目标用户当前输入的待回复语句进行处理,生成所述待回复语句对应的对话内容。
其中,所述知识库构建模块701包括:
第一识别单元7011,用于获取预置事理图谱中的至少一个事理三元组,并调用预置三元组识别模型,对所述事理三元组进行识别,得到至少一个第一分布式向量;
第二识别单元7012,用于获取目标知识图谱中的至少一个知识三元组,并调用预置三元组识别模型,对所述知识三元组进行识别,得到至少一个第二分布式向量;
关联单元7013,用于基于所述预置事理图谱与所述目标知识图谱的对应关系,将所述第一分布式向量与所述第二分布式向量进行关联,得到图谱知识库,其中,所述图谱知识库包括至少一个分布式向量集,所述分布式向量集由一个第一分布式向量和至少一个第二分布式向量组成。
其中,所述知识匹配模块703包括:
语义提取单元7031,用于对所述目标用户当前输入的待回复语句进行语义提取,得到所述待回复语句的语义向量;
计算单元7032,用于基于预置匹配概率计算规则,计算所述图谱知识库中的每个分布式向量集与所述待回复语句的语义向量之间的匹配概率,得到知识匹配概率集,其中,所述知识匹配概率集包括至少一个匹配概率;
知识集生成单元7033,用于将所述知识匹配概率集中的匹配概率与预置阈值进行比较,得到至少一个目标匹配概率,并基于所述目标匹配概率对应的分布式向量集生成目标知识集,其中,所述目标匹配概率为大于所述预置阈值的匹配概率。
进一步地,所述计算单元7032具体用于:
依次计算所述图谱知识库中的每个分布式向量与所述待回复语句的语义向量之间的匹配值,得到知识匹配值集,其中,所述知识匹配值集包括至少两个匹配值;
对所述知识匹配值集中的至少两个关联匹配值求和,得到知识匹配概率集,其中,所述关联匹配值为同一分布式向量集中的分布式向量与所述待回复语句的语义向量之间的匹配值。
其中,所述模型训练模块704包括:
输入单元7041,用于对所述预置语言模型进行初始化,并将所述目标知识集和所述历史对话语句输入至所述预置语言模型中;
计算单元7042,用于基于所述预置语言模型,计算所述历史对话语句中的目标对话与所述目标知识集中每个知识的匹配概率,得到多分类匹配概率分布;
损失计算单元7043,用于根据预置损失函数,计算所述多分类匹配概率分布对应的损失结果;
参数调节单元7044,用于基于所述损失结果,调节所述预置语言模型的参数,得到对话推荐模型。
进一步地,所述参数调节单元具体用于:
将所述损失结果传输至所述预置语言模型中;
根据所述损失结果,基于随机梯度下降算法对所述预置语言模型的网络参数进行迭代更新,直至所述预置语言模型收敛;
当所述预置语言模型收敛时,确定当前所述预置语言模型的网络参数为目标参数,得到对话推荐模型。
本发明实施例中,模块化的设计让对话内容的推荐装置各部位的硬件专注于某一功能的实现,最大化实现了硬件的性能,同时模块化的设计也降低了装置的模块之间的耦合性,更加方便维护。
上面图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)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。