zoukankan      html  css  js  c++  java
  • 【转载】协同过滤(Collaborative Filtering)

    Collaborative Filtering

    协同过滤的主要目标:由于网络信息量的增多,用户往往被淹没在信息的海洋里,很难很轻易的找到自己感兴趣的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。 它主要表现在一个新项目或者一个新用户的到来上。因为传统的协同过滤推荐是基于邻居用户资料得到目标用户的推荐,在一个新的项目首次出现的时候,因为没有 用户对它作过评价,因此单纯的协同过滤无法对其进行预测评分和推荐。而且,由于新项目出现早期,用户评价较少,推荐的准确性也比较差。相似的,推荐系统对 于新用户的推荐效果也很差。冷开始问题的极端的情况是:当一个协同过滤推荐系统刚开始运行的时候,每个用户在每个项目上都面临冷开始问题。

    http://www.cnblogs.com/blessw/archive/2010/03/27/1698637.html

  • 相关阅读:
    java并发:简单面试问题集锦
    Java:泛型
    Java:注解(元数据)
    Java:反射
    Java:静态代理 and 动态代理
    华为机试题——该警醒了,骚年
    java并发:线程同步机制之Lock
    java并发:中断一个正在运行的线程
    java中String类型变量的赋值问题
    java中的自增问题
  • 原文地址:https://www.cnblogs.com/coolalan/p/4395930.html
Copyright © 2011-2022 走看看