之前有过两篇文章分别介绍了 GCN模型PinSage和 图神经网络框架DGL,本文就利用DGL来逐步实现PinSage模型,让熟悉DGL的使用过程中加深对PinSage的理解。
前言
上次的帖子分析了DGL这个框架,最后的地方提到DGL给出的示例中并不是所有的模型都是用消息传递的方式来编写的,比如著名的推荐模型PinSage,正巧这个模型在去年的帖子中也有过介绍(可见我这个人有多么拖沓,早就应该介绍模型实现,竟然拖了一年),PinSage并没有官方开源代码,所以这次就介绍一下DGL的实现方式,也给其他小伙伴一些启示吧。
如果对PinSage模型不太熟悉的,可以查看之前的一篇文章:PinSage:GCN在商业推荐系统首次成功应用
PinSage
首先模型在DGL项目的位置是:examples/pytorch/recommendation。模型是基于movielens数据集(https://grouplens.org/datasets/movielens/)实现的,数据中包含用户id,电影id,电影名字,时间戳,用户对电影评分等。DGL将数据集中用户和电影看作两种类型的节点,评分做为边,构成了用户和电影之间的二分图。大

本文详细介绍了DGL框架中PinSage模型的实现,该模型基于movielens数据集,展示了如何处理图数据、构建mini-batch并进行随机游走生成子图。尽管在使用节点初始特征时遇到问题,但文章阐述了图卷积的核心过程,以及模型训练的细节。 PinSage模型的图数据处理和无向图的边过滤策略确保了模型的正确运行。
最低0.47元/天 解锁文章
1017

被折叠的 条评论
为什么被折叠?



