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

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

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

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

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


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

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

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

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


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

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


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

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

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


  • 相关阅读:
    android Notification 通知栏点击不能跳转(转自:http://www.oschina.net/question/778954_212394)
    Android使用ContentObserver监听数据库变化(转自:http://www.blogjava.net/zhaojianhua/archive/2011/10/27/362204.html)
    cenos 6.4 samba 服务器安装与配置
    centos下nginx+tomcat部署java web全过程(包括在线离线安装Mysql等)
    python读取csv文件
    linux文件实时同步
    Linux 上安装 mysql
    Mysql5.7.20安装文档
    Cassanfra、Hbase和MongoDB的选取
    org.springframework.http.converter.HttpMessageConversionException: T
  • 原文地址:https://www.cnblogs.com/llguanli/p/8668128.html
Copyright © 2011-2022 走看看