推荐系统的下一步?阿里时空聚合GNN,效果吊打LightGCN!

简介: 推荐系统的下一步?阿里时空聚合GNN,效果吊打LightGCN!

大家好,我是对白。


不得不说,GNN自问世后,在众多领域遭遇魔改,所幸效果是越来越好。想起前几天看到的一篇论文(STAM-GNN)将时序信息加进了GNN中,这在GNN-based推荐模型中并不多见。检索后发现,目前时空GNN多用于交通预测领域。


纵然GNN-based模型效果已然不错,但与基于空间的聚合方法相比,STAM-GNN在推荐方面还是有了显著的改进,例如,针对MRR@20,STAM-GNN在MovieLens提升为24%,Amazon为8%,淘宝为13%。



鉴于文章简洁有意思,并且与GNN-based模型、序列化模型如LightGCN对比效果都有很大提升,特此向大家分享。


论文标题:STAM: A Spatiotemporal Aggregation Method for Graph Neural Network-based Recommendation


论文链接:https://doi.org/10.1145/3485447.3512041


一、STAM核心思想



本文由阿里和清华KEG实验室发表于WWW2022上。初看题目,笔者不禁脑洞思考:目前已有充分挖掘用户动态意图的序列推荐模型(如经典的SASRec、BERT4Rec),也有较多论文在序列问题中对GNN进行建模(如GCE-GNN等),这与文章所提的模型STAM-GNN有何区别?又有什么具体意义呢?其实文章在section 3.4有部分解答,我在此处做个简要重述。


  • STAM和SASRec都利用时序信息来学习用户和物品的embedding,但推荐的类型不同,STAM侧重基于GNN的推荐;


  • 从题目也可看出,作者所提出的STAM作为一种基于GNN的聚合方式,在挖掘用户-物品交互二部图的空间信息之外,创新点在于结合了交互的时序信息。


引用文章的一个例子来重温一下时序对于GNN-based推荐模型的意义。



Figure1中推荐系统要为Sherry和Amy推荐商品,在图的上半部分Spatio-based Aggregation(基于空间的GNN聚合)中,由于两人交互的商品是相同的,系统为两人推荐了相同的物品。


但在图的下半部分Spatiotemporal-based Aggregation中,时间信息被整合到了邻居的表示学习中,系统考虑到了两人交互的物品与时间的关系,给Sherry推荐了电子产品,而给Amy推荐了化妆品。


一句话结论:时间顺序在捕获用户的动态兴趣和用户群随时间的变化方面起着至关重要的作用。


二、算法细节



要点一:如何设计结合时间信息的聚合方式?


GNN-based模型大家应当很熟悉了,关键步骤包括:①Embedding Layer、②Embedding Aggregation Layer、 ③Embedding Propagation Layer与④Prediction Layer。


今天的主角STAM正处于第三步”Embedding聚合部分“。目前的GNN的聚合方式有多种,不过大致可以分为四类:


  1. ”mean pooling“,即以平等的方式对待所有邻居;


  1. “degree normalization”,根据图结构为节点指定权重;


  1. ”attentive pooling“,利用注意机制区分邻居的重要性;


  1. ”central node augmentation“,考虑节点之间的相关性,并使用中心节点过滤邻居信息。


  1. 很遗憾上述方式都只涉及了图的空间结构信息,无法加入时间信息。


为了在聚合过程中加入时间属性,首先考虑对用户-物品交互进行时序建模,与普通的GNN-based模型不同,STAM以时序序列,采用look-up operation得到一跳邻居生成的时空embedding,。接下来在embedding中加入位置编码,得到包含位置信息的序列表示。


接下来的步骤较为常规,为了将时间信息整合到邻居表示学习中,STAM 利用 Scaled Dot-Product Attention 来捕获一阶邻居的时间顺序,并利用多头注意力机制在不同的潜在子空间上执行联合注意力


最后对得到的两个序列矩阵中的每个embedding求均值,得到最终的序列表示。


要点二:基于Light-GCN的应用实例


STAM只是一种基于GNN的聚合方式,不改变基于 GNN 推荐的框架,可以很自然地插入到现有的基于 GNN 的推荐模型中。在model的后半部分,作者以Light-GCN为基础模型,介绍了如何在GNN模型中应用STAM,即要点1未涉及到的embedding传播和池化问题:


注意在embedding逐层传播公式里有个新鲜的变量,这是一个从和学习到的注意力权重矩阵,将其与邻接矩阵做内积,可以节约内存。


三、实验结果

模型的最终效果还算不错,如笔记开篇所述,与基于空间的聚合方法相比,STAM在MoiveLens数据集、Amazon数据集和淘宝数据集上,实现了显著的性能提升,针对MRR@20分别提升了24.32%、7.78%和12.5%。STAM使时间信息集成到聚合中,有利于GNN-based模型中用户和物品的embedding表示学习。


将STAM与四个具有代表性的序列模型进行比较,包括GRU4Rec、Caser、SASRec和BERT4Rec。可以看出,在大多数情况下,STAM的表现优于最佳baseline BERT4Rec。这种改进可能归因于空间图结构,它可以利用消息传播来传递用户-物品图中的embedding表示。



