图计算开源工具介绍

图学习与计算框架

1)Graphscope

图计算的发展和应用有井喷之势,各大公司也相应推出图计算平台,例如Google Pregel、Facebook Graph、阿里GraphScope等。。GraphScope 提供 Python 客户端,能十分方便地对接上下游工作流,具有一站式、开发便捷、性能极致等特点。它具有高效的跨引擎内存管理,在业界首次支持 Gremlin 分布式编译优化,同时支持算法的自动并行化和支持自动增量化处理动态图更新,提供了企业级场景的极致性能。在阿里巴巴内部和外部的应用中,GraphScope 已经证明在多个关键互联网领域(如风控,电商推荐,广告,网络安全,知识图谱等)实现重要的业务新价值。

地址:GitHub - alibaba/GraphScope: GraphScope: A One-Stop Large-Scale Graph Computing System from Alibaba

2)PyTorch Geometric(PyG)

由德国多特蒙德工业大学研究者推出的基于PyTorch的几何深度学习扩展库。PyG在学术中是比较热门的框架,但是PyG对于异构图以及大规模的图的学习存在着较大的局限性。

地址:

https://github.com/rusty1s/pytorch_geometric

3)tf_geometric

受到PyG启发,为GNN创建了TensoFlow版本。在其Github开源的demo中,可以看到GAE、GCN、GAT等主流的模型已经实现。

地址:

https://github.com/CrawlScript/tf_geometric

4)Deep Graph Library(DGL)

由New York University(NYU)和Amazon Web Services(AWS)联合推出的图神经网络框架。如今已发布至0.4版本的DGL更是全面上线对于异质图支持模块,复现并开源了相关异质图神经网络的代码,如HAN、Metapath2vec等,此外,DGL也发布了训练知识图谱嵌入专用包DGL-KE,并在许多经典的图嵌入模型上进一步优化了性能。

地址:https://github.com/dmlc/dgl

5) CogDL

清华大学知识工程研究室推出了一个大规模图表示学习工具包 CogDL,可以让研究者和开发者更加方便地训练和对比用于节点分类、链路预测以及其他图任务的基准或定制模型。该工具包采用 PyTorch 实现,集成了Deepwalk、LINE、node2vec、GraRep、NetMF、NetSMF、ProNE 等非图神经网络和GCN、GAT、GraphSage、DrGCN、NSGCN、GraphSGAN 等图神经网络模型基准模型的实现。

地址:https://github.com/THUDM/cogdl

6)GraphEmbedding

github上开源的图embedding算法实现,包括DeepWalk、LINE、Node2Vec、SDNE和Struc2Vec

地址:

https://github.com/shenweichen/GraphEmbedding。

7)Spark GraphX

企业对庞大网络中社区结构的洞察需求也越发迫切,基于分布式架构的图处理引擎应运而生,比如Google的Pregel, Apache的开源的图计算框架Giraph,以及卡内基梅隆大学主导的GraphLab等。Spark GraphX是一个分布式图处理框架,它是基于Spark平台针对图计算和图挖掘提供了简洁、易用、丰富的接口,包括连通子图算法、标签传播算法和louvain算法。极大的方便了对分布式图处理任务的需求。

地址:http://spark.apache.org/graphx/

8)networkx

networkx是一个用Python语言开发的图论与复杂网络建模工具,内置了常用的图与复杂网络分析算法,可以方便的进行复杂网络数据分析、仿真建模等工作。利用networkx可以以标准化和非标准化的数据格式存储网络、生成多种随机网络和经典网络、分析网络结构、建立网络模型、设计新的网络算法、进行网络绘制,通常配合matplotlib一同使用。

地址:https://networkx.org

知识图谱表示学习框架

1)DGL-KE

亚马逊 AI 团队继 DGL 之后,又开源了一款专门针对大规模知识图谱嵌入表示的新训练框架 DGL-KE,旨在能让研究人员和工业界用户方便、快速地在大规模知识图谱数据集上进行机器学习训练任务。相比于已有的开源框架,基于Pytorch或MXNet的高性能大型图嵌入开源框架,其测评训练速度远快于Pytorch-BigGraph。DGL-KE 支持各种主流知识图谱表示学习算法,包括 TransE、ComplEx、DistMult、TransR、RESCAL、RotatE 等。

地址:https://github.com/awslabs/dgl-ke

2)OpenKE

OpenKETHUNLP基于TensorFlow、PyTorch开发的用于将知识图谱嵌入到低维连续向量空间进行表示的开源框架。OpenKE提供了快速且稳定的各类接口,也实现了诸多经典的知识表示学习模型,提供了大规模知识图谱的预训练向量,可以直接在下游任务中使用。

地址:https://github.com/thunlp/OpenKE

3)Pytorch-BigGraph

PyTorch-BigGraph(PBG)是faccebook发布的一个分布式系统,用于学习大型图的图形嵌入,特别是具有多达数十亿个实体和数万亿条边的大型Web交互图。

地址:

https://github.com/facebookresearch/PyTorch-BigGraph

4)GraphVite

GraphVite是通用的图形嵌入引擎,专用于各种应用中的高速和大规模嵌入学习,其全部由C++实现,但目前支持的包括transE、RotateE、DeepWalk、Line、node2vec等模型

地址:

https://github.com/DeepGraphLearning/graphvite

5)pykg2vec

pykg2vec是一个集成了当前大部分主流KGE算法的开源库,其基于Pytorch实现,代码结构比较清晰,适合用于KGE算法实现的学习。

地址:https://github.com/Sujit-O/pykg2vec。

7

总结

知识图谱本质上是一种图结构,在图内部数据规模大且质量高、外部算力足够的情况下,充分利用好图算法,能够最大程度地发挥出其数据价值。目前将图算法模型应用于实际业务中已经被证明是有效的,这些场景可以进一步抽象为节点分类、路径预测、社区聚类、节点推荐等几类。本文从图算法的图模型之用武之地:图模型的典型应用场景、图模型之建模对象:图的概念与主要类型、图模型之建模方法:图数据的典型算法、图模型之深度学习:面向图数据的向量嵌入等几个方面对图模型进行了简要的介绍,并在最后给出了图模型在工程实践上的一些常用选型,列举了开源图算法或模型工具,这对我们熟悉基本概念、理论后,能够快速的根据业务数据进行建模。

你可能感兴趣的:(pytorch,人工智能,python)