当前位置: 代码迷 >> 综合 >> Are We Evaluating Rigorously? Benchmarking Recommendation for Reproducible Evaluation and Fair Compa
  详细解决方案

Are We Evaluating Rigorously? Benchmarking Recommendation for Reproducible Evaluation and Fair Compa

热度:81   发布时间:2023-12-06 04:12:49.0

目录

      • 1 INTRODUCTION
      • 2 PAPER COLLECTION AND ANALYSIS
        • 2.1 Paper Collection
        • 2.2 Paper Analysis
          • 2.2.1 数据集
          • 2.2.2 数据预处理
          • 2.2.3 对比 Baseline
          • 2.2.4 目标函数
          • 2.2.5 负采样
          • 2.2.6 数据划分方法
          • 2.2.7 评价指标
          • 2.2.8 超参数调整
      • 3 IMPACTS OF DIFFERENT FACTORS
        • 3.1 数据预处理
        • 3.2 目标函数
        • 3.3 负采样
        • 3.4 数据划分方式
        • 3.5 评价指标
        • 3.6 复杂度分析
      • 4 BENCHMARKING EVALUATION

  • Are We Evaluating Rigorously? Benchmarking Recommendation for Reproducible Evaluation and Fair Comparison
    在这里插入图片描述
  • RecSys 2020
    本文针对基于隐式行为的top-N推荐算法,探讨严谨的评估方式。

1 INTRODUCTION

推荐算法的分类:

  • 基于内存的方法,MMs
  • 基于隐含因素的方法,LFMs
  • 基于表示学习的方法,RLMs,包括基于物品嵌入的方法、基于深度学习的方法(DLMs)

一项最新研究(Are we really making much progress? A worrying analysis of recent neural recommendation approaches.)表明通过仔细的设置,baseline方法可以超出很多新提出的方法。基准推荐在两个方面极具挑战性:

  • 不同领域、不同平台很多数据集,研究人员只报告挑选数据集的结果
  • 不同的数据处理策略、数据划分方法、评估指标和参数设置,多数论文没有报告数据处理和参数设置的详细过程,导致复现结果不一致

2 PAPER COLLECTION AND ANALYSIS

2.1 Paper Collection

近三年2017-2019,8个顶级会议:RecSys, KDD, SIGIR, WWW, IJCAI, AAAI, WSDM and CIKM。侧重于基于隐式行为的top-N推荐算法,最终获得85篇论文。
在这里插入图片描述

2.2 Paper Analysis

2.2.1 数据集

数据集上的问题:领域多样性、版本多样性。85篇论文中用到65个数据集(版本不同也算一个)。本文挑选了六个数据集作为研究对象:ML-1M (Movie), Lastfm (Music), Yelp (LBSNs), Epinions (SNs), Book-X (Book) and AMZe (Consumable)。本文还详细说明了这六个数据集的版本以及来源链接。

2.2.2 数据预处理

将显式行为处理成隐式行为,将评分设定一个阈值 ttt, 评分>= ttt的样本处理成正样本。按照主要的研究,对于ML-1M数据集,t=4t=4t=4;其他数据集,t=1t=1t=1
由于原始数据集都比较稀疏,50%论文明确指出采用了数据预处理策略,大多使用 5-filter setting或者10-filter setting(分别过滤出少于5或10个交互的用户和物品。),也有使用1-,2-,3-,4-,20-,30-设置的。
注意区分K-fiter和K-core:

  • 按照K值,用户和物品只过滤一次
  • 按照K值,多次过滤,直到所有的用户和物品都至少有K次交互
    在这里插入图片描述
2.2.3 对比 Baseline

挑选了10个最多使用的,

  • 基于记忆的:MostPop,ItemKNN
  • 基于隐含因子的:BPRMF, FM, WRMF, PureSVD, SLIM,eALS
  • 基于表示学习的:NeuMF,CKE
2.2.4 目标函数

point-wise(49%),pair-wise(42%)
无论用哪种loss,在模型中适当的使用未观察的反馈是很重要的。
在这里插入图片描述
其中 ruij=rui?ruj,r^uij=r^ui?r^ujr_{uij}=r_{ui}-r_{uj},\hat r_{uij}=\hat r_{ui}-\hat r_{uj}ruij?=rui??ruj?,r^uij?=r^ui??r^uj?
point-wise经常采用均方根误差和交叉熵,pair-wise经常采用log loss和hinge loss
在这里插入图片描述
按照主要研究,将未观察到的反馈看做负样本。
在这里插入图片描述

2.2.5 负采样

