《Session-Based Recommendation with Graph Neural Networks》
随着互联网上信息数量的快速增长,在许多互联网应用中(如搜索、电商、流媒体网站),推荐系统成为帮助用户缓解信息过载问题并选择有趣信息的基础。大多数现有的推荐系统都假设 user profile 和历史行为都被持续地记录。然而,在许多服务中,user id 可能是未知的,并且只有正在进行的 session 期间的用户行为历史可用。因此,建模在一个 session 中有限的行为并生成推荐是非常重要的。相反,在这种情况下,依赖于充足的 user-item 交互的传统推荐方法无法实现很好的推荐。
这里的
user profile指的是用户历史行为记录,而不是指的是年龄性别等用户画像。
由于具备很高的实用价值,人们对这个问题的研究兴趣越来越大,并且已经开发了多种 session-based 的推荐方法。基于马尔科夫链,一些工作根据前一个行为来预测用户的 next action 。在强独立性假设下,历史行为的独立组合(independent combination)限制了预测准确性。
近年来,大多数研究将 Recurrent Neural Network: RNN 应用于 session-based 的推荐系统,并获得了有前景的结果。
《Session-based recommendations with recurrent neural networks》 首先提出了一种 RNN 方法,然后通过数据增强和考虑用户行为的时间漂移(temporal shift)来增强模型。
最近,NARM 设计了一个全局 RNN 和局部 RNN 推荐器,来同时捕获用户的序列行为(sequential behavior)和主要意图(main purpose)。
类似于 NARM,STAMP 也通过使用简单的 MLP 网络和注意力网络来捕获用户的通用兴趣(general interest)和当前兴趣(current interest)。
尽管上述方法取得了令人满意的结果并成为 SOTA 的技术,但是它们仍然存在一些局限性。
首先,如果在一个 session 中没有足够的用户行为,那么这些方法难以估计 user representation。
通常,这些 RNN 方法的 hidden vector被视为 user representation ,然后可以基于这些 representation 来生成推荐,例如,NARM 的全局推荐器。然而,在 session-based 的推荐系统中,session 大多是匿名的而且数量非常多,并且 session 点击中涉及的用户行为通常是有限的。因此很难从每个 session 中准确估计每个用户的 representation 。
其次,之前的工作表明(NARM 和 STAMP ),item transition的模式很重要,可以用作 session-based 推荐中的局部因子,但是这些方法总是建模连续 item 之间的单向转移(singleway transition),而忽略了上下文之间的转移,即 session 中的其它 item。因此,这些方法经常忽略远距离 item 之间的复杂转移。
RNN网络仅建模单向转移,而attention机制建模全局相关性而忽略了item之间的关系。
为了克服上述限制,论文 《Session-Based Recommendation with Graph Neural Networks》提出了一种新的 Session-based Recommendation with Graph Neural Network: SR-GNN 方法,从而探索 item 之间的丰富转移并生成准确的 item 潜在向量。Graph Neural Network: GNN 被设计用于生成图的 representation。
最近,GNN 被广泛用于为 natural language processing: NLP 和 computer vision: CV 的应用构建图结构依赖关系,如脚本事件(script event)预测、情景识别(situation recognition)、图像分类。
对于 session-based 推荐,论文首先从历史 session 序列构建有向图。基于 session graph,GNN 能够捕获 item 的转移并相应地生成准确的 item embedding 向量,这是传统的序列方法(如 MC-based 方法和 RNN-based 方法)所难以揭示的。基于准确的 item embedding 向量,SR-GNN 构造了可靠的 session representation ,并可以推断出 next-click item 。
SR-GNN的核心在于item embedding的生成。传统的session-based推荐方法中,item embedding是自由变量并随机初始化。在SR-GNN推荐方法中,item embedding是根据GNN计算得到的,因此包含了item之间的转移关系。能否仅仅依赖于
GNN来建模session-based推荐?读者认为是不可行的。因为GNN无法建模序列信息,而序列信息(尤其是last click item)对于session-based推荐至关重要。
下图说明了所提出的 SR-GNN 方法的工作流程。
首先,所有 session序列都被建模为有向的 session graph,其中每个 session 序列都可以视为一个子图。
也可以将所有
session序列建模为一张大的图,而不是每个session一个session graph。但是论文在实验部分对比了这两种方式的效果,实验表明:每个session一个session graph的效果更好。因为前者(建模为一张大图)会显著影响当前session的完整性。
然后,每个 session graph 依次被处理,并且可以通过 gated graph neural network: GGNN 来获得每个子图中涉及的所有节点的潜在向量。
之后,我们将每个 session 表达为该 session 中该用户的全局偏好(global preference)和当前兴趣 (current interest)的组合,其中这些全局 session embedding 向量和局部 session embedding 向量都由节点的潜在向量组成。
session embedding的计算方式类似于STAMP,其中全局session embedding向量通过注意力机制计算得到,局部session embedding向量就是last click item的embedding向量。
最后,对于每个 session,我们预测每个 item 成为 next click 的概率。

