RecBole小白入门系列博客(二)
——General类模型运行流程
注意:本系列基于RecBole v.0.2.0 版本!
传送门:RecBole小白入门系列博客(一)——快速安装和简单上手
写在前面
- 接上次的安装和快速运行介绍,这次准备根据模型的类别分别讲一下四类模型的运行流程——General, Context, Sequential 和Knowledge。
- 本博客将先展示General类模型的运行流程ψ(`∇´)ψ ,之后再写另外三种类型。
- 由于模型的完整运行流程会牵扯到很多部分,从数据到参数,所以这里将简略的举出例子,让大家可以大致独立完成模型的运行。关于一些更加具体和细微的部分,我将在后面单独写博客为大家介绍。
选定模型
RecBole中共有13个General类模型可供使用,模型列表如下:
关于模型的具体信息可以查看上面的链接,大家选用需要的模型即可。我们以模型BPR为例。
设置模型超参数
每个模型的超参数都不一致,大家可以从上面的链接中查看自己所需模型的超参数有哪些。在RecBole中每个模型都有默认的参数,因此如果是想简单跑一跑就暂时不动。
模型默认参数在源码目录RecBole/recbole/properties/model 中,各位感兴趣在小伙伴可以在里面查看默认参数值。
那么想调参的同学怎么办呢?读过RecBole小白入门系列博客(一)——快速安装和简单上手的朋友可能知道,在RecBole中调整参数有好几种方法,这里我推荐使用自定义配置文件。
RecBole的配置文件格式均使用.yaml文件,十分简洁明了,大致的形式如下:
accum: "stack"
gcn_output_dim: 500
embedding_size: 64
dropout_prob: 0.3
sparse_feature: True
class_num: 2
num_basis_functions: 2
参数名称: 参数值这样的样式
参数值可以是字典嵌套,也可以是列表等,就像这样
load_col:
inter: [user_id, business_id, stars]
item: [business_id, address, categories]
user: [user_id, fans, compliment_hot, compliment_cool, complitment_cute, compliment_plain]
大家暂时不用管参数的含义等,后面会注意讲到。大致了解配置文件的格式之后,我再说下推荐的修改模型参数的方法:
- 在目录
RecBole/下新建配置文件test.yaml - 在
test.yaml中写入想要修改的参数 - 保存
例如,我想修改模型BPR的参数,就去查看路径RecBole/recbole/properties/model/BPR.yaml,可以发现BPR参数很少,就只有一个:
embedding_size: 64
那如果我想把embedding_size改成32的话,就在test.yaml中写入
# model config
embedding_size: 32
别的模型参数同理
选定数据集
数据集基本格式
选定模型之后就是要选定要用的数据集了。RecBole框架使用的数据集要求处理成对应的原子文件才可以正常使用,目前支持6种原子文件,General模型会用到的只有 .inter
| 后缀 | 含义 | 例子 |
|---|---|---|
| .inter | 用户-商品交互特征 | user_id, item_id, rating, timestamp, review |
每个原子文件可以被看作 m 行 n 列的表格(不计表头),代表该文件存储了 n 种不同的特征,共 m 条记录。 文件第一行为表头,表头中每一列的形式为 feat_name:feat_type,标示了该列特征的名字及类型。 约定特征为四种类型之一。
| feat_type | 含义 | 例子 |
|---|---|---|
| token | 单个离散特征 | user_id, age |
| token_seq | 离散特征序列 | review |
| float | 单个连续特征 |

本文详细介绍RecBole推荐系统框架中通用模型的运行流程,包括模型选择、参数配置、数据集设置、训练与评估等步骤,并提供了手动及自动调参方法。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



