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.3协同过滤
不像基于内容的推荐系统,此处我们并不知道,电影的具体的属性值,但可以由顾客得出theta值
问题如下
通过theta来得出X,可见其与上一节之区别
协同过滤,如下
这就好比是鸡与蛋的问题,先有鸡还是先有蛋,此处先假设先有鸡,后再推出蛋,最后一路推下去,最终就可以得到一个收敛的好结果
9.4协同过滤算法
简单的想法是先随机初始化x,从而得出theta,再算出x,一直重复这过程,只至theta和x趋于稳定为止
要注意的是不像以前公式中所要重视的细节那样,这里无需用到x0和theta0.
在此算法中,我们随机初始化theta值和x值到一个小的随机值,点解呢?
这个是用来symmetry breaking(对称性破缺)类似于神经网络参数的随机初始化,以确保这种算法学到的特征x1...之间相互不同
这就是全部过程
9.5向量化:低秩矩阵分解
三张解决,先算出每个电影的x值,再推出之间是否可归为同类
9.6完善细节:mean normalization(均值标准化)
当我们讨论均值标准化的时候,不同于一些其他的特征规范化的应用,此处并没有用较常见的max-min value(最大最小值规范化)
,原因在于,所以的电影评分都是comparable的(如0到5星),所以他们已经在相似的度量上了
如果不作任何处理的话,第五个客人的所有的预测评分都将为0,这是没有任何意义的结果,故用第二张图的方法来计算