3.4生成会话嵌入向量
之前基于会话的推荐方法一般假设对于每个会话的用户都有明确的潜在表示。而SR-GNN恰恰相反,其不对生成的词嵌入向量做任何假设。SR-GNN方法中的会话直接通过各个节点之间的联系直观表示。为了更好地预测用户的下一次点击,我们计划制定一项策略,将会话的长期偏好和当前兴趣结合在一起,并使用这种组合的嵌入作为会话嵌入。
通过将所有的会话图送入G-GNN中能够得到所有节点的嵌入向量。接下来,为了将每个会话表示为嵌入向量s∈Rd,首先考虑局部嵌入向量s1,对于会话s=[vs,1,vs,2,…vs,n],局部嵌入向量可以简单定义为会话中最后点击(last)的物品vs,n,对于具体的session也可以简单表示为vn,即sl=vn。
然后,论文结合所有节点嵌入向量来计算会话图的全局嵌入向量sg,鉴于不同节点信息可能存在不同的优先级,为了使全局嵌入向量有更好的表现,论文引入了soft-attention机制。
| q∈Rd*1, W1∈Rd*d, W2∈Rd*d,α∈R1*1 v∈Rd*1,s∈Rd*1 |
均是可训练的,随训练迭代,控制着每个节点嵌入向量的权重αi,最后对于每个节点对应的词嵌入向量进行加权求和得到最后的全局词嵌入向量。
最后将会话的局部嵌入向量和全局嵌入向量相结合即可得到融合的嵌入向量。其中矩阵W3∈Rd×2d将两个组合的em层理矢量压缩到潜在空间Rd中。
3.5推荐决策和模型训练
进行建议和模型训练在获得每个会话的嵌入之后,我们通过将每个候选项目vi∈V的嵌入vi乘以会话表示sh来计算每个候选项vi∈V的分数z?i,可以将其定义为:
,sh∈Rd*1,v∈Rd*1, zi?∈R1*1
然后,我们应用softmax函数来获取模型y?的输出向量:其中z?∈Rm表示所有候选项目的推荐分数,y?∈Rm表示节点s似乎是会话s中的下一次单击的概率。
对于每个会话图,损失函数定义为预测与基本事实的交叉熵。可以这样写:
,其中y表示地面真项的一热编码矢量。
最后,我们使用时间反向传播(BPTT)算法训练提出的SR-GNN模型。
请注意,在基于会话的推荐方案中,大多数会话的长度相对较短。因此,建议选择相对较少的训练步骤以防止过度拟合。
4.1
4. 实验和分析
在本节中,我们首先描述实验中使用的数据集,比较方法和评估指标。
然后,我们将提出的SR-GNN与其他比较方法进行比较。最后,我们对不同实验设置下的SR GNN进行了详细分析。
数据集
我们在两个现实世界的代表性数据集Yoochoose1和Diginetica2上评估了该方法。 Yoo select数据集来自RecSys Challenge 2015,其中包含6个月内用户在电子商务网站上的点击流。 Diginetica数据集来自CIKM Cup 2016,其中仅使用其交易数据。
为了公平比较,以下(Li et al.2017a; Liu et al.2018),我们过滤掉所有长度为1的会话,并且在两个数据集中出现少于5次的项。剩下的7,981,580个会话和37,483个项构成了Yoo select数据集,而204,771个会话和43097个项构成了Diginetica数据集。此外,类似于(Tan,Xu和Liu,2016年),我们通过分割输入序列来生成序列和相关标签。具体来说,我们将随后几天的时段设置为Yoochoose的测试集,并将接下来几周的时段设置为Diginetiva的测试集。例如,对于输入会话,s = [vs,1,vs,2,。 。 。 ,vs,n],我们会生成一系列序列和标签([vs,1],vs,2),([vs,1,vs,2],vs,3)、。 。 。 ,([vs,1,vs,2,...,vs,nn 1],vs,n),其中[vs,1,vs,2,... 。 。 ,vs,nn 1]是生成的序列,而vs,n表示下一个单击的项目,即序列的标签。跟随(李等人。
2017年;刘等。 2018),我们还使用了Yoochoose训练序列的最新分数1/64和1/4。
表1汇总了数据集的统计信息。
基线算法
为了评估所提出方法的性能,我们将其与以下代表性基线进行比较:
?POP和S-POP分别推荐训练集中和当前课程中的前N个频繁项。
?Item-KNN(Sarwar等人,2001)建议与会话中先前单击的项目相似的项目,其中相似度定义为会话向量之间的余弦相似度。
?BPR-MF(Rendle等人,2009)通过随机梯度下降优化了成对排名目标函数。
?FPMC(Rendle,Freudenthaler和Schmidt-Thieme 2010)是一种基于马尔可夫链的顺序预测方法。
?GRU4REC(Hidasi等人,2016a)使用RNN为基于会话的推荐建模用户序列。
?NARM(Li等人,2017a)采用具有注意机制的RNN来捕获用户的主要目的和继发行为。
?STAMP(Liu等人,2018年)捕获了用户对当前会话的总体兴趣和对最终点击的当前兴趣。
评价指标
P@20:表示前20个推荐项目中正确推荐的准确率。
MRR@20(Mean Reciprocal Rank):代表正确推荐的物品优先级排名倒数的平均值,只计算前20个推荐中正确推荐的排名均值。MRR度量考虑推荐排名的顺序,其中较大的MRR值表示正确的推荐位于排名列表的顶部。
参数设置
按照以前的方法(Li等人2017a; Liu等人。2018),我们为两个数据集都设置了潜在向量的维数d = 100。此外,我们在验证集上选择其他超参数,该验证集是训练集的10%随机子集。所有参数均使用高斯分布进行初始化,该分布的平均值为0,标准偏差为0.1。
微型批量Adam优化器用于优化这些参数,其中初始学习率设置为0.001,并且每3个周期将衰减0.1。此外,批量大小和L2罚分分别设置为100和10×5.
与基准方法的比较
为了证明所提出模型的整体性能,我们将其与其他基于会话的最新推荐方法进行了比较。表2中显示了P @ 20和MRR @ 20的总体性能,最佳结果以黑体字突出显示。请注意,与(Li等人2017a)中一样,由于内存不足以初始化FPMC,因此未报告Yoochoose 1/4的性能。
SR-GNN将分离的会话序列聚合为图结构数据。在此模型中,我们共同考虑了全球会议的偏好以及本地利益。根据实验,很明显,所提出的SR-GNN方法在P @ 20和MRR @ 20方面在所有三个数据集上均实现了最佳性能。这验证了所提出方法的有效性。
对于POP和S POP等传统算法,其性能相对较差。这种简单的模型仅基于重复的共同出现的项目或连续的项目进行推荐,这在基于会话的推荐方案中是有问题的。即便如此,S-POP仍然胜过其对手,例如POP,BPR-MF和FPMC,这说明了会话上下文信息的重要性。与基于Markov链的FPMC相比,Item-KNN可获得更好的结果。请注意,项目KNN仅利用项目之间的相似性,而不考虑顺序信息。这表明传统的基于MC的方法主要依靠连续项独立性的假设是不现实的。
基于神经网络的方法(例如NARM和STAMP)优于常规方法,证明了在这种方法中采用深度学习的力量。短期/长期记忆模型(例如GRU4REC和NARM)使用循环单位来捕获用户的总体兴趣,而STAMP通过利用最后点击的项目来改善短期记忆。这些方法明确地模拟了用户的整体行为偏好,并考虑了用户之前的操作和下次点击之间的转换,从而获得了优于传统方法的效果。但是,它们的性能仍然不如所提出的方法。与NARM和STAMP等最新方法相比,SR-GNN进一步考虑了会话中各个项目之间的转换,从而将每个会话模型化为图表,从而可以捕获用户之间更多的复杂和隐式连接点击。而在NARM和GRU4REC中,它们显式地对每个用户建模,并通过分离的会话序列获得用户表示,并且可能忽略项目之间的交互关系。因此,提出的模型对会话行为的建模更为强大。
此外,SR-GNN采用软注意力机制来生成会话表示,该会话表示可以自动选择最重要的项目转换,而忽略当前会话中的嘈杂和无效的用户操作。相反,STAMP仅使用最后单击的项目和以前的操作之间的过渡,这可能不够用。其他RNN模型,例如GRU4REC和NARM,也无法在传播过程中选择有影响的信息。他们使用以前的所有商品来获取代表用户总体兴趣的矢量。如果用户的行为毫无目的,或者在当前会话中他的兴趣迅速漂移,则传统模型将无法有效应对嘈杂的会话。
与各种连接方案的比较
所提出的SR-GNN方法可以灵活地构造图中各项目之间的连接关系。由于会话中的用户行为受到限制,因此在本节中,我们提出了另外两种连接方式,以增强每个会话图中项目之间的有限关系。
首先,我们将所有会话序列聚合在一起,并将它们建模为有向整体项目图,此后称为全局图。在全局图中,每个节点表示一个唯一的项目,每个边表示从一个项目到另一个项目的有向过渡。其次,我们将一个会话中项目之间的所有高级关系明确建模为直接连接。总之,提出了以下两种连接方案以与SR GNN进行比较:
- 具有归一化全局连接的SR-GNN(SR-GNN-NGC)用基于SR-GNN的全局图提取的边权重替换连接矩阵。
- 具有完全连接的SR-GNN(SR-GNN-FC)使用布尔权重表示所有高阶关系,并将其对应的连接矩阵附加到SR-GNN的连接矩阵。
不同连接方案的结果如图3所示。从图中可以看出,所有三种连接方案都可以达到与最新的STAMP和NARM方法更好或几乎相同的性能,从而确认了其有用性。将会话建模为图形。
- 与SR-GNN相比,SR-GNN-NGC减少了连接到节点的边缘的影响。这种融合方法特别影响当前会话的完整性,尤其是当图中边缘的权重变化时,导致性能降级。
- 类似地,据说SR-GNN-FC的性能比SR-GNN差,尽管这两种方法的实验结果没有太多差异。如此小的差异表明,在大多数推荐方案中,并非每个高阶转换都可以直接转换为直接连接,而高阶项之间的中间阶段仍然是必不可少的。
关于SR-GNN和SR-GNN-FC,前者仅对连续项之间的精确关系建模,而后者进一步明确地将所有高阶关系视为直接连接。据实验,尽管这两种方法的实验结果相差不大,但SR-GNN-FC的性能比SR-GNN差。结果的微小差异表明,在大多数推荐方案中,并非每个高阶转换都可以转换为直线连接,并且高阶项之间的中间阶段仍然是必需的。例如,考虑到用户在浏览网站时浏览了以下页面:A→B→C,由于中间没有缺少直接连接,因此不建议在A之后跳过中间B推荐页面C。
与不同会话嵌入的比较
与不同会话嵌入的比较我们将会话嵌入策略与以下三种方法进行比较:(1)仅本地嵌入(SR-GNN L),(2)具有平均池的全局嵌入(SR-GNN AVG)和(3)使用关注机制(SR-GNN-ATT)进行全局嵌入。具有四种不同嵌入策略的方法的结果如图4所示。
从图中可以看出,混合嵌入方法SR-GNN在所有三个数据集上均取得了最佳结果,这证明了将当前会话兴趣与长期偏好明确地结合在一起的重要性。此外,这些图表明,在三个数据集中平均合并时,SR-GNN-ATT的形式优于SR-GNN-AVG。它表明会话可能包含一些嘈杂的行为,无法单独处理。从侧面看,表明注意机制有助于从会话数据中提取重要行为以构建长期偏好。
请注意,SR-GNN-L是SR-GNN-AV的降级版本,其性能仍优于SR-GNN-AVG,并具有与SR-GNN-ATT几乎相同的性能,支持当前的兴趣和长期偏好对于基于会话的推荐至关重要。
会话序列长度的分析
我们进一步分析不同模型应对不同长度会话的能力。为了进行比较,我们将Yoochoose 1/64和Diginetica的会话分为两组,其中“ Short”表示会话的长度小于或等于5,而每个会话中“ Long”的项都超过5。选择枢轴值5是因为它是所有数据集中总会话平均长度的最接近整数。在Yoochoose数据上,属于短组和长组的会话百分比为0.701和0.299,在Diginetica数据上为0.764和0.236。对于每种方法,我们在表3中报告根据P @ 20评估的结果。
我们提出的SR-GNN及其变体在会话长度不同的两个数据集上稳定运行。它证明了该方法的优越性能以及图神经网络在基于会话的推荐中的适应性。相反,STAMP的性能在短期和长期小组中都有很大变化。STAMP(Liu et al。2018)根据重复的行为解释了这种差异。它采用注意机制,因此在获取用户表示时可以忽略重复的项目。与STAMP类似,在Yoochoose上,NARM在短组中表现良好,但是性能随着会话时间的增加而迅速下降,部分原因是RNN模型难以应对长序列。
然后,我们分析了具有不同会话表示形式的SR-GNN-L,SR GNN-ATT和SR-GNN的性能。与STAMP和NARM相比,这三种方法均取得了可喜的结果。可能是因为基于图神经网络的学习框架,我们的方法可以获得更准确的节点向量。
这样的节点嵌入不仅可以捕获节点的潜在特征,还可以对节点连接进行全局建模。在此基础上,SR GNN的变体之间的性能是稳定的,而两种最新方法的性能在短数据集和长数据集上都有很大的波动。此外,该表显示,尽管该变体仅使用本地会话嵌入向量,但SR-GNN-L也可以获得良好的结果。可能是因为SR-GNN-L还隐含地考虑了会话图中的一阶和高阶节点的属性。图4还证明了这种结果,其中SR-GNN-L和SR-GNN ATT都达到了接近最佳的性能。
5 结论
在难以获得用户的喜好和历史记录的情况下,基于会话的推荐是必不可少的。
本文提出了一种基于会话的推荐的新颖架构,该架构将图形模型合并到表示会话序列中。所提出的方法不仅考虑了会话序列项之间的复杂结构和过渡,而且还开发了一种将长期偏好和会话当前兴趣相结合的策略,以更好地预测用户的下一步操作。全面的实验证实,该算法可以持续优于其他最新技术。
论文源码:
https://github.com/CRIPAC-DIG/SR-GNN