推荐算法之基于用户的协同过滤算法

0 评论 13513 浏览 85 收藏 4 分钟
🔗 B端产品需要更多地依赖销售团队和渠道合作来推广产品,而C端产品需要更多地利用网络营销和口碑传播来推广产品..

协同过滤是推荐算法中最基本的算法,主要分为基于用户的协同过滤算法和基于物品的协同过滤算法。

这篇文章主要介绍基于用户的协同过滤算法,简单来说,要给用户u作推荐,那么只要找出那些和u之前的行为类似的用户,即和u比较像的用户,把他们的行为推荐给用户u即可。所以基于用户的系统过滤算法包括两个步骤:1)找到和目标用户兴趣相似的用户集合 2)找到这个集合中的用户喜欢的,且目标用户没有听说过的物品推荐给目标用户。

第一步的关键点在于计算用户之间的相似度,相似度一般通过Jaccard公式或者余弦相似度即可求得,及计算共有行为所占的比重(具体式子google就行,csdn插入公式不方便。。。),所以目前而言,计算用户相似度的复杂度是O(N*N), N为用户数量,在用户数比较大的网站中不实用,比如亚马逊用户数量肯定N>100000,那么这样的复杂度是不可接受的。

第一步时间复杂度的改进方法:因为很多用户间其实相似度是为0的,如果看成是一个N*N的矩阵的话,肯定是个稀疏矩阵,那么我们其实没有必要浪费计算量在这些0上。我们可以建立物品到用户的倒查表,及可以根据物品找到所有对该物品有过行为的用户,然后遍历各物品,对一个物品然后找到对该物品有过行为的用户,然后计算这些用户间的行为相似度(共有行为+1,同时计算这些用户的行为数),最后计算两用户间的公有行为占各自行为的比重。

第一步计算相似度的改进方法:举个例子:如果两人都买过《新华辞典》,并不能说明这两人想像,因为这本书基本上人人都会买,而如果这两人都买过《机器学习》,那么我们可以肯定,这两人在这方面有相同的兴趣爱好,也就是说,越是对冷门物品有同样的行为,就越说明用户的相似性,即在计算用户相似性的时候,需要降低热门物品的影响(通过计算流行度来实现,然后用1/N(i)来计算公共行为比重,N(i)表示流行度,这样,流行度高的物品所占比重就比较低)

第二步则比较简单,选出K个和用户u最相似的用户,把他们喜欢过的物品并且用户u没有喜欢过的物品推荐给u即可。这里面K的选择非常重要。K越大,推荐的结果就越热门,流行度就越高,同时覆盖率越低,因为基本推荐的都是流行的物品

本文作者 wangyuquanliuli

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 目前还没评论,等你发挥!
专题
15906人已学习15篇文章
汽车座舱的智能化,本质上是通过硬件+软件的手段,让汽车座舱具备人类“智能”的能力,使人与车直接协作更加安全高效。本专题的文章分享了智能座舱的产品模块解读。
专题
31324人已学习11篇文章
来看看别人家是怎么做产品优化的。
专题
18548人已学习17篇文章
随着互联网的不断发展,不少产品开始了适老化改造,帮助老年人更好地融入智能生活。本专题的文章分享了适老化的设计思路。
专题
17461人已学习14篇文章
RFM模型是与用户价值相关的常见模型之一。本专题的文章分享了什么是RFM模型?如何应用RFM模型?
专题
12774人已学习13篇文章
AI技术的出现给各行各业都带来了重塑的机会,那么,当AI与社交赛道碰撞时,会讲述出怎样的故事?各家产品的表现如何?
专题
20311人已学习14篇文章
好的用户成长体系可以促进用户活跃、增强用户粘性、留住用户和帮助企业更好地了解用户对产品的使用情况。本专题的文章提供了搭建用户成长体系的思路。