pdf:Session-based Recommendation with Graph Neural Networks(SR-GNN)
参考博客:https://sxkdz.github.io/research/SR-GNN/
摘要
基于会话的推荐问题旨在预测基于匿名会话的用户操作。先前的方法将会话建模为序列,并估计项目表示以外的用户表示,以提出建议。尽管取得了可喜的结果,但它们不足以在会话中获得准确的用户向量,而忽略了项目的复杂转换。为了获得准确的项目嵌入并考虑到项目的复杂过渡,我们提出了一种新颖的方法,即基于会话的Graph Neural Networks,SR-GNN的推荐。在提出的方法中,会话序列被建模为图结构数据。基于会话图,GNN可以捕获项目的复杂转换,这是以前的常规顺序方法难以揭示的。然后,使用注意力网络将每个会话表示为该会话的全局偏好和当前兴趣的组成。在两个真实数据集上进行的大量实验表明,SR-GNN明显优于基于会话的最新推荐方法。
RNN不足:
- 不能够得到用户的精确表示
- 忽略了条目之间的转移关系
1 介绍
2 相关工作
3 提出的模型
SR-GNN的整体框架如下图所示:
3.1符号定义
3.2构造会话图(Session Graphs) (每个会话图认为是全图的一个子图)
每一个会话序列s都可以被建模为一个有向图Gs=(Vs,Es)。在该会话图中,每个节点都代表一个物品每一条边(,)代表在会话s中,用户在点击了物品后点击了。因为许多item可能会在会话序列中多次出现,因此论文给每一条边赋予了标准化后的加权值,权重的计算方法为边的出现次数除以边起点的出度。论文将每个item通过GNN都映射到一个统一的词嵌入空间中,且节点对应的词嵌入向量v表示通过图神经网络学到的词嵌入向量。基于每个节点的词嵌入向量的表示形式,每个会话s就可以嵌入向量表示:各个节点的词嵌入向量按时间顺序拼接而成。
3.3在会话图上的学习物品嵌入向量(Learning Item Embeddings on Session Graphs)
然后,我们提出如何通过图神经网络获得节点的潜在向量。香草图神经网络由Scarselli等人提出。 (2009年),扩展了神经网络方法来处理图结构数据。 Li等。 (2015)进一步介绍了门控循环单元和提出门控GNN。GNN非常适合基于会话的推荐,因为它可以自动考虑富节点连接而提取会话图的特征。我们首先演示会话图中节点向量的学习过程。形式上,对于图Gs的节点vs,i,更新函数如下所示:
定义为两个邻接矩阵和的拼接,分别表示传入边和传出边的连接权重。具体例子如下图所示:
具体来说,可以将数据特征与节点向量相对应起来处理这些信息。
3.4生成会话嵌入向量
之前基于会话的推荐方法一般假设对于每个会话的用户都有明确的潜在表示。而SR-GNN恰恰相反,其不对生成的词嵌入向量做任何假设。SR-GNN方法中的会话直接通过各个节点之间的联系直观表示。为了更好地预测用户的下一次点击,我们计划制定一项策略,将会话的长期偏好和当前兴趣结合在一起,并使用这种组合的嵌入作为会话嵌入。
通过将所有的会话图送入G-GNN中能够得到所有节点的嵌入向量。接下来,为了将每个会话表示为嵌入向量,首先考虑局部嵌入向量s1,对于会话s=[,,…],局部嵌入向量可以简单定义为会话中最后点击(last)的物品,对于具体的session也可以简单表示为,即。
然后,论文结合所有节点嵌入向量来计算会话图的全局嵌入向量,鉴于不同节点信息可能存在不同的优先级,为了使全局嵌入向量有更好的表现,论文引入了soft-attention机制。
|
q∈Rd*1, W1∈Rd*d, W2∈Rd*d,α∈R1*1 v∈Rd*1,s∈Rd*1 |
均是可训练的,随训练迭代,控制着每个节点嵌入向量的权重,最后对于每个节点对应的词嵌入向量进行加权求和得到最后的全局词嵌入向量。
最后将会话的局部嵌入向量和全局嵌入向量相结合即可得到融合的嵌入向量。其中矩阵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. 实验和分析
基线算法
评价指标
P@20:表示前20个推荐项目中正确推荐的准确率。
MRR@20(Mean Reciprocal Rank):代表正确推荐的物品优先级排名倒数的平均值,只计算前20个推荐中正确推荐的排名均值。MRR度量考虑推荐排名的顺序,其中较大的MRR值表示正确的推荐位于排名列表的顶部。
参数设置
按照以前的方法(Li等人2017a; Liu等人。2018),我们为两个数据集都设置了潜在向量的维数d = 100。此外,我们在验证集上选择其他超参数,该验证集是训练集的10%随机子集。所有参数均使用高斯分布进行初始化,该分布的平均值为0,标准偏差为0.1。
与基准方法的比较
与各种连接方案的比较
所提出的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-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 结论
SR-GNN_Session-based Recommendation with Graph Neural Networks