SR-GNN_Session-based Recommendation with Graph Neural Networks

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 介绍

        随着Internet上信息量的快速增长,推荐系统成为帮助用户减轻信息过载问题并在许多Web应用程序(例如搜索,电子商务和媒体流站点)中选择有趣信息的基础。现有的大多数推荐系统都假定不断记录用户个人资料和过去的活动。但是,在许多服务中,用户标识可能是未知的,并且只有正在进行的会话期间的用户行为历史可用。因此,在一个会话中对受限行为进行建模并相应地生成推荐非常重要。相反,在这种情况下,依靠足够的用户项交互作用的常规建议方法在产生准确结果方面存在问题。
        由于具有很高的实用价值,因此可以观察到对此问题的研究日益增多,并且针对基于会话的推荐提出了许多建议。根据马尔可夫链,一些工作(Shani,Brafman和Heckerman 2002; Rendle,Freudenthaler和Schmidt-Thieme 2010)根据用户的前一个行为预测用户的下一个行为。假设有很强的独立性,过去组件的独立组合会限制预测精度。
        近年来,大多数研究(Hidasi等。2016年; Tan,Xu和Liu 2016; Tuan和Phuong 2017; Li等。 2017a)将递归神经网络(RNN)应用于基于会话的推荐系统并获得有希望的结果。这项工作(Hidasi等人,2016a)首先提出了递归神经网络方法,然后通过数据扩充和考虑用户行为的时间变化来增强该模型(Tan,Xu和Liu,2016)。最近,NARM(Li等,2017a)设计了一个全局和本地RNN推荐器,以同时捕获用户的顺序行为和主要目的。与NARM,STAMP类似(Liu等。2018)还通过使用简单的MLP网络和细心的网络来捕获用户的总体兴趣和兴趣。
        尽管上述方法取得了令人满意的结果并成为最新技术,但它们仍然有一些局限性。首先,在没有足够的用户行为的情况下,这些方法难以估计用户代表。通常,这些RNN方法的隐藏向量被视为用户表示,因此可以基于这些表示(例如NARM的全球推荐者)生成建议。然而,在基于会话的推荐系统中,会话大多是匿名的,并且会话众多,并且与会话点击相关的用户行为通常受到限制。因此,难以从每个会话中准确地估计每个用户的表示。其次,先前的工作表明,项目过渡的模式很重要,可以用作基于会话的推荐中的本地因素(Li等人2017a; Liu等人2018),但是这些方法始终为单向过渡建模在连续项目之间切换,而忽略上下文之间的过渡,即会话中的其他项目。因此,这些方法忽略了十个遥远项之间的复杂过渡。
        为克服上述限制,我们提出了一种新颖的方法,用于基于会话的图神经网络推荐,SR-GNN简洁,可以显示项目之间的丰富过渡,并生成项目的准确潜在向量。图神经网络(GNN)(Scarselli et al.2009; Li et al.2015)设计用于生成图的表示。最近,它被广泛用于为自然语言处理和计算机视觉应用蓬勃发展的图形结构相关性建模,例如脚本事件预测(Li,Ding和Liu 2018),情况识别(Li等人2017b)。 ,以及图片分类(Marino,Salakhutdinov和Gupta 2017)。对于基于会话的推荐,我们首先从历史会话序列中构造直接图。基于会话图,GNN能够捕获项目的过渡并相应地生成准确的项目嵌入向量,而传统的顺序方法(如基于MC和基于RNN的方法)很难揭示这些内容。基于准确的项目嵌入向量,所提出的SR-GNN构造了更可靠的会话表示,并且可以推断出下次点击的项目。
        图1说明了所建议的SR GNN方法的工作流程。首先,将所有会话序列建模为有向会话图,其中每个会话序列都可以视为子图。然后,依次对每个会话图进行处理,并可以通过门控图神经网络获得每个图所涉及的所有节点的潜在向量。之后,我们将每个会话表示为该会话中全局优先级和用户当前兴趣的组合,其中这些全局和本地会话嵌入向量都由节点的潜在向量组成。最后,对于每个会话,我们预测每个项目的概率为下一次单击。在现实世界中具有代表性的数据集上进行的大量实验证明了该方法在最新技术方面的有效性。这项工作的主要贡献概括如下:
