机器学习——推荐系统(Recommend Systems)

1、问题规划

  1. 推荐系统在学术界研究少但是在互联网科技公司的使用很广泛,专注于为用户推荐个人感兴趣的东西,抖音、淘宝等等。
  2. 机器学习中的伟大思想:一些算法能够自动学习一些环境中的特征,而不需要人去手动的提取。通过推荐系统,我们将领略一小部分特征学习的思想。

预测电影评分的问题:
ABCD四个用户,一共5部电影,表格中的数字为用户的评分,“?”用户还没有看过这个电影。现在需要根据用户以往的看电影情况和评分情况,来将没看过的电影推荐给用户。于是,人可以很容易判断,AB用户喜欢爱情片,CD用户喜欢动作片。然后即可以进行相关推荐,而推荐系统的设计,就是需要根据这些数据,实现电影推荐。用r(i,j)代表是否评价,y(i,j)代表评分多少。
目的:设计一种算法能够自动填补表中 “?”,实现电影推荐。
电影评分数据

2、基于内容的推荐算法

特征构建
电影的爱情片程度和动作片程度再加上偏执项构建电影的特征,如x^((1))是第一部电影的特征向量为[1 0.9 0]。
电影特征
下面我们要基于这些特征来构建一个推荐系统算法。 假设我们采用线性回归模型,我们可以针对每一个用户都训练一个线性回归模型,如θ^((1))是第一个用户的模型的参数。 于是,我们有:

  • θ^((j))用户 j 的参数向量
  • x^((i))电影 i 的特征向量
  • 对于用户 j 和电影 i,我们预测评分为:(θ^((j)) )^T x^((i))

代价函数
针对用户 j,该线性回归模型的代价为预测误差的平方和,加上正则化项:
单个用户的代价函数
其中 i:r(i,j)表示我们只计算那些用户 j 评过分的电影。在一般的线性回归模型中,误差项和正则项应该都是乘以1/2m,在这里我们将m去掉。并且我们不对方差项θ_0进行正则化处理,也就是k不等于0,偏置项的参数theta_0不进行正则化。

上面的代价函数只是针对一个用户的,为了学习所有用户,我们将所有用户的代价函数求和
总代价函数

**优化方式:**采用梯度下降算法
梯度下降优化

3、协同过滤

引子
在之前的基于内容的推荐系统中,对于每一部电影,我们都已知电影特征,使用这些特征训练出了每一个用户的参数。相反地,如果我们拥有用户的参数,我们可以学习得出电影的特征X。
求解电影特征
此时优化目标变为:
知道theta求电影特征x
协同过滤的原理:
但是如果我们既没有用户的参数,也没有电影的特征,这两种方法都不可行了。协同过滤算法可以同时学习这两者。我们的优化目标便改为同时针对x和θ进行。
其实一种简单的实现过程是:随机选定θ,优化得到x,用x再去优化得到θ,θ -> x -> θ -> x -> θ -> x -> θ -> x -> θ…一直到收敛即可。
这个效率较低,实际中使用的不多。

4、协同过滤算法

算法都是基于用户给出了评价的基础上进行的。实际使用的协同过滤算法是:
综述

算法的实现过程:

  1. 初始X和θ为一些随机小值;
    1
  2. 使用梯度下降算法最小化联合代价函数;
    2
  3. 在训练完算法后,我们预测(θ^((j)) )^T x^((i))为用户 j 给电影 i 的评分;
    3

注意事项:
4. 我们在联合的最小化代价函数时,不需要再手动添加偏置项,因为在协同学习时候,它会自己选择。只需要初始化成相应的维度即可。而且x和θ的维度相同都为n。也就没有θ_0。于是在偏微分方中也就没有区分k==0的情况。
5. 通过这个学习过程获得的特征矩阵包含了有关电影的重要数据,这些数据不总是人能读懂的,但是我们可以用这些数据作为给用户推荐电影的依据。例如,如果一位用户正在观看电影 x_i ,我们依据两部电影的特征向量之间的欧式距离∥x_i - x_j) ∥的大小,可以寻找另一部电影x_j。

5、向量化:低秩矩阵分解

评分矩阵
电影评分
预测评分:P(i, j): 第 j 个用户对第 i 部电影的评分
在这里插入图片描述
低秩矩阵分解:预测评分矩阵 = X @ θ.T
矩阵分解
可以通过:
欧氏距离
来寻找最相关的电影,推荐给用户。

6、 算法细节:均值归一化

用户评分数据
如果我们新增一个用户 Eve,并且 Eve 没有为任何电影评分,那么我们以什么为依据为Eve推荐电影呢?
我们首先需要对结果 Y矩阵进行均值归一化处理,将每一个用户对某一部电影的评分减去所有用户对该电影评分的平均值:
注意,rows是同一个电影
归一化处理
然后我们利用这个新的 Y 矩阵来训练算法。 如果我们要用新训练出的算法来预测评分,则需要将平均值重新加回去
得到:θ_j.T @ x_i + u_i
对于Eve,我们的新模型会认为她给每部电影的评分都是该电影的平均分,然后推荐评分最高的一些电影即可。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值