论文在真实世界的代表性数据集上进行了大量实验,实验结果证明了所提出方法的有效性并达到了 SOTA。
论文主要贡献总结如下:
论文将独立的 session 序列建模为图结构化数据,并使用 GNN 来捕获复杂的 item transistion。据作者所知,该方法提出了在 session-based 推荐场景中建模的新视角。
为了生成 session-based 推荐,论文不依赖于 user representation 而是使用 session representation,它可以仅基于每个单一 session 中涉及的 item 的潜在向量来获得。
在真实世界数据集上进行的大量实验表明,SR-GNN 显著优于 SOTA 的方法。
相关工作:这里我们回顾了 session-based 推荐系统的一些相关工作,包括:传统方法、基于马尔科夫链的序列方法、RNN-based 方法。然后我们介绍了图上的神经网络。
传统的推荐方法:
矩阵分解是推荐系统的一种通用方法。矩阵分解的基本目标是将 user-item 评分矩阵分解为两个低秩矩阵,每个矩阵代表用户潜在因子或 item 潜在因子。它不太适合 session-based 推荐,因为用户偏好仅由一些 positive 点击来提供。
item-based 邻域方法是一种自然的解决方案,其中 item 相似性是根据同一 session 中的 item co-occurrence 来计算的。这些方法难以考虑 item 的顺序,并且仅基于 the last click 来生成预测。
然后人们提出了基于马尔科夫链的序列推荐方法,该方法根据用户的前一个行为来预测 next action 。
《An mdp-based recommender system》 将推荐生成视为序列优化问题,并采用马尔科夫决策过程(Markov decision process: MDP)来解决该问题。
通过对用户的个性化概率转移矩阵进行分解,FPMC 对每两次相邻点击之间的序列行为进行建模,并为每个序列提供更准确的预测。
然而,基于马尔科夫链的模型的主要缺点是:它们独立地组合了历史行为( combine past components independently)。这种独立性假设太强,从而限制了预测的准确性。
基于深度学习的方法:最近,一些基于神经网络的预测模型,尤其是 language model 被人们提出。在众多 language model 中,recurrent neural network: RNN 在句子建模方面是最成功的模型,并且已被广泛应用于各种自然语言处理任务,例如机器翻译、对话机器人(conversation machine)、图像字幕生成(image caption)。RNN 也成功应用于许多 application,例如序列点击预测、位置预测(location prediction)、以及 next basket 推荐。
对于 session-based 推荐,《Session-based recommendations with recurrent neural networks》 提出了 RNN 的方法,然后《Parallel recurrent neural network architectures for feature-rich session-based recommendations》扩展到具有并行 RNN 的架构,该架构可以根据被点击的 item 及其特征来建模 session 。此后,人们基于这些 RNN 方法提出了一些工作。
《Improved recurrent neural networks for session-based recommendations》 通过使用适当的数据增强技术并考虑用户行为的时间漂移(temporal shift)来提高 RNN 模型的性能。
《When recurrent neural networks meet the neighborhood for session-based recommendation》 将 RNN 方法和 neighborhood-based 方法结合起来,从而混合序列模式和共现信号( co-occurrence signal )。
《3d convolutional networks for session-based recommendation with content features》 将 session 点击与 item 描述和 item 类别等内容特征相结合,通过使用三维卷积神经网络生成推荐。
此外,《Session-aware information embedding for e-commerce product recommendation》 通过 list-wise 的深度神经网络来建模每个 session 内的有限用户行为,并使用一个 list-wise 的 ranking model 来为每个 session 生成推荐。
此外,具有一个 encoder-decoder 架构的神经注意力推荐机(neural attentive recommendation machine: NARM) 采用 RNN 上的注意力机制来捕获用户的序列行为特征和主要意图。
然后,《Stamp:Short-term attention/memory priority model for session-based recommendation》 提出了一种使用简单 MLP 网络和注意力网络的 short-term attention priority model ,即 STAMP ,从而有效地捕获用户的通用兴趣和当前兴趣。
图上的神经网络:如今,神经网络已被用于生成图结构化数据(如社交网络、知识图谱)的 representation。
扩展自word2vec 的无监督算法 DeepWalk 旨在基于随机游走来学习图节点的 representation。继 DeepWalk 之后,无监督网络嵌入算法 LINE 和 node2vec 是最具代表性的方法。
另一方面,经典的神经网络 CNN 和 RNN 也部署在图结构数据上。
《Convolutional networks on graphs for learning molecular fingerprints》 引入了一个卷积神经网络,它直接对任意大小和形状的图进行操作。
《Semi-supervised classification with graph convolutional networks》 是一种可扩展的方法,通过谱图卷积的局部近似来选择卷积架构。它是一种有效的变体,也可以直接对图进行操作。
但是,这些方法仅能在无向图上实现。
先前,人们提出了 《The graph neural network model》来操作有向图。作为 GNN 的修改,《Gatedgraph sequence neural networks》 提出了gated GNN 来使用 GRU 并采用 back-propagation through time: BPTT 来计算梯度。
最近,GNN 被广泛应用于不同的任务,例如脚本事件预测、情景识别、图像分类。
在这里我们介绍了所提出的 SR-GNN,它将图神经网络应用于 session-based 的推荐。我们首先形式化问题,然后解释如何从 session 构建图,最后描述 SR-GNN 方法。
形式化问题:session-based 推荐旨在预测用户接下来会点击哪个 item,仅仅基于用户当前的序列 session 数据,而无需访问用户的长期历史行为数据。这里我们给出该问题的形式化(formulation)如下。
在 session-based 的推荐中,令 session 中涉及的所有 unique item 组成的集合。一个匿名 session 序列 session item 。session-based 推荐的目标是预测 next click ,即针对 session sequence label
在 session-based 的推荐模型下,对于 session item 的概率 item 的推荐分。 top-K 取值的 item 就是被推荐的候选 item 。
构建 session graph:每个 session 序列 session graph 中,每个节点代表一个 item session item item
由于序列中可能重复出现多个 item,我们为每条边分配一个归一化的权重,权重的计算方法是:边的出现次数除以该边的起始节点的出度( out degree)。
我们将每个 item embedding 空间中,节点向量 GNN 学到的 item session embedding 向量
然后我们介绍了如何通过 GNN 获得节点的潜在向量。普通的 GNN 由《The graph neural network model》 提出,它扩展了神经网络方法从而用于处理图结构数据。《Gated graph sequence neural networks》 进一步引入门控循环单元(gated recurrent unit)并提出 gated GNN 。GNN 非常适合 session-based 的推荐,因为它可以在考虑丰富的节点链接的情况下自动抽取 session graph 的特征。
我们首先演示 session graph 中节点向量的学习过程。形式上,对于图
其中:
session node vector 。
session graph 的connection matrix ,它决定了 graph 中节点之间如何相互通信。
reset gate),update gate),
sigmoid 函数,
这里 session graph 中出边( outgoing edge )的邻接矩阵和入边 (incoming edge)的邻接矩阵。例如,考虑一个 session
对于矩阵
, 的矩阵乘法其实等价于: 。

