场景描述:
在户两位公司中,A/B测试是验证新模块,新功能,新产品是否有效,新算法,新模型的效果是否有提升,新设计是否受到用户欢迎,新更改是否影响用户体验的主要测试方法。在机器学习领域中A/B测试是验证模型最终效果的主要手段。
在对模型进行过充分的离线评估之后,为什么还要进行在线A/B测试?
需要进行在线A/B测试原因如下
一:离线评估无法完全消除模型过拟合的影响,因此得出的离线评估结果无法完全替代线上评估结果。
二:离线评估无法完全还原线上的工程环境。一般来讲,离线评估往往不会考虑线上环境的延迟,数据丢失,标签数据缺失等情况。因此,离线评估的结果是理想工程环境下的结果。
三:线上系统的某些商业指标在离线评估中无法计算。离线评估一般针对模型本身进行评估,而与模型相关的其他指标,特别是商业指标,往往无法直接获得。
比如上了新的推荐系统,离线评估更加关注的是ROC曲线,P-R曲线等的改进,而线上苹果可以全面了解该推荐算法带来的用户点击率,留存时长,PV访问量等的变化,这些都是有A/B测试来进行全面的评估。
如何进行线上A/B测试?
进行A/B测试的主要手段是进行用户分桶,即将用户分为实验组和对照组,对实验组的用户施以新模型,对照组的用户施以旧模型。在分桶的过程中,要注意样本的独立性和采样方式的无偏性,确保同一个用户每次只能分到一个桶里,在分桶过程中选取的user_id需要是一个随机数,这样才能保证桶中的样本是无偏的。
如何划分实验组和对照组?
组合一定是整个针对用户的全集,没有偏差的分离,不互相包含。在分桶的过程中,要注意样本的独立性和采样方式的无偏性,确保同一个用户每次只能分到一个桶里,在分桶过程中选取的user_id需要是一个随机数,这样才能保证桶中的样本是无偏的。这个过程就是话费实验组和对照组。