RUCAIBox / RecBole

A unified, comprehensive and efficient recommendation library
https://recbole.io/
MIT License
3.27k stars 590 forks source link

在case_study中如何使用全数据集 #2018

Open Captain-Paul opened 3 months ago

Captain-Paul commented 3 months ago

您好,我的数据集是一个inter文件,包括user_id, item_id和rating,按照[0.8, 0.1, 0.1]比例划分后,test_data中的user数量和item数量与总的数量相同,交互数量是总数据的10%。 我想利用case_study进行多轮推荐的模拟,每一轮模拟要对每个用户给出推荐列表,再将本轮用户评分加入训练数据,训练模型进行下一轮推荐。因此我需要使用全数据进行训练和测试,看到case_study只支持test_data,想问一下test_data中的inter数量较少,会对case_study的结果有影响吗?可以在case_study中使用全数据集吗?谢谢! 以下是我的配置参数,使用的是ItemKNN算法

parameter_dict = {
    'data_path': '/kaggle/working/',
    'USER_ID_FIELD': 'user_id',
    'ITEM_ID_FIELD': 'movie_id',
    'RATING_FIELD': 'rating',
    'user_inter_num_interval': "[0,Inf)",
    'item_inter_num_interval': "[0,Inf)",
    'load_col': {'inter': ['user_id', 'movie_id', 'rating']},
    'val_interval': {'rating': "[1,5]"},
    'field_separator': ",",
    'gpu_id': "0",
    'seed': 2024,
    'epochs': 1,
    'repeatable': True,

    'n_neighbors': 50,
    'metric': 'cosine',
    'center': True,
    'aggregate': "weighted_mean",
    'min_neighbors': 10,
    'min_similaity': 0.03,

    'eval_args': {
        'group_by': 'user',
        'mode': 'full'},
    'eval_setting': 'RO_RS',
    'split_ratio': [0.8, 0.1, 0.1]
}
Captain-Paul commented 3 months ago

第二个问题是想问一下full_sort_topk和full_sort_scores中,uid_series和test_data分别有什么作用,目前我是把按照[0.8, 0.1, 0.1]比例划分出来的0.1作为test_data作为full_sort_scores的输入,数据集中rating范围是1-5,但full_sort_scores得到的结果有很多0,还有超出5很多的情况,比如20,比较困扰。