注意, SR-GNN 可以为各种类型的 session graph 支持不同的connection matrix session graph 的构建策略,那么connection matrix categorical)信息时,该方法可以进一步推广。具体而言,我们可以将节点的内容特征和节点向量拼接起来从而处理这些内容特征信息。
对于每个 session graph GGNN 同时处理所有节点。
首先,它抽取邻域的潜在向量并将它们作为 input 馈入到 GNN 中。
然后,更新门和复位门分别决定保留哪些信息、丢弃哪些信息。
之后,我们通过前一个状态、当前状态、复位门来构造候选状态。
最后,在更新门的控制下,final state 是前一个隐状态和当前候选状态的组合。
在更新 session graph 中的所有节点直到收敛之后,我们可以获得 final 的节点向量。
这里需要迭代
session graph直到达到不动点fixed point。然而,可以采用GraphSage, Semi-GCN等方法,这些方法无需达到不动点,只需要迭代次, 为一个超参数。
之前的 session-based 的推荐方法总是假设每个 session 存在用户的 distinct latent representation 。相反, SR-GNN 方法不对该向量做任何假设。在 SR-GNN 中,session 直接由该 session 中涉及的节点来表达。为了更好地预测用户的 next click ,SR-GNN 将 session 的长期偏好和当前兴趣相结合,并将这种组合的 embedding 作为 session embedding 。
引入
user embedding需要直到user id。而在session-based推荐场景之下,通常是不知道user id的,即匿名session。
在将所有 session graph 输入 GGNN 之后,我们获得了所有节点的向量。然后,为了将每个 session 表达为一个 embedding 向量
我们首先考虑 session embedding session embedding 可以简单地定义为 last-clicked item 的 embedding ,即:
然后,我们通过聚合所有节点向量来考虑 session graph embedding embedding 中的信息可能具有不同 level 的优先级,我们进一步采用 soft-attention 机制来更好地表达全局 session 偏( global session preference):
其中:
attention 的参数向量。
这里将局部
embedding作为注意力机制的 query向量。
最后,我们通过对局部 embedding 向量和全局 embedding 向量拼接之后的线性变换来计算混合 embedding 向量
其中:
这里对局部
embedding向量和全局embedding向量进行线性组合,组合权重由模型自动学到。
在获得每个 session 的 embedding 之后,对于每个候选 item embeddign session representation item
然后我们应用一个 softmax 函数来得到模型的输出向量
其中:item 的推荐分,item 作为 session next click 的概率。
对于每个 session graph,损失函数定义为预测值和 ground truth 的交叉熵。即:
其中:ground truth,
最后,我们使用时间反向传播 Back-Propagation Through Time: BPTT 算法来训练所提出的 SR-GNN 模型。注意。在 session-based 的推荐场景中,大多数 session 的长度相对较短。因此,建议选择相对较少的训练 step 从而防止过拟合。
数据集:
Yoochoose:来自 RecSys Challenge 2015 ,包含一个电商网站 6 个月内的用户点击流( stream of user clicks)。
Diginetica:来自于 CIKM Cup 2016 ,这里仅使用交易数据。
为了公平比较,遵从 NARM 和 STAMP,我们过滤掉所有长度为 1 的 session 以及出现频次少于 5 次的 item 。Yoochoose 数据集剩下 7981580 个 session 和 37483 个 item,而 Diginetica 数据集剩下 204771 个 session 和 43097 个 item 。
对于 Yoochoose我们将最后几天的 session 设为测试集,对于 Diginetiva 我们将最后几周的 session 设为测试集。遵从NARM 和 STAMP,我们还使用了 Yoochoose 训练序列的最近 1/64 和 1/4 。
此外,类似于 《Improved recurrent neural networks for session-based recommendations》,我们通过拆分 input 序列来生成序列和对应的 label 。具体而言,对于 session 序列 input 和相应的 label 为:
数据集的统计数据如下表所示。

