设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 IT综合资讯 查看内容

互联网推荐系统漫谈

2013-10-10 14:04| 发布者: joejoe0332| 查看: 652| 评论: 0|原作者: geekpark.net|来自: geekpark.net

摘要:    读项亮的《推荐系统实践》后总结所得:算法虽然不能解决全部问题,但算法可以变得更人性化。网络就是社会,其实算法和人之间早已不那么泾渭分明了。  推荐系统这个东西其实在我们的生活中无处不在,比如我早 ...
  [核心提示] 读项亮的《推荐系统实践》后总结所得:算法虽然不能解决全部问题,但算法可以变得更人性化。网络就是社会,其实算法和人之间早已不那么泾渭分明了。


  推荐系统这个东西其实在我们的生活中无处不在,比如我早上买包子的时候,老板就经常问我要不要来杯豆浆,这就是一种简单的推荐。随着互联网的发展,把线下的这种模式搬到线上成了大势所趋,它大大扩展了推荐系统的应用:亚马逊的商品推荐,Facebook的好友推荐,Digg的文章推荐,豆瓣的豆瓣猜,Last.fm和豆瓣FM的音乐推荐,Gmail里的广告......在如今互联网信息过载的情况下,信息消费者想方便地找到自己感兴趣的内容,信息生产者则想将自己的内容推送到最合适的目标用户那儿。而推荐系统正是要充当这两者的中介,一箭双雕解决这两个难题。




  推荐系统的评判标准


  首先我们得明确什么是好的推荐系统。可以通过如下几个标准来判定。


  • 用户满意度  描述用户对推荐结果的满意程度,这是推荐系统最重要的指标。一般通过对用户进行问卷或者监测用户线上行为数据获得。
  • 预测准确度  描述推荐系统预测用户行为的能力。一般通过离线数据集上算法给出的推荐列表和用户行为的重合率来计算。重合率越大则准确率越高。
  • 覆盖率  描述推荐系统对物品长尾的发掘能力。一般通过所有推荐物品占总物品的比例和所有物品被推荐的概率分布来计算。比例越大,概率分布越均匀则覆盖率越大。
  • 多样性  描述推荐系统中推荐结果能否覆盖用户不同的兴趣领域。一般通过推荐列表中物品两两之间不相似性来计算,物品之间越不相似则多样性越好。
  • 新颖性  如果用户没有听说过推荐列表中的大部分物品,则说明该推荐系统的新颖性较好。可以通过推荐结果的平均流行度和对用户进行问卷来获得。
  • 惊喜度  如果推荐结果和用户的历史兴趣不相似,但让用户很满意,则可以说这是一个让用户惊喜的推荐。可以定性地通过推荐结果与用户历史兴趣的相似度和用户满意度来衡量。


  简而言之,一个好的推荐系统就是在推荐准确的基础上给所有用户推荐的物品尽量广泛(挖掘长尾),给单个用户推荐的物品尽量覆盖多个类别同时不要给用户推荐太多热门物品,最牛逼的则是能让用户看到推荐后有种「相见恨晚」的感觉。


  推荐系统的分类


  推荐系统是建立在大量有效数据之上的,背后的算法思想有很多种,要大体分类的话可以从处理的数据入手。


  1.利用用户行为数据 

  互联网上的用户行为千千万万,从简单的网页浏览到复杂的评价,下单......这其中蕴含了大量的用户反馈信息,通过对这些行为的分析,我们便能推知用户的兴趣喜好。而这其中最基础的就是「协同过滤算法」。

  「协同过滤算法」也分两种,基于用户(UserCF)和基于物品(ItemCF)。所谓基于用户,就是跟据用户对物品的行为,找出兴趣爱好相似的一些用户,将其中一个用户喜欢的东西推荐给另一个用户。举个例子,老张喜欢看的书有A,B,C,D;老王喜欢看的书有A,B,C,E。通过这些数据我们可以判断老张和老王的口味略相似,于是给老张推荐E这本书,同时给老王推荐D这本书。对应的,基于物品就是先找出相似的物品。怎么找呢?也是看用户的喜好,如果同时喜欢两个物品的人比较多的话,就可以认为这两个物品相似。最后就只要给用户推荐和他原有喜好类似的物品就成。举例来说,我们发现喜欢看《从一到无穷大》的人大都喜欢看《什么是数学》,那如果你刚津津有味地看完《从一到无穷大》,我们就可以立马给你推荐《什么是数学》。

  至于什么时候用UserCF,什么时候用ItemCF,这都要视情况而定。一般来说,UserCF更接近于社会化推荐,适用于用户少,物品多,时效性较强的场合,比如Digg的文章推荐;而ItemCF则更接近个性化推荐,适用于用户多,物品少的场合,比如豆瓣的豆瓣猜,同时ItemCF还可以给出靠谱的推荐理由,例如豆瓣的「喜欢OO的人也喜欢XX」和亚马逊的「买了XX的人也买了OO」。



  协同过滤算法也有不少缺点,最明显的一个就是热门物品的干扰。举个例子,协同过滤算法经常会导致两个不同领域的最热门物品之间具有较高的相似度,这样很可能会给喜欢《算法导论》的同学推荐《哈利波特》,显然,这不科学!要避免这种情况就得从物品的内容数据入手了,后文提到的内容过滤算法就是其中一种。

  除了协同过滤算法,还有隐语义模型(LFM)应用得也比较多,它基于用户行为对物品进行自动聚类,从而将物品按照多个维度,多个粒度分门别类。然后根据用户喜欢的物品类别进行推荐。这种基于机器学习的方法在很多指标上优于协同过滤,但性能上不太给力,一般可以先通过其他算法得出推荐列表,再由LFM进行优化。



酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部