?我们将分离的会话序列建模为图结构化数据,并使用图神经网络捕获复杂的项转换。据我们所知,它为基于会话的推荐场景中的建模提出了一种新颖的观点。
?要生成基于会话的建议,我们不依赖于用户表示,而是使用会话嵌入,仅可基于每个单个会话中涉及的潜在项目矢量来获得会话嵌入。
?在现实世界的数据集上进行的广泛实验表明,SR-GNN明显优于最新方法。
        为了使我们的结果完全可重复,所有相关源代码已在https://github.com/CRIPAC-DIG/SR-GNN上公开。
        本文的其余部分安排如下。我们在第2节中回顾了先前的相关文献。第3节介绍了使用图神经网络的基于会话的推荐方法。详细的实验结果和分析显示在第4节中。最后,在第5节中总结本文。

2 相关工作

        在本节中,我们回顾基于会话的推荐系统的一些相关工作,包括常规方法,基于马尔可夫链的顺序方法以及基于RNN的方法。然后,我们介绍图上的神经网络。
        常规推荐方法。矩阵因子化(Mnih和Salakhutdinov 2007; Koren,Bell和Volinsky 2009; Koren和Bell 2011)是推荐系统的通用方法。基本目标是将用户-项目评分矩阵简化为两个低等级矩阵,每个矩阵代表用户或项目的潜在因素。它不太适合基于会话的建议,因为用户偏好仅由某些肯定的点击提供。基于项目的邻域方法(Sar war等人,2001)是一种自然的解决方案,其中项目相似度是基于同一会话中的共现来计算的。这些方法难以考虑项目的顺序,并且仅基于最后的点击来生成预测。
        然后,提出了基于马尔可夫链的顺序方法,该方法根据用户的前一个行为预测用户的下一个行为。 Shani,Brafman和Heckerman(2002)将推荐生成视为一个顺序优化问题,并采用了马尔可夫决策过程(MDP)作为解决方案。通过对用户的个性化概率转换矩阵进行因子分解,FPMC(Rendle,Freudenthaler和Schmidt-Thieme 2010)对每两个相邻点击之间的顺序行为进行建模,并为每个序列提供更准确的预测。但是,基于马尔可夫链的模型的主要缺点是它们独立地组合了过去的组件。这样的独立性假设太强了,因此限制了预测的准确性。
        基于深度学习的方法。最近,一些预测模型,尤其是语言模型(Mikolov等2013)是基于神经网络提出的。在众多语言模型中,递归神经网络(RNN)是建模情感最成功的模型(Mikolov等,2010),并且在各种自然语言处理任务(例如机器翻译(Cho))中蓬勃发展。等人(2014),对话机器(Serban等人2016)和图片说明(Mao等人2015)。
