【吴恩达机器学习笔记】十四、推荐系统

简介: 【吴恩达机器学习笔记】十四、推荐系统

十四、推荐系统


1. 问题规划

现在各大公司都需要抓住用户的爱好给用户推荐他们想要的信息,以获取关注度,所以接下来就引出了我们的推荐系统,我们先来看个例子关于预测电影评分的,首先先来了解一下参数含义:


nu代表用户的数量,nm代表电影的数量。

r(i,j)代表第j个用户是否对第i部电影进行了评价,如果r等于1,说明进行了评价。

y(i,j)代表第j个用户对于第i部电影的评分,只有当r(i,j)等于1时,y(i,j)才有数值。

d2fa2755cc3047c9a8d06908f51a90b3.png


所以我们可以通过一系列的数据,去了解用户的电影喜欢类型,从而预测他们对一些没评分电影的评分。


2. 基于内容的推荐算法

现在,我们来介绍一种算法,叫做基于内容的推荐算法,下面是一个例子。


07d7ab81790849b1ab8788c6446a85ce.png


例子还是和上节课的一样,现在我们引出两个特征分别代表爱情和动作的程度,然后再加入一个截止特征,将他们组合成一个x(i)向量代表每一部电影的特征量,而每个用户都会对应一个θ,这如何得到我们后面会讲,总之如果想预测用户对于某部电影的评分的话,可以看做是一次线性问题,只需将x于θ的转置相乘做一次内积便能得到最终结果。接下来,我们来看看其中的具体步骤。

b53b251fef784f6a924e53749bed8ca2.png



这里要注意的是m(j)代表评价一部电影的用户数量,而我们可以通过上面的值得到代价函数,我们来整合一下。

5c9adc3b1d854668bdc1b69a8575a65c.png



我们可以将单个θ的代价函数再通过累加变成多个参数合成的代价函数,接下来再来做一个总结。



ef7f8392bd6645a59d49a094284c9b12.png

上面还提到了如何拟合θ参数,这里与线性回归问题十分相似,因为这个算法本质上也是线性回归。


3. 协同过滤

这节课再来讲一个关于如何构建推荐系统的算法,叫做协同过滤,它可以自动学习所需要的特征,通俗来讲就是这个算法通过观察用户的行为来得到特征,所以这里的协同有每个用户都在帮助这个算法进行学习的意思。



daf73c3ec19b4dac92222115b031169b.png

还是来看同一个例子,只不过这里我们不知道特征是什么,但是我们可以通过询问用户对爱情电影和动作电影的喜爱程度即θ来推断出x是什么,如下面所示。


8390ce58b9534d20ad5f280a17ff9a9f.png


我们可以通过给定的θ,从而最小化上面的代价函数得知x是什么。你现在可能会将这节课的内容和上节课的内容混淆,所以我们现在这里总结一下。


68d5b61ae86c4e549852d850b135c5c0.png


上节课我们是通过给定x得到θ,而这节课我们是通过给定θ得到x,其实这两者并不冲突,我们可以通过反复进行这两个算法,从θ得到x再从x得到θ这样反复进行,我们最终会得到一个非常适合的特征和θ值。


然而这样做的效率并不高,如果能够同时得到θ和x就再好不过了。


13ba7fd1fbb5474296300b5c3f5a0ed9.png


我们把上面用到的两个式子结合起来,就得到了最终的代价函数。我们上面的第一个代价函数前面其实就是对第j个用户的所有评分过的电影求和,而第二个代价函数前面其实就是对第i个电影被所有评分过它的用户求和,而将这两者结合起来就能得到最终的代价函数,可以同时得到x和θ值。所以,总结起来如下:


440720ae52264d099d625a5b45eedbeb.png


我们首先对于x和θ初始化为小的随机值。

然后最小化代价函数,可以利用梯度下降算法或其它高级算法,得到x和θ值。

最后通过得到的x和θ去预测用户对于电影的评分,即将θ得转置与x做内积。


4. 矢量化:低秩矩阵分解

我们接下来要解决的问题是,如果给定一个商品,我们能否够通过这个商品去联想到其它相关的商品,所以我们希望可以通过另一种方法来写出协同过滤算法。

d883996885b14f4a946061d2a1a50da6.png



还是同一个例子,只不过现在我们将所有的评分y提取出来变成一个矩阵Y来表示,然后按下面展开。


d8ed079594004f258d5d84a0f5d044a5.png


我们可以将矩阵中展开的值进行进一步提取,提取出X和θ两个向量,这样就可以通过XθT来表示Y了,这里的协同过滤我们还可以称为低秩矩阵分解(low rank matrix factorization)。


所以,我们就可以利用每个电影所学习到的特征,来寻找相似的电影。


52c94ab678a1445fafc2c7c92b4d3c61.png


我们可以计算电影j的x和电影i的x的差值,从而判断两者的相似度。


