1. 引言
随着互联网技术的普及,推荐系统在各领域的应用日益重要[1]。基于会话的推荐系统作为新兴范式之一,在近年来受到广泛关注。与传统推荐系统不同,基于会话的推荐方法旨在捕获用户短期和动态偏好,以提供更实时和精准的推荐服务,这一方法已广泛应用于个性化推荐中[2]。
早期的基于会话的推荐方法主要侧重于发现项到项之间的关系,如基于马尔可夫链的方法[3]和基于KNN的方法[4]等。然而,这些方法在捕捉当前会话中复杂依赖性方面存在局限,效果有限。近年来,深度学习技术在推荐系统中崭露头角。研究者们提出了基于循环神经网络的会话推荐方法,将历史信息引入会话推荐中。此外,结合卷积神经网络和图神经网络等方法,也丰富了对会话内部复杂交互的捕捉。最近,Transfomer [5]架构的出现弥补了长序列会话处理方面的不足,进一步提升了推荐效果。
尽管这些方法效果显著,但几乎所有基于深度学习的会话推荐方法都将历史交互建模为序列,利用神经网络进行特征提取和用户偏好预测[2]。这种处理方式严重依赖于交互顺序,限制了在交互顺序不明确场景中的适用性。因此,我们从集合扩展角度出发提出了一种不依赖项目交互顺序的推荐模型。
考虑到要实现数据的无序性,模型选择将可观测的历史交互视为集合,并采用基于深度学习的集合学习方法构建了会话推荐模型。本文提出了一种通用的集合学习模型,将可观测历史交互作为集合实现会话推荐。本文的主要贡献如下:
运用集合扩展的方法实现会话的下一项推荐。通过将会话视为集合输入,对集合数据之间的耦合关系以及整体共现特征的捕捉,在不考虑交互顺序的前提下,实现了对集合的补充元素进行预测。
通过自回归的方式实现了在会话层次的多阶段交互预测。模型先对会话的已知元素进行逐次掩码,再通过集合扩展的方式依次预测还原。
本文模型与其他先进的方法进行比较,通过多个评价指标来证明集合扩展方法在会话推荐中的有效性。
2. 相关研究
2.1. 会话推荐
会话推荐作为个性化推荐的重要技术之一,旨在根据用户在会话中的隐式反馈进行相应的推荐预测,以提升用户体验并满足其个性化需求。传统的基于会话推荐方法通常对交互的时间或顺序信息不太敏感,其中包括使用广泛的K近邻方法[3]和马尔可夫链方法[4]。这些方法的核心思想是利用用户的历史行为数据来预测可能引起兴趣的交互项目。然而,这些方法较为依赖用户–物品矩阵中的用户评分,若缺失对应评分或无法有效建模序列中的上下文信息,则无法有效完成推荐任务,因此在实际应用中未必适用[6]。
随着神经网络研究的不断进展,越来越多的神经网络模型被应用于会话推荐。在这些深度学习方法中,交互顺序被认为是非常重要的。B Hidasi等人首先提出了基于多层门控递归单元循环神经网络模型的会话推荐[7] (GRU4Rec),有效捕捉了GRU网络对时序数据的依赖关系,将历史信息应用到了会话推荐中,为后续研究提供了方向。然而,基于RNN网络的方法对长会话的学习能力较弱。近年来,图神经网络(GNN)通过考虑项目的转换改变了会话推荐领域。S Wu等人提出了将会话信息映射为图结构[8] (SR-GNN),并通过GNN获取物品之间的转移信息。Liu等人提出的基于注意力的短期记忆优先推荐模型(STAMP)通过结合通用兴趣与当前兴趣联合进行推荐[9]。尽管这些方法通过深度神经网络对复杂的会话内依赖关系建模,但它们对会话交互的顺序有严格的要求,目前对于不依赖交互顺序的会话推荐研究仍处于相对初级阶段[2]。本文的研究在上述方法的基础上,采用了适用于集合数据的逼近器–聚合器架构实现了在不依赖交互顺序的情况下完成会话推荐任务。
2.2. 集合学习
在本文的研究中,会话的可观测历史交互被视为集合,并通过集合学习的方式来聚合学习特征信息和用户偏好。我们将会话推荐看成为对当前集合的元素扩充来处理。集合学习是一种旨在通过输入集合的特征来预测输出集合的属性或标签的方法[10]。与传统的回归学习方法相比,集合学习面临着集合不定长和无序等性质的挑战,如何较好地捕捉集合中元素之间的依赖或交互关系一直是研究的难点。集合所拥有的这种无序性也正好契合了对会话推荐中对交互顺序依赖性的研究,因此合适的集合学习方法对会话交互的特征提取有着重要的作用。
目前阶段研究者们对集合学习的研究主要集中在探索神经网络在集合上的适用性。例如,Qi等人提出的PointNet [11]以及Zaheer等人提出的DeepSets [12]均通过不同的池化方式最先实现了将集合的向量转换为新的表示形式,这些方法都更注重对集合函数(或等效的排列不变函数)进行建模。其中PointNet最早引入了无序集(Unordered set)的概念首先并使用最大池化来聚合向量之间的信息[11],而DeepSets采用了将向量的表示相加方法来聚合信息,且该方法被视为了Janossy池化范式最有效的实例[12] [13]。K Skianis等人则在此基础上提出了RepSet [14],采用一个新的结构学习集合的表示,解决了网络流问题中计算输入集和一些隐藏集之间的对应关系的问题。此外,近些年Li等人提出的Set Transformer [15]使用了Transfomer架构来对输入集元素之间的交互进行建模的神经网络,将注意力机制用于集合学习的研究上,这为我们的研究带来了较大启发。本文对集合学习的使用在于通过合适的集合学习方法用于进行对当前集合的元素扩充。通过该种元素扩充的方式,较新颖地将会话推荐问题转化为集合学习问题来解决。
3. 模型
在本节中,首先对提出并阐述了对会话推荐中关于交互顺序的假设,然后介绍了用于验证上述假设所设计的会话推荐模型,并详细介绍了模型各层的处理细节。
3.1. 问题表述
在会话推荐中,
表示所有项目组成的总项目集。会话是由交互行为(如用户点击、浏览、收藏等行为)组成的项目序列列表,可表示为
,其中
是按时间戳排序的项目,那么会话的下一项推荐可定义为
,其中
为推荐算法。
根据以上描述,会话推荐的目标是从总项目集
中找出最有可能成为当前会话
后续发生交互的下一个项目
。以往的研究认为,推荐项目
的实现依赖于会话中按时间戳排序的项目
。然而,在实际场景中,推荐项目
对于历史项目的依赖关系未必基于其内在顺序,即项目按时间戳排序并非必要条件。例如,购物会话有时是无序的,用户可能会在不遵循明确逻辑顺序的情况下选择一系列物品[16] (例如,{手机,电脑,相机})。在这种情况下,过度关注交互的顺序可能会对推荐结果造成无效或错误的引导。为了避免顺序对推荐结果造成错误的影响,我们提出了会话推荐中的交互为无序特征数据的假设。
为验证上述假设,模型考虑将会话项目以集合形式表示,从而满足无序特征的要求。通过将会话项目表示为交互集
,会话下一项推荐则可定义为:
(1)
其中
为该会话第一项到第
项组成的项目集合,
为集合学习算法。
Figure 1. Comparison of session recommendation between sequential data and ensemble data
图1. 序列数据和集合数据的会话推荐对比
在集合数据的推荐中,一般认为同一会话内的项目存在相似的属性[11]。例如,在图1的例子中,若会话中存在已知历史项目
,说明该会话对当前用户更关注的是<
>这一特征。<
>即为上述会话的共现特征,那么推荐项目
也应依赖于会话呈现的<
>这一特征,即共现依赖[17]。相比于顺序依赖,基于共现的依赖通常呈现出微弱和模糊的特性。因此,集合扩展的目标是充分聚合输入会话项目中的共现信息,实现对会话共现依赖的捕捉。
3.2. 模型概述
在本节中,我们提出了一种通用的基于无序特征网络的会话推荐方法,称之为集合型会话推荐(DSETRec),旨在验证上文提出的假设。该模型通过集合的形式表示会话,采用一套适用于集合数据的逼近器–聚合器架构对当前集合进行扩展,将扩展得到的元素作为会话的推荐项,实现了对当前会话后续项目的预测。
如图2所示,本研究中提出的DSETRec模型主要包括输入、嵌入、集合扩展、预测和输出等部分,其中集合扩展是由神经网络构成的逼近器–聚合器结构组合而成,预测层是由线性层组成。在集合扩展部分使用了Deepsets中提出的架构设计[12],因为该架构对与模型对于预测集合类数据的需求相契合,可以同时关注到会话上下文的历史项目信息,形成一个对集合全局敏感的接受野,使模型从整个会话的角度关注到偏好的变化。
在推荐过程中,DSETRec模型通过嵌入层将会话中集合形式的上下文信息转化为低维的嵌入向量;集合学习层可采用任意可处理集合的神经网络进行处理,学习嵌入向量中不同子空间的共现信息,并将其汇聚成会话整体的共现特征;预测层根据上述共现特征输出总项目集
的预测概率
。
DSETRec模型的基本思想是在不考虑会话上下文交互顺序的前提下,通过集合扩展的方式实现对当
Figure 2. DSETRec model
图2. DSETRec模型
前会话共现特征的捕捉,然后基于该共现特征生成当前会话的“补充元素”作为项目偏好预测。值得注意的是,对于集合扩展的方法在本文中采用了神经网络和聚合函数堆叠的方式实现,即神经网络作为逼近器,聚合函数作为聚合器,逼近器和聚合器的内容可自由替换任意使用集合型数据的模型。此外,逼近器和聚合器的差异为逼近器是一种针对集合内单一元素进行变化的函数;而聚合器是将经过逼近器映射后的元素聚合并对集合整体变化的函数。
本文提出的模型在训练过程中也使用异于常规的方法。具体来说,本文设计了一种训练自回归的方式,通过逐次对已知元素的掩码操作,对项目集合进行分步扩充和预测推荐。总体而言,DSETRec注重于通过集合学习的方法来实现对会话整体表现的“共现特征”的提取并填补上最符合当前集合“共现特征”的元素。在本节后续篇幅,我们将详细介绍模型各个层的处理细节。
3.3. DSETRec模型
在本节中,首先提出并阐述了对会话推荐中关于交互顺序的假设,然后介绍了用于验证上述假设所设计的会话推荐模型,并详细介绍了模型各层的处理细节。
3.1. 输入和嵌入层
在模型的输入过程中,为了避免交互顺序对预测结果的影响,模型在处理会话上下文信息时采用了集合表示的形式。具体而言,我们将模型的输入构建为交互集合
,其中集合中的元素
对应于原始会话中的交互项目。通过使用集合表示的方式,模型的置换不变性得以确保,从而保证了嵌入层的输出结果不会受到输入序列顺序的影响[10]。
输入的交互集
通过模型嵌入层时,嵌入层接受到的上下文信息仅为离散的项目ID,这无法满足集合学习以及预测需求。为捕捉到项目与项目之间的复杂关系,模型采用了一个可学习的嵌入矩阵
,其中d为可学习的超参数维度,
为词汇表大小。嵌入矩阵
的每一行对应一个项目,通过这个矩阵将ID信息映射到低维,稠密的连续向量空间中。经过上述嵌入方式,模型得到嵌入后的交互集
,嵌入层可表示如下:
(2)
其中
表示嵌入矩阵
的第
行表示,
为项目
经过嵌入层后的
维表示元素,
则为嵌入项目
组成的嵌入向量(嵌入集)。
3.3.2. 置换不变性建模
在传统的会话推荐模型中,通常会使用循环神经网络(RNN)或图神经网络(GNN)对交互序列进行建模。然而,这些方法通常依赖于交互的时间顺序,这在某些情况下可能导致次优的推荐结果。为了克服这一局限性,本研究采用了Deep Sets模型[12]中的置换不变设计思想,将交互序列视为一个集合,并通过集合学习的方式对其进行建模。
具体而言,假设输入会话为集合
,其中每个元素
是交互序列中的一个项目。为了保证模型对置换不变性,即当输入序列的顺序发生改变时输出保持不变,Deep Sets模型对每个集合元素进行相同的映射操作,随后通过聚合函数将这些映射结果进行组合。这个过程可以表示为:
其中,映射函数
是一个通用逼近器,聚合函数
对所有元素的映射结果进行汇总的聚合器。
根据Deep Sets理论[12],只要聚合函数具有对称性(如求和、平均等),模型即可对输入的排列保持不变。这种设计使得模型能够专注于捕捉集合中的共现特征,而不依赖于项目之间的时间顺序。
3.3.3. 集合扩展
如§3.2所述,集合扩展模块专注于对会话嵌入向量
的共现信息提取,以捕获会话整体的共现特征[18]。嵌入向量
是由
维元素组成的集合,根据§3.3的模型设计,在集合学习层的过程中,模型会对集合整体进行学习,同样满足置换不变性[11] [15]。置换不变性是指若存在一个函数
,其作用于集合
上,且集合中元素的次序不会影响该函数的结果[12]。
这意味着模型中的集合学习层在对项目学习过程的顺序不会影响学习到的结果,可表示为:
(3)
其中
和
表示两组不同的排列方式,SL为集合学习算法。
上述特征保证了在输入嵌入向量
时,无论以何种顺序呈现数据,集合学习层都能够捕获相同的特征。根据[12]的研究,若函数
具有置换不变性,当且仅当该函数能够分解成
,这里
和
可表示任意函数或通用逼近器。
Figure 3. Set extension
图3. 集合扩展
集合扩展的核心在于通过对现有集合进行有效扩展,来预测集合中的缺失元素。对于会话推荐问题,这意味着通过历史交互项目集合
来预测下一个可能的交互项目
。基于Deep Sets的集合扩展策略可以通过以下方式实现,如图3所示。
首先,模型对输入集合
进行映射并聚合:考虑到每个阶段都可视为一个独立的集合,且这些集合中的元素排列顺序不应影响整体预测结果,因此在模型中引入了置换不变的思想并进行建模。令
表示各阶段的输入集合,模型需要保证对任意置换
作用于输入集合时,输出结果保持不变。具体地,置换不变性函数可以定义为:

