首页> 中国专利> 面向大规模金融知识图谱的分布式存储及可视化查询处理方法

面向大规模金融知识图谱的分布式存储及可视化查询处理方法

摘要

面向大规模金融知识图谱的分布式存储及可视化查询处理方法,首先构建图谱分割模型,根据金融数据特点,利用节点密度对图谱进行初始划分,结合模块度及负载均衡检测对局部节点进行动态调整。其次构建基于HBase的单表多列簇分布式存储模型,针对每类实体均使用单表存储实体间关系及属性值,实现大规模知识图谱数据的分布式存储,解决单机存储机器成本高、单点故障导致数据无法访问的问题。最后建立基于Neo4i的可视化查询机制,根据查询语义,将HBase中的相关实体及关系进行提取,并导入Neo4j中形成用户感兴趣的子图谱进行可视化展示,实现将金融领域内复杂难懂且多样的知识以图形化的方式直观呈现,将隐性知识显性化,外显知识具体化。

著录项

  • 公开/公告号CN113157943A

    专利类型发明专利

  • 公开/公告日2021-07-23

    原文格式PDF

  • 申请/专利权人 辽宁大学;

    申请/专利号CN202110409578.2

  • 发明设计人 单晓欢;宋宝燕;李海海;李冬;

    申请日2021-04-15

  • 分类号G06F16/36(20190101);G06F16/338(20190101);G06F16/27(20190101);G06F16/28(20190101);G06F9/50(20060101);

  • 代理机构21207 沈阳杰克知识产权代理有限公司;

  • 代理人王洋

  • 地址 110000 辽宁省沈阳市沈北新区道义南大街58号

  • 入库时间 2023-06-19 11:57:35

说明书

技术领域

本发明属于数据库领域,特别涉及一种知识图谱的存储及可视化查询处理方法设计,具体涉及一种面向大规模金融知识图谱的分布式存储及可视化查询处理方法设计。

背景技术

信息技术及互联网技术的高速发展,导致数据规模不断地增加,对数据的应用要求也越来越高。知识图谱作为特定领域知识数据的典型应用,利用有向图结构描述了现实世界存在的实体、事件或者概念以及它们之间的关系。其中,图中的节点表示实体、事件或概念,图中的边表示相邻节点间的关系。在其之上的可视化展示和数据分析能够进一步挖掘各种知识的内在联系,进而推理得到新的知识。因此,知识图谱在金融领域得到了广泛地应用。例如,利用信用卡申请反欺诈图谱,快速查询某节点是否存在欺诈风险,分析某种关系是否可疑;利用企业知识图谱进行企业风险评估、社交查询等;利用金融领域知识图谱进行金融风险预判及金融投资等。然而,面对爆炸式增长的数据规模,如何对知识图谱的数据进行有效的存储管理将面临巨大的挑战。

现有知识图谱存储方法主要存在两方面的问题。一是集中式的数据存储方式要求使用高性能的主机存储数据,成本较高,且存在单点故障导致数据无法访问、无法满足大规模数据的存储需求等问题。二是分布式存储方式的多点备份特性虽然可有效降低单点故障对数据查询造成的影响,同时动态扩容特性使得分布式存储方式具有良好的扩展性,可满足数据量持续增加的情况。然而由于不同领域的知识图谱具有各自的特点,如果采用统一的分布式存储模式,则不能很好地满足图谱的特性,对特定领域知识的查询效率产生影响。因此,设计一种面向金融知识图谱的分布式存储模型,并且在该模型上实现可视化查询对提高金融知识图谱的应用性能来说是非常必要的。

发明内容

为解决现有金融知识图谱存储模型的不足,本发明提供一种面向大规模金融知识图谱的分布式存储模型,能够有效地进行金融实体及实体间多样关系的数据存储。同时,提供该存储模型下的可视化查询处理方法,实现对金融实体及关系的多种查询。

为了实现上述目的,本发明创造采用了如下技术方案:

面向大规模金融知识图谱的分布式存储及可视化查询处理方法,包括以下步骤:

