推荐系统实践 0x02 推荐系统实验

推荐系统实验

一个好的推荐系统,一般会使得用户、物品提供者和推荐系统三方共赢。预测准确度是推荐系统最重要的指标,通常这个指标比较容易通过离线的数据计算出来。但是准确的预测不代表好的推荐,如这个用户在使用推荐系统之前就准备好购买这个物品,那么对这个物品准确的预测没有任何意义。

好的推荐系统不仅仅能够准确预测用户的行为,而且能够扩展用户的视野,帮助用户发现那些他们可能会感兴趣,但却不那么容易发现的东西。

从不同的角度会有不同的指标,如准确度、覆盖度、新颖度、惊喜度、信任度、透明度等,后面会更加详细的解释。

推荐系统实验方法

包括离线实验,用户调查和在线实验。

离线实验

离线实验一般包括如下步骤:

  1. 数据获取。获取用户行为数据,形成标准数据集。
  2. 划分数据集。分为训练集和测试集。
  3. 模型训练及预测。在训练接上训练用户兴趣模型,在测试集上进行预测。
  4. 评估。通过事先定义的离线指标评测算法在测试集上的预测结果。

离线实验的好处是,所有的过程都是通过数据集完成,不需要真实用户的参与,也可以快速的进行计算和实验,方便测试大量的算法。缺点也很明显,正是由于缺少线上的实际效果的测试,因此,缺少了商业上关注的指标,如点击率,转化率等等。即使从离线数据中计算了这些指标,与线上实际的指标的结果误差也较大。

用户调查

在对算法会不会降低用户满意度不太有把握的情况下,上线测试会具有较高的风险,所以在上线测试前一般需要做一次称为用户调查的测试。在用户对新推荐系统上的实验之后,观察并记录他们的行为,并对用户满意度等主观感受进行调查。但是一般用户调查的成本也会比较高,另外参加测试的人数过少通常也不具有统计意义。一般用户调查的实验尽量是双盲实验,不要让实验人员和用户事先知道测试的目标,以免用户的回答和实验人员的测试受主观成分的影响。

在线实验

最常见的在线实验方法就是AB测试。AB测试过一定的规则将用户随机分成几组,并对不同组的用户采用不同的算法,然后通过统计不同组用户的各种不同的评测指标比较不同算法,比如可以统计不同组用户的点击率,通过点击率比较不同算法的性能。

AB测试的优点是可以公平获得不同算法实际在线时的性能指标,包括商业上关注的指标。AB测试的缺点主要是周期比较长,必须进行长期的实验才能得到可靠的结果。一般那些在离线实验中表现较好的算法才会参与到AB Test当中。由于系统通常由不同团队负责不同部分,不同团队在同时做AB Test的时候难免会相互影响。因此,切分流量是AB Test的关键。不同的层以及控制这些层的团队需要从一个统一的地方获得自己AB测试的流量,而不同层之间的流量应该是正交的。

一个简单的AB Test系统可以如下图所示:

graph LR A[用户] -->B[流量测试系统] X[实验人员] --> B B --> C[网页] C --> D[日志系统] D --> E(日志数据库) X --> F[评测系统] E --> F F --> H[实验报告]

一般来说,一个新的推荐算法要上线,需要满足上面的三个实验:

  1. 离线实验中离线指标优于其他算法。
  2. 用户调查中用户满意度优于其他算法。
  3. AB Test中所关心的指标优于其他算法。

下一篇笔记我们将介绍推荐算法所关注的指标。

原文地址:https://www.cnblogs.com/nomornings/p/14021259.html