首页 > 技术文章 > 吴恩达机器学习笔记 - 推荐系统

leoyes 2020-11-06 17:27 原文

001. 符号系统

  以电影评分为例,

 

002. 基于内容的推荐

   每个人对不同内容电影的打分都是有规律的,可以通过机器学习表示出来,这里用逻辑回归来描述。

   因此总体而言,每个人都有一个独立的逻辑回归模型,模型的输入特征,则是内容产品的特征向量。

  

003. 基于内容的推荐系统优化函数

  单个人的逻辑回归参数向量theta,是由所有r(i,j)=1的特征及评分训练而得,即: 由他有评分的所有电影

  对于整体所有人的向量,可以通过vectorization 得到

    

  随机梯度下降优化参数更新公式

 

   从此处可以看出,这里的基于内容的推荐方法,预测不同人对不同电影的评分,实际上是逻辑回归的(用户维)推广

  内容m * 用户n 的评分矩阵,每个列切片(用户)对应一个用户的逻辑回归 的实际y值,每个横切片是n个逻辑回归模型的共用输入特征X

 

004. 协同过滤过程

  基于内容的推荐需要有每个电影的特征,而实际中,我们有时没有这种产品或内容的特征,协同过滤的特点是可以自行学习特征

 

  

   假设不知道每部电影的特征,但是却知道 每个人的偏好,即回归参数向量theta参

    

  则我们可以学习 特征 <= 参数 + 评分

 

   用优化函数表示这个学习的过程,即:

 

   协调过滤过程,初始化一个参数theta,求出特征向量集 ,再依据特征向量集,求出theta,鸡生蛋,蛋生鸡,最终可以得到一组合理的参数向量(人)跟特征值(电影)

   每个人在评分,都是在对电影特征的学习做贡献,反过来,系统又能够利用学习到的特征,更好的预测每个人的电影评分,以便进行推荐,有一种大家协同协作使系统更好的感觉,这就是collaborative filtering

  协调过滤的理论基础是 不同人的逻辑回归模型中,横切片 - 内容特征向量是一致的,大家都共用,通过其他已有的评分就可以算出内容的特征向量,算出后用可以被没有看过的人使用;

 

 005. 协同过滤算法

   将上面的2步过程结合成一个优化函数

  

   如下,全部初始化,同时更新,迭代拟合。 初始化用随机小值,跟神经网络的初始化一样,用来symmetry breaking ( 未理解)

  

 006. 协同过滤算法向量化表示

   重点在对其评分矩阵的表示上,Low Rank Matrix (低秩矩阵分解)的表示方法 

  

  

     = 

  

   在实践中,对于学习而得到的特征向量,

  1) 很难用具象的东西解释是啥,很难可视化

  2) 我们可以利用学习到内容/产品的特征向量,刻画相似度,这样我们就可以进行评分推荐了

 

007. 实施中的均值归一化 

  Implementational Detail: Mean Normalization

  当有一个新用户Eve时,她没有对任何电影评分,如果直接用上面的优化算法进行训练,则会得到 Eve的回归向量参数是0向量,也就没有办法向她推荐了 

 

  原因在于:优化函数中第1项因Eve没有评分,没有Eve的任何参数theta的信息,而正则化项中,有特征向量theta的模长度惩罚项; 而正则化项最小化的目标下,会使得参数分量都趋于0

  

    均值归一化的具体操作:

      1)每部电影(内容/产品)的评分矩阵减去均值向量(所有人对这部电影的评分的均值),之后再进行训练

      2) 训练完了后,进行评分预测时,再加一个均值回来

 

      在新评分矩阵训练后, 会得到其偏好参数仍为0向量,因为其没有任何评分,也就无任何偏好; 但新用户Eve进行做预测时,她所有的电影评分将会赋值为 均值

 

推荐阅读