十推荐系统

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.

技术分享图片

这个时候可以先对数据进行均值归一化,对每个用户的评分减去该电影的平均评分:

技术分享图片

最后在预测评分时:

技术分享图片

就能对新增用户预测的评分都为均值

以上是关于十推荐系统的主要内容,如果未能解决你的问题,请参考以下文章

大数据入门第十九天——推荐系统与mahout入门与概述

Linux系统学习 十VSFTP服务—匿名用户访问(不推荐使用,不安全)

文章翻译:Recommending items to more than a billion people(面向十亿级用户的推荐系统)

推荐系统之常见问题汇总

推荐系统的构建: 从经典到深度学习方法

推荐系统遇上深度学习--GBDT+LR融合方案实战