算法工程师修仙之路:推荐系统实践(二)

第一章 好的推荐系统

推荐系统评测


推荐系统实验方法

  • 在推荐系统中,主要有三种评测推荐效果的实验方法,即离线实验(offline experiment)、用户调查(user study)和在线实验(online experiment)。

  • 离线实验

    • 离线实验的方法一般由如下几个步骤构成:
      • 通过日志系统获得用户行为数据,并按照一定格式生成一个标准的数据集;
      • 将数据集按照一定的规则分成训练集和测试集;
      • 在训练集上训练用户兴趣模型,在测试集上进行预测;
      • 通过事先定义的离线指标评测算法在测试集上的预测结果。
    • 推荐系统的离线实验都是在数据集上完成的,也就是说它不需要一个实际的系统来供它实验,而只要有一个从实际系统日志中提取的数据集即可。
    • 这种实验方法的好处是不需要真实用户参与,可以直接快速地计算出来,从而方便、快速地测试大量不同的算法。
    • 它的主要缺点是无法获得很多商业上关注的指标,如点击率、转化率等,而找到和商业指标非常相关的离线指标也是很困难的事情。
    • 离线实验的优缺点
      • 优点
        • 不需要有对实际系统的控制权;
        • 不需要用户参与实验;
        • 速度快,可以测试大量算法。
      • 缺点
        • 无法计算商业上关心的指标;
        • 离线实验的指标和商业指标存在差距。
  • 用户调查

    • 离线实验的指标和实际的商业指标存在差距,比如预测准确率和用户满意度之间就存在很大差别,高预测准确率不等于高用户满意度。
    • 如果要准确评测一个算法,需要相对比较真实的环境。
    • 最好的方法就是将算法直接上线测试,但在对算法会不会降低用户满意度不太有把握的情况下,上线测试具有较高的风险,所以在上线测试前一般需要做一次称为用户调查的测试。
    • 用户调查需要有一些真实用户,让他们在需要测试的推荐系统上完成一些任务。在他们完成任务时,我们需要观察和记录他们的行为,并让他们回答一些问题。最后,我们需要通过分析他们的行为和答案了解测试系统的性能。
    • 用户调查的优缺点
      • 优点是可以获得很多体现用户主观感受的指标,相对在线实验风险很低,出现错误后很容易弥补。
      • 缺点是招募测试用户代价较大,很难组织大规模的测试用户,因此会使测试结果的统计意义不足。此外,在很多时候设计双盲实验非常困难,而且用户在测试环境下的行为和真实环境下的行为可能有所不同,因而在测试环境下收集的测试指标可能在真实环境下无法重现。
  • 在线实验

    • 在完成离线实验和必要的用户调查后,可以将推荐系统上线做AB测试,将它和旧的算法进行比较。
    • AB 测试是一种很常用的在线评测算法的实验方法。它通过一定的规则将用户随机分成几组,并对不同组的用户采用不同的算法,然后通过统计不同组用户的各种不同的评测指标比较不同算法,比如可以统计不同组用户的点击率,通过点击率比较不同算法的性能。
    • AB 测试的优缺点
      • AB 测试的优点是可以公平获得不同算法实际在线时的性能指标,包括商业上关注的指标。
      • AB 测试的缺点主要是周期比较长,必须进行长期的实验才能得到可靠的结果。
        • 一般不会用 AB 测试测试所有的算法,而只是用它测试那些在离线实验和用户调查中表现很好的算法。
      • 另一个缺点是一个大型网站的 AB 测试系统的设计也是一项复杂的工程。
        • 一个大型网站的架构分前端和后端,从前端展示给用户的界面到最后端的算法,中间往往经过了很多层,这些层往往由不同的团队控制,而且都有可能做 AB 测试。
        • 如果为不同的层分别设计 AB 测试系统,那么不同的 AB 测试之间往往会互相干扰。
        • 因此,切分流量是 AB 测试中的关键,不同的层以及控制这些层的团队需要从一个统一的地方获得自己 AB 测试的流量,而不同层之间的流量应该是正交的。
    • AB 测试系统
      在这里插入图片描述
      • 用户进入网站后,流量分配系统决定用户是否需要被进行AB测试,如果需要的话,流量分配系统会给用户打上在测试中属于什么分组的标签。
      • 然后用户浏览网页,而用户在浏览网页时的行为都会被通过日志系统发回后台的日志数据库。
      • 此时,如果用户有测试分组的标签,那么该标签也会被发回后台数据库。
      • 在后台,实验人员的工作首先是配置流量分配系统,决定满足什么条件的用户参加什么样的测试。
      • 其次,实验人员需要统计日志数据库中的数据,通过评测系统生成不同分组用户的实验报告,并比较和评测实验结果。
  • 一般来说,一个新的推荐算法最终上线,需要完成上面所说的三个实验。

    • 首先,需要通过离线实验证明它在很多离线指标上优于现有的算法。
    • 然后,需要通过用户调查确定它的用户满意度不低于现有的算法。
    • 最后,通过在线的AB测试确定它在我们关心的指标上优于现有的算法。