利用所有的未观察反馈(大量)是不切实际的,因此进行负采样。

  • 均匀采样(uniform sampler),所有未观察到的反馈抽取到的概率相同
  • 低流行度采样,每个用户的未观察物品中,低流行度的物品抽取到的概率越高
  • 高流行度采样,每个用户的未观察物品中,高流行度的物品抽取到的概率越高
2.2.6 数据划分方法

基本上两种方法最常用:

  • 按比例划分(split-by-ratio),61%论文,用户-物品交互记录固定比例作为train,(应该是每位用户的交互记录的固定比例吧)
  • 留一法(leave-one-out),28%论文,每位用户只选一个交互物品作为test(应该是最新交互吗??)
  • 5%的论文直接按照时间戳来,在某个时间戳之前的作为train

按比例划分具体实施上有很多不同:

  • 不同的比例,train比例50%、70%、90%
  • 全局或者用户级别的划分,直接80%,还是每位用户的80%
  • 随机还是按照时间划分,88%的论文随机划分,时间划分就是跳出最新的一定比例的作为test

而留一法,基本都是按照用户来划分的(每位用户一个item作为test),54%留一法的论文考虑了时间(挑最新的一个item作为test)。

为了提升test效率,they(包括两个方法还是只有留一法呢?)总是挑选固定数量的负样本集合(neg_test = 99, 100, 999, 1000),将每个test item在这[neg_test+1]物品集合中进行排序。

本文使用基于时间的、global级别的按80%比例划分方式,未每位用户做test负采样,保证test候选集合数量为1000。

table2b 展示了经过k-filter的数据集上用户、物品的平均交互数
在这里插入图片描述

2.2.7 评价指标

本文挑选6个:

  • Precision、Recall、MAP、HR,衡量test item在不在top-N推荐列表中
  • MRP、NDCG,考虑test item的排序位置
2.2.8 超参数调整
  • 验证策略
    • 37%的论文直接基于test集合调整参数
    • 交叉验证方法
    • 主要讲了嵌套验证,当模型在validation集合上达到最好表现时,参数调整结束
    • 本文采取嵌套验证,在每一次的交叉验证中,挑选10%的train作为validation,用validation来调参,一旦确定了超参数的最佳设置,将整个train集(包括validation集)送入模型,来训练最终的模型,并且记录模型在test集合上的表现。
  • 搜索策略
    • 基本所有的论文都采用网格搜索,每个超参数有一组可能的取值,遍历所有可能的超参数取值组合,找到最佳超参数。
    • 随机搜索,随机选择预先定义的次数(比如30次就结束),而不是遍历整个空间
    • 贝叶斯参数优化,本文针对NDCG采用贝叶斯参数优化

3 IMPACTS OF DIFFERENT FACTORS

3.1 数据预处理

  • 采用贝叶斯参数优化,优化NDCG@10的参数
  • 在每个数据集上、每种策略下的每个baseline上,30trails(这是参数优化那的名词??)
  • 保持table2a的原始目标函数,使用均匀采样,按照时间80%比例、global级别进行数据集划分,10%最新的train集作为验证集
  • 目的是探究 [原始数据集、5-filter数据集、10-filter数据集] 三种处理方式的影响

在这里插入图片描述
在这里插入图片描述
结论:平均每个用户的train数据越多,模型表现越好。
NeuMF虽然是基于深度学习的方法,但在一些数据集上的表现不如调整好参数的baseline。

3.2 目标函数

采用10-filter设置,只对BPRMF、BPRFM和NeuMF对比了目标函数。
在这里插入图片描述
结论:pair-wise+log loss基本上对于所有模型实现最好效果;BPRMF+pair-wise+log loss基本是最好的模型。

3.3 负采样

对比随机采样-低流行度采样-高流行度采样对模型的影响
在这里插入图片描述
结论:随机采样最好

3.4 数据划分方式

80%比例global划分,对比[随机划分]和[按时间划分]
在这里插入图片描述
结论:在按比例划分中,随机选择train效果远远好于按时间划分(自己之前在ml-1m上也发现过 哈哈)
可能是按时间划分的train相当于有了约束,很难学习,但是和实际场景比较接近。

3.5 评价指标

这个贝叶斯参数优化着实没看懂啥意思。
在这里插入图片描述
较深的颜色表明两者更加相关,结果显示优化NDCG并不能同时优化其他五个指标。而且交叉矩阵是非对称的。
NDCG-HR-0.72;MRP-MAP-0.78
而5f表示,颜色越深,表示两个指标越可能产生相同的排名
在这里插入图片描述

3.6 复杂度分析

在这里插入图片描述

4 BENCHMARKING EVALUATION

在这里插入图片描述
DaisyRec,https://github.com/AmazingDD/daisyRec
在这里插入图片描述

  相关解决方案