吴恩达《Machine Learning》精炼笔记 11:推荐系统

简介: 吴恩达《Machine Learning》精炼笔记 11:推荐系统

系列文章:


吴恩达《Machine Learning》精炼笔记 1:监督学习与非监督学习

吴恩达《Machine Learning》精炼笔记 2:梯度下降与正规方程

吴恩达《Machine Learning》精炼笔记 3:回归问题和正则化

吴恩达《Machine Learning》精炼笔记 4:神经网络基础

吴恩达《Machine Learning》精炼笔记 5:神经网络

吴恩达《Machine Learning》精炼笔记 6:关于机器学习的建议

吴恩达《Machine Learning》精炼笔记 7:支持向量机 SVM

吴恩达《Machine Learning》精炼笔记 8:聚类 KMeans 及其 Python实现

吴恩达《Machine Learning》精炼笔记 9:PCA 及其 Python 实现

吴恩达《Machine Learning》精炼笔记 10:异常检测

本周中主要讲解了推荐系统的相关知识。推荐系统应该是目前机器学习领域或者说人工智能领域最热门的方向之一,还有NLP、CV等,主要内容包含:

  • 推荐系统简介
  • 基于内容的推荐系统
  • 协同过滤


推荐系统


推荐系统概述


常见的推荐系统有三种主要的应用常景:

  • 个性化推荐:常以“推荐”、“猜你喜欢”、“发现”等形式出现,一般放在首页位置
  • 相关推荐:常以“相关推荐”、“看了还看”等形式出现,一般放在内容详情页
  • 热门推荐:基于各种数据进行计算,得到的排行榜,支持全局排行以及分类排行等,位置不限


推荐系统对用户的核心价值,主要表现在:

  1. 帮助用户便捷、快速地筛选出感兴趣的内容
  2. 在用户陌生的领域里面提供参考意见
  3. 满足用户的好奇心


推荐系统的主要工作是:

  • 首先它基于用户的兴趣,根据用户的历史行为做兴趣的挖掘,把物品和用户的个性化偏好进行匹配。
  • 然后通过推荐算法或者技术把信息进行过滤,解决用户的过载问题。
  • 当用户有新的行为发生时,比如点击或者搜索之后,能及时进一步捕捉用户的兴趣。
  • 选择合适的场景,个性化或者相关的、热门的,来给用户进行推荐。

个性化推荐系统解决的是用户很内容的关联关系,它是二者之间的桥梁。基于用户的兴趣偏好,把用户感兴趣的物品或者视频、资讯等推荐给用户,给用户带来沉浸式的体验。


问题形式化


推荐系统应用的十分广泛:如果你考虑网站像亚马逊,或网飞公司或易趣,或iTunes Genius,有很多的网站或系统试图推荐新产品给用户。如,亚马逊推荐新书给你,网飞公司试图推荐新电影给你,等等。


这些推荐系统,根据浏览你过去买过什么书,或过去评价过什么电影来判断。这些系统会带来很大一部分收入,比如为亚马逊和像网飞这样的公司。


因此对推荐系统性能的改善,将对这些企业的有实质性和直接的影响。


通过一个栗子来了解推荐系统


假使我们是一个电影供应商,我们有 5 部电影和 4 个用户,我们要求用户为电影打分

image.png


前三部是爱情片,后面两部是动作片。Alice和Bob更倾向于爱情片,Carol和Dave更倾向于动作片。一些标记

  • nu用户的数量
  • nm电影的数量
  • r(i,j)如果用户j给电影i评过份则r(i,j)=1
  • y(i,j)代表的是用户j给电影i的评分
  • mj表示的是用户j评过分的电影总数


基于内容的推荐系统Content Based Recommendations


在一个基于内容的推荐系统算法中,我们假设对于我们希望推荐的东西有一些数据,这些数据是有关这些东西的特征。现在假设电影有两个特征:

  • x1浪漫程度
  • x2动作程度

image.png


那么每部电影都有一个特征向量,如第一部电影的是[0,9 0]


针对特征来构建一个推荐系统算法。假设使用的是线性回归模型,针对每个用户使用该模型,θ(1)表示的是第一个用户的模型的参数。定义如下:

  • θ(j)j个用户的参数向量
  • x(i)电影i的特征向量


