ng机器学习视频笔记(十四)——推荐系统基础理论

lin_h lin_h     2022-10-13     177

关键词:

ng机器学习视频笔记(十三)

——推荐系统基础理论

 

(转载请附上本文链接——linhxx)

 

一、概述

         推荐系统(recommender system),作为机器学习的应用之一,在各大app中都有应用。这里以用户评价电影、电影推荐为例,讲述推荐系统。

         最简单的理解方式,即假设有两类电影,一类是爱情片,一类是动作片,爱情片3部,动作片2部,共有四个用户参与打分,分值在0~5分。

         但是用户并没有对所有的电影打分,如下图所示,问号表示用户未打分的电影。另外,为了方便讲述,本文用nu代表用户数量,nm代表电影数量,r(i,j)=1表示用户j给电影i评价,y(i,j)表示用户j给电影i的打分(当r(i,j)=1时这里的值才有效)。

        

 

         前三部是爱情片,用户Alice给前两部爱情片都5分,根据直接判断,其打5分的概率很高。

         下面首先就要解决用机器学习来预测打分的问题,进而讨论电影的相关性问题。

 

二、基于内容的推荐系统

1、简要描述

         还是上面的几个人和几个电影,现假设已知每部电影的爱情属性和动作属性,分别用x1和x2表示每部电影的这两个特征值,加上x0=1,则该场景变为线性回归场景。即需要预测出用户对每种类型电影的喜好程度矩阵θ,进而在已知某种用户未打分的电影的特征x的情况下,用θTx预测用户可能给该电影打分的分值。

         下图假设已求出用户的θ=[0 5 0]T,第一个数0对应x0没有实际意义,第二个数5表示用户对爱情片的喜欢程度,第三个数0表示用户对动作片的喜好程度。则可以预测出,该用户对第三部电影的打分,可能4.95。如下图所示:

 

 

2、计算单个用户的θ

         列出类型线性回归的代价函数,但是在推荐系统中,有一些和线性回归的代价函数不太一样的地方:

         1)求和的时候,只计算用户已经打过分的电影,忽略未打分的电影。未打分的无法参与计算。

2)不需要除以用户已打过分的电影的数目。这里是常量,忽略对结果影响不大。

 

 

3、计算所有用户的θ

         每个用户去计算,要列很多公式,比较繁琐,这里可以把公式合并,一次性求出所有的用户对应的θ,即在代价函数的地方,累加上所有用户,同时正则化项也需要累加。

 

 

         接着,就用梯度下降算法,进行计算。

 

 

         这部分内容和线性回归完全一致,区别只有代价函数的列式不太一样,梯度下降部分完全一致。

         这里基于内容的推荐,可以认为给定样本的特征x,求θ的过程。

 

三、基于用户评论的预测

         现在考虑到,由于现实中并不一定会给每个电影都有特征标签,并且特征的数量可能非常多,但是考虑到已经有很多用户已经打分,现在反求每个电影的特征。

         这里可以理解为给定用户对不同特征的喜好程度θ,求样本的特征的过程。如下图所示:

 

 

         实际求解过程也很简单,只要把x当作变量,θ当作已知值,反过来列代价函数,进而再用梯度下降求出x即可。

 

 

 

四、协同过滤算法

         上面的两个问题,有点像鸡生蛋还是蛋生鸡的问题,可以看出x和θ,只要知道一个内容,就可以求出另一个内容。进而,可以用求出的内容,反过来再优化原来的内容。相当于可以形成一个θ->x->θ->x……的链。

         这里,首先由用户对电影评分,因此可以认为多个用户对电影的评分,致使计算出电影的特征,而特征又反过来进一步优化对用户评分的预测。

         对于公式上,考虑将两个公式整合成一个,再分别对θ和x求偏导数,进行梯度下降,则可以得到θ和x。

         这样的计算方式,则成为协同过滤算法(collaborative filtering algorithm)。

         公式如下:

 

 

