2016-01-30 21:59:33    28    0    0


2016-01-30 12:39:28    71    1    1

 以下内容为我这些天看的一些内容的总结与思考。

先介绍主流的系统使用的两大类的推荐算法,实际上很多系统才用的都不可能是简单的一种算法,都是非常多的推荐算法模型结合的,但是基本的算法应该都会用到,怎么结合怎么实践的肯定也是百家争鸣,而真正做到效果的,屈指可数。这里面的原因呢?Who TM knows?至少不只是算法的锅。下面简单总结下两类主要的推荐算法。

基于内容的算法-content-based

这种方法应该是最早被使用的推荐算法吧,它根据用户过去喜欢的产品(一般称为Item),为用户推荐和他过去喜欢的产品相似的产品。例如,一个可以根据你看了很多的恐怖片而推荐另一部恐怖片。

    CB的过程一般包括三个过程:

  1. Item Representation:为每一个item抽取一些特征,也就是item的content,来表示此item;一般说来这些特征越丰富,对一个item的刻画也就越全面,而对于content的主要特征把握的越准确,对于item的表示也就越精确。
  2. Profile Learing:利用一个用户过去喜欢和不喜欢的item的特征数据,来学习出此用户的喜好特征,形成user profile 模型。
  3. recommendation generation :通过比较上一步得到的用户profile与候选items的特征,为此用户推荐相关性最大的item。

具体的介绍我觉得这篇文章介绍的是比较详细的

http://www.cnblogs.com/breezedeus/archive/2012/04/10/2440488.html

CB的优点:

 

  1. 用户之间的独立性:既然每个用户的profile都是依据用户自身的喜好获得的,自然就与他人的行为无关。
  2. 好的可解释性:如果需要向用户解释为什么推荐了这些产品给他,只要告诉他该产品具有某某属性,这些属性跟你的品味很相配等等。
  3. 新的item可以立即得到推荐:只要一个新的item加进item库,他马上就可以被推荐,被推荐的机会和老的item是一致的。

CB的缺点:

 

  1. item的特征抽取一般很难:但是对于阅读来说的文档来说,现在有很多方法可以抽取item的特征。
  2. 无法挖掘出用户的潜在兴趣:因为CB强烈依赖于用户自身的历史喜好数据,它产生的推荐也都会强烈依赖于历史喜好。很难为用户推荐更广的“天空”。
  3. 无法为新用户产生推荐:新用户没有历史,自然无法获得他的profile,所以无