RNN也已成功应用于众多应用中,例如顺序点击预测(Zhang等。
2014年),位置预测(Liu等人,2016年)和下一个篮子建议(Yu等人,2016年)。
        对于基于会话的推荐,(Hidasi等人2016a)的工作提出了递归神经网络方法,然后扩展到具有并行RNN的体系结构(Hidasi等人2016b),该结构可以基于点击次数和单击项的功能。之后,基于这些RNN方法提出了一些工作。 Tan,Xu和Liu(2016)通过使用适当的数据增强技术并考虑了用户行为的时间变化,提高了循环模型的性能。 Jannach和Ludewig(2017)将递归方法和基于邻域的方法结合在一起,以混合顺序模式和共现信号。 Tuan和Phuong(2017)将会话点击与诸如项目描述和项目类别之类的内容特征相结合,以通过使用3维卷积神经网络来产生建议。此外,基于列表的深度神经网络(Wu和Yan 2017)对每个会话中受限的用户行为进行建模,并使用基于列表的排名模型为每个会话生成推荐。此外,具有编码器-解码器体系结构的神经紧张的推荐机器(即NARM(Li等,2017a))在RNN上采用了注意机制,以捕获用户的顺序行为和主要目的特征。然后,提出了使用简单的MLP网络和专心网络的短期注意力优先级模型(STAMP)(Liu等人,2018),以有效地捕获用户的总体兴趣和当前兴趣。
        图上的神经网络。如今,神经网络已被用于生成图结构化数据的表示,例如社交网络和知识库。
为了扩展word2vec(Mikolov等人,2013),设计了一种无监督算法DeepWalk(Perozzi,Al-Rfou和Skiena 2014),以基于随机游走学习图节点的表示形式。继DeepWalk之后,无监督网络嵌入算法LINE(Tang等人,2015)和node2vec(Grover和Leskovec,2016)是最具代表性的方法。另一方面,经典神经网络CNN和RNN也部署在图结构数据上。 (Duvenaud等人,2015)引入了卷积神经网络,该网络直接在任意大小和形状的图形上运行。可扩展的方法(Kipf和Welling,2016年)通过频谱图卷积的局部近似来选择卷积架构,这是一种有效的变体,也可以直接在图上运行。
但是,这些方法只能在无向图上实现。以前,以循环神经网络的形式,提出了图神经网络(GNN)(Gori,Monfardini和Scarselli 2005; Scarselli等人2009)在有向图上进行操作。作为对GNN的一种修改,门控GNN(Li等人,2015年)使用门控循环单元,并采用时间反向传播(BPTT)来计算梯度。最近,GNN被广泛应用于不同的任务,例如脚本事件预测(Li,Ding和Liu 2018),情境识别(Li等人2017b)和图像分类(Marino,Salakhutdinov和Gupta 2017) 。

3 提出的模型

        在本节中,我们介绍拟议的SR-GNN,它将图神经网络应用于基于会话的推荐中。我们首先阐述问题,然后解释如何从会话中构造图,最后彻底描述SR-GNN方法。

        SR-GNN的整体框架如下图所示:

SR-GNN_Session-based Recommendation with Graph Neural Networks
图1:提出的SR-GNN方法的工作流程。我们将所有会话序列建模为会话图。然后,每个会话图都一个接一个地进行,并且可以通过门控图神经网络获得所得的节点向量。此后,每个会议都使用注意力网表示为该会议的全局偏好和当前兴趣的组合。最后,我们预测每个会话出现下一击的每个项目的可能性。
3.1符号定义
        基于会话的推荐旨在仅根据用户当前的顺序会话数据来预测用户下一步将单击哪个项目,而无需访问长期偏好配置文件。在这里,我们给出以下问题的表述。
        在基于会话的推荐系统中,设V={,,…,}是所有session中的涉及的独立物品,那么匿名的会话序列根据时间排序可以表示为s=[,,…]。其中,Vs,i表示用户在会话s中点击的物品。因此基于会话的推荐系统的目标就是预测用户的下一次点击,比如Vs,n+1。当然在基于会话的推荐系统中,对于某一会话s,系统一般给出输出概率最高的几个预测点击目标,作为推荐的候选。