五、向量化实现

         现在回到一开始的问题,怎么判断两个电影是否类型相似,进而给用户推荐相似类型的电影。

         前提条件还是之前的,知道部分用户对电影的打分,未知电影的类型,如下图所示:

 

         此时,可以用到向量化实现技术(vectorization implementation),简单来说,即用上面的协同过滤计算出x和θ后,将x和θ都表示成矩阵,并且用xθT得到预测矩阵,可以预测出每个用户对每种电影的打分,以及预测出电影的特征,矩阵如下图所示:

 

 

         这个称为低秩矩阵分解(low rank matrix factorization)。

         此时,要判断两个电影是否相似,则很简单,只要计算电影i和电影j对应的特征矩阵的距离||x(i)-x(j)||,当这个值越小,则表示这两部电影越相似。

 

六、均值归一化

1、现有问题

         现考虑一个问题,当来了一个新用户,他没有对任何电影打分。此时如果用协同过滤算法,由于其没有任何的打分,则代价函数中,会只剩下θ平方和正则化项,另外两项都会为0。

         因此,当需要对θ进行代价函数最小化求解,会得到θ=0时代价函数最小(显然的事情),结果就是会预测出用户对所有电影的评分都是0分。这个有违常理。

 

 

2、解决问题

         为了解决问题,引入均值归一化(mean normalization),步骤如下:

         1)设矩阵Y表示所有用户对所有电影的打分,为打分的电影用?表示。

         2)在已打分的电影中,计算每个电影的分数均值。计算方式即打分的总数除以打分的总人数。设 这个矩阵为μ。

         3)令Y=Y-μ,得到一个新的矩阵,其中?部分仍为?。

         4)用这个新的Y去进行协同过滤算法,求出x和θ。

         5)此时对于某个用户,可以预测结果是(θ(j))Tx(i)(i),要加上对应的μ,是因为一开始扣除了μ。

 

 

         根据上述的计算,得出的新用户的预测结果,会是均值。这个可以简单的推出,因为结果是(θ(j))Tx(i)(i),而显然(θ(j))Tx(i)=0(因为这个用户之前没有任何预测,θ=0),故只会剩下μ值。

         这样,对于每一个新用户,在还没进行评价之前,会预测其对每个电影的评价是均值,这也就表示给新用户推荐电影时,会按均值,把均值较高的电影推荐给用户,这个比较符合常理。

 

七、总结

         这里的推荐系统,可以算是一个引子,只介绍了推荐系统的一些基础思想,对于真正完整的推荐系统,还有需要内容等待探索。后续我也会继续这方面的学习。

 

——written by linhxx

 

更多最新文章,欢迎关注微信公众号“决胜机器学习”,或扫描右边二维码。

ng机器学习视频笔记——神经网络基础

ng机器学习视频笔记(六)——神经网络基础 (转载请附上本文链接——linhxx)  一、概述        神经网络,可以理解为输入的内容,经过一系列的内部的处理,得到输出的假设函数。简... 查看详情

ng机器学习视频笔记——k-均值算法理论

