当前位置 : 主页 > 编程语言 > 其它开发 >

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

来源:互联网 收集:自由互联 发布时间:2022-06-29
大家好,我是对白。 不得不说,GNN自问世后,在众多领域遭遇魔改,所幸效果是越来越好。想起前几天看到的一篇论文(STAM-GNN)将时序信息加进了GNN中,这在GNN-based推荐模型中并不多

大家好,我是对白。

不得不说,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“,即以平等的方式对待所有邻居;

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

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

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

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

为了在聚合过程中加入时间属性,首先考虑对用户-物品交互进行时序建模,与普通的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有何区别,优势在哪?

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

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

关于我

我是对白,清华计算机硕士,BAT算法工程师。欢迎关注我的微信公众号: 对白的算法屋,日常分享编程经验和技术干货,帮助你少走弯路!还可以加我微信,领资源和进交流群。

上一篇:初识云原生安全:云时代的最佳保障
下一篇:没有了
网友评论