一,图表示学习与计算框架
1)PyTorch Geometric(PyG)
由德国多特蒙德工业大学研究者推出的基于PyTorch的几何深度学习扩展库。PyG在学术中是比较热门的框架,但是PyG对于异构图以及大规模的图的学习存在着较大的局限性。
地址:
https://github.com/rusty1s/pytorch_geometric
2)tf_geometric
受到PyG启发,为GNN创建了TensoFlow版本。在其Github开源的demo中,可以看到GAE、GCN、GAT等主流的模型已经实现。
地址:
https://github.com/CrawlScript/tf_geometric
3)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
4) CogDL
清华大学知识工程研究室推出了一个大规模图表示学习工具包 CogDL,可以让研究者和开发者更加方便地训练和对比用于节点分类、链路预测以及其他图任务的基准或定制模型。该工具包采用 PyTorch 实现,集成了Deepwalk、LINE、node2vec、GraRep、NetMF、NetSMF、ProNE 等非图神经网络和GCN、GAT、GraphSage、DrGCN、NSGCN、GraphSGAN 等图神经网络模型基准模型的实现。
地址:https://github.com/THUDM/cogdl
5)GraphEmbedding
github上开源的图embedding算法实现,包括DeepWalk、LINE、Node2Vec、SDNE和Struc2Vec
地址:
https://github.com/shenweichen/GraphEmbedding。
6)Spark GraphX
企业对庞大网络中社区结构的洞察需求也越发迫切,基于分布式架构的图处理引擎应运而生,比如Google的Pregel, Apache的开源的图计算框架Giraph,以及卡内基梅隆大学主导的GraphLab等。Spark GraphX是一个分布式图处理框架,它是基于Spark平台针对图计算和图挖掘提供了简洁、易用、丰富的接口,包括连通子图算法、标签传播算法和louvain算法。极大的方便了对分布式图处理任务的需求。
地址:http://spark.apache.org/graphx/
7)networkx
networkx是一个用Python语言开发的图论与复杂网络建模工具,内置了常用的图与复杂网络分析算法,可以方便的进行复杂网络数据分析、仿真建模等工作。利用networkx可以以标准化和非标准化的数据格式存储网络、生成多种随机网络和经典网络、分析网络结构、建立网络模型、设计新的网络算法、进行网络绘制,通常配合matplotlib一同使用。
地址:https://networkx.org
8)Plato
图计算的发展和应用有井喷之势,各大公司也相应推出图计算平台,例如Google Pregel、Facebook Graph、阿里GraphScope等。Plato是腾讯开源的一款高性能图计算框架。Plato 的算法库中的图特征、节点中心性指标、连通图、社团识别、图表示学习等多种算法都已经开源。
地址:https://github.com/tencent/plato
知识图谱表示学习框架
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。
图数据库
实时排名:https://db-engines.com/en/ranking/graph+dbms
推荐:neo4j
历史悠久且长期处于图数据库领域的主力地位,其功能强大,性能也不错,单节点的服务器可承载上亿级的节点和关系。社区版最多支持 320 亿个节点、320 亿个关系和 640 亿个属性。
地址:https://neo4j.com/
OrientDB
ArangoDB
JanusGraph
HugeGraph
Dgraph
TigerGrap