美文网首页AI理解与业务应用推荐系统
推荐系统(1)-基于用户行为的协同过滤

推荐系统(1)-基于用户行为的协同过滤

作者: 沉默的羔洋 | 来源:发表于2019-08-13 11:11 被阅读0次

俗话说“物以类聚,人以群分”;推荐系统早期最经典的算法就应用了 人以群分 的规律;不论是基于用户的协同过滤还是基于物品的协同过滤,背后都有一个潜在的认知:人本身就是一种内容筛选器,绝大多数人的喜好都是在一个小范围内的(1-3个领域);喜欢言情的人看的可能都是类似的剧以及综艺,喜欢游戏的看的都是游戏主播、赛事直播等等;所以在计算机难以理解内容时,通过人的行为来确定内容的相似程度是一种非常聪明的策略。

基于用户的协同过滤算法UserCF

算法原理

A与B是好朋友,她们因为有着非常相似的喜好而惺惺相惜;每当A发现了好剧时,就会推荐给B,然后B基本上都很喜欢。这就是基于用户的协同过滤算法

具体思路

1、计算出用户之间的相似度

2、找到相似人群中大家都比较喜欢而目标用户未曾见过的内容,推荐之

描述用户相似度

对问题进行简化,假设平台内容有{a,b,c,d,e,f}

A内容行为【a,b,e】A表示为向量(1,1,0,0,1,0)

B内容行为【b,c,d】B表示为向量(0,1,1,1,0,0)

通过余弦相似度描述相似性:Wab=1/3

相似性计算

为用户推荐

在上述例子中A喜欢a,而B没看到过;基于AB的相似,我们可以给出B喜欢内容a的可能性

P(B,a)=Wab * LBa

(L(B,a)即B对a的喜欢程度,由于例子中只存在喜欢或不喜欢,所以L为1)

在更为常规的情境中,我们会参考K个与B相似的用户,那么最终P(B,a)是由K个用户的W*L加和得到的;因为仅仅参考几个用户是具有不确定性的,生活中喜好相似的朋友也会有你喜欢我不感冒的情况,所以这种不确定性是需要【群】来平掉。与B相似的A喜欢a是不够的,还需要更多与B相似的用户喜欢a,这样B→a的判断会更加具有参考意义,所以要加起来计算P

修正

k的选取在应用过程中比较重要,当K过小时,人与群分的意义会打折扣;当K过大时,一些热门内容会逐渐占据主流,因为热门内容大部分人都喜欢,随着考虑的人数越多,热门内容会被算法认为是相似的而推荐给用户。因此需要根据实际情况进行测试;

这时候回头看W会发现,很有可能会将看过热门内容的用户看做相似用户。我们需要在算法上进行修正,避免热门内容对用户相似度的影响。可以在相似度公式中剔除热门内容对用户行为向量的影响或者对W加以热门因素惩罚;

实际上,UserCF算法在业界使用的很少,更多的是使用基于物品的协同过滤算法(ItemCF)。

UserCF的主要缺陷是:

  • 随着用户数量的增长,计算所有用户两两之间的兴趣相似度的实现复杂度将越来越大,且与用户数量的平方呈正比关系。
  • UserCF算法很难对推荐的结果做出令人信服的解释。

基于物品/内容的协同过滤算法ItemCF

算法原理

啤酒与尿布已经是一个人人皆知的案例了。如果物品A与物品B经常出现在一起,那么这两个物品就具有相关性。如果用在电商网站就映射到组合产品上:咖啡机与咖啡豆等;如果在内容网站就会映射到相似的内容上。这就是亚马逊提出的ItemCF算法

具体思路

1、根据一定规模的序列行为计算物品相似度

2、根据物品的相似度为用户推荐相似物品

描述物体/内容的相似度

假设喜欢物品a的人数为Na

喜欢物品b的人数为Nb

那么Wab为物品相似度

物品相似计算

交集即同时喜欢a、b的人数,分母是各自人数乘积;W就是物品相似的程度

分母是乘积除了作为基数描述相似程度,也惩罚了热门物品的影响:共同喜好ab的人群过于大众反而会导致相似性降低。

为用户推荐

场景一、用户观看完某个内容或者停留在某个内容的详情页

针对用户喜欢的当前物品,进行相似性推荐。

场景二、在首页推荐页面为用户推荐

根据历史用户内容行为,将这些行为对应的相似物品进行W加和。取前几推荐,历史内容的偏好程度可以作为权重

基于历史行为推荐

修正

在计算物品相似度中,相似成立的条件是用户本身偏向于某种内容;但是对于某些异常活跃的用户来讲,这类用户的兴趣领域的范围太广,反而影响了内容的相似性判断。所以通常在计算相似度是需要排除这类用户的数据。

在针对用户历史行为进行相似性推荐时,假设用户浏览过A和B,A与其他物品的相似程度大于B与其他物体的相似程度,往往这种A、B不是一类。若果单纯按照相似度计算,会导致系统忽略内容B,毕竟推荐位置是有限的。这时候如果采取归一化措施(比如将A的相似物品值全部除以A最大的那个相似值),那么最终系统会均匀得考虑A与B,更多样性得进行推荐

算法比较

协同算法比较

相关文章

  • 两种基于邻域的推荐算法

    推荐系统的基本算法:基于邻域的推荐(基于用户的协同过滤、基于物品的协同过滤) http://www.jianshu...

  • 基于邻域的算法(协同过滤)和内容过滤算法

    基于用户行为分析的推荐算法是个性化推荐系统的重要算法,一般将这种算法成为协同过滤算法。协同过滤,就是用户可以齐心协...

  • Python实现推荐系统

    两种最普遍的推荐系统的类型是基于内容和协同过滤(CF)。协同过滤基于用户对产品的态度产生推荐,基于内容的推荐系统基...

  • [推荐系统]利用用户行为数据

    基于用户行为分析的推荐算法是个性化推荐系统的重要算法,一般将这种类型的算法称为协同过滤算法。协同过滤就是指用户可以...

  • 算法笔记(2)-推荐系统之协同过滤算法

    本节讲述推荐系统之协同过滤算法,协同过滤算法包括两类,一种基于用户的协同过滤算法,另外一种基于项的协同过滤算法。 ...

  • 算法笔记(1)-常用推荐算法总结

    常用推荐算法包括以下几种 1.协同过滤算法 1)基于用户的协同过滤算法 2)基于项的协同过滤算法 2.基于矩阵分解...

  • 协同过滤算法(UserCF + ItemCF)

    最近在看《推荐系统实践》这本书,对于其中 2.4.1 基于用户的协同过滤算法和 2.4.2 基于物品的协同过滤算法...

  • Mahout | 协同过滤算法

    协同过滤 基于用户的协同过滤,和基于物品的协同过滤Item CF适用于电子商务网站的推荐系统User CF适用于新...

  • 常用推荐算法

    基于内容过滤从信息检索,和文本检索发展而来基于商品描述及用户喜好描述,为用户推荐商品 协同过滤基于用户行为为用户推...

  • 推荐系统(1)-基于用户行为的协同过滤

    俗话说“物以类聚,人以群分”;推荐系统早期最经典的算法就应用了 人以群分 的规律;不论是基于用户的协同过滤还是基于...

网友评论

    本文标题:推荐系统(1)-基于用户行为的协同过滤

    本文链接:https://www.haomeiwen.com/subject/wervjctx.html