本说明书涉及人工智能技术领域,特别地,涉及一种基于知识图谱的问答处理方法、装置及设备。
背景技术:
在当今金融市场竞争日趋激烈的形势下,客户服务已变成公司生态圈中必不可少的关键构成部分。随着人工智能和自然语言处理技术的发展,自动问答取代人工座席问答会有越来越广泛的发展和应用。在银行客服实际工作中,网点信息咨询、信用卡信息咨询等重要问答场景在人工坐席需求中使用非常频繁,通过人工智能技术提高此类场景的客服工作效率势在必行。
目前,随着知识图谱技术的不断深入研究推广,业界已逐步将知识数据转化为知识图谱,以此为数据资产进行管理和访存,以替代传统全文搜索知识的方式,达到知识可视化、智能问答、精准搜索、知识推理等技术落地。而基于知识图谱的问答,技术上主要是根据问题类别范围,预先设计出图查询语句模板,在接收到问题后,对问题进行抽象识别,根据问题识别链接后的结果,与模板匹配后得到查询意图,通过替换链接到的结果生成图查询语句。利用图查询语句模板的方式,需预先构建大量的图查询语句模板,需要消耗较大的人力成本。同时,构建的图查询语句模板毕竟有限,无法满足知识咨询场景的灵活需求。
针对上述问题,目前尚无有效的解决方案。
技术实现要素:
本说明书实施例的目的在于提供一种基于知识图谱的问答处理方法、装置及设备,可以进一步提高答案信息生成的准确性。
本说明书提供一种基于知识图谱的问答处理方法、装置及设备是包括如下方式实现的:
一种基于知识图谱的问答处理方法,所述方法包括:接收终端设备发送的利用自然语言表征的问题信息;生成所述问题信息所对应的至少一个按序执行的执行单元的图查询语句;基于所述图查询语句访问预先构建的知识图谱,得到所述执行单元执行结果,并存储所述执行结果,以使下一个执行单元的图查询语句基于所述执行结果访问所述知识图谱;基于最后一个所述执行单元的执行结果确定所述问题信息所对应的答案信息,以将所述答案信息反馈至所述终端设备。
本说明书提供的所述方法的另一些实施例中,所述方法还包括:比对所述答案信息与所述问题信息所对应的样本答案之间的相似度,以基于所述相似度确定所述答案信息的期望值;在所述期望值大于指定值的情况下,将所述答案信息所对应的至少一个按序执行的执行单元的图查询语句作为一个图查询语句序列,存储至参考信息集中,以基于所述参考信息集优化语句生成模块;其中,所述语句生成模块用于生成问题信息的图查询语句。
本说明书提供的所述方法的另一些实施例中,所述语句生成模块基于迭代的强化学习以及最大似然估计算法构建。
本说明书提供的所述方法的另一些实施例中,所述方法还包括:在所述期望值大于指定值的情况下,提取所述图查询语句的特征向量;基于所述知识图谱提取所述问题信息所对应的样本答案的图谱特征向量;所述图谱特征向量至少根据答案图谱路径生成;将所述查询向量与所述图谱特征向量比对,以确定所述图查询语句序列是否正确;利用所述图查询语句序列是否正确的结果对所述图查询语句序列进行打标,以基于打标后的图查询语句序列优化所述语句生成模块。
本说明书提供的所述方法的另一些实施例中,所述基于所述图查询语句访问预先构建的知识图谱,包括:执行模块基于所述图查询语句访问预先构建的知识图谱;其中,所述执行模块利用lisp解释器构建。
本说明书提供的所述方法的另一些实施例中,所述基于所述图查询语句访问预先构建的知识图谱,包括:利用预先构建的语句结构信息集对所述图查询语句进行核查;其中,所述语句结构信息集至少包括gremlin语言的图查询语句语法结构信息;在核查通过的情况下,基于所述图查询语句访问预先构建的知识图谱。
另一方面,本说明书实施例还提供一种基于知识图谱的问答处理装置,所述装置包括:接收模块,用于接收终端设备发送的利用自然语言表征的问题信息;语句生成模块,用于生成所述问题信息所对应的至少一个按序执行的执行单元的图查询语句;执行模块,用于基于所述图查询语句访问预先构建的知识图谱,得到所述执行单元执行结果,并存储所述执行结果,以使下一个执行单元的图查询语句基于所述执行结果访问所述知识图谱;答案生成模块,基于最后一个所述执行单元的执行结果确定所述问题信息所对应的答案信息,以将所述答案信息反馈至所述终端设备。
本说明书提供的所述装置的另一些实施例中,所述装置还包括:第一比对模块,用于比对所述答案信息与所述问题信息所对应的样本答案之间的相似度,以基于所述相似度确定所述答案信息的期望值;信息集更新模块,用于在所述期望值大于指定值的情况下,将所述答案信息所对应的至少一个按序执行的执行单元的图查询语句作为一个图查询语句序列,存储至参考信息集中,以基于所述参考信息集优化语句生成模块;其中,所述语句生成模块用于生成问题信息的图查询语句。
本说明书提供的所述装置的另一些实施例中,所述装置还包括:第一特征提取模块,用于在所述期望值大于指定值的情况下,提取所述图查询语句的特征向量;第二特征提取模块,用于基于所述知识图谱提取所述问题信息所对应的样本答案的图谱特征向量;所述图谱特征向量至少根据答案图谱路径生成;第二比对模块,用于将所述查询向量与所述图谱特征向量比对,以确定所述图查询语句序列是否正确;打标模块,用于利用所述图查询语句序列是否正确的结果对所述图查询语句序列进行打标,以基于打标后的图查询语句序列优化所述语句生成模块。
另一方面,本说明书实施例还提供一种基于知识图谱的问答处理设备,所述设备包括至少一个处理器及用于存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括上述任意一个或者多个实施例所述方法的步骤。
本说明书一个或多个实施例提供的基于知识图谱的问答处理方法、装置及设备,将问题信息所对应的答案信息的生成拆分成至少一个按序执行的执行单元的形式,生成各执行单元的图查询语句,利用相应的图查询语句访问数据库或执行逻辑计算,并将执行结果进行关联存储。后面的执行单元的图查询语句的执行基于前面的执行单元的执行结果,依次执行,以生成最终的答案信息。整个处理逻辑可以看作一个倒立的树形结构,叶子为每个执行单元,叶子的执行结果缓存在内存中,为后续执行单元的图查询语句执行所引用,根据最终的根节点所执行的结果生成问题信息的答案信息。使得整个问答信息的处理逻辑更加清晰,便于模型整体处理逻辑的优化调整,可以大幅提高模型训练的效率以及模型执行结果的准确性,进而提高答案信息生成的准确性。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本说明书提供的一种基于知识图谱的问答处理方法实施例的流程示意图;
图2为本说明书提供的一种基于知识图谱的问答处理装置的模块结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是说明书一部分实施例,而不是全部的实施例。基于说明书一个或多个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书实施例方案保护的范围。
本说明书实施例提供的一个场景示例中,所述问答处理方法可以应用于执行问答处理的系统,所述系统可以包括服务器以及终端设备。所述服务器可以是指单个服务器,也可以包括多个服务器组成的服务器集群。所述终端设备可以为手机或业务终端等。服务器可以接受终端设备发送的问题信息,基于预先配置的问答处理模型及知识图谱对问题信息进行处理,得到所述问题信息所对应的答案信息,并将答案信息反馈至终端设备,实现自动问答处理。
所述知识图谱可以预先构建,并配置在服务器可以访问的数据库中。知识图谱的信息可以来源于企业内部已建立的知识库以及相关开源知识库等。与问答对话相关的信息通常可以分为以数据库存取的结构化数据和以文档为主的非结构化文本数据。在基于知识库进行知识图谱构建过程中,可以先进行知识抽取。对非结构化数据,在知识抽取之前还可以先进行预处理,将非结构化数据转换为结构化数据,以使得基于知识图谱进行问答回复的准确性。
例如,知识库中存储的银行网点相关数据,通常是以结构化数据为主。银行网点相关数据如可以包括网点名称、网点地址、联系方式、办理业务范围、营业时间、所属地区等,则只需将属于短文本数据的网点地址进行处理,进一步解析出省、市、区地域等实体信息。而信用卡介绍相关数据,通常是以文本形式存在。对于文本数据,则需要进行语义分析,对语句进行分词处理,去掉无效字词,进行容错纠错,建立相关词典,去除低频词汇,保留topk高频词,以及还可以建立实体同义词库等预处理。之后,再基于预处理后的信息进行知识抽取。其中,同义词库主要用于图谱构建时的实体融合和实体链接时的实体消歧,提高问答准确率。
之后,可以根据对知识库以及相关问题样例的技术分析,创建本体schema,确立知识图谱三元组,设置各类实体的结构,包括连接多个实体之间的关系、实体的属性以及关系的属性。并根据第一步的知识抽取结果,将相关信息映射到schema结构体字段上,构建得到知识图谱,最终导入至数据库中。
例如,以每个银行网点为节点,网点号码和网点类型是其属性,省、市、区是另外节点,与银行网点建立区域所属关系,建立银行网点与营业时间的关系,根据银行网点与银行网点的距离建立附近银行网点的关系等,并根据需要建立本体同义词库。又如,信用卡、信用卡活动、信用卡权益均为不同实体,信用卡年费是信用卡的一个属性,信用卡活动期限是活动实体的一个属性,若要查询某一信用卡的某一活动的活动期限,可以先通过信用卡与活动的关系,查找到此活动,再查询活动的活动期限属性。从而基于多个实体之间的关系、实体的属性以及关系的属性构建得到知识图谱,并存储至数据库中。
还可以预先构建不同主题的知识图谱。所述主题如可以基于业务类型、业务需求等划分。通过构建不同主题的知识图谱,可以降低答案信息生成时的信息搜索量,以及降低噪声信息的干扰,提高搜索的效率以及准确性。
当然,所属领域技术人员在本说明书实施例的技术精髓启示下,关于知识图谱的构建还可能有其它变更实施方式,但只要其实现的功能和效果相同或相似,均应涵盖于本说明书保护范围内。
所述问答处理模型至少可以包括语句生成模块、执行模块。所述语句生成模块用于将利用自然语言表征的问题信息转换为服务器可执行的图查询语句。所述图查询语句可以用于访问数据库的知识图谱,提取需要的信息;以及所述图查询语句还可以用于基于从知识图谱中提取到的信息执行逻辑计算等。所述图查询语句如可以为基于gremlin语言编写。当然,所述图查询语句也可以采用其他可执行图谱查询的语言进行编写。所述逻辑计算如可以包括对从知识图谱中提取到的信息执行数据筛选、求均值、求加和等处理。语句生成模块可以将生成的图查询语句发送至执行模块,由执行模块访问数据库的知识图谱以及执行相关逻辑计算等。最终可以基于执行模块的执行结果得到问题信息所对应的答案信息。
语句生成模块在基于知识图谱确定复杂问题所对应的答案时,可以将复杂问题拆分成多个按序独立执行的执行单元,生成各执行单元所对应的图查询语句。基于各执行单元的图查询语句完成执行后,可以得到执行结果。执行结果如可以为基于相应执行单元的图查询语句从图谱中查询到的数据或经过计算得到的计算结果等。可以将每个执行单元的执行结果与执行单元进行关联后存储。后面的执行单元的图查询语句可以引用前面的执行单元的执行结果,基于引用的执行结果访问数据库或执行逻辑计算。
执行单元如可以为知识图谱中的所涉及的一度查询,还可以为基于前面的执行单元的查询结果进行的逻辑计算等。其中,一度查询可以是指知识图谱中一条边所关联的节点之间的查询操作,以及节点与节点属性之间的查询操作。比如查询a网点的联系电话,联系电话是a网点的一个属性,则该查询属于一度查询。又如查询a网点在五一期间是否上班,节假日和网点之间是“营业”关系,则该查询也属于一度查询。在对各图查询语句依次执行后,可以得到所述问题信息所对应的答案信息。
例如,问题信息为“b城市周六营业的网点有哪些”,语句生成模块可以将该问题信息拆分为四个按序执行的执行单元:“b城市有哪些网点”、“各网点的营业时间”、“周六营业的网点”、“网点的名称、地址”。
如可以先对执行单元“b城市有哪些网点”进行处理,语句生成模块可以生成该执行单元相应的图查询语句,并发送给执行模块。执行模块可以利用该执行单元相应的图查询语句访问数据库,从知识图谱中查询得到b城市所关联的网点实体,将b城市的网点所组成的网点列表(列表中存储的可以为网点在图谱中的节点标识)作为该图查询语句的执行结果,并进行存储。
然后,可以对执行单元“各网点的营业时间”进行处理,语句生成模块可以生成该执行单元相应的图查询语句,并发送给执行模块。执行模块在执行该图查询语句访问数据库时,可以引用前一个执行单元的执行结果,从知识图谱中查询出b城市的网点列表中各网点的营业时间,并将查询到的营业时间作为各网点的属性信息存储至网点列表中,得到该执行单元的执行结果,并进行存储。
依次类推,在执行下一个执行单元“周六营业的网点”时,可以引用前一个执行单元的执行结果,提取或标注网点列表中营业时间包含周六的网点,并进行存储。之后,可以执行下一个执行单元“网点的名称、地址”,并引用前一个执行单元的执行结果,访问数据库,从知识图谱中查询出提取或标注的网点的名称、地址信息。最后,可以基于最后一个执行单元的执行结果生成问题信息所对应的答案信息。
当然,上述执行单元划分方式仅为举例说明,并不构成对实际执行方式的直接限定。实际执行过程中,针对一个给定的问题信息,在生成其对应的正确答案时,所对应的执行单元的实际执行方式以及各执行单元的执行顺序,在实际应用中可能并不是单一的,是可能存在多种变形的。语句生成模块如可以对问题信息的实体信息以及实体信息之间的关联关系进行分析,并根据分析结果生成按序执行的至少一个执行单元所对应的图查询语句。或者,也可以通过神经网络、序列到序列模型等构建所述语句生成模块,再利用样本数据,对该模块进行训练。之后,可以利用训练得到的语句生成模块生成问题信息所对应的至少一个按序执行的执行单元所对应的图查询语句。
当然,所属领域技术人员在本说明书实施例的技术精髓启示下,关于语句生成模块的构建还可能有其它变更实施方式。
通过上述实施方式,将问题信息所对应的答案信息的生成,拆分成至少一个按序执行的执行单元的形式,生成各执行单元的图查询语句,利用相应的图查询语句访问数据库或执行逻辑计算,并将执行结果进行关联存储。后面的执行单元的图查询语句的执行基于前面的执行单元的执行结果,依次执行,以生成最终的答案信息。整个处理逻辑可以看作一个倒立的树形结构,叶子为每个执行单元,叶子的执行结果缓存在内存中,为后续执行单元的图查询语句执行所引用,根据最终的根节点所执行的结果生成问题信息的答案信息。使得整个问答信息的处理逻辑更加清晰,便于模型整体处理逻辑的优化调整,可以大幅提高模型训练的效率以及模型执行结果的准确性。
所述语句生成模块可以基于seq2seq(序列到序列)模型构建。如,所述语句生成模块可以至少包括两个lstm网络模型,一个lstm网络模型作为编码器,另一个lstm网络模型作为解码器。编码器用于对问题信息进行特征提取,编码器可以将提取的特征发送给解码器,由解码器将提取的特征转换为至少一个执行单元所对应的图查询语句。
例如,可以先对问题信息x进行拆分,得到由m个单词组成的单词序列x1、x2、…、xt,可以将每个单词xt映射到一个嵌入向量qt,得到词向量。然后,编码器可以读取这些嵌入向量,并使用ht+1=lstm(ht,qt,we)逐步更新隐藏状态,其中ht为单词xt对应的隐藏状态,we是编码器的参数矩阵。编码器最终所输出的隐藏状态为从单词序列中提取出来的特征。即编码器最终所输出的隐藏状态可以用来表征问题信息x的整体特征。解码器可以作为一个图查询语句生成器。可以将编码器输出的隐藏状态作为解码器的初始隐藏状态,使用ut+1=lstm(ut,ct-1,wd)逐步更新解码器的隐藏状态,其中ct-1为基于前一个执行单元的执行结果所生成的嵌入向量,wd为参数矩阵。
如可以使用hash表存储机制来存储答案信息生成过程中所涉及的中间信息。hash表可以利用键-变量的形式存储信息。其中,键值可以为对中间信息进行标识的信息,变量的值为中间信息。在编码过程中,可以使用实体链接技术将问题信息匹配知识图谱的实体上。对每个链接实体,可以在hash表中增加一条记录,其中,key的键值ki是每个链接实体对应于编码器的隐藏状态的向量值,变量si的值是每个链接实体在知识图谱中的数据表示的名称。在解码过程中,当生成一个执行单元的图查询语句时,相应的图查询语句将被执行模块执行,执行后的执行结果将作为变量的值存储,而变量所对应的键值由该执行单元所对应的解码器的隐藏状态确定。可以将执行结果所对应的键-变量数据进一步添加至解码器的引用表中。解码器在生成下一个执行单元所对应的图查询语句时,可以从引用表中提取该执行单元的执行结果。
相应的,语句生成模块可以对问题信息进行特征提取,得到用于表征问题信息的整体特征的信息,如上文中所述的编码器最终输出的隐藏状态。编码器再基于该隐藏状态进行解码,逐步生成该问题信息所对应的至少一个按序执行的执行单元的图查询语句。语句生成模块再按序将各执行单元的图查询语句发送给执行模块,以使执行模块按序进行执行。通过基于问题信息的整体特征作为输入,在解码的过程中,再基于前一个执行单元的执行结果进行后一个执行单元的图查询语句生成,可以使得图查询语句的生成更加准确。同时,也可以更加快速的得到正确答案所对应的执行单元所组成的序列,提高模型训练的效率。
当然,所属领域技术人员在本说明书实施例的技术精髓启示下,还可能有其它变更实施方式,但只要其实现的功能和效果相同或相似,均应涵盖于本说明书保护范围内。
基于上述实施方式,如图1所示,本说明书实施例提供一种基于知识图谱的问答处理方法,应用于服务器,所述方法可以包括如下步骤。
s20:接收终端设备发送的利用自然语言表征的问题信息。
服务器可以接收终端设备发送的利用自然语言表征的问题信息。例如,在问答对话场景中,用户可以在终端设备上输入问题信息,终端设备可以将问题信息发送至服务器。用户如可以通过打字或者语音等方式输入问题信息,服务器在接收到问题信息后,可以先将问题信息转换为文本形式。相应的,问题信息通常是利用自然语言表征的。
s22:生成所述问题信息所对应的至少一个按序执行的执行单元的图查询语句。
服务器在接收到问题信息后,可以先将问题信息转换为服务器可执行的程序代码,以便于访问数据库,执行数据查询。本实施例中,数据库中存储的信息以知识图谱的形式呈现。数据库中的知识图谱的构建参照上述实施方式实施,这里不做赘述。相应的,服务器可以将问题信息转换为图查询语句,以基于该语句访问数据库。图查询语句如可以采用gremlin语言构建。当然,也可以采用其他图谱语言构建。
服务器可以生成所述问题信息所对应的至少一个按序执行的执行单元的图查询语句。执行单元中所包括的执行逻辑可以是多种形式的,如可以为对知识图谱的一度查询操作,也可以为基于查询结果的逻辑计算等。服务器如可以根据对问题信息的实体信息以及实体信息之间的关联关系的分析结果,生成按序执行的至少一个执行单元的图查询语句。或者,也可以通过神经网络、序列到序列模型等构建语句生成模块,如上述实施例所述,这里不做赘述。以使语句生成模块智能生成问题信息所对应的至少一个按序执行的执行单元的图查询语句。即通过对语句生成模块进行训练,以使语句生成模块可以智能确定问题信息所对应的执行单元的执行逻辑以及组合方式,以得到问题信息所对应的答案信息。
s24:基于所述图查询语句访问预先构建的知识图谱,得到所述执行单元执行结果,并存储所述执行结果,以使下一个执行单元的图查询语句基于所述执行结果访问所述知识图谱。
服务器可以基于各执行单元的图查询语句访问预先构建的知识图谱,得到相应执行单元的执行结果。还可以将执行结果进行存储。存储方式可以参考上述实施方式,这里不做赘述。在执行下一个执行单元的图查询语句时,服务器可以引用上一个执行单元的执行结果,访问知识图谱,生成该执行单元的执行结果,并进行存储。依次类推,直至执行单元全部执行完毕。
s26:基于最后一个所述执行单元的执行结果确定所述问题信息所对应的答案信息,以将所述答案信息反馈至所述终端设备。
服务器可以基于最后一个执行单元的执行结果确定所述问题信息所对应的答案信息。如可以直接将执行结果作为所述问题信息的答案信息。如执行结果为知识图谱中的数据表示的名称,则还可以基于数据表示的名称进一步提取相应的实体信息,生成答案信息。服务器可以将最终生成的答案信息反馈给终端设备,以使终端设备向用户展示。
通过上述实施方式,相当于将整个处理逻辑构建成一个倒立的树形结构,叶子为每个执行单元,叶子的执行结果缓存在内存中,为后续执行单元的图查询语句执行所引用,根据最终的根节点所执行的结果生成问题信息的答案信息。使得整个问答信息的处理逻辑更加清晰,便于模型整体处理逻辑的优化调整,可以大幅提高模型训练的效率以及模型执行结果的准确性。
优选的,所述执行模块可以利用lisp解释器构建。基于图谱查询语言在知识库上执行离散操作时,需先进行语言理解、语义分析及符号推理等。但该执行前的语言理解、语义分析及符号推理等操作较难完全推广到训练数据之外,使得构建的模型的稳定性和普适性较差。lisp解释器具有抽象、可伸缩和精确的特性,使用其构建执行模块,可以更加有效的实现执行前的语言理解、语义分析及符号推理等操作。
一些实施方式中,还可以在lisp解释器中进一步配置程序辅助执行机制。可以利用该程序辅助执行机制为执行语句提供代码帮助,降低图谱遍历操作时的搜索空间。可以在答案信息的期望值较高的情况下,将该答案信息的图查询语句的执行操作存储至执行参考集中,以基于所述执行参考集对程序辅助执行机制进行调整以及优化。相应的,基于该程序辅助执行机制,在执行时可以快速关联出需要语言理解、分析、推理等操作后,才能得到的具体执行机器码,大幅提高查询效率及准确性。
另一些实施方式中,还可以在执行模块中预先配置程序预检测机制。执行模块在收到执行语句后,可以先利用该程序预检测机制对图查询语句等进行语法、语义等检查。在检查出现错误时,可以及时进行标注并反馈,终止执行操作。如利用gremlin语言作为图查询语言,基于gremlin语言构建图谱遍历操作的语法和函数。gremlin语言不同于普通的数据库结构化查询语言(如sql),基于gremlin语言生成的查询函数较多,函数之间的合成后所形成的程序更多。对gremlin程序的执行,较难通过机器模型训练预测的方式来确认程序的有效性,导致如果最终查询出现错误或者失败,很难进行问题追踪。可以预先分析gremlin语言的语法、语义等结构,比如,g.v()表示查询当前图谱中所有的节点;g.v().properties().key()表示查询当前图谱中所有节点的所有属性等。然后,可以基于gremlin语言的语法、语义等结构,构建符合该程序语言的程序预检测机制,及时追踪因执行语句的语法、语义错误导致的执行失败问题,避免该部分问题对模型优化带来的困扰,提高模型优化的效率以及稳定性。
相应的,一些实施例中,所述基于所述图查询语句访问预先构建的知识图谱可以包括:利用预先构建的语句结构信息集对所述图查询语句进行核查;其中,所述语句结构信息集至少包括gremlin语言的图查询语句语法结构信息;在核查通过的情况下,基于所述图查询语句访问预先构建的知识图谱。
另一些实施例中,所述问答处理模型还可以包括管理模块。在模型训练或者模型优化过程中,可以将所述答案信息发送至管理模块。管理模块可以分析该答案信息所对应的期望值。如在模型训练过程中,管理模块可以通过比对该答案信息与样本答案之间的相似度,来确定该答案信息的期望值。在问答对话场景中,管理模块可以基于答案信息的评分结果来确定该答案信息的期望值。所述评分可以是由业务人员或者用户对答案打的分值,以基于该分值确定服务器所得出的答案信息的准确性。语句生成模块可以基于该期望值进行模型参数的调整及优化等,以提高图查询语句序列生成的准确性,进而提高答案信息生成的准确性。
终端设备发送的问题信息通常是以自然语言的形式存在的,数据库中的信息则是以知识图谱的形式存储的,需要利用专门的图查询语言执行相关实体信息的查询,使得问题信息与执行数据查询的图查询语句之间的对应关系也较为复杂,很难直接进行标注。且对于一个指定的问题信息,语句生成模块所生成的执行单元的图查询语句以及各执行单元的执行顺序的形式是复杂多变的。因此,如果直接标注问题信息与其所对应的图查询语句序列,复杂度较高。本实施例中,基于问答对作为样本数据进行问答处理模块的构建,可以降低数据标注的难度和成本。
如在语句生成模块训练中,可以提取问题信息所对应的标准答案信息作为样本答案,构建问答对样本数据,指导问答处理模型参数的调整以及优化。例如,可以结合对话场景以及常见问题,构建问题样例。然后,可以结合对话场景所涉及的业务处理逻辑、知识图谱等信息确定问题样例所对应的样本答案。如信用卡问答场景,可以对信用卡的业务处理逻辑以及知识图谱进行分析,以实现问题信息中的实体信息与知识图谱中实体信息的关联,进而找出样本答案,生成问答对样本数据。
如银行网点问答场景中涉及提问某一银行网点的营业时间,常见的问题信息可以为“a网点周六营业吗?”、“a网点周六下午营业到几点?”等。假设有1万个银行网点,统计出与银行网点相关的一度查询为20类,预计每个网点均与这20类问题相关,因此可以列出20万个问题。可以从中随机抽取10%作为问答对样本数据,构建训练集、验证集和预测集,以开展多轮的模型训练。
在问答对话场景中,可以对问题信息所对应的答案信息进行评分,基于评分较高的答案信息构建问答对样本数据,指导语句生成模块的优化。可以将分值较高的答案信息作为样本答案,以基于相应的问题信息以及答案信息对语句生成模块进行优化。当然,在问答对话场景中,也可以采用其他机制确定答案信息的准确性,这里不做限定。
相应的,一些实施例中,所述方法还可以包括:比对所述答案信息与所述问题信息所对应的样本答案之间的相似度,以基于所述相似度确定所述答案信息的期望值;在所述期望值大于指定值的情况下,将所述答案信息所对应的至少一个按序执行的执行单元的图查询语句作为一个图查询语句序列,存储至参考信息集中,以基于所述参考信息集训练以及优化语句生成模块,进而基于优化的语句生成模块生成其他问题信息的图查询语句。从而提高答案信息生成的准确性。
问答对作为样本数据,虽然可以指导模型的训练及优化,但其与语句生成模块的直接输入以及输出还是存在一定差异的。一些实施例中,语句生成模块可以利用迭代的强化学习以及最大似然估计算来构建。即可以利用迭代的强化学习以及最大似然估计算法结合来引导语句生成模块的训练以及优化。最大似然估计可以增强模型的稳定性以及学习效率,强化学习的目标函数较优,将两者结合起来,可以在保证训练效率的同时,提高模型的稳定性以及准确性。
给定一个问题信息x,假设每个时间步t∈{0,1,…,t}的隐藏状态、执行单元和期望为(st,at,rt)。问题信息的上下文环境是确定性的,隐藏状态可以由问题信息x和执行单元序列定义:st=(x,a0:t-1),其中,a0:t-1=(a0,…,at-1),是时间步t的历史隐藏状态。时间步t的有效执行单元at∈a(st),其中a(st)是执行模块给出的一组有效执行的标记。由于每个执行单元对应于一个历史记录a0:t对应于一个执行序列。期望rt=i[t=t]·f1(x,a0:t)仅在解码的最后一步且是非零的数值,即是样本答案与图查询语句序列a0:t生成的答案信息相比较的分数f1。因此,a0:t的累积期望r(x,a0:t)可以利用公式(1)确定。
强化学习的agent每次的决策过程由一个策略定义,πθ(s,a)=pθ(at=a|x,a0:t-1),其中,θ是模型参数。由于知识图谱实体关系是确定的,生成a0:t的概率可以利用公式(2)计算得到。
将最终执行单元的执行目标定义为前期执行单元的累积奖励,因各执行单元所组成的图查询语句序列不在一定的有限范围,使得模型生成出最优的图查询语句序列需要花费较多的时间,且有可能很难确定较优的图查询语句序列。可以进一步利用策略梯度方法进行加强学习的训练。策略梯度需要一个神经网络来输出预测的动作、目标以及梯度,如公式(3)所示。
其中b(x)=∑a0:tpθ(a0:t|x)r(x,a0:t)是一个基线,它的作用是在不引入偏差的情况下减少了梯度估计的方差。同时,强化学习采用随机策略,使用束搜索进行有选择的局部梯度估计,与从模型中采样来近似梯度的做法不同,在束中使用归一化概率,并选出前k个执行单元的图查询语句序列,使得训练集中在高概率序列上,并减少梯度的方差。如果束宽k很小,好的执行单元会从束中脱落,导致束中所有执行单元的梯度为零。如果束宽k很大,训练非常慢,并且当模型未经训练时,好执行单元的归一化概率仍然很小,导致公式(3)接近零基线。可以进一步采用一种基于最大似然的训练策略,以解决理想执行单元的归一化概率小的问题。即可以基于公式(4)执行一个迭代过程,给定某一参数的情况下搜索好的执行单元,并输出相应的图查询语句序列,优化模型目标,获得最佳图查询语句序列的概率。
其中,
迭代极大似然估计可以得出答案y,但仍然没有直接优化最理想的图查询语句序列。例如,最好的图查询语句序列可能是一个错误的执行操作,它只是意外地产生了正确的答案。所以,在找到最理想图查询语句序列后,还可以执行强化学习,在一束范围内将其中的图查询语句序列的概率之和归一化为(1-α),并将α作为查找到的最理想图查询语句序列的概率中。从而使得在训练过程中,该模型总是为一个高奖励的图查询语句序列设定一个合理的概率。降低错误的图查询语句序列对模型稳定性的影响。优选的,上述两个算法的目标可以是线性组合的,以保证训练的稳定性。
由上述实施方式可知,问答对并非问答处理模型的标准标注样本,有时虽然可以得出正确的答案,但得出该答案的图查询语句序列却可能是错误的,只是意外的产生了正确的答案。且问答对的形式及内容相对较为固化,数量也有限,仅基于问答对作为样本数据进行问答处理模型的构建,很难保证构建的问答处理模型内部处理逻辑的准确性。
另一些实施例中,所述方法还可以包括:在所述期望值大于指定值的情况下,将所述答案信息所对应的至少一个按序执行的执行单元的图查询语句作为一个图查询语句序列,并提取所述图查询语句序列的特征向量;基于所述知识图谱提取所述问题信息所对应的样本答案的图谱特征向量;所述图谱特征向量至少根据答案图谱路径生成;将所述查询向量与所述图谱特征向量比对,以基于比对结果确定所述图查询语句序列是否正确。利用所述图查询语句序列是否正确的结果对所述图查询语句序列进行打标,以基于打标后的图查询语句序列优化所述语句生成模块。
如可以提取强化学习得到的较理想图查询语句序列,并提取所述图查询语句的特征向量。可以结合样本答案提取出答案路径、答案上下文、答案类型等知识图谱特征,组成图谱特征向量,将图谱特征向量与较理想图查询语句序列所对应的查询向量进行比对,以确定所述图查询语句序列是否正确。然后,可以将图查询语句序列打上正确或错误的标签,进一步对模型进行训练,进一步提高正确的理想图查询语句序列的生成概率。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。具体的可以参照前述相关处理相关实施例的描述,在此不做一一赘述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于上述所述的基于知识图谱的问答处理方法,本说明书一个或多个实施例还提供一种基于知识图谱的问答处理装置。所述的装置可以包括使用了本说明书实施例所述方法的系统、软件(应用)、模块、组件、服务器等并结合必要的实施硬件的装置。基于同一创新构思,本说明书实施例提供的一个或多个实施例中的装置如下面的实施例所述。由于装置解决问题的实现方案与方法相似,因此本说明书实施例具体的装置的实施可以参见前述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。具体的,图2表示说明书提供的一种基于知识图谱的问答处理装置实施例的模块结构示意图,如图2所示,应用于服务器,所述装置可以包括如下模块。
接收模块102,可以用于接收终端设备发送的利用自然语言表征的问题信息。
语句生成模块104,可以用于生成所述问题信息所对应的至少一个按序执行的执行单元的图查询语句。
执行模块106,可以用于基于所述图查询语句访问预先构建的知识图谱,得到所述执行单元执行结果,并存储所述执行结果,以使下一个执行单元的图查询语句基于所述执行结果访问所述知识图谱。
答案生成模块108,可以基于最后一个所述执行单元的执行结果确定所述问题信息所对应的答案信息,以将所述答案信息反馈至所述终端设备。
另一些实施例中,所述装置还可以包括:
第一比对模块,可以用于比对所述答案信息与所述问题信息所对应的样本答案之间的相似度,以基于所述相似度确定所述答案信息的期望值。
信息集更新模块,可以用于在所述期望值大于指定值的情况下,将所述答案信息所对应的至少一个按序执行的执行单元的图查询语句作为一个图查询语句序列,存储至参考信息集中,以基于所述参考信息集优化语句生成模块;其中,所述语句生成模块用于生成问题信息的图查询语句。
另一些实施例中,所述装置还可以包括:
第一特征提取模块,可以用于在所述期望值大于指定值的情况下,提取所述图查询语句的特征向量。
第二特征提取模块,可以用于基于所述知识图谱提取所述问题信息所对应的样本答案的图谱特征向量;所述图谱特征向量至少根据答案图谱路径生成。
第二比对模块,可以用于将所述查询向量与所述图谱特征向量比对,以确定所述图查询语句序列是否正确。
打标模块,可以用于利用所述图查询语句序列是否正确的结果对所述图查询语句序列进行打标,以基于打标后的图查询语句序列优化所述语句生成模块。
需要说明的,上述所述的装置根据方法实施例的描述还可以包括其他的实施方式。具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
本说明书还提供一种基于知识图谱的问答处理设备,所述设备可以应用于单独的基于知识图谱的问答处理系统中,也可以应用在多种计算机数据处理系统中。所述的系统可以为单独的服务器,也可以包括使用了本说明书的一个或多个所述方法或一个或多个实施例装置的服务器集群、系统(包括分布式系统)、软件(应用)、实际操作装置、逻辑门电路装置、量子计算机等并结合必要的实施硬件的终端装置。一些实施例中,设备可以包括至少一个处理器及用于存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括上述任意一个或者多个实施例所述方法的步骤。
所述存储器可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方式的媒体加以存储。所述存储介质有可以包括:利用电能方式存储信息的装置如,各式存储器,如ram、rom等;利用磁能方式存储信息的装置如,硬盘、软盘、磁带、磁芯存储器、磁泡存储器、u盘;利用光学方式存储信息的装置如,cd或dvd。当然,还有其他方式的可读存储介质,例如量子存储器、石墨烯存储器等等。
需要说明的,上述所述的设备根据方法或者装置实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
需要说明的是,本说明书实施例并不局限于必须是符合标准数据模型/模板或本说明书实施例所描述的情况。某些行业标准或者使用自定义方式或实施例描述的实施基础上略加修改后的实施方案也可以实现上述实施例相同、等同或相近、或变形后可预料的实施效果。应用这些修改或变形后的数据获取、存储、判断、处理方式等获取的实施例,仍然可以属于本说明书的可选实施方案范围之内。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述并不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。