百度图学习技术与应用

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 百度PGL 图学习技术与应用 黄正杰 百度资深研发工程师
2. 目录 CONTENT 01 图来源与建模 02 PGL 2.2介绍 03 图神经网络技术 04 应用落地
3. 01 图 来源与建模
4. 图从哪里来 图是描述复杂世界的通用语言 Social Network Molecular Knowledge Graph Recommender System G = (V, E) <latexit sha1_base64="SkKxhkq+rlmNZwpK9BKtGNrXxkc=">AAAB/3icbVDLSgMxFL1TX7W+qi7dBItQQcpMEXQjFER0WcE+oB1KJs20oUlmSDJCGbrwF9zq3p249VPc+iWm7Sy09cCFwzn3ci4niDnTxnW/nNzK6tr6Rn6zsLW9s7tX3D9o6ihRhDZIxCPVDrCmnEnaMMxw2o4VxSLgtBWMrqd+65EqzSL5YMYx9QUeSBYygo2V2rdX5eYZujntFUtuxZ0BLRMvIyXIUO8Vv7v9iCSCSkM41rrjubHxU6wMI5xOCt1E0xiTER7QjqUSC6r9dPbvBJ1YpY/CSNmRBs3U3xcpFlqPRWA3BTZDvehNxX+9QCwkm/DST5mME0MlmQeHCUcmQtMyUJ8pSgwfW4KJYvZ3RIZYYWJsZQVbirdYwTJpViueW/Huz0u1clZPHo7gGMrgwQXU4A7q0AACHJ7hBV6dJ+fNeXc+5qs5J7s5hD9wPn8AH3mVEg==</latexit>
5. 图神经网络的发展趋势 From Spectral-based to Spatial-based 2014 2015 2016 Spectral-Based Spectral-Based Fourier Transform 2017 2018 Spatial-Based Spatial-based Inverse Fourier Transform Frequency Doamin Transform 2D Convolution v.s. Graph Convolution
6. 基于空间Spatial的图神经网络 How to represent a node? How to represent a graph? • Neighbor Aggregation • Node Aggregation Pooling (Sum/Mean/Max )
7. 消息传递图神经网络 目前大部分主流的图神经网络都可以描述成消息传递的形式 (Message Passing) Send Message w w w w w w w w Recv. Message w w w w Mean Mean w
8. 02 PGL 2.2介绍
9. Paddle Graph Learning Github: https://github.com/PaddlePaddle/PGL API 文档地址: https://pgl.readthedocs.io/en/latest/ 应用场景 模型仓库 推荐系统 搜索引擎 游走类模型 智慧金融 智能地图 消息传递类模型 同构图网络接口 安全风控 生物医药 知识嵌入类模型 异构网络接口 编程接口 消息传递接口 工具双擎 底层支持 图池化接口 CPU图引擎 图采样接口 GPU图引擎 图切分 | 图存储 | 图采样 | 图游走 | 异构图 | 大规模参数服务器 飞桨核心框架
10. PGL:基于Paddle 2.0动态图提升易用性 ① 定义图 ② 消息接收:如何把消息发到目标点 ③ 目标点:如何接收消息 send recv
11. 使用PGL构建一个GAT网络 Step1: Pre-computing weight Step2: Compute alpha and send feature. Step3: Recv message by softmax weighted sum
12. 如何训练一个GNN 根据图的规模,选择适用的训练方案 小 图规模 • FullBatch 训练 • 图规模<GPU显存
13. 小规模FullBatch训练 FullBatch Training • 输入整张图或者大的图分片,输出所有的点 • 可以跑较深的GNN • 中小型数据集: Cora, Pubmed, Citeseer, ogbn-arxiv 图来源于《Training Graph Neural Networks with 1000 Layers,ICML 2021》
14. 如何训练一个GNN 根据图的规模,选择适用的训练方案 小 图规模 中 图规模 • FullBatch 训练 • Partition训练 • 图规模<GPU显存 • 图规模总量<多GPU显存
15. DistGPUGraph: Graph Sharding降低显存峰值 Graph Partition 单GPU FullBatch训练 降低显存峰值 GPU Memory: O(Eh) edge function
16. DistGPUGraph: Graph Sharding降低显存峰值 单GPU FullBatch训练 降低显存峰值 GPU Memory: O(Eh) 多GPU FullBatch训练 GPU Memory: O(Eh/ngpu) edge function edge function edge function 通过NCCL同步节点特征
17. DistGPUGraph: Graph Sharding降低显存峰值 TransformerConv on ogbn-arxiv Graph -> DistGPUGraph: 一行代码实现图分片训练 Peak GPU Memory 40 30 20 10 0 1 2 4 8 GPU卡数 Automatically GPU Sharding Seconds per 100 Epoch 800 600 400 200 0 1 2 4 GPU卡数 8
18. 如何训练一个GNN 根据图的规模,选择适用的训练方案 小 图规模 中 图规模 大 图规模 • FullBatch 训练 • Partition训练 • MiniBatch训练 • 图规模<GPU显存 • 图规模总量<多GPU显存 • 图采样 • 图规模<CPU内存
19. FullBatch vs MiniBatch采样方式训练 FullBatch/Partition Training Neighborhood Sampling Training • 输入整张图或者大的图分片,输出所有的点 • 更像传统的Mini-Batch训练方式 • 可以跑较深的GNN • 邻居数目指数上升,模型深度受邻居采样量限制 • 中小型数据集: Cora, Pubmed, Citeseer, • 巨型数据集: ogbn-products, ogbn-papers100m ogbn-arxiv
20. GNNAutoScale:通过History Embedding实现深度GNN History Embedding机制 Push Pull Compute Compute Compute • 采用History Embedding中间隐态 CPU 缓存技术存储邻居,减少显存 占用,从而可实现 GNN 深度扩展。 • 训练过程中,需要聚合邻居时从History Embedding拉取邻居信息(Pull), 更新节点时将相应内容推送至History Embedding(Push),保证History Embedding不过时。 CUDA Stream 异步读写 • I/O I/O 通过异步 CUDA Stream,实现模型计算和 IO 操作的并行化, 减少从 History Embedding拉取或推送Embedding的整体用 时。 ? ! Matthias Fey, Jan E. Lenssen, Frank Weichert, Jure Leskovec: GNNAutoScale: Scalable and Expressive Graph Neural Networks via Historical Embeddings (ICML 2021)
21. GNNAutoScale:通过History Embedding实现深度GNN PGL v2.2已集成GNNAutoScale Push Pull
22. 如何训练一个GNN 根据图的规模,选择适用的训练方案 小 图规模 中 图规模 大 图规模 巨 图规模 • FullBatch 训练 • Partition训练 • MiniBatch训练 • MiniBatch训练 • 图规模<GPU显存 • 图规模总量<多GPU显存 • 图采样 • 分布式图存储&采样 • 图规模<CPU内存
23. PGL 易用分布式图引擎接口 Graph Engine Graph Sharding 一键部署 l 在MPI以及K8S集群上通过pgl launch接口一键部署 l 按类型邻居采样 l 节点遍历 Servers Clients
24. 大规模训练范式 • 满足超大规模节点 Embedding需求 • • Graph Embedding Graph Neural Network • 解决数据Feed与训练 速度差瓶颈 • 大规模分布式图引擎
25. 03 图神经网络 技术
26. 节点分类任务 一般机器学习场景 图网络场景 数据之间相互独立 样本之间相互关联 训练 预测 训练 预测 标签 数据 半监督节点分类
27. 节点分类任务 图网络场景 标签传播 LPA • 只考虑链接关系,标签间的关系 邻居 标签 样本之间相互关联 训练 自身 标签 预测 特征传播 GCN • 只考虑特征与链接关系 半监督节点分类 自身 特征 邻居 特征 自身 标签
28. UniMP:融合标签与特征传播 有趣的发现 • 训练集很难达到99%准确率 • 数据有噪声,缺乏过拟合能力 Motivation • 显式地把训练Label使用 • 避免训练标签泄漏 Shi, Yunsheng, et al. “Masked label prediction: Unified message passing model for semi-supervised classification.”, IJCAI 2021
29. UniMP:融合标签与特征传播 通过标签传播与特征传播的融合取得大幅度的效果提升 Shi, Yunsheng, et al. “Masked label prediction: Unified message passing model for semi-supervised classification.”, IJCAI 2021
30. R-UniMP: KDDCup 21 MAG240M冠军方案 图规模 • 论文: 121M, 768维特征(200G) • 作者: 122M • 引用关系: 1.3B Relation-wise 邻居采样 • 按照节点的类型,进行独立邻居采样 Relation-wise 批归一化 ( BatchNorm) • 对于不同节点与类型,独立Batch统计量 Relation-wise Attention注意力 • 通过注意力机制聚合不同来源的节点特征
31. Link Prediction目前与GNN结合的局限性 Tail Head Tail Head Tail Tail Head Head GNN + Link Prediction瓶颈 • GNN深度与采样相关 • 训练复杂度与邻居量相关 O(Neighbors * Training Samples)
32. Relation-based Embedding Propagation 根据不同的Score Function进行特征传播
33. Relation-based Embedding Propagation REP的特征传播算法效率高 所有的算法叠加REP基本都有提升 通过REP算法能够加速不同的知识表示模型收敛
34. KDDCup 21 Wiki90M冠军方案 Relation-based Embedding Propagation Eg. Geoffrey Hinton / citizen of -> Canada • 数据集: • 实体: 87M, with 768-dim vector • 关系: 504M, with 768-dim vector • 数据划分: 时间 • Sep, 2020 for train • Oct, 2020 for dev • Nov, 2020 for test Graph4KG: 大规模知识表示工具
35. 04 应用落地
36. 图学习算法落地 度小满 • 网页质量评估 • 网页反作弊 • 文本检索 • 新闻推荐 • 大V动态推荐 • 直播推荐 • 贴吧推荐 • 内容推荐 百度地图 • 地图流量预测 • POI检索 • 风险用户识别 有驾App • 异常用户检测 • 异常内容检测 • 商品推荐 • 视频推荐
37. 常用的推荐系统算法 如何去衡量相似性 Item-based 协同过滤 User-based 协同过滤 按照以前你阅读的内容推荐 按照与你同好的人推荐 相近内容 • 作者 • 类别 • 人群 • 话题 … 信息流推荐 直播推荐 相似用户 • 性别 • 年龄 • 社群 • 兴趣 …
38. 常用的推荐系统算法 用户物品向量空间 图的构造形式 点击 日志 信息流推荐 社交关系|用户行为|物品关联 可以通过距离度量相似度 表示 学习
39. 图学习技术在推荐系统的应用 用户物品向量空间 图的构造形式 社交关系|用户行为|物品关联 矩阵分解 表示 学习 可以通过距离度量相似度 随机游走+Word2vec 图对比学习
40. 推荐系统的算法组合多样 • 主要的需求:复杂的图结构支持,大规模的实现,快速的实验成本 Graph4Rec工具包: 一个工具解决GNN+表示学习问题 Graphs Random Walk Selection Ego-graph Generate GNNs Selection • • • • • • • • • • • • • • • • • • Homogeneous Bipartite Graph Heterogeneous Deepwalk Node2vec Metapath2vec Struc2vec LINE Full Neighborhood Neighborhood Sampling PinSAGE Sampling EdgeDrop Graph Augmentation GCN GraphSAGE GAT R-GNNs LightGCN
41. Graph4Rec工具的特性 不同场景以及训练的方式,效果差异大 内置丰富的模型组合,降低调研成本
42. Graph4Rec工具的特性 大规模稀疏特征Side-info支持 node emb … Id emb slot1 emb slotN emb 自动GNN异构图扩展 GNN R-GNN GNN GNN GNN GNN
43. Graph4Rec工具的特性 GNN推荐系统训练,瓶颈主要来源于 图采样 和 负样本 In-Batch Negative优化,减少随机负样本需要的图采样 降低图采样的次数,效果与速度的平衡 分布式训练速度
44. Graph4Rec工具的特性 游走模型速度快, 可作为优秀的热启动参数 参数模型热启动模式,GNN+Embedding热启动
45. Paddle Graph Learning Github: https://github.com/PaddlePaddle/PGL API 文档地址: https://pgl.readthedocs.io/en/latest/ 应用场景 模型仓库 推荐系统 搜索引擎 游走类模型 智慧金融 智能地图 消息传递类模型 同构图网络接口 安全风控 生物医药 知识嵌入类模型 异构网络接口 编程接口 消息传递接口 工具双擎 底层支持 图池化接口 CPU图引擎 图采样接口 GPU图引擎 图切分 | 图存储 | 图采样 | 图游走 | 异构图 | 大规模参数服务器 飞桨核心框架
46. 非常感谢您的观看

Accueil - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-17 22:41
浙ICP备14020137号-1 $Carte des visiteurs$