推荐算法:推荐系统的评估

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mijian1207mijian/article/details/52021725
  • 用户调查
  • 在线评估:A/B test
  • 离线评估

1.在线评估

  • 将真实线上用户分组,对不同的组采用不同的方案

    1. 同时运行,两个或者两个以上的方案
    2. 两个方案,只有一个变量不同
    3. 有明确的评价指标
    4. 试验中用户,从始而终,只接触一个方案
  • ABtest最常用的场景是 网页优化,测评指标:单击率,转化率等;

  • Myspace:ABtest,使用指标单击率
  • YouTube:ABtest;指标:单击率,长单击率,会话时间,观影前,覆盖率

    在线指标

    1. 单击率:推荐影片中,单击的电影,占比
      设:系统向用户i 推荐电影n,这些影片中,单击浏览影片的个数是 m ;则,测试期间,该用户的单击率是 pi=mn ;设用户数量是 U, 则A/B测试中的单击率指标

      P(U)=1UuPu

    2. 转换率
      a. 电商:推荐销售额和总体销售额的比率;
      b. 电影:单击量或者播放时长,与总体单击量或者时长的比率;


2. 离线测评

数据集

  • 20%的测试集,80%的训练集合

准确度指标

  • 评分准确度
    1. MAE(mean absolute error; 平均绝对误差法)
      MAE=1|Ep|(u,aEp)|ruarua|

其中:Ep 是测试数据集合;

  • 预测评分关联度:推荐系统的预测评分和真实评分未必接近,只有趋势相同就好
    (少用)

排序准确度(TopN)

  • 排序准确度:有序推荐表和用户对物品排序的统一程度

    RSua=IuaLu

Lu 是视频推荐系统中用户u 待推荐的列表大小;离线测试,用户u 在测试集中影片数量+未打分的影片数量
Iua 是 预测影片 a 在用户推荐列表中的排名

平均准确度指标

  • 推荐排序的好坏

AP@x=i=1x(predictioni(changeinrecall)i)

  • 例如:某用户喜欢的项目 1 2 3 4 5; 推荐给用户的项目: 6 4 7 1 2;推荐给用户Top2:[6 4]

AP@2=(prediction1(changeinrecall1)+(prediction2(changeinrecall2)))=00+0.50.5=0.25

MAP是AP的值,计算后再求平均

NDCG

http://blog.csdn.net/u014313009/article/details/38944687
* 衡量相关度的排序质量评价指标;

CGP=i=1preli
推荐结果的相关度相加(未考虑排序)

DCGP=reli+i=1p2relilog2(i)
排名顺序加权

NDCGp=DCGpIDCGp
DCGP 的归一化

比如在Google搜索到一个词,得到5个结果。我们对这些结果进行3个等级的区分:Good、Fair、Bad,对应的分值分别是3、2、1。假设这5个结果的分值分别是3、1、2、3、2。

* reli 就是第 i 个结果的得分。


3. 分类的准确度

用户喜欢 推荐 不推荐
喜欢 N(tp) N(tn)
不喜欢 N(fp) N(fn)

* N(tp): 用户喜欢;推荐。
* N(tn): 用户喜欢;没推荐
* N(fp):用户不喜欢;推荐;
* N(fn):用户不喜欢;不推荐

准确率

Pu=NtpNtp+Nfp

所有用户求平均
P=1MuPu

召回率

Ru=NtpNtp+Ntn

所有用户求平均
R=1MuRu

  • 准确率就是A/(A+B) 大白话就是“你的预测有多少是对的”
  • 召回率就是A/(A+C) 大白话就是“正例里你的预测覆盖了多少”

F

F=(a2+1)PRa2(P+R)

a=1 =>F1=2PRP+R

AUC

  • PRF是针对二分问题
  • 对于只有评分的系统,绘制ROC曲线,计算AUC(AUC表示ROC曲线下的面积)

3. 多样性指标

覆盖率

多样性

新颖性

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页