推荐系统学习笔记
1 什么是推荐系统?
推荐系统的任务是联系用户和信息,一方面帮助用户发现对自己有价值的信息,另一方面让信息能够展现对它感兴趣的用户面前,从而实现信息消费者和信息生产者的双赢。
推荐系统和搜索引擎不同的是,推荐系统不需要用户提供明确的需求,而是通过分析用户的历史行为给用户的兴趣建模,从而主动给用户推荐能够满足他们兴趣和需求的信息。
推荐系统通过发掘用户的行为,找到用户的个性化需求,从而将长尾商品准确地推荐给需要它的用户,帮助用户发现那些他们感兴趣但很难发现的商品。
2 推荐系统的方法
推荐系统的方法:
社会化推荐(social recommendation)
基于内容的推荐(content-based filtering)
基于协同过滤(collaborative filtering)
推荐算法的本质是通过一定的方式将用户和物品联系起来,而不同的推荐系统利用了不同的方式。
3 推荐系统的应用
个性化推荐系统在网站中的主要作用是通过分析大量用户行为日志,给不同用户提供不同的个性化页面展示,来提高网络的点击率和转化率。
1. 电子商务:例如亚马逊
2. 电影和视频网站:例如Netflix
3. 个性化音乐网络电台:例如Last.fm
4. 社交网络:例如Facebook
5. 个性化阅读:例如Digg
6. 基于位置的服务:例如Foursquare
7. 个性化邮件:例如Tapestry
8. 个性化广告:例如Facebook
4 如何测评
一个完整的推荐系统一般存在3个参与者:用户、物品提供者和提供推荐系统的网站,在评测一个推荐算法时,需要同时考虑三方的利益,一个好的推荐系统是能够令三方共赢的系统。
推荐系统实验方法
1离线实验
步骤:
① 通过日志系统获得用户行为数据,并按照一定格式生成一个标准的数据集;
② 将数据集按照一定的规则分成训练集合测试集;
③ 在训练集上训练用户兴趣模型,在测试集上进行预测;
④ 通过事先定义的离线指标评测算法在测试集上的预测结果。
优点:不需要有对实际系统的控制权;不需要用户参与实验;速度快,可以测试大量算法
缺点:无法计算商业上关心的指标,如点击率、转化率等;离线实验的指标和商业指标存在差距。
2用户调查
真实用户在测评的推荐系统上完成一些任务,在完成任务时,需要观察和记录他们的行为,并让他们回答一些问题,通过分析他们的行为和答案了解测试系统的性能。
优点:可以获得很多体现用户主观感受的指标,相对在线实验风险很低,出现错误后很容易弥补。
缺点:招募测试用户代价较大,很难组织大规模的测试用户,因此会使测试结果的统计意义不足。
3在线实验
在完成离线实验和必要的用户调查后,可以将推荐系统上线做AB测试,将它和旧的算法进行比较。
AB测试是一种很常用的在线评测算法的实验方法。http://www.abtests.com/
一般来说,一个新的推荐算法最终上线,需要完成3个实验:
首先,需要通过离线实验证明他在很多离线指标上由于现有的算法。
然后,需要通过用户调查确定它的用户满意度不低于现有的算法。
最后,通过在线的AB测试确定它在我们关心的指标上由于现有的算法。
评测指标
1.用户满意度:通过用户调查或者在线实验获得。
2.预测准确度:评分预测(均方根误差和平均绝对误差),TopN推荐
3.覆盖率:信息熵,尼基系数
4.多样性
5.新颖性:平均流行度
6.惊喜度
7.信任度:增加推荐系统的透明度,提供推荐解释;考虑用户的社交网络信息
8.实时性
9.健壮性
10.商业目标
11.目标
测评维度
用户维度:主要包括用户的人口统计学信息、活跃度以及是不是新用户等
物品维度:包括物品的属性信息、流行度、平均分以及是不是新加入的物品等
事件维度:包括季节、是工作日还是周末,是白天还是晚上等。