- 用户调查
- 在线评估:A/B test
- 离线评估
1.在线评估
将真实线上用户分组,对不同的组采用不同的方案
- 同时运行,两个或者两个以上的方案
- 两个方案,只有一个变量不同
- 有明确的评价指标
- 试验中用户,从始而终,只接触一个方案
ABtest最常用的场景是 网页优化,测评指标:单击率,转化率等;
- Myspace:ABtest,使用指标单击率
YouTube:ABtest;指标:单击率,长单击率,会话时间,观影前,覆盖率
在线指标
单击率:推荐影片中,单击的电影,占比
设:系统向用户 i 推荐电影n,这些影片中,单击浏览影片的个数是 m ;则,测试期间,该用户的单击率是 pi=mn ;设用户数量是 U , 则A/B测试中的单击率指标P(U)=1U∑uPu
转换率
a. 电商:推荐销售额和总体销售额的比率;
b. 电影:单击量或者播放时长,与总体单击量或者时长的比率;
2. 离线测评
数据集
- 20%的测试集,80%的训练集合
准确度指标
- 评分准确度
- MAE(mean absolute error; 平均绝对误差法)
MAE=1|Ep|∑(u,a∈Ep)|rua−r′ua|
- MAE(mean absolute error; 平均绝对误差法)
其中: 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)))=0∗0+0.5∗0.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=1M∑uPu
召回率
Ru=NtpNtp+Ntn
所有用户求平均
R=1M∑uRu
- 准确率就是A/(A+B) 大白话就是“你的预测有多少是对的”
- 召回率就是A/(A+C) 大白话就是“正例里你的预测覆盖了多少”
F
F=(a2+1)∗P∗Ra2(P+R)
a=1 => F1=2∗P∗RP+R
AUC
- PRF是针对二分问题
- 对于只有评分的系统,绘制ROC曲线,计算AUC(AUC表示ROC曲线下的面积)