zoukankan      html  css  js  c++  java
  • 推荐系统读书笔记(一)好的推荐系统

    1.1 什么是推荐系统

      80/20原则:80%的销售额来自于20%的热门品牌

      不热门的商品数量极其庞大,这些长尾商品的总销售额将是一个不可小觑的数字,也许会超过热门商品带来的销售额。

      主流商品代表了绝大多数用户的需求,而长尾商品代表了一小部分用户的个性化需求。

      推荐系统通过发掘用户的行为,找到用户的个性化需求,从而将长尾商品准确地推荐给需要它的用户,帮助用户发现那些他们感兴趣但很难发现的商品。

      社会化推荐:朋友推荐

      基于内容的推荐:通过分析用户曾经看过的电影找到用户喜欢的演员和导演。

      基于协同过滤的推荐:找到和自己历史兴趣相似的一群用户,得到更能符合自己兴趣的电影。。

    1.2 个性化推荐系统的应用

      所有推荐系统应用都是由前台的展示页面、后面的日志系统以及推荐算法系统3部分构成。

    1.2.1 电子商务

    1.2.2 电影和视频网站

    1.2.3 个性化音乐网络电台

    1.2.4 社交网络

    1.2.5 个性化阅读

    1.2.6 基于位置的服务

    1.2.7 个性化邮件

    1.2.8 个性化广告

    1.3 推荐系统评测

      好的推荐系统不仅仅能够准确预测用户的行为,而且能够扩展用户的视野,帮助用户发现那些他们可能会感兴趣,但却不那么容易发现的东西。

      同时,推荐系统还要能够帮助商家将那些被埋没在长尾中的好商品介绍给可能会对它们感兴趣的用户。

    1.3.1 推荐系统实验方法

      1.离线实验

      (1)通过日志系统获得用户行为数据,并按照一定格式生成一个标准的数据集

      (2)将数据集按照一定的规则分成训练集和测试集

      (3)在训练集上训练用户兴趣模型,在测试集上进行预测

      (4)通过事先定义的离线指标评测算法在测试集上的预测结果

      优点:  不需要有对实际系统的控制权

           不需要用户参与实验

           速度快,可以测试大量算法

      缺点:  无法计算商业上关心的指标

           离线实验的指标和商业指标存在差距

      2.用户调查

      3.在线实验

      A/B测试:通过一定的规则将用户随机分成几组,并对不同的组的用户采用不同的算法,然后通过统计不同组用户的各种不同的评测指标比较不同算法,比如可以统计不同组用户的点击率,通过点击率比较不同算法的性能。

      优点:可以公平获得不同算法实际在线时的性能指标

      缺点:周期长,必须进行长期实验才能得到可靠的结果

      一个新的推荐算法上线,需要完成

      (1)离线实验

      (2)用户调查满意度

      (3)AB测试

    1.3.2 评测指标

      1.用户满意度

      电商:用户是否购买,即购买率

      反馈:满意/不满意

      还可以通过点击率、用户停留时间、转化率等度量用户的满意度

      2.预测准确度:最重要的推荐系统离线评测指标

      (一)评分预测:预测用户对物品的评分。一般RMSE和MAE计算。

      Netflix认为RMSE加大了对预测不准的用户物品评分的惩罚(平方)。

      研究表明,如果评分系统是基于整数建立的,那么对预测结果取整会降低MAE的误差。

      (二)TopN推荐:一般通过准确率/召回率度量

      一般是选取不同的推荐列表长度N,计算出一组准确率/召回率,画出准确率/召回率曲线

      (三)覆盖率:描述一个推荐系统对物品长尾的发掘能力,可以采用熵和基尼系数

      一个好的推荐系统不仅需要有比较高的用户满意度,也要有较高的覆盖率

      如果所有的物品都出现在推荐列表中,且出现的次数差不多,那么推荐系统发掘长尾的能力就很好。

      排行榜和PageRank算法都有马太效应。推荐系统的初衷是要消除马太效应,使得各种物品都能被展示给对它们感兴趣的某一类人群。

      评测推荐系统是否具有马太效应的简单办法就是使用基尼系数。如果G1是初始用户行为中计算出来的物品流行度的基尼系数,G2是从推荐列表中计算出的物品流行度的基尼系数,如果G2>G1,说明推荐算法具有马太效应。

      (四)多样性:描述推荐列表中物品两两之间的不相似性。

      (五)新颖性:给用户推荐那些以前没听说的物品。

      评测新颖性的最简单方法是利用推荐结果的平均流行主芭,因为越不热门的物品越可能让用户觉得新颖。因此,如果推荐结果中物品的平均热门程度较低,那么推荐结果就可能有比较高的新颖性。

      (六)惊喜度

      如果推荐结果和用户的历史兴趣不相似,但却让用户觉得满意,那么就可以说推荐结果的惊喜度很高,而推荐的新颖性仅仅取决于用户是否听说过这个推荐结果。

      令用户惊嘉的推荐结果是和用户历史上喜欢的物品不相似,但用户却觉得满意的推荐,那么,定义惊喜度需要首先定义推荐结果和用户历史上喜欢的物品的相似度,其次需要定义用户对推荐结果的满意度。

      提高推荐惊喜度需要提高推荐结果的用户满意度,同时降低推荐结果和用户历史兴趣的相似度。

      (七)信任度

      例:Epinion推荐系统,当用户在Epinion上浏览一个商品时,会通过用户评论判断是否购买该商品,Epinion为了防止垃圾评论或者广告评论影响用户的决策,在每条用户评论的右侧都显示了评论作者的信息,并且让用户判断是信任该评论人还是将他加入黑名单。如果网站具有Epinion的用户信任系统,那么可以在给用户做推荐时,尽量推荐他信任的其他用户评论过的物品。

      (八)实时性

      如果推荐列表在用户有行为后变化不大,或者没有变化,说明推荐系统的实时性不高。

      (九)健壮性

      

      

  • 相关阅读:
    TCP/IP Checksum 吐槽
    RHEL安装时加载第三方raid驱动
    RHEL Channel Bonding
    关于case语句中声明变量并初始化的注意事项
    Allocators与Criterion的相同点及区别
    BitSet构造函数的两种特例
    Bitset<>用于unordered container时的默认hash函数
    C++ Stream
    C++Exception知识整理
    C++String知识整理
  • 原文地址:https://www.cnblogs.com/MarsMercury/p/5155719.html
Copyright © 2011-2022 走看看