3.2构造会话图(Session Graphs)    (每个会话图认为是全图的一个子图)
      (每个会话序列s可以建模为有向图Gs =(Vs,Es)。在该会话图中,每个节点都代表一个物品每一条边(,)代表在会话s中,用户在点击了物品后点击了由于某些项目可能会重复出现在序列中,因此我们为每个边缘分配了归一化的加权值,该加权值的计算方法是:边缘的出现次数除以该边缘的起始节点的向外度。我们将每个项v∈V嵌入到统一的嵌入空间中,节点向量v∈Rd表示通过图神经网络学习的项v的潜矢量,其中d是维数。基于节点向量,每个会话s可以由嵌入向量s表示,该向量由该图中使用的节点向量组成。)

        每一个会话序列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,更新函数如下所示:

    SR-GNN_Session-based Recommendation with Graph Neural NetworksSR-GNN_Session-based Recommendation with Graph Neural Networks
其中SR-GNN_Session-based Recommendation with Graph Neural Networks控制权重,SR-GNN_Session-based Recommendation with Graph Neural NetworksSR-GNN_Session-based Recommendation with Graph Neural Networks分别是复位门和更新门,SR-GNN_Session-based Recommendation with Graph Neural Networks是会话s中的节点向量的列表,σ(·)是sigmod函数,SR-GNN_Session-based Recommendation with Graph Neural Networks是逐元素乘法运算符。 SR-GNN_Session-based Recommendation with Graph Neural Networks表示节点SR-GNN_Session-based Recommendation with Graph Neural Networks的潜矢量。关系矩阵SR-GNN_Session-based Recommendation with Graph Neural Networks决定图中的节点之间如何关联,SR-GNN_Session-based Recommendation with Graph Neural NetworksSR-GNN_Session-based Recommendation with Graph Neural Networks中与节点SR-GNN_Session-based Recommendation with Graph Neural Networks相关的两列(因为会话图是有向图,因此这的两列分别对应的是当前节点到其他节点和其他节点到当前节点对应的关系系数)。

定义为两个邻接矩阵SR-GNN_Session-based Recommendation with Graph Neural NetworksSR-GNN_Session-based Recommendation with Graph Neural Networks的拼接,分别表示传入边和传出边的连接权重。具体例子如下图所示:

SR-GNN_Session-based Recommendation with Graph Neural NetworksSR-GNN_Session-based Recommendation with Graph Neural Networks
图2:会话图和连接矩阵的示例
SR-GNN能够根据不同的会话数据构建相应的会话图,例如当节点存在描述和分类信息等内容特征时,该方法可以进一步推广,
具体来说,可以将数据特征与节点向量相对应起来处理这些信息。
        对于每个会话图Gs,门控图神经网络(Gated GNN)同时对所有的节点进行处理。其中(1)式是用于在关系矩阵As的监督下进行不同节点间的信息传播,具体而言就是对于每个节点提取其相邻节点的关系生成隐向量输入后续的GNN中。然后重置门和更新门分别决定哪些信息需要丢弃和保留。之后,用(4)式中的目前状态,之前的状态和重置门计算候选状态。最后根据(5)式用候选状态,前一状态和更新门计算表出最后的状态。重复上述过程直至收敛,即可得到最后的各个节点的向量。
3.4生成会话嵌入向量

        之前基于会话的推荐方法一般假设对于每个会话的用户都有明确的潜在表示。而SR-GNN恰恰相反,其不对生成的词嵌入向量做任何假设。SR-GNN方法中的会话直接通过各个节点之间的联系直观表示。为了更好地预测用户的下一次点击,我们计划制定一项策略,将会话的长期偏好和当前兴趣结合在一起,并使用这种组合的嵌入作为会话嵌入。

通过将所有的会话图送入G-GNN中能够得到所有节点的嵌入向量。接下来,为了将每个会话表示为嵌入向量,首先考虑局部嵌入向量s1,对于会话s=[,,…],局部嵌入向量可以简单定义为会话中最后点击(last)的物品,对于具体的session也可以简单表示为,即

然后,论文结合所有节点嵌入向量来计算会话图的全局嵌入向量,鉴于不同节点信息可能存在不同的优先级,为了使全局嵌入向量有更好的表现,论文引入了soft-attention机制。

