十六、推荐系统(Recommender systems)

简介: 十六、推荐系统(Recommender systems)

1、引入


电影评分问题是推荐系统的一个应用之一,根据不同用户对于不同电影的评分来判断用户的电影类型喜好,从而有选择地给用户推荐用户未曾观看过的电影。如下图所示:

67168eb3d32d489eb76486d4d919db71.png

之后首先定义一系列符号,方便后续介绍:令 nu表示用户的数量;nm表示影片的数量; r(i,j)=1表示用户 j j j对影片  i进行了打分;  y(i,j)表示用户j给影片  i打的具体分数值。




2、基于内容的推荐



基本思想是对每一个用户 j j j都拟合一个参数  θj,之后根据拟合的线性方程来估计用户对于没有观看过影片i的打分 θjTx(i),其中,  x(i)表示某个影片i的特征向量。


下面定义  θ(j)表示用户j的参数向量;定义  x(i)表示影片  i的特征向量;定义  m(j)表示用户  j打过分的影片的数量;推荐系统下,参数预测的目标函数如下所示:


80dd8946b40046a0b66446c96b847282.png



3、协同过滤


如下图所示,假如现在知道辽一些用户对于一些电影的评分 ,但是不知道每部电影具体特征向量的值,但是获得了每个用户对于,每个特征的评分向量  θ(j),则可以反推出每部电影的特征向量的值 x(i)。

90f182dabafb43349d60ec0a9a8a0663.png


特征向量的值 x(i)的优化算法和向量θ(j)的优化算法类似,只是将自变量变为了x(i),如下所示:


5d5e6a8e05a74cf2924fd3b9e5707c4a.png



3.1 协同过滤算法-Collaborative Filtering optimization


根据上述介绍,当有电影的特征向量时,可以使用已知信息训练用户的参数向量;当得到用户的参数向量之后,又可以利用一直信息反过来训练电影的特征向量。除了单独对上述两个向量进行训练,协同过滤算法对他们进行同时优化,其目标函数如下所示:


image.png


协同过滤算法的流程如下所示:注意在这里不使用附加特征  x0,则也没有参数θ0。


4a34e04727fb4a0a9407db07d3b45846.png



3.2 低秩分解


将协同过滤算法使用矩阵形式表示的方法如下所示,这种矩阵表示方式也称为低秩分解

30c8195b67734146b0fac6e89fdad2e8.png


寻找相似电影的方法为:通过计算不同电影之间的特征向量之间的差距来衡量不同电影之间的相似程度: ∣x(i)−x(j)∣∣。



3.3 均值规范化


再进行推荐算法之前,首先对用户对电影的评分进行规范化,将某一步电影的每一个评分分别减去所有用户对于这个电影的评分均值;之后再进行推荐算法进行参数θ和 x的学习。最后在进行  θ值预测时,最后需要将每一行的均值再重新添加回每一个用户的评分上。这样做可以使得完全缺失信息的用户最后对于每个电影的评分为平均水平,也是make sense的。

5cb585d3656a4b8a810a57abf1b6348d.png











相关文章
|
机器学习/深度学习 搜索推荐 算法
【推荐系统论文精读系列】(三)--Matrix Factorization Techniques For Recommender Systems
现在推荐系统一般是基于两种策略,一种是基于文本过滤的方式,另外一种是协同过滤,而基于文本过滤的方法是创造画像为用户或者物品,说白了就是用一些描述性的特征去描述它们,例如对于一部电影来说,可以为其创造画像电影类型、导演、演员、电影市场、票房等来进行描述,对于用户来说,可以用一些人口统计特征来进行描述。
460 1
|
机器学习/深度学习 搜索推荐 算法
【推荐系统论文精读系列】(十)--Wide&Deep Learning for Recommender Systems
具有非线性特征转化能力的广义线性模型被广泛用于大规模的分类和回归问题,对于那些输入数据是极度稀疏的情况下。通过使用交叉积获得的记忆交互特征是有效的而且具有可解释性,然后这种的泛化能力需要更多的特征工程努力。在进行少量的特征工程的情况下,深度神经网络可以泛化更多隐式的特征组合,通过从Sparse特征中学得低维的Embedding向量。可是,深度神经网络有个问题就是由于网络过深,会导致过度泛化数据。
169 0
【推荐系统论文精读系列】(十)--Wide&Deep Learning for Recommender Systems
|
机器学习/深度学习 负载均衡 搜索推荐
【推荐系统论文精读系列】(十六)--Locally Connected Deep Learning Framework for Industrial-scale Recommender Systems
在这项工作中,我们提出了一个局部连接的深度学习框架推荐系统,该框架将DNN的模型复杂性降低了几个数量级。我们利用Wide& Deep模型的思想进一步扩展了框架。实验表明,该方法能在较短的运行时间内取得较好的效果。
130 0
【推荐系统论文精读系列】(十六)--Locally Connected Deep Learning Framework for Industrial-scale Recommender Systems
|
2月前
|
搜索推荐 前端开发 数据可视化
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
本文介绍了一个基于Django框架、协同过滤算法、ECharts数据可视化以及Bootstrap前端技术的酒店推荐系统,该系统通过用户行为分析和推荐算法优化,提供个性化的酒店推荐和直观的数据展示,以提升用户体验。
101 1
|
4月前
|
搜索推荐 算法 小程序
基于Java协同过滤算法的电影推荐系统设计和实现(源码+LW+调试文档+讲解等)
基于Java协同过滤算法的电影推荐系统设计和实现(源码+LW+调试文档+讲解等)
|
4月前
|
搜索推荐 算法 小程序
基于Java协同过滤算法的图书推荐系统设计和实现(源码+LW+调试文档+讲解等)
基于Java协同过滤算法的图书推荐系统设计和实现(源码+LW+调试文档+讲解等)
|
2月前
|
搜索推荐 前端开发 数据可视化
基于Python协同过滤的旅游景点推荐系统,采用Django框架,MySQL数据存储,Bootstrap前端,echarts可视化实现
本文介绍了一个基于Python协同过滤算法的旅游景点推荐系统,该系统采用Django框架、MySQL数据库、Bootstrap前端和echarts数据可视化技术,旨在为用户提供个性化的旅游推荐服务,提升用户体验和旅游市场增长。
128 9
基于Python协同过滤的旅游景点推荐系统,采用Django框架,MySQL数据存储,Bootstrap前端,echarts可视化实现
下一篇
无影云桌面