推荐系统之LFM

  这里我想给大家介绍另外一种推荐系统,这种算法叫做潜在因子(Latent Factor)算法。这种算法是在NetFlix(没错,就是用大数据捧火《纸牌屋》的那家公司)的推荐算法竞赛中获奖的算法,最早被应用于电影推荐中。这种算法在实际应用中比现在排名第一的 @邰原朗 所介绍的算法误差(RMSE)会小不少,效率更高。我下面仅利用基础的矩阵知识来介绍下这种算法。

  这种算法的思想是这样:每个用户(user)都有自己的偏好,比如A喜欢带有小清新的吉他伴奏的王菲等元素(latent factor),如果一首歌(item)带有这些元素,那么就将这首歌推荐给该用户,也就是用元素去连接用户和音乐。每个人对不同的元素偏好不同,而每首歌包含的元素也不一样。我们希望能找到这样两个矩阵:

  一.用户-潜在因子矩阵Q

  表示不同的用户对于不用元素的偏好程度,1代表很喜欢,0代表不喜欢。比如下面这样:

二.潜在因子-音乐矩阵P

  表示每种音乐含有各种元素的成分,比如下表中,音乐A是一个偏小清新的音乐,含有小清新这个Latent Factor的成分是0.9,重口味的成分是0.1,优雅的成分是0.2……

  利用这两个矩阵,我们能得出张三对音乐A的喜欢程度是:张三对小清新的偏好*音乐A含有小清新的成分+对重口味的偏好*音乐A含有重口味的成分+对优雅的偏好*音乐A含有优雅的成分+……

  即:0.6*0.9+0.8*0.1+0.1*0.2+0.1*0.4+0.7*0=0.69

  每个用户对每首歌都这样计算可以得到不同用户对不同歌曲的评分矩阵。(注,这里的破浪线表示的是估计的评分,接下来我们还会用到不带波浪线的R表示实际的评分):

  因此我们队张三推荐四首歌中得分最高的B,对李四推荐得分最高的C,王五推荐B。

  如果用矩阵表示即为:

  下面问题来了,这个潜在因子(latent factor)是怎么得到的呢?

  由于面对海量的让用户自己给音乐分类并告诉我们自己的偏好系数显然是不现实的,事实上我们能获得的数据只有用户行为数据。我们沿用 @邰原朗的量化标准:单曲循环=5, 分享=4, 收藏=3, 主动播放=2 , 听完=1, 跳过=-2 , 拉黑=-5,在分析时能获得的实际评分矩阵R,也就是输入矩阵大概是这个样子:

  事实上这是个非常非常稀疏的矩阵,因为大部分用户只听过全部音乐中很少一部分。如何利用这个矩阵去找潜在因子呢?这里主要应用到的是矩阵的UV分解。也就是将上面的评分矩阵分解为两个低维度的矩阵,用Q和P两个矩阵的乘积去估计实际的评分矩阵,而且我们希望估计的评分矩阵

  和实际的评分矩阵不要相差太多,也就是求解下面的目标函数:

  这里涉及到最优化理论,在实际应用中,往往还要在后面加上2范数的罚项,然后利用梯度下降法就可以求得这P,Q两个矩阵的估计值。这里我们就不展开说了。例如我们上面给出的那个例子可以分解成为这样两个矩阵:
  这两个矩阵相乘就可以得到估计的得分矩阵:
  将用户已经听过的音乐剔除后,选择分数最高音乐的推荐给用户即可(红体字)。

  在这个例子里面用户7和用户8有强的相似性:
  从推荐的结果来看,正好推荐的是对方评分较高的音乐:

时间: 2024-08-05 21:17:39

推荐系统之LFM的相关文章

推荐系统第5周--- 基于内容的推荐,隐语义模型LFM

基于内容的推荐 制定分类/属性的困难使用专业人员(编辑)对商品进行整理分类,但这样会产生成本和效率瓶颈受限于编辑的专业水平,编辑的意见未必能代表用户的意见分类的粒度难于控制如果商品有多个分类,很难考虑周全多维度,多规角分类编辑很难决定商品在类别里的权重 隐语义模型 LFM的前丕今生 隐语义模型的适用性 关于训练集 常见同类问题求解思路 梯度下降法的几何意义 LFM损失函数极值用梯度下降法求解 LFM中的重要参数 模型中隐特征个数梯度下降法中选取的学习速率损失凼数中的惩罚项系数lambda训练集的

推荐系统--隐语义模型LFM

主要介绍 隐语义模型 LFM(latent factor model). 隐语义模型最早在文本挖掘领域被提出,用于找到文本的隐含语义,相关名词有 LSI.pLSA.LDA 等.在推荐领域,隐语义模型也有着举足轻重的地位.下述的实验设计见 推荐系统–用户行为和实验设计 基本思想 核心思想: 通过隐含特征(latent factor)联系用户兴趣和物品.具体来说,就是对于某个用户,首先得到他的兴趣分类,然后从分类中挑选他可能喜欢的物品.基于兴趣分类的方法需要解决3个问题: 如何对物品进行分类? 如何