baseline 方法:
POP 和 S-POP:分别推荐训练集和当前 session 中的 top-N 流行的 item 。
Item-KNN:推荐与 session 中先前点击的 item 相似的 item ,其中相似性定义为 session 向量之间的余弦相似度。
session向量:一个维向量, 为 session数量。如果item在第个 session中出现,那么该向量的第个元素为 1,否则为0。
BPR-MF:通过随机梯度下降优化 pairwise 的排序目标函数。
FPMC:一种基于马尔科夫链的序列预测方法。
GRU4REC:使用 RNN 为 session-based 推荐来建模用户序列。
NARM:采用带注意力机制的 RNN 来捕获用户的主要意图和序列行为。
STAMP:捕获用户对当前 session 的通用兴趣( general interest)、以及 last click 的当前兴趣( current interest)。
评估指标:
P@20 (Precision)):一个广泛应用的准确性指标,它代表了 top 20 个 item 中,正确推荐 item 的比例。
MRR@20 (Mean Reciprocal Rank):是正确推荐的 item 的排名倒数(reciprocal rank )的均值。当排名差于 20 时,排名倒数置为零。MRR 指标考虑推荐的 order,其中 MRR 值大则表示正确的推荐排在 ranking list 的头部。
实验配置:
遵从之前的方法(NARM 和 STAMP),我们将两个数据集上的潜在向量维度设置为
此外,我们在验证集上选择其它超参数,其中验证集是训练集的随机 10% 子集。
所有参数均使用均值为零、标准差为 0.1 的高斯分布进行初始化。
我们使用 mini-batch 的 Adam 优化器,其中学习率设置为 0.001 ,每 3 个 epoch 之后将衰减 0.1 。
此外,mini-batch size 设为 100,L2 正则化系数设为
和 baseline 的比较:为了展示所提出模型的整体性能,我们将SR-GNN 与其它 SOTA 的 session-based 的推荐方法进行比较,比较结果如下表所示,其中最佳结果以粗体突出显示。注意,与《Neural attentive session-based recommendation》 一样,由于初始化 FPMC 的内存不足,这里没有报告 Yoochoose 1/4 上的性能。
SR-GNN 将分离(separated)的 session 序列聚合为图结构数据。在这个模型中,我们共同考虑全局 session 偏好以及局部兴趣。根据实验,很明显,所提出的 SR-GNN 方法在 P@20 和 MRR@20 指标上在所有三个数据集上都实现了最佳性能。这验证了 SR-GNN 的有效性。
POP, S-POP 等传统算法的性能相对较差。这种简单的模型仅基于重复的共现 item、或者连续 item 进行推荐,这在 session-based 推荐场景中是有问题的。
即便如此,S-POP 的表现仍然优于 POP, BPR-MF, FPMC 等竞争对手,这证明了 session 上下文信息(session contextual information)的重要性。
Item-KNN 比基于马尔科夫链的 FPMC 取得了更好的结果。注意,Item-KNN 仅利用 item 之间的相似性,而不考虑序列信息。这表明传统的基于马尔科夫链的方法主要依赖的假设是不现实的,这个假设是:successive items 的独立性。
基于神经网络的方法(如 NARM 和 STAMP)优于传统方法,这展示了在推荐领域应用深度学习的能力。短期/长期记忆模型,如 GRU4REC 和 NARM,使用循环单元来捕获用户的通用兴趣(general interest),而 STAMP 通过利用 last-click item 来改善短期记忆(short-term memory)。这些方法显式地建模用户的全局行为偏好,并考虑用户的 previous actions 和 next click 之间的转移(transition),从而获得优于传统方法的性能。
但是,它们的性能仍然不如SR-GNN 。与 NARM 和 STAMP 等 SOTA方法相比,SR-GNN 进一步考虑了 session 中 item 之间的转移,从而将每个 session 建模为一个 graph,这个 graph 可以捕获用户点击之间更复杂、更隐式的链接。而在 NARM 和 GRU4REC 中,它们显式地建模每个用户,并通过separated 的 session 序列来获得 user representation,忽略了 item 之间可能的交互关系。因此,SR-GNN 对 session 行为的建模能力更强大。
RNN网络显式建模单向转移,而attention机制显式建模全局相关性而忽略了item之间的关系。相比之下,SR-GNN建模了item之间更复杂、更隐式的关系(如一阶邻近性、高阶邻近性)。
此外,SR-GNN 采用 soft-attention 机制生成 session representation,这可以自动选择最重要的 item 转移,并忽略当前 session 中噪音(noisy)的、无效的用户 action 。相反,STAMP 仅使用 last click item 和 previous actions 之间的转移,这可能还不够。
SR-GNN在soft-attention机制中,也使用last click item和previous actions之间的关系。但是在SR-GNN中,每个item embedding考虑了session graph中更复杂的、更隐式的转移。
其它 RNN 模型,如 GRU4REC 和 NARM,在传播过程中也无法选择有影响力的信息。它们使用所有 previous items 来获得代表用户通用兴趣的向量。当用户的行为是漫无目的、或者用户的兴趣在当前 session 中快速漂移时,传统模型无法有效地处理噪音的 session 。
NARM在通过局部编码器计算当前session的主要意图时,也使用注意力机制来自适应地关注更重要的item。因此作者这里表述有误。

