推荐系统实践(七)

第七章 推荐系统实例

7.1 外围架构

  

  数据收集和存储

  需要实时存取的数据存储在数据库和缓存中,而大规模的非实时地存取数据存储在分布式文件系统中(HDFS)中。

7.2 推荐系统架构  

  用户和物品的联系如下所示:

  如果认为用户喜欢的物品也是一种用 户特征,或者和用户兴趣相似的其他用户也是一种用户特征,那么用户就和物品通过特征相联系。基于上述的理解我们可以把推荐系统的核心任务拆分位两个部分1

  > 如何给用户生成特征

  > 如何根据特征找到物品
  推荐系统的需求有很多,可以根据不同的需求设计不同的推荐引擎,通过不同的推荐引擎来满足客户的需求。

7.3 推荐引擎的架构  

  推荐引擎使用一种或几种用户特征,按照一种推荐策略生成一种类型物品的推荐列表。一个规则引擎的概念图如下所示:

  

  > A部分从缓存中拿到用户的行为数据,通过分析用户的行为获取特征向量

  > B部分将特征向量结合特征-物品矩阵生成初始的推荐列表

  > C部分对初始的列表进行处理,从而生成最终的推荐结果。

  生成用户特征向量

  用户的特征一般有两种:一种是注册的时候获取的,另一种是通过用户的行为计算出来的。

  计算用户特征向量主要考虑:

  > 用户行为的种类  一般的标准是用户付出代价越大的行为权重越大

  > 用户行为产生的时间 近期行为权重大

  > 用户行为次数 次数越多行为权重越大

  > 物品的热门程度 对不怎么热门的物品做出的行为更具备参考价值

  特征-物品相关推荐

  过滤模块

  通常会过滤的物品:

  > 用户已经产生过行为的物品 (保证新颖性)

  > 候选物品以外的物品

  > 质量不合格的物品

  排名模块

  (1)新颖性排名

   考虑对热门的物品降权:

   在计算$p_{ui}$的时候考虑到新颖性问题,对于,$r_{uj}$表示用户u对物品j的反馈度(可以理解为行为次数),类似的对其适当降权考虑到推荐系统是为了给用户介绍他们不熟悉的物品,那么可以假设如果用户知道了物品j,对物品j产生过行为,那么和j相似的且比j热门的物品用户应该也有比较大的概率知道,因此可以降低这种物品的权重,如下所示:

  (2)多样性排名

原文地址:https://www.cnblogs.com/z1141000271/p/11393479.html

时间: 2024-10-13 18:03:59

推荐系统实践(七)的相关文章

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

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

推荐系统实践小结 转

之前对于推荐,一直都仅限于理论书籍,浅一点像<集体智慧编程><推荐系统实践>,复杂的像<数据挖掘><机器学习>,当然也没看太深入.当时对推荐系统的看法是,这是一个以算法为核心的系统,一切价值体现都在算法模型上了.不过这段时间有幸参与到真实系统,稍有改观.下最近的一些想法吧,当然作为一个系统开发人员,理论算法方面的理解可能有点偏颇. 1.业务永远是第一位----------我们的本质是销售. 话说做推荐,和做营销的本质区别是什么? 还要说下销售和市场的区别,我

推荐系统实践整体化总结

这一阵子在找实习,总的情况来看,一点都不理想,做了总结,主要是由于我的理论不够扎实,实践又不多导致的,其实这两者是有一定的联系的,因为实践的不多,所以理论上的提升就非常的有限.最近比较喜欢推荐系统相关的内容,因此就找了项亮的<推荐系统实践>来看,心想现在终于可以理论和实践相结合了. 刚开始读这本书,就觉得写的非常的简单易懂,因此我是一口气读完整本书的,好久没有一次性读完200页的书了,在这期间当然我也敲了一些代码,因为我的python功底确实没有,所以看着伪代码就总是怀疑它的正确性,只有自己敲

项亮《推荐系统实践》读书笔记1-推荐系统评价指标