步骤1构建基于节点密度及模块度的图谱分割模型,利用节点密度对图谱进行初始划分,然后利用模块度及负载均衡检测对局部节点进行动态调整;

步骤2构建基于HBase的单表多列簇分布式存储模型,针对每种实体类型均使用单表存储实体之间关系和属性值;

步骤3建立基于Neo4j的可视化查询机制,根据master的查询语义,将HBase中的相关实体及关系进行提取,并导入Neo4j中形成用户感兴趣的子图谱进行可视化展示。

所述的步骤1中,基于节点密度及模块度的图谱分割模型具体为:

针对大规模知识图谱,构建基于节点密度及模块度的图谱分割模型,对于N台存储服务器,首先随机选取度最大且不存在直接关系的N个节点作为热点节点,计算剩余节点加入某一分区的模块度,将各节点加入到使模块度变大的服务器中,保证子图谱内部联系的紧密性,利用模块度对分区效果进行衡量,模块度公式如下:

其中:A

对于负载均衡,采用增加负载上限的改进一致性哈希算法,为每台服务器设置最大负载上限值,其中最大负载上限为平均负载的(1+e)倍,如果当前待加入节点及关系在加入服务器Ni后会导致此服务器的负载与平均负载差e%,则放弃选择该服务器,选择其他未达到负载上限且模块度较大的服务器。

所述的步骤2中,基于HBase的单表多列簇分布式存储模型具体为:

利用HBase特性,设计单表多列簇的分布式存储模式,该存储模式如表1所示:

表1基于HBase的单表多列簇分布式存储模型

针对每种实体类型均使用单表存储实体之间的关系及属性值,其中,每行存储某一实体的属性值及关系对象,即存储一个完整的SPO三元组,Row key存储该实体所属的表名以及关联实体,其表示形式为“tname:object 1:object 2…:object i”,其中“tname”为实体数据对应的表名,“object i”对应第i个关联实体,“:”为自定义的分隔符;attributes存储实体的属性值;Object存储关联实体及关系属性值。

所述的步骤3中,基于Neo4j的可视化查询机制具体为:

步骤3-1可视化查询框架设计

用户通过查询接口输入查询语句,查询条件被发送给后台处理程序,由后台的代码逻辑调用HBase数据库接口,根据查询条件到HBase数据库中查找满足查询条件的数据并写入 Neo4j中;Neo4j根据写入的数据将对应的节点之间关联起来,绘制图谱,最后将图谱以图形化的方式呈现给用户;

步骤3-2基于属性图的可视化查询语句设计

Neo4j创建的知识图谱是基于属性图,其上的查询语言为Cypher,允许用户在属性图中进行高效的数据查询;Cypher通过模式匹配图数据库中的节点和关系实现对数据的查询、修改、更新操作,基于Cypher语言对金融知识图谱的数据存储、更新和查询的语句如下:

(1)创建金融图谱实体节点,包括企业实体和商务人员实体

节点构建模型为Variable:Lable1:Labe12{Key1:Value1,Key2:Value2},节点标签Label为关系数据库的表名,属性相当于关系数据库中的列;每个节点都含有默认内部属性ID,当创建节点时,Neo4j图数据服务器将自动为其分配一个整数ID,在整个图数据库中,节点的 ID值是默认递增且唯一的,创建实体的Cypher语句:

RETURN n;

(2)创建金融图谱实体关系

关系构建模型为StartNode-[Variable:RelationshipType{Key1:Value1,Key2:Value2}]->EndNode,关系的方括号内定义了唯一的关系类型RelationshipType及属性,

MATCH(n:Company),(m,Company)WHERE n.Name=″**″AND m.Name=″**″

CREATE(n)-[r:Condition RelationShip{Name:″**″}]→(m)

RETURN r;

(3)查询金融图谱实体节点

Cypher查询语言依赖于匹配图模型,通过MATCH关键字匹配图模式匹配数据库中已存在的实体节点,MATCH子句用于指定搜索模型Pattern,WHWEE子句为MATCH模式增加谓词Predicate用于对Pattern进行约束,查询指定属性节点的语句如下:

