推荐算法总结Recommendation

    目前为止,我们常推荐算法有好多种,比较常见的有协同过滤(Collaborative Filtering Recommendations)这个在Mahout里的ItemCF和UserCF比较常用,还有一种比较新的运行在Spark上的交替性最小二乘ALS也是一种协同过滤的算法,但是其它的推荐算法也有很多,在日常中也用的比较多,就做个总结吧。

1、基于内容的推荐算法(Content Based Recommendation 简称CB)

这种推荐是从信息检索,和文本检索里来的,个人理解为是搜索引擎里的搜索排行。TD-IDF计算文章的词频和反文档频率计算出关键词在文档中的权值,最后构成某篇文章的特征向量。基于该文章的特征向量和其它文章的特征向量进行余弦相似度计算,从而返回最匹配相似的文章来给予推荐。

可以简单概括为: 抽取item的特征向量 -> 计算余弦相似度 -> 推荐

item可以是用户过去喜欢的电影,商品,问题等等。

基于内容的过滤创建了每个商品、用户的属性(或是组合)用来描述其本质。比如对于电影来说,可能包括演员、票房程度等。 用户属性信息可能包含地理信息、问卷调查的回答等。这些属性信息关联用户用户后即可达到匹配商品的目的。 当然基于内容的策略极有可能因为信息收集的不便而导致无法实施。

CB的优点:

1. 用户之间的独立性(User Independence):既然每个用户的profile都是依据他本身对item的喜好获得的,自然就与他人的行为无关。而CF刚好相反,CF需要利用很多其他人的数据。CB的这种用户独立性带来的一个显著好处是别人不管对item如何作弊(比如利用多个账号把某个产品的排名刷上去)都不会影响到自己。

2. 好的可解释性(Transparency):如果需要向用户解释为什么推荐了这些产品给他,你只要告诉他这些产品有某某属性,这些属性跟你的品味很匹配等等。

3. 新的item可以立刻得到推荐(New Item Problem):只要一个新item加进item库,它就马上可以被推荐,被推荐的机会和老的item是一致的。而CF对于新item就很无奈,只有当此新item被某些用户喜欢过(或打过分),它才可能被推荐给其他用户。所以,如果一个纯CF的推荐系统,新加进来的item就永远不会被推荐:( 。

CB的缺点:

1. item的特征抽取一般很难(Limited Content Analysis):如果系统中的item是文档(如个性化阅读中),那么我们现在可以比较容易地使用信息检索里的方法来“比较精确地”抽取出item的特征。但很多情况下我们很难从item中抽取出准确刻画item的特征,比如电影推荐中item是电影,社会化网络推荐中item是人,这些item属性都不好抽。其实,几乎在所有实际情况中我们抽取的item特征都仅能代表item的一些方面,不可能代表item的所有方面。这样带来的一个问题就是可能从两个item抽取出来的特征完全相同,这种情况下CB就完全无法区分这两个item了。比如如果只能从电影里抽取出演员、导演,那么两部有相同演员和导演的电影对于CB来说就完全不可区分了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值