在评估协同过滤推荐系统时,按时间分割数据是可行的。但是,通过这样做,一些用户可能只出现在训练集或测试集中。例如,考虑以下示例:
user year
0 2020
0 2020
0 2021
1 2021
1 2021
1 2021
2 2020
2 2021
2 2021
如果我们决定按年份划分,以便 2020 年之后的评级将在测试集中,那么:
Train
user year
0 2020
0 2020
2 2020
Test
user year
0 2021
1 2021
1 2021
1 2021
2 2021
2 2021
这意味着用户 1 根本不会在训练集中。当使用矩阵分解/潜在模型时,由于用户 1 不在训练集中,当我们将潜在因子U和V相乘得到预测评分矩阵时,用户 1 根本不会在其中,因此我们不会能够预测用户 1 的评分。这也适用于项目,尽管此处未显示。
如何处理?是否只是简单地从测试集中删除不在训练集中的用户?这不会导致大量数据浪费吗?