物品推荐

化繁为简:推荐算法三视角

。_饼干妹妹 提交于 2019-12-15 05:02:21
关于推荐系统,如果在忘掉所有的公式和代码,忘记所有的语言描述,脑海里就剩下几张图景,会是什么?一张二维表格,一个拓扑图,一条时间线。这三幅图景,是我看待推荐算法的三种视角。 视角一:矩阵视角 在脑中想象一个二维的表格,每一行代表一个用户,每一列代表一个物品,表格里的每一个点代表用户对物品的操作,这个操作可以是评分,点击,点赞。其中,有些格子记录了行为,有些格子是空的。到这里,我们就建立了基本的矩阵视角,推荐问题转化成了如何补上那些空格子。 用户对物品的评分等于相似用户对该物品评分的加权平均值,这就是user-base的协同过滤了。换一个方向,用户对物品的评分等于该用户对其他物品的评分按物品相似加权平均值,这就是item-base的协同过滤。度量用户之间的相似度,把矩阵的一行——对物品的评分向量作为该用户的表示向量,那么用户之间可以计算向量的距离,可以选择任何距离公式,如余弦距离,皮尔森距离。对于物品之间的相似度,换一个方向即可。 对于任何两个物品,可以计算它们的评分差值。具体来说,两个物品有一批共同的历史评分用户,也就是矩阵里两列有交集的行,每一行可以计算一个差值,将差值平均起来,作为两个物品的距离。和上面的距离不同的,这个差值可以想象成物理中的位移,带着符号的。推荐时,某用户对于某个物品的评分,等于某用户对其他物品评分加上这个位移,再进行平均得到的平均评分。和上面的item

基于用户协同过滤与基于项目协同过滤的适用场景

冷暖自知 提交于 2019-12-14 01:50:42
一、在适合用途上的比较 基于用户的协同过滤算法主要有两步: 1)找到和目标用户兴趣相似的用户集合 2)找到这个集合中的用户喜欢的,且目标用户没有听说过的物品推荐给目标用户。 基于物品的协同过滤算法主要有两步: 1)计算物品之间的相似度。 2)根据物品的相似度和用户的历史行为给用户生成推荐列表。 Item CF是利用物品间的相似性来推荐的,所以假如用户的数量远远超过物品的数量,那么可以考虑使用Item CF,比如购物网站,因其物品的数据相对稳定,因此计算物品的相似度时不但计算量较小,而且不必频繁更新;User CF更适合做新闻、博客或者微内容的推荐系统,因为其内容更新频率非常高,特别是在社交网络中,User CF是一个更好的选择,可以增加用户对推荐解释的信服程度。 而在一个非社交网络的网站中,比如给某个用户推荐一本书,系统给出的解释是某某和你有相似兴趣的人也看了这本书,这很难让用户信服,因为用户可能根本不认识那个人;但假如给出的理由是因为这本书和你以前看的某本书相似,这样解释相对合理,用户可能就会采纳你的推荐。 UserCF是推荐用户所在兴趣小组中的热点,更注重社会化,而ItemCF则是根据用户历史行为推荐相似物品,更注重个性化。所以UserCF一般用在新闻类网站中,如Digg,而ItemCF则用在其他非新闻类网站中,如Amazon,hulu等等。 因为在新闻类网站中

协同过滤

点点圈 提交于 2019-12-12 06:34:32
协同过滤算法 算法思想 :物以类聚,人以群分 基本的协同过滤推荐算法基于以下假设: “跟你喜好相似的人喜欢的东西你也很很大可能喜欢” :基于用户的协同过滤推荐(User-based CF) “跟你喜欢的东西相似的东西你也很有可能喜欢 ”:基于物品的协同过滤推荐(Item-based CF) 实现协同过滤推荐有以下几个步骤: 找出最相似的人或物品:TOP-N相似的人或物品 通过计算两两的相似度来进行排序,即可找出TOP-N相似的人或物品 根据相似的人或物品产生推荐结果 利用TOP-N结果生成初始推荐结果,然后过滤掉用户已经有过记录的物品或明确表示不感兴趣的物品 以下是一个简单的示例,数据集相当于一个用户对物品的购买记录表:打勾表示用户对物品的有购买记录 例如 关于相似度计算这里先用一个简单的思想:如有两个同学X和Y,X同学爱好[足球、篮球、乒乓球],Y同学爱好[网球、足球、篮球、羽毛球],可见他们的共同爱好有2个,那么他们的相似度可以用:2/3 * 2/4 = 1/3 ≈ 0.33 来表示。 基本用户的 CF 来源: CSDN 作者: AutismPatiente 链接: https://blog.csdn.net/AutismPatiente/article/details/103496807

