RecBole小白入门系列博客(一)——快速安装和简单上手

RecBole小白入门系列博客(一)
——快速安装和简单上手

  • 写在开头
  • 快速安装
    • 系统要求
    • 安装方式
      • 从Conda安装
      • 从pip安装
      • 从源文件安装
  • 简单上手
    • 从源文件上手(适用于从github下载了源文件)
    • 从API上手(适用于conda和pip安装)
  • 结束语

注意:本系列基于RecBole v.0.2.0 版本!

写在开头

最近有一款新上线的推荐系统框架,叫RecBole,里面包含了很多推荐系统方向的模型,感觉跑baseline特别方便(`∀´)Ψ!但是内容比较多,上手还是需要一点时间的,于是就产生了写该博客的想法(#.#)
本文是推荐系统框架RecBole的入门系列教程第一篇,关于RecBole的快速安装和简单上手,后续还会有别的相关博客。
当然我写的肯定有不完善的地方,感兴趣的同学可以去他们官网康康!

快速安装

系统要求

RecBole在目前主流的几种系统上都可以运行:

Linux
Windows 10
macOS X

另外,它还对python相关环境有要求:

python>=3.6
torch>=1.6

鉴于模型大多数都是深度学习模型,如果使用GPU的话:

CUDA或CUDATooklkit>=9.2
NVIDIA Driven>=396.26(Linux)
NVIDIA Driven>=397.44(Windows10)

安装方式

从Conda安装

推荐新建一个虚拟环境,防止装环境装崩了(血的教训ヘ(;´Д`ヘ)
这里创建一个名为recbole的虚拟环境

conda create -n recbole
conda activate recbole

然后在该虚拟环境中安装(小伙伴们记得检查一下torch和python版本对不对哈)

conda install -c aibox recbole

从pip安装

pip install recbole

从源文件安装

先从github上面下载源文件

git clone https://github.com/RUCAIBox/RecBole.git && cd RecBole

然后运行指令安装

pip install -e . --verbose

简单上手

因为RecBole这个框架还是集成了很多模型的,所以要完全使用熟练还是需要熟悉一会的,但个人感觉已经比现在已有的框架方便很多了(划掉XD),这里其实还是参考他们网站给的例子来写的。

从源文件上手(适用于从github下载了源文件)

进入RecBole文件夹,可以直接运行run_recbole.py这个文件,默认使用的模型是BPR,默认使用的数据集是ml-100k

python run_recbole.py

然后就会得到下面的输出信息,包括了使用的数据集名称、数据集里user,item以及interaction数目、模型评估设置、模型结构等内容,挺清晰明了的:

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 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

这样的模式跑baseline真的真的真的很省事!终于不用我叭叭叭叭敲代码再调bug了( Ĭ ^ Ĭ )
然后上面是全部使用默认参数跑模型的结果,如果要改一些参数,比如学习率 (learning_rate)啊,嵌入向量的大小(embedding_size)啊,甚至使用的模型啊等等,最简单的办法是直接命令行添加,假设改成使用FM模型,学习率改成0.02,嵌入向量大小改成50维:

python run_recbole.py --model=LR --learning_rate=0.02 --embedding_size=50

改变数据集我放在之后的博客里面说,RecBole支持的模型和提供的已经处理好的数据集可以看他们的官网。

从API上手(适用于conda和pip安装)

首先新建一个python文件,假设命名为test_recbole.py,然后在该文件中写入:

from recbole.quick_start import run_recbole
run_recbole()

然后运行该文件

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

改变参数的方式和从源码上手那里操作相似。

结束语

好啦!第一篇就先写这么多,准备后续写一写四大类(general,context
,sequential,knowledge)模型的分别运行流程、参数设置等问题,以及数据集的格式啊设置什么的,大家有什么想看的也可以给我留言。谢谢各位!
最后附上官网地址API文档地址
官网地址:https://recbole.io/cn/index.html
API文档地址:https://recbole.io/docs/

你可能感兴趣的:(RecBole小白入门系列,git,pytorch,推荐系统,深度学习,python)