物品推荐

推荐系统实践读书笔记

跟風遠走 提交于 2020-02-04 04:59:59
最近大概复习了一下这本书,了解了较早的推荐系统的一些方法,记录如下,以便大家对本书内容有个快速地了解。略去了第一张,详细的代码和细节可以参考其他博客。需要关注的地方直接标出了页码。 书里面的代码不是很完整,用来学习还可以。第八章介绍了一些svd等机器学习的算法,在2020年的今天可以回顾一下。 推荐系统实践 第二章:利用用户行为数据 常见数据集: Book-Crossing(有评分、年龄、书籍的简介等) ,Last.fm , Netflix Prize ,Delicious(有标签) ,CiteULike(有标签),Digg, Yahoo!Music, GroupLens, KDD cup. 基于用户的cf:可以先构造倒排表,然后再计算用户相似度,这样能降低计算开销(p47)。User-IIF算法的表现更好。 基于物品的cf:解释性强。IUF算法(1998)降低了活跃用户对物品相似性的影响,归一化的物品cf能提高推荐的多样性。 两种cf的比较:usercf更加类似社会网络推荐,itemcf更加偏重挖掘某个用户的爱好。Itemcf在覆盖率方面不如usercf,可以通过p63的方法改进。 隐语义模型:借鉴文本挖掘领域的知识,包括LDA\pLSA\矩阵分解等。书中介绍了LFM,推导和伪代码已经给出。这个方法能极大地提高覆盖率,在Netflix Prize比赛中也使用了LFM

基于矩阵分解的推荐算法,简单入门

假装没事ソ 提交于 2020-01-25 10:14:15
基于矩阵分解的推荐算法,简单入门 转自:http://www.cnblogs.com/kobedeshow/p/3651833.html 本文将要讨论基于矩阵分解的推荐算法,这一类型的算法通常会有很高的预测精度,也活跃于各大推荐系统竞赛上面,前段时间的百度电影推荐最终结果的前10名貌似都是把矩阵分解作为一个单模型,最后各种ensemble,不知道正在进行的阿里推荐比赛( http://102.alibaba.com/competition/addDiscovery/index.htm ),会不会惊喜出现。。。。好了,闲话不扯了,本文打算写一篇该类型推荐算法的入门篇 目录 一,基于矩阵分解的推荐算法相关理论介绍 二,C++代码实现 三,总结跟展望一下 四,后续计划 一,基于矩阵分解的推荐算法相关理论介绍 我们知道,要做推荐系统,最基本的一个数据就是,用户-物品的评分矩阵,如下图1所示 图1 矩阵中,描述了5个用户(U1,U2,U3,U4 ,U5)对4个物品(D1,D2,D3,D4)的评分(1-5分),- 表示没有评分,现在目的是把没有评分的 给预测出来,然后按预测的分数高低,给用户进行推荐。 如何预测缺失的评分呢?对于缺失的评分,可以转化为基于机器学习的回归问题,也就是连续值的预测,对于矩阵分解有如下式子,R是类似图1的评分矩阵,假设N*M维(N表示行数,M表示列数)

关于推荐系统的综述

£可爱£侵袭症+ 提交于 2020-01-13 20:50:28
推荐系统中的深度匹配模型 辛俊波 DataFunTalk 今天 文章作者:辛俊波 腾讯 高级研究员 编辑整理:Hoh Xil 内容来源:作者授权 文章出品:DataFunTalk 注:转载请联系作者本人。 导读: 推荐系统和搜索应该是机器学习乃至深度学习在工业界落地应用最多也最容易变现的场景。而无论是搜索还是推荐,本质其实都是匹配,搜索的本质是给定 query,匹配 doc;推荐的本质是给定 user,推荐 item。本文主要讲推荐系统里的匹配问题,包括传统匹配模型和深度学习模型。 深度学习之风虽然愈演愈烈,但背后体现的矩阵分解思想、协同过滤思想等其实一直都是贯穿其中,如 svd++ 体现的 userCF 和 itemCF 的思想,FM 模型本质上可以退化成以上大多数模型等。多对这些方法做总结,有助于更深刻理解不同模型之间的关联。 图1 推荐和搜索的本质,都是 match 的过程 PS:本文主要启发来源 SIGIR2018:Deep Learning for Matching in Search and Recommendation,重点阐述搜索和推荐中的深度匹配问题,非常 solid 的综述,针对里面的一些方法,尤其是 feature-based 的深度学习方法增加了近期一些相关 paper。 本文主要分为以下几部分: ❶ 推荐系统概述 ❷ 推荐系统的传统匹配模型 ❸ 基于

python推荐算法itemCF基于物品的协同过滤

