2009年1月19日星期一

Collaborative Filtering

标签:协同过滤 推荐系统 it
这方面挺有意思,就随便看了看。总结下看的东西~~~
协同过滤的主要目标:由于网络信息量的增多,用户往往被淹没在信息的海洋里,很难很轻易的找到自己感兴趣的topic。协同过滤就是为了把用户最可能感兴趣的信息推送给用户(Recommer system)。
协同过滤的方法: model-base,user-base,item-base,content-base。
  • user-based:搜集用户profile。对于一个active user,找到跟其比较接近(或者相似)的几个neighbour。使用这些neibour对active user的interest进行预测,把那些潜在的interest推荐给active user。
  • item-base:与user-based相对应。协同过滤推荐根据用户对相似项的评分预测该用户对目标项的评分,它基于这样一个假设:如果大部分用户对一些项的评分比较相似,则当前用户对这些项的评分也比较相似。对每个item寻找几个neighbour。譬如如果item A 与item B是一个neighbour pair,对于一个active user,如果其对A评价很高,或者有很高的兴趣,那么他极可能对B感兴趣,这样B就是一个潜在的inerest.
  • content-based:根据item的内容与用户历史兴趣度进行分析关联,它的一个前提假设就是如果一个用户在过去一段时间对某item有较高的评价,那么在未来也会保持这种interest。这样就可以根据item之间的内容接近程度进行推荐。它有很大的缺陷,首先没有结合用户反馈,虽然一个item具有很高的可推荐性,但是如果大家都对其评价较差,那么这也许是一个不好的推荐item;其次就是其对item内容进行分析也只能是一个方面,不能全面深刻的描述一个item;再一个就是推荐的内容有限;当系统仅仅根据用户资料或项目描述来进行推荐的时候,用户被限制在只能得到与以往熟悉的内容相类似的项目。这样不利于挖掘用户潜在的兴趣。

协同过滤面临的问题

  • 数据稀疏问题(一个用户不可能对所有的商品都有过评价),例如:许多电子商务推荐系统要对大量的数据信息进行处理,而在这些系统中一般用户购买商品的总量占网站总商品量的1%左右,因此造成了评价矩阵(用户-项矩阵)非常稀疏。
  • 再一个就是冷开始问题:cold start。它主要表现在一个新项目或者一个新用户的到来上。因为传统的协同过滤推荐是基于邻居用户资料得到目标用户的推荐,在一个新的项目首次出现的时候,因为没有用户对它作过评价,因此单纯的协同过滤无法对其进行预测评分和推荐。而且,由于新项目出现早期,用户评价较少,推荐的准确性也比较差。相似的,推荐系统对于新用户的推荐效果也很差。冷开始问题的极端的情况是:当一个协同过滤推荐系统刚开始运行的时候,每个用户在每个项目上都面临冷开始问题。