第十七章 推荐系统recommender systems

课时133 问题规划
第十七章 推荐系统recommender systems_第1张图片
我们希望构建一个算法来预测每个人可能会给他们没看过的电影打多少分,并以此作为推荐的依据。

课时134 基于内容的推荐算法
每个用户都有自己的θ。
第十七章 推荐系统recommender systems_第2张图片
第十七章 推荐系统recommender systems_第3张图片
r(i, j)表示用户j是否喜欢电影i,
y(i, j)表示用户j给电影i的评分,
θ(j)表示用户j的“喜好”参数,
x(i)表示电影i的特征参数,
对于用户j,电影i,预测评分为(θ(j))T(x(i))
m表示用户j评价的电影总数,
要训练θ(j).
第十七章 推荐系统recommender systems_第4张图片
第一个式子是训练一个theta(j)的代价函数,训练所有用户的参数θ的代价函数要加一个相加符号。
梯度下降最小化代价函数:
第十七章 推荐系统recommender systems_第5张图片
课时135 协同过滤collaborative filtering
这种算法能够自行学习要使用的特征。让人看电影然后判断x1和x2的值太耗费人力物力。如果能从用户那里得到θ表示他们对不同类型的喜欢程度,我们就可以用下图的式子推测出每部电影的x1和x2的值。
第十七章 推荐系统recommender systems_第6张图片
第十七章 推荐系统recommender systems_第7张图片
给定x可以求θ,给定θ也可以求x,似乎是一个先有鸡还是先有蛋的问题,我们可以随机地猜一些θ值,来学习出不同电影的特征,再得到一个更好的对参数θ的估计,再得到更好的特征,以此类推,最终算法将会收敛到一组合理的电影特征以及一组合理的对不同用户的参数的估计。
第十七章 推荐系统recommender systems_第8张图片
协同过滤指每个用户都在帮助算法学习出更合适的特征,也就是通过自己对几部电影进行评分来帮助系统更好地学习特征,这些特征又可以被用来更好地预测其他用户的评分。

课时136 协同过滤算法
协同过滤算法可以让我们不需要不停地计算x和θ,而是将x和θ同时计算出来。前两个紫色框里的两个式子其实是一样的,可以写成最下面的紫色框里的形式。这个算法将x和θ都作为参数一起最小化,不再需要反复计算。还有一个细节是不使用方差项θ0=1,x0=1,如果需要的话,系统会自动学得。
第十七章 推荐系统recommender systems_第9张图片
第十七章 推荐系统recommender systems_第10张图片

课时137 矢量化:低秩矩阵分解
写出Y矩阵:
第十七章 推荐系统recommender systems_第11张图片
协同过滤算法/低秩矩阵分解算法low rank matrix factorization向量化:
第十七章 推荐系统recommender systems_第12张图片
利用以及学习到的特征,来找到相关的电影:(衡量电影的相似度)
第十七章 推荐系统recommender systems_第13张图片

课时138 实施细节:均值归一化
对一个没有评价过任何电影的用户,代价函数的第一项为0,只有正则项,这样得到的参数为0,再算预测评分也就都为0,均值归一化可以解决这个问题
第十七章 推荐系统recommender systems_第14张图片
计算所有电影的平均评分放在μ向量中,Y矩阵中让每个评分都减去平均分,使得每部电影评分的均分为0,用Y训练θ(i)和x(i),预测评分时加上均值μi:
第十七章 推荐系统recommender systems_第15张图片

你可能感兴趣的:(第十七章 推荐系统recommender systems)