MATCH(n{Name:″**″})RETURN n;

步骤3-3基于Neo4j的可视化查询

在Neo4j中,金融知识图谱以有向标签图的形式存储,其中节点表示企业实体、个人实体及其具有的属性值,边表示实体间的复杂关系以及实体具有的属性;根据用户的查询条件,在HBase中进行查询,将相应的实体及关系结果写入Neo4j数据库中,最终的查询结果以图形方式可视化展示。

本发明创造的有益效果:

本发明解决数据集中式存储方式存在单节点故障导致数据无法访问、数据激增无法单机存储以及数据存取、查询时频繁I/O操作造成读写效率低的问题。设计基于HBase的单表多列簇分布式存储方式,具有多点备份、动态扩容特性,解决单点故障对数据查询造成的影响,可满足数据量持续增加或业务增加的实际需求。同时减轻查询过程中,过多的服务请求对单台服务器造成过大的处理压力,从而提高查速度。此外,不同领域的知识图谱具有各自的特点,如果采用统一的分布式存储模式,则不能很好地满足图谱的特性,因此针对金融领域知识图谱设计一种基于节点密度及模块度的图谱分割模型具有重要的意义。

附图说明

图1本发明的分布式存储基本结构图;

图2本发明基于HBase分布式存储模型示意图;

图3本发明可视化查询框架示意图;

图4本发明实例图谱分割前示意图;

图5本发明实例图谱基于节点密度及模块度分割后示意图;

图6本发明实施例的分割时间对比曲线图;

图7本发明实施例的割边数量对比曲线图;

图8本发明实施例的增量更新性能对比曲线图;

图9本发明实施例的查询结果示意图。

具体实施方式

下面将结合本发明创造实施例中的附图,对本发明创造实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明创造一部分实施例,而不是全部的实施例。

面向大规模金融知识图谱的分布式存储及可视化查询处理方法,包括以下步骤:

步骤1构建基于节点密度及模块度的图谱分割模型,利用节点密度对图谱进行初始划分,然后利用模块度及负载均衡检测对局部节点进行动态调整;

步骤2构建基于HBase的单表多列簇分布式存储模型,针对每种实体类型均使用单表存储实体之间关系和属性值;

步骤3建立基于Neo4j的可视化查询机制,根据master的查询语义,将HBase中的相关实体及关系进行提取,并导入Neo4j中形成用户感兴趣的子图谱进行可视化展示。

所述的步骤1中,基于节点密度及模块度的图谱分割模型具体为:

针对大规模知识图谱,构建基于节点密度及模块度的图谱分割模型,对于N台存储服务器,首先随机选取度最大且不存在直接关系的N个节点作为热点节点,计算剩余节点加入某一分区的模块度,将各节点加入到使模块度变大的服务器中,保证子图谱内部联系的紧密性,利用模块度对分区效果进行衡量,模块度公式如下:

其中:A

对于负载均衡,采用增加负载上限的改进一致性哈希算法,为每台服务器设置最大负载上限值,其中最大负载上限为平均负载的(1+e)倍,如果当前待加入节点及关系在加入服务器Ni后会导致此服务器的负载与平均负载差e%,则放弃选择该服务器,选择其他未达到负载上限且模块度较大的服务器。

所述的步骤2中,基于HBase的单表多列簇分布式存储模型具体为:

利用HBase特性,设计单表多列簇的分布式存储模式,该存储模式如表1所示:

表1基于HBase的单表多列簇分布式存储模型

针对每种实体类型均使用单表存储实体之间的关系及属性值,其中,每行存储某一实体的属性值及关系对象,即存储一个完整的SPO三元组,Row key存储该实体所属的表名以及关联实体,其表示形式为“tname:object 1:object 2…:object i”,其中“tname”为实体数据对应的表名,“object i”对应第i个关联实体,“:”为自定义的分隔符;attributes存储实体的属性值;Object存储关联实体及关系属性值。

所述的步骤3中,基于Neo4j的可视化查询机制具体为:

