以电影评分系统为例,令 r(i, j) 来表示用户 j 已经对电影 i 评分, y(i, j)表示评分具体是多少。
假如每部电影有自己的特征,那么用户 j 对电影 i 的评分预测为 w(j) * x(i) + b(j)
r(i, j) :一个用户 j 是否对电影 i 进行了评分, 1 为已评
y(i, j):用户 j 对电影 i 的评分
w(j) b(j):用户 j 的参数
x(i):电影 i 的特征向量
成本函数如下,最后一项是正则化项。其中除以m(j)可以忽略,因为是常数。
对于所有用户,成本函数只需要把这 nu 个用户的成本函数加起来即可。
假设我们不知道电影的特征向量 x,而Alice给第一部电影评分为5,Bob给第二部电影评分为5,可得 w1*x1约为5,w2*x1约为5,找到一个合适的向量 x 满足方程组即可。注意,只有一个用户的时候是算不出来的。
学习 x 的成本函数
协同过滤:将多个用户的信息收集起来帮助预测其他用户的评分
将上面两个学习 w b和学习 x 的成本函数加到一起
此时的梯度下降不仅要考虑 w b,还要考虑 x