本文涉及计算机领域,尤其涉及一种基于知识图谱最短路径的信息获取方法及装置。
背景技术:
1、知识图谱用图模型描述知识,建模事物之间关联关系,并使用组织原则,使得用户或计算机系统可以根据底层数据进行知识推理。
2、知识图谱中的节点对应实体,有向边对应实体间的关系。实体之间通过关系彼此联系在一起,理解实体之间的关系是知识图谱分析的基础。在对实体关系量化度量后,可用最短路径算法计算实体之间关系的密切程度,得到最短路径树或一条最短路径,以此更直观深入地理解实体之间的关系,为洞察与发现隐藏事实和规律提供高质量数据。
3、现有技术中知识图谱挖掘信息常用的最短路径算法主要建立在基于松弛操作的dijkstra算法基础之上。
4、在dijkstra算法中,设s为已经找到最短路径的节点集,q为还未找到最短路径的节点集。dijkstra算法对最近加入s中的节点u,以路径的权重值最小化为目标,考察每个与u相连且不在s中的节点v,即在dist[u]+length(u,v)<dist[v]时,v的权重值dist[v]被dist[u]+length(u,v)替换,v的路径前驱pre[v]指向u。基于此,dijkstra算法存在如下缺陷:
5、(1)dijkstra算法用松弛操作为q中节点在多个路径之间不断地选择权重值更小的路径,会重复更新q中某些节点的路径信息,具体表现在:q中节点的路径信息在多次迭代之间可能被更新;在每次迭代中对dist的扰动程度与u的出度正相关。以上两点使得新生成的u在q中的维护成本大幅增加。
6、(2)节点u的邻接边需要很多的条件判断,严重依赖cpu的算术逻辑单元,无法高效地利用并行计算提高计算机系统运行最短路径算法的效率。
技术实现思路
1、本文用于解决现有技术中基于知识图谱的最短路径确定过程存在计算效率低的问题。
2、为了解决上述技术问题,本文一方面提供一种基于知识图谱最短路径的信息获取方法,知识图谱中包括多个节点及节点间邻接边,节点间邻接边权重表示节点间距离,方法包括:
3、s11,根据最短路径查找策略及用户请求中的节点,初始地设定迭代起点并确定其最短路径;
4、s12,将已确定最短路径且有未确定最短路径的邻接节点的节点作为第一节点组成第一节点集,从第一节点集中第一节点的未确定最短路径的邻接节点中,选择距离迭代起点最近的邻接节点确定最短路径并更新第一节点集及新增第一节点的已确定路径长度;
5、s13,重复上述步骤s12,直至找到所有期望最短路径为止,其中,所述期望最短路径与最短路径查找策略相关;
6、s14,根据各节点的最短路径,从知识图谱获取信息并根据获取的信息响应所述用户请求。
7、本文另一方面提供一种知识图谱的最短路径确定装置,知识图谱中包括多个节点及节点间邻接边,节点间邻接边权重表示节点间距离,所述装置包括:
8、初始化单元,用于根据最短路径查找策略及用户请求中的节点,初始地设定迭代起点并确定其最短路径;
9、最短路径确定单元,用于将已确定最短路径且有未确定最短路径的邻接节点的节点作为第一节点组成第一节点集,从第一节点集中第一节点的未确定最短路径的邻接节点中,选择距离迭代起点最近的邻接节点确定最短路径并更新第一节点集;
10、循环控制单元,用于重复启动所述最短路径确定单元,直至找到所有期望最短路径为止,其中,所述期望最短路径与最短路径查找策略相关;
11、信息获取单元,用于根据各节点的最短路径,从知识图谱获取信息并根据获取的信息响应所述用户请求。
12、上述两个实施例通过避免使用松弛操作,每次选择距离迭代起点最近的邻接节点确定最短路径(记为小步算法),能够使得每一次迭代中都会计算出一个或多个节点的最短路径,并稳定地向其它节点的最短路径逼近。节点的邻接边的数量不会直接影响时间复杂度,能够提高最短路径的确定效率。
13、本文另一方面提供知识图谱最短路径确定方法,知识图谱中包括多个节点及节点间邻接边,节点间邻接边权重表示节点间距离,方法包括:
14、s21,根据最短路径查找策略及用户请求中的源节点和目标节点,初始地设定迭代起点及边缘节点,边缘节点包括已确定最短路径且有未确定最短路径的邻接节点的第一节点集中节点、可加入第一节点集的未确定最短路径的待选节点集中节点、通过松弛操作得到路径但未确定最短路径的松弛操作集中节点;初始地设定第一节点集包括迭代起点并确定其最短路径,待选节点集及松弛操作集为空;初始地设定迭代起点的已确定路径长度为零,其余节点的已确定路径长度为无穷大;
15、s22,计算边缘节点的启发路径长度,其中,边缘节点的启发路径长度为从迭代起点到迭代终点经过边缘节点的路径长度;
16、s23,根据所述启发路径长度和边缘节点已确定路径长度,从第一节点集及待选节点集中筛选出启发路径长度最大的节点中已确定路径长度最小的节点pb,从松弛操作集中筛选出启发路径长度最小的节点中已确定路径长度最大的节点pa;
17、s24,如果松弛操作集为空或节点pb的启发路径长度小于节点pa的启发路径长度,或节点pb的启发路径长度等于节点pa的启发路径长度且节点pb的已确定路径长度大于等于节点pa的已确定路径长度,则执行如下小步算法:从第一节点集中第一节点的未确定最短路径的邻接节点中,选择距离迭代起点最近的邻接节点确定最短路径并更新第一节点集及新增第一节点的已确定路径长度;
18、否则,基于松弛操作计算所述松弛操作集中节点pa的所有邻接节点的路径并更新所述松弛操作集及新增松弛节点的已确定路径长度;
19、s25,从松弛操作集中筛选出优秀节点移动至待选节点集中,所述优秀节点为松弛操作集中启发路径长度最小的节点中已确定路径长度最大的节点pa2;
20、当所述第一节点集及待选节点集中节点数量大于第二预定值时,从所述第一节点集及待选节点集中筛选出超出第二预定值的节点移动至松弛操作集中;
21、s26,重复以上步骤s22至步骤s25的过程,直至找到从源节点到目标节点的最短路径且边缘节点的启发路径长度都大于从源节点到目标节点的最短路径的长度;
22、s27,根据各节点的最短路径,从知识图谱获取信息并根据获取的信息响应用户请求。
23、本文另一方面提供一种知识图谱的最短路径确定装置,知识图谱中包括多个节点及节点间邻接边,节点间邻接边权重表示节点间距离,装置包括:
24、初始化单元,用于根据最短路径查找策略及用户请求中的源节点和目标节点,初始地设定迭代起点及边缘节点,边缘节点包括已确定最短路径且有未确定最短路径的邻接节点的第一节点集中节点、可加入第一节点集的未确定最短路径的待选节点集中节点、通过松弛操作得到路径但未确定最短路径的松弛操作集中节点;初始地设定第一节点集包括迭代起点并确定其最短路径,待选节点集及松弛操作集为空;初始地设定迭代起点的已确定路径长度为零,其余节点的已确定路径长度为无穷大;
25、计算单元,用于计算边缘节点的启发路径长度,其中,边缘节点的启发路径长度为从迭代起点到迭代终点经过边缘节点的路径长度;
26、筛选单元,用于根据所述启发路径长度和边缘节点已确定路径长度,从第一节点集及待选节点集中筛选出启发路径长度最大的节点中已确定路径长度最小的节点pb,从松弛操作集中筛选出启发路径长度最小的节点中已确定路径长度最大的节点pa;
27、算法选择单元,用于如果松弛操作集为空或节点pb的启发路径长度小于节点pa的启发路径长度,或节点pb的启发路径长度等于节点pa的启发路径长度且节点pb的已确定路径长度大于等于节点pa的已确定路径长度,则执行如下小步算法:从第一节点集中第一节点的未确定最短路径的邻接节点中,选择距离迭代起点最近的邻接节点确定最短路径并更新第一节点集及新增第一节点的已确定路径长度;
28、否则,基于松弛操作计算所述松弛操作集中节点pa的所有邻接节点的路径并更新所述松弛操作集;
29、节点移动单元,用于从松弛操作集中筛选出优秀节点移动至待选节点集中,所述优秀节点为松弛操作集中启发路径长度最小的节点中已确定路径长度最大的节点pa2;
30、当所述第一节点集及待选节点集中节点数量大于第二预定值时,从所述第一节点集及待选节点集中筛选出超出第二预定值的节点移动至松弛操作集中;
31、循环控制单元,用于重复启动计算单元、筛选单元、算法选择单元及节点移动单元,直至找到从源节点到目标节点的最短路径且边缘节点的启发路径长度都大于从源节点到目标节点的最短路径的长度;
32、信息获取单元,用于根据各节点的最短路径,从知识图谱获取信息并根据获取的信息响应用户请求。
33、上述两个实施例通过启发信息作为目标引导信息将小步算法与松弛操作算法结合,能够降低小步算法在搜索过程中因对迭代终点一无所知而导致的搜索盲目性,由松弛操作筛选出优秀节点,作为小步算法中第一节点的候选节点,能够减小小步算法搜索范围,更加快速地得到迭代起点到迭代终点的最短路径。
34、本文另一方面还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现前述实施例所述方法。
35、本文另一方面还提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被计算机设备的处理器运行时,执行根据前述实施例所述方法的指令。
36、为让本文的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。