推荐系统

python机器学习:推荐系统实现(以矩阵分解来协同过滤)

我们两清 提交于 2020-02-17 15:21:28
原文链接: http://tecdat.cn/?p=10911 用户和产品的潜在特征编写推荐系统矩阵分解工作原理使用潜在表征来找到类似的产品。 1. 用户和产品的潜在特征 我们可以通过为每个用户和每部电影分配属性,然后将它们相乘并合并结果来估计用户喜欢电影的程度。 ​ 相同的计算可以表示为矩阵乘法问题。首先,我们把用户属性放在一个名为U的矩阵中,在这个例子中是5,-2,1,-5和5。然后,我们把电影属性放在一个名为M的矩阵中,我们使用矩阵乘法来找出用户的评分。 ​ 但要做到这一点,我们必须已经知道用户属性和电影属性。为每个用户和每部电影提供属性评级并不容易。我们需要找到一种自动的方法。我们来看看电影评分矩阵, ​ 它显示了我们数据集中的所有用户如何评价电影。这个矩阵非常稀疏,但它给了我们很多信息。例如,我们知道用户ID2给电影1号五颗星。所以,基于此,我们可以猜测,这个用户的属性可能类似于电影的属性,因为它们匹配的很好。换句话说,我们有一些线索可以使用。 让我们看看我们如何利用这些线索来了解每部电影和每个用户。在我们刚刚看到的等式中,U乘M等于电影等级,我们已经知道一些用户的实际电影等级。我们已经拥有的电影评分矩阵是我们方程式的解决方案。虽然它是解决方案的一部分,但是这个阵列仍然有很多漏洞,但对于我们来说,这已经足够了。 ​ 实际上,我们可以使用目前为止我们所知道的电影评级

基于内容的推荐算法

走远了吗. 提交于 2020-02-16 00:16:17
输入   输入 1 :包含 200 部电影的数据集,集合中包含两列,一列为电影的 id ,一列为电影的流派集合,如下图所示:   输入 2 :一个用户的电影兴趣记录, like 字段为 1 表示喜欢, 0 表示不喜欢,如下图所示:   输出   输出 1 :输入 1 的 One-Hot 编码形式 ,类似下图所示:   输出 2 :根据输入 2 和输出 1 ,从电影数据集中给用户推荐用户没有看过的与用户相似度最高的 k 个电影。 前言   基于内容的推荐算法是一种比较经典的推荐算法,应用较广,可解释性强,准确率高,尤其是当今社会信息丰富,比如文本、音频等,有比较多的内容可以利用。但是对于一个一无所知的新用户而言,无法针对用户内容进行推荐,只能根据其他算法进行推荐,用户产生内容后才能很好的利用基于内容的推荐算法,这也就是冷启动问题,也是该算法的缺点。 原理 一、 用户画像   做好一个推荐系统,分为以下 3 步: 认识用户 给用户推荐他感兴趣的东西 观察各项业务指标,一直迭代 1 , 2 , 3 循环下去   上面提到的认识用户就是用户画像,用户画像是一个比较抽象的概念,推荐系统的用户画像是给机器用的。推荐系统要在用户和物品之间建立连接,一般的连接方式是对用户和物品之间的匹配进行评分,也就是预测用户的偏好,我们首先要将用户和物品都表示成向量,这样才能让机器进行计算

推荐系统评测指标—准确率(Precision)、召回率(Recall)、F值(F-Measure)

强颜欢笑 提交于 2020-02-13 16:33:18
下面简单列举几种常用的推荐系统评测指标: 1、准确率与召回率(Precision & Recall) 准确率 和 召回率 是广泛用于信息检索和统计学分类领域的两个度量值,用来评价结果的质量。其中精度是检索出相关文档数与检索出的文档总数的比率,衡量的是检索系统的 查准率 ;召回率是指检索出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索系统的 查全率 。 一般来说,Precision就是检索出来的条目(比如:文档、网页等)有多少是准确的,Recall就是所有准确的条目有多少被检索出来了。 正确率、召回率和 F 值是在鱼龙混杂的环境中,选出目标的重要评价指标。不妨看看这些指标的定义先: 1. 正确率 = 提取出的正确信息条数 / 提取出的信息条数 2. 召回率 = 提取出的正确信息条数 / 样本中的信息条数 两者取值在0和1之间,数值越接近1,查准率或查全率就越高。 3. F值 = 正确率 * 召回率 * 2 / (正确率 + 召回率) (F 值即为正确率和召回率的调和平均值) 不妨举 这样一个例子 :某池塘有1400条鲤鱼,300只虾,300只鳖。现在以捕鲤鱼为目的。撒一大网,逮着了700条鲤鱼,200只虾,100只鳖。那么,这些指标分别如下: 正确率 = 700 / (700 + 200 + 100) = 70% 召回率 = 700 / 1400 = 50% F值 =

