《推荐系统》--电子推荐系统算法实践学习笔记(二)

《推荐系统》–电子推荐系统算法实践学习笔记(二)

一、好的推荐系统

1.1 推荐系统评测

1.1.1 推荐系统实验方法

在推荐系统中,主要有3种评测推荐效果的实验方法,即离线实验(offline experiment)、用户调查(user study)和在线实验(online experiment)。

1. 离线实验

离线实验的方法一般由如下几个步骤构成:
(1) 通过日志系统获得用户行为数据,并按照一定格式生成一个标准的数据集;
(2) 将数据集按照一定的规则分成训练集和测试集;
(3) 在训练集上训练用户兴趣模型,在测试集上进行预测;
(4) 通过事先定义的离线指标评测算法在测试集上的预测结果。
推荐系统的离线实验都是在数据集上完成的,只要有一个从实际系统日志中提取的数据集即可。
优点:不需有对实际系统的控制权,不需要用户参与实验,速度快,可以测试大量算法。
缺点:无法计算商业上关心的指标,离线实验的指标和商业指标存在差异。

2.用户调查

用户调查需要有一些真实用户,用户在需要测试的推荐系统上进行一些实验和问题回答,然后我们来观察和记录他们的行为,通过分析他们的行为和答案了解这个系统的相关性能。
优点:可以获得很多体现用户主观感受的指标,出现错误后容易弥补。
缺点:招募测试用户代价大,很难组织大规模的测试用户,统计意义不足,收集到的测试指标可能和现实有出入。

3.在线实验

在完成离线实验和必要的用户调查后,可以将推荐系统上线做AB测试,将它和旧的算法进行比较。AB测试是一种很常用的在线评测算法的实验方法。
按照一种规则将用户分为几组,并对不同组的用户采用不同的算法,统计不同组的用户的各种不同的指标比较不同的算法。
优点:公平获得不同算法实际在线的性能指标。
缺点:周期长。必须进行长期的实验。
在这里插入图片描述
用户行为:用户进入相关网站,流量分配系统决定用户是否需要被进行AB测试,如果需要的话,流量分配系统会给用户打上在测试中属于什么分组的标签。然后用户浏览网页,用户在浏览网页时的行为都会被通过日志系统发回后台的日志数据库。此时,如果用户有测试分组的标签,那么该标签也会被发回后台数据库。
实验人员行为:实验人员首先在后台配置流量分配系统,决定满足什么条件的用户参加什么样的测试。其次,实验人员需要统计日志数据库中的数据,通过评测系统生成不同分组用户的实验报告,并比较和评测实验结果。
一般来说,一个新的推荐算法最终上线,需要完成:①通过离线实验证明它在很多离线指标上优于现有的算法;②通过用户调查确定它的用户满意度不低于现有的算法;③通过在线的AB测试确定它在我们关心的指标上优于现有的算法。

1.1.2 评测指标

1. 用户满意度

用户满意度没有办法离线计算,只能通过用户调查或者在线实验获得。
用户调查:调查问卷。在线系统:用户行为统计。

2. 预测准确度

预测准确度度量一个推荐系统或者推荐算法预测用户行为的能力。(离线实验)
在训练集上建立用户的行为和兴趣模型预测用户在测试集上的行为,并计算预测行为和测试集上实际行为的重合度作为预测准确度。

l 评分预测

评分预测的预测准确度一般通过均方根误差(RMSE)和平均绝对误差(MAE)计算。对于 测试集中的一个用户u和物品i,令rui是用户u对物品i的实际评分,而rui是推荐算法给出的预测评分,那么RMSE的定义为:MAE采用绝对值计算预测误差,它的定义为:
在这里插入图片描述
我们用一个列表records存放用户评分数据,令records[i]=[u,i,rui,pui],其中rui是用户对物品的实际评分,pui是算法预测出来的用户对物品的评分,那么下面的代码分别实现了RMSE和MAE的计算过程。

def RMSE(records):  
    return math.sqrt(sum([(rui-pui)*(rui-pui)
for u,i
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值