RecBole Ver1.0入门笔记

这篇博客介绍了如何使用RecBole库搭建推荐系统。首先,通过pip安装RecBole,然后展示了如何配置并运行模型,如NeuMF,选用留一法采样策略。在遇到'indices must be long'的错误时,解决方案是在代码中将tensor类型转换为long。接着,博主分享了Anime数据集的转换步骤,包括下载、解压、转换格式,并给出了转换代码的运行结果。最后,提到了在使用转换后的数据时可能遇到的编码问题及解决建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

官方教学:https://recbole.io/cn/quickstart.html

  • 2022/07/15: 更新更换数据集

1. 安装

pip install recbole

2. 使用

选择随机采集正样本的留一法。该框架能够实现,且有一篇论文详细介绍:《Revisiting Alternative Experimental Settings for Evaluating
Top-𝑁 Item Recommendation Algorithms》.
在这里插入图片描述

from recbole.quick_start import run_recbole

dataset = 'ml-1m'
model = 'NeuMF' # 从对比算法选择

# 参数
para_dic = {
        'training_batch_size': 512,
        'eval_batch_size': 512,
        'eval_args': {'group_by': 'user', 'split': {'LS': 'valid_and_test'}, 'mode': 'uni100'},  # 1
        'metrics': ['Hit', 'NDCG', 'MRR'],
        'topk': [5, 10],
        'epochs': 40,  # default 300 训练轮数
        # 'valid_metric': 'Hit@10',

        # - Training -#
        'learner': 'adam',
        'learning_rate': 0.001,
        'neg_sampling': {'uniform': 1},

        # - Model -#
        'dropout_prob': 0.2
    }

# 运行
run_recbole(dataset=dataset_arg, model=model_arg, config_dict=para_dic)


2.1 一些BUG

报错1:recbole tensors used as indices must be long, byte or bool tensors

解决:找到源代码报错行,在indices处变量后加上 .type(torch.long) 把tensor转化为long

2.2 未解决

效果比原论文和其他论文对比的结果要好一大截,要再研究一下代码

3. 更换数据集

以Anime数据集为例,也可以看作者的教程

3.1 下载作者的转换代码

https://github.com/RUCAIBox/RecDatasets

3.2 下载数据集

下载数据集【RecDatasets代码的README里有支持的数据集的链接】
解压

unzip archive.zip -d anime-data

直接解压也行,文件夹命名anime-data

3.3 转换格式

在这里插入图片描述
我这里建了2个文件夹来放原始数据和转换后的数据,其实不用这么麻烦。

python run.py --dataset anime --input_path ..\dataset_meta\anime-data --output_path ..\dataset_new\anime --convert_inter --convert_item

改改路径,成功如下图:
在这里插入图片描述
(速度有点慢,Anime不算太大的数据集,如果转换Amazon数据集,时间我不敢想啊)

3.4 使用

把转换后的放在RecBole-master\dataset\anime
然后运行改数据集的参数 dataset=‘Anime’
搞定
在这里插入图片描述

报错

在这里插入图片描述
如果能解决编码问题,可以把之前命令行的 “–convert_inter” 去掉,就只转换后面的item文件了。
如果不能解决:在这里插入图片描述
嘻嘻 直接去下现成的。。。链接在作者的README里,这里就不放了

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值