解析协同过滤方法

协同过滤是一种推荐系统算法,通过用户行为找到相似性以做出决策。它分为基于用户和基于物品的两种方法,涉及用户和物品相似度计算,如Jaccard系数、Cosine相似度和Pearson相关性。用户活跃度和物品相似度的归一化也是考虑因素。协同过滤在处理大规模数据集时效果良好,但面临冷启动和稀疏性问题。
摘要由CSDN通过智能技术生成

点击上方“蓝字”关注我们

协同过滤( Collaborative Filtering)

Mar 26, 2020

本期介绍推荐系统中的协同过滤方法。

本文约3k字,预计阅读18分钟。

「基于用户行为」设计的推荐算法,即协同过滤,从字面上理解,包括协同和过滤两个操作。所谓协同就是利用群体的行为来做决策(推荐)。对于推荐系统来说,通过用户的持续协同作用(与网站不断进行互动),最终给用户的推荐会越来越准确。而过滤,就是从可行的决策(推荐)物品中将用户喜欢的物品找(过滤)出来。

具体来说,协同过滤的思路是通过群体的行为来找到某种相似性(用户之间的相似性或者物品之间的相似性),通过该相似性来为用户做决策和推荐。

协同过滤有「基于邻域的方法(neighborhood methods)」「隐语义模型(latent factor model)」基于图的随机游走方法(random walk on graph)」等。基于邻域应用最为广泛,主要包含两种算法:

  • 基于用户的协同过滤算法:给用户推荐和他兴趣相似的其他用户喜欢的物品(图左)

  • 基于物品的协同过滤算法:给用户推荐和他之前喜欢的物品相似的物品(图右)

因此协同过滤的核心是怎么计算物品之间的相似度以及用户之间的相似度。相似度系数可以衡量用户或物品之间的相似度。

基于物品的协同过滤

基于用户的协同过滤算法的简单定义:在一个在线个性化推荐系统中,当一个用户A需要个性化推荐时,可以先找到和他有相似兴趣的其他用户,然后把那些用户喜欢的、而用户A没有听说过的物品推荐给A。

故该算法主要分为两个步骤:

  • 找到和目标用户兴趣相似的用户集合;

  • 找到这个集合中的用户喜欢的,而目标用户没有听说过的物品推荐给目标用户;

用户相似度计算

可以利用「Jaccard公式」「Cosine相似度」来简单的计算用户 之间的相似度,另外相似度系数常用的还有「Pearson相关性系数(Pearson Correlation)」

  • Jaccard系数用于计算两个集合之间的相似度,比较适合隐式反馈类型的用户行为。

  • Cosine相似度用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小。余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,这就叫"余弦相似性"。

  • Pearson相关性系数是衡量向量相似度的一种方法。输出范围为[-1, +1], 0代表无相关性,负值为负相关,正值为正相关。

以隐式反馈为例, 表示用户 用过正反馈的物品集合, 表示用户 用过正反馈的物品集合,公式如下:

Jaccard:

Cosine相似度:

物品得分计算

得到用户之间的兴趣相似度后,算法会给用户推荐和他兴趣最相似的K个用户喜欢的物品。如下公式度量了用户 对物品

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值