推荐算法介绍

一.推荐算法

基于内容、基于协同过滤、混合推荐算法。

二.详细介绍

1.基于内容

根据用户之前的行为内容数据,找到相关的内容进行推荐。

在这里插入图片描述

解决的问题:用户冷启动。

扩展:

(1)用户冷启动:如何对新用户做个性化推荐。
(2)物品冷启动:如何将新物品推荐给对它感兴趣的用户。
(3)系统冷启动:如何对新开发的系统设计个性化推荐。

2.基于协同过滤

依靠用户的历史交互行为结合其他用户的历史决策建立推荐模型综合用户对物品的评价,从预测评分中看出用户对物品的感兴趣程度。

在这里插入图片描述

2.1基于用户的协同过滤

在这里插入图片描述

2.2基于物品的协同过滤

在这里插入图片描述

2.3基于模型的协同过滤

常见的算法:回归、矩阵分解、关联规则、分类、聚类、神经网络、图模型、隐语义模型。

2.4基于聚类的协同过滤

(1)分类:基于划分(Partition-based methods)、基于密度(Density-based methods)、层次聚类。
(2)算法:K-Means、DBSCAN、BIRCH。
(3)详细介绍:
<1>Partition-based methods:给定一个有n个对象的数据集,划分聚类技术将数据k个划分,每一个划分代表一个簇。k<=n。
<2>K-Means:
步骤:首先选取k个对象作为初始的簇中心;依次计算每个对象到各个簇的距离;然后根据计算出的距离值进行分簇,同时计算出每次分簇之后的平均值;最后依次迭代,直到准则函数收敛,也即迭代时未出现重新分配。
举例:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

计算过程:

在这里插入图片描述

<3>Density-based methods:DBSCAN(Density-Based Spatial Clustering of Applications with Noise)
核心思想就是先发现密度较高的点,然后把相近的高密度点逐步都连成一片,进而生成各种簇。算法实现上就是,对每个数据点为圆心,以eps为半径画个圈(称为邻域eps-neigbourhood),然后数有多少个点在这个圈内,这个数就是该点密度值。然后我们可以选取一个密度阈值MinPts,如圈内点数小于MinPts的圆心点为低密度的点,而大于或等于MinPts的圆心点高密度的点(称为核心点Core point)。如果有一个高密度的点在另一个高密度的点的圈内,我们就把这两个点连接起来,这样我们可以把好多点不断地串联出来。之后,如果有低密度的点也在高密度的点的圈内,把它也连到最近的高密度点上,称之为边界点。这样所有能连到一起的点就成一了个簇,而不在任何高密度点的圈内的低密度点就是异常点。下图展示了DBSCAN的工作原理。

在这里插入图片描述

当设置MinPts=4的时候,红点为高密度点,蓝点为异常点,黄点为边界点。红黄点串成一起成了一个簇。
计算步骤:
DBScan需要二个参数: 扫描半径 (eps)和最小包含点数(minPts)。 任选一个未被访问(unvisited)的点开始,找出与其距离在eps之内(包括eps)的所有附近点。
如果 附近点的数量 ≥ minPts,则当前点与其附近点形成一个簇,并且出发点被标记为已访问(visited)。 然后递归,以相同的方法处理该簇内所有未被标记为已访问(visited)的点,从而对簇进行扩展。
如果 附近点的数量 < minPts,则该点暂时被标记作为噪声点。
如果簇充分地被扩展,即簇内的所有点被标记为已访问,然后用同样的算法去处理未被访问的点。
<4>层次聚类:自底向上。给定要聚类的N的对象以及N*N的距离矩阵(或者是相似性矩阵), 层次式聚类方法的基本步骤(参看S.C. Johnson in 1967)如下:
将每个对象归为一类, 共得到N类, 每类仅包含一个对象. 类与类之间的距离就是它们所包含的对象之间的距离.
找到最接近的两个类并合并成一类, 于是总的类数少了一个.
重新计算新的类与所有旧类之间的距离.
重复第2步和第3步, 直到最后合并成一个类为止(此类包含了N个对象).
举例:

在这里插入图片描述

在这里插入图片描述

最终聚合为一个二维矩阵。此案例是按照最小距离聚类的。
<4>矩阵分解:奇异值分解(Singular value decomposition,SVD)。
原理:将矩阵分解为三个矩阵相乘,通过公式进行分解。
缺点:由于用户数和物品数很庞大,所以不适合大型的推荐系统。
作用:对用户未评分物品进行预测评分,从而推荐给用户。
改进的SVD算法:funkSVD、biasSVD(增加了额外因素的考虑)、SVD++(增加考虑用户的隐式反馈)

3.基于知识的推荐算法

使用一些数据挖掘技术,如聚类、关联规则以及分类等构建知识库,得到用户与物品间的关联,生成推荐结果。

4.混合推荐算法

4.1加权混合:多个推荐算法加权混合,将各自生成的结果按照一定权重共同作用于最终预测打分。

4.2切换混合:根据问题的背景和实际情况切换不同的推荐算法。

4.3分层:多种算法组合,当前算法的预测打分作为另一个算法的计算依据,多个算法分层叠加生成推荐列表。

三.相关技术

Spark大数据平台;MapReduce(映射,归约)是一种模型,可以计算;Hive(基于Hadoop的分布式数据库);ETL(Extraction、Transfoamation、Loading 即数据抽取、转换、加载)、Kafka(一种高吞吐量的分布式发布订阅消息系统)

Hive:提供了一个强大的分布式管理软件,只要熟悉SQL语言的人都可以快速无缝上手,是传统关系型数据库Mysql等和新型大数据技术的桥梁。

Kafka:不但可以作为一个消息发布和订阅的系统,也适合作为一个数据通路,效率高,可以将消息的持久化的存储下来。

相关问题:

过拟合:学到了很多没有必要的特征。比如:有一个识别叶子的模型,叶子必须由"齿"模型才能识别出来,没有的话模型就判断这不是叶子;这肯定是不对的,有的叶子并没有"齿"。

欠拟合:训练样本被提取的特征比较少,导致训练出来的模型不能很好地匹配,表现得很差,甚至样本本身都无法高效的识别。

四.推荐系统应用框架图

在这里插入图片描述

从上至下依次为数据生成层、数据存储层、候选集删选层、实际过滤规则、重排序层。

  • 3
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值