Closed WangZesheng12 closed 2 years ago
你好,感谢关注!
首先是数据划分的参数配置。本文实验中都是加载了提前预处理好的训练、测试、验证集,参数配置如下: https://github.com/RUCAIBox/CORE/blob/d945dfce012e94eff96584230a842ad61ca55c88/props/overall.yaml#L2
当设置了 benchmark_filename
后,就只会进行 benchmark 加载,不会进一步进行其他数据处理了,因此就不会进行您提到的
将一个 session 序列按 8:1:1 分开,也就说如果一个会话长度为10,则前8个item为训练集,第9个item为验证,第10个item 为测试集
这种操作了。
其次是本文实验中加载的 benchmark 是如何处理的。正如您所说,
现在会话推荐领域大部分工作的划分是基于 session 为最小单位,即如果 1000 个session,那么前900个训练,100验证100测试。
我们在划分训练、测试、验证集时也采用了您所说的方式,数据集预处理脚本其实也是沿用了现有工作的处理流程,参见 [preprocess.py]。
希望有所帮助,如果还是无法复现可以贴出更多信息 :)
感谢回复!我已经找到了自己实现的代码中的 bug,基本达到了论文中的效果,我会关闭这个 issue。 Excellent work !!!
你好,excellent work! 关于实验部分我想请教一下,论文当中提到将 session 数据集按 8:1:1 的比例划分 train/val/test,代码中的 config 为
split: RS: [0.8, 0.1, 0.1] 我之前读 recbole 源码的时候,这种方式应该是将一个 session 序列按 8:1:1 分开,也就说如果一个会话长度为10,则前8个item为训练集,第9个item为验证,第10个item 为测试集,请问我这样理解是正确的吗? 因为现在会话推荐领域大部分工作的划分是基于 session 为最小单位,即如果 1000 个session,那么前900个训练,100验证100测试。 我在自己实现 CORE-ave 的时候无法复现结果,突然想到这个问题,请不吝赐教,感谢!🙏