协同过滤算法

ε祈祈猫儿з 提交于 2019-12-11 23:19:20
推荐算法具有非常多的应用场景和商业价值,因此对推荐算法值得好好研究。推荐算法种类很多,但是目前应用最广泛的应该是协同过滤类别的推荐算法,本文就对协同过滤类别的推荐算法做一个概括总结,后续也会对一些典型的协同过滤推荐算法做原理总结。 1. 推荐算法概述 推荐算法是非常古老的,在机器学习还没有兴起的时候就有需求和应用了。概括来说,可以分为以下5种: 基于内容的推荐 这一类一般依赖于自然语言处理NLP的一些知识,通过挖掘文本的TF-IDF特征向量,来得到用户的偏好,进而做推荐。这类推荐算法可以找到用户独特的小众喜好,而且还有较好的解释性。这一类由于需要NLP的基础,本文就不多讲,在后面专门讲NLP的时候再讨论。 协调过滤推荐 本文后面要专门讲的内容。协调过滤是推荐算法中目前最主流的种类,花样繁多,在工业界已经有了很多广泛的应用。它的优点是不需要太多特定领域的知识,可以通过基于统计的机器学习算法来得到较好的推荐效果。最大的优点是工程上容易实现,可以方便应用到产品中。目前绝大多数实际应用的推荐算法都是协同过滤推荐算法。 混合推荐 这个类似我们机器学习中的集成学习,博才众长,通过多个推荐算法的结合,得到一个更好的推荐算法,起到三个臭皮匠顶一个诸葛亮的作用。比如通过建立多个推荐算法的模型,最后用投票法决定最终的推荐结果。混合推荐理论上不会比单一任何一种推荐算法差,但是使用混合推荐

个性化推荐系统原理介绍(基于内容推荐/协同过滤/关联规则/序列模式/基于社交推荐)

吃可爱长大的小学妹 提交于 2019-12-09 11:15:21
个性化推荐根据用户兴趣和行为特点,向用户推荐所需的信息或商品,帮助用户在海量信息中快速发现真正所需的商品,提高用户黏性,促进信息点击和商品销售。推荐系统是基于海量数据挖掘分析的商业 智能 平台,推荐主要基于以下信息: 热点信息或商品 用户信息,如性别、年龄、职业、收入以及所在城市等等 用户历史浏览或行为记录 社会化关系 基于人口统计学的推荐机制(Demographic-based Recommendation)是一种最易于实现的推荐方法,它只是简单的根据系统用户的基本信息发现用户的相关程度,然后将相似用户喜爱的其他物品推荐给当前用户。 首先, 系统对每个用户都有一个用户 Profile 的建模 ,其中包括用户的基本信息,例如用户的年龄,性别等等;然后, 系统会根据用户的 Profile 计算用户的相似度 ,可以看到用户 A 的 Profile 和用户 C 一样,那么系统会认为用户 A 和 C 是相似用户,在推荐引擎中,可以称他们是“邻居”;最后,基于“邻居”用户群的喜好推荐给当前用户一些物品。 这种基于人口统计学的推荐机制的好处在于: l因为不使用当前用户对物品的喜好历史数据,所以 对于新用户来讲没有“冷启动(Cold Start)”的问题 。 l 这个方法不依赖于物品本身的数据,所以这个方法在不同物品的领域都可以使用,它是领域独立的(domain-independent) 。

