孙远帅. 基于大数据的推荐算法研究[D]. 厦门大学, 2014.
读的一篇论文的总结
总览
基于项目层次结构的推荐算法,并结合Hadoop技术实现矩阵分解算法。
- 改进均衡相似度的余弦距离和皮尔逊相关系数的计算公式,避免计算目标用户与所有用户的相似度,从而避免了在整个用户空间中搜索最相近的k个用户,同时引入倒排索引数据结构,是查找目标用户最近邻的计算复杂度降低;
- 提出基于项目层次相似度的协同过滤算法,用户给部分项目标注标签和项目类别进行自动扩展,建立所有项目的层次结构,利用建立的项目标签层次结构计算项目之间的相似性
- 结合矩阵分解梯度下降算法的近似算法和MapReduce分布式计算框架设计实现了一种基于MapReduce的矩阵分解推荐算法
该文章通过改进相似度计算方法,引入倒排索引数据结构,来避免在整个用户空间上查找目标用户的最近邻用户,从而在一定程度上提高最近邻的查找速度。
推荐算法简介
根据使用的数据源的不同,推荐算法可以分为:
-
基于内容的推荐算法:推荐用户之前喜欢的商品内容相似的商品
用户u的兴趣爱好向量(用户之前喜欢的所有项目向量模型的平均)
其中N(u)是用户之前喜欢的项目集合。content(*)表示所有项目的内容向量一个新项目j与项目与用户u喜好的相似度
通常采用向量夹角的余弦距离计算
自适应过滤主要解决了ContentBasedProfile(u)的增量计算问题;闽值设定提出了用户行为与项目特征的匹配问题,从而精确地计算Content(j)。基于内容的推荐只考虑商品和商品之间的相似性,而不考虑用户行为
-
协同过滤:研究用户历史行为并建模,利用模型推荐商品
基于用户的协同过滤算法,计算出目标用户与每个用户的相似度,取相似度最高的若干个
用户作为最近邻。
给定用户u和v,令N(u)是用户u喜欢的项目集合,则u、v的兴趣相似度使用近邻用户来预测目标用户对项目评价的方法
1.要预测用户u对项目i的评分
其中,,I(u)为用户u对项目评分集合其中按推荐生成方式的不同,协同过滤又可以分为启发式的和基于模型的协同过滤。上面都是启发式的。
混合推荐算法
就是把上面两种推荐进行混合
推荐系统衡量指标
- 用户满意度调查(问卷等形式)
- 预测准确度
1)评分预测
a、均方差误差
b、平均绝对误差
2)TopN推荐
研宄人员通常使用准确率/召回率度量来衡量推荐的预测准确率
召回率
准确率
3)覆盖率
评价推荐系统发觉长尾的能力
4)实时性
实时性是一个衡量推荐系统性能的定性指标。
数据集
- MovieLens电影评分数据
- Jester Joke(风向和推荐笑话的网站)
- Netfile(电影租赁公司提供的电影评分)
- Yahoo音乐数据