推荐系统的评估分为两部分:离线评估和线上评估。
离线评估由于不涉及到工程部署和线上流量切分等工作,因此实施起来比较方便。
离线评估的做法就是将样本划分为训练集和测试集,用训练集训练模型,用测试集评估模型效果。常用的方法是handout,交叉验证,自助法(bootstrap),是机器学习中的基本概念,这里就不展开。
离线评估指标需要设计多个指标从不同的维度评价推荐系统:
把推荐当做一个点击率预估的问题,常用的有准确率、精确率、召回率、F1、logloss、RMSE等;
把推荐当做一个排序问题,常用的有PR曲线,ROC曲线,mAP;
书中提到,设计者对于离线评估指标的正确“打开方式”:
根据业务场景选择2--4个有代表性的离线指标,进行高效率的离线实验,快速定位问题,快速排除不可行的思路,为线上评估找到靠谱的“候选者”。
更接近与线上环境的离线评估方法--Replay.
以时间为维度保存线上流量数据并构造样本,模型按照时间轴,不断进行增量训练,并不断进行模型的离线评估。
线上评估中的A/B测试及线上评估指标
A/B Test是互联网公司上线产品功能前的主要测试方法,其中有比较复杂的理论体系。
AB实验中,流量的分层和分流非常重要,书中总结两点:
1. 层与层之间的流量“正交”
上层流量进入下层应该被均匀打散再分组
2. 同层之间的流量“互斥”
同层内的组与组内流量不重叠
A/BTest的评估指标应同商业指标保持一致。
推荐系统的评估体系