≡放荡痞女 提交于 2020-01-12 12:49:30
# itemCF Demo # python 3.7 import numpy as np import math # test data users = [ "u1" , "u2" , "u3" ] item_like_list = [ "a,b,c" , "a,b,c,e,f" , "a,e" ] # 单个商品喜欢人数 def check_1item ( item ) : return sum ( list ( map ( lambda x : item in x , item_like_list ) ) ) # print ( check_1item ( "a" ) ) # 同时喜欢item1与item2的人数 def check_2items ( item1 , item2 ) : m = sum ( list ( map ( lambda x : item1 in x and item2 in x , item_like_list ) ) ) # print ( "%s与%s的交集数为%d" % ( item1 , item2 , m ) ) return m # print ( check_2items ( "a" , "e" ) ) # 商品唯一列表 itemAll = set ( ) for items in item_like_list : for itemOne

【推荐系统实践-02】利用用户行为数据(协同过滤)

喜夏-厌秋 提交于 2020-01-12 05:14:19
项亮老师的《推荐系统实践》学习笔记​。​ 目录 用户行为数据简介 用户行为分析 用户活跃度和物品流行度的分布 用户活跃度和物品流行度的关系 基于邻域的算法 基于用户的协同过滤算法 基于物品的协同过滤算法 UserCF和ItemCF的比较 隐语义模型 基于图的模型 为了让推荐结果符合用户口味,我们需要深入了解用户。 基于用户行为分析的推荐算法是个性化推荐系统的重要算法,学术界一般将这种类型的算法称为协同过滤算法。顾名思义,协同过滤就是指用户可以齐心协力,通过不断地和网站互动,使自己的推荐列表能够不断过滤掉自己不感兴趣的物品,从而越来越满足自己的需求。 1、用户行为数据简介 用户行为数据在网站上最简单的存在形式就是日志。网站在运行过程中都产生大量原始日志(raw log),并将其存储在文件系统中。很多互联网业务会把多种原始日志按照用户行为汇总成会话日志(session log),其中每个会话表示一次用户行为和对应的服务。 会话日志通常存储在分布式数据仓库中,这些日志记录了用户的各种行为,如在电子商务网站中这些行为主要包括网页浏览、购买、点击、评分和评论等。 用户行为在个性化推荐系统中一般分两种——显性反馈行为(explicit feedback)和隐性反馈行为(implicit feedback)。显性反馈行为包括用户明确表示对物品喜好的行为

推荐系统算法

荒凉一梦 提交于 2020-01-10 03:20:20
常用的推荐任务分为两种,一种是评分预测,而另一种是 Top-N 推 荐。 评分预测就是给那些没有评分的项目进行评分,主要依据目标用户的历史评 分行为以及相似度计算来预测目标项目的分数 。 Top-N 推 荐就是根据用户的偏好给 目标用户推荐其可能喜欢的 N 件物品。 1.协同过滤算法 协同过滤算法可分为基于用户的协同过滤(User-based CF)、基于物品的系统 过滤(Item-based CF) User-based CF 在推荐时首先会根据用户的行为记录找到相似的用户。例如,在电影推荐方面,如果 A 和 B 在对电影类型的喜好相同或 是相近,那么把 A 喜欢的电影推荐给 B 是有意义的。 首先需要计算两个用户的相似度 ,对于评分预测往往采用皮尔逊积矩相关系数来计算。 用户之间的相似度计算还可以采用 Jaccard 公式 给定两个集合A,B jaccard 系数定义为A与B交集的大小与并集大小的比值 ,jaccard值越大说明相似度越高 计算相似度在工程应用中这个公式还比较粗糙,例如,小时候我 们每个人基本都会购买《新华字典》,但并不能说明他们的购买兴趣相似,但是如 果两个人都购买了《推荐系统》,那么可以确定他们的购买兴趣是比较相似的,应 为只有研究推荐系统的人才会购买这本书,换句话说,两个用户对冷门物品采取 过相同的行为更能说明他们购买兴趣的相似度。

推荐系统技术演进趋势:从召回到排序再到重排

戏子无情 提交于 2020-01-02 20:20:36
推荐系统技术,总体而言,与NLP和图像领域比,发展速度不算太快。不过最近两年,由于深度学习等一些新技术的引入,总体还是表现出了一些比较明显的技术发展趋势。这篇文章试图从推荐系统几个环节,以及不同的技术角度,来对目前推荐技术的比较彰显的技术趋势做个归纳。个人判断较多,偏颇难免,所以还请谨慎参考。 在写技术趋势前,照例还是对推荐系统的宏观架构做个简单说明,以免读者迷失在技术细节中。 实际的工业推荐系统,如果粗分的化,经常讲的有两个阶段。首先是召回,主要根据用户部分特征,从海量的物品库里,快速找回一小部分用户潜在感兴趣的物品,然后交给排序环节,排序环节可以融入较多特征,使用复杂模型,来精准地做个性化推荐。召回强调快,排序强调准。当然,这是传统角度看推荐这个事情。 但是,如果我们更细致地看实用的推荐系统,一般会有四个环节,如下图所示: 四个环节分别是:召回、粗排、精排和重排。召回目的如上所述;有时候因为每个用户召回环节返回的物品 来源: CSDN 作者: weekingqi 链接: https://blog.csdn.net/jxq0816/article/details/103810241

