基于内容的推荐系统(content-based recommender system)

基于内容的推荐系统(content-based recommender system)

1. movie rating predict

比如要预测一位观影者对于还未观看过的电影的评分,并根据他的观影记录给予推荐相应的电影。
电影评分估计
如上图所示,需要算表格中问号的评分,那么就需要一个算法来进行实现。给出x0=1,使得特征变量成为三元向量。其中的thera是通过某种算法得到,在后面的习题中是根据代入数字进行计算得到。
接下来我们将这个过程表示得更加清楚一些,同时将介绍求出 thera的算法。(最小二乘回归 )
problem formulation

如上图所示,将前面表格阐述的问题公式化,并且最后给出了求最小thera的表达式。其中最后添加的项是正则化项,其中的n代表的是特征向量的维数。其中的m(j)只是一个常数项,可以省略。可以表示成如下的形式。
Optimiztion objective
如果想对所有的用户的参数都进行求解,那么就需要在之前表达式的外层再加一层求和符号。那么对于这个参数最优化的求解,可以采用之前说过的梯度下降的方法,梯度下降的算法和线性的算法差别不是很大,只是少了一个1/m。
Optimiztion algorithm

以上就是基于内容的推荐,因为我们以及得到关于电影的特征数据,比如它的动作成分和爱情成分的数据。所以这种是基于内容的推荐。

2. Collaborative filtering

协同过滤的算法的一个好处就是它能实现特征的学习。相比上面的算法,它能自主学习特征,求出特征值。
问题阐述
同样的问题,只不过此处并不知道问题的特征值,那么就需要算法能够自主学习特征值。由上图可知,给出相应的threa值,然后能够推断出特征值的大概范围,最后再通过计算进行核实。
那么对于特征值的优化,我们可以用以下的公式进行求解。
Optimiztion algorithm
由上图可以看出,这个表达式和之前求参数的表达式是一样的,只不过后面的正则化参数不同而已,正则化参数是正则化每次所求的变量。下面来总结一下求参数和求特征值的算法。
Collaborative filtering
上图可以看出,参数和特征值之间的关系有点像先有鸡还是先有蛋的问题,那么可以先猜测参数的值,接着计算特征值,再接着计算参数值,如果循环下去,能得到一组很好的参数值和特征值。协同过滤的思想是因为通过已有的用户对电影的评分,来计算出特征值和参数,这是所有的用户的数据对这个算法的贡献。

3. collaborative filtering algorithm

前面给出的两种算法分别是:1.给你用户的特征数据,让你求出用户的评分;2.给你用户评分的数据,让你求出用户的特征。接下来将会结合这两种算法给出协同过滤的算法。
协同过滤算法
如上图所示,将求解参数和求解特征值的算法进行了合并,同时需要注意的是参数的维数降为了n维,不再是之前的n+1维了。那么协同过滤算法的具体步骤如下:
协同过滤算法

4. Vectorization:low rank matrix factorization

上面提到了协同过滤算法,接下来将会提到他的向量化实现以及该算法可以做的其它一些事情。
问题向量化
其中的y(i,j)表示用户j对电影i的评分。
具体的向量化算法如下:
向量化算法
那么关于协同算法的应用,如下进行了展示:
协同算法的应用

5. Impementation detail:Mean normalization(均值归一化)

均值归一化
对于最后一个用户,它并没有对任何的电影进行评分,那么如果直接用之前求解参数的方法进行求解的话,那么使其满足最小值要求的参数就是零,这样计算的结果是最后一位用户对所有的电影的评分是0,显然不符合逻辑,所以为了避免这样的情况发生,将会采用均值归一化的方法进行求解。(预处理的方法)
均值归一化

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值