机器学习9(2)推荐系统

时间:2023-01-09 22:24:33

9.1 problem formulation

  第一节就讲了下问题,看起来好简单,但实际的想法还是很不错的,开两个矩阵,一个矩阵用0/1来表示评分与否,另一个矩阵表示具体的评分。两层结构,略显冗余,但在对客户分类时可能还是很有好处的,哈哈

9.2 基于内容的推荐(是基于电影的属性来推荐)

 下一节则会讲到不基于内容的推荐

 在得到theta时可用cluster descent,&LBFGS等方法(For collaborative filtering, it is possible to use one of the advanced optimization algoirthms (L-BFGS/conjugate gradient/etc.) to solve for both the x(i)'s and θ(j)'s simultaneously.)

机器学习9(2)推荐系统


机器学习9(2)推荐系统

机器学习9(2)推荐系统

9.3协同过滤

不像基于内容的推荐系统,此处我们并不知道,电影的具体的属性值,但可以由顾客得出theta值

问题如下

机器学习9(2)推荐系统

机器学习9(2)推荐系统

通过theta来得出X,可见其与上一节之区别

协同过滤,如下

这就好比是鸡与蛋的问题,先有鸡还是先有蛋,此处先假设先有鸡,后再推出蛋,最后一路推下去,最终就可以得到一个收敛的好结果

机器学习9(2)推荐系统

9.4协同过滤算法

简单的想法是先随机初始化x,从而得出theta,再算出x,一直重复这过程,只至theta和x趋于稳定为止

要注意的是不像以前公式中所要重视的细节那样,这里无需用到x0和theta0.

在此算法中,我们随机初始化theta值和x值到一个小的随机值,点解呢?

这个是用来symmetry breaking(对称性破缺)类似于神经网络参数的随机初始化,以确保这种算法学到的特征x1...之间相互不同

机器学习9(2)推荐系统


机器学习9(2)推荐系统

这就是全部过程

9.5向量化:低秩矩阵分解

机器学习9(2)推荐系统

机器学习9(2)推荐系统

机器学习9(2)推荐系统

三张解决,先算出每个电影的x值,再推出之间是否可归为同类

9.6完善细节:mean normalization(均值标准化)

当我们讨论均值标准化的时候,不同于一些其他的特征规范化的应用,此处并没有用较常见的max-min value(最大最小值规范化)

,原因在于,所以的电影评分都是comparable的(如0到5星),所以他们已经在相似的度量上了

如果不作任何处理的话,第五个客人的所有的预测评分都将为0,这是没有任何意义的结果,故用第二张图的方法来计算

机器学习9(2)推荐系统

机器学习9(2)推荐系统