各种链接方案的比较:所提出的 SR-GNN 方法可以灵活地构建 graph 中 item 之间的链接关系。我们展示了另外两个链接变体,从而评估每个 session graph 中 item 之间的不同方式的关系。
变体一:我们将所有 session graph 聚合在一起,并将它们建模为一个有向的、整体的 item graph,称之为 global graph 。在 global graph 中,每个节点表示一个 unique item,每条边表示从一个 item 到另一个 item 的有向转移。
我们使用从 global graph 中提取的边权重代替 connection matrix ,称之为:具有归一化的全局链接(normalized global connection)的 SR-GNN (SR-GNNNGC)。
变体二:我们将一个 session 中 item 之间的所有高阶关系显式建模为直接链接。我们使用布尔权重表示所有高阶关系,并将其对应的 connection matrix 附加到 SR-GNN 的 connection matrix ,称之为:具有全连接的 SR-GNN(SR-GNN-FC)。
不同链接方案的结果如下图所示,可以看到:
所有三种链接方案都实现了与 SOTA 的 STAMP 和 NARM 方法更好或几乎相同的性能,证明了将 session 建模为 graph 的有用性。
与 SR-GNN 相比,对于每个 session,SR-GNNNGC 除了考虑当前 session 中的 item 之外,还考虑了其它 session 的影响,从而减少了当前 session graph 中 high degree 节点对应的边的影响。这种融合方法会显著影响当前 session 的完整性,尤其是当 graph 中边的权重差异较大时,从而导致模型性能下降。
此外,
SR-GNNGC需要构建一张大的global graph,当节点数量非常多(如数十亿),此时对内存也是一个挑战。而session graph小得多,也更容易处理。此外,即使
session graph之间相互独立,但是item embedding是共享的,因此每个item可以从所有的session graph中学习各种转移模式。
对于 SR-GNN 和 SR-GNN-FC,前者仅对连续 item 之间的确切关系进行建模,后者进一步显式地将所有高阶关系视为直接链接。结果表明,SR-GNN-FC 的性能要比 SR-GNN 更差,尽管两种方法的实验结果差别不大。
如此小的结果差异表明,在大多数推荐场景中,并非每个高阶转移都可以直接转换为直接链接,高阶 item 之间的 intermediate stage 仍然是必需的。例如,考虑到用户在浏览一个网站时浏览了以下网页:A -> B -> C,不适合直接在 A 之后推荐网页 C 而没有中间网页 B,因为 A 和 C 之间没有直接的联系。