SR-GNN_Session-based Recommendation with Graph Neural Networks
qRd*1, W1Rd*d, W2Rd*d∈R1*1
vRd*1,sRd*1

均是可训练的,随训练迭代,控制着每个节点嵌入向量的权重,最后对于每个节点对应的词嵌入向量进行加权求和得到最后的全局词嵌入向量。

最后将会话的局部嵌入向量和全局嵌入向量相结合即可得到融合的嵌入向量SR-GNN_Session-based Recommendation with Graph Neural Networks。其中矩阵W3∈Rd×2d将两个组合的em层理矢量压缩到潜在空间Rd中。

3.5推荐决策和模型训练

       进行建议和模型训练在获得每个会话的嵌入之后,我们通过将每个候选项目vi∈V的嵌入vi乘以会话表示sh来计算每个候选项vi∈V的分数z?i,可以将其定义为:
SR-GNN_Session-based Recommendation with Graph Neural Networks,sh∈Rd*1,v∈Rd*1zi?∈R1*1
然后,我们应用softmax函数来获取模型y?的输出向量:SR-GNN_Session-based Recommendation with Graph Neural Networks其中z?∈Rm表示所有候选项目的推荐分数,y?∈Rm表示节点s似乎是会话s中的下一次单击的概率。

对于每个会话图,损失函数定义为预测与基本事实的交叉熵。可以这样写:
SR-GNN_Session-based Recommendation with Graph Neural Networks,其中y表示地面真项的一热编码矢量。
        最后,我们使用时间反向传播(BPTT)算法训练提出的SR-GNN模型。

        请注意,在基于会话的推荐方案中,大多数会话的长度相对较短。因此,建议选择相对较少的训练步骤以防止过度拟合。

4.1 
SR-GNN_Session-based Recommendation with Graph Neural Networks

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.

SR-GNN_Session-based Recommendation with Graph Neural Networks

与基准方法的比较
        为了证明所提出模型的整体性能,我们将其与其他基于会话的最新推荐方法进行了比较。表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_Session-based Recommendation with Graph Neural Networks
  • 具有完全连接的SR-GNN(SR-GNN-FC)使用布尔权重表示所有高阶关系,并将其对应的连接矩阵附加到SR-GNN的连接矩阵。
SR-GNN_Session-based Recommendation with Graph Neural Networks

不同连接方案的结果如图3所示。从图中可以看出,所有三种连接方案都可以达到与最新的STAMP和NARM方法更好或几乎相同的性能,从而确认了其有用性。将会话建模为图形。

  • 与SR-GNN相比,SR-GNN-NGC减少了连接到节点的边缘的影响。这种融合方法特别影响当前会话的完整性,尤其是当图中边缘的权重变化时,导致性能降级。
  • 类似地,据说SR-GNN-FC的性能比SR-GNN差,尽管这两种方法的实验结果没有太多差异。如此小的差异表明,在大多数推荐方案中,并非每个高阶转换都可以直接转换为直接连接,而高阶项之间的中间阶段仍然是必不可少的。

SR-GNN_Session-based Recommendation with Graph Neural Networks

关于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都达到了接近最佳的性能。

SR-GNN_Session-based Recommendation with Graph Neural Networks

5 结论

在难以获得用户的喜好和历史记录的情况下,基于会话的推荐是必不可少的。
本文提出了一种基于会话的推荐的新颖架构,该架构将图形模型合并到表示会话序列中。所提出的方法不仅考虑了会话序列项之间的复杂结构和过渡,而且还开发了一种将长期偏好和会话当前兴趣相结合的策略,以更好地预测用户的下一步操作。全面的实验证实,该算法可以持续优于其他最新技术。

论文源码:
https://github.com/CRIPAC-DIG/SR-GNN



SR-GNN_Session-based Recommendation with Graph Neural Networks

上一篇:【重学前端】JS基础-原型和原型链


下一篇:Ubuntu 上 Node.js 安装和卸载