推荐系统与知识图谱(1)

旧巷老猫 提交于 2019-12-28 05:02:16
Reference: 推荐算法不够精准?让知识图谱来解决 个性化推荐系统作为一种信息过滤的重要手段,是当前解决信息超载问题的最有效的方法之一,是面向用户的互联网产品的核心技术。 推荐系统的任务和难点 按照预测对象的不同,推荐系统一般可以分成两类:一类是 评分预测 (rating prediction),例如在电影类应用中,系统需要预测用户对电影的评分,并以此为根据推送其可能喜欢的电影。这种场景下的用户反馈信息表达了用户的喜好程度,因此这种信息也叫 显式反馈 (explicit feedback);另一类是 点击率预测 (click-through rateprediction),例如在新闻类应用中,系统需要预测用户点击某新闻的概率来优化推荐方案。这种场景下的用户反馈信息只能表达用户的行为特征(点击/未点击),而不能反映用户的喜爱程度,因此这种信息也叫 隐式反馈 (implicit feedback)。 传统的推荐系统只使用用户和物品的历史交互信息(显式或隐式反馈)作为输入,这会带来两个问题:一,在实际场景中, 用户和物品的交互信息往往是非常稀疏(sparse) 的。例如,一个电影类APP可能包含了上万部电影,然而一个用户打过分的电影可能平均只有几十部。使用如此少量的已观测数据来预测大量的未知信息,会极大地增加算法的 过拟合 (overfitting)风险;二,

推荐系统的常用算法原理和实现

故事扮演 提交于 2019-12-17 03:50:34
推荐算法介绍 基于人口统计学的推荐 这是最为简单的一种推荐 算法 ,它只是简单的根据系统用户的基本信息发现用户的相关程度,然后将相似用户喜爱的其他物品推荐给当前用户。 系统首先会根据用户的属性建模,比如用户的年龄,性别,兴趣等信息。根据这些特征计算用户间的相似度。比如系统通过计算发现用户A和C比较相似。就会把A喜欢的物品推荐给C。 优缺点: 不需要历史数据,没有冷启动问题 不依赖于物品的属性,因此其他领域的问题都可无缝接入。 算法比较粗糙,效果很难令人满意,只适合简单的推荐 基于内容的推荐 与上面的方法相类似,只不过这次的中心转到了物品本身。使用物品本身的相似度而不是用户的相似度。 系统首先对物品(图中举电影的例子)的属性进行建模,图中用类型作为属性。在实际应用中,只根据类型显然过于粗糙, 还需要考虑演员,导演等更多信息。通过相似度计算,发现电影A和C相似度较高,因为他们都属于爱情类。系统还会发现用户A喜欢电影A,由此得出结论,用户 A很可能对电影C也感兴趣。于是将电影C推荐给A。 优缺点: 对用户兴趣可以很好的建模,并通过对物品属性维度的增加,获得更好的推荐精度 物品的属性有限,很难有效的得到更多数据 物品相似度的衡量标准只考虑到了物品本身,有一定的片面性 需要用户的物品的历史数据,有冷启动的问题 协同过滤 协同过滤是推荐算法中最经典最常用的

推荐引擎分类介绍

[亡魂溺海] 提交于 2019-12-16 15:12:15
搜索引擎是当前快速查找目标信息的最好途径。在用户对自己需求很明确时,用搜索引擎可以方便地通过关键字快速找到自己需要的信息。但搜索引擎并不能完全满足用户对信息发现的需求,因为在很多情况下,用户其实并不明确自己的需要, 或者他们的需求很难用简单的关键字来表述,又或者他们需要更加符合他们个人口味和喜好的结果,因此出现了推荐系统,与搜索引擎对应,大家也习惯称它为推荐引擎。 根据不同的标准,可以对推荐引擎进行如下分类: 1、根据是否为不同的用户推荐不同的数据,可以将推荐引擎分为基于大众行为的推荐引擎和个性化推荐引擎 根据大众行为的推荐引擎,对每个用户都给出同样的推荐,这些推荐可以是静态的由系统管理员人工设定的,或者基于系统所有用户的反馈统计计算出具有某个特征的物品。比如网站的热门推荐与商品降价推荐就是属于这种该方式。 个性化推荐引擎,顾名思义,就是针对对不同的用户,根据他们的口味和喜好给出精确的推荐,这时,系统需要了解需推荐物品和用户的个性化属性,比如基于用户协同过滤的推荐就是通过找到与目标用户具有相同喜好的用户所喜好的物品,来形成推荐结果。 这是一个最基本的推荐引擎分类,其实大部分人们讨论的推荐引擎都是将个性化的推荐引擎,因为从根本上说,只有个性化的推荐引擎才是更加智能的信息发现过程。 2、根据推荐引擎的数据源。 因为大部分推荐引擎的工作原理还是基于物品或者用户的相似集进行推荐