推荐系统评测的三个步骤
一般来说,一个新的推荐算法最终上线,需要完成离线实验,用户调查和在线实验三个步骤。
首先需要通过俩西安实验证明它在很多离线指标上优于现有算法。
然后,需要通过用户调查确定它的用户满意度不低于现有算法。
最后,通过在线的AB测试确定他在我们关心的指标上优于现有算法。
一、离线实验
离线实验的方法一般由如下几个步骤构成:
1:通过日志系统获得用户行为数据,并按照一定格式生成一个标准的数据集。
2:将数据集按照一定的规则分成训练集和测试集。
3:在训练集上训练用户兴趣模型,在测试集上进行预测。
4:通过实现定义的离线指标评测算法在测试集上预测结果。
离线实验的好处在不需要真是用户参与,可以直接快速地计算出来,从而方便,快速的测试大量不同的算法、他的主要缺点是无法获得很多商业上关注的指标,如点击率,转化率。离线实验的指标和实际的商业指标存在差距,比如预测准确性和用户友好度之间就存在很大的差别,高预测准确率不等于高用户满意度。
对离线实验算法的评价,最好的办法是将算法直接上线测试,但在对算放会不会降低用户满意度不太有把握的情况下,上线测试具有较高的风险。所以一般在上线测试前一般需要做一次称为用户调查的测试。
二、 用户调查
用户调查是推荐系统评测的一个重要工具,很多离线是没有办法评测的与用户主观感受有关的指标都可以通过用户调查获得。
用户调查需要找一些真是用户,让他们在需要测试的推荐系统上完成一些任务。
在他们完成任务是,我们需要观察和记录他们的行为,并让他们回答一些问题。
最后,我们需要通过分析他们的行为和答案了解推荐系统的性能。
不过,用户调查成本很高,需要用户花大量时间完成一个个人物,并回答相关的问题,有些时候,还需要花钱雇佣测试用户。因此,大多数情况下,很难进行大规模的用户调查,而对于参数人数较少的用户调查,得出的很多结论往往没有统计意义。
做用户调查时,一方面要控制成本,另一方面又要保证结果的统计意义。
需要注意的是,测试用户不是随便选择的,需要尽量保证测试用户的分布和真是用户的分布相同,比如男女各半,以及年龄、活跃度和分布都和真是用户尽量相同。
此外,用户调查要尽量保证双盲实验,不要让实验人员和测试用户事先知道测试的目标,以免用户的回答和实验人员主观成分的影响。不过要保证双盲实验是非常困难的事情,而且用户在测试环境下的行为和真是环境下的行为可能有所不同。
三、 在线测试
在完成离线实验和必要的用户调查后,可以将推荐系统做AB测试,将它和旧的算法进行比较。
AB测试是一种很常用的在线评测算法的实验方法,他通过一定的规则将用户随机分成几组,并对不同组的用户采用不同的算放,然后通过统计不同组用户的各种不同的评测指标还比较不同算法。比如可以统计不同组用户的点击率,通过点击率比较不同算法的性能。
AB测试的优点是可以公平获得不同算法实际在线时的性能指标,包括商业上的关注指标。不过AB测试的周期性比较长,必须进行长期的实现才能的到可靠的结果。因此一般不会用AB测试测试所用的算法,而只是用它测试那些在离线实验和用户调查中表现比较好的算法。