步骤3-1可视化查询框架设计

用户通过查询接口输入查询语句,查询条件被发送给后台处理程序,由后台的代码逻辑调用HBase数据库接口,根据查询条件到HBase数据库中查找满足查询条件的数据并写入 Neo4j中;Neo4j根据写入的数据将对应的节点之间关联起来,绘制图谱,最后将图谱以图形化的方式呈现给用户;

步骤3-2基于属性图的可视化查询语句设计

Neo4j创建的知识图谱是基于属性图,其上的查询语言为Cypher,允许用户在属性图中进行高效的数据查询;Cypher通过模式匹配图数据库中的节点和关系实现对数据的查询、修改、更新操作,基于Cypher语言对金融知识图谱的数据存储、更新和查询的语句如下:

(1)创建金融图谱实体节点,包括企业实体和商务人员实体

节点构建模型为Variable:Lable1:Label2{Key1:Value1,Key2:Value2},节点标签Label为关系数据库的表名,属性相当于关系数据库中的列;每个节点都含有默认内部属性ID,当创建节点时,Neo4j图数据服务器将自动为其分配一个整数ID,在整个图数据库中,节点的 ID值是默认递增且唯一的,创建实体的Cypher语句:

RETURN n;

(2)创建金融图谱实体关系

关系构建模型为StartNode-[Variable:RelationshipType{Key1:Value1,Key2:Value2}]->EndNode,关系的方括号内定义了唯一的关系类型RelationshipType及属性,

MATCH(n:Company),(m,Company)WHERE n.Name=″**″AND m.Name=″**″

CREATE(n)-[r:Condition RelationShip{Name:″**″}]→(m)

RETURN r;

(3)查询金融图谱实体节点

Cypher查询语言依赖于匹配图模型,通过MATCH关键字匹配图模式匹配数据库中已存在的实体节点,MATCH子句用于指定搜索模型Pattern,WHWEE子句为MATCH模式增加谓词Predicate用于对Pattern进行约束,查询指定属性节点的语句如下:

MATCH(n{Name:″**″})RETURN n;

步骤3-3基于Neo4j的可视化查询

在Neo4j中,金融知识图谱以有向标签图的形式存储,图中节点表示企业实体、个人实体及其具有的属性值,边表示实体间的复杂关系以及实体具有的属性;根据用户的查询条件,在HBase中进行查询,将相应的实体及关系结果写入Neo4j数据库中,最终的查询结果以图形方式可视化展示。

实施例1:

为了测试本发明面向大规模金融知识图谱的分布式存储及可视化查询处理方法性能,作为本发明的一个实例,我们构造了一个由5台计算机互相连接构成的小型集群,其中机器的硬件配置为Inter Core i7-8750 CPU@1.8Hz 2.00GHz处理器,8G内存的计算机作为Neo4j图数据库的宿主机,另外4台内存为64GB,512GB硬盘,操作系统为Ubuntu的服务器作为部署HBase分布式数据库的设备。

为了测试本发明方法性能,我们爬取构建金融知识图谱所需的企业基本信息、股东信息、高管信息、企业新闻、企业信用等信息,并对爬取的原始数据进行统计分析和相应处理,构建企业间的复杂关系,以便后续的数据分割和分布式存储。这里将原始数据集合拆分为两个不同规模的数据集,其中两个数据集的节点数为10

下面结合附图给出本发明的一个实例:

(1)利用基于节点密度及模块度的图谱分割方法对图谱进行分割

针对大规模知识图谱,对于4台存储服务器,首先随机选取度最大且不存在直接关系的 4个节点作为热点节点,计算剩余节点加入某一分区的模块度,将各节点加入到使模块度变大的服务器中,从而保证子图谱内部联系的紧密性。以图4为例进行说明,假设图中的某个节点i分配到m

其中∑cin表示社区c内的边权重之和,∑tot表示与社区c内节点相连的边权重之和。将节点i分配到m

分配后的模块的变化差为