针对电影i和用户j,该线性回归模型的代价为预测误差的平方和,加上正则化项:

image.png

其中 i:r(i,j)表示我们只计算那些用户 j 评过分的电影。在一般的线性回归模型中,误差项和正则项应该都是乘以1/2m,在这里我们将m去掉。并且我们不对方差项θ0进行正则化处理。


针对所有用户的代价函数求和:

image.png


协同过滤Collaborative Filtering


上面基于内容的过滤算法是通过电影的特征,使用特征来训练出每个用户的参数。相反,如果使用用户的参数,也可以学习得出电影的特征:


image.png

如果没有用户的参数和电影的特征,协同过滤算法便可以同时学习这两者


image.png

对代价函数求出偏导数的结果是:


image.png

协同过滤算法的过程:

  1. 初始化x,θxθ为很小的值
  2. 使用梯度下降算法最小化代价函数minJ(x,θ)minJ(x,θ)
  3. 训练完算法后,预测用户j给电影i的评分

协同过滤算法


协同过滤的优化目标:

image.png


向量化:低秩矩阵分解Vectorization_ Low Rank Matrix Factorization


协同过滤算法可以做的事情:

  1. 给出一件商品,找到与之类似的商品
  2. 当一个用户浏览了一件产品,找出类似的商品推荐给他


假设5部电影,4位用户,存放在矩阵中:


image.png


推出相应的评分

image.png

找出类似的影片

image.png


均值归一化Mean Normalization


image.png


上图中,假设新来个用户Eva,他没有对任何的电影进行评分,那我们以什么依据来给他推荐电影呢?

  • 对上面的Y矩阵进行均值归一化,将每个用户对某一部电影的评分减去所有用户对该电影评分的平均值,得到如下的矩阵:


image.png

  • 利用新的矩阵Y来训练算法。如果我们要用新训练出的算法来预测评分,则需要将平均值重新加回去,模型会人为其给每部电影的评分都是该电影的平均分。
相关文章
|
机器学习/深度学习 算法 搜索推荐
【吴恩达机器学习笔记】十四、推荐系统
【吴恩达机器学习笔记】十四、推荐系统
87 0
|
8月前
|
搜索推荐 算法 前端开发
旅游管理与推荐系统Python+Django网页平台+协同过滤推荐算法
旅游管理与推荐系统Python+Django网页平台+协同过滤推荐算法
193 0
|
7天前
|
搜索推荐 算法 小程序
基于Java协同过滤算法的电影推荐系统设计和实现(源码+LW+调试文档+讲解等)
基于Java协同过滤算法的电影推荐系统设计和实现(源码+LW+调试文档+讲解等)
|
7天前
|
搜索推荐 算法 小程序
基于Java协同过滤算法的图书推荐系统设计和实现(源码+LW+调试文档+讲解等)
基于Java协同过滤算法的图书推荐系统设计和实现(源码+LW+调试文档+讲解等)
|
15天前
|
机器学习/深度学习 搜索推荐 算法
基于深度学习神经网络协同过滤模型(NCF)的图书推荐系统
登录注册 热门图书 图书分类 图书推荐 借阅图书 购物图书 个人中心 可视化大屏 后台管理
12875 2
基于深度学习神经网络协同过滤模型(NCF)的图书推荐系统
|
2月前
|
搜索推荐 算法 前端开发
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
143 4
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
|
2月前
|
机器学习/深度学习 搜索推荐 算法
推荐系统算法的研究与实践:协同过滤、基于内容的推荐和深度学习推荐模型
推荐系统算法的研究与实践:协同过滤、基于内容的推荐和深度学习推荐模型
389 1
|
2月前
|
算法 搜索推荐 数据挖掘
MATLAB模糊C均值聚类FCM改进的推荐系统协同过滤算法分析MovieLens电影数据集
MATLAB模糊C均值聚类FCM改进的推荐系统协同过滤算法分析MovieLens电影数据集
|
2月前
|
存储 搜索推荐 算法
python推荐系统实现(矩阵分解来协同过滤)
python推荐系统实现(矩阵分解来协同过滤)
|
7月前
|
搜索推荐 算法 前端开发
商品购物管理与推荐系统Python+Django网页界面+协同过滤推荐算法
商品购物管理与推荐系统Python+Django网页界面+协同过滤推荐算法
89 0