zoukankan      html  css  js  c++  java
  • 基于用户和基于物品的协同过滤算法的比較

    首先回想一下,协同过滤算法主要有两种,一种是基于用户的协同过滤算法(UserCF)。还有一种是基于物品的协同过滤算法(ItemCF)。

    基于用户的协同过滤算法主要有两步:

    1)找到和目标用户兴趣类似的用户集合 

      2)找到这个集合中的用户喜欢的,且目标用户没有听说过的物品推荐给目标用户。


    基于物品的协同过滤算法主要有两步:

    1)计算物品之间的类似度。

    2)依据物品的类似度和用户的历史行为给用户生成推荐列表。

    由此能够看出UserCF是推荐用户所在兴趣小组中的热点。更注重社会化。而ItemCF则是依据用户历史行为推荐类似物品,更注重个性化。所以UserCF一般用在新闻类站点中。如Digg,而ItemCF则用在其它非新闻类站点中。如Amazon,hulu等等。


    由于在新闻类站点中,用户的兴趣爱好往往比較粗粒度,非常少会实用户说仅仅看某个话题的新闻,往往某个话题也不是天天会有新闻的。个性化新闻推荐更强盗新闻热点。热门程度和时效性是个性化新闻推荐的重点,个性化是补充,所以UserCF给用户推荐和他有同样兴趣爱好的人关注的新闻,这样在保证了热点和时效性的同一时候,兼顾了个性化。

    另外一个原因是从技术上考虑的,作为一种物品,新闻的更新非常快。并且实时会有新的新闻出现。而假设使用ItemCF的话,须要维护一张物品之间类似度的表,实际工业界这表通常是一天一更新的,这在新闻领域是万万不能接受的。


    可是,在图书,电子商务和电影站点等方面,ItemCF则能更好的发挥作用。由于在这些站点中。用户的兴趣爱好通常是比較固定的,并且相比于新闻站点更细腻。在这些站点中,个性化推荐通常是给用户推荐他自己领域的相关物品。

    另外。这些站点的物品数量更新速度不快,一天一次更新能够接受。

    并且在这些站点中,用户数量往往远远大于物品数量,从存储的角度来讲,UserCF须要消耗更大的空间复杂度。另外,ItemCF能够方便的提供推荐理由,添加用户对推荐系统的信任度,所以更适合这些站点。


  • 相关阅读:
    (转)Netfilter分析
    (转)offsetof与container_of宏[总结]
    GNU GCC 扩展属性
    eclipse快捷键
    数据库SQL优化大总结之 百万级数据库优化方案(转载)
    公钥,私钥和数字签名这样最好理解 (转载)
    注解方式实现输入参数验证
    统一异常处理@RestContrllerAdvice,@ExceptionHandler(转载)
    JSONField解决序列化与反序列化字段匹配问题
    JDBC事务控制管理(转载)
  • 原文地址:https://www.cnblogs.com/llguanli/p/8668128.html
Copyright © 2011-2022 走看看