评测指标

  • 用户满意度

    • 用户作为推荐系统的重要参与者,其满意度是评测推荐系统的最重要指标。但是,用户满意度没有办法离线计算,只能通过用户调查或者在线实验获得。
    • 用户对推荐系统的满意度分为不同的层次。
    • 用户调查获得用户满意度主要是通过调查问卷的形式。
      • 这个调查问卷不是简单地询问用户对结果是否满意,而是从不同的侧面询问用户对结果的不同感受。
      • 比如,如果仅仅问用户是否满意,用户可能心里认为大体满意,但是对某个方面还有点不满,因而可能很难回答这个问题。
      • 因此在设计问卷时需要考虑到用户各方面的感受,这样用户才能针对问题给出自己准确的回答。
    • 在在线系统中,用户满意度主要通过一些对用户行为的统计得到。更一般的情况下,我们可以用点击率、用户停留时间和转化率等指标度量用户的满意度。
  • 预测准确度

    • 预测准确度度量一个推荐系统或者推荐算法预测用户行为的能力。

    • 这个指标是最重要的推荐系统离线评测指标,从推荐系统诞生的那一天起,几乎99%与推荐相关的论文都在讨论这个指标。这主要是因为该指标可以通过离线实验计算,方便了很多学术界的研究人员研究推荐算法。

    • 在计算该指标时需要有一个离线的数据集,该数据集包含用户的历史行为记录。然后,将该数据集通过时间分成训练集和测试集。最后,通过在训练集上建立用户的行为和兴趣模型预测用户在测试集上的行为,并计算预测行为和测试集上实际行为的重合度作为预测准确度。

    • 评分预测

      • 很多提供推荐服务的网站都有一个让用户给物品打分的功能。

      • 那么,如果知道了用户对物品的历史评分,就可以从中习得用户的兴趣模型,并预测该用户在将来看到一个他没有评过分的物品时,会给这个物品评多少分。

      • 预测用户对物品评分的行为称为评分预测。

      • 评分预测的预测准确度一般通过均方根误差(RMSE)和平均绝对误差(MAE)计算。

        • 对于测试集中的一个用户 u u u 和物品 i i i,令 r u i r_{ui} rui 是用户 u u u 对物品 i i i 的实际评分,而 r ^ u i \hat r_{ui} r^ui是推荐算法给出的预测评分,那么RMSE的定义为: R M S E = ∑ u , i ∈ T ( r u i − r ^ u i ) 2 ∣ T ∣ RMSE=\frac{\sqrt{\sum_{u,i\in T}(r_{ui}-\hat r_{ui})^2}}{\lvert T \rvert} RMSE=Tu,iT(ruir^ui)2
        • MAE 采用绝对值计算预测误差,它的定义为: M A E = ∑ u , i ∈ T ∣ r u i − r ^ u
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值