不同 Session Embedding 的比较:我们将SR-GNN 的 session embedding 生成策略与以下三种方法进行比较:
仅 local embedding (SR-GNNL):即,仅考虑 last-clicked item 的 embedding 。
仅具有均值池化的 global embedding(SR-GNNAVG):即,仅考虑 global embedding 并且
仅具有注意力机制的 global embedding (SR-GNN-ATT) :即,仅考虑 global embedding 。
下图给出了三种不同 embedding 策略的方法的结果。可以看到:
原始的 SR-GNN 在所有三个数据集上都取得了最佳结果,这验证了显式结合当前 session 兴趣和长期偏好的重要性。
此外,SR-GNN-ATT 在三个数据集上的 性能优于 SR-GNN-AVG。这表明 session 可能包含一些噪音的行为。此外,结果表明,注意力机制有助于从 session 数据中抽取重要行为从而构建长期偏好。
注意,SR-GNN 的降级版本 SR-GNN-L 仍然优于 SR-GNN-AVG,并达到与 SR-GNN-ATT 几乎相同的性能,这表明:当前 session 兴趣和长期偏好对于 session-based 推荐都是至关重要的。
仅使用
last-clicked item的embedding效果就很好,那么是否可以丢弃所有previous行为而仅保留last-clicked item?如果可以的话,那么会极大地简化推荐算法。读者认为是不可以的,因为还依赖于
session graph来生成last-clicked item的embedding。

