RUCAIBox / NCL

[WWW'22] Official PyTorch implementation for "Improving Graph Collaborative Filtering with Neighborhood-enriched Contrastive Learning".
119 stars 20 forks source link

关于valid和test评估的问题 #40

Closed downeykking closed 1 year ago

downeykking commented 1 year ago

您好!想请问下论文中报告的结果都是在test阶段去掉了train和valid出现过的items吗?

hyp1231 commented 1 year ago

嗯嗯是的,RecBole 的协同过滤模型默认都是不可重复推荐。

downeykking commented 1 year ago

嗯嗯是的,RecBole 的协同过滤模型默认都是不可重复推荐。

好的~ 还想咨询下baseline都是通过超参数搜寻得到的结果嘛 我找到了一个ml-1m的超参搜寻链接 https://github.com/RUCAIBox/RecBole-GNN/blob/main/results/general/ml-1m.md 想请问下论文中的baseline在其他数据集上是否有推荐参数呢~ 谢谢!

hyp1231 commented 1 year ago

感谢关注!我们全部 baseline 都是超参调优的结果,但是当时好像没有记录最优参数和调参范围,推荐您尝试使用 RecBole 自带的超参调优工具。

downeykking commented 1 year ago

感谢关注!我们全部 baseline 都是超参调优的结果,但是当时好像没有记录最优参数和调参范围,推荐您尝试使用 RecBole 自带的超参调优工具。

有关注到RecBole自带了调参工具,但是还没有太懂实现逻辑,在RecBole-GNN版本是不是我们需要实现:

    parser.add_argument('--config_files', type=str, default=None, help='fixed config files')
    parser.add_argument('--params_file', type=str, default=None, help='parameters file')

params_file就是我们配置的超参数文件,格式形如:

learning_rate choice [0.001]
embedding_size choice [64]
train_batch_size choice [2048]
ssl_weight choice [0.01, 0.05, 0.1, 0.2, 0.5]
ssl_tau choice [0.1, 0.2, 0.5]

config_files就是传统的配置参数,我们需要在里面传入overall.yaml,dataset.yaml,model.yaml这三部分的配置对吗,如果我在properties目录下已经定义好了dataset的yaml,model的yaml,overall.yaml,此时哪个的优先级较高呢? 我现在定义的config_files.yaml如下,此时也可以跑起来,但是这种情况下是不是dataset和model的配置就是先去找properties下的yaml呢,然后下面这个文件里面定义的参数优先级又高于properties下的yaml?

dataset: "ml-100k"
model: "mymodel"
embedding_size: 64
n_layers: 3
ssl_tau: 0.2
ssl_weight: 0.005
reg_weight: 1e-5
hyp1231 commented 1 year ago

您好,如果您使用 RecBole-GNN,和 RecBole 一样是从 run_hyper.py 这个代码作为程序的入口,可参考文档。其中 config_files 中写的是您希望更改的那些参数的新值,没写到的参数会自动使用默认参数。默认参数的优先级是小于需要传入的参数的优先级的。

downeykking commented 1 year ago

好的!非常感谢您的耐心回复~