推荐系统系列二:推荐系统的工程实现

大憨熊 提交于 2020-02-11 01:38:44
下面内容转自大数据与人工智能微信公众号,由于网络上推荐系统的相关学习资料太多太杂,东拼西凑学习很难摸出门道,同时我也在学习推荐系统,因此我将该系列内容摘录到我的博客,方便大家直接在博客中查看,大家一起学习进步,后面我也会阅读推荐系统相关的论文,并在本博客记录笔记,希望大家一起进步哈。 在我更新第一篇《推荐系统介绍》之后,过了一两天这篇介绍的阅读量就达到了三百多,可见当下存在一个矛盾:大家日益增长的对推荐系统好文章的渴求与真正有含金量的推荐系统学习资料间供应存在着巨大的矛盾,因此我将加快本系列文章的更新,很感谢大数据与人工智能微信公众号,大家如果有额外的需求,可以去该公众号详询原作者,由于博客中不能直接粘贴微信公众号中的图片,本文的图片都是我一张一张手动截图粘贴,整理不易,希望能帮到大家,毕竟好的文章值得我们推广,不应被埋没,好了,话不多说,马上开始。 ===================正文开始=================== 一:写在前面 在上篇文章《推荐系统介绍》中简单对推荐系统做了一个较全面的介绍,相信大家对推荐系统有了初步的了解。本篇文章作者会结合多年推荐系统开发的实践经验粗略介绍推荐系统的工程实现,简要说明要将推荐系统很好地落地到产品中需要考虑哪些问题及相应的思路、策略和建议,其中有大量关于设计哲学的思考,希望对从事推荐算法工作或准备入行推荐系统的读者有所帮助。

神经网络与推荐系统初步简介

本秂侑毒 提交于 2020-02-07 07:44:06
作者:一人 1.深度神经网络对于任何领域都是适用的 深度神经网络(Deep Neural Networks, DNN)在过去的数年已经在图像分类、语音识别、自然语言处理中取得了突破性的进展。在实践中的应用已经证明了它可以作为对于一种十分有效的技术手段应用在大数据相关领域中。深度神经网络通过众多的简单线性变换层次性的进行非线性变换对于数据中的复杂关系能够很好的进行拟合,即对数据特征进行的深层次的挖掘。 因此作为一种技术手段,深度神经网络对于任何领域都是适用的。 2.推荐系统简介 推荐系统的功能是帮助用户主动的找到满足偏好的个性化物品并推荐给用户。在本质上可以当做一个个性化的搜索引擎,输入的数据为用户行为信息、偏好信息等,返回的结果为最符合查询条件的物品列表。数学化的表示: 物 品 列 表 = f ( 用 户 偏 好 ) − − − − − − − − − − − 公 式 ( 1 ) 我们的推荐引擎就扮演者这里的函数的角色,它主要需要完成两部分的工作: A > 针对查询条件对物品的相关性进行估计。 B > 晒选出topN个最相关的物品。 因此,推荐系统的关键就是对上面 函数的一种求解 。 实际应用中的物品数量很大,因此在满足业务需要的前提下,对于所有物品使用评估函数进行评估是不实际的。因此为了实现性能与效果的平衡,大多的推荐系统将以上的计算过程分为两个部分: 推荐召回 推荐排序

从原理到落地,七大维度读懂协同过滤推荐算法

感情迁移 提交于 2020-02-04 11:16:54
转载 AI科技大本营 最后发布于2019-08-09 19:52:18 阅读数 195 收藏 展开 作者丨gongyouliu 来源 | 大数据与人工智能 导语:本文会从协同过滤思想简介、协同过滤算法原理介绍、离线协同过滤算法的工程实现、近实时协同过滤算法的工程实现、协同过滤算法应用场景、协同过滤算法的优缺点、协同过滤算法落地需要关注的几个问题等7个方面来讲述。希望读者读完本文,可以很好地理解协同过滤的思路、算法原理、工程实现方案,并且具备基于本文的思路自己独立实现一个在真实业务场景中可用的协同过滤推荐系统的能力。 作者在《 推荐系统产品与算法概述 》这篇文章中简单介绍了协同过滤算法。协同过滤算法是在整个推荐系统发展史上比较出名的算法,具备举足轻重的地位,甚至在当今还在大量使用。本篇文章作者会详细讲解协同过滤推荐算法的方方面面,这里所讲的也是作者基于多年推荐系统研究及工程实践经验的基础上总结而成,希望对大家学习协同过滤推荐算法有所帮助,提供一些借鉴。在正式讲解之前,先做一个简单定义。本文用“ 操作过” 这个词来表示用户对标的物的各种操作行为,包括浏览、点击、播放、收藏、评论、点赞、转发、评分等等。 一、协同过滤思想简介 协同过滤,从字面上理解,包括协同和过滤两个操作。所谓协同就是利用群体的行为来做决策(推荐),生物上有协同进化的说法,通过协同的作用,让群体逐步进化到更佳的状态