Violet音乐社区-总结

会有一股神秘感。 提交于 2019-12-09 00:30:37
目录 项目相关链接 参与工作 数据流图绘制 类图绘制 顺序图绘制 后端开发 1. 点赞模块 2. 评论模块 3. 动态模块 4. 根据用户喜好推荐具有相似兴趣的用户 项目总结 项目概念产生 同类产品比较 团队协作 知识获取 意见和建议 课堂讲授 进度安排 项目相关链接 Violet项目源代码 - GitHub Violet音乐社区需求分析说明书 Violet音乐社区设计文档 Violet音乐社区API接口文档 Violet音乐社区 参与工作 数据流图绘制 类图绘制 顺序图绘制 后端开发 1. 点赞模块 点赞模块中包含三个功能,分别是 判断用户是否对某个内容点赞 、 点赞该内容 、 取消点赞该内容 功能模块 query_like(user_id, item_type, item_id) 判断用户是否对某个内容点赞 :param user_id: 用户id :param item_type: 内容种类 :param item_id: 内容对象id :return: 返回值为True表示存在点赞记录 返回值为False表示不存在点赞记录 like(user_id, item_type, item_id) 点赞 :param user_id: 点赞的用户id :param item_type: 点赞的内容种类(歌曲等) :param item_id: 点赞的对象id :return:

Improving Sequential Recommendation with Knowledge-Enhanced Memory Networks(知识图谱)

。_饼干妹妹 提交于 2019-12-06 13:04:35
本文作者:杨昆霖,2015级本科生,目前研究方向为知识图谱,推荐系统,来自中国人民大学大数据管理与分析方法研究北京市重点实验室。 引言 经常上购物网站时,注意力会被首页上的推荐吸引过去,往往本来只想买一件小商品,但却被推荐商品耗费不少时间与金钱。有时候会在想,虽然推荐商品挺吸引人的,但是它究竟为什么给出这些推荐,背后的原因却往往不得而知。本文将介绍的这篇SIGIR 2018论文提出了新的序列化推荐模型KSR(Knowledge-enhanced Sequential Recommender),利用了知识图谱与记忆网络,在提高推荐结果准确性的同时,还能捕捉更为细致的用户偏好,提高推荐系统的可解释性。 问题背景 相信推荐系统对大家并不陌生,众多互联网公司也花了大功夫在构建推荐系统上。为了给出精准的推荐,首先需要把握用户在想什么,对什么感兴趣,而这往往不是一成不变的,会随着用户在平台上的活动而日益变化。鉴于此,相较于以往的协同过滤等推荐方式,学术界提出基于时序神经模型的序列化推荐系统,利用循环神经网络RNN来捕捉用户兴趣点随着时间的动态变化。 在序列化推荐建模中,通常将用户过去的交互记录作为输入,利用隐状态向量来编码各个交互记录,以此来表示用户在序列中体现的偏好。但是,这种方法有两个不足之处: 只考虑了用户序列偏好,却忽视了细致的用户偏好,如用户具体喜欢某个物品的哪个属性等;

主流推荐算法

霸气de小男生 提交于 2019-12-06 01:42:50
主流推荐算法大致可分为: 基于内容(相似度)的推荐 基于用户(User)/物品(Item)相似度的协同过滤 热点新闻推荐(你看到的那些头条新闻) 基于模型的推荐(通过输入一些用户特征进入模型,产生推荐结果) 混合推荐(以上十八般兵器一起耍!) 信息源:用户画像、物品画像、群体数据、知识模型。 1、内容算法推荐之爆款 2、四种推荐算法摘录 融合四种信息源的混合推荐方法可以弥补各自算法的缺陷。 问题1、基于内容的推荐算法和基于项目相似度的协调过滤之区别 基于内容的推荐算法 对于个性化阅读来说,一个item就是一篇文章。根据上面的第一步,我们首先要从文章内容中抽取出代表它们的属性。常用的方法就是利用出现在一篇文章中词来代表这篇文章,而每个词对应的权重往往使用信息检索中的tf-idf来计算。比如对于本文来说,词“CB”、“推荐”和“喜好”的权重会比较大,而“烤肉”这个词的权重会比较低。利用这种方法,一篇抽象的文章就可以使用具体的一个向量来表示了。第二步就是根据用户过去喜欢什么文章来产生刻画此用户喜好的 profile了,最简单的方法可以把用户所有喜欢的文章对应的向量的平均值作为此用户的profile。比如某个用户经常关注与推荐系统有关的文章,那么他的profile中“CB”、“CF”和“推荐”对应的权重值就会较高。在获得了一个用户的profile后

