RecBole
RecBole copied to clipboard
[🐛BUG] LightGCN无法使用设置rating阈值的方式来生成负采样,KeyError: 'neg_item_id'
我使用如下的yaml参数文件,最终报错:KeyError: 'neg_item_id' 而我将train_neg_sample_args: ~注释掉后,代码可以运行,但是结果非常差,LightGCN在douban-book上的RMSE超过了1.0
dataset config
field_separator: "\t" seq_separator: " " load_col: inter: [user_id, item_id, rating] net: [source_id,target_id:token] USER_ID_FIELD: user_id ITEM_ID_FIELD: item_id RATING_FIELD: rating NEG_PREFIX: neg_ LABEL_FIELD: label threshold: rating: 4 train_neg_sample_args: ~
training and evaluation
epochs: 500 train_batch_size: 4096 eval_args: split: {'RS':[0.8, 0.1, 0.1]} group_by: ~ mode: labeled order: RO valid_metric: RMSE metrics: ['AUC', 'LogLoss','MAE','RMSE']
补充一下,RMSE非常的差的原因是没有通过threshold: rating: 4来生成负样本,而注释掉train_neg_sample_args: ~后,模型会使用以下隐式反馈来生成负样本。 train_neg_sample_args: uniform: 1
train_neg_sample_args应该是需要设置负采样参数的
我也遇到了这个问题:
LightGCN无法通过设置阈值的方式利用显示反馈。 设置'threshold': {'rating': 3}, 'train_neg_sample_args': None 后,LightGCN会报错 : KeyError: 'neg_item_id' 换成NeuMF模型,其他配置不变,不会出现报错问题。
恳请大家指教