该代码库已过时且不再支持。我们将在2023年底关闭该代码库。
TypeDB-ML
之前称为 KGLIB.
TypeDB-ML 提供工具以在 TypeDB 上启用图算法和机器学习。
提供了与 NetworkX 和 PyTorch Geometric (PyG) 的集成。
NetworkX 集成允许您使用从 TypeDB 导出的图数据运行大量算法库。
PyTorch Geometric (PyG) 集成为您提供构建类型数据库数据的图神经网络(GNN)的工具包,并包含一个用于链接预测的示例(或者在 TypeDB 术语中:二元关系预测)。GNN 的结构完全可定制,内置了图注意力和图转换器等热门话题的网络组件。
功能
NetworkX
- 声明查询的图结构,可以选择使用采样函数。
- 查询一个 TypeDB 实例,并将多个查询的结果合并成一个图(
build_graph_from_queries
)。
PyTorch Geometric
- 一个
DataSet
对象,用于从一个 TypeDB 实例中懒加载图。每个图会被转换为一个 PyGData
对象。 - 由于 TypeDB 中的所有数据都有类型,所以使用 PyG
HeteroData
对象是最自然的。虽然在 PyG 中可以从Data
转换为HeteroData
,但这样会丢失节点排序信息。为了弥补这一点,TypeDB-ML 提供了store_concepts_by_type
来存储与HeteroData
对象一致的概念。这使得概念在学习完成后能够正确地与预测重新关联。 - 一个
FeatureEncoder
对象,来协调编码器为图生成特征。 - 为连续值和分类值提供编码器,以便将编码/嵌入空间应用于 TypeDB 数据中的类型和属性值。
- 一个完整的链接预测示例 link prediction example。
其他
- 使用 Tensorboard 和 PyG
HeteroData
的示例。
资源
您可能会发现以下资源有用,尤其是理解 TypeDB-ML 的起源:
- 机器学习的强类型数据(YouTube,2021)
- 我们如何完成知识图谱?(YouTube,2018)
快速开始
安装
-
Python >= 3.7.x
-
从这里获取
requirements.txt
文件,并使用pip install -r requirements.txt
安装所需的依赖项。安装 PyG 的依赖项有些复杂,详情见这里。 -
安装 TypeDB-ML:
pip install typedb-ml
。 -
在后台运行 TypeDB 2.11.1。
-
typedb-client-python
2.11.x (PyPi, GitHub release)。当您pip install typedb-ml
时,这个应该会自动安装。
运行示例
请查看 PyTorch Geometric 异构链接预测示例 以了解如何使用 TypeDB-ML 在 TypeDB 数据上构建 GNN。
开发
要跟进开发对话,请加入 Vaticle Discord 并加入 #typedb-ml
频道。或者,在 Vaticle 讨论论坛 上开启一个新话题。
TypeDB-ML 要求将您的数据迁移到 TypeDB 或 TypeDB 集群实例中。有关详细说明,请参阅官方示例库 和文档中的迁移信息。另外,TypeDB OSI 中有一些社区主导的优秀项目,能够快速、轻松地加载数据,例如 TypeDB Loader。
从源代码构建
虽然通常使用 Pip 安装,但如果您需要对库进行更改并导入项目,则可以按以下步骤从源代码构建:
克隆 TypeDB-ML:
git clone git@github.com:vaticle/typedb-ml.git
进入项目目录:
cd typedb-ml
构建所有目标:
bazel build //...
运行所有测试。此操作需要您的 PATH
上有 Python 3.7+。测试依赖项适用于 Linux,因为这是 CI 环境:
bazel test //typedb_ml/... --test_output=streamed --spawn_strategy=standalone --action_env=PATH
构建 pip 分发包。输出到 bazel-bin
:
bazel build //:assemble-pip