推荐系统评价指标 1.评分预测 预测准确度: 均方根误差(RMSE): 平均绝对误差(MAE): 关于这两个指标的优缺点,Netflix认为RMSE加大了对预测不准的用户物品评分的惩罚(平方项的惩罚),因为对系统的评测更加苛刻.研究表明,如果评分系统是基于整数建立的(即用户给的评分都是整数),那么对预测结果取整会降低MAE的误差. 2.Top N推荐:给用户一个个性化的推荐列表,预测准确率一般通过准确率和召回率度量. 令 R(u)是根据用户在训练集上的行为给用户作出的推荐列表,而T(u)是用户在

项亮《推荐系统实践》读书笔记2-推荐系统冷启动问题

推荐系统冷启动问题 如何在没有大量用户数据的情况下设计个性化推荐系统并且让用户对推荐结果满意从而愿意使用推荐系统,就是冷启动问题. 冷启动问题主要分为三类: (1) 用户冷启动:如何给新用户做个性化推荐的问题,新用户刚使用网站的时候,系统并没有他的行为数据: (2) 物品冷启动:解决如何将新的物品推荐给可能对它感兴趣的用户: (3) 系统冷启动:如何在新开发网站设计个性化推荐系统,此时网站上用户很少,用户行为也少,只有一些商品的信息. 冷启动的主要解决方案: (1) 提供非个性化推荐:如热门排行

cesiumjs开发实践(七) 3D模型

cesium中支持载入3D模型,不过只支持gltf格式.gltf是khronos组织(起草OpenGL标准的那家)定义的一种交换格式,用于互联网或移动设备上展现3d内容,充分支持opengl,webgl,opengles图形加速标准. gltf目前可以由collada格式转换而来,官网上也提供了一个转换工具(https://www.khronos.org/gltf).这个工具比较坑爹,只能和collada文件放在同一个目录才工作,转换后的结果文件也必须在同一目录,就是说不能指定输入和输出路径,当

k8s实践(七):存储卷和数据持久化(Volumes and Persistent Storage)

环境说明: 主机名 操作系统版本 ip docker version kubelet version 配置 备注 master Centos 7.6.1810 172.27.9.131 Docker 18.09.6 V1.14.2 2C2G master主机 node01 Centos 7.6.1810 172.27.9.135 Docker 18.09.6 V1.14.2 2C2G node节点 node02 Centos 7.6.1810 172.27.9.136 Docker 18.09.

高效运维最佳实践七字诀,不再憋屈的运维!

我们那么努力,为什么总感觉过得那么憋屈.苦闷?做的事情那么多,为什么业务部门.直接领导和公司貌似都那么不领情?怎么做才能自己更加开心些? 做运维的那么多,快乐的能有几个? 我们那么努力,为什么总感觉过得那么憋屈.苦闷?做的事情那么多,为什么业务部门.直接领导和公司貌似都那么不领情?怎么做才能自己更加开心些? 本专栏的主线实际是一个运维人员的十年成长史,从菜鸟到运维总监.但不是基础技术教学,也不会在运维技术的某一方面过深涉及.更多的是应用技巧.实践经验及案例剖析.专栏中的系列文章,包含作者在运维各

推荐系统架构(摘自《推荐系统实践》)

摘要: 1.外围架构 2.推荐系统架构 内容: 1.外围架构: 网站的推荐系统是如何和其他其他系统结合的? 2.推荐系统架构图: 其中每一个推荐引擎负责一类特征和一种任务,而推荐系统的任务只是将推荐引擎的结果按照一定的权重或者优先级合并,排序然后返回. 好处: 1.可以方便的插拔推荐引擎插件,控制不同引擎对推荐结果的影响. 2.每一种推荐引擎代表一种推荐策略,不同的用户可能喜欢不同的推荐策略,通过分析用户对不同推荐结果的反馈了解用户比较喜欢那些推荐引擎出来的结果,从而对不同用户给出不同的引擎组合