图神经网络 (GNN) 近年来在机器学习领域异军突起,在搜索推荐、网络安全、知识图谱等领域展现出巨大潜力。然而,随着图数据规模的不断增长,如何高效地训练和部署 GNN 模型成为了一个巨大的挑战。为了解决这一问题,阿里巴巴开源了 Graph-Learn 平台,提供了一套完整的 GNN 解决方案,涵盖从数据预处理、模型训练到在线推理的各个环节。

Graph-Learn 诞生于阿里巴巴内部,最初名为 AliGraph,经过多年的发展和优化,已经成功应用于阿里巴巴的多个业务场景,例如搜索推荐、网络安全、知识图谱等。Graph-Learn 1.0 版本之后,更进一步增加了在线推理服务,为 GNN 在实际业务中的应用提供了完整的解决方案。

Graph-Learn 的核心功能

Graph-Learn 主要包含两个核心功能:

1. 训练框架:GraphLearn Training

GraphLearn Training 专门针对大规模图数据的训练而设计,提供以下功能:

  • 图采样: 支持在批图上进行高效的图采样,提供 Python 和 C++ 接口,以及类似 Gremlin 的 GSL (Graph Sampling Language) 接口。
  • 模型训练: 支持离线训练和增量训练,兼容 TensorFlow 和 PyTorch,提供数据层、模型层接口和丰富的模型示例。

GraphLearn Training 的设计目标是简化 GNN 模型的开发流程,并提供高效的训练性能。

2. 在线推理服务:Dynamic Graph Service

Dynamic Graph Service 负责在动态图上进行实时采样和推理,提供以下功能:

  • 动态图采样: 支持在流式更新的动态图上进行实时采样,并提供 P99 延迟 20ms 的性能保证。
  • 在线推理: 提供 GSL 和 TensorFlow Model Predict 的 Java 接口,支持将训练好的 GNN 模型部署到线上进行实时预测。

Dynamic Graph Service 的设计目标是将 GNN 模型应用到实际业务场景中,并提供低延迟、高性能的推理服务。

Graph-Learn 的应用场景

Graph-Learn 可以应用于各种需要利用图结构数据的场景,例如:

  • 搜索推荐: 利用用户行为数据构建用户-商品图,进行个性化推荐。
  • 网络安全: 利用网络流量数据构建网络拓扑图,进行异常检测和攻击溯源。
  • 知识图谱: 利用实体关系数据构建知识图谱,进行知识推理和问答系统。

Graph-Learn 的架构

Graph-Learn 的架构如下图所示:

![overview][]

整个流程可以概括为以下步骤:

  1. 用户在 Web 上发起请求,通过 Client 端在动态图上实时采样,并利用采样结果作为模型输入,向 TensorFlow Model service 请求预测结果。
  2. 用户动作、预测结果、反馈标签以及 Web 上的一些上下文数据落盘到 Data Hub(例如 Log Service)。
  3. 数据更新作为图更新流入动态图采样服务,更新图。
  4. GraphLearn Training 小时级别的加载增量数据构图,增量训练模型,并部署到 TensorFlow Model service。

总结

Graph-Learn 是一个面向大规模图神经网络的研发和应用而设计的分布式框架,它提供了完整的 GNN 解决方案,涵盖从数据预处理、模型训练到在线推理的各个环节。Graph-Learn 已经成功应用于阿里巴巴的多个业务场景,并不断发展和优化,为 GNN 的应用提供了强大的支持。

参考文献

@article{zhu2019aligraph,
  title={AliGraph: a comprehensive graph neural network platform},
  author={Zhu, Rong and Zhao, Kun and Yang, Hongxia and Lin, Wei and Zhou, Chang and Ai, Baole and Li, Yong and Zhou, Jingren},
  journal={Proceedings of the VLDB Endowment},
  volume={12},
  number={12},
  pages={2094--2105},
  year={2019},
  publisher={VLDB Endowment}
}
Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