UniSRec
UniSRec copied to clipboard
关于预训练的问题
你好,我按照默认参数复现了一下Scientific数据集,发现了一些问题:
- 从头开始训练要比pretrain-finetune效果更好。
- 预训练后,finetune部分参数要比finetune所有参数好,说明finetune会过拟合。
又仔细研究了一下,发现pretrain之后,固定了SASrec,所以才会出现pretrain对比任务对下游任务影响较大。模型参数很小,这样做合理吗?
如果训练bert,我认为预训练是必要的,但是不需要训练bert,参数量很小,从头训练效果更好,预训练是不是多此一举?
你好,感谢复现实验以及提出这些很好的问题!也抱歉回复这么晚。
我们论文中报告的数字是进行超参数调优后,选择验证集上效果最好的一组超参数,再在验证集上进行测试的。我们也观察到未经过预训练的模型可能在某个超参数上验证集效果很好,但测试集上泛化性就较差了。如果只用一组参数,且不重复实验的话可能导致结论相对比较随机。
不过我们的确观察到,在 UniSRec 中,推荐模型的预训练增益还是比较受限,在某些时候甚至会出现负迁移的情况。因此我们后面提出了新模型 VQ-Rec,这个模型使用了相同的实验设置,模型可以在只使用文本特征时较为稳定地受益于预训练。
但随着大家对预训练、scaling law 的认识不断更新,如何通过预训练提升推荐模型的效果还是一个待解决的问题,UniSRec 和 VQ-Rec 也可能给出在现在看来值得怀疑的结论(比如预训练模型的参数量应该是多少?微调时允许调整多少?什么情况下可能说明过拟合了?如何判断预训练是否是有必要的?)。