一个好的推荐系统,通常会使得用户、物品提供者和推荐系统三方双赢。预测准确度是推荐系统最重要的指标,一般这个指标比较容易经过离线的数据计算出来。可是准确的预测不表明好的推荐,如这个用户在使用推荐系统以前就准备好购买这个物品,那么对这个物品准确的预测没有任何意义。算法
好的推荐系统不只仅可以准确预测用户的行为,并且可以扩展用户的视野,帮助用户发现那些他们可能会感兴趣,但却不那么容易发现的东西。数据库
从不一样的角度会有不一样的指标,如准确度、覆盖度、新颖度、惊喜度、信任度、透明度等,后面会更加详细的解释。性能
包括离线实验,用户调查和在线实验。测试
离线实验通常包括以下步骤:日志
离线实验的好处是,全部的过程都是经过数据集完成,不须要真实用户的参与,也能够快速的进行计算和实验,方便测试大量的算法。缺点也很明显,正是因为缺乏线上的实际效果的测试,所以,缺乏了商业上关注的指标,如点击率,转化率等等。即便从离线数据中计算了这些指标,与线上实际的指标的结果偏差也较大。class
在对算法会不会下降用户满意度不太有把握的状况下,上线测试会具备较高的风险,因此在上线测试前通常须要作一次称为用户调查的测试。在用户对新推荐系统上的实验以后,观察并记录他们的行为,并对用户满意度等主观感觉进行调查。可是通常用户调查的成本也会比较高,另外参加测试的人数过少一般也不具备统计意义。通常用户调查的实验尽可能是双盲实验,不要让实验人员和用户事先知道测试的目标,以避免用户的回答和实验人员的测试受主观成分的影响。扩展
最多见的在线实验方法就是AB测试。AB测试过必定的规则将用户随机分红几组,并对不一样组的用户采用不一样的算法,而后经过统计不一样组用户的各类不一样的评测指标比较不一样算法,好比能够统计不一样组用户的点击率,经过点击率比较不一样算法的性能。方法
AB测试的优势是能够公平得到不一样算法实际在线时的性能指标,包括商业上关注的指标。AB测试的缺点主要是周期比较长,必须进行长期的实验才能获得可靠的结果。通常那些在离线实验中表现较好的算法才会参与到AB Test当中。因为系统一般由不一样团队负责不一样部分,不一样团队在同时作AB Test的时候不免会相互影响。所以,切分流量是AB Test的关键。不一样的层以及控制这些层的团队须要从一个统一的地方得到本身AB测试的流量,而不一样层之间的流量应该是正交的。统计
一个简单的AB Test系统能够以下图所示:数据
通常来讲,一个新的推荐算法要上线,须要知足上面的三个实延:
下一篇笔记咱们将介绍推荐算法所关注的指标。