机器学习笔记(16)——推荐系统

一、推荐系统(Recommender Systems)

推荐系统是机器学习中的一个重要应用,有很多的网站都会通过推荐系统来推荐新产品给用户,如亚马逊推荐新书给你,网飞公司试图推荐新电影给你,这些推荐系统是根据浏览你过去买过什么书或评价过什么电影来判断。这些系统会为亚马逊和像网飞这样的公司带来很大一部分收入,因此,对推荐系统性能的改善,将对这些企业的有实质性和直接的影响。

我们首先来通过一个电影推荐例子来理解推荐系统是要解决什么样的问题。如下有五部电影四个用户,每个用户都对其中几部电影做出了评分,那么推荐系统要解决的就是根据已有的信息推断出用户没有评分的电影他可能会给出的评分,也就是补全这个矩阵中的缺失值,然后根据推断的评分推荐新电影给用户。

在这里插入图片描述
如上就是推荐系统问题的大概形式,那么该如何解决呢?下面介绍如下几种推荐系统算法思想

1. 基于内容的推荐算法(Content-based Recommendations,CB)

CB的算法思想:根据用户过去喜欢的产品,为用户推荐和他过去喜欢的产品相似的产品。
CB的过程一般分为以下三步:

(1) 提取产品的特征

提取出产品的特征,为每个item抽取出一些特征来表示此item,每个产品都有一个由其每个特征的值组成的特征向量。假设每部电影都有两个特征,特征x1表示这部电影是爱情片的程度,x2表示是动作片的程度,再加上一个值为1的截距特征x0(待解释),那么对于每部电影都有一个自己的特征向量,如第一部电影的特征向量x(1) = [1, 0.9, 0]T
在这里插入图片描述

(2) 学习用户的特征

即根据已有的用户记录推断计算出用户对产品的每个特征的偏好程度。
因此也要定义一个同样维度的用户特征向量θ。相关的符号定义如下:
在这里插入图片描述
那么预测用户j对电影i的评分的预测函数就是产品的每个特征的值乘以用户对这个特征的偏好程度最后得出的总和,即用户喜好特征向量与产品特征向量的内积:
在这里插入图片描述
这就可以看作一个线性回归的问题,根据用户已有的电影评分记录求出使得预测值与真实值的平方误差最小的θ。代价函数如下:
在这里插入图片描述
其中用户评分过的电影数m(j)是常数,可省去对θ结果无影响,可再加上一个正则化项,故对于单个用户的目标优化函数如下:
在这里插入图片描述
而在构建推荐系统时,不仅是要学习一个用户的特征,而是要学习所有用户的特征,因此要追求的是总体误差的最小化,即将所有用户的目标优化叠加到一起计算求总体代价函数的最小点,故最终目标优化函数如下:
在这里插入图片描述
用梯度下降算法求函数最小点:
在这里插入图片描述
最终求出每个用户的喜好特征向量。

(3) 生成推荐列表

通过比较上一步得到的用户喜好特征与产品特征,得出相关性较大的产品推荐给用户。
即求用户喜好特征向量与产品特征向量的内积,假设求出的用户Alice的喜好特征向量θ(1) = [0, 5, 0]T,第三部电影的特征向量是x(3) = [1, 0.99, 0]T,故预测评分为4.95,预测评分较高即相关性较大故推荐此电影给用户。
在这里插入图片描述

参考文章:
1.基于内容的推荐算法
2.基于内容推荐算法详解(比较全面的文章)

2. 协同过滤算法(Collaborative Filtering Recommendations,CF)

上述CB算法是假设我们可以直接提取出一部电影的特征,而现实情况是这些特征我们也很难直接得到,而且我们需要的特征也远不止这两个,那么该怎样得到用户和电影的特征呢?

首先我们假设我们已经有了用户对产品的每个特征的偏好程度,即喜好特征向量θ,那么根据每个用户的喜好特征和其对电影的评分建立一组方程(θ·x = 评分),从而大致解出电影的特征向量x
在这里插入图片描述
可以看出这和CB算法中的已知产品特征x然后求用户特征θ一样,已知θ求x是一个同样的线性回归问题,求使得预测评分与真实评分误差最小的x,代价函数形式都一样,只不过这里的变量变成了x
在这里插入图片描述

这样假设我们拥有所有用户的喜好特征向量,我们同样也可以利用梯度下降算法求出产品的特征向量,然而实际上用户的特征我们也很难直接全部拥有,当我们既没有产品特征值也没有用户特征值时该怎么办呢?下面体现协同过滤思想的地方就来了:

我们可以先假设一些θ值,然后用上述CB中的方法求出x,再用x就可以求出更好的θ…这样反复迭代,最后就能收敛得到一组相对合理的电影特征x(i)和用户特征θ(j)。这种方法是建立在每位用户都对数部电影进行了评价并且每部电影都有用户评价的情况下,这个迭代过程才能重复进行下去。这其中体现的协同过滤算法思想就是:每位用户的评分都在帮助改进算法学习出更好的特征,而这些特征又可以帮助更好的预测其他用户的评分,这就是协同过滤。
在这里插入图片描述
当然,上述只是基本协同过滤的算法,在实际应用中更复杂多样,下面介绍一种

参考文章:推荐算法分类:协同过滤推荐、基于内容推荐、基于知识推荐、混合推荐

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、机器学习推荐系统课程简介伴随着大数据时代的到来,作为发掘数据规律的重要手段,机器学习已经受到了越来越多的关注。而作为机器学习算法在大数据上的典型应用推荐系统已成为各行业互联网公司营销体系不可或缺的一部分,而且已经带来了真实可见的收益。目前,推荐系统机器学习已经成为各大公司的发力重点,众多知名公司(如亚马逊、netflix、facebook、阿里巴巴、京东、腾讯、新浪、头条等)都在着眼于将蕴含在庞大数据的宝藏发掘出来,懂机器学习算法的大数据工程师也成为了新时代最紧缺的人才。尚硅谷精心打造出了机器学习推荐系统课程,将机器学习理论与推荐系统项目实战并重,对机器学习推荐系统基础知识做了系统的梳理和阐述,并通过电影推荐网站的具体项目进行了实战演练。为有志于增加大数据项目经验、扩展机器学习发展方向的工程师提供最好的学习平台。二、课程内容和目标本课程主要分为两部分,机器学习推荐系统基础,与电影推荐系统项目实战。第一部分主要是机器学习推荐系统基础理论的讲解,涉及到各种重要概念和基础算法,并对一些算法用python做了实现;第二部分以电影网站作为业务应用场景,介绍推荐系统的开发实战。其包括了如统计推荐、基于LFM的离线推荐、基于模型的实时推荐、基于内容的推荐等多个模块的代码实现,并与各种工具进行整合互接,构成完整的项目应用。通过理论和实际的紧密结合,可以使学员对推荐系统这一大数据应用有充分的认识和理解,在项目实战对大数据的相关工具和知识做系统的回顾,并且可以掌握基本算法,入门机器学习这一前沿领域,为未来发展提供更多的选择,打开通向算法工程师的大门。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值