推荐系统

推荐系统 1.缘起 糖豆作为国内最大的广场舞平台,全网的MAU已经超过4000万,每月PGC和UCG生产的视频个数已经超过15万个,每月用户观看的视频也超过100万个.然而之前糖豆APP首页主要还是依赖内容编辑手工推荐来发现内容,每天的推荐量也是几十个而已.明显可见千人一面的内容分发效率比较低下,继而我们于2016年12月初,启动了糖豆推荐系统的设计以及开发,目前截止到2017年1月初,已经完成第一期推荐系统的开发与评估.推荐项目立项伊始,我撰写了一篇整体架构与设计,本文和架构一文在部分内容有所

题记 《推荐系统实践》读书笔记

<推荐系统实践>是一本入门级书籍,全书不到200页,通熟易懂,非常适合初学者.记不起上次阅读该书是什么时候,可以确定的是很定不超过三个月,今天回想梳理全书结构,甚是模糊,而是打算重读一遍.并在这里留下些许痕迹,以帮助日后回忆之用.对本笔记内容感兴趣的读者还请购买正版书籍,尊重作者权益! 作者介绍如下: 项亮,毕业于中国科学技术大学和中国科学院自动化所,研究方向为机器学习和推荐系统,现任职于北京Hulu软件技术开发有限公司,从事视频推荐的研究和开发.2009年参加Netflix Prize推荐系

隐语义模型LFM(latent factor model)

对于某个用户,首先得到他的兴趣分类,然后从分类中挑选他可能喜欢的物品.总结一下,这个基于兴趣分类的方法大概需要解决3个问题. 如何给物品进行分类? 如何确定用户对哪些类的物品感兴趣,以及感兴趣的程度? 对于一个给定的类.选择哪些属于这个类的物品推荐给用户,以及如何确定这些物品在一个类中的权重? 隐含语义分析技术采用基于用户行为统计的自动聚类,较好地解决了上面提出的问题. 隐含语义分析技术的分类来自对用户行为的统计,代表了用户对物品分类的看法.隐含语义分析技术和ItemCF在物品分类方面的思想类似

推荐系统知识点汇总

整理归纳一下<推荐系统实践>和<推荐系统导论>两本书的知识点,文中排版格式可能会有点乱,如有问题请指正.OK,闲话不说,先上2张图 对推荐系统的建模数据进行分析,代表型数据:1)无上下文的隐形反馈数据:2) 无上下文的显性反馈数据:3) 有上下文的隐形反馈数据:4)有小上下文的显性反馈数据,其中显性的反馈数据就是用户对物品的评分,而隐形的就是用户对物品的浏览,时长等数据(不同的领域,用户对物品的行为种类不一样),像我之前的做的都全是用有上下文的隐形反馈,都是通过点击.登陆.时长归纳

推荐系统_全

1 推荐系统的分类 基于应用领域分类:电子商务推荐,社交好友推荐,搜索引擎推荐,信息内容推荐 基于设计思想:基于协同过滤的推荐,基于内容的推荐,基于知识的推荐,混合推荐 基于使用何种数据:基于用户行为数据的推荐,基于用户标签数据的推荐,基于社交网络数据,基于上下文信息(时间上下文,地点上下文等等) 2 常见评测标准 http://blog.csdn.net/u011263983/article/details/51544495 3 用户行为数据 从用户的行为和偏好中发现规律,并基于此进行推荐,所

推荐系统-利用用户行为数据

用户的行为数据介绍: 用户的行为主要分为两种-显性反馈行为 和 隐性反馈行为 ,显性反馈行为主要包括 评分 和喜欢/不喜欢 ,youtube最早是使用是使用五分评价系统的,但是只有用户很不满意和特别满意的情况下才会评分,因此又把它变成了二级评分系统. 隐式反馈行为就是页面的浏览行为. 用户的行为分析: 用户的数据分布大都满足一种长尾分布,就是 每个单词出现的频率和他在热门排行榜的排名成反比.反映在网络行为上就是越是新用户越倾向于选择热门的产品越是老用户越是倾向于冷门产品 . 基于用户的行为的推荐

推荐系统实践

推荐系统测评  实验方法 离线实验:准备训练数据测试数据并评估: 用户调查:问卷方式.和用户满意度调查 在线实验:AB测试:AB测试是一种很常用的在线评测算法的实验方法.它通过一定的规则将用户随机分成几组, 并对不同组的用户采用不同的算法,然后通过统计不同组用户的各种不同的评测指标比较不同算 法,比如可以统计不同组用户的点击率,通过点击率比较不同算法的性能. 测评指标: 用户满意度 预测准确度:预测准确度度量一个推荐系统或者推荐算法预测用户行为的能力.这个指标是最重要的推荐系统离线评测指标 评分