您好,欢迎访问三七文档
推荐系统之协同过滤算法演讲人:张博目录CONTENT一、什么是协同过滤二、协同过滤的实现步骤三、协同过滤的特点1、什么是协同过滤?协同过滤推荐作为个性化推荐中至关重要的一种技术,得到了广泛的应用。协同过滤分为两种:基于用户的协同过滤(UserCF)和基于商品的协同过滤(ItemCF)。基于用户的协同过滤,首先找到用户的邻居,也就是寻找用户所在的社区,把社区成员所关注喜欢的,而用户不曾关注过的商品推荐给他。基于商品的协同过滤,根据评分数据找到该物品的相似物品,当用户关注某个物品后可以直接把该物品的相似物品推荐给用户,基于商品的协同过滤能够动态实时的为用户推荐,或者在一段时间内,计算出用户所关注的物品和相似的物品,把权值较高而用户未曾关注的物品推荐给用户。2、协同过滤的实现步骤1.收集用户偏好2.找到相似的用户或物品3.进行推荐2.1收集用户偏好要从用户的行为和偏好中发现规律,并基于此给予推荐,如何收集用户的偏好信息成为系统推荐效果最基础的决定因素。用户有很多方式向系统提供自己的偏好信息,下面举例进行介绍:2.1收集用户偏好用户行为类型特征作用评分显式整数量化的偏好,可能的取值是[0,n];n一般取值为5或者是10通过用户对物品的评分,可以精确的得到用户的偏好投票显式布尔量化的偏好,取值是0或1通过用户对物品的投票,可以较精确的得到用户的偏好转发显式布尔量化的偏好,取值是0或1通过用户对物品的投票,可以精确的得到用户的偏好。保存书签显示布尔量化的偏好,取值是0或1通过用户对物品的投票,可以精确的得到用户的偏好。标记标签显示一些单词,需要对单词进行分析,得到偏好通过分析用户的标签,可以得到用户对项目的理解,同时可以分析出用户的情感:喜欢还是讨厌评论显示一段文字,需要进行文本分析,得到偏好通过分析用户的评论,可以得到用户的情感:喜欢还是讨厌点击流隐式一组用户的点击,用户对物品感兴趣,需要进行分析,得到偏好用户的点击一定程度上反映了用户的注意力,所以它也可以从一定程度上反映用户的喜好。页面停留时间隐式一组时间信息,噪音大,需要进行去噪,分析,得到偏好用户的页面停留时间一定程度上反映了用户的注意力和喜好,但噪音偏大,不好利用。购买隐式布尔量化的偏好,取值是0或1用户的购买是很明确的说明这个项目它感兴趣。2.1收集用户偏好不同的行为一般可以分为“查看”和“购买”等,然后基于不同的行为,计算相似度。类似于当当网、淘宝给出的“购买了该图书的人还购买了...”,“查看了图书的人还查看了...”根据不同行为反映用户喜好的程度将它们进行加权,得到用户对于物品的总体喜好。2.2寻找相似的用户(UserCF)我们模拟了5个用户对两件商品的评分,来说明如何通过用户对不同商品的态度和偏好寻找相似的用户。在示例中,5个用户分别对两件商品进行了评分。这里的分值可能表示真实的购买,也可以是用户对商品不同行为的量化指标。例如,浏览商品的次数,向朋友推荐商品,收藏,分享,或评论等等。这些行为都可以表示用户对商品的态度和偏好程度。2.2寻找相似的用户相似度计算方法一:欧几里德距离公式方法二:皮尔逊系数2.2寻找相似的用户欧几里德距离可以发现,用户A&C用户A&D和用户C&D距离较近。同时用户B&E的距离也较为接近。与我们前面在散点图中看到的情况一致。2.2寻找相似的用户(UserCF)皮尔逊相关度评价我们选择使用皮尔逊相关度评价来计算多用户与多商品的关系计算。下面是5个用户对5件商品的评分表。我们通过这些评分计算出商品间的相关度。2.2寻找相似的用户通过计算5个用户对5件商品的评分我们获得了用户间的相似度数据。这里可以看到用户A&B,C&D,C&E和D&E之间相似度较高。下一步,我们可以依照相似度对用户进行商品推荐。2.2寻找相似的用户当我们需要对用户C推荐商品时,首先我们检查之前的相似度列表,发现用户C、D、E的相似度较高。换句话说这三个用户是一个群体,拥有相同的偏好。因此,我们可以对用户C推荐D和E的商品。但我们不能直接推荐前面商品1-商品5的商品。因为这些商品用户C以及浏览或者购买过了。不能重复推荐。因此我们要推荐用户C还没有浏览或购买过的商品。2.3为相似的用户推荐物品用户商品6商品7商品8商品9商品10用户D√√√√√用户E√√√√用户C√√√推荐2.4寻找相似的商品(ItemCF)表格中是两个用户对5件商品的评分,通过两个用户的评分来获得5件商品之间的相似度情况。2.4寻找相似的商品在散点图中,我们可以发现,商品1,3,4在用户A和B中有着近似的评分,说明这三件商品的相关度较高。而商品5和2则在另一个群体中。2.4寻找相似的商品通过欧几里德系数可以发现,商品间的距离和关系与前面散点图中的表现一致,商品1,3,4距离较近,商品2,5距离较近。2.4进行推荐跟上述的基于用户的协同过滤算法类似,但它从物品本身,而不是用户角度。比如喜欢物品1的用户都喜欢物品3,那么可以知道物品1与物品3的相关度很高,而用户D喜欢物品1,那么可以推断出用户D也可能喜欢物品3。如下图用户商品1商品2商品3商品4商品5用户A√√√用户B√√√√用户C√√用户D√推荐PARTTHREE三、算法特点1、使用场景对于电商网站,用户的数量往往超过物品的数量,同时物品数据相对稳定,因此计算物品的相似度不但计算量小,同时不必频繁更新。但是这种情况只适用于电子商务类型的网站,像新闻类,博客等这类网站的系统推荐,情况往往是相反的,物品数量是海量的,而且频繁更新。所以从算法复杂度角度来说,两种算法各有优势。2、优缺点对比UserCFItemCF性能适用于用户较少的场合,如果用户很多,计算用户相似度矩阵代价很大。适用于物品数明显小于用户数的场合,如果物品很多(网页),计算物品相似度矩阵代价很大。领域时效性较强,用户个性化兴趣不太明显的领域。长尾物品丰富,用户个性化需求强烈的领域实时性用户有新行为,不一定造成推荐结果的立即变化。用户有新行为,一定会导致推荐结果的实时变化。冷启动在新用户对很少的物品产生行为后,不能立即对他进行个性化推荐,因为用户相似度表是每隔一段时间离线计算的。新物品上线后一段时间,一旦有用户对物品产生行为,就可以将新物品推荐给和对它产生行为的用户兴趣相似的其他用户新用户只要对一个物品产生行为,就可以给他推荐和该物品相关的其他物品。但没有办法在不离线更新物品相似度表的情况下将新物品推荐给用户。推荐理由很难提供令用户信服的推荐解释(购买了该图书的用户也购买了。。。)利用用户的历史行为给用户做推荐解释,可以令用户比较信服E'N'D谢谢观看!
本文标题:协同过滤算法
链接地址:https://www.777doc.com/doc-6000144 .html