其中,
是每个集合内元素的特征提取函数,
则是一个用于聚合多阶段结果的非线性变换。通过上述架构,模型可以有效实现对多阶段输入的置换不变建模,确保模型在面对不同顺序输入时的稳定性。
我们在处理集合元素间共现信息时,先后使用两个深度神经网络作为通用逼近器来完成集合的学习任务。为了保证这类基于集合的方法能广泛用于各类会话推荐任务中,模型采用了结构相对简单的全连接神经网络作为逼近器,实际上可以使用任意深度神经网络进行替换。在集合学习层处理过程中,输入向量
首先通用逼近器
将集合中的每个元素映射到一个新的空间,然后通过聚合操作对这些映射后的元素进行聚合,将得到的输出进一步通过第二个逼近器
进行下一步映射。
在实例过程中,本文选择的通用逼近器
为两个全连接神经网络的堆叠[18],在这些神经网络处理过程中,还通过了两次残差连接[19]来进一步加强通用逼近器对集合中元素共现特征的提取以及避免可能发生的梯度消失和梯度爆炸问题。在逼近器
之后的不同的聚合方式也会影响模型的收敛速度,在实验部分将进一步讨论了该问题。
通用逼近器
中还使用了一次聚合操作,
表示本次聚合。用下式表示通用逼近器
。
(4)
其中
表示通用逼近器
中第
个深度神经网络,
,
表示对应的参数矩阵和偏置向量,
为聚合操作。
将经过嵌入层得到的输入集合
通过通用逼近器
后可变换为
,紧接其将继续通过聚合器
,其包括聚合操作
和第二个神经网络。
(5)
其中
为聚合操作,包括如求和或平均等聚合操作。
为全连接网络组成的聚合器,
,
为其对应的参数矩阵和偏置向量。
聚合器不同于逼近器,其实现的是对经过逼近器映射后的集合整体进行变化。值得注意的是,聚合器同样需要满足“对称设计”,即避免元素输入顺序对集合的影响,因此在此处采用的聚合方式为求和或求均值,在后续实验中我们进一步讨论了不同聚合方式带来的性能影响。经过聚合器
后模型得到聚合向量
并认为其包含了会话的共现特征
,继续将其用于预测层[20]。
最后,模型通过预测头(Prediction Head)来将上述聚合的共现信息转化为概率输出。预测头本质是一个线性层,该映射操作由一个权重矩阵和一个可选的偏置项组成。当会话
中的交互项目经过集合学习层厚得到最终输出
后,可以认为
中包含了当前会话学习到的共现特征。预测头将包含共现特征的输出
映射到与总项目集
种类相同的维度并最终经过
函数输出概率。
(6)
其中
为预测头的参数矩阵和偏置向量。模型在嵌入层和预测头共享权值来减轻过度拟合并减小模型大小。
至此,模型成功将交互集
中的共现特征映射成总项目集
中的推荐概率,并输出包含所有可能交互项目的概率列表
,其中
是总项目集
中项目的预测分数。在概率列表
中,选取最高预测分数
所对应的交互项目
,即为该会话的下一项推荐项目
。
3.3.4. 多阶段的自回归预测
在DSETRec模型中,自回归预测通过逐步扩展当前的会话集合来实现。具体而言,模型首先对当前会话
进行掩码操作,生成部分可观测集
。然后,利用集合扩展方法预测集合中缺失的项目,并将其逐步加入到当前集合中。
假设
表示在第
步时的会话集合状态,则自回归预测可以表示为:
其中,
是通过集合扩展方法预测的下一个项目:
,该过程持续迭代,直到生成完整的推荐序列。
在预测阶段,对于每一阶段的输入,通过引入一个掩码操作,逐阶段隐藏部分输入,形成一个自回归链式结构。具体而言,假设当前阶段的输入集合为
,则模型通过掩码操作
生成部分观察数据:
然后使用集合扩展机制预测剩余部分的集合:
其中,
表示集合扩展的预测函数。该过程依赖前一阶段的结果,并通过以下自回归公式迭代更新:
在每一阶段,通过叠加非线性激活函数与注意力机制,使模型在捕捉长远依赖关系时具备更强的表现力。特别地,注意力机制可以通过权重矩阵
对输入进行加权求和:
经过上述步骤,这种方法不仅有效减少了多阶段预测中的信息冗余,同时提升了模型在面对长序列时的稳定性与准确性。
此外,模型在训练过程中使用的损失函数为Top1loss [7]。该损失函数会使模型在预测结果中只选择置信度最高的检测结果作为正样本,而其他检测结果则被视为负样本,并且以往的一些工作和实验中证明了这一损失函数的有效性[21]。损失函数如下:
(7)
4. 实验
在本节中,通过对比实验验证了所提出对交互顺序的假设的正确性。此外,我们还将本文提出的模型与先进的基线进行比较并分析模型所存在的优劣势,并探讨了模型超参数对性能的影响。
4.1. 数据集及数据集预处理
为了验证本文提出的假设并评估通用会话推荐模型DSETRec的有效性,本文在公开数据集Yoochoose和Diginetica进行了一系列实验。Yoochoose数据集源于从RecSys2015的数据挖掘竞赛,其包含了电子商务用户会话中的点击和购买事件。考虑到Yoochoose数据集的规模,我们参考了[9]的方法采用了Yoochoose1/64和Yoochoose1/4这两个相对小范围的子数据集作为训练数据集。此外,本文借鉴了[8]的实验方法,选择了距离测试集较近的数据进行训练,而不是对整个数据集进行训练,以获得更优的实验结果。Diginetica数据集来源于2016年CIKM杯竞赛,只使用了其交易数据。表1列出了相关数据集的主要信息。
Table 1. Experimental dataset statistics
表1. 实验数据集统计
数据集 |
YOOCHOOSE (1/64) |
YOOCHOOSE (1/4) |
DIGINETICA |
Click |
557,248 |
8,326,407 |
98,2961 |
Item |
16,766 |
29,618 |
43,097 |
Train |
369,859 |
5,917,745 |
719,470 |
Test |
55,898 |
55,898 |
600,858 |
4.2. 基线模型
为了验证本文提出的无序会话推荐模型的性能,在实验中使用下面的模型作为基线模型,在上述两个数据集中本文提出模型与基线模型进行对比。其中包括具有代表性的传统推荐方法(1~4)和较前沿的基于神经网络的推荐方法(5~7)
POP:基于训练集中最高频次的交互项,提供最简单的会话推荐。
S-POP:针对当前会话中最常出现的交互项进行推荐。
Item-KNN:推荐与会话中先前点击的项相似的项,相似性通过会话向量之间的余弦相似度来定义。
FPMC:结合矩阵分解和马尔可夫链的序列预测模型,用于下一项物品的混合推荐。
GRU4REC:在会话推荐中,通过RNN对用户序列建模,并使用并行小批量训练和排序损失函数进行学习。
STAMP:将会话的长期兴趣与短期兴趣相结合,生成会话的最终表示。
SR-GNN:利用图神经网络(GNN)对会话中的项序列进行建模,并通过注意力机制获取会话表示。
4.3. 评价指标
为了便于和Baselines中的模型进行性能比较,本文采用较为常用的精度(P)和平均倒数排名(MRR)作为评价指标。由于在实际推荐中,系统通常会同时推荐多个项目。为了评估不同数量的项目的推荐效果,本文使用P@K和MRR@K来衡量模型的性能,其中K代表推荐项目的数量。
P@K:P(Precision)分数被广泛用作会话推荐领域预测准确性的衡量标准。P@K表示在排名列表中前
位具有正确推荐项目的测试用例的比例。本文大多测试均采用P@20,定义为:
(8)
其中,N表示在会话推荐任务中的测试数据的数量,
表示在前
个排名列表中具有所需项目的数量,当预测项目出现在的排名列表
个位置时,即视为准确。
MRR@K:MRR (mean reciprocal rank, MRR)是正确推荐项目的倒数排名的平均值;当排名超过
时,倒数排名会被设置0。本文部分实验采用MRR@20,定义为:
(9)
其中
是交互项目
在总项目集
中的排名。
P和MRR度量均为范围[0, 1]的归一化分数,考虑推荐排名的顺序,其中较大的值表示正确的推荐位于排名列表的顶部,这表明相应推荐系统的性能更好。
4.4. 超参数设置
本文提出的会话推荐模型DSETRec通过网格搜索和早停的方式优化并确定超参数。最终确定的超参数如下:模型维度
,训练批处理大小
,训练过程使用小批量Adam优化器对这些参数进行优化。此外,由于数据集较为庞大迭代次数较多,训练的初始学习率
设置为
,经过迭代数轮后降至
和
。
4.5. 实验结果
4.5.1. 集合数据和序列数据性能对比
为了更充分验证本文提出的假设,本小节通过使用增加位置编码的DSETRec模型作为“有序”的代表[22]与不使用位置编码的DSETRec模型进行性能对比,在上述提到的两个常见数据集进行了对比实验,结果如表2所示:
Table 2. Comparison of unordered and ordered performance under DSETRec model
表2. DSETRec模型下无序和有序性能对比
模型 |
DSETRec (集合) |
DSETRec (序列) |
差距 |
数据集 |
指标(%) |
Yoochoose 1/64 |
P@10 |
63.26 |
50.06 |
+13.2 |
MRR@10 |
38.92 |
27.07 |
+11.85 |
P@20 |
70.70 |
58.89 |
+11.81 |
MRR@20 |
39.43 |
28.15 |
+11.28 |
Yoochoose 1/4 |
P@10 |
62.88 |
51.66 |
+11.22 |
MRR@10 |
36.84 |
27.38 |
+9.46 |
P@20 |
69.84 |
60.05 |
+9.79 |
MRR@20 |
37.33 |
28.23 |
+9.1 |
Diginetica |
P@10 |
39.88 |
38.02 |
+1.86 |
MRR@10 |
21.41 |
18.99 |
+2.42 |
P@20 |
48.87 |
44.19 |
+4.68 |
MRR@20 |
21.83 |
16.89 |
+4.94 |
由上表可以看出,在同样使用DSETRec模型的情况下,去除位置编码的无序集合模型在所有数据集表现全面高于增加位置编码的有序序列模型,即DSETRec模型更擅长处理集合类型的数据。
对于在以上数据集的会话推荐任务而言,DSETRec模型可能并不敏感于交互项目的位置信息。在实际推荐中,同一个会话中项目交互的顺序可能充满随意性和偶然性,交互顺序并不对推荐结果起到指导作用。因此,引入位置编码并不能为模型提供关键的信息,反而可能引入噪音,降低模型性能。位置编码这类“有序”的存在妨碍了对会话项目共现信息的聚合。尤其在较为容易预测的yoochoose数据集上,这类“妨碍”作用更为明显[23]。
4.5.2. 模型性能分析
为进一步展示本文所提出基于集合学习的推荐算法的性能,本小节对DSETRec模型与其他推荐算法或模型的性能进行比较。为确保比较公平,Baselines方法的数据集保留了原始的预处理方式,即过滤掉交互小于5次的项目,结果如表3所示。
Table 3. Model performance comparison
表3. 模型性能对比
模型 |
Yoochoose 1/64 |
Yoochoose 1/4 |
Diginetica |
P@20(%) |
MRR@20(%) |
P@20(%) |
MRR@20(%) |
P@20(%) |
MRR@20(%) |
POP |
6.71 |
1.65 |
1.33 |
0.30 |
0.89 |
0.20 |
S-POP |
30.44 |
18.35 |
27.08 |
17.75 |
21.06 |
13.68 |
FPMC |
45.62 |
15.01 |
– |
– |
26.53 |
6.95 |
Item-KNN |
51.60 |
21.81 |
52.31 |
21.70 |
35.75 |
11.57 |
GRU4REC |
60.64 |
22.89 |
59.53 |
22.60 |
29.45 |
8.33 |
STAMP |
68.74 |
29.67 |
70.44 |
30.00 |
45.64 |
14.32 |
SR-GNN |
70.57 |
30.94 |
71.36 |
31.89 |
50.57 |
17.59 |
DSETRec |
70.70 |
39.43 |
69.84 |
37.33 |
48.87 |
21.83 |
与其他算法或模型的比较,明显可见本文提出的DSETRec模型优于上述全部的经典推荐算法和大部分的深度学习模型,这为本文提出的推荐算法的有效性提供了有力的验证。尽管如此,与当前一些前沿模型如SR-GNN相比,DSETRec模型在Precision方面仍存在一些差距,然而在MRR指标上,我们的模型表现出色,超越了目前领域内所有模型。分析原因为模型训练方法使得在数据集上对每个项目的运用频率要高于其他模型的训练方法,这对模型捕获会话的共现特征起到了重要的作用。
总体而言,基于通用架构的DSETRec模型展现出良好的性能,初步验证了集合学习在会话推荐中的可行性。这也强调了会话整体共现特征的重要性,相较于项目间顺序特征,其对于推荐效果的贡献更为显著。
4.5.3. 长短会话性能分析
为验证模型在不同长度的会话中的普适性,本小节对DSETRec模型进行了不同长度会话性能对比实验。在实验环节,将包含所有会话的总数据集作为性能的度量标准,将包含五个或更少项目的会话定义为短会话(short),而包含超过五个项目的会话称为长会话(long)。在K = 20的情况下,运用DSETRec模型分别在总会话、长会话和短会话上进行实验,并将其全部数据集合长数据集在Precision指标的差距(gap)进行比较。模型在不同长度的会话上的表现见表4。
Table 4. The gap between different models on long and short datasets
表4. 不同模型在长短数据集上的差距
模型 |
Yoochoose 1/64 |
Diginetica |
全部数据 |
短数据 |
长数据 |
全部数据 |
短数据 |
长数据 |
NARM [24] |
68.32 |
71.44 |
60.79 |
62.58 |
51.22 |
45.75 |
STAMP |
68.74 |
70.69 |
64.73 |
45.64 |
47.26 |
40.39 |
DSETRec |
70.70 |
72.49 |
69.08 |
45.87 |
54.27 |
43.37 |
差距 |
|
|
1.79 (2.47%) |
|
|
2.5 (5.45%) |
从上表可见,DSETRec模型在长数据集上的表现比起在全体数据集上表现仅仅下降了5%左右,即对于长会话仍能保持着较好的处理效果。与其他模型[11]的比较显示,DSETRec模型显示具有着最高的稳定性,这也进一步证实了我们对于会话推荐的假设。
4.5.4. 超参数敏感性分析
本小节将分析DSETRec模型的超参数对模型性能的影响程度。为了更为直观地观察模型在不同超参数下的性能表现,在本节实验中选择了未过滤的数据集作为实验对象。通过调整模型的模型维度,批量大小,进行了相应的实验,以探讨它们对准确率(P)以及平均倒数排名(MRR)的影响。在K = 20的情况下,分析实验的结果如图4,图5所示。
对于维度而言,DSETRec模型倾向于选择更高的维度。高的维度可以使模型学习到来自不同子空间中的共现信息,对于共现特征的聚合起到了促进作用。值得注意的是,更高的维度对模型性能的提升并非成正比的,模型在256维时达到了几乎饱和的情况,可以在图5中看出,从64维到128为时,yoochoose数据集在此区间内指标提升达到最大,后续随着维度提升指标逐步稳定,在256维到512维时模型性能几乎没变化;对于diginetica数据集而言,这种饱和感更为明显,其在128维到512维时模型提升达到最大,随着维度再次提升,性能表现出了不增反降的趋势,因此对于此类电商数据集而言而言,过高的维度会带来更高的过拟合风险,而不会带来更多的性能提升。
图6,图7可见,相较于模型维度,批处理大小对于模型的影响相对较小,整体呈现出先下降后缓慢上升的变化趋势。DSETRec模型更倾向于更小的批处理大小,初步分析原因,由于模型在数据训练过程中加入了逐步的训练方式,这与批处理方式类似,一定程度上起到了重复的作用,影响了部分性能。
4.5.5. 聚合方式分析
在DSETRec模型中,一共运用了两次的聚合操作(聚合操作
以及聚合器
的聚合),常规的聚合操作包括求和,平均,取最大最小值等等,实验中不同的聚合方式会对模型带来一定的性能影响,不同聚合方式的结果如下图所示。
在图8中表现出,AVG + SUM表示前后使用了平均聚合和求和聚合,AVG++则表示两次都用了平均表示等等。可以从图中看出先使用平均聚合再使用求和聚合的方式能为模型带来最好的性能发挥。对于聚合操作
而言平均操作能使其关注到输入向量
中的细节,而对于聚合器
而言,由于处于模型的末端部分,求和操作能使其保留更多的共现信息。
Figure 4. The impact of dimensions on P indicators
图4. 维度对P指标的影响
Figure 5. The impact of dimensions on MRR indicators
图5. 维度对MRR指标的影响
Figure 6. The impact of batch size on P metrics
图6. 批处理大小对P指标的影响
Figure 7. The impact of batch size on MRR metrics
图7. 批处理大小对MRR指标的影响
Figure 8. The impact of different aggregation methods on performance
图8. 不同聚合方式性能的影响
5. 结论
本文提出了一种适用集合类型数据的基于集合扩展的会话推荐模型DSETRec,该方法通过一种自回归的训练方式依次将预测集合的补充元素作为推荐项目,有效避免了会话项目中交互顺序噪声对推荐结果的影响。在验证上述模型过程中,通过将会话用集合的形式表示并通过全连接神经网络实例化了该模型,在不依赖交互顺序的前提下对集合的共现关系捕获,完成了对会话中项目特征的学习和聚合,证明了DSETRec对集合数据的会话推荐的可行性。
实验过程中,通过对DSETRec模型是否增加位置编码等模块的对比实验证明了模型在处理集合类数据上的优势,即对于该类数据集而言不考虑项目之间的交互顺序反而比考虑顺序更有优势。DSETRec模型还与其他先进基线进行性能对比,在P和MRR两个指标上均取得了良好的成绩。除此以外,本文最后通过对聚合方式的分析,证明了合适的聚合方式对集合数据特征捕捉的影响,后续的研究可以进一步挖掘在符合特性推荐任务上的潜力,以及考虑和大模型等方式结合实现更好的发挥[25]。