笔记:机器学习之协同过滤算法

1.协同过滤(Collaborative Filtering)算法

    是一种常见的推荐算法,直白点说,就是你不知道怎么选择,大家来帮你选择。这个大家可能是用户,和你有相同偏好的人帮你选择你没有而他们有的;也可能是物品本身,和你历史物品相似的物品把自己推荐给你。对应的算法分类也就是基于用户的协同过滤算法和基于物品的协同过滤算法。前述可知,基于用户的协同过滤算法的关键是找到相同偏好的用户,找到了偏好最近的几个用户,他们偏好的物品便是要给你推荐的目标。而基于物品的协同过滤算法的关键是计算其它物品和历史物品的相似度,相似度最近的几个物品便是要推荐的物品。(换句话说,协同过滤算法的关键是解决相似度问题)。

 

2.三种类型

    一般来说,协同过滤推荐分为三种类型。第一种是基于用户(user-based)的协同过滤,第二种是基于项目(item-based)的协同过滤,第三种是基于模型(model-based)的协同过滤

.2.1 基于用户的协同过滤(user-based)

    基于用户的协同过滤主要是考虑用户与用户之间的相似度,即找到相似用户喜欢的物品,并预测目标用户对物品的评分,就可以找到评分最高的若干个物品推荐给用户。

2.2 基于项目的协同过滤(item-based)

     基于项目的系统过滤和上面基于用户类似,只不过这里是计算物与物之间的相似度,根据目标用户对某些物品的评分,我们就可以计算出相似度高的类似物品进行推荐,比如你在淘宝上收藏了一个电视机链接,则会推荐给你许多相关的电视机商品。

    基于用户的协同过滤比基于项目的协同过滤算法在计算相似度上,复杂度高,但是推荐效果更佳。而基于项目的协同过滤,可以很容易的进行离线计算,适用于小型的推荐系统,但是对于偏大型的推荐系统,用基于用户的协同过滤算法,推荐的多样性更好。而下面的基于模型的协同过滤是目前最主流的协同过滤模型,其相关算法可以写一本书了。

2.3 基于模型的协同过滤(model-based)

上面两种方法都是将用户所有的数据读入到内存中进行运算的,因此又做Memory-based Collaborative Filtering。而基于模型的协同过滤,包括Aspect Model(特征模型),pLSA(概率潜在语义分析),LDA(文档主题生成模型),聚类,分类,回归,SVD(奇异值分解),Matrix Factorization(矩阵分解)等,这种方法训练过程比较长,但是训练完成后,推荐过程比较快。

 

3.协同过滤算法理论基础之相似度

相似度计算有三个经典算法,即

余弦定理相似性度量、欧氏距离相似度度量和杰卡德相似性度量

1.余弦定理相似度

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

2.欧式距离

在二维空间之中,两点(x1,y1)和(x2,y2)之间的距离,即为欧氏距离,在n维空间中计算如下所示

3.杰卡德相似性度量

两个集合的交集在该两个集合的并集所占的比例来度量两个集合的相似度。举例,新闻A和新闻B提取出词语集合的交集在新闻A和新闻B提取出词语集合的并集所占的比例就是AB的相似度。

公式表示为:

其应用场景有:

滤相似度很高的新闻,或者网页去重

考试防作弊系统

论文查重

 

https://blog.csdn.net/u012995888/article/details/79077681

https://www.cnblogs.com/baihuaxiu/p/6617389.html

https://www.cnblogs.com/pinard/p/6349233.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值