美文网首页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,更多样性得进行推荐

    算法比较

    协同算法比较

    相关文章

      网友评论

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

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