STAM: A Spatiotemporal Aggregation Method for Graph NeuralNetwork-based Recommendation
STAM:一种基于图神经网络的推荐的时空聚合方法
来源:WWW 2022
摘要:现有的基于图神经网络的推荐方法通常关注于如何从空间结构信息的角度来聚合信息,但关于邻居的时间信息却没有得到充分的探索。在这项工作中,作者提出了一种时空聚合方法STAM,以有效地将时间信息纳入邻居嵌入学习。STAM从空间结构信息和时间信息的角度生成时空邻居嵌入,促进了从空间到时空的聚合方法的发展。大量的实验表明,与基于空间的聚合方法相比,STAM在基于gnn的推荐方面有了显著的改进,例如,在MRR@20方面,Movielens的提高为24%,Amazon的提升为8%,TaoBao的提升则为13%。
1 动机
近年来,图神经网络被广泛用于推荐模型的研究中。大量基于gnn的推荐工作从空间结构信息的角度研究了有效的聚合方法来学习用户和项目的嵌入。现有的聚合方法大致可分为四组:(1)“mean pooling”平等对待邻居;(2)“degree normalization”根据图结构为节点赋权重;(3)“attentive pooling”通过注意机制区分邻居的重要性,(4)“central node augmentation”考虑节点之间的亲和性,并使用中心节点过滤邻居的消息。然而,上述方法忽略了邻居的时间信息,这是一个重要的信号,在基于gnn的推荐中对聚合有重要的贡献,却在邻居嵌入学习中没有编码。
从一个例子来说明时间信息在推荐中的作用:在图1中,作者从用户的行为历史中选择两个用户(Amy和Sherry),分别构建一个用户-项二部图和一个基于gnn的推荐的时间顺序图。在基于空间的聚合中,Amy和Sherry的聚合邻居嵌入是相同的,因为它们与相同的项目交互。与LightGCN类似,作者省略了非线性转换,并利用聚合的邻居嵌入作为一跳用户嵌入。因此,推荐系统会推荐Amy和Sherry相同的项目。然而,Amy和Sherry的推荐项目在基于时空的聚合方面是不同的。在基于时空的聚合中,作者将时间信息纳入邻居嵌入学习中,其中时间顺序在捕获用户的动态兴趣和用户集群随时间的变化方面起着至关重要的作用。
为了解决这个问题,作者提出了一种新的被称为时空聚合方法(STAM)的聚合方法,将时间信息整合到邻居嵌入学习中。STAM从空间结构和时间顺序的角度生成时空邻居嵌入。为了进一步提高STAM的表达能力,作者在STAM中学习了多个attention heads,以便对不同的潜在子空间进行联合注意。另外,STAM可以自然地插入到现有的基于GNN的推荐中,从而获得更好的推荐结果。
2 方法
2.1 问题定义
对于指定用户项目对(u,v),为了从时空角度聚合邻居信息,首先需要从用户的历史行为收集时间信息,建立用户u的行为时间序列Tu={v1,···vS}和项目v的时间序列Tv={u1,···uS},其中S是一跳邻居的数量,vt/ut指的是第t个的交互项目/用户。
2.2 STAM
图2描述了STAM的整体架构,它以时间序列Tu和Tv作为输入,输出由一跳邻居生成的时空邻居嵌入。具体来说,作者首先从每个用户-项目对(u、v)的连接的一跳邻居中构建两个临时时间序列,包括用户的时间序列Tu={v1、···,vS}和项目的时间序列Tv={u1、···,uS},其中S是时间序列的长度。然后获取每个时间序列对应项目/用户的初始嵌入,即时间序列Tu的嵌入,Tv的嵌入,其中是维度为d的向量。注意初始嵌入的和来自于常规GNN的初始化embedding layer。
为了实现时空邻居嵌入,作者使用了点积缩放注意力机制(Scaled Dot-Product Attention),其已经成为序列建模的重要部分。将查询Q、键K和值V作为输入表示,查询,键和值分别通过投影矩阵','以及'来投影到不同空间中。此外为了把时间信息编码进注意力机制中,作者使用了位置编码,即时间序列Tu和Tv具有绝对时间位置嵌入和,其中∈Rd表示t时间位置的位置向量。然后,将时间位置嵌入与时间顺序嵌入相结合,获得用户和项目的时间输入嵌入和。最后将输入到STAM进行时空邻居嵌入学习。以用户的时间序列Tu为例,点积缩放注意力计算为:
其中,其中是一个时间输入嵌入矩阵,'表示一跳邻居的输出嵌入矩阵,、和是应用于每个用户项对(u,v)的共享权重变换。同理,项目的时间序列Tv的计算公式为:
为了进一步提高STAM的表达能力,作者采用了多头注意力机制,而不是执行单一的注意功能,从不同的潜在角度捕获时间信息。利用多个独立的attention heads,操作输入嵌入以及不同的,可学习的线性投影矩阵,有助于提高模型的能力和稳定性。具体来说,多头注意力机制首先将时间输入嵌入Zu/Zv投影到具有各种线性投影矩阵的k个子空间中,然后并行使用k个缩放点积注意函数来生成一跳邻居的输出嵌入矩阵。这些嵌入矩阵可以连接起来产生一个组合的邻域嵌入矩阵。最后应用一个前馈神经网络来进行维数变换。在多头注意力机制下,中心用户u和中心项目v的时空邻居嵌入可以计算为:
其中和表示多头注意力机制生成的时空邻居嵌入,表示第i个缩放点积注意函数的一跳邻居的输出嵌入矩阵(由于是k头,故上面的等矩阵的第二维度会变成D'/k,拼接起来后维度才会回到D')。FFN(·)可以表示为,其中和为可训练的参数。需要注意的是,时空邻居嵌入也可以以时间序列的形式表示,如Hu={}和Hv={}。
最后,作者从上述的时空邻居嵌入中计算出聚合的邻居嵌入。在这里只是简单地利用平均池操作来聚合时空邻居嵌入。这是因为作者实验发现时空邻居嵌入的平均池化通常具有良好的性能。中心用户/项目的聚合的邻居嵌入nu/nv可以表述为:
2.3 基于GNN的推荐的STAM
与最先进的基于gnn的推荐模型LightGCN类似,作者也省略了非线性转换,并聚合时空邻居嵌入作为中心节点嵌入。然而,当层层传播one hop邻居的时空邻居嵌入时,上述STAM的内存消耗将呈指数级增长。为此,作者从时空邻居嵌入中学习了一个时空注意权重矩阵,并将其整合到相邻的矩阵中。时空传播层的矩阵形式可以表述为:
其中是第(l+1)层的中心嵌入,⊙表示element-wise product,D是度矩阵。
中心用户和项目的最终嵌入可以通过加权池化操作来计算。具体来说,应用池化函数,通过操作传播的L层来生成最终的用户/项目嵌入:
其中,αl≥0表示第l层的表示在构成最终嵌入中的重要性。与LightGCN类似,作者统一将αl设为1/(L+1),因为本工作不涉及αl的选择。
2.4 STAM的优化函数
为了优化STAM的参数,作者使用了被广泛采用的BPR损失:
其中σ(·)为sigmoid函数,Θ为可训练参数,λ控制L2正则化强度。vn∼pn(·|u)表示负抽样策略。
2.5 模型分析
·STAMvsLightGCN。LightGCN是最近一个具有代表性的推荐图卷积网络模型,它通过线性聚合用户-项目交互图中的邻居来学习用户和项目的嵌入。STAM和LightGCN都旨在为基于gnn的推荐学习细粒度的用户和项目嵌入。与只捕获空间结构信息的LightGCN不同,STAM同时捕获空间和时间信息。
·SASRec是transformer的一个最新变体,它使用一组可训练的位置嵌入来编码项目的顺序,以进行顺序推荐。尽管STAM和SASRec都利用时间信息来学习用户和项目嵌入,但推荐的类型是不同的。与SASRec的序列推荐不同,STAM侧重于基于gnn的推荐。此外,SASRec中的项目嵌入是通过嵌入查找表执行的,而STAM中是通过时空聚合方法迭代学习的。
·BERT4Rec是一个顺序推荐模型,它使用深度双向自我注意来建模用户行为序列。尽管STAM和BERT4Rec都将Scaled Dot-Product Attention应用到模型时间信息中,但STAM的重点是通过从空间结构和时间顺序的角度同时聚合一跳邻居的信息来改进聚合方法。BERT4Rec使用Cloze目标预测掩蔽项目,而STAM直接对采样的训练对进行BPR损失。
3 实验
3.1 数据集
3.2 与图神经网络的基线模型的比较
根据表2,STAM比基线取得了显著的改善,这证实了作者的主张,即在基于gnn的推荐中,时间信息对邻居聚合的重要性。
3.3 与序列模型的比较
根据表3所示的结果,STAM在大多数情况下表现优于最佳基线BERT4Rec,而在某些评估指标上表现差于BERT4Rec。尽管STAM和BERT4Rec都将Scaled Dot-Product Attention应用到模型时间信息中,但STAM只利用一层注意来捕获每个传播层的时间信息,而BERT4Rec将多个注意层叠加,以学习更复杂的项目转换模式。一般来说,STAM比BERT4Rec具有更好的性能。这种改进可能归因于空间图的结构,它可以利用消息传播在用户项图中传播嵌入。
3.4 消融实验
为了验证STAM的优越性,作者将STAM与之前四种具有代表性的基于空间的聚合方法进行了比较,包括“平均池”、“注意池”、“度归一化”和“中心节点增强”。比较实验如图3所示,STAM明显优于所有基于空间的聚合方法,这验证了捕获一跳邻居的时间顺序有利于邻域嵌入学习。
为了分析传播层数的影响,我们在{1、2、3、4}的范围内改变了传播层数L。如表4所示,用于基于gnn的推荐的STAM受益于叠加多个STAM来传播嵌入在用户-项目图上的时空邻居。与许多基于gnn的推荐模型类似,堆叠太多的STAM也会带来过平滑的问题,即性能随着传播层数的增加而出现峰值变化。
作者进行了一个实验来分析输入长度S的影响,并展示了图4中对MRR@20的实验结果。具体来说,在{5、20、50、100、150、200}范围内搜索S,并在实验中保持最佳设置(S=200(Moivelens)和S=50(Amazon)和S=100(TaoBao))。从图4中可以观察到STAM的性能随输入长度的数量略有波动。这说明由STAM生成的时空邻居嵌入受一跳邻居的时间长度的影响较小。此外,作者观察到适当的输入长度S高度依赖于数据集的一跳邻居的平均长度,这使我们能够从数据集的属性中设置最优的输入长度。