An Analysis of Sequential Recommendation Datasets
概
本文讨论了 MovieLens 系列数据集是否适用于序列推荐.
统计角度论证
- 作者为了论证 MovieLens 不适合作为序列推荐数据集, 首先从数据集的统计信息角度出发.
- 上图展示了常用的序列推荐数据集的 Day 分布情况, 如 '6' 上的占比表示该数据集中所有交互均发生在 6 天内的用户的占比. 显然和其它数据集相比, MovieLens 系列的数据集所有的交互有大半发生在一天内.
- Table2 展示了更加精细化的一个指标. 可以发现, ML-1M 每个用户的平均交互时间发生在 0.05s 内, 换言之, 你可以认为大部分用户交互的电影的时间戳是同一个! 要知道, MovieLens 中每个用户的平均交互次数 \(\ge 150\), 怎么可能同一个时间戳内同时给上百部电影打分? 所以作者认为, MovieLens 的数据集并不是真实的用户观看 (打分) 历史, 而是通过某种特殊的数据收集的方式得到的, 这导致如果我们采用的是序列预测, 我们实际上预测是这种数据收集方式, 而不是用户的兴趣变化.
- 如上图所示, MovieLens 的用户主页, 其实就是一堆的推荐电影, 然后你可以去打分, 我想 MovieLens 的数据集就是这么收集过来的. 这么一想, 确实如果 MovieLens 去做 next-item predication 的话, 实际上我们是去预测背后的推荐机制, 而不是用户的观影顺序.
实验论证
-
作者在 SASRec 的基础上, 比较了序列 unshuffled/shuffled 的前后变化情况, 可以发现, 虽然一般来说性能都有下降, 但是 ML-1M 的性能下降是最严重的.
-
我初看的时候很疑惑, 因为我得到的是和作者相反的结论, 这部恰恰说明 ML-1M 是具有很强的 '序列' 性嘛. 现在想来, 作者可能想要表达的是, 这种序列性, 并非是由用户的行为序列导致的, 而是特殊的数据收集方式导致的.
- 为了进一步证明这一点, 作者额外做了一个 rating 的预测任务: 不再预测下一个 item, 而是根据序列预测下一个 item 的 rating. 作者认为这种方式能够抵消数据收集方式带来的影响, 事实也的确如此! 在 rating 的预测任务上, 效果下降的很少.
代码
[official]