session 序列长度分析:我们进一步分析了不同模型处理不同长度 session 的能力。为了比较,我们将 Yoochoose 1/64 和 Diginetica 分为两组,其中: Short 组表示 session 的长度小于或等于 5 个,Long 组表示 session 的长度超过 5 个。之所以选择数字 5 ,是因为所有数据集中 session 的平均长度最接近整数 5 。Yoochoose 数据集上的 session 中,属于 Short 组和 Long 组的比例分别为 0.701 和 0.299 ,而 Diginetica 数据集则为 0.764 和 0.236 。对于每种方法,我们在下表中报告了 P@20 的指标。可以看到
我们的 SR-GNN 及其变体在两个数据集上具有不同 session 长度时表现稳定。这证明了 SR-GNN 的优越性能、以及 GNN 在 session-based 推荐中的适应性( adaptability )。
相反,NARM 和 STAMP 的性能在 Short 组和 Long 组的性能变化很大。
STAMP 解释这样的差异归因于重复的动作(replicated actions):这可能是因为重复点击可能会强调不重要item 的一些无效信息,并使其难以捕获到 next action 相关的用户兴趣。
与 STAMP 类似,NARM 在 Short 组上获得了良好的性能,但是随着 session 长度的增加,性能迅速下降。部分原因是 RNN 模型难以处理长的序列。
然后我们分析了 SR-GNN-L, SR-GNN-ATT, SR-GNN 在不同 session 长度下的性能:
与 STAMP 和 NARM 相比,这三种方法取得了有前景的结果。这可能是因为基于 GNN 的学习框架,我们的方法可以获得更准确的节点向量。这种 node embedding 不仅可以捕获节点的潜在特征,还可以全局地建模节点链接。
此外,SR-GNN 的性能是最稳定的,而 SR-GNN-L, SR-GNN-ATT 的性能在 Short 组和 Long 组上波动很大。
结论不成立,
SR-GNN-ATT的波动与SR-GNN一样都很小。
此外,SR-GNN-L 也可以取得良好的结果,尽管该变体仅使用 local session embedding vector 。这可能是因为建模 local session embedding vector 时还隐式地考虑了 session graph 中一阶节点和高阶节点的属性。