协同过滤的itemCF,userCF区别适用场景

≡放荡痞女 提交于 2019-12-03 21:14:52
UserCF原理:UserCF给用户推荐那些和他具有共同兴趣爱好的用户喜欢的物品 ItemCF原理:ItemCF给用户推荐那些和他之前喜欢的物品类似的物品 UserCF的推荐更社会化,反映了用户所在的小型兴趣群体中物品的 热门程度 ;而ItemCF的推荐更加 个性化 ,反映了用户自己的兴趣传承 UserCF适合于新闻推荐的原因: 热门程度和时效性是个性化新闻推荐的重点,而个性化相对于这两点略显次要 UserCF需要维护一个用户兴趣相似表,而ItemCF需要维护一个物品相似表,在新闻推荐系统中物品的更新速度是很快的,那么如果采用ItemCF的话,物品相似度表也需要很快地更新,这是难以实现的 ItemCF适合于图书、电子商务和电影网站的原因: 用户的兴趣是比较固定和持久的 这些系统中用户不太需要流行度来辅助他们判断一个物品的好坏,而是可以通过自己熟知的领域的知识自己判断物品的质量 UserCF的适用场合: 用户较少的场合,如果用户很多,计算用户相似度度矩阵代价很大(新闻网站) 时效性较强,用户个性化兴趣不太明显的领域 不需要给出令用户信服的推荐解释 ItemCF的适用场合: 适用于物品的数量明显小于用户的数量的场合,如物品很多(网站),计算物品的相似度矩阵代价很大 长尾物品丰富,用户个性化需求强烈的领域 需要利用用户的历史行为给用户做推荐解释,可以令用户比较信服 来源: https:/

推荐系统之基于邻域的算法---协同过滤算法

倖福魔咒の 提交于 2019-12-03 04:10:54
基于邻域的协同过滤主要分为两类,基于用户的协同过滤和基于物品的协同过滤。前者给用户推荐和他兴趣相似的其他用户喜欢的物品,后者则是推荐和他之前喜欢过的物品相似的物品。 基于用户的协同过滤算法 这里介绍基于用户的协同过滤,从定义来说,可以分为以下两步进行: 找到和目标用户兴趣相似的用户集合 找和这个集合中的用户喜欢的,且目标用户没有听说过的物品推荐给目标用户 计算用户相似度的基本算法: (1)Jaccard 公式 (2)余弦相似度: 得到用户之间的兴趣相似度后,UserCF算法会给用户推荐和他兴趣最相似的K个用户喜欢的物品,下面的公式表示用户u对物品i的感兴趣程度: 其中S(u,K)包含和用户u兴趣最相近的K个用户,N(i)是对物品i有过行为的用户集合,w uv 是用户u和用户v的兴趣相似度,r vi 代表用户v对物品i的兴趣,在这种情况下r vi =1 可以建立物品到用户的倒查表,对每个物品都保存对该物品产生过行为的用户列表, 可以给上图中的A推荐,选取K=3,用户A对物品c,e没有过行为,因此可以把这两个物品推荐给用户A,用户A对物品c,e的兴趣是: 改进: 上边的算法是有问题的,比如两个人都买过《新华字典》这本书,但这丝毫不能说明他们两个兴趣相似,因为大多数人都买过这本书,如果两个用户都买过《数据挖掘导论》,那可以认为两个人的兴趣比较相似,因为只要研究数据挖掘的人才会买这本书