A Revisiting Study of Appropriate Offline Evaluation for Top-N Recommendation Algorithms

Zhao W., Lin Z., Feng Z., Wang P. and Wen J. A revisiting study of appropriate offline evaluation for top- n recommendation algorithms. TOIS, 2022.

系统性的讨论了推荐指标, 数据集切分, 优化方式对推荐系统离线评估的影响.

实验设置

  • 数据集:

  • 推荐算法:

    • 传统算法: Popularity, ItemKNN;
    • 矩阵分解: SVD++, BPRMF, NCF;
    • Item similarity-based: Factored Item Similarity Model (FISM), Neural Attentive Item Similarity Model (NAIS);
    • GNN-based: NGCF, LightGCN;
    • Non-sampling algorithms: CDAE, MultiVAE, ENMF.
  • 变化度量: 为了比较改变配置后算法的相对排名变化情况, 假设在两个配置 \(c_1, c_2\) 下, 上述算法的排名根据某个推荐指标得到排名分别为 \(R_k^{(c_1)}, R_k^{(c_2)}\), 作者引入了两个指标来衡量两个排名的一致性:

    • Overlap Ratio at top-\(k\) positions (\(OR@k\)):

      \[OR@k(c_1, c_2) = \frac{ |R_k^{(c_1)} \cap R_k^{(c_2)}| }{ k }, \]

      可以看到, \(OR@k\) 近关注排名前 top-\(k\) 的结果. 越大表示两个配置下 top-\(k\) 算法越一致.
    • Spearman Rank Correlation (SRC):

      \[SRC (c_1, c_2) = 1 - \frac{ 6 \sum_{a \in \mathcal{A}} (r_a^{(c_1)} - r_a^{(c_2)})^2 }{ |\mathcal{A}|^3 - |\mathcal{A}| }, \]

      这里 \(\mathcal{A}\) 表示所有的算法, \(r_a\) 表示算法 \(a\) 的排名. 可以看到, \(SRC\) 是一个综合所有排名的指标. 越大表示两个配置下所有算法越一致.

Evaluation Metrics

  • 首先, 作者调研不同的评价指标下, 对算法排名的影响, 主要考虑了如下的指标: Precision, Recall, F1, Mean Average Precision (MAP), Mean Reciprocal Rank (MRR), Normalized Discounted Cumulative Gain (NDCG), AUC, Novelty, Coverage.

Metric 的一致性

不同的 metrics 导致的算法排名差异

  • 如上图所示, 虽然在不同指标下, 算法的排名不尽相同, 但总体可以分成如下的几组:

    1. Recall;
    2. NDCG, MRR, MAP;
    3. Hit, Precision;
    4. AUC;
    5. Novelty;
    6. Coverage.
  • 总体上来说也是比较好理解, 每个 group 的指标在性质上本身就存在差异. 尤其是排序指标 NDCG, MAP 这种和多样性指标 Novelty, Coverage 之间.

  • 不过比较有意思的是, 对于 top-\(k\) 算法而言, 也就是'最好'的那部分算法而言, 整体的一致性都比较好.

  • 建议: 在评价一个算法的时候, 尽量挑选不同 group 中的指标.

Sampled metrics

  • 虽然 sampled metrics 效率更高, 但是已经有论文指出 sampled metrics 的评估方式是有偏差的, 所以这篇文章进一步探究这个问题.

Sampled metrics 是否会导致和 full ranking 的 metrics 不同的评价

  • 如上图所示, 横坐标是采样的负样本数量, 采样的方式有两种: 均匀采样和依照流行度采样. 可以发现:

    1. Uniform sampling 往往显示更好的效果, 且随着负样本数的增加越发趋近全量的评估;
    2. amendment 表示修正过 bias 的 sampled metrics, 但是作者发现其实效果并不明显.
  • 进一步观测下方的 OR 的结果, 可以发现, 对于 top-\(k\) 的算法而言, 采取 sampled 或者全量的方式评估影响不大.

数据集构建

数据集的选择和预处理

\(k\)-core filtering 的影响

  • 通常, 推荐数据集会进行这样的一个预处理, 即不断删除不活跃的 user/item 直到至少有 \(k\) 个 items/users. 那么这种预处理的方式影响有多大呢?

  • 如上图所示, 并没有一致性的答案, 前后的差异和数据集有关系, 作者进一步猜测, 差异性程度和数据集 user, item 的各自交互比例有关系, 越平衡一致性越好.

  • 建议: 数据集的选择应当覆盖 domian, sparsity, data characteristics.

数据集的切分

  • 作者考虑了如下的四种切分方式:
    • Rankdom Ordering Ratio-based Splitting (RO_RS): 随机打乱用户的交互, 然后用户的数据按照比例进行切分;
    • Rankdom Ordering Leave-one-out Splitting (RO_LS): 随机打乱用户的交互, 然后用户的序列中的倒一和倒二分别作为测试和验证;
    • Temporal Ordering Ratio-based Splitting (TO_RS): 按时间排列用户的交互, 然后用户的序列按照比例进行切分;
    • Temporal Ordering Leave-one-out Splitting (TO_LS): 按时间排列用户的交互, 然后用户的序列中的倒一和倒二分别作为测试和验证.

数据集的切分方式对结果的影响

  • Data set ordering 对结果的影响更为显著, 所以如果算法是时间相关的, 最好还是选择 temporal ordering 的方式.

数据集的切分方式对产生 invalid recommendations 的影响

  • 上面讨论的方式, 实际上都可能会发生训练集测试集的时间线有重合的情况, 自然有可能会发生 invalid recommendations.

  • 作者通过下列的方式来统计出现 invalid recommendations 的比例:

    \[\#invalid = \frac{1}{|\mathcal{U}|} \sum_{u \in \mathcal{U}} \sum_{i \in \hat{R}_u} I( T_i^f \ge T_u^l ). \]

    其中 \(\hat{R}_u\) 表示给 \(u\) 的推荐列表, \(T_u^l\) 表示用户的最后的交互时间, \(T_i^f\) 表示 \(i\) 的第一次的出现时间.

  • 如上表所示, 总体来说 Temporal ordering 的方式会比 Rankdom ordering 的方式更容易产生更多的 invalid recommendations. 作者给了一点解释, 但是我感觉没啥道理.

模型优化

这块启发不是很大, 感兴趣的请回看原文.

代码

[official]

目标函数

Sampling, non-sampling 方法的差异性

posted @ 2024-05-07 10:43  馒头and花卷  阅读(24)  评论(0编辑  收藏  举报