Q5. How can you prove that one improvement you’ve brought to an algorithm is really an improvement over not doing anything?
Q5. 怎么证明一个算法被你优化过?
通常这里我们会分成两种,一种是离线(off-line),一种是在线(on-line)的测试方法。
在线的测试方法最最最最常用的肯定是A/B测试,Udacity.com里面就有一个课程专门讲A/B testing,还跟google的工程师们一起开课,推荐哦。在A/B testing 有几点要注意的: 1.不同的算法都应该在同样的环境下运行; 2.测试时间要有一定保障(我们以前做推荐算法的A/B testing 平均1个月);3.输入的数据需要有随机性,尽量采用用户的原生数据。
离线的方法最常用的是通过准确率P和召回率R的PR曲线或者AOC曲线来观察判断,但这种东方法对于一些微小变化不是很明显,例如我原来的模型有效率是15%,新的算法提到15.5%可能在曲线上并不是很好表示;并且对不同业务,不同模型,还有可能P/R值会更低,因此最有效的方法还是推荐一定要在线测试哦。
最后补充一点是在设计系统的时候,一定要设计有算法版本回滚操作和用户片区测试操作,不懂这是什么的朋友可以参考《我理解的淘宝推荐系统架构》。