您好、欢迎来到现金彩票网!
当前位置:2019跑狗图高清彩图 > 协同例程 >

CTR 预测理论(十六):协同过滤算法(UserCF ItemCF)总结

发布时间:2019-07-07 15:26 来源:未知 编辑:admin

  要理解什么是协同过滤 (Collaborative Filtering, 简称 CF),首先想一个简单的问题,如果你现在想看个电影,但你不知道具体看哪部,你会怎么做?大部分的人会问问周围的朋友,看看最近有什么好看的电影推荐,而我们一般更倾向于从口味比较类似的朋友那里得到推荐。这就是协同过滤的核心思想。

  协同过滤一般是在海量的用户中发掘出一小部分和你品位比较类似的,在协同过滤中,这些用户成为邻居,然后根据他们喜欢的其他东西组织成一个排序的目录作为推荐给你。当然其中有一个核心的问题:

  要从用户的行为和偏好中发现规律,并基于此给予推荐,如何收集用户的偏好信息成为系统推荐效果最基础的决定因素。用户有很多方式向系统提供自己的偏好信息,而且不同的应用也可能大不相同,下面举例进行介绍:

  整数量化的偏好,可能的取值是 [0, n];n 一般取值为 5 或者是 10

  通过用户对物品的投票,可以精确的得到用户的偏好。 如果是站内,同时可以推理得到被转发人的偏好(不精确)

  通过分析用户的标签,可以得到用户对项目的理解,同时可以分析出用户的情感:喜欢还是讨厌

  用户的点击一定程度上反映了用户的注意力,所以它也可以从一定程度上反映用户的喜好。

  用户的页面停留时间一定程度上反映了用户的注意力和喜好,但噪音偏大,不好利用。

  当已经对用户行为进行分析得到用户喜好后,我们可以根据用户喜好计算相似用户和物品,然后基于相似用户或者物品进行推荐,这就是最典型的 CF 的两个分支:基于用户的 CF 和基于物品的 CF。这两种方法都需要计算相似度。

  关于相似度的计算,现有的几种基本方法都是基于向量(Vector)的,其实也就是计算两个向量的距离,距离越近相似度越大。在推荐的场景中,在用户 - 物品偏好的二维矩阵中,我们可以将一个用户对所有物品的偏好作为一个向量来计算用户之间的相似度,或者将所有用户对某个物品的偏好作为一个向量来计算物品之间的相似度。

  最初用于计算欧几里德空间中两个点的距离,假设 x,y 是 n 维空间的两个点,它们之间的欧几里德距离是:

  当用欧几里德距离表示相似度,一般采用以下公式进行转换:距离越小,相似度越大;

  皮尔逊相关系数一般用于计算两个定距变量间联系的紧密程度,它的取值在 [-1,+1] 之间。

  Tanimoto 系数也称为 Jaccard 系数,是 Cosine 相似度的扩展,也多用于计算文档数据的相似度:

  介绍完相似度的计算方法,下面我们看看如何根据相似度找到用户 - 物品的邻居,常用的挑选邻居的原则可以分为两类:图 1 给出了二维平面空间上点集的示意图。

  不论邻居的“远近”,只取最近的 K 个,作为其邻居。如图 1 中的 A,假设要计算点 1 的 5- 邻居,那么根据点之间的距离,我们取最近的 5 个点,分别是点 2,点 3,点 4,点 7 和点 5。但很明显我们可以看出,这种方法对于孤立点的计算效果不好,因为要取固定个数的邻居,当它附近没有足够多比较相似的点,就被迫取一些不太相似的点作为邻居,这样就影响了邻居相似的程度,比如图 1 中,点 1 和点 5 其实并不是很相似。

  与计算固定数量的邻居的原则不同,基于相似度门槛的邻居计算是对邻居的远近进行最大值的限制,落在以当前点为中心,距离为 K 的区域中的所有点都作为当前点的邻居,这种方法计算得到的邻居个数不确定,但相似度不会出现较大的误差。如图 1 中的 B,从点 1 出发,计算相似度在 K 内的邻居,得到点 2,点 3,点 4 和点 7,这种方法计算出的邻居的相似度程度比前一种优,尤其是对孤立点的处理。

  经过前期的计算已经得到了相邻用户和相邻物品,下面介绍如何基于这些信息为用户进行推荐。本系列的上一篇综述文章已经简要介绍过基于协同过滤的推荐算法可以分为基于用户的 CF 和基于物品的 CF,下面我们深入这两种方法的计算方法,使用场景和优缺点。

  基于用户的 CF 的基本思想相当简单,基于用户对物品的偏好找到相邻邻居用户,然后将邻居用户喜欢的推荐给当前用户。计算上,就是将一个用户对所有物品的偏好作为一个向量来计算用户之间的相似度,找到 K 邻居后,根据邻居的相似度权重以及他们对物品的偏好,预测当前用户没有偏好的未涉及物品,计算得到一个排序的物品列表作为推荐。图 2 给出了一个例子,对于用户 A,根据用户的历史偏好,这里只计算得到一个邻居 - 用户 C,然后将用户 C 喜欢的物品 D 推荐给用户 A。

  基于物品的 CF 的原理和基于用户的 CF 类似,只是在计算邻居时采用物品本身,而不是从用户的角度,即基于用户对物品的偏好找到相似的物品,然后根据用户的历史偏好,推荐相似的物品给他。从计算的角度看,就是将所有用户对某个物品的偏好作为一个向量来计算物品之间的相似度,得到物品的相似物品后,根据用户历史的偏好预测当前用户还没有表示偏好的物品,计算得到一个排序的物品列表作为推荐。图 3 给出了一个例子,对于物品 A,根据所有用户的历史偏好,喜欢物品 A 的用户都喜欢物品 C,得出物品 A 和物品 C 比较相似,而用户 C 喜欢物品 A,那么可以推断出用户 C 可能也喜欢物品 C。

  前面介绍了 User CF 和 Item CF 的基本原理,下面我们分几个不同的角度深入看看它们各自的优缺点和适用场景:

  Item CF 和 User CF 是基于协同过滤推荐的两个最基本的算法,User CF 是很早以前就提出来了,Item CF 是从 Amazon 的论文和专利发表之后(2001 年左右)开始流行,大家都觉得 Item CF 从性能和复杂度上比 User CF 更优,其中的一个主要原因就是对于一个在线网站,用户的数量往往大大超过物品的数量,同时物品的数据相对稳定,因此计算物品的相似度不但计算量较小,同时也不必频繁更新。但我们往往忽略了这种情况只适应于提供商品的电子商务网站,对于新闻,博客或者微内容的推荐系统,情况往往是相反的,物品的数量是海量的,同时也是更新频繁的,所以单从复杂度的角度,这两个算法在不同的系统中各有优势,推荐引擎的设计者需要根据自己应用的特点选择更加合适的算法。

  在非社交网络的网站中,内容内在的联系是很重要的推荐原则,它比基于相似用户的推荐原则更加有效。

  比如在购书网站上,当你看一本书的时候,推荐引擎会给你推荐相关的书籍,这个推荐的重要性远远超过了网站首页对该用户的综合推荐。可以看到,在这种情况下,Item CF 的推荐成为了引导用户浏览的重要手段。同时 Item CF 便于为推荐做出解释,在一个非社交网络的网站中,给某个用户推荐一本书,同时给出的解释是某某和你有相似兴趣的人也看了这本书,这很难让用户信服,因为用户可能根本不认识那个人;但如果解释说是因为这本书和你以前看的某本书相似,用户可能就觉得合理而采纳了此推荐。

  相反的,在现今很流行的社交网络站点中,User CF 是一个更不错的选择,User CF 加上社会网络信息,可以增加用户对推荐解释的信服程度。

  目录一、协同过滤算法二、基于邻域的算法:UserCF、ItemCF三、UserCF、ItemCF的改进一、协同过滤推荐算法协同过滤算法是指基于用户行为数据设计的推荐算法,主要包括:1.基于邻域的算法:...博文来自:hhjhh76的博客

  UserCF:性能:适用于用户较少的场合,如果用户很多,计算用户相似度矩阵代价很大。 领域:时效性较强,用户个性化兴趣不太明显的领域。 实时性:用户有新行为,不一定造成推荐结果的立即变化。 冷启动: ...博文来自:dreamzuora的博客

  这是一篇简单的协同过滤算法简介协同过滤算法,对这个名词稍有了解就知道其应用范围之广,常见的淘宝、京东上的商品推荐,再比如网易云音乐的每日新歌推荐,都采用了基于协同过滤的思想。这个算法神奇之处和缺点本篇...博文来自:laotumingke的博客

  1.CTR预估CTR预估是计算广告中最核心的算法之一,那么CTR预估是指什么呢?简单来说,CTR预估是对每次广告的点击情况做出预测,预测用户是点击还是不点击。具体定义可以参考CTR.CTR预估和很多因...博文来自:DanyHgc的博客

  上一讲讲到userCF算法,该算法是根据用户之间相似度,来给目标用户推荐与他们相似用户产生过行为的物品。该算法在某些应用场景并不适用。首先随着网站用户数目越来越大,计算用户兴趣相似矩阵越来越困难,运算...博文来自:Ezail的博客

  基于物品的CF的原理和基于用户的CF类似,只是在计算邻居时采用物品本身,而不是从用户的角度,即基于用户对物品的偏好找到相似的物品,然后根据用户的历史偏好,推荐相似的物品给他。...博文来自:Philics0725的博客

  接之前的item-cf算法,又了解了一下numpy,pandas等内容后,有了更简单方便的求item-cf的思路,但是有个问题,由于数据量的关系,速度非常慢,下面这个方法虽然代码很简单,但在实际运行过...博文来自:akiyamamio11的博客

  ItemCF:ItemCollaborationFilter,基于物品的协同过滤算法核心思想:给用户推荐那些和他们之前喜欢的物品相似的物品。比如,用户A之前买过《数据挖掘导论》,该算法会根据此行为给你...博文来自:在路上的学习者

  基于物品的协同过滤算法ItemCF基于item的协同过滤,通过用户对不同item的评分来评测item之间的相似性,基于item之间的相似性做出推荐。简单来讲就是:给用户推荐和他之前喜欢的物品相似的物品...博文来自:weixin_43270493的博客

  UserCF是推荐系统领域较为古老的算法,1992年就已经在电子邮件的个性化推荐系统Tapestry中得到了应用,1994年被GroupLens①用来实现新闻的个性化推荐,后来被著名的文章分享网站Di...博文来自:平原2018的博客

  推荐系统之基于物品的协同过滤算法(ItemCF)前端时间已经把基于用户的推荐系统给弄出来了,详情见我的另一篇文章:点击打开链接,(建议先看懂UserCF后再来看这篇文章,当然大佬可以忽视)其实理解了基...博文来自:其实我是C先生--的博客

  ItemCF基于物品的协同过滤算法1、概念ItemCF:ItemCollaborationFilter,基于物品的协同过滤算法核心思想:给用户推荐那些和他们之前喜欢的物品相似的物品。比如,用户A之前买...博文来自:Usher_Ou的博客

  推荐系统的分类:基于应用领域分类:电子商务推荐,社交好友推荐,搜索引擎推荐,信息内容推荐基于设计思想:基于协同过滤的推荐,基于内容的推荐,基于知识的推荐,混合推荐基于使用何种数据:基于用户行为数据的推...博文来自:u011263983的博客

  协同过滤算法协同过滤(CollaborativeFiltering,简称CF)是利用集体智慧的一个典型方法。要理解什么是协同过滤,首先想一个简单的问题,如果你现在想看个电影,但你不知道具体看哪部,你会...博文来自:evillist的博客

  上一篇博客我简单讲了一下基于用户的协同过滤算法,这里我们一起来学习一下另一种:基于物品的协同过滤算法。基于物品的协同过滤算法是目前业界应用最多的算法,亚马逊、Netflix、Hulu、YouTub...博文来自:未名湖畔的落叶

  LFM是一种基于机器学习的方法,具有比较好的理论基础。这个方法和基于邻域的方法(比如UserCF、ItemCF)相比,各有优缺点。下面将从不同的方面对比LFM和基于邻域的方法。      理论基础  ...博文来自:u011263983的博客

  最近在看《推荐系统实践》这本书,对于其中2.4.1基于用户的协同过滤算法和2.4.2基于物品的协同过滤算法进行了简易实现。本文列举了在算法实现过程中遇到的一些情况并做了猜想与解释。数据准备本实验采用的...博文来自:weixin_33726318的博客

  ItemCF和UserCF两个方法都能很好的给出推荐,并可以达到不错的效果。但是他们之间还是有不同之处的,而且适用性也有区别。下面进行一下对比计算复杂度ItemCF和UserCF是基于协同过滤...博文来自:jiahaohappy的博客

  一: 推荐系统任务:联系用户和信息,一方面帮助用户发现对自己有价值的信息,另一方面让信息能够展现在对它感兴趣的用户面前,从而实现信息消费者和信息生产中的双赢。长尾理论:传统80/20(%80销售额来自...博文来自:bbbeoy的专栏

  Item_CF基于物品的协同过滤算法,该算法给用户推荐那些和他们之前喜欢物品相似的物品。比如:该算法会因为你购买过《JAVA编程思想》而给你推荐《JAVA核心技术》。物品A和物品B具有很大的相似度是因...博文来自:xgs

  再看《推荐系统实践》这本书的时候,在usercf与itemcf的推荐原理上,不是很清晰,特此做了一下总结:用户:A,B,C,D商品:a,b,c,d,e案例一:我们有如下购买行为记录,分别计算矩阵use...博文来自:weixin_37589896的博客

  说是终极对比,明确告诉你,就是在炒作!本文内容主要是我看了项亮的《推荐系统实践》一书,之前对于UserCF和ItemCF也是用的模模糊糊,这次好好整理了一下,加上自己一些总结和心得。UserCF推荐和...博文来自:njustzj001的专栏

  。首先给用户行为定义相应的权重积分。算法思路:给用户推荐那些和他们之前喜欢的物品相似的物品  实例如下:    算法步骤:  (1)余弦相似度计算计算逻辑,以物品1和物品2为例;    计算得:   ...博文来自:Jaker的博客

  1:协同过滤算法简介2:协同过滤算法的核心3:协同过滤算法的应用方式4:基于用户的协同过滤算法实现5:UserCF中相似度计算部分优化一:协同过滤算法简介  基于用户的协同过滤算法是推荐系统中最古老的...博文来自:一梦南柯

  算法原理的差异UserCF给用户推荐那些和他有共同兴趣爱好的用户喜欢的物品,而ItemCF给用户推荐和他之前喜欢的物品类似的物品。从这个算法的原理可以看到,UserCF的推荐结果着重于反映和用户兴趣相...博文来自:ouprince

  1.ItemCF算法与UserCF算法的基本原理算法名称原理优点相似度计算备注UserCF给用户推荐和他有相同兴趣爱好的用户喜欢的物品。(维护一个用户相似度矩阵)着重反应和用户相似的小群体的热点,反应...博文来自:Sweet_Harbour的博客

  上一讲讲到userCF算法,该算法是根据用户之间相似度,来给目标用户推荐与他们相似用户产生过行为的物品。该算法在某些应用场景并不适用。首先随着网站用户数目越来越大,计算用户兴趣相似矩阵越来越困难,运算...博文来自:村头陶员外的博客

  欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上...博文来自:波西塔塔博客

  机器学习之聚类算法一、什么是聚类?物以聚类,人以群分。每个事物找到和自己相似的作为一类就是聚类,从小学到大学的学校生活中,每个人肯定都有自己的小团伙,自发的形成,,,其实这也算是聚类的实例。聚类在新闻...博文来自:LongHai_Zheng的博客

  聚类分析是一种重要的人类行为,早在孩提时代,一个人就通过不断改进下意识中的聚类模式来学会如何区分猫狗、动物植物。目前在许多领域都得到了广泛的研究和成功的应用,如用于模式识别、数据分析、图像处理、市场研...博文来自:summer_upc的博客

  概述什么是聚类分析聚类分析是在数据中发现数据对象之间的关系,将数据进行分组,组内的相似性越大,组间的差别越大,则聚类效果越好。不同的簇类型聚类旨在发现有用的对象簇,在现实中我们用到很多的簇的类型,使用...博文来自:yqtao的博客

  从寒假开始接触推荐系统,前期也花了一定的时间去学习了一下python,推荐系统的书籍看的是比较出名的《推荐系统实践》项亮编著。写篇博客,以供日后的学习或使用。转载请注明出处:点击打开链...博文来自:其实我是C先生--的博客

  最近做一个NLP项目,必须对很多自然语言处理算法进行了解,主要用Python,因为Python在人工智能上的支持相对比较好的,下面说说UserCF和ItemCF的区别和应用。UserCF算法的特点:较...博文来自:小发猫

  UserCF的核心思想即为根据用户数据模拟向量相似度,我们根据这个相似度,来找出指定用户的相似用户,然后将相似用户买过的而指定用户没有买的东西推荐给指定用户,推荐度的计算也是结合了相似用户与指定用户的...博文来自:u011514514的专栏

  收集数据生成用户商品评分矩阵,构建用户或商品相似度矩阵,利用近邻用户或近邻商品的评分进行加权平均求和得到当前用户没有浏览过的产品评分,选择该用户对没有浏览过的评分TopN的产品列表推荐给当前用户 相似...博文来自:猪逻辑公园

  mahout已经提供了item-basedcf算法,但是要想在mahout算法上修改item-basedcf相对来说比较繁琐,比如改进相似度或者改进推荐结果计算公式,更加令人头疼的是mahout修改比...博文来自:mach_learn的专栏

  一、相关概念:1、关于协同过滤:协同过滤(CollaborativeFilteringRecommendation)技术是推荐系统中应用最早和最为成功的技术之一。协同过滤简单来说是利用某兴趣相投、拥有...博文来自:Smart3S的博客

  1.推荐系统  随着信息技术和互联网的发展,人们逐渐从信息匮乏的时代走入了信息过载的时代。在这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战:如何从大量信息中找到自己感兴趣的信息是一件非常困...博文来自:未名湖畔的落叶

  帐号相关流程注册范围n企业n政府n媒体n其他组织换句话讲就是不让个人开发者注册。 :)填写企业信息不能使用和之前的公众号账户相同的邮箱,也就是说小程序是和微信公众号一个层级的。填写公司机构信息,对公账...博文来自:小雨同学的技术博客

  jquery/js实现一个网页同时调用多个倒计时(最新的)nn最近需要网页添加多个倒计时. 查阅网络,基本上都是千遍一律的不好用. 自己按需写了个.希望对大家有用. 有用请赞一个哦!nnnn//jsn...博文来自:Websites

  command窗口是命令窗口,即为sqplus窗口,有命令提示符,识别sqlplus命令,基本的命令都可以执行nsql仅可执行DDL、select、DML等...博文来自:Ape55的博客

  对象的创建和销毁在一定程度上会消耗系统的资源,虽然jvm的性能在近几年已经得到了很大的提高,对于多数对象来说,没有必要利用对象池技术来进行对象的创建和管理。但是对于有些对象来说,其创建的代价还是比较昂...博文来自:赶路人儿

  扫二维码关注,获取更多技术分享nnn 本文承接之前发布的博客《 微信支付V3微信公众号支付PHP教程/thinkPHP5公众号支付》必须阅读上篇文章后才可以阅读这篇文章。由于最近一段时间工作比较忙,...博文来自:Marswill

  记得很早以前公司项目中添加过移动支付这一块, 包括微信,支付宝,银联等第三方的整合。 但是后来懒于总结就没留下什么, 最近公司项目打算添加,所以打算简单总结一下,记上一笔以备将来使用。 毕竟第三方的支...博文来自:samuelnotes的专栏

  本篇文章是根据我的上篇博客,给出的改进版,由于时间有限,仅做了一个简单的优化。相关文章:将excel导入数据库2018年4月1日,新增下载地址链接:点击打开源码下载地址十分抱歉,这个链接地址没有在这篇...博文来自:Lynn_Blog

  最近比较有空,大四出来实习几个月了,作为实习狗的我,被叫去研究Docker了,汗汗!nnDocker的三大核心概念:镜像、容器、仓库n镜像:类似虚拟机的镜像、用俗话说就是安装文件。n容器:类似一个轻量...博文来自:我走小路的博客

  Dby_freedom:[reply]u013172314[/reply] 欢迎在博客中交流技术问题哈,大家共同交流学习,这也是写博文分享的主要目的之一。

  Dby_freedom:[reply]XCc0900720130[/reply] 首先先提出的是这篇论文发表的时候,embedding + NN 还基本没用,所以 GBDT + LR 可以看做是 LR 的升级版,用于替代一部分 LR 的手动特征工程;基于这个时代背景,我个人认为处理时候应该是分类情况的,对于曝光充分的特征,如果特征种类较少,可以采用直接 one-hot 编码后放入 GBDT 进行特征编码;如果特征类别太多,则采用先 hash 到低纬空间,再进行 one-hot 编码(其降维可能产生的 hash 碰撞所带来的误差在工程上可以忽略的);最后再回到现在,GBDT 依旧可以用来对类别特征进行特征提取,其更擅长提取出高阶组合特征,但这部分已经可以用 embedding + NN 来取代,其次,ID 类特征目前的主流处理方式是直接 one-hot + embedding,其相比于 hash 进一步引入了语意信息,更有利表达特征信息。

http://kharidkhan.com/xietonglicheng/339.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有