推荐系统效果评估

用户调研

  • 优点:可以获得很多体现用户主观感受的指标,比在线实验风险低,出现错误后很容易弥补。
  • 缺点:招募测试用户代价较大;很难组织大规模的测试用户,因此测试结果的统计意义不足。 

在线评估

设计一个在线实验,然后根据用户的在线反馈结果来衡量推荐系统的表现。在线评估中,比较重要的两个选择点是——在线实验方式和在线评估指标。

ABTest介绍

ABTest就是为了实现同一个目标制定两个方案,让一部分用户使用A方案,另一部分用户使用B方案,记录下两部分用户的反馈情况,然后根据相应的评估指标确认哪种方案更好。
互联网行业里,在软件快速上线的过程中,ABTest是一个帮助我们快速试错的实验方法。在统计学上,ABTest其实是假设检验的一种形式。它能帮助开发者了解推荐系统的改动是否有效、能够带来多大的KPI提升。
在推荐系统中,为了对比不同算法、不同数据集对最终结果的影响,通过一定的规则将用户随机分成几组,并对不同组采取不同的召回或推荐算法,最终通过不同组用户的各种评估指标来进行对比分析。
一个典型得到ABTest架构图如下所示:
推荐系统效果评估

这里需要注意的是,在对用户进行分桶并召回商品之后,需要重新将用户打散并分桶,这样能确保不同桶之间的用户没有相关性,召回池中的ABTest和排序部分的ABTest没有关联,互不影响。

在线评估指标

在线评估指标是指在实际的业务场景中去评估推荐系统好坏的指标。常见的在线评估指标包括点击率、转化率、GMV等。

离线评估

根据待评估推荐系统在实验数据集上的表现,基于一些离线评估指标来衡量推荐系统的效果。相比于在线评估,离线评估更方便、更经济,一旦数据集选定,只需将待评估的推荐系统在此数据集上运行即可。离线评估最主要的环节有两个:拆分数据集、选择离线评估指标。
数据集拆分
在机器学习中,通常将数据集拆分为训练数据集、验证数据集和测试数据集。它们的功能分别如下。
训练数据集(Train Dataset):用来构建机器学习模型。
验证数据集(Validation Dataset):辅助构建模型,用于在构建过程中评估模型,为模型提供无偏估计,进而调整模型的超参数。
测试数据集(Test Dataset):评估训练完成的最终模型的性能。
三类数据集在模型训练和评估过程中的使用顺序如图所示。
推荐系统效果评估

数据集拆分的方式有:

  • 留出法
  • K-折交叉验证法
  • 自助法

离线评估指标

离线评估指标用于预估模型上线前在整个推荐系统中能达到的效果。常见的离线评估指标可以分为两大类:
  • 准确度指标:评估推荐系统的最基本的指标,衡量的是指标推荐算法在多大程度上能够准确预测用户对推荐商品的偏好程度,可以分为分类准确度指标、预测评分准确度指标、预测评分指标关联。
  • 非准确度指标:在推荐系统达到一定的准确度之后,衡量推荐系统丰富度和多样性等的指标。

其中预测分类准确度指标包含:

  • AUC
  • 准确率(Accuracy)
  • 精确率(Precision)
  • 召回率(Recall)
  • F-measure值。

预测评分准确度指标包含:

  • 平均绝对误差(MAE)
  • 均方误差(MSE)
  • 均方根误差(RMSE)

预测评分关联指标包含:

  • 皮尔逊积距相关系统
  • 斯皮尔曼等级相关系数
  • 肯德尔等级相关系数

预测排序准确度指标包含:

  • 评价排序分

非准确度的指标包含:

  • 多样性
  • 新颖性
  • 惊喜度
  • 覆盖率
  • 信任度
  • 实时性
  • 健壮性
  • 商业目标

参考资料

https://blog.csdn.net/Gamer_gyt/article/details/96207006