Do Loyal Users Enjoy Better Recommendations? Understanding Recommender Accuracy from a Time Perspective

Ji Y., Sun A., Zhang J. and Li C. Do Loyal Users Enjoy Better Recommendations? Understanding Recommender Accuracy from a Time Perspective. ICTIR, 2022.

讨论了推荐中一个奇怪的现象.

实验设置

  • 对数据集进行 leave-one-out 的分割, 得到 train/test sets;
  • 将整个数据集按照年份分成 10 份, 然后某个年份上测试, 该年份包括该年前的数据作为训练集. 比如, Y6, 表示将 Y1-Y6 且在之前 train set 中的数据作为训练集, 而将 Y6 且在 test set 中的作为测试. 这么做保证了测试集的时间尽可能保持在一个比较小的时间段内, 从而尽量避免数据的泄露.
  • 作者在 Y6, Y8, Y10 上进行了测试, 不过文中仅报告了 Y10 (因为结论是差不多的).
  • 然后本文会将用户分为 loyal user 和 non-loyal user, 然后判断这两种 user 类型的结果.

实验

Interaction-based Loyalty

  • 利用训练中每个用户的交互数量作为指标, 对 user 进行降序排列, 排在前 50% 的称为 loyal users, 否则为 non-loyal users.

  • 在不同的数据集上, 结果如下:

  • 有趣的是, 大部分情况下, non-loyal users 的结果都会比 loyal users 的结果好, 这个是反直觉的, 因为 loyal users 有更多的交互理应获得更容易建模兴趣.

Active Time Period based Loyalty

  • 利用训练中每个用户的交互时间跨度作为指标, 对 user 进行降序排列, 排在前 50% 的称为 loyal users, 否则为 non-loyal users.

  • 在不同的数据集上, 结果如下:

  • 结论是大致相同的, 但是对于 SASRec, TiSASRec 等序列模型, 结果会改善很多, loyal users, non-loyal users 的结果几乎是差不多了.

Recency

  • 作者认为, 得出上面反直觉的结论, 是因为真正的影响因素是: 无论是交互多的用户还是跨度大的用户, 他们大抵都会有很多 '过时' 的交互, 从而导致上面的结论.

  • 所以, 作者又根据 recency 来区分, 即根据用户的最后一个交互 (测试) 和 他倒数第二个交互的时间间隔进行升序排序, 然后以 \(50^{th}\) percentile 作为阈值, 之前的作为 active users, 之后的作为 inactive users.

  • 结果如下:

  • 可以发现, 此时 active users 的结果就明显优于 inactive users 了. 这一定程度上反映了作者的猜想.

  • 据此, 作者建议我们应该跟关注那些最近的交互而不是一视同仁.

代码

[official]

posted @ 2024-05-04 11:17  馒头and花卷  阅读(5)  评论(0编辑  收藏  举报