关于java学习的一点想法

我怕爱的太早我们不能终老 提交于 2020-02-04 05:39:20
自己学java有一段时间了,从开始什么叫jvm都不知道,到现在能独立做出一个小系统,还是挺有成就感的。当然,目前为止掌握的知识仍是九牛一毛。 刚接触java时有一种抵触感,比起C语言来说太啰嗦了,单单打印输出一句话就要好几行代码。不过用习惯eclipse之后反而爱上了它。一路上遇到各种坑,稍不小心就会哪里报错,之后到处找资料,上知乎,上CSDN,实在不行就google百度。 学习时只买了一本从入门到精通,讲的挺详细的,跟着书中的例子也能渐渐熟悉,然而还是觉得有问题。学完之后不知道能干什么,想做一些小玩意也做不出来,于是开始在网上找有没有更好的方法,后来知乎上有人推荐我一个网站https://how2j.cn/p/4440 上过这个网站之后觉得还挺不错的,知识点不算太全面,但是对于新手来说还是很友好的,每天花一两个小时能有很大进步 来源: CSDN 作者: Kuuga1998 链接: https://blog.csdn.net/weixin_44749867/article/details/104158195

推荐系统实践读书笔记

跟風遠走 提交于 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-02-03 04:21:35
推荐系统常用的: 1)MovieLens MovieLens数据集中,用户对自己看过的电影进行评分,分值为1~5。MovieLens包括两个不同大小的库,适用于不同规模的算法.小规模的库是943个独立用户对1682部电影作的10000次评分的数据;大规模的库是6040个独立用户对3900部电影作的大约100万次评分。 2)EachMovie HP/Compaq的DEC研究中心曾经在网上架设EachMovie电影推荐系统对公众开放.之后,这个推荐系统关闭了一段时间,其数据作为研究用途对外公布,MovieLens的部分数据就是来自于这个数据集的.这个数据集有72916个用户对l628部电影进行的2811983次评分。早期大量的协同过滤的研究工作都 是基于这个数据集的。2004年HP重新开放EachMovie,这个数据集就不提供公开下载了。 3)BookCrossing 这个数据集是网上的Book-Crossing图书社区的278858个用户对271379本书进行的评分,包括显式和隐式的评分。这些用户的年龄等人口统计学属性(demographic feature)都以匿名的形式保存并供分析。这个数据集是由Cai-Nicolas Ziegler使用爬虫程序在2004年从Book-Crossing图书社区上采集的。 4)Jester Joke Jester

跨领域推荐系统,Item Silk Road

ⅰ亾dé卋堺 提交于 2020-02-02 13:08:13
通讯作者: 何向南 会议信息:SIGIR 2017,链接: http://dl.acm.org/citation.cfm?id=3080771 Abstract 网络中存在用户-物品的交互信息,而用户之间的交互称为社交信息,两者是异构的。我们可以通过横跨两者的共同用户建立桥梁,完成从信息领域到社交领域用户的物品推荐。现有的跨领域推荐系统中,所有的数据属性都是同构的,或者是完全重叠的。据此,本文提出了一个神经网络社交协同排序算法(Neural Social Collaborative Ranking, NSCR),通过桥梁用户把两个异构数据之间“串联”起来。 Keywords 跨领域推荐,深度协同过滤,神经网络,深度学习 Introduction 在线平台,一种像网购电商网站有许多信息导向的用户-物品交互数据,另一种如社交网络,刻画并强调用户之间的交互信息。根据口耳相传的道理,用户在选择商品时,也会受到好友的推荐和好友们的意见影响。表面上看两个领域中的联系并不紧密,但是通过某些同时活跃在这两个领域中的用户,我们可以建立一座桥梁,正如我们所说的丝绸之路一般,把关系和信息传递过去。 跨领域社交推荐,即从信息领域选择合适的物品,向另一个社交网络中的其他用户推荐。目前的困境主要有两方面: 桥梁用户较少,活跃在两个领域的用户比例约为10% 虽然信息领域信息充足,但和社交领域相关的信息少