快速上手

这里给出一个快速上手的例子来展示RecBole的运行流程。


从源文件快速上手

如果你从GitHub下载了RecBole的源码,你可以使用提供的脚本进行简单的使用:

python run_recbole.py

这个例子将会在ml-100k这个数据集上进行BPR模型的训练和测试。 一般来说,这个例子将花费不到一分钟的时间,我们会得到一些类似下面的输出:

INFO ml-100k
The number of users: 944
Average actions of users: 106.04453870625663
The number of items: 1683
Average actions of items: 59.45303210463734
The number of inters: 100000
The sparsity of the dataset: 93.70575143257098%

INFO Evaluation Settings:
Group by user_id
Ordering: {'strategy': 'shuffle'}
Splitting: {'strategy': 'by_ratio', 'ratios': [0.8, 0.1, 0.1]}
Negative Sampling: {'strategy': 'full', 'distribution': 'uniform'}

INFO BPRMF(
    (user_embedding): Embedding(944, 64)
    (item_embedding): Embedding(1683, 64)
    (loss): BPRLoss()
)
Trainable parameters: 168128

开始训练:

INFO epoch 0 training [time: 0.27s, train loss: 27.7231]
INFO epoch 0 evaluating [time: 0.12s, valid_score: 0.021900]
INFO valid result:
recall@10: 0.0073  mrr@10: 0.0219  ndcg@10: 0.0093  hit@10: 0.0795  precision@10: 0.0088

...

INFO epoch 63 training [time: 0.19s, train loss: 4.7660]
INFO epoch 63 evaluating [time: 0.08s, valid_score: 0.394500]
INFO valid result:
recall@10: 0.2156  mrr@10: 0.3945  ndcg@10: 0.2332  hit@10: 0.7593  precision@10: 0.1591

INFO Finished training, best eval result in epoch 52
INFO Loading model structure and parameters from saved/***.pth
INFO best valid result:
recall@10: 0.2169  mrr@10: 0.4005  ndcg@10: 0.235  hit@10: 0.7582  precision@10: 0.1598
INFO test result:
recall@10: 0.2368  mrr@10: 0.4519  ndcg@10: 0.2768  hit@10: 0.7614  precision@10: 0.1901

如果用户使用我们提供的 quick start 方式运行 RecBole,则原始数据会被分为训练集、验证集和测试集三个部分。我们在训练集上进行参数更新,选择在验证集上效果最佳的模型参数,最后报告其在测试集上的结果。

如果你要改参数,例如learning_rate, embedding_size, 只需根据您的需求增加额外的参数,例如:

python run_recbole.py --learning_rate=0.0001 --embedding_size=128

如果你想改变运行模型,只需要在执行脚本时添加额外的设置参数即可:

python run_recbole.py --model=[model_name]

model_name为想要运行的模型的名字,例如: BPR, FM。RecBole目前支持的模型包括general recommendation, context-aware recommendation, sequential recommendation 和 knowledge based recommendation四类, 详细信息请参考模型介绍

如果您想改变数据集,请参考数据介绍


从API快速上手

如果你是从pipConda安装RecBole,你可以新建一个python文件,例如:run.py,在这个文件中写入下面的代码:

from recbole.quick_start import run_recbole
run_recbole()

然后执行如下命令:

python run.py --dataset=ml-100k --model=BPR

就会在ml-100k这个数据集上进行BPR模型的训练和测试。

如果你想要运行不同的模型,参数和数据集,相关操作和上面类似。

关于RecBole的更多使用,请参考API文档