SEAL_OGB 开源项目教程
1. 项目介绍
SEAL_OGB 是一个开源的图神经网络(GNN)链接预测方法的实现,专门用于 Open Graph Benchmark (OGB) 数据集。该项目由 Facebook AI Research 开发,旨在提供一个高效的工具来处理大规模图数据中的链接预测任务。
SEAL(Subgraph Extraction and Learning)方法通过提取每个目标链接的 k-hop 封闭子图,并应用一种名为 Double Radius Node Labeling (DRNL) 的标签技巧,为每个节点分配一个整数标签作为其附加特征。这些标记的封闭子图随后被输入到图神经网络中,以预测链接的存在。
SEAL_OGB 在 OGB 排行榜上表现优异,在多个链接预测数据集上排名第一。此外,它还支持类似 Planetoid 的数据集,如 Cora、CiteSeer 和 PubMed。
2. 项目快速启动
2.1 环境准备
首先,确保你的环境中安装了以下依赖:
- Python 3.8.5
- PyTorch 1.6.0
- PyTorch_Geometric 1.6.1
- OGB 1.2.4
你可以通过以下命令安装这些依赖:
pip install torch==1.6.0
pip install torch-geometric==1.6.1
pip install ogb==1.2.4
2.2 克隆项目
使用 Git 克隆 SEAL_OGB 项目到本地:
git clone https://github.com/facebookresearch/SEAL_OGB.git
cd SEAL_OGB
2.3 运行示例
以下是一个简单的示例,展示如何使用 SEAL_OGB 进行链接预测:
python seal_link_pred.py --dataset ogbl-ppa --num_hops 1 --use_feature --use_edge_weight --eval_steps 5 --epochs 20 --dynamic_train --dynamic_val --dynamic_test --train_percent 5
这个命令将在 ogbl-ppa
数据集上运行 SEAL 方法,提取 1-hop 子图,并使用特征和边权重进行训练。
3. 应用案例和最佳实践
3.1 数据集支持
SEAL_OGB 支持多种数据集,包括 OGB 官方数据集和类似 Planetoid 的数据集。以下是一些常见的数据集及其使用方法:
- ogbl-ppa: 蛋白质关联数据集
- ogbl-collab: 合作网络数据集
- ogbl-ddi: 药物-药物相互作用数据集
- Cora: 引文网络数据集
- CiteSeer: 引文网络数据集
- PubMed: 引文网络数据集
3.2 最佳实践
- 超参数调优: 在
ogbl-collab
数据集上,建议先在不使用--use_valedges_as_input
的情况下调优超参数,然后在最终命令中添加该选项。 - 动态子图提取: 使用
--dynamic_train
、--dynamic_val
和--dynamic_test
选项可以在训练、验证和测试过程中动态提取子图,节省存储空间。 - 多模型评估: 对于
ogbl-citation2
数据集,建议先训练多个模型,然后使用--test_multiple_models
选项一次性评估所有模型,以提高效率。
4. 典型生态项目
SEAL_OGB 作为一个图神经网络的链接预测工具,可以与其他图神经网络相关的项目结合使用,以扩展其功能和应用场景。以下是一些典型的生态项目:
- PyTorch Geometric: 一个用于图神经网络的 PyTorch 扩展库,SEAL_OGB 依赖于该库进行图数据的处理和模型训练。
- OGB (Open Graph Benchmark): 一个大规模图数据集的基准测试平台,SEAL_OGB 专门针对 OGB 数据集进行优化。
- DGL (Deep Graph Library): 另一个图神经网络库,可以与 SEAL_OGB 结合使用,提供更多的图神经网络模型和算法。
通过结合这些生态项目,SEAL_OGB 可以在更广泛的图数据分析和机器学习任务中发挥作用。