电商大数据项目——推荐系统实战之推荐算法(三)

  

电商大数据项目——推荐系统实战(一)环境搭建以及日志,人口,商品分析
https://blog.51cto.com/6989066/2325073
电商大数据项目——推荐系统实战之推荐算法
https://blog.51cto.com/6989066/2326209
电商大数据项目——推荐系统实战之实时分析以及离线分析https://blog.51cto.com/6989066/2326214

  

(七)推荐系统常用算法
协同过滤算法
协同过滤算法(协同过滤:CF)是很常用的一种算法,在很多电商网站上都有用到.CF算法包括基于用户的CF(基于用户的协同过滤和基于物品的CF(基于项目CF)。

  

(八)Apache Mahout和火花MLLib
①Apache Mahout简介
Apache Mahout是Apache软件基金会(ASF)旗下的一个开源项目,提供了一些经典的机器学习的算法,皆在帮助开发人员更加方便快捷地创建智能应用程序。目前已经有了三个公共发型版本,通过ApacheMahout库,Mahout可以有效地扩展到云中.Mahout包括许多实现,包括聚类,分类,推荐引擎,频繁子项挖掘。
Apache Mahout的主要目标是建立可伸缩的机器学习算法。这种可伸缩性是针对大规模的数据集而言的.Apache Mahout的算法运行在ApacheHadoop平台下,他通过Mapreduce模式实现。但是,Apache Mahout并非严格要求算法的实现基于Hadoop平台,单个节点或非Hadoop平台也可以.Apache Mahout核心库的非分布式算法也具有良好的性能。
Mahout主要包含以下5部分
?频繁挖掘模式:挖掘数据中频繁出现的项集。
?聚类:将诸如文本,文档之类的数据分成局部相关的组。
?分类:利用已经存在的分类文档训练分类器,对未分类的文档进行分类。
?推荐引擎(协同过滤):获得用户的行为并从中发现用户可能喜欢的事物。
?频繁子项挖掘:利用一个项集(查询记录或购物记录)去识别经常一起出现的项目。

  

②火花MLLib简介
火花MLLib(机器学习自由)是引发对常用的机器学习算法的实现库,同时包括相关的测试和数据生成器.Spark的设计初衷就是为了支持一些迭代的工作,这正好符合很多机器学习算法的特点。
火花MLLib目前支持4种常见的机器学习问题:分类,回归,聚类和协同过滤.Spark MLLib基于抽样,天生就可以与火花SQL, GraphX,火花流无缝集成,以抽样为基石,4个子框架可联手构建大数据计算中心!
下图是MLLib算法库的核心内容:

  

九,基于用户兴趣的商品推荐
(一)基于用户的CF(用户CF)和基于物品的CF (CF)项
?基于用户的CF(用户CF)
基于用户的CF的基本思想相当简单,基于用户对物品的偏好找到相邻邻居用户,然后将邻居用户喜欢的推荐给当前用户,计算上,就是将一个用户对所有物品的偏好作为一个向量来计算用户之间的相似度,找到K邻居后,根据邻居的相似度权重以及他们对物品的偏好,预测当前用户没有偏好的未涉及物品,计算得到一个排序的物品列表作为推荐。图2给出了一个例子,对于用户,根据用户的历史偏好,这里只计算得到一个邻居——用户C,然后将用户C喜欢的物品D推荐给用户
?基于物品的CF (CF)项
基于物品的CF的原理和基于用户的CF类似,只是在计算邻居时采用物品本身,而不是从用户的角度,即基于用户对物品的偏好找到相似的物品,然后根据用户的历史偏好,推荐相似的物品给他。从计算的角度看,就是将所有用户对某个物品的偏好作为一个向量来计算物品之间的相似度,得到物品的相似物品后,根据用户历史的偏好预测当前用户还没有表示偏好的物品,计算得到一个排序的物品列表作为推荐。图3给出了一个例子,对于物品,根据所有用户的历史偏好,喜欢物品一的用户都喜欢物品C,得出物品一个和物品C比较相似,而用户C喜欢物品,那么可以推断出用C可户能也喜欢物品C .

  

十,基于ALS协同过滤推荐
一)ALS的基本原理

  

(二)基于火花MLLib的ALS

  

基本的过程是:
。加载数据到评级抽样中
b。使用评级抽样训练ALS模型
c。使用ALS模型为用户进行物品推荐,将结果打印
d。评估模型的均方差

  

(三)基于Apache Mahout的ALS
1。将评级分为预测集(10%)和训练集(90%)
/bin/mahout splitDataset - i/输入/ratingdata。txt - o/输出/ALS/数据集
电商大数据项目——推荐系统实战之推荐算法(三)

  

2。使用并行ALS算法,对训练集来矩阵进行分解,之后会在/输出/ALS/生成两个矩阵U(用户特征矩阵)和M(物品特征矩阵),以及评分
/bin/mahout parallelALS - i/输出/ALS/数据/trainingSet/o/输出/ALS——numFeatures 20——numIterations 5——0.1λ

电商大数据项目——推荐系统实战之推荐算法(三)