图数据库、知识图谱与图计算
1)知识图谱
知识图谱(KG)更多只是一种数据管理的方法,或者概念性的词汇,知识图谱可以组织多个来源的数据,捕获给定领域或任务(例如人,地点或事件)中感兴趣的实体信息,并在它们之间建立联系。如今,KG已广泛用于从搜索引擎和聊天机器人到产品推荐器和自治系统的任何事物。在数据科学和AI中,知识图谱也通常用于:
- 促进对数据源的访问和集成,提高数据治理水平;
- 为由数据驱动的AI技术(例如机器学习)增加context(例如机器对话)和depth(例如智能风控);
- 充当人与系统之间的桥梁,例如生成易于理解的解释,或者更大范围地为科学家和工程师提供智能系统。
现实生活中,其实知识图谱数据无处不在,我们一直生活在一个复杂的社会网络中。
2)图数据库
图数据库专门用于存储和导航关系。关系是图形数据库中的一等公民,图形数据库的大部分价值都源自于这些关系。图形数据库使用节点来存储数据实体,并使用边来存储实体之间的关系。边始终有一个起点、终点、类型和方向,并且边可以描述父子关系、操作、所有权等。一个节点可以拥有的关系的数量和类型没有限制。
图形数据库中的图形可依据具体的边缘类型进行遍历,或者也可对整个图形进行遍历。在图数据库中,查询实体或者遍历关系非常快,因为节点之间的关系不是在查询时计算的,而是留存在数据库中。在社交网络、推荐引擎和欺诈检测等使用案例中,您需要在数据之间创建关系并快速查询这些关系,此时,图形数据库更具优势。
下图是一个社交网络图示例(图片来自网络)。假设以下数据都已保存在图数据库中,“人”作为节点及其“朋友-关系”作为边,您可以方便查询到一个特定人员的“朋友的朋友”,例如,Howard的朋友的朋友有4个:Harry、Mac、Annie、Doug。
3)图计算
图计算(Graph Engine,GE)代表一种在分布式内存中处理大型知识图谱数据的引擎,以强大的RAM存储区和通用的分布式计算引擎为基础,结合图数据库作为数据源或许是佳的选择,图计算引擎可基于内存中的图数据运行图挖掘算法(例如机器学习/神经网络),计算得出大型图数据中蕴含的衍生指标。图计算技术在广泛的领域中起着不可或缺的作用。但是,大规模的图形处理在从系统体系结构到编程模型的各个层面都面临着挑战,需要借助强大的RAM存储和通用计算引擎的支持,同时,图挖掘算法模型的实现和运用是图计算任务体现出数据价值核心。
下图是一个运用多种图算法,终得到重点人群的示例。
结合AbutionDB实时数仓的预计算存储,快速数据探索和分布式并行计算的能力,并借助这些图挖掘算法,AbutionGraph的图计算引擎可以帮助用户轻松构建支持数十亿节点大图上的低延迟在线查询处理应用程序和高吞吐量离线分析系统,将图计算成果转化为在线机器学习模型,为模型预测和在线决策业务提供AI服务。
AbutionGCS 分布式图计算服务
AbutionGCS(Abution Graph Computing Service)是一个灵活计算引擎。一方面,它解决了底层图计算的巨大随机数据访问挑战。另一方面,它通过允许用户自由指定自己的图模型以及计算范例来解决图数据和图计算的多样性问题。
从图计算的角度来看,AbutionGCS凭借其内置的数据和计算建模功能,我们可以轻松开发图计算模块,甚至是,我们会预留接口允许二次开发已有的图计算算法。换句话说,AbutionGCS可以轻松地转变为支持其它需要图计算的系统,而不仅仅是为AbutionGraph服务。它还是一个通用的图数据管理系统,旨在管理现实生活中具有丰富关联数据的图,而不仅仅是拓扑图,它可以对接AbutionGraph的多维度/多标签图数据、时间序列数据和任何状态已发生聚合的数据对象。
在AbutionGCS中,主要的功能点包括:
- 实现了存储与计算的分离;
- 支持算法提交时自定义使用CPU内核数量和大分布式内存空间;
- 两种运行方式,图数据中台接口和开发者模式的嵌入式代码;
- 支持HTTP一键调用、Job任务机制、可视化web任务状态监控;
- 支持二次开发,算法工具化,多种算法结合应用;
- 将AbutionDB图数据与关系型数据表无缝转换;
- 从图谱关系中直接生成子图;
- 计算结果保留在数据图新属性上,且支持保存回AbutionDB中。
AbutionGraph 的图挖掘算法支持
在AbutionGCS中,我们实现了15种算法类型的60多种图挖掘算法,是目前已知公开的丰富的图挖掘算法库,主要记录如下各种方法:
1)节点属性算法(Vertex attribute algorithms)
1. ClosenessCentrality(接近中心性算法)
2. DegreeCentrality(节点度中心性算法)
3. EigenvectorCentrality(向量中心性算法)
4. HitsHubAuthority(节点枢纽/权威程度算法)
5. LocalClusterCoef(局部聚类系数算法)
6. NeighborhoodConnectivity(邻里连通性算法)
7. KCore(图分层算法)
8. BetweennessCentrality(中介中心性算法)
.....
2)关系属性算法(Edge attribute algorithms)
1. TrianglesCount(三角计数,局部关系稳定性算法)
2. SVDPlusPlus(缺陷图检测,知识补全算法)
3. EdgesBetweenness(边的中介中心性算法)
4. AdamicAdar(节点对相似性算法)
5. CommonNeighbors(相同邻居算法)
.....
3)图属性算法(Graph attribute algorithms)
- KTruss(局部密度数据子集计算算法)
- NetworkRandomization(网络重新随机组合算法)
- TrustModel(信任度算法,对另一节点未来的能力、诚实、可靠等方面的主观期望)
.....
4)实体分类算法(Classification algorithms)
1. Spectral(关谱分类算法)
2. Metis(多级递归二分算法)
.....
5)实体聚类算法(Clustering algorithms)
1. AffinityPropagation(亲和力传播聚类算法)
2. MarkovModel(马尔科夫聚类算法)
.....
6)图形粗化算法(Coarsening algorithms)
1. LPCoarsening(标签传播图形粗化算法,将若干个节点合并成一个节点)
.....
7)社区检测算法(Community detection algorithms)
1. Louvain(大规模模块化社区检测算法)
2. PSCAN(双向标签传播算法-基于区域密度的先进的社区检测方法)
.....
8)小生成树算法(Min spanning tree)
1.Sollin(创建经济的联通子图算法,用于城市之间的交通系统等)
2.Kruskal(全图搜索计算任意两点间路径距离算法)
.....
9)节点向量化算法(Graph embedding algorithm)
1.Node2vec(Node vectorization算法,可用于AI模型输入)
2.ContinuousTimeRandomWalk(连续时间随机游走算法,也是一种图向量化方法)
.....
10)链接预测算法(Link prediction algorithm)
.....
11)重叠社区检测算法(Overlapping community detection algorithms)
.....
12)图直径计算算法(Diameter calculation algorithms)
.....
13)图分区算法(Graph partitioning algorithms)
.....
14)影响大化算法(Influence max algorithms)
.....
15)短路径算法(Shortest paths algorithms)
.....
如上算法分类介绍,因算法太多而不一一介绍。简而言之,图数据库AbutionGraph实现了非常丰富的图算法库,这些算法可以拿来即用,也可以灵活自由的与业务相结合,发挥其商业价值。
作者:图特摩斯科技
链接:https://juejin.cn/post/7067817121429848101