5. 实施细节:均值规范化

接下来,我将介绍这章的最后一个细节均值规范化,它可以使算法运行的更好。

638099d3dbdd4d098c83c2ac657ad0e0.png



这里我们引入一个新的用户,他对所有电影都没有进行评分,所以如果我们尝试获得他的θ的话,只有正则化的一项会决定θ的值,并且最终结果会为0,这样就导致对所有的电影预测他给的评分都会为0,而均值规范化会解决这个问题。

b3ad3f82b2604238b63b0bc88daceb78.png



我们还是将所有的y放入一个矩阵Y中,然后计算每一行的平均值从而得到向量μ,再将Y减去μ从而得到Y中每一行的均值都为0的情况,然后再对这个Y进行协同滤波,学习得到θ和x,再去预测结果。


这里要注意的时,我们在预测时还要加会我们刚刚减掉的μ,所以即使我最终得到的θ还是0,我们θ的转置与x的内积还是0,但是加上一个μ最终结果就不为0,而是为该电影所有评分的均值,这对于新用户一无所知的情况还是有意义的。


目录
相关文章
|
19天前
|
机器学习/深度学习 数据采集 搜索推荐
机器学习在智能推荐系统中的个性化算法研究
机器学习在智能推荐系统中的个性化算法研究
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
算法金 | 吴恩达:机器学习的六个核心算法!
吴恩达教授在《The Batch》周报中介绍了机器学习领域的六个基础算法:线性回归、逻辑回归、梯度下降、神经网络、决策树和k均值聚类。这些算法是现代AI的基石,涵盖了从简单的统计建模到复杂的深度学习。线性回归用于连续变量预测,逻辑回归用于二分类,梯度下降用于优化模型参数,神经网络处理非线性关系,决策树提供直观的分类规则,而k均值聚类则用于无监督学习中的数据分组。这些算法各有优缺点,广泛应用于经济学、金融、医学、市场营销等多个领域。通过不断学习和实践,我们可以更好地掌握这些工具,发掘智能的乐趣。
61 1
算法金 | 吴恩达:机器学习的六个核心算法!
|
17天前
|
机器学习/深度学习 算法 BI
机器学习笔记(一) 感知机算法 之 原理篇
机器学习笔记(一) 感知机算法 之 原理篇
|
10天前
|
机器学习/深度学习 算法 数据可视化
技术心得记录:机器学习笔记之聚类算法层次聚类HierarchicalClustering
技术心得记录:机器学习笔记之聚类算法层次聚类HierarchicalClustering
16 0
|
10天前
|
机器学习/深度学习 分布式计算 API
技术好文:Spark机器学习笔记一
技术好文:Spark机器学习笔记一
|
1月前
|
机器学习/深度学习 搜索推荐 算法
智能推荐系统:机器学习驱动的个性化体验
【6月更文挑战第1天】智能推荐系统借助机器学习分析用户行为和喜好,如观看科幻电影、阅读奇幻书籍、购买休闲服装,以提供个性化推荐。简单示例代码展示了其基本原理,但实际系统更复杂,涉及大量数据处理和高级算法。这项技术使我们的生活更加便捷和多彩。
47 1
|
24天前
|
机器学习/深度学习 搜索推荐 算法
【阿旭机器学习实战】【37】电影推荐系统---基于矩阵分解
【阿旭机器学习实战】【37】电影推荐系统---基于矩阵分解
|
2月前
|
机器学习/深度学习 数据采集 搜索推荐
探索机器学习在推荐系统中的应用
【5月更文挑战第15天】本文探讨了机器学习在推荐系统中的应用,强调其在数据预处理、个性化建模、内容过滤及解决冷启动问题中的作用。协同过滤、矩阵分解、深度学习和强化学习是常用算法。尽管面临数据处理、准确性与多样性平衡、兴趣变化等挑战,但未来机器学习有望通过结合先进算法提升推荐系统性能,同时需关注隐私和伦理问题。
|
2月前
|
机器学习/深度学习 Python 索引
fast.ai 机器学习笔记(二)(4)
fast.ai 机器学习笔记(二)
32 0
fast.ai 机器学习笔记(二)(4)
|
2月前
|
机器学习/深度学习 搜索推荐 算法
【Python 机器学习专栏】基于机器学习的推荐系统实现
【4月更文挑战第30天】本文探讨了机器学习在推荐系统中的应用,阐述了推荐系统的基本原理和常用算法,如协同过滤和基于内容的推荐。详细介绍了基于机器学习的推荐系统实现步骤,包括数据预处理、特征工程、模型选择与训练、评估与优化。Python及其相关库如Scikit-learn、TensorFlow在实现推荐系统中起到关键作用。同时,文章讨论了推荐系统面临的挑战(数据稀疏性、冷启动、实时性)及应对策略,并强调通过持续优化可构建更精准的推荐系统,为用户带来个性化体验。