ng机器学习视频笔记(十一)——K-均值算法理论  (转载请附上本文链接——linhxx) 一、概述        K均值(K-Means)算法,是一种无监督学习(Unsupervisedlearning)算法,其核心是聚类(Clus... 查看详情

ng机器学习视频笔记——线性回归代价函数梯度下降基础

ng机器学习视频笔记(一)——线性回归、代价函数、梯度下降基础 (转载请附上本文链接——linhxx) 一、线性回归        线性回归是监督学习中的重要算法,其主要目的在于用一个函数表... 查看详情

ng机器学习视频笔记——机器学习系统调试(cv查准率与召回率等)

ng机器学习视频笔记(八)——机器学习系统调试(cv、查准率与召回率等) (转载请附上本文链接——linhxx) 一、样本集使用方案1、测试集        为了验证系统设计的是否准确,通常需要预... 查看详情

机器学习系统构建

看了NG视频关于机器学习系统构建的建议,感觉非常有用,记录下来作为听课笔记。首先是机器学习系统构建的流程:NG推荐方法:首先高速实现一个可能并非非常完美的算法系统。进行交叉验证,画出学习曲线去学习算法问题... 查看详情

ng机器学习视频笔记——logistic回归

ng机器学习视频笔记(四)——logistic回归 (转载请附上本文链接——linhxx) 一、概述1、基本概念        logistic回归(logisticregression),是一个分类(classification)算法(注意不是回归算法,... 查看详情

ng机器学习视频笔记(十六)——从图像处理谈机器学习项目流程

ng机器学习视频笔记(十六)——从图像处理谈机器学习项目流程 (转载请附上本文链接——linhxx) 一、概述        这里简单讨论图像处理的机器学习过程,主要讨论的是机器学习的项目流... 查看详情

斯坦福大学andrewng-机器学习笔记--推荐系统&大规模机器学习&图片文字识别

  大概用了一个月,AndrewNg老师的机器学习视频断断续续看完了,以下是个人学习笔记,入门级别,权当总结。笔记难免有遗漏和误解,欢迎讨论。  鸣谢:中国海洋大学黄海广博士提供课程视频和个人笔记,在此深表感谢... 查看详情

ng机器学习视频笔记(十三)——异常检测与高斯密度估计

ng机器学习视频笔记(十三)——异常检测与高斯密度估计  (转载请附上本文链接——linhxx) 一、概述        异常检测(anomalydetection),主要用于检查对于某些场景下,是否存在异常内... 查看详情

ng机器学习视频笔记——过拟合与正则化

ng机器学习视频笔记(五)——过拟合与正则化 (转载请附上本文链接——linhxx) 一、过拟合和欠拟合1、概念        当针对样本集和特征值,进行预测的时候,推导θ、梯度下降等,都在一... 查看详情

ng机器学习视频笔记——svm进一步认识

ng机器学习视频笔记(十)——SVM进一步认识 (转载请附上本文链接——linhxx) 一、概念        svm称为支持向量,所谓的支持向量,就是在后面划分最大间距的时候,参与运算的向量,且最... 查看详情

ng机器学习视频笔记——pca实现样本特征降维

ng机器学习视频笔记(十二)——PCA实现样本特征降维 (转载请附上本文链接——linhxx)  一、概述        所谓降维(dimensionalityreduction),即降低样本的特征的数量,例如样本有10个特征... 查看详情

ng机器学习视频笔记——梯度下降算法解释以及求解θ

ng机器学习视频笔记(二)——梯度下降算法解释以及求解θ  (转载请附上本文链接——linhxx)   一、解释梯度算法      梯度算法公式以及简化的代价函数图,如上图所示。   ... 查看详情

spark2.x机器学习视频教程

Spark2.x机器学习视频教程讲师:轩宇老师链接:https://pan.baidu.com/s/1TcFl6KDjxJS597TxYFSCOA密码:3t2z本课程讲解Spark在机器学习中的应用,并介绍如何从各种公开渠道获取用于机器学习系统的数据。内容涵盖推荐系统、回归、聚类、分类等... 查看详情

ng机器学习视频笔记——线性回归的多变量特征缩放标准方程法

ng机器学习视频笔记(三)——线性回归的多变量、特征缩放、标准方程法 (转载请附上本文链接——linhxx) 一、多变量        当有n个特征值,m个变量时,h(x)=θ0+θ1x1+θ2x2…+θnxn,其中可以... 查看详情

ng机器学习视频笔记——神经网络的代价函数反向传播梯度检验随机初始化

ng机器学习视频笔记(七)——神经网络的代价函数、反向传播、梯度检验、随机初始化 (转载请附上本文链接——linhxx) 一、代价函数        同其他算法一样,为了获得最优化的神经网络... 查看详情

机器学习入门

...频:偏理论推导:B站白板推导;白板系列笔记DataWhale:机器学习实践代码李宏毅《机器学习/深度学习》2021课程(国语版本);在线笔记书籍书籍推荐包括:西瓜书,公式推导南瓜书;机器学习方法(李航)深度学习深度学习是基于... 查看详情

机器学习基础---推荐系统(代码片段)

...:问题规划这一章中将讨论推荐系统的有关内容,它是在机器学习中的一个重要应用。机器学习领域的一个伟大思想:对于某些问题,有一些算法可以自动地学习一系列合适的特征,比起手动设计或编写特征更有效率。这是目前... 查看详情