从RSC15到RetailRocket:GRU4Rec在公开数据集上的性能表现

从RSC15到RetailRocket:GRU4Rec在公开数据集上的性能表现

【免费下载链接】GRU4Rec GRU4Rec is the original Theano implementation of the algorithm in "Session-based Recommendations with Recurrent Neural Networks" paper, published at ICLR 2016 and its follow-up "Recurrent Neural Networks with Top-k Gains for Session-based Recommendations". The code is optimized for execution on the GPU. 【免费下载链接】GRU4Rec 项目地址: https://gitcode.com/gh_mirrors/gr/GRU4Rec

GRU4Rec是基于循环神经网络的会话推荐算法,最初在ICLR 2016发表的"Session-based Recommendations with Recurrent Neural Networks"论文中提出。该项目提供了原始Theano实现,特别针对GPU优化,能够高效处理会话推荐任务。通过分析多个公开数据集上的表现,我们可以深入了解GRU4Rec的性能特点和适用场景。

📊 主流推荐数据集概览

GRU4Rec在多个公开推荐数据集上经过了充分验证,这些数据集涵盖了不同行业和应用场景:

  • RSC15:电商会话数据集,包含丰富的用户浏览和购买行为
  • RetailRocket:电商平台用户交互数据,包含商品点击、购物车和购买行为
  • Diginetica:在线零售网站的用户会话数据
  • Coveo:企业级搜索和推荐系统数据集
  • Yoochoose:电商平台的用户点击流数据

项目中提供了针对不同数据集优化的参数配置文件,如paramfiles/retailrocket_bprmax_shared_best.pyparamfiles/diginetica_bprmax_shared_best.py,方便研究人员快速复现最佳性能。

⚙️ 关键参数对性能的影响

GRU4Rec的性能受多个关键参数影响,通过项目提供的实验数据,我们可以直观了解这些参数的作用:

批处理大小对训练效率的影响

GRU4Rec不同批处理大小下的训练时间对比(BPR-max损失) 图1:使用BPR-max损失函数时,不同批处理大小对GRU4Rec训练时间的影响

从图中可以看出,随着批处理大小(minibatch size)的增加:

  • 单批次训练时间(左图)呈现下降趋势
  • 每秒钟处理事件数(右图)显著增加
  • 隐藏层大小为500的模型比100的模型需要更多计算资源

类似的趋势也出现在使用交叉熵(cross-entropy)损失函数的场景中:

GRU4Rec不同批处理大小下的训练时间对比(交叉熵损失) 图2:使用交叉熵损失函数时,不同批处理大小对GRU4Rec训练时间的影响

隐藏层大小对模型性能的影响

隐藏层大小是影响GRU4Rec性能的另一个关键因素:

GRU4Rec不同隐藏层大小下的训练时间对比(BPR-max损失) 图3:使用BPR-max损失函数时,不同隐藏层大小对GRU4Rec训练时间的影响

实验结果表明:

  • 较大的隐藏层(如500)需要更长的单批次训练时间
  • 添加dropout和momentum技术(虚线)可以略微增加训练时间,但有助于防止过拟合
  • 总体训练效率随着隐藏层增大而降低

同样的规律也适用于交叉熵损失函数的情况:

GRU4Rec不同隐藏层大小下的训练时间对比(交叉熵损失) 图4:使用交叉熵损失函数时,不同隐藏层大小对GRU4Rec训练时间的影响

🔍 数据集特定优化参数

针对不同数据集,GRU4Rec需要调整不同的超参数以获得最佳性能。项目中的paramfiles目录提供了经过优化的参数配置:

Diginetica数据集优化参数

gru4rec_params = OrderedDict([
('loss', 'bpr-max'),
('constrained_embedding', True),
('layers', [512]),
('batch_size', 128),
('dropout_p_embed', 0.5),
('learning_rate', 0.05),
('momentum', 0.15),
('n_sample', 2048)
])

Coveo数据集优化参数

gru4rec_params = OrderedDict([
('loss', 'bpr-max'),
('constrained_embedding', True),
('layers', [512]),
('batch_size', 144),
('dropout_p_embed', 0.35),
('learning_rate', 0.05),
('momentum', 0.4),
('n_sample', 2048)
])

通过对比可以发现,不同数据集需要不同的dropout比例、动量参数和批处理大小,这反映了各数据集的独特特性。

🚀 快速开始使用GRU4Rec

要在自己的数据集上使用GRU4Rec,只需按照以下步骤操作:

  1. 克隆仓库:git clone https://gitcode.com/gh_mirrors/gr/GRU4Rec
  2. 参考examples/rsc15/preprocess.py预处理你的数据
  3. 根据数据集特点调整参数文件,可参考paramspaces/目录下的参数空间定义
  4. 使用run.py脚本启动训练

项目提供的RSC15数据集示例可以作为起点,快速了解GRU4Rec的使用流程和性能表现。

📌 总结

GRU4Rec作为经典的会话推荐算法,在多个公开数据集上表现出稳定的性能。通过合理调整批处理大小、隐藏层结构和正则化参数,可以在不同类型的会话数据上获得最佳推荐效果。项目提供的参数文件和实验结果为研究人员和工程师提供了宝贵的参考,帮助他们快速将GRU4Rec应用到实际推荐系统中。

无论是电商平台、内容推荐还是企业级搜索系统,GRU4Rec都能通过捕捉用户会话中的序列模式,提供精准的个性化推荐。通过深入理解参数对性能的影响,开发者可以根据自己的数据集特点,优化GRU4Rec模型,实现更好的推荐效果和训练效率。

【免费下载链接】GRU4Rec GRU4Rec is the original Theano implementation of the algorithm in "Session-based Recommendations with Recurrent Neural Networks" paper, published at ICLR 2016 and its follow-up "Recurrent Neural Networks with Top-k Gains for Session-based Recommendations". The code is optimized for execution on the GPU. 【免费下载链接】GRU4Rec 项目地址: https://gitcode.com/gh_mirrors/gr/GRU4Rec

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值