十推荐系统
Posted cold-city
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了十推荐系统相关的知识,希望对你有一定的参考价值。
1 问题公式化
假如我们是一个电影供应商,有5不影片和4个用户,我们要求用户为电影打分:
2 基于内容的推荐算法
假设每部电影有两个特征,x1代表电影的浪漫程度,x2代表电影的动作程度。
给予这些特征来构建一个推荐算法,假设采用回归模型,我们针对每一个用户都训练一个回归模型,如θ(1)为第一个用户Alice的参数模型,为2*1向量,于是有:
每一个用户的代价函数为:
其中求和是我们只计算评分过的电影,其中与线性回归模型不同的是,没有同时乘以1/m。
所以对所有用户的代价函数为:
采用梯度下降法最优化算法,更新公式为:
3 协同过滤算法
基于内容的推荐算法是已知内容的特征,学习用户的参数。如果已知用户的参数(如调查用户对浪漫电影的喜欢程度,对动作电影的喜欢程度,得到用户的参数),同样可以学习到内容的特征:
如果我们既没有内容的特征,也没有用户的参数,协同过滤算法可以解决。
协同过滤算法的优化目标:
对代价函数求偏导后:
可以根据学习到的特征,来找到两个相似的电影,根据:
这样用户可以根据已经看过的电影进行推荐。
4 低秩矩阵分解
矩阵化实现协同过滤算法:
首先对评分进行矩阵化:
推出评分:
令:
评分为:
由于评分矩阵是低秩的,协同过滤算法就是把评分矩阵分解为X和Θ两个矩阵,所以也称为低秩矩阵分解。
然后再根据电影间的相似度进行推荐:
5 均值归一化
如何新增一个用户,该用户未对所有用户进行评分,那么应用协同过滤算法后,给用户推荐会发现可能给所有的电影都打0分。
因为我们在最小化代价函数的时候只有正则化项起作用,这个时候会把θ(5)全学习为0.
这个时候可以先对数据进行均值归一化,对每个用户的评分减去该电影的平均评分:
最后在预测评分时:
就能对新增用户预测的评分都为均值
以上是关于十推荐系统的主要内容,如果未能解决你的问题,请参考以下文章
Linux系统学习 十VSFTP服务—匿名用户访问(不推荐使用,不安全)
文章翻译:Recommending items to more than a billion people(面向十亿级用户的推荐系统)