验证方法
离线实验
离线实验的方法的步骤如下:
a)通过日志系统获得用户行为数据,并按照一定格式生成一个标准的数据集;
b)将数据集按照一定的规则分成训练集和测试集;
c)在训练集上训练用户兴趣模型,在测试集上进行预测;
d)通过事先定义的离线指标,评测算法在测试集上的预测结果。
从以上步骤看出,离线实验的都是在数据集上完成的。意味着,它不需要一个实际的系统作为支撑,只需要有一个从日志中提取的数据集即可
离线实验的优点是:
不需要有对实际系统的控制权;
不需要用户参与实践;
速度快,可以测试大量算法;
缺点是:
数据集的稀疏性限制了适用范围,例如一个数据集中没有包含某用户的历史行为,则无法评价对该用户的推荐结果;
评价结果的客观性,无法得到用户主观性的评价;
难以找到离线评价指标和在线真实反馈(如 点击率、转化率、点击深度、购买客单价、购买商 品类别等)之间的关联关系;
用户调查
用户调查需要一些真实的用户,让他们在需要测试的推荐系统上完成一些任务。在他们完成任务时,需要观察和记录用户的行为,并让他们回答一些问题。
最后,我们通过分析他们的行为和答案,了解测试系统的性能。
用户调查的优点是:
可以获得用户主观感受的指标,出错后容易弥补
缺点是:
招募测试用户代价较大;
无法组织大规模的测试用户,统计意义不足;
在线实验
在完成离线实验和用户调查之后,可以将系统上线做AB测试,将它和旧算法进行比较。
在线实验最常用的评测算法是【A/B测试】,它通过一定的规则将用户随机分成几组,对不同组的用户采用不同的算法,然后通过统计不同组的评测指标,比较不同算法的好坏。
它的核心思想是:
a) 多个方案并行测试;
b) 每个方案只有一个变量不同;
c) 以某种规则优胜劣汰。
其中第2点暗示了A/B 测试的应用范围:A/B测试必须是单变量。
对于推荐系统的评价中,唯一变量就是--推荐算法。
AB测试的优点是:
可以公平获得不同算法实际在线时的性能指标,包括商业上关注的指标;
缺点是:
周期较长,必须进行长期的实验才能得到可靠的结果;
大型网站做AB测试,可能会因为不同团队同时进行各种测试对结果造成干扰,所以切分流量是AB测试中的关键。
不同的层以及控制这些层的团队,需要从一个统一的地方获得自己AB测试的流量,而不同层之间的流量应该是正交的。
评判指标
用户满意度
用户满意度是评测推荐系统的重要指标,无法离线计算,只能通过用户调查或者在线实验获得。
调查问卷,需要考虑到用户各方面的感受,用户才能针对问题给出准确的回答。
在线系统中,用户满意度通过统计用户行为得到。比如用户如果购买了推荐的商品,就表示他们在一定程度上满意,可以用购买率度量用户满意度。
一般情况,我们可以用用户点击率、停留时间、转化率等指标度量用户的满意度。
覆盖率
多样性
新颖性
惊喜度
信任度
实时性
健壮性
商业目标