首次公开超参配置!更用户友好的伯乐四期来啦!
导读
RecBole 你用过了吗?作为一个拥有从数据处理、模型开发、算法训练到科学评测的一站式全流程托管框架,伯乐从 2020 年 11 月 15 日 正式发布起,截至今天已经正式运营了 2 年。在此期间,社区活跃度稳定上升,用户数量不断增长,我们主库的 GitHub repo 已经获得了近 2.3k 个 star 和 426 个 fork。与此同时,2022 年 6 月 正式亮相的 RecBole2.0 涵盖了从数据到模型的 8 个最新主题和方向,为推荐系统多个领域的研究提供了易用又强大的代码工具库!2022 年 11 月,推荐算法框架伯乐(RecBole)又双叒叕发布新版本啦!
什么?你还不知道 RecBole 是啥?快点击下方链接了解一下吧~
2020-11-05
2021-01-15
2021-09-17
2022-07-04
与此同时,伯乐的主库论文和 2.0 版本的论文分别被 CIKM 2021 Resource Track 和 CIKM 2022 Resource Track (Best Resource Paper Runner-up) 接收。
这些成果持续激励着我们的开发团队不断进步,向着国际一流推荐系统工具库的目标迈进!在伯乐现有框架的基础上,我们团队综合考虑了与时俱进的科研需求和用户的反馈意见,花费近三个月的时间进行了一次大规模的版本更新!在伯乐团队的不懈努力下,RecBole 四期(v1.1.1)终于来啦!
本次更新的伯乐四期主要有四个亮点:①更灵活的数据处理;②更高效的 GPU 利用;③可复现的基准结果;④更用户友好的说明文档。为了便于用户使用,我们团队针对此次更新编写了论文并提交到了 arXiv 网站上,欢迎大家阅读我们的论文和 Release Note v1.1.1 来了解更多技术细节~
论文地址:
1.0:https://doi.org/10.1145/3459637.3482016
2.0:https://doi.org/10.1145/3511808.3557680
1.1.1:https://arxiv.org/abs/2211.15148
项目主页地址:
https://recbole.io
RecBole (主站|本次发布):
https://github.com/RUCAIBox/RecBole/releases/tag/v1.1.1
RecSysDatasets (数据集|本次更新):
https://github.com/RUCAIBox/RecSysDatasets
更新亮点
1. 更灵活的数据处理
我们用 PyTorch 接口对整个数据流框架进行了如下图所示的重构和封装,并针对不同类模型的特点新增了数据处理接口,包括序列模型的序列增强、针对上下文模型的连续特征离散化、基于知识模型的知识图谱过滤以及基于流行度负采样的自适应权重,使得研究人员能高效地利用最新的主流数据处理方法。
对于数据处理,我们的更新主要体现在以下四个方面:
1.1 数据模块的 PyTorch 封装
2.更高效的 GPU 利用
from recbole.quick_start import run_recboles
import torch.multiprocessing as mp
args = dict(
model = 'BPR', dataset = 'ml-100k',
config_file_list = ['test.yaml'], port = '5678',
world_size = 8, nproc = 4, group_offset = 0
)
mp.spawn(
run_recboles,
args=(args.model, args.dataset, config_file_list, args.ip, args.port, args.world_size, args.nproc, args.group_offset),
nprocs=args.nproc
)
2.3 并行的超参数调优策略
超参数调优的策略决定了搜索模型最优参数所需的时间。我们在新版本中提供了三种超参数优化策略供用户选择,即网格搜索 (Grid Search)、随机搜索 (Random Search) 和贝叶斯优化搜索 (Bayesian Hyper-opt),都是基于 hyperopt 库来实现,可以通过 algo 参数进行设置。
我们进行了实验来比较三种调优策略在 LightGCN 和 KGAT 模型在 MovieLens-1M 数据集上的性能。可以观察到随机搜索和贝叶斯优化搜索都可以找到较好的超参数组合,而搜索时间比使用穷举法的网格搜索更短。
此外,通过引入参数调优工具 Ray,伯乐现在的版本支持并行地搜索超参数,从而进一步提升了模型调优的效率。
多领域. 新增加的推荐数据集涵盖了电子商务、电影、餐厅和书籍的类别,拓宽了工具库的研究应用场景。 多版本. 随着时间的推移,经典推荐数据集的信息也在不断更新。以 Yelp 数据集为例,学术论文中普遍使用的版本为 Yelp 人员在 2018 年挑战赛中发布的版本,但挑战赛的网站 (https://www.yelp.com/dataset/challenge) 已经不再被维护,Yelp 官网 (https://www.yelp.com/dataset) 提供的是 2022 年的版本。为了厘清不同版本的数据集,我们按年份整理了两个常用推荐数据集的不同版本,即分别在 2018 年、2020 年、2021 年和2022 年发布的 Yelp 数据集,以及亚马逊评论数据集在 2014 年发布的 24 个子类和 2018 年发布的 29 个子类,增强了基准数据集的可持续性。 多特征. 用户和物品的特征属性对于基于内容或上下文的推荐任务至关重要。此次更新的大多数数据集都包含用户或物品的特征属性,这有助于公平感知推荐等新兴研究方向的发展。
有代表性的基准数据集 MovieLens-1M 作为一个拥有 3000 多引用次数的经典电影推荐数据集,不仅具有时间戳信息和电影的特征属性,还可以将物品链接到知识图谱,因此我们将其用作四种模型的基准数据集。 对于通用和序列推荐模型,我们综合考虑了流行度、领域和规模,选择了 2022 年最新的 Yelp 数据集和 2018 年的亚马逊图书集作为基准。与此同时,Criteo 和 Avazu 是点击率预测的两个常用数据集,也是我们上下文感知模型的基准数据集。此外,我们使用 KB4Rec 中三个与知识图谱 Freebase 链接的推荐数据集用于知识感知的推荐模型。 为了确保数据质量,我们对用户和物品应用了 10 核过滤来筛选不活跃的用户和不流行的物品。我们还对知识感知模型中的结点和关系使用了 5 核过滤。关于数据划分策略,我们采用留一法划分了序列数据,而对其他三种类型,我们以 8:1:1 的比例将数据分成训练/验证/测试集。 全面的推荐模型 RecBole 中有四种类型的推荐模型,包括通用推荐、序列推荐、基于内容的推荐以及基于知识的推荐,共涉及 83 个推荐模型。对于每类推荐模型,我们都在官网上公布了三个基准数据集的超参数调节范围和推荐的最优配置。同时,我们的团队欢迎社区贡献者共同努力,持续更新伯乐各个模型的最优超参数,让模型的结果更具有可复现性。 在不久的将来,我们考虑公布 2.0 版本 [2] 中八个子包的超参数配置,涵盖元学习、跨域推荐、公平性推荐等新兴方向,致力于打造推荐系统领域更全面的基准评测工具库。 精细的超参数调优 我们使用 梯度搜索策略 得到每个模型在各自基准数据集上的最优超参数。对于超参数的搜索范围,我们遵循 原论文和源码 中的设置,并根据实际的训练情况微调特定的参数。而学习率和正则化值等通用的超参数调整范围在同一数据集中保持相对一致性。同时,同类模型的超参数调整范围也尽量保证了可比性,例如基于图神经网络的模型中,卷积层数量的超参数搜索范围相同,进一步保证了使用伯乐库进行超参数调优的合理性。 可复现的参数配置 为了确保可复现性,我们将数据集和模型的配置文件、超参数调整范围以及最佳参数都详细地记录在了伯乐的官网上,以供研究者参考。硬件方面,我们的实验都是在 12 GB 内存的 Nvidia GPU 上执行的,CUDA 的版本是 11.4。根据我们的详细配置,研究人员可以方便地复现经典推荐模型的基准结果。
4.更用户友好的文档说明
社区维护
截至 2022 年 11 月 30 日,RecBole 已经收获 2.3k 个 Star,426次fork,并解决了 474 个 issue 和 923 个 PR,RecBole 已经成为一款知名度较高的推荐算法库。
RecBole 的成长离不开我们的开发团队,本次伯乐四期开发团队名单如下:
Lead developer: 徐澜玲,田震 Core developer: 张高玮,王磊,张君杰
Participant: 李依凡,郑博文
Adviser:侯宇蓬,潘星宇,陈昱硕
我们团队一直秉持着认真负责的工作态度和不怕吃苦的工作精神,并向着将 RecBole 打造为国际知名开源推荐算法库的目标而努力奋斗。我们仍将继续公开招募开发团队成员,欢迎小伙伴们联系 recbole@outlook.com 加入伯乐的开发团队!我们也衷心感谢所有向我们提出问题,指明发展方向和提供发展建议的朋友们,RecBole 的蓬勃发展离不开每位用户的支持。未来,我们将不断更新,使其更加灵活、与时俱进和用户友好。希望 RecBole 可以在大家的帮助和敦促下越做越好!
以上就是 RecBole 四期的主要更新内容啦!还在等什么呢?点击阅读原文,马上安装 RecBole 框架,体验一下船新版本吧!
Reference
[1] Zhao W X, Mu S, Hou Y, et al. Recbole: Towards a unified, comprehensive and efficient framework for recommendation algorithms[C]//Proceedings of the 30th ACM International Conference on Information & Knowledge Management. 2021: 4653-4664.
[2] Zhao W X, Hou Y, Pan X, et al. RecBole 2.0: Towards a More Up-to-Date Recommendation Library[C]//Proceedings of the 31st ACM International Conference on Information & Knowledge Management. 2022: 4722-4726.
[3] Xu L, Tian Z, Zhang G, et al. Recent Advances in RecBole: Extensions with more Practical Considerations[J]. arXiv preprint arXiv:2211.15148, 2022.