推荐系统笔记一、基于近邻的推荐系统(基础篇)
来源:互联网 发布:僵尸先网络ddos 编辑:程序博客网 时间:2024/06/11 07:55
参考:http://blog.csdn.net/wangjian1204/article/details/50451249
Recommender Systems Handbook 第一版(2008年)是推荐系统方向入门的经典。7年后,第二版(2015年)终于诞生了,加入了这几年推荐系统领域的最新技术,又是state-of-the-art了吧,开始读书加笔记整理。。。
一、概述:
协同过滤方法大致可以分成两类:基于近邻(neighborhood-based)的算法和基于模型(model-based)的算法。基于近邻的算法直接使用已知评分进行预测;而基于模型的算法从已知评分中学习预测模型。基于近邻的算法又可以分成user-based 和item-based两类。本文主要介绍user-based 和item-based相关技术。
二、符号定义和度量标准:
- U:用户集合;I:item集合;
- R:评分集合,
rui 表示用户u∈U 对itemi∈I 的评分; - S: 评分取值集合,例如S = [1,2,3,4,5];
Ui :已经给item i打分的用户集合;Iu :已经被用户u打分的item集合;Iuv :Iu∩Iv ,同时被用户u和用户v打过分的item集合;Uij :同时对item i和j打过分的用户集合。wuv :用户u和v之间的相似度;wij :item i和j之间的相似度;N(u) :用户u的k近邻;Ni(u) :对item i打过分的用户中与用户u最相似的k个近邻;N(i) :item i的k近邻;Nu(i) :用户u打过分的item中与item i最相似的k个近邻。
评价推荐系统时最重要的两个问题是评分准确率和Top-N推荐问题。评分准确率问题常用的度量标准有Root Mean Squared Error (RMSE),Precision,Recall等。Top-N推荐常用的度量标准有NDCG,Average Reciprocal Hit-Rank(ARHR)等。
假设推荐系统为用户u返回top-N列表,
其他几种度量方法都很常见,在此不再赘述。
三、User-Based推荐方法:
User-Based推荐方法根据用户u近邻的评分预测用户u对item i的评分:
如果要直接得到离散的结果(例如评分是good、bad…),则变成一个分类问题,可以用下面的式子预测评分:
四、Item-Based推荐方法:
Item-Based推荐方法根据用户u对item i近邻的评分来预测用户u对item i的评分:
同样的,分类问题的预测评分式子如下:
五、User-Based方法和Item-Based方法比较:
- 用户和item的规模:当用户数量远大于item数量时,最好选择Item-Based方法,从而可以得到更多可靠的近邻且节省存储空间。反之,选择User-Based方法。
- 稳定性:如果item列表比较稳定,而用户变化较多,最好选择Item-Based方法,从而可以减少item间的相似度计算频率。反之,选择User-Based方法。
- 可解释性:item之间的相似性比较直观,所以Item-Based方法有较好的解释性。User-Based方法中用户对其他相似用户不了解,所以解释性相对差一点。
- 新颖性:User-Based方法能提供更多新颖的item推荐。Item-Based方法更倾向于给用户推荐与item i相似度较大的item。
六、评分标准化:
每个用户有其特定的打分习惯,如平均打分比其他用户要高/低;item之间的打分的平均值也不相同。所以需要对评分进行标准化处理,统一用户的评分标准。标准化方法主要有两种:零均值化和Z-Score。
零均值化:
User-Based方法标准化:用户u的评分都减去它的均值
Item-Based方法标准化:Item i的评分都减去它的均值
Z-Score:
零均值化方法移除了评分均值上的偏差,Z-Score在移除均值偏差的同时考虑到了评分的方差。
User-Based方法标准化:用户u的评分都减去它的均值
Item-Based方法标准化:Item i的评分都减去它的均值
七、相似权值计算:
前面的评分预测式子用到了相似权重
Cosine相似度:
即
考虑均值和方差:
Pearson Correlation是在集合
权值改进:
当使用Pearson Correlation方法时,如果用户u和v只共同评论过一个item并且恰好在这个item上的评分相同,那么根据公式他们之间的相似度是1,这显然不大合理。可以用以下几种方法对权值进行平滑:
八、近邻选择:
近邻的选择主要包括近邻个数k和近邻选取的过程,其中近邻个数k可以通过交叉验证来选择(通常k的取值在20到50之间)。由于现实推荐系统用户数和item数很大,保存所有的用户或item 之间的(非零)相似度需要大量的存储空间,所以需要提前过滤,把不重要的相似度信息都筛选掉。主要有以下几种筛选方法:
- Top-N过滤:只保留用户或item的N个近邻的相似度权值;
- 阈值过滤:保留大于某个阈值的相似度权值;
- 负值过滤:只保留大于零的相似度权值。
九、近邻方法的优缺点:
- 可解释性较好,尤其是Item-Based方法;
- 实时性较好,通过预先计算好的相似矩阵找出k近邻后就可以对item评分进行预测;
- 会占用较多存储空间,特别是当用户数和item数都很多的时候;
- 冷启动问题,新的用户和item找k近邻需要借助其他方法;
- 局限性较大,例如用户u和v根据
Iuv 计算相似度,所以只有当他们有共同的评分项时才可能成为近邻; - 稀疏问题,当评分矩阵很稀疏的时候,两个用户共同评分的项会很少,使得预测结果偏差较大。
十、参考资料
Recommender Systems Handbook
- 推荐系统笔记一、基于近邻的推荐系统(基础篇)
- 推荐系统笔记一、基于近邻的推荐系统(基础篇)
- 推荐系统笔记一、基于近邻的推荐系统(基础篇)
- 推荐系统笔记三、基于近邻的推荐系统(进阶篇)
- 推荐系统笔记三、基于近邻的推荐系统(进阶篇)
- [推荐系统02]基于近邻的推荐
- 推荐系统笔记三、基于近邻的推荐系统进阶篇
- 基于内容的推荐算法(推荐系统)(一)
- 基于近邻用户协同过滤算法的音乐推荐系统
- 推荐系统笔记四、基于内容的推荐系统
- 推荐系统笔记四、基于内容的推荐系统
- 推荐系统简述(2)基于近邻推荐方法
- 基于内容的推荐系统基础_1
- 推荐系统-基于用户的最近邻协同过滤算法(MovieLens数据集)
- 推荐系统-基于用户的最近邻协同过滤算法(MovieLens数据集)
- 【推荐系统】协同过滤之基于用户的最近邻推荐
- 推荐系统读书笔记一--基于用户行为的推荐
- Machine Learning第九讲[推荐系统] --(一)基于内容的推荐系统
- 解决PR输出时输出视频文件过大
- 10060---反射
- 1081. Rational Sum (20)[数据处理]
- 竞争性分配振兴实体经济等三项财政专项激励资金
- coreseek 全文(中文)索引安装
- 推荐系统笔记一、基于近邻的推荐系统(基础篇)
- C语言结构体的使用基础
- html5 实现时钟
- 根据前序、中序遍历创建二叉树
- SEO 技巧,如何设计一个高质量的 URL 和标题
- Linux CentOS 6.5 下 vsftpd ftp服务器搭建
- ZSTU 4274 约素 约数,不是因子啊!
- 关于 Java 权限修饰符 的问题总结
- C++ Primer 第5版--练习10.24