#Reading Paper#STAM:A Spatiotemporal Aggregation Method for Graph Neural Network-based Recommendatio

论文题目:STAM: A Spatiotemporal Aggregation Method for Graph Neural Network-based Recommendation(STAM: 基于时空聚合方法的图神经网络)

论文地址:https://keg.cs.tsinghua.edu.cn/jietang/publications/WWW22-Yang%20et%20al.-STAM-GNN.pdf

论文源码开源地址:https://github.com/zyang-16/STAM

论文所属会议:WWW 2022

论文所属单位:Alibaba

一、引言

基于GNN的推荐系统通常基于空间结构信息对近邻embedding进行聚合,从而忽略了时间序列信息的聚合,本文提出STAM方法根据时间和空间信息对近邻的一阶邻居节点embedding进行聚合,并且此方法可以和其他GNN方法结合,即只修改GNN方法中的聚合函数为STAM即可。

本文的创新点:

  1. 强调了时间序列信息在基于GNN的邻居聚集推荐算法中的重要意义,说明聚类方法考虑结构和时间序列是有意义的。
  2. 提出的STAM聚合方法可以很自然的替代现有的基于GNN方法进行推荐的算法中。

二、GNN方法导读

详情请见博客:《基于推荐的GNN方法导读》

但是GNN有一个局限性:
他只考虑了网络中的连边的关系,而没有考虑过网络连边的时序关系(即user先预览了什么商品,后预览了什么商品)

#Reading Paper#STAM:A Spatiotemporal Aggregation Method for Graph Neural Network-based Recommendatio
此图说明了两个人在不同时间预览了相同的商品,Sherry在t1 – t4时刻分别预览了ABCD四种商品,Amy在t1 – t4时刻预览了DCBA四种商品,要是按照普通GNN的方法的话,算法得到最后给两人推荐的结果是相同的,但若考虑了预览物品的先后顺序,即用STAM方法得到的两人被推荐商品并不一样。后者的推荐更为精准。

; 三、STAM方法

如图所示为STAM的总体流程,以时序序列Tu,Tv为输入,输出以一阶邻居生成的时空embedding。首先,根据时间关系,以用户u的一阶邻居节点(即交互的商品)构建用户u的时序序列Tu={v1, …, vs},即交互的商品时间序列。同理构造商品对应的用户交互时间序列Tv={u1, …, us},经过常用的embedding层,可以得到两个序列对应的embedding序列:

#Reading Paper#STAM:A Spatiotemporal Aggregation Method for Graph Neural Network-based Recommendatio
上面的eut和evt可以通过GNN的常规模型得到。
下面是STAM最重要部分:
对于每个节点对(u, v)从每个节点的一阶邻居学习到基于时间和空间上的embedding向量表示是很重要的。本文利用《Scaled Dot-Product Attention》文章中的方法引用Q, K, V发掘序列中的关系。采用《In International Conference on Machine Learning》文章的方法在序列embedding中加入位置embedding Pu={pv1, …, pvS}和Pv={pu1, …, puS}从而得到包含位置信息的序列表征:
#Reading Paper#STAM:A Spatiotemporal Aggregation Method for Graph Neural Network-based Recommendatio
将这些序列embedding组成矩阵可得:
#Reading Paper#STAM:A Spatiotemporal Aggregation Method for Graph Neural Network-based Recommendatio
然后通过自注意力得到新的embedding,以用户的序列为例,公式如下:
#Reading Paper#STAM:A Spatiotemporal Aggregation Method for Graph Neural Network-based Recommendatio
Zu是一个时序输入向量矩阵,WQ/K/V是对于每一个user-item的矩阵对(u, v)共享的权重转换固定值。hTu是结合了时空序列特征的带有一阶邻居的输出向量矩阵函数
同理可以得到hTv:
#Reading Paper#STAM:A Spatiotemporal Aggregation Method for Graph Neural Network-based Recommendatio
为了提高STAM的模型能力和稳定性,结合多头注意力机制输出,公式如下:
#Reading Paper#STAM:A Spatiotemporal Aggregation Method for Graph Neural Network-based Recommendatio
hu和hv是最后结合多头注意力机制得到的基于时间和空间的邻居向量的embedding表示,hiTu和hiTv代表通过 _Scaled Dot-Product Attention_方法得到的第i层的向量矩阵的输出,FNN(·)是式子FNN(x)=xW0+b0。(W0和b0是可训练的参数)
同理,基于时空的邻居节点的所有向量表示也能用序列集合hu={hv1, …, hvs}和hv={hu1, …, hus}表示。
得到两个序列矩阵后,对其内的每个embedding求均值得到最终的序列embedding向量,公式如下:
#Reading Paper#STAM:A Spatiotemporal Aggregation Method for Graph Neural Network-based Recommendatio

; 四、STAM用于GNN推荐模型

STAM模型若要和LightGCN模型一样摒弃了非线性transformer层和加入聚合时空邻居嵌入作为中心节点嵌入,其结构也是非常复杂,并且容易在训练过程中内存溢出。
为了简化计算和节约内存,作者从hu和hv学习注意力权重矩阵:

#Reading Paper#STAM:A Spatiotemporal Aggregation Method for Graph Neural Network-based Recommendatio
并将其与邻接矩阵结合来计算下一层消息传播的embedding,公式如下:
#Reading Paper#STAM:A Spatiotemporal Aggregation Method for Graph Neural Network-based Recommendatio
h(l+1)是第(l+1)层的最终的表示向量,D是对角矩阵,每个元素Dii表示邻接矩阵A第i行向量中非零元素的数量。
最终对每一层的输出做加权求和,αl表示第l层表示在构成最终embedding嵌入时的重要性系数,和LightGCN一样,本文设置权重为1/(L+1),即做均值,公式如下:
#Reading Paper#STAM:A Spatiotemporal Aggregation Method for Graph Neural Network-based Recommendatio

五、模型优化

采用BPR损失函数和L2正则化来训练,公式如下:

#Reading Paper#STAM:A Spatiotemporal Aggregation Method for Graph Neural Network-based Recommendatio

; 六、数据集

#Reading Paper#STAM:A Spatiotemporal Aggregation Method for Graph Neural Network-based Recommendatio

七、结果

#Reading Paper#STAM:A Spatiotemporal Aggregation Method for Graph Neural Network-based Recommendatio
#Reading Paper#STAM:A Spatiotemporal Aggregation Method for Graph Neural Network-based Recommendatio

Original: https://blog.csdn.net/CRW__DREAM/article/details/123553487
Author: 堇禤
Title: #Reading Paper#STAM:A Spatiotemporal Aggregation Method for Graph Neural Network-based Recommendatio

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/549936/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球