第七章
推荐系统的评估
离线评估方法与其基本评价指标
基本原理是在离线环境中,将数据集分为训练集和测试集
用训练集训练模型,用测试集评估模型
离线评估的主要方法
Holdout检验
将原始的样本随机划分为训练集和验证集两部分 7-3分
缺点:
验证集上的计算出来的评估指标与训练集和验证集的划分有直接关系,
存在一定的随机性,所以 交叉检验 的思想被提出
交叉检验
k-fold交叉验证
留一验证:样本多开销大,留p验证的特例(开销更大)
自助法
Bootstrap是基于自助采样法的检验方法
离线评估的指标
准确率
准确率= 被正确分类的样本个数/总样本数
精确率与召回率
精确率:Precision:分类正确的正样本个数占分类器判定为正样本的样本个数比例
召回率:Recall:分类正确的正样本个数占真正的样本个数的比例
排序模型中使用TopN来正样本,即
Precision@N、Recall@N
综合反映结果,使用F1-score
F1 = 2PR/(P+R)
均方根误差
RMSE(Root Mean Square Error):衡量回归模型的好坏
一般情况下,RMSE很够很好的反映偏离程度,
若存在个别偏离程度非常大的离群点,RMSE会变差,可以使用
鲁棒性更强的平均绝对百分比误差MAPE(Mean Absolute Percent Error)
MAPE把每个点的误差进行了归一化,降低了个别离群点带来的绝对误差的影响
对数损失函数
LogLoss就是LR的损失函数
LogLoss作为评估指标能够非常直观的反映出损失函数的变化
适于观察模型收敛情况的评估指标
直接评估推荐序列的离线指标
使用直接评估推荐序列的指标来评估推荐模型,更加合适
P-R曲线
P-R曲线的横轴是召回率、纵轴是精确率
P-R曲线的某一个点代表:在某一阈值下,模型将大于该阈值的结果判定为正样本,小于该阈值的结果判定Wie负样本,排序结果对应的召回率和精确率
AUC(Area Under Curve)能够量化P-R曲线的优劣,越大则排序模型的性能越好
ROC曲线
ROC(the Receiver Operating Characteristic)
横坐标为False Positive Rate(FPR,假阳性率)
纵坐标为True Positive Rate(TPR,真阳性率)
FPR = FP/N
TPR = TP/P
p为真实的正样本数量,N为真实的负样本数量
TP:P个正样本中被分类器预测为正样本的个数
FP:N个负样本中被分类器预测为负样本的个数
同样用AUC评估
平均精度均值
mAP(mean Average Precision):对平均精度再次平均
mAP需要对每个用户的样本进行分用户排序,PR和ROC曲线均是对全量测试样本进行排序
合理选择评估指标
归一化折扣累计收益(Normalized Discounted Cumulative Gain,NDCG)
覆盖率、多样性
Replay—更接近线上环境的离线评估方法
离线评估的重点是让离线评估的结果能够尽量接近线上结果
动态离线评估方法
整个动态评估的过程也变成了逐一样本回放的精准线上仿真过程,经典的仿真式离线评估方法-replay
replay,强化学习类模型唯一的离线评估方法
Netflix的Replay评估方法实践
replay方法通过重播在线数据流的方法进行离线测试
注意,样本中不能包含任何 未来信息 ,要避免 数据穿越 的现象
AB测试与线上评估指标
AB测试无法被替代
- 离线评估无法完全消除数据有偏现象的影响
- 离线评估无法完全还原线上的工程环境
- 线上系统的某些商业指标在离线指标中无法计算
注意样本独立性、采样方式的无偏性
层与层之间的流量 正交
层与层之间的独立实验流量是正交的,即实验中每组的流量穿越该层后,都会被再次随机打散,且均匀分布在下层实验的每个实验中
同层之间的流量 互斥
同层之间需要是互斥的,用户不重叠
快速线上评估方法-Interleaving
AB测试需要增长太快,线上资源严重不足
Interleaving当做线上AB测试的预选阶段
不区分AB组,而是把不同的被测对象同时提供给受试者,最后根据受试者喜好得到评估结果的方法就是interleaving
使用interleaving需要考虑位置偏差的存在,避免来自算法A的视频总排在第一位,因此需要以相等概率让算法A和算法B交替领先
Interleaving优点是所需样本少,测试速度快,结果与传统AB测试无明显差异
局限性:
- 工程实现的框架比abtest复杂,interleaving的实验逻辑和业务逻辑会纠缠在一起
- interleaving的方法只是对“用户对算法推荐结果偏好程度”的相对测量,不能得出一个算法真实的表现