一种基于知识图谱的数据推理方法、装置、服务器和介质与流程

文档序号:16782921发布日期:2019-02-01 19:16阅读:279来源:国知局
一种基于知识图谱的数据推理方法、装置、服务器和介质与流程
本说明书实施例涉及互联网
技术领域
,尤其涉及一种基于知识图谱的数据推理方法、装置、服务器和介质。
背景技术
:在具有海量数据的平台上,数据量庞大,数据之间存在着复杂的相互关系,可以根据知识图谱对数据之间的关系进行推理。由于知识图谱中存在大量需要推理获得的知识,将这些推理结果补充到知识图谱数据体系中,能够对数据进行更好的扩展。技术实现要素:本说明书实施例提供了一种基于知识图谱的数据推理方法和装置。第一方面,本说明书实施例提供一种基于知识图谱的数据处理方法,所述方法包括:获得知识图谱的输入实例数据;将预设的多个推理规则根据彼此之间的推理依赖关系划分为两个以上批次规则,不同批次规则具有不同的运行优先级;按照各批次的运行优先级从高到低,采用分布式迭代方式顺次运行各批次规则进行推理,获得所述知识图谱的汇总推理结果;其中,运行第一批次规则进行推理时,针对的输入数据为所述输入实例数据;运行第二批次及第二批次以上的规则进行推理时,针对的输入数据为上一批次规则输出的推理结果与所述输入实例数据。第二方面,本说明书实施例提供一种基于知识图谱的数据推理装置,所述装置包括:第一输入实例数据获得单元,用于获得知识图谱的输入实例数据;推理规则批次划分单元,用于将预设的多个推理规则根据彼此之间的推理依赖关系划分为两个以上批次规则,不同批次规则具有不同的运行优先级;第一汇总推理结果获得单元,用于按照各批次的运行优先级从高到低,采用分布式迭代方式顺次运行各批次规则进行推理,获得所述知识图谱的汇总推理结果;其中,运行第一批次规则进行推理时,针对的输入数据为所述输入实例数据;运行第二批次及第二批次以上的规则进行推理时,针对的输入数据为上一批次规则输出的推理结果与所述输入实例数据。第三方面,本说明书实施例提供一种服务器,包括存储器、推理器及存储在存储器上并可在推理器上运行的计算机程序,所述推理器执行所述程序时实现权利要求1-6任一项所述方法的步骤。第四方面,本说明书实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被推理器执行时实现权利要求1-6任一项所述方法的步骤。本说明书实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:本说明书实施例通过依据知识图谱规则推理特点,通过图谱节点划分将数据进行多批次规则迭代推理适应于分布式计算环境,得到一种适用于知识图谱的规则推理的方案,解决了大规模知识推理的时间和空间开销过大而无法实现的问题,达到了能够在分布式环境下做迭代推理,能够应用到大规模推理的技术效果。上述说明仅是本说明书实施例技术方案的概述,为了能够更清楚了解本说明书实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本说明书实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本说明书实施例的具体实施方式。附图说明图1为本说明书实施例中一种基于知识图谱的数据推理应用场景示意图;图2为本说明书实施例中一种基于知识图谱的数据推理方法的流程示意图;图3是本说明书实施例中单个批次规则数据推理方法的流程示意图;图4是本说明书实施例中又一种基于知识图谱的数据推理方法的流程示意图;图5是本说明书实施例中再一种基于知识图谱的数据推理方法的流程示意图;图6为本说明书实施例中一种基于知识图谱的数据推理装置的结构示意图;图7为本说明书实施例中一种基于知识图谱的数据推理服务器结构示意图。具体实施方式为了更好的理解上述技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。本说明书实施例提供了一种基于知识图谱的数据推理方法,用于解决大规模知识推理的时间和空间开销过大而无法实现的问题。在本说明书实施例的技术方案中,通过依据知识图谱规则推理特点,将数据进行多批次规则迭代推理,得到一种适用于知识图谱的规则推理的方案,达到了能够在分布式环境下做迭代推理,能够应用到大规模推理的技术效果。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。实施例一图1为本说明书实施例提供的基于知识图谱的数据推理应用场景示意图,终端100位于用户侧,与网络侧的服务器200通信。终端100中的客户端101可以是基于互联网实现业务的app或网站,为用户提供知识图谱数据的界面并将数据提供给网络侧进行推理;服务器200将推理后的数据发送至使所述客户端101。本说明书实施例提供的一种基于知识图谱的数据推理方法围绕领域知识图谱数据体系和算法,可以支撑金融、保险、客服,企业等应用场景,构建图谱数据应用生态,图2为本说明书实施例中一种基于知识图谱的数据推理方法的流程示意图。如图2所示,包括:步骤110,获得知识图谱的输入实例数据;具体的,可以根据预设的多个推理规则进行数据处理,获得知识图谱的输入实例数据。因为图谱中的原始输入数据有很多跟后续推理无关,所以可以先根据后续规则要用到的内容过滤掉无关的图谱数据,剩下徐亚的输入实例数据进入后续步骤进行推理。进一步的,一所述推理规则包括规则体,其中,所述规则体包括一个或多个子目标,其中,所述子目标具有一赋值语句。具体而言,知识图谱(knowledgegraph/vault)又称为科学知识图谱,在图书情报界称为知识域可视化或知识领域映射地图,是显示知识发展进程与结构关系的一系列各种不同的图形,用可视化技术描述知识资源及其载体,挖掘、分析、构建、绘制和显示知识及它们之间的相互联系。具体来说,知识图谱是通过将应用数学、图形学、信息可视化技术、信息科学等学科的理论与方法与计量学引文分析、共现分析等方法结合,并利用可视化的图谱形象地展示学科的核心结构、发展历史、前沿领域以及整体知识架构达到多学科融合目的的现代理论。它把复杂的知识领域通过数据挖掘、信息处理、知识计量和图形绘制而显示出来,揭示知识领域的动态发展规律,为学科研究提供切实的、有价值的参考。在本说明书实施例中,首选需得到推理所需的初始输入数据,即知识图谱的输入实例数据,在此之前,需要先获得所属知识图谱的原始输入实例数据,并对所述原始输入实例数据进行预处理,根据预设的多个推理规则对原始输入实例数据进行数据过滤,将不符合所述预设的多个推理规则的原始输入实例数据剔除,使得剩余的原始输入实例数据符合所述预设的多个推理规则,这些符合所述预设的多个推理规则的原始输入实例数据即作为知识图谱的输入实例数据。其中,所述预设的多个推理规则可以为符合所述知识图谱的datalog规则,datalog规则属于一种受限的prolog语言,datalog是一种基于逻辑的编程语言,是prolog的一种适应于知识库的改进形式语言,它是一阶谓词逻辑中horn子句逻辑的一种受限形式,只允许变量或常亮作为谓词的自变元。datalog的语句由事实和规则组成,同prolog一样,它可以实现对知识库的演绎推理,即可以从已知事实中根据跟着推理得到新的事实。具体的,一条datalog规则包括:规则头,所述规则头可以是关系原子,比如student(x);蕴涵符号:-所述蕴涵符号可以表示一种逻辑关系,而不是一种运算符号;规则体,所述规则体包括一个或多个子目标,所述子目标可以是关系原子或算数原子,其中,算数原子可以是布尔值,如a>10,各个子目标之间相当于and连接,所述规则的含义可以描述为检查规则中变量的所有可能的取值,当这些变量使规则体中所有子目标均为真时,规则头为真,反之,规则头则为假,举例来讲,p:-p1,p2,...pn//若p1,p2,...pn均为真,则p为真。为了使得datalog规则能更好的应用于知识图谱的推理,尤其是使其可以在分布式环境下推理更高效,对现有的datalog规则进行下述改进扩展:允许子目标中存在自定义函数,具体而言,子目标可以是赋值语句,如b=def_age(a)。例如,子目标可以分为三个类型:1关系原子,如edge_friends(x,y)2赋值原子,如a=def_age(b)3算数原子,结果为布尔型的算数表达式,如a>b。针对知识图谱,可以限定关系语句(包括规则头)为三种类型:1、边,约定以edge_开头,后跟边英文名称,如:edge_friends(x,y),表示x的朋友是y;2、类型,约定以type_开头,后跟类型英文名称,如type_person(x),表示x是人;3、属性,约定以prop_开头,后跟属性中文名称,如prop_age(x,a),表示x的年龄是a;第二种类型为赋值语句,如a=def_age(b);第三种类型为算数语句,其结果为布尔型的算数表达式,如a>b。步骤120,将预设的多个推理规则根据彼此之间的推理依赖关系划分为两个以上批次规则,不同批次规则具有不同的运行优先级;具体的,所述不同批次规则具有不同的运行优先级包括:所述运行优先级具体为依赖数,依赖数越小对应的所述运行优先级越高,不同批次规则具有不同的依赖数,同一批次规则具有相同的依赖数,规则的依赖数表明该规则对其他规则的依赖程度,依赖数与依赖程度正相关。具体而言,所述依赖关系亦称"逻辑关系"。在项目管理中,指表示两个活动(前导活动和后续活动)中一个活动的变更将会影响到另一个活动的关系。通常活动之间的依赖关系包括强制依赖关系(所做工作中固有的依赖关系)、可自由处理的依赖关系(由项目队伍确定的依赖关系)和外部依赖关系(项目活动与非项目活动之间的依赖关系)三种形式。就本说明书实施例而言,每个规则在进行推理时,可能需要用到其他规则的推理结果,才能推理出本规则的结果,这种情况就属于规则之间具有依赖关系。通过规则之间的依赖关系将规则进行分类,并按照分类进行分批次推理,使得推理能够在分布式环境下做迭代推理。依据知识图谱的依赖关系,规则之间存在着依赖关系,有的规则可能没有被其他规则依赖,有的规则可能被另外一个规则依赖,有的规则可能被多个其他规则依赖。在数据库中还存在很多存在依赖关系的规则,可以根据其中的依赖关系,归纳出每个规则被多少其他规则依赖,将被其他规则依赖的数量称之为依赖数,按照每个规则的依赖数对规则进行批次划分,将依赖数相同的规则划分为同一批次规则,例如将被两个其他规则依赖的规则划分为同一批次规则,将被一个其他规则依赖的规则划分为另一个批次的规则,从而对规则库中的规则进行整理划分,将杂乱无序的规则进行批次划分,从而对数据进行按照批次进行规则推理,将同一批次的规则对数据进行迭代推理。举例而言,将预设的多个推理规则根据彼此之间的推理依赖关系进行划分,得到了两个批次规则,这里称之为第一批次规则和第二批次规则,所述第一批次规则为按照相同依赖数的划分方式划分的具有相同依赖数的一个批次的规则,所述第二批次规则为另一组具有相同依赖数的一个批次的规则,其中,所述第一批次规则与所述第二批次规则的依赖数不同。并且所述第一、第二为了区分两个批次规则,并不存在具体意义,比较所述第一批次规则和所述第二批次规则的依赖数的大小,即依赖数越小对应的所述运行优先级越高,如果所述第一批次规则的依赖数小于所述第二批次规则的依赖数,则先按照所述第一批次规则对第一数据进行迭代推理,在按照第一批次规则进行迭代推理结束后,再按照所述第二批次规则进行迭代推理,其中,依赖数表明该规则对其他规则的依赖程度,依赖数越大,则说明规则之间依赖程度越高,反之,依赖数越小,则规则之间依赖程度越低。例如,规则1:edge_fatherinlaw(x,z):-edge_wife(x,y);edge_father(y,z)#x的老婆是y,y的父亲是z,推出x的岳父是z;规则2:type_middleager(x):-type_person(x);prop_age(x,a);a>35anda<50#x是人,x的年龄是a,a>35且<50则x是中年人;规则3:prop_age(x,b):-type_person(x);prop_birthdate(x,a);b=def_age(a)#x是人,x的生日是a,函数def_age得到年龄b,则x的年龄是b。以上述三个规则实例来看,我们可以得出如下规则之间的依赖关系,比如规则2依赖于规则3,因为子目标prop_age是由规则3推出的。也就是说,由于规则1和规则3之间没有依赖关系,可以将规则1和规则2的依赖数定义为0,进而可以作为第一批次规则,具有较高的运行优先级;同时,由于规则2依赖于规则3,故规则2的依赖数定义为1,可以作为第二批次规则,具有相比较第一批次规则较低的运行优先级。同理,如果还有其他规则,并且可能是层层依赖关系,比如规则4依赖规则5,规则5依赖规则1,那么规则4的依赖数就可以定义为2。当然所述预设的多个推理规则可以根据依赖数的不同进行划分,区分优先级,可以划分为一个批次规则、两个批次规则,或者若干个批次规则,同理的,按照上述方法以此类推进行下一批次规则的推理,直到将规则库中的划分的批次规则推理完毕。步骤130,按照各批次的运行优先级从高到低,采用分布式迭代方式顺次运行各批次规则进行推理,获得所述知识图谱的汇总推理结果;其中,运行第一批次规则进行推理时,针对的输入数据为所述输入实例数据;运行第二批次及第二批次以上的规则进行推理时,针对的输入数据为上一批次规则输出的推理结果与所述输入实例数据。具体而言,迭代推理中的迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次"迭代",而每一次迭代得到的结果会作为下一次迭代的初始值,直至第一数据推理完成,获得所述知识图谱的汇总推理结果。所以当进行第一批次迭代推理时,针对的输入数据为所述输入实例数据,而运行到第二批次规则以及第二批次规则以上的规则进行推理时,其输入数据将上一批次规则输出的推理结果加入所述输入实例数据中,作为本批次规则的输入数据进行推理,从而实现迭代推理的效果。具体的,所述分布式迭代方式为mapreduce分布式迭代方法,其中,对所述输入实例数据进行初始化map计算,获得第一输入数据,其中,所述第一输入数据中包括第一节点,所述第一节点为所述第一规则中下一个子目标相对应的节点;以第一节点为划分对象,根据mapreduce分布式计算对所述第一输入数据做reduce计算,获得所述知识图谱的汇总推理结果。具体而言,mapreduce是一种编程模型,用于大规模数据集(大于1tb)的并行运算。概念"map(映射)"和"reduce(归约)",和它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。当前的软件实现是指定一个map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。简单说来,一个映射函数就是对一些独立元素组成的概念上的列表(例如,一个测试成绩的列表)的每一个元素进行指定的操作(比如前面的例子里,有人发现所有学生的成绩都被高估了一分,它可以定义一个"减一"的映射函数,用来修正这个错误。)。事实上,每个元素都是被独立操作的,而原始列表没有被更改,因为这里创建了一个新的列表来保存新的答案。这就是说,map操作是可以高度并行的,这对高性能要求的应用以及并行计算领域的需求非常有用。而reduce操作指的是对一个列表的元素进行适当的合并(继续看前面的例子,如果有人想知道班级的平均分该怎么做?它可以定义一个化简函数,通过让列表中的元素跟自己的相邻的元素相加的方式把列表减半,如此递归运算直到列表只剩下一个元素,然后用这个元素除以人数,就得到了平均分。)。虽然他不如映射函数那么并行,但是因为化简总是有一个简单的答案,大规模的运算相对独立,所以化简函数在高度并行环境下也很有用。mapreduce通过对数据集的大规模操作分发给网络上的每个节点实现可靠性;每个节点会周期性的返回它所完成的工作和最新的状态。如果一个节点保持沉默超过一个预设的时间间隔,主节点(类同googlefilesystem中的主服务器)记录下这个节点状态为死亡,并把分配给这个节点的数据发到别的节点。每个操作使用命名文件的原子操作以确保不会发生并行线程间的冲突;当文件被改名的时候,系统可能会把他们复制到任务名以外的另一个名字上去。(避免副作用)。可以进行数据划分、出错检测和恢复:系统自动将一个作业(job)待处理的大数据划分为很多个数据块,每个数据块对应于一个计算任务(task),并自动调度计算节点来处理相应的数据块。作业和任务调度功能主要负责分配和调度计算节点(map节点或reduce节点),同时负责监控这些节点的执行状态,并负责map节点执行的同步控制。以低端商用服务器构成的大规模mapreduce计算集群中,节点硬件(主机、磁盘、内存等)出错和软件出错是常态,因此mapreduce能检测并隔离出错节点,并调度分配新的节点接管出错节点的计算任务。同时,系统还将维护数据存储的可靠性,用多备份冗余存储机制提高数据存储的可靠性,并能及时检测和恢复出错的数据。前面提及在进行推理时,由于规则被划分了多个批次,因此需要按照顺序,逐一运行每个批次的规则。由于每个批次规则在运行时的处理原理相同,因此下面以其中某一次(即单词)的运行为例,详细说明每一批次的规则运行具体过程。在一种可选实现方式中,如图3、5所示,采用所述分布式迭代方式运行单个批次规则进行推理的过程具体包括:步骤131:运用分布式计算对输入数据应用本批次规则进行初始化,获得推理未结束的中间数据或推理已结束的待检查数据;步骤132:根据数据的特征相关性,采用归纳的方式对所述中间数据和所述输入数据应用本批次规则进行再次推理,通过n轮迭代推理直到输出的数据中不再包含中间数据为止,其中,n为正整数;步骤133:对各轮迭代推理输出的待检查数据进行检验,如检验成功,输出运行本批次规则的推理结果,用以作为运行下一批次规则推理的输入数据的一部分。在步骤131中,运用分布式计算(比如mapreduce分布式计算)对输入数据应用本批次规则进行初始化,其目的是将输入数据进行划分和处理,实现在分布式计算体系中的每个机器处理不同的数据,从而达到分布式处理数据,能够解决时空效率问题,在源数据规模超大时,提高时间效率和空间效率的技术效果。进一步的,在步骤131中,通过运用分布式计算对输入数据应用本批次规则进行初始化后,可以两类数据,一类是推理未结束的中间数据,一类是推理已结束的待检查数据对于上述两类数据可以采用不同的处理方法:对于推理未结束的中间数据而言,以上述推理未结束的中间数据和上述输入数据为对象,应用本批次规则进行第二次推理,然后判断是否还存在推理未结束的中间数据,如果仍然存在推理未结束的中间数据,再次以第二次推理未结束的中间数据和上述输入数据为对象,应用本批次规则进行第三次推理,然后判断是否还存在推理未结束的中间数据。循环上面的处理逻辑,直至输出的数据中不再包含中间数据为止,进而可以判断推理成功。在推理成功之后,还需要对推理已结束的数据进行检测,即需要对推理已结束的待检查数据进行处理。其处理方式如步骤133所示。在步骤133中,为了保证推理结果的准确性以及为了防止输出重复数据,造成推理结果不准确,对于待检查数据,需要对其进行验证,即由于规则的判定方式为如果子目标都为真,则规则头为真,前面得出的各种待检查数据本质上是各规则的子目标内容,即表明子目标已经推出来了,但是还需要再校验下各子目标是否为真,如果为真,才能给出结论规则头的内容为真,即校验成功从而将结果输出。综上所述,本说明书实施例通过依据知识图谱规则推理特点,通过图谱节点划分将数据进行多批次规则迭代推理适应于分布式一方面指在步骤131进行数据初始化的过程中,会根据节点的内容进行聚类,即相关的节点实例进入一个计算节点处理;另一方指在步骤132对中间数据进行推理时,也会根据节点进行聚类(即数据的特征相关性,相关的数据会被聚到一起进行计算)解决了大规模知识推理的时间和空间开销过大而无法实现的问题,达到了能够在分布式环境下做迭代推理,能够应用到大规模推理的技术效果。实施二为了更好的说明本说明书实施例提供的一种基于知识图谱的数据处理方法,下面结合一具体实例予以说明。为了更清楚的解释说明,参见表1,对本实施例所需要的数据类型、规则示例等进行说明如下:(一)数据类型说明1、输入数据,{data_type=input,type=prop/edge/type,entity_id,prop_name,prop_value,edge_name,edge_entity_id,entity_type}#edge_entity_id是边指向的节点id,entity_type是节点对应的类型。2、中间数据,{data_type=middle,rule,entity_id,item_id,var_map}#rule是该中间数据对应的推理规则,entity_id是下一个子目标相关的节点id,item_id是下一个子目标编号,var_map是推理过程中已赋值的数据3、待检查数据,{data_type=check,type,entity_id,prop_name,prop_value,edge_name,edge_entity_id,entity_type}4、结果数据,{data_type=result,type,entity_id,prop_name,prop_value,edge_name,edge_entity_id,entity_type}(二)规则示例1、edge_fatherinlaw(x,z):-edge_wife(x,y);edge_father(y,z)#x的老婆是y,y的父亲是z,推出x的岳父是z2、type_middleager(x):-type_person(x);prop_age(x,a);a>35anda<50#x是人,x的年龄是a,a>35且<50则x是中年人3、prop_age(x,b):-type_person(x);prop_birthdate(x,a);b=def_age(a)#x是人,x的生日是a,函数def_age得到年龄b,则x的年龄是b下面介绍本说明书实施例所提供的基于知识图谱的数据处理方法,如图4、5所示:s1:过滤达到推理所需数据(相当于前一实施例中的步骤s110)在知识图谱中,有很多数据与推理无关,本步骤需要过滤掉无关的图谱数据,得到如下输入实例数据,如表1:表1data_typetypeentity_idprop_nameprop_valueedge_nameedge_entity_identity_typeinputedge1wife2inputedge2father3inputprop1birthdate1982-01-11inputprop2birthdate1986-06-12inputprop3birthdate1960-08-20inputtype1personinputtype2personinputtype3persons2:依据规则依赖关系将规则划分为多个批次(相当于前述实施例中的步骤s120)。其中,如上述规则示例中的规则1、规则2、规则3可设定如下的依赖关系:规则2依赖于规则3(子目标prop_age是规则3推出的),因此规则1和规则3之间的依赖数为0,作为第一批次规则;规则2的依赖数为1,作为第二批次规则。s31:第一迭代推理,其中第一迭代推理为应用第一批次规则予以计算(相当于步骤s130中的一部分),具体包括:运用mapreduce分布式计算对输入数据做初始化map计算,得到如下输出数据,如表2所示:表2data_typeruleentity_iditem_idvar_mapmiddleedge_fatherinlaw21{x=1,y=2}middleprop_age11{x=1}middleprop_age21{x=2}middleprop_age31{x=3}在上表中,数据类型是中间数据(middle),我们以第一行例子为例进行阐述。第一行例子中,其规则(rule)为edge_fatherinlaw,下一个子目标相关节点id(entity_id)为2,下一个子目标编号(item_id)为1,推理过程中已赋值的数据(var_map)为{x=1,y=2}。对于步骤s31而言,通过初始化map计算,获得了合适的切分点,比如entity_id,通过该切分点的建立,使推理能在分布式环境下做迭代推理成为可能,进而解决了大规模只是推理的时间和空间开销无法接受的问题。然后,按照entity_id划分做reduce计算,得到如下输出数据,如表3所示:表3data_typetypeentity_idprop_nameprop_valueedge_nameedge_entity_identity_typecheckedge1fatherinlaw3checkprop1age36checkprop2age31checkprop3age57在表3中,数据类型是待检查数据(check),因为其数据是尚未结束的数据,所以,需要在上一次reduce计算结束后,再经过一轮mapreduce,得到如下推理结果,如表4所示,至此第一批次规则推理结束。在验证所述待检查数据中,按照datalog的规则,检测规则中变量的所有可能的取值,当这些变量使规则体中所有子目标均为真时,规则头为真。对于本实施例的第一行例子而言,对于规则头edge_fatherinlaw(x,z)而言,判断子目标edge_wife(x,y)、edge_father(y,z)均为真时,判断规则头edge_fatherinlaw(x,z)为真。表4data_typetypeentity_idprop_nameprop_valueedge_nameedge_entity_identity_typeresultedge1fatherinlaw3resultprop1age36resultprop2age31resultprop3age57从上个步骤可以看出,在进行reduce计算时,是根据entity_id划分的,即entity_id都为1的聚合在一起进行计算,entity_id都为2的聚合在一起进行计算,以此类推,entity_id可以理解为前述实施例s320中的数据特征,根据数据的特征相关性,可以理解为将特征相同或近似的聚合归纳在一起进行计算,从而可以适用于分布式环境,不同的计算节点处理某一类特征相同或相似的数据,即通过节点合理切分达到了知识图谱推理能够适用于分布式计算环境的目的。s32:第n次迭代推理。(相当于前述实施例步骤s130中的一部分)将按照上一批次规则推理获得的结果加入到本批次规则进行推理的输入数据中,进行第二批次规则推理计算,并根据未结束数据的处理结果,直至进行到第n次迭代处理。在第二批次规则推理计算中,运用mapreduce分布式计算对输入数据做初始化map计算,得到如下输出数据,如表5所示:表5在初始化map计算之后,再做reduce计算,得到如下输出数据,如表6所示,其中如下输出数据为待检查数据:表6data_typetypeentity_idprop_nameprop_valueedge_nameedge_entity_identity_typechecktype1middleager将上述获得的待检查数据再经过一轮mapreduce,得到如下数据,如表7所示:表7data_typetypeentity_idprop_nameprop_valueedge_nameedge_entity_identity_typeresulttype1middleager最后推理结束得到所述知识图谱的汇总推理结果,如表8所示,通过图谱节点划分将数据进行多批次规则迭代推理适应于分布式计算环境,依据知识图谱规则推理特点,找到合适的切分点,让推理能在分布式环境下做迭代推理,达到了能够在分布式环境下做迭代推理,能够应用到大规模推理的技术效果。表8data_typetypeentity_idprop_nameprop_valueedge_nameedge_entity_identity_typeresultedge1fatherinlaw3resultprop1age36resultprop2age31resultprop3age57resulttype1middleager可以看出最终输出的推理结果是:1的岳父是3,1的年龄是36,2的年龄是31,3的年龄是57,1是中年人。实施例三基于与前述实施例中一种基于知识图谱的数据推理方法同样的发明构思,本说明书实施例还提供一种基于知识图谱的数据推理装置,如图6所示,包括:第一输入实例数据获得单元11,用于获得知识图谱的输入实例数据;推理规则批次划分单元12,用于将预设的多个推理规则根据彼此之间的推理依赖关系划分为两个以上批次规则,不同批次规则具有不同的运行优先级;第一汇总推理结果获得单元13,用于按照各批次的运行优先级从高到低,采用分布式迭代方式顺次运行各批次规则进行推理,获得所述知识图谱的汇总推理结果;其中,运行第一批次规则进行推理时,针对的输入数据为所述输入实例数据;运行第二批次及第二批次以上的规则进行推理时,针对的输入数据为上一批次规则输出的推理结果与所述输入实例数据。在一种可选实现方式中,所述装置还包括:优先级划分单元,用于所述运行优先级具体为依赖数,所述依赖数越小对应的所述运行优先级越高,不同批次规则具有不同的依赖数,同一批次规则具有相同的所述依赖数,规则的所述依赖数表明该规则对其他规则的依赖程度,所述依赖数与依赖程度正相关。在一种可选实现方式中,所述装置还包括:原始输入实例数据获得单元,用于获得知识图谱的原始输入实例数据;第二输入实例数据获得单元,用于根据预设的多个推理规则进行数据处理,获得知识图谱的输入实例数据。在一种可选实现方式中,所述装置还包括:初始化单元,用于运用分布式计算对输入数据应用本批次规则进行初始化,获得推理未结束的中间数据或推理已结束的待检查数据;中间数据推理单元,用于根据数据的特征相关性,采用归纳的方式对所述中间数据和所述输入数据应用本批次规则进行再次推理,通过n轮迭代推理直到输出的数据中不再包含中间数据为止,其中,n为正整数;待检查数据检验单元,用于对各轮迭代推理输出的待检查数据进行检验,如检验成功,输出运行本批次规则的推理结果,用以作为运行下一批次规则推理的输入数据的一部分。在一种可选实现方式中,一所述推理规则包括规则体,其中,所述规则体包括一个或多个子目标,其中,所述子目标具有一赋值语句。在一种可选实现方式中,所述分布式迭代方式为mapreduce。前述图1实施例一中的一种基于知识图谱的数据推理方法的各种变化方式和具体实例同样适用于本实施例的一种基于知识图谱的数据推理装置,通过前述对一种基于知识图谱的数据推理方法的详细描述,本领域技术人员可以清楚的知道本实施例中一种基于知识图谱的数据推理装置的实施方法,所以为了说明书的简洁,在此不再详述。实施例四基于与前述实施例中一种基于知识图谱的数据推理方法同样的发明构思,本说明书实施例还提供一种服务器,如图7所示,包括存储器304、推理器302及存储在存储器304上并可在推理器302上运行的计算机程序,所述推理器302执行所述程序时实现前文所述基于知识图谱的数据推理方法的任一方法的步骤。其中,在图4中,总线架构(用总线300来代表),总线300可以包括任意数量的互联的总线和桥,总线300将包括由推理器302代表的一个或多个推理器和存储器304代表的存储器的各种电路链接在一起。总线300还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口306在总线300和接收器301和发送器303之间提供接口。接收器301和发送器303可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。推理器302负责管理总线300和通常的推理,而存储器304可以被用于存储推理器302在执行操作时所使用的数据。另一方面,基于与前述实施例中异常交易识别的发明构思,本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被推理器执行时实现前文所述异常交易识别的方法的任一方法的步骤。本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式推理机或其他可编程数据推理设备的推理器以产生一个机器,使得通过计算机或其他可编程数据推理设备的推理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。这些计算机程序指令也可存储在能引导计算机或其他可编程数据推理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据推理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的推理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本说明书的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本说明书范围的所有变更和修改。显然,本领域的技术人员可以对本说明书进行各种改动和变型而不脱离本说明书的精神和范围。这样,倘若本说明书的这些修改和变型属于本说明书权利要求及其等同技术的范围之内,则本说明书也意图包含这些改动和变型在内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1