推荐系统–评估方法和评估指标
评估方法
目前推荐系统中常用的评估方法可以分为两大类:
- 离线评估方法
- 在线评估方法
离线评估方法
离线评估基本思想是,将数据集划分为训练集和测试集,利用训练集得到一个较优的模型,用测试集进行模型评估。按照训练集和测试集的划分方式,主要分为3种:
HoldOut 检验
它将样本按照 70% - 30% 的比例进行划分,70% 的样本用于训练,30% 的样本用于评估模型优劣。
缺点:数据集的划分直接影响评估结果,存在较大的随机性。
K-fold 交叉检验
它首先将全部样本等比划分为 k 个互不相关的子集,然后依次遍历这 k 个子集,每次都把当前子集当作测试集,其余 k-1 个子集作为训练集。最后将 k 次的结果的平均值作为最终评估指标。
自助法
当模型规模比较小时,无论是 HoldOut 检验还是 K-fold 交叉检验,都会使得训练集进一步缩小,可能会影响训练效果。自助法可以在一定程度上解决这个问题。
自助法基本思想是,对于总数为 n 的样本集合,进行 n 次有放回的随机抽样,得到大小为 n 的训练集。在 n 次采样过程中,有的样本会被重复采样,有的没有被抽到过,将没有被抽到过的样本作为测试集进行模型评估。
离线评估方法的优点:
- 不需要部署到生产环境,降低了工程风险
- 节约了宝贵的线上流量资源,能利用丰富的线下计算资源
- 测试时间短,可以同时进行多组测试
离线评估方法的缺点:
- 无法完全消除数据有偏现象的影响
- 无法完全还原线上的工程环境
- 离线评估不能获得某些重要的商业指标,例如点击率、留存时长等
在线评估方法
在线评估方法中最常用的就是 A/B 测试,也称为“分流测试”或“分桶测试”。
A/B 测试分层和分流机制
- 层与层之间的流量 “正交”
- 同层之间的流量“互斥”
层与层之间的流量“正交”:层与层之间的独立实验的流量是正交的,即实验中每组的流量穿过该层后,都会被再次随机打散,且均匀分布在下层实验的每个实验组中。
同层之间的流量“互斥”:
(1). 如果同层之间进行多组 A/B 测试,那么不同测试之间的流量是不重叠的,即“互斥的”。
(2). 一组 A/B 测试中实验组和对照组的流量是不重叠的,是“互斥”的。
评估指标
1. 准确率
分类准确率(Accuracy)是指分类正确的样本占样本总数的比例:
A c c u r a c y = N c o r r e c t N t o t a l Accuracy=\frac{N_{correct}}{N_{total}} Accuracy=NtotalNcorrect
准确率是比较直观的评价指标,具有较强的可解释性,但当存在样本不均衡问题是,占比大的类别对准确率有较大的影响。
2. 精确率
为了帮助我们理解,我们简单回顾以下混淆矩阵:
- TP:实际为正样本,预测为正样本
- FP:实际为负样本,预测为正样本
- TN:实际为负样本,预测为负样本
- FN:实际为正样本,预测为负样本
真实情况 预测为正 预测为负
正样本 TP FN
负样本 FP TN
在推荐系统中,可以表示为:
用户喜好 系统推荐 系统未推荐
喜 欢 TP FN
不喜欢 FP TN
精确率(Precision)表示被预测为正样本的样本中,有多少比例是真的正样本。
P r e c i s i o n = T P T P + F P Precision=\frac{TP}{TP+FP} Precision=TP+FPTP
在推荐系统中,通常没有一个固定的阈值把预测结果直接判定为正样本或负样本,而是采用 Top-N 排序结果的精确率(Precision@N)来衡量模型的性能。即它认为模型排序的 Top-N 结果就是模型判定的正样本,然后计算 Precision@N。
3. 召回率
召回率(Recall)是预测正确的正样本个数占真正的正样本个数的比例。
R e c a l l = T P T P + F N Recall=\frac{TP}{TP+FN} Recall=