经过模块度检测后,根据模块度最大的准则将各个节点划分到相应的服务器中,得到了如图5所示的划分。

为了能够更好的测试本发明的性能,我们将本发明的基于节点密度及模块度的图谱分割方法与另外两种现有的方法DynamicDFEP和BS方法进行比较。本发明主要从分割时间、割边数以及增量式更新维护三个方面对上述三种方法进行测试,下面分别进行说明:

分割时间

如图6所示,GP-NDM算法分割时间优于DynamicDFEP,随着图规模增大,GP-NDM 算法的分割时间并没有大幅度增加,对于大规模图的分割效果较好。而对于DynamicDFEP 算法来说,由于其在4台服务器上循环分配节点,导致算法时间复杂度进一步增加,算法执行效率降低,同时DynamicDFEP算法进行分割时未考虑负载均衡的问题,可能会出现大量节点被分配到同一台机器上导致机器负载过重的问题,影响后续的查询效率。对于BS架构,将图随机划分为两个分区,然后根据参数的设置交换节点以获得良好的分区结果,因此受参数影响较大,同时受二分法的限制,其只能分割为偶数个分区。

割边数

图7显示了不同数据集上割边数的比较。割边(Edge cuts)是端点在不同分区的边的数量,可以通过割边数来验证分割质量。为了保证高内聚、低耦合的分区原则,较少的割边间接证明了分割质量较好。BS交换节点以提高划分结果,但忽略了权重对紧密度的影响。DynamicDFEP利用随机选择的原理,对分割质量有一定的影响。GP-NDM充分考虑节点间的紧密程度,利用模块度作为衡量标准,采用局部调整的方法将联系紧密的节点划分到统一分区,从而有效提高了分割效果。

增量更新维护性能

在实际应用中,知识图谱会随着时间的推移而动态变化,图谱的及时更新对于后续查询分析的准确性至关重要,因此我们针对不同数量分区上的更新效率进行评估。由于BS是静态图分割算法,对于图的动态变化,其只能对整个图进行重新分割,相比于增量更新方法,分割效率较低。因此,对于更新维护性能,我们仅对GP-NDM和DynamicDFEP算法进行了比较。如图8所示,DynamicDFEP算法对初始图划分迭代到最后的顶点赋予初始“资金”,对于增量节点需要重复初始图划分的步骤以完成增量更新,由于图的增量更新导致图规模扩大,空间及时间代价接近于从头运行DFEP静态分割算法。GP-NDM算法只需针对新加入节点执行模块度计算即可完成更新。

(2)构建基于HBase的单表多列簇分布式存储模型,针对每种实体类型均使用一张表存储实体之间关系和属性值。

针对每种实体类型均使用一张表存储实体之间的关系及属性值。其中,每行存储某一实体的属性值及关系对象,即存储一个完整的SPO(Subject-Predicate-Object)三元组。Row key存储该实体所属的表名以及关联实体,其表示形式为“tname:object 1:object2...:object i”,其中“tname”为实体数据对应的表名,“object i”对应第i个关联实体,“:”为自定义的分隔符;attributes存储实体的属性值;Object存储关联实体及关系属性值。将属性和关系存储在两个列簇中,不仅便于管理,且在查询时可有效减少内存加载的列数,进而加快查询速度。

(3)进行可视化查询。

用户通过查询接口输入查询语句,查询条件被发送给后台处理程序,由后台的代码逻辑调用HBase数据库接口,根据查询条件到HBase数据库中查找满足查询条件的数据并写入 Neo4j中。以查询某一实体为例,通过MATCH关键字匹配图模式匹配数据库中已存在的实体节点,MATCH子句用于指定搜索的模型(Pattern),WHWEE子句为MATCH模式增加谓词(Predicate)用于对Pattern进行约束。查询指定属性节点的语句如下:

MATCH(n{Name:″**″})RETURN n;

在Neo4j中金融领域知识图谱以图形节点和边的形式存储,节点包括实体以及实体具有的属性值,实体之间的关系、实体的属性通过边来表示,边包含关系属性以及头尾节点的 ID值。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号