《A Collaborative Session-based Recommendation Approach with Parallel Memory Modules》
传统的推荐方法通常基于显式的 user-item
偏好(如,评分),其中关于用户的信息和 item
的信息是必不可少的。例如,content-based
方法通过评估用户画像(user profile
)(即,用户历史行为记录)和 item
特征之间的相似性来生成推荐列表。然而,在许多现实场景中,用户没有登录,并且也不知道用户历史的交互:没有显式的偏好,只有 positive
的观察(如,点击)可用。在这种情况下,传统的推荐方法表现不佳。为了解决这个问题,人们已经提出了 session-based
推荐,从而仅基于匿名行为 session
来生成推荐。给定用户在当前 session
中的行为的短期历史,session-based
推荐旨在预测该用户可能感兴趣的 next item
。
session-based
推荐的早期研究主要基于 item-to-item
的推荐,并产生的预测依赖于计算 session
内item
之间相似性(如,基于共现 co-occurrence
),而忽略了当前 session
中点击序列的序列信息(sequential information
)。后续的工作研究了使用马尔科夫链来利用序列行为数据并根据用户的最近动作(last action
)来预测用户的 next action
。然而,这些工作仅建模相邻 item
之间的局部顺序行为(local sequential behavior
)。基于马尔科夫链的方法的一个主要问题是,当试图在所有 item
上包含所有潜在的、用户选择(user selection
)的序列时,状态空间很快变得难以管理。
最近的研究将深度学习(如RNN
)用于 session-based
的推荐,因此可以考虑整个session
的信息。例如:
《Session-based recommendations with recurrent neural networks》
使用 Gated Recurrent Unit: GRU
来建模 session
中的动作序列。
《Neural attentive session-based recommendation》
通过引入注意力机制来捕获用户在当前 session
中的主要意图(main purpose
),从而实现进一步的改进。
尽管这些 RNN-based
方法比传统的推荐方法有了显著的提升,但它们的短期记忆(short-term memory
)通常有限,并且难以执行记忆(memorization
)。人们已经将 memory network
引入推荐系统,其动机是拥有一个长期记忆(long-term memory
)模块的优势。
《Sequential recommendation with user memory networks》
通过首次引入 user memory network
,利用用户的历史记录,显式地捕获 item-level
和 feature-level
的序列模式(sequential pattern
),从而改进序列推荐。
《Improving sequential recommendation with knowledge-enhanced memory networks》
提出了一种知识增强(knowledge enhanced
)的序列推荐器,它将 RNN-based
网络与 Key-Value Memory Network: KV-MN
相结合。
现有的 memory network-based
的推荐方法取得了令人鼓舞的结果。但是它们仅利用了用户自己的信息,而忽略了所谓的 neighborhood session
中协同信息(collaborative information
)的潜力。 neighborhood session
是由任何用户(不一定是当前 session
的同一用户,因为这里的 session
是匿名的)生成的 session
,它们显示出与当前 session
相似的行为模式(similar behavior pattern
),并反映出与当前 session
相似的用户意图(similar user intent
)。例如,考虑 session
session
session
的用户都点击了某些手机,因此可以推测他们具有类似的兴趣,可以进行比较。这两个用户可能有相似的意图来寻找合适的手机,因此,生成第二个session
的用户可能对 《A Collaborative Session-based Recommendation Approach with Parallel Memory Modules》
假设 neighborhood session
可能有助于改善当前 session
中的推荐。
论文 《A Collaborative Session-based Recommendation Approach with Parallel Memory Modules》
提出了一种新颖的神经网络框架,即 Session-based Recommendation Machine: CSRM
,用于 session-based
推荐。该框架由两个并行模块组成:一个 Inner Memory Encoder: IME
模块、一个 Outer Memory Encoder: OME
模块。
IME
在 RNN
固有的 dynamic memory
的帮助下对当前 session
中包含的信息进行建模。它学习一个统一的 representation
来结合两种编码方案:一个全局编码器(global encoder
)和一个局部编码器(local encoder
)。
IME
其实就是《Neural attentive session-based recommendation》
提出的NARM
。
OME
利用协同过滤技术通过利用一个 external memory
模块来研究(investigate
) neighborhood session
从而更好地预测当前session
的意图。OME
包含一个关联的寻址机制(associative addressing mechanism
)来自动识别 neighborhood session
。
最后,CSRM
引入了一种融合门控机制(fusion gating mechanism
)来组合 IME
和 OME
产生的 representation
,并根据 fused representation
来计算每个候选 item
的推荐分。
论文对三个 benchmark
数据集进行了广泛的实验。结果表明,CSRM
在所有三个数据集上的Recall
和 MRR
均优于 SOTA
的 session-based
的推荐 baseline
。论文进行了进一步的实验以深入分析 IME
和 OME
,从而探索 CSRM
的推荐过程,并确定协同邻域信息(collaborative neighborhood information
)和融合门控机制如何影响 session-based
推荐的性能。
论文的贡献如下:
据作者所知,论文是第一个考虑在 session-based
推荐中用端到端的神经网络模型进行协同建模(collaborative modeling
)的。
论文提出了一种新颖的 CSRM
模型,该模型集成了 IME
和 OME
,从而将来自current session
和 neighborhood session
的信息纳入 session-based
的推荐。
论文引入了一种融合门控机制,以选择性地结合 current session
和 neighborhood session
的信息从而获得更好的推荐。
论文对三个 benchmark
数据集进行了广泛的实验。在 session-based
的推荐任务上,CSRM
在 Recall
和 MRR
方面显著优于 SOTA
模型。
相关工作:
协同过滤( collaborative filtering
):协同过滤是一种广泛使用的推荐方法。它通过建模 user-item
交互来识别用户偏好,并基于 “具有相似偏好的人倾向于作出相似选择” 的假设来向用户推荐 item
。先前关于协同过滤的工作可以分为两类:KNN-based
方法、model-based
方法。
KNN-based
方法使用预定义的相似性函数来查找相似的用户或 item
,从而促进(promote
)推荐。它们可以进一步分为 user-based KNN
和 item-based KNN
。
user-based KNN
计算用户之间的相似性,并推荐相似用户可能喜欢的 item
。
《An automatic weighting scheme for collaborative filtering》
提出了一种算法,用于在识别两个用户之间的相似性时学习不同 item
的权重。
《A new user similarity model to improve the accuracy of collaborative filtering》
提出了一种启发式相似性度量方法来改进协同过滤,该方法结合了用户评分的上下文信息以及用户行为的偏好。
item-based KNN
计算 item
之间的相似性,并使用这些相似性来预测 user-item pair
对的评分。
《Item-based collaborative filtering recommendation algorithms》
提出使用 correlation-based
和 cosine-based
技术来计算 item
之间的相似性。
《Item-based top-n recommendation algorithms》
将 item-to-item
相似性扩展到用户的所有消费(consumed
)的 item
与候选 item
之间的相似性概念从而用于 top-N
推荐。
给定 user-item
评分矩阵,model-based
方法将用户和 item
映射到共享的潜在因子空间( shared latent factor space
)中从而表征用户和 item
,并通过用户和 item
的潜在因子(latent factor
)之间的内积来生成预测。这些方法的例子包括矩阵分解(matrix factorization
)、奇异值分解(Singular Value Decomposition: SVD
)、SVD++
。《Collaborative denoising auto-encoders for top-n recommender systems》
通过将一个 user-specific bias
集成到自编码器中来推广协同过滤模型。《Neural collaborative filtering》
通过使用深度学习而不是内积来建模 user-item
交互。
尽管这些方法通过探索协同过滤取得了可喜的成果,但是它们都有局限性。
一方面,KNN-based
方法无法识别序列信号(sequential signal
)。
另一方面,当用户画像(即,用户历史行为序列)不可用时,model-based
方法不能用于 session-based
推荐。
最近,《When recurrent neural networks meet the neighborhood for session-based recommendation》
结合了一个 GRU
模型和 co-occurrence-based KNN
模型来探索 session-based
推荐中的协同信息。他们的方法与我们的工作之间的差异至少有两个方面。
首先,我们的模型是一个端到端的 memory network
,而他们使用简单的加权方案将 GRU
模型和 KNN
模型的分数以手工制作的超参数结合起来。
其次,我们的模型中用于查找k
近邻 k-nearest neighbor
的相似性是自动学习到的,而他们使用一个启发式的、co-occurrence-based
相似性度量。
记忆增强的神经网络( memory augmented neural network
):Memory Augmented Neural Network: MANN
通常由两个组件组成:一个存储长期历史信息的 memory
、一个在 memory
上执行 read/write
操作的控制器(controller
)。
最近,用于推荐系统的 memory network
因其 SOTA
的性能而受到了相当大的关注。
《Sequential recommendation with user memory networks》
首个提出将矩阵分解与 MANN
集成从而进行序列推荐(sequential recommendation
)。他们提出了具有两种变体的 Recommendation with User Memory network: RUM
:item-level RUM
和 feature-level RUM
。
item-level RUM
将每个 item
视为一个单元(unit
),并将 item embedding
直接存储在 memory matrix
中。
feature-level RUM
将用户在不同潜在特征上的偏好的 embedding
存储在 memory matrix
中。
《Improving sequential recommendation with knowledge-enhanced memory networks》
提出了一种知识增强(knowledge enhanced
)的序列推荐器,它结合了知识库(knowledge base
)信息来捕获attribute-level
的用户偏好。
《Mention recommendation for multimodal microblog with cross-attention memory network》
将 MANN
与交叉注意力机制( cross-attention mechanism
)相结合,为多模态推文(tweet
)执行 mention
推荐任务,其中他们使用 MANN
来存储图片和推文的历史兴趣。
尽管这些方法都取得了可喜的成果,但他们都忽略了协同的邻域信息。
与我们最相似的工作涉及协同记忆网络 Collaborative Memory Network: CMN
(《Collaborative memory network for recommendation systems》
)。它统一了两类协同过滤模型:矩阵分解、neighborhood-based
方法。CMN
利用三种 memory state
来建模 user-item
交互,包括:一个内部的 user-specific memory state
、一个内部的 item-specific memory state
、以及一个 collective neighborhood state
。我们的工作与 CMN
之间的差异至少有三点:
首先,CMN
不能直接应用于 session-based
的推荐,因为没有可用的用户信息。尽管我们可以对 CMN
进行一些改变,但我们发现它对 session-based
推荐没有效果。
其次,CMN
通过寻找相似的 user-item
交互模式(interaction pattern
)找执行协同过滤。相比之下,我们的模型通过探索 neighborhood session
来利用协同信息。
第三,CMN
简单地结合协同特征(collaborative feature
)和 user-item
潜在特征来预测评分。相反,我们引入了一种融合门控机制来学习选择性地组合(selectively combine
)不同的特征源。
令 item
的集合。令 session
,其中每个 session
期间所交互的 item
,如听一首歌、看一个视频。给定一个 session
session-based
推荐系统的任务是预测用户可能交互的next item
。正式地,给定当前 session
item
top-N item
(
我们提出了一个 Collaborative Session-based Recommendation Machine: CSRM
框架来生成 session-based
的推荐。CSRM
背后的关键思想是:利用来自 neighborhood session
的信息来提高 current session
的推荐性能。neighborhood session
是展示与 current session
相似的行为模式的 session
。
具体而言,我们将最近 session
存储在一个 outer memory
中作为潜在的 neighborhood session
。给定当前 session
,CSRM
会自动从 outer memory
中查找 neighborhood session
并抽取有用的特征来提升针对当前 session
的推荐。
如下图所示,CSRM
由三个主要组件组成:一个 Inner Memory Encoder: IME
、一个 Outer Memory Encoder: OME
、一个推荐解码器(recommendation decoder
)。融合门控机制(fusion gating mechanism
)用于控制 IME
和 OME
组件之间的信息流。
首先,IME
将 input session
转换为两个高维的 hidden representation
:一个用于 summarize
整个 session
,另一个用于在当前 session
中选择相对重要的 item
(因为当前 session
中可能包含意外或出于好奇而点击的 item
)。这两个 session
被拼接成一个统一的 session representation
。
其次,OME
在 outer memory network
的帮助下将当前 session
的collaborative neighborhood information
编码为 collaborative session representation
。这个过程可以被看作是一种 session-based
的最近邻方法,它对与当前 session
具有相似行为模式的特定session
子集赋予更高的权重。
最后,IME
和 OME
的输出作为推荐解码器的输入,其中使用融合门控机制来选择性地组合来自 IME
和 OME
的信息从而进行推荐。输出是基于双线性解码方案(bi-linear decoding scheme
)的、每个候选 item
的推荐分。
接下来我们详细介绍每个部分。
IME
尝试对当前 session
中包含的有用信息进行编码。遵从《Neural attentive session-based recommendation》
的做法,它由两个组件组成:全局编码器(global encoder
)和局部编码器(local encoder
)。
全局编码器用于建模整个 session
中的序列行为。
局部编码器用于关注特定的行为,这体现在当前 session
中相对重要的 item
。
我们使用 GRU
作为全局编码器,因为已经有论文表明: GRU
在 session-based
的推荐方面表现出比 LSTM
更好的性能。 GRU
的 activation
是 previous hidden state
hidden state
其中:update gate
) 。
更新门 item embedding
,sigmoid
激活函数。
候选的hidden state
reset gate
),tanh
激活函数。
复位门
最后,我们使用 final hidden state
session
的序列行为的 representation
:
注意,所有的
gate
通常都使用sigmoid
激活函数,因为gate
的输出必须在0
到1
之间。
尽管全局编码器考虑了整个序列所反映的行为,但是由于噪音(noise
)的 item
,很难准确地捕获当前 session
的行为模式。为此,我们使用另一个具有 item-level
注意力机制的 GRU
作为局部编码器。在全局编码器之后,当前 session
inner memory matrix
inner memory network
)。局部编码器仅依赖 session
自己的信息从 inner memory network
动态读取。注意力机制通过强调某些特定行为而忽略其它行为来密切关注当前 session
的意图。我们为相对更重要的 item
分配更高的权重。
对于当前 session
item
对 session
意图的贡献。具体而言,权重因子 final hidden state
向量 item
的representation
其中:sigmoid
激活函数,
这里也可以使用其他的非线性激活函数,如
relu
。
然后我们可以通过自适应地关注更重要的 item
(即,对部分 item
分配更高的权重)来捕获当前 session
中的 session
意图:
总之,当前 session
可以通过从 inner memory network
representation
session representation
:
其中
也可以考虑其它融合方式,如最大池化、均值池化、门控融合机制等等。
IME
中的全局编码器和局部编码器仅利用当前 session
中包含的信息,而忽略了neighborhood session
中协同信息的重要性。为解决这个问题,我们提出了一个 Outer Memory Encoder: OME
。outer memory matrix
session
的 representation
(它也被称作 outer memory network
) 。OME
从 session
具有更多相似行为模式的 previous neighborhood session
。这些 neighborhood session
用作辅助信息,从而帮助了解当前session
。OME
使用以下 read/write
操作来访问
read
操作:直观而言,读取 session-based
最近邻方法,它可以选择性地对检索到的、与当前 session
相关的neighborhood
进行加权。
给定当前 session
session
最相似的 previous session
。具体而言,我们计算当前 session
的 memory
矩阵 previous session
的每个
其中
为什么不使用
或者 而仅使用 ?论文并未给出任何解释。个人猜测是因为 抑制了一些噪音从而效果更好。
根据 session
的 subsample
session
的
然后,我们通过 softmax
函数对 k largest
相似度值进行处理,得到 reading
权重:
其中
这些 reading
权重还反映了每个neighbor
对当前 session
的独特影响(unique impact
),这允许模型对neighborhood
中更相似的 session
分配更高的权重。
最后,我们根据neighborhood session
对当前 session
的影响,通过访问 neighborhood memory network
中其它 session
的 representation
,从而得到 OME
模块的输出,即
write
操作:在我们实验的每个 epoch
开始时,outer memory matrix
是空的。我们采用 first-in-first-out: FIFO
机制来更新 outer memory matrix
,因此该矩阵总是存储最近的 session
。写入 outer memory
的时候,最早的 session
从 memory
中移除,新的 session
被添加到 memory
中。
注意,当 outer memory matrix
未填满时,我们直接添加 session
而不删除任何现有的 session
。
存储的
session
的是什么?论文并没有解释。个人猜测 就是 session
的,因为计算相似度时使用了当前 session
的。
推荐解码器根据 IME
和 OME
的输出来评估点击 next item
的概率。
为了选择性地组合来自 IME
和 OME
的信息,我们使用融合门控机制来构建 final session representation
,从而平衡当前 session
信息和collaborative neighborhood information
的重要性:
其中 fusion gate
)并被定义为:
然后我们使用双线性解码方案和 softmax
来计算推荐分。假设 item
的 representation
,我们根据当前 session
final sesssion representation
item
的最终推荐概率:
其中:item embedding
的维度,final session representation
我们的目标函数是:给定当前 session
的情况下最大化 actual item
的预测概率。因此,我们采用交叉熵损失函数:
其中:
session
的集合。
session
next item
的概率。
ground truth
函数。如果 item
ground truth
,那么
在学习过程中,我们采用 Back-Propagation Through Time: BPTT
方法来优化 CSRM
。
未来工作:
CSRM
的 outer memory network
的 slot
有限,因此只能从少数最近的 session
中选择 neighbor
。在未来的工作中,我们希望结合一种 retrieval-based
机制,使得 OME
能够根据之前的所有 session
来查找 neighbor
。
我们还希望通过引入用户偏好信息、以及 item
属性来改善 CSRM
,例如用户评论和 item
类别等等。
此外,注意力机制和 memory
机制具有很强的泛化能力。所以我们想探索这个框架在其它 application
领域的使用。
我们旨在回答以下研究问题:
RQ1
:CSRM
在 session-based
推荐任务中的表现如何?它在 Recall
和 MRR
指标上是否优于 SOTA
的方法?
RQ2
:CSRM
使用不同的编码器(而不是结合 IME
和 OME
)的性能如何?
RQ3
:CSRM
使用不同的聚合操作(而不是融合门控机制)的性能如何?
RQ4
:CSRM
在 OME
中具有不同数量的neighbor
时表现如何?
RQ5
:session
长度如何影响session-based
推荐性能?
RQ6
:collaborative neighborhood information
如何影响 session-based
推荐性能?
数据集:我们在两个公开可用的数据集上进行了实验,即 YOOCHOOSE
和 LastFM
。我们通过以下步骤对数据集进行预处理:
首先,我们确保所有 session
都是按照时间顺序排列。
其次,我们过滤掉仅出现在测试集中的 item
。
第三,我们执行数据增强来考虑 session
中的时间漂移(temporal shift
)。
数据集的细节如下:
YOOCHOOSE
:YOOCHOOSE
数据集是RecSys Challenge 2015
发布的公开可用数据集。它包含电商网站中六个月的 click-streams
。我们使用最后一天的 session
进行测试,用所有其它 session
进行训练。我们遵循 《Improved recurrent neural networks for session-based recommendations》
的做法,过滤掉长度为 1
的 session
以及出现次数少于 5
次的 item
。 《Improved recurrent neural networks for session-based recommendations》
发现 YOOCHOOSE
的最近部分( more recent fraction
)足以完成任务,并且增加数据量不会进一步提高性能。我们使用最近的 1/64
和 1/4
部分的训练 session
,分别称作 YOOCHOOSE 1/64
数据集和 YOOCHOOSE 1/4
数据集。
经过预处理之后:
YOOCHOOSE 1/64
数据集包含 17702
个 item
的 637226
次点击,随机分为 124279
个训练 session
、12309
个验证 session
、以及 15236
个测试 session
。
YOOCHOOSE 1/4
数据集包含 30672
个 item
的 8253617
次点击,随机分为 1988471
个训练 session
、12371
个验证 session
、以及 15317
个测试 session
。
LastFM
:LastFM
是一个音乐推荐数据集,包含从 2004
年到 2009
年通过 LastFM API
获得的 (user, time, artist, song)
元组。为了简化数据集,我们将数据集用于音乐艺术家推荐。
在我们的实验中,我们选择 top 40000
名最受欢迎的艺术家作为 item
集合。然后,我们以 8
小时的时间间隔手动将收听历史(listening history
)划分为 session
。也就是说,如果两个连续的动作发生在 8
小时时间间隔以内,那么它们就属于同一个 session
。否则,我们认为它们属于不同的 session
。这个时间间隔使得每个 session
不仅包含足够的交互,而且不同的 session
在一定程度上相互独立。最后,在我们过滤掉少于 2
个 item
、以及超过 50
个 item
的 session
之后,剩下 281614
个 session
和 39163
个 item
。该数据集称作 LastFM
。
经过预处理之后,LastFM
数据集包含对 39163
个 item
的 3804922
次点击,随机分为 269847
个训练 session
、5996
个验证 session
以及 5771
个测试 session
。
数据集的统计结果如下表所示。
baseline
:我们考虑了三组 baseline
方法,即传统的方法、RNN-based
的方法、memory network-based
的方法。
传统的方法:
POP
:POP
总是推荐训练集中最流行的 item
。这是一个非常简单的 baseline
,但它可以在某些领域表现良好。
S-POP
:S-POP
推荐当前 session
中最流行的 item
,而不是全局最流行的 item
。
Item-KNN
:在这种方法中,推荐与 last item
相似的 item
。相似性定义为:
其中:occurrence
表示出现了指定 item
的 session
的数量,co-occurrence
表示出现了指定两个 item
的 session
的数量。
另外,也可以包含正则化项从而避免低频 item
之间的偶然高度相似性。
BPR-MF
:BPR-MF
通过使用随机梯度下降来优化 pairwise ranking
目标函数。与之前的研究一样,我们将这种方法应用于 session-based
推荐,方法是对 session
中截止到当前为止出现的 item
的 latent factor
取平均从而作为 session
的 representation
。
FPMC
:Factorizing Personalized Markov Chain: FPMC
结合马尔科夫链模型和矩阵分解模型,用于 next-basket
推荐任务。为了使其适用于 session-based
推荐,我们在计算推荐分的时候忽略了 user latent representation
。
RNN-based
方法:
GRU-Rec
:我们将 《Recurrent neural networks with top-k gains for session-based recommendations》
和 《Session-based recommendations with recurrent neural networks》
提出的模型表示为 GRU-Rec
,它使用 session-parallel
的 mini-batch
训练过程,还使用 ranking-based
损失函数来学习模型。
RNN-KNN
:RNN-KNN
将 heuristics-based
的最近邻方案和人工制作权重参数(weighting parameter
)的 GRU
结合起来,用于 session-based
推荐,并取得了比 GRU-Rec
更好的性能。RNN-KNN
使用 item co-occurrence
来决定 k
近邻 session
。
Improved GRU-Rec
:我们将 《Improved recurrent neural networks for session-based recommendations》
中提出的模型表示为 Improved GRU-Rec
。Improved GRU-Rec
采用两种技术:数据增强、以及一种考虑输入数据分布偏移 shift
的方法,从而提高 GRU-Rec
的性能。
NARM
:Neural Attentive Recommendation Machine: NARM
是一种改进的 encoder-decoder
架构,用于 session-based
推荐。它通过将注意力机制融合到 RNN
中来改善 Improved GRU-Rec
。
memory network-based
方法:
RUM
:RUM
有两种具体的实现方式。item-level RUM: RUM-I
直接将 item
嵌入到 memory matrix
中,而 feature-level RUM: RUM-F
将用户在不同潜在特征latent feature
上的偏好的 embedding
存储到 memory matrix
中。我们将 RUM-I
应用于 session-based
推荐任务,通过 RNN-based
方法用序列中的 item
的 latent factor
来表示一个新的 session
。但是,RUM-F
无法应用于 session-based
推荐,因为很难获得一个新的 session
对特定特征的偏好。
CMN
:CMN
利用 memory network
来解决带隐式反馈的协同过滤问题。我们通过在进行预测时使用 session
中出现的 item
的平均 latent representation
来表示一个 session
,从而使得这种方法适用于 session-based
推荐。CMN
在测试的时候需要对每个候选 item
一个一个地打分,比较耗时。我们不评估所有的 item
,而是采样了 1000
个negative item
从而加快进程。
实验配置:
我们使用 Tensorflow
实现 CSRM
,并在一个 GeForce GTX TitanX GPU
上进行实验。
为了缓解过拟合,我们采用了两个 dropout layer
:
第一个 dropout layer
位于 item embedding layer
和 GRU layer
之间,dropout rate = 25%
。
第二个 dropout layer
位于 final representation layer
和 bilinear decoding layer
之间,dropout rate = 50%
。
在训练期间,我们使用高斯分布(均值为 0
、标准差为 0.01
)来随机初始化模型参数。
我们使用 mini-batch
的 Adam
优化器,分别设置了动量超参数 batch size
根据经验设置为 512
。
我们学习率由 [0.001, 0.0005, 0.0001]
范围内的网格搜索确定。
GRU
的 item embedding
维度和 hidden unit
由 [50, 100, 150]
范围内的网格搜索确定。
我们将 OME
中最近邻的数量根据 [128, 256, 512]
来变化,从而研究该超参数的影响。
所有超参数都根据验证集进行调优,其中验证集是训练数据的一小部分。
评估指标:我们的任务是在给定当前 session
的情况下预测用户接下来会点击什么。推荐系统在每个时刻为每个 session
生成一个推荐列表,该列表通常包含 N
个 根据预测分进行排序的item
。用户接下来点击的实际 item
应该包含在推荐列表中。因此我们使用以下指标来评估 top-N
推荐:
Recall@20
:ground-truth item
排在 top-20 item
中的 case
的比例。该指标不考虑 ground-truth item
的实际排名。
MRR@20
:Mean Reciprocal Rank: MRR
考虑 item
排名倒数(reciprocal rank
)。如果排名弱于 20
,则排名倒数置为零。MRR
会考虑 ground-truth item
的实际排名,这在推荐顺序很重要的场景中很重要(如,排名靠后的 item
仅在屏幕滚动后才可见)。
对于显著性检验,我们使用 paired t-test
。
性能对比 (RQ1
):下表说明了在三个数据集上 CSRM
和 baseline
方法的性能。结果表明,CSRM
在所有数据集的 Recall@20
和 MRR@20
指标方面始终达到最佳性能。从结果中,我们有四个主要观察结论:
在传统方法中,Item-KNN
在大多数情况下都要比 POP
、S-POP
、BPR-MF
取得显著的提升。这意味着 KNN-based
的协同过滤方法可以帮助改善 session-based
的推荐。
至于 FPMC
,考虑到 BPR-MF
和 FPMC
之间的主要区别在于后者以序列的方式建模用户的历史记录,因此 FPMC
比 BPR-MF
获得更好结果的观察(observation
)证实了序列信息有助于推荐性能。
我们观察到五种 RNN-based
的方法(GRU-Rec
、Improved GRU-Rec
、 RNN-KNN
、 NARM
、 CSRM
)优于传统方法。这表明 RNN-based
的模型擅长处理 session
中的序列信息。
CSRM
显著优于所有 RNN-based
的 baseline
方法。一般而言,相对于最佳 baseline NARM
,CSRM
在三个数据集上的 Recall@20
指标分别提高了 1.88%, 2.89%, 7.45%
, MRR@20
指标分别提高了 3.48%, 3.12%, 5.77%
。
尽管 RNN-KNN
和 CSRM
都考了了协同过滤信息,但是我们注意到 CSRM
在 RNN-KNN
上取得了一致的提升。原因是 RNN-kNN
通过人工制作的超参数将 RNN
与 co-occurrence-based KNN
相结合,缺乏能够捕获更复杂关系的非线性交互。
这些观察证实,利用带 memory network
的collaborative neighborhood information
可以显著提高 session-based
推荐的性能。
对于 MANN-based
方法,我们发现 CSRM
在所有数据集上都优于 RUM
和 CMN
。这是因为在 session-based
推荐中没有可用的用户信息,并且 RUM
和 CMN
在这种 case
中根本不适用、也没有效果。
一个自然的疑问是:在用户信息可用的场景下,
RUM
、CMN
、CSRM
的效果对比如何?
Encoder
影响(RQ2
):为了进一步说明协同信息和 memory network
的效果,我们比较了 CSRM
、以及两种 CSRM
变体之间的性能:
OME
的 CSRM
。它使用 RNN
的固有 memory
来建模当前 session
中的序列行为。它实际上相当于 NARM
模型,因为 CSRM
在 NARM
的基础上进一步考虑了collaborative neighborhood information
。在本节中,我们使用 NARM
的结果来表示
IME
的 CSRM
。它使用 external memory
来编码collaborative neighborhood information
。
下表总结了这几个模型在三个数据集上的实验结果。
首先,我们发现 session
自身的序列信息对于 session-based
的推荐任务更重要。
其次,CSRM
在三个数据集上的所有指标都要比 session
自己的信息、以及collaborative neighborhood information
来获得更好的推荐的有效性。以 YOOCHOOSE 1/64
数据集为例,与 CSRM
在 Recall@20
指标上分别相对提升 1.88%
和 8.41%
左右,在 MRR@20
指标上分别相对提升 3.48%
和 24.84%
左右。
聚合操作的影响(RQ3
):接下来,我们带不同聚合操作的 CSRM
进行相互比较。这些聚合操作包括:最大池化、均值池化、拼接、融合门控机制。
对于最大池化聚合, final session representation
定义为 max
的操作。
对于均值池化聚合,final session representation
定义为
对于拼接聚合,final session representation
定义为
对于融合门控机制聚合,final session representation
如正文部分所示,定义为:
其中
如下表所示:
在 Recall@20
和 MRR@20
指标上,带融合门控机制的 CSRM
在三个数据集上均优于其它三种聚合操作。这表明融合门控机制更有助于建模 IME
和 OME
之间的交互。
在大多数情况下,带拼接操作的 CSRM
和带均值池化的 CSRM
实现了相似的性能,并且在三个数据集上均优于带最大池化的 CSRM
。这表明在建模多个因子之间的交互时,均值池化和拼接操作要比最大池化更有利。
邻居数量的影响(RQ4
):为了研究collaborative neighborhood information
对 session-based
推荐的影响,我们在下表中展示了 CSRM
关于不同邻居数量的性能。
对于 YOOCHOOSE 1/64
和 YOOCHOOSE 1/4
数据集,CSRM
在 Recall@20
指标上的性能随着邻居数量的增加而提高,在 MRR@20
指标上的性能随着邻居数量的增加而小幅波动。
对于 LastFM
数据集,当
这表明,准确地预测 session intent
取决于推荐系统将collaborative neighborhood information
纳入模型的程度。
session
长度的影响(RQ5
):为了了解 session
长度对利用collaborative neighborhood information
的影响,我们在 LastFM
上比较了不同长度的、各种各样的 session
。我们在下表中展示了与 session
长度相关的性能。注意,由于 session
长度的范围较广,我们将测试集根据每个 session
的长度划分为不同的分组。从结果中我们可以观察到:
CSRM
整体上表现更好。这表明collaborative neighborhood information
确实有助于捕获 session
意图并作出更好的预测。
一般而言,session
长度在 1
到 10
之间时,CSRM
的性能提升更强。这可能是因为当 session
很短时,每个 session
的点击 item
有限,因此很难捕获 session
的意图。在这种情况下,CSRM
擅长通过collaborative neighborhood information
来捕获 session
的意图。
案例研究(RQ6
):为了直观地掌握协同信息的效果,我们从 YOOCHOOSE 1/64
数据集中选择了一些 good case
和 bad case
,如下图所示。左侧的数字是current session ID
,右侧的数字是推荐列表中 ground truth
的排名。颜色程度表示 neighbor similarity
)的强度,其中较浅的颜色表示较低的值、较深的颜色表示较高的值。图中的每一行代表当前 session
的 top 10 neighbor
。相似性之间的差异可能非常小,因此在视觉上难以区分。
这里的横坐标表示不同的
neighborhood session
(而不是current session
中的不同item
)。
总体而言,显然具有高度相似neighbor
的 session
获得了更好的推荐性能,即下图中的 session 12475, 12509, 15405
。
分配了都是低相似度neighbor
的 session
获得了更差的推荐性能,即下图中的 session 12600, 14731, 27355
。
这证实了collaborative neighborhood information
对 session-based
推荐的用户意图有很大影响。
并非当前 session
的所有neighbor
都同等重要。例如,session 12475
的neighbor
具有非常不同的权重。
并非所有 session
都需要依赖 collaborative neighborhood information
来获得良好的性能。一些 session
将相同的低相似性(equal low similarity
)分配给neighbor
,这意味着它们使用较少的协同信息。但是它们仍然取得了良好的推荐性能,如下图中的 session 9798, 17028, 27197
。