此外,作者提供了消融实验,与传统的基于空间的聚合方法进行了比较。



四、总结

预测任务是神奇而神秘的。在人们结合目前所拥有的各种信息,而对事件未来的走向进行预测时,往往由于一些未曾被观测到的未知因素的存在,不能得到一个必然的结果。不过从乐观态度出发,当我们能够捕捉到更多特征信息之后,理论结果应当是愈加逼近现实的。


GNN是一个应用广泛的模型,并且衍生出了许多变体。在本文中,GNN遇到时序信息,提出了一种通用的时空聚合方法——STAM来学习时空邻居embedding,并用于邻居表示学习。一个可以遇见的事实是,未来GNN还会带着这种包容的态度融入更多辅助信息,一直发展壮大下去。


文末向大家提出几个问题,欢迎大家一起讨论~


  1. 你还知道哪些结合时空信息的GNN推荐模型,与STAM有何区别,优势在哪?


  1. 论文所提STAM是一种GNN-based聚合方式,是否可以和其他技术结合增强节点表示效果?


  1. 类似STAM的思想,除了时间属性,还有哪些辅助信息值得关注呢?


相关文章
|
机器学习/深度学习 存储 开发框架
推荐系统[八]算法实践总结V1:淘宝逛逛and阿里飞猪个性化推荐:召回算法实践总结【冷启动召回、复购召回、用户行为召回等算法实战】
推荐系统[八]算法实践总结V1:淘宝逛逛and阿里飞猪个性化推荐:召回算法实践总结【冷启动召回、复购召回、用户行为召回等算法实战】
推荐系统[八]算法实践总结V1:淘宝逛逛and阿里飞猪个性化推荐:召回算法实践总结【冷启动召回、复购召回、用户行为召回等算法实战】
|
机器学习/深度学习 分布式计算 搜索推荐
【推荐系统】推荐系统数据流的经典技术架构+微软、阿里、微软等10大深度学习CTR模型最全演化图谱
【推荐系统】推荐系统数据流的经典技术架构+微软、阿里、微软等10大深度学习CTR模型最全演化图谱
478 0
【推荐系统】推荐系统数据流的经典技术架构+微软、阿里、微软等10大深度学习CTR模型最全演化图谱
|
机器学习/深度学习 搜索推荐 算法
阿里搜索推荐系统又双叒叕升级了?!
搜索导购产品作为搜索的流量入口,承载了为用户导购推荐、搜索流量分流的重要功能。主要产品包括:首页底纹、下拉推荐、搜索发现、导航、历史搜索等。
16783 0
|
搜索推荐 算法 机器学习/深度学习
阿里搜索推荐系统又双叒叕升级了!
搜索导购产品作为搜索的流量入口,承载了为用户导购推荐、搜索流量分流的重要功能。主要产品包括:首页底纹、下拉推荐、搜索发现、导航、历史搜索等。
1685 0
|
4月前
|
搜索推荐 前端开发 数据可视化
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
本文介绍了一个基于Django框架、协同过滤算法、ECharts数据可视化以及Bootstrap前端技术的酒店推荐系统,该系统通过用户行为分析和推荐算法优化,提供个性化的酒店推荐和直观的数据展示,以提升用户体验。
174 1
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
|
6月前
|
搜索推荐 算法 小程序
基于Java协同过滤算法的电影推荐系统设计和实现(源码+LW+调试文档+讲解等)
基于Java协同过滤算法的电影推荐系统设计和实现(源码+LW+调试文档+讲解等)
|
6月前
|
搜索推荐 算法 小程序
基于Java协同过滤算法的图书推荐系统设计和实现(源码+LW+调试文档+讲解等)
基于Java协同过滤算法的图书推荐系统设计和实现(源码+LW+调试文档+讲解等)
|
4月前
|
搜索推荐 前端开发 数据可视化
基于Python协同过滤的旅游景点推荐系统,采用Django框架,MySQL数据存储,Bootstrap前端,echarts可视化实现
本文介绍了一个基于Python协同过滤算法的旅游景点推荐系统,该系统采用Django框架、MySQL数据库、Bootstrap前端和echarts数据可视化技术,旨在为用户提供个性化的旅游推荐服务,提升用户体验和旅游市场增长。
383 9
基于Python协同过滤的旅游景点推荐系统,采用Django框架,MySQL数据存储,Bootstrap前端,echarts可视化实现
|
4月前
|
搜索推荐 前端开发 算法
基于用户画像及协同过滤算法的音乐推荐系统,采用Django框架、bootstrap前端,MySQL数据库
本文介绍了一个基于用户画像和协同过滤算法的音乐推荐系统,使用Django框架、Bootstrap前端和MySQL数据库构建,旨在为用户提供个性化的音乐推荐服务,提高推荐准确性和用户满意度。
308 7
基于用户画像及协同过滤算法的音乐推荐系统,采用Django框架、bootstrap前端,MySQL数据库

热门文章

最新文章