推荐系统常用测评方法和指标

摘要:

  测评方法:

    离线实验

    在线实验

  测评指标:

  1.用户满意度

    在线测评方法

  2.预测准确率

     2.1评分预测

     2.2TopN推荐

  3.覆盖率(coverage)

  4.多样性

  5.新颖性  

内容:

  

测评方法:

    离线实验

    (1)通过日志系统获得用户行为数据,并按照一定格式生成一个标准的数据集;

    (2)将数据集按照一定的规则分成训练集和测试集;

    (3)在训练集上训练用户兴趣模型,在测试集上进行预测;

     (4)通过事先定义的离线指标测评算法在测试集上的预测结果。

    

     离线实验常见的预测指标:准确率,召回率,Fscore等

 

    在线实验

         

在完成离线实验和必要的用户调查后,可以将推荐系统上线做AB测试
同样有几点需要注意:
(1)AB test 的好处是显而易见的,可以公平获得不同算法实际在线时的性能指标;
(2)AB test 和用户调查一样,同样需要考虑到分布的随机,尽量要将与最终指标有相关性的因素都列出来,总而言之就是切分流量是AB test 的关键;
(3)AB test 的一个重要缺点就是实验周期长,这样才能得到可靠的结果,因此AB test 不应该测试所有的算法,而是只测试在离线实验和用户调查中表现很好的算法
(4)如果有用户标签库的话,会极大的帮助在线实验。

4. 总结

一个新的推荐算法最终上线,需要完成上面所说的3个实验:
(1)首先,需要通过离线实验证明它在很多离线指标上优于现有的算法;
(2)然后,需要通过用户调查确定它的用户满意度不低于现有的算法;
(3)最后,通过在线等AB测试确定它在我们关心的指标上优于现有的算法。

 

测评指标

  1.用户满意度

     在线测评方法:主要通过用户行为的统计(点击,停留时间,转化率)或者通过用户反馈(满意,不满意)

  2.预测准确率

    2.1评分预测

   定义:预测用户对物品的评分的行为

   指标:
    均方根误差(RMSE):

    

    平均绝对误差(MAE):

    

   其中Rui是用户u对物品i的实际评分,hat(Rui)是推荐系统预测的用户u对物品i的预测评分;|T|是总记录数

    2.2TopN推荐

   定义:TopN推荐是通过给用户一个前N个喜好物品的推荐列表,TopN推荐的预测率一般通过准确率(precision)/召回率(recall)度量

   指标:

    准确率:

    

    召回率:

     

    其中R(u)是根据用户在训练集中的行为给出的推荐列表,T(u)是根据用户在测试集中的行为给出的推荐列表

    预测率:

     rate = Precision / Recall

    平均准确率:

     

    参考链接(https://www.kaggle.com/wiki/MeanAveragePrecision

  3.覆盖率(coverage)

   定义:度量了一个推荐系统挖掘长尾商品的能力

   指标:

    指标1:

    

    其中U是用户集合,I是物品集合,R(u)是为用户u推荐的N个物品的集合

    统计分布的指标:

    信息熵

    ,其中p(i)是物品i的流行度比上所有物品的流行度

    基尼系数(不同于CART中gini 系数):

    其中p(Ij)是降序的物品流行度字典的第j个物品的流行度

      

  4.多样性(Diversity)

    定义:推荐系统中物品两两之间的不相似性

    指标:

     用户u的推荐列表R(u)的多样性:

      ,其中s(i,j)是物品i,j的相似度

     推荐系统的整体多样性:

     ,即所有用户推荐列表多样性的平均值

 

  5.新颖性

      定义:给用户推荐以前没有接触过的物品的度量

      指标:平均流行度(越高,新颖性越低)

选择不同维度,对推荐系统进行测评

 

我的python代码:https://github.com/Tongzhenguo/Python-Project/tree/master/recommendsys/measurement_index

posted @ 2016-11-16 23:23  混沌战神阿瑞斯  阅读(3442)  评论(0编辑  收藏  举报