当前位置 首页> 科易专栏> > 正文

「从零入门推荐系统」15:推荐系统的效果评估

智能技术 数据技术
数据与智能    2023-04-18    373

作者 | gongyouliu
编辑 | gongyouliu


我们在第5章《推荐系统业务流程与架构》5.1.6节中简单介绍了什么是离线评估、什么是在线评估,本章我们会深入讲解具体的推荐系统评估指标及计算方法。

 

推荐系统是一个偏业务应用的工程算法解决方案。对推荐系统进行评估,是想更好地衡量推荐系统的价值,希望通过数据化的形式反馈可能存在的问题,最终优化推荐系统的效果,带来用户体验的提升,最终为提供推荐服务的产品带来更多的收益。所以推荐系统评估是一个非常重要的过程,是构建任何一个企业级推荐系统不可或缺的组成部分。正是有了推荐系统评估,才能让推荐业务成为一个数据驱动的业务闭环,才可以通过不断迭代推荐系统,让推荐系统产生更大的商业价值。

 

本章我们从推荐系统评估的目的、评估方法的分类、具体的评估方法3个维度来讲解。其中在评估方法中,我们会重点讲解离线评估和在线评估,这两类评估方法是在推荐系统实践中必不可少的部分,所以读者们需要深刻理解和掌握。

 

15.1 推荐评估的目的

推荐系统评估是跟推荐系统的产品定位息息相关的,推荐系统是解决信息高效分发的手段,希望通过推荐物品,更快、更好地满足用户的不确定性需求。当然,满足用户需求的最终目标是通过用户来获取收益(严格来说,对于通过广告来盈利的公司,收益可能是来源于广告公司,但是最终为广告买单的还是用户)。所以,推荐系统评估的最终目的有两个:一个是通过优化产品交互提升用户体验,另一个是通过用户更频繁的交互行为(如购买商品、广告曝光、会员付费等)最终产生收益。
 
上面说的两个目的还比较抽象,不好衡量,评估是需要通过数据指标来体现的,需要量化。只有量化的指标才可以进行对比分析,发现其中的问题,进而优化提升。在讲具体的量化指标之前,下面我们先对评估方法进行分类,不同类型的评估方法对应的评估指标是不一样的,计算逻辑也不同。

 

15.2 推荐系统评估方法的分类

推荐系统本质上就是一个机器学习问题(具体的业务流程可以参看下面图1)。在推荐系统工程实践中,我们需要构建推荐算法模型,并选择合适的(效果好的)的算法模型,将算法模型部署到线上推荐业务中,利用算法模型来预测用户对物品的偏好,通过用户的真实反馈(是否点击、是否购买、是否播放等)来评估算法效果。同时,在必要(不一定必须)的时候,需要跟你的用户沟通,收集用户对推荐系统的真实评价,再基于用户评价来评估推荐系统可能存在的问题,并进一步优化推荐系统。推荐系统评估是对推荐系统的推荐质量的一种度量,只有满足一定评估要求的推荐系统才能产生更好的业务效果。
 
图1:推荐系统业务流程
 
根据上面的分析,推荐系统评估一般可以分为模型训练过程中的离线评估,模型部署到系统中提供真实推荐服务过程中的在线评估,以及基于推荐产品直观感受的主观评估,下面我们分别介绍。
 
  • 离线评估

离线评估是在构建推荐算法模型过程中的评估(参见图1),主要是评估训练好的推荐模型的质量(即模型预测得好不好、准不准,常用的评估指标有准确度、召回率等)。模型在上线服务之前需要评估该模型的准确度,一般是将样本数据划分为训练集和测试集,训练集用于训练模型,而测试集用来评估模型的预测误差(一般还会有验证集,用于调优模型的超参数)。
 
  • 在线评估

在线评估是在模型上线提供推荐服务过程中(参见上面的图1)评估一些真实的用户体验指标、转化指标,比如转化率、购买率、点击率、人均播放时长等。线上评估一般会结合AB测试(本章我们不涉及到AB测试相关的知识点,后面会单独用一章的篇幅来重点讲解推荐系统的AB测试)做不同模型的对比实验,先对新模型放一部分量(用户或者接口访问),如果效果达到期望再逐步拓展到所有用户,避免模型线上效果不好严重影响用户体验和收益性指标等。
 
  • 主观评估

当推荐系统上线到产品后,用户就可以真实的使用推荐系统提供的推荐能力了,在使用过程中体验怎么样,感受怎么样,用户最有发言权。这时, 我们可以通过主观评估的方式来获得用户对推荐系统的真实评价。具体的评估方式可以是用户问卷调查、电话访谈、跟用户直接面对面沟通等,客观地了解用户对推荐产品的反馈和想法。主观评估是很重要的一种评估推荐系统的补充方式,可以用于优化推荐系统的方方面面,包括交互、体验、效果等。本章我们不对主观评估进行深入介绍,感兴趣的读者可以自行思考或者查阅相关材料。
 

15.3 常用评估方法介绍

在上一节中我们介绍了3种主要的评估方法,在本节我们会重点讲解离线评估和在线评估,针对每种评估方法,我们会介绍具体的评估指标及计算公式,方便读者可以更好地了解每个评估指标的价值和意义。
 

15.3.1 离线评估

离线评估是在推荐算法模型开发与选型的过程中对推荐算法做评估,通过评估具体指标来选择合适的推荐算法模型,将选择好的推荐算法模型部署上线为用户提供推荐服务。具体可以评估的指标有:
 

15.3.1.1 准确度指标

准确度评估的主要目的是事先评估出推荐算法模型的好坏(是否精准),为选择合适的模型上线服务提供决策依据。我们期望精准的模型上线后产生好的效果。这个过程评估的是推荐算法是否可以准确预测用户的兴趣偏好。
 
准确度评估是学术界和工业界最重要和最常用的评估指标,可以在模型训练过程中做评估,因此实现简单,可操作性强,方便学术交流与各类竞赛作为评比指标,同时通过评估可以对比不同模型的效果。
 
推荐算法是机器学习的分支,所以准确度评估一般会采用机器学习效果评估一样的策略。一般是将训练数据分为训练集和测试集,用训练集训练模型,用测试集评估模型的预测误差,这个过程可以参见下面的图2。
                     
图2:推荐算法的模型训练与离线评估
 
具体怎么计算推荐算法模型误差(准确度),可以根据推荐算法模型的范式来决定采用不同的评估方法,这里我们主要根据3种不同范式来评估准确度。
 
第1种是将推荐算法看成预测(回归)问题。预测用户对物品的评分(比如0~10分)。第2种是将推荐算法看成是分类问题。可以是二分类,将物品分为喜欢和不喜欢两类;也可以是多分类,每个物品就是一个类,根据用户过去行为预测下一个行为的类别(如YouTube在2016年发表的深度学习推荐论文Deep Neural Networks for YouTube Recommendations就是采用多分类的思路来做的)。第3种是将推荐系统算法看成一个排序学习问题,利用排序学习(Learning to rank)的思路来做推荐。
 
推荐系统的目的是为用户推荐一系列物品,击中用户的兴奋点,让用户“消费”物品。所以,在实际推荐产品中,我们一般都是为用户提供N个候选集,称为TopN推荐,尽可能的召回用户感兴趣的物品。上面这3类推荐算法范式都可以转化为TopN推荐。第1种思路预测出用户对所有没有操作行为的物品的评分,按照评分从高到低排序,前面N个就可以作为TopN推荐(得分可以看成是用户对物品的偏好程度,所以这里降序排列取前N个的做法是合理的)。第2种思路一般会学习出物品属于某个类的概率,根据概率值也可以类似第1种思路来排序形成TopN推荐。第3种思路本身就是学习一个有序列表。
 
下面来详细讲解怎么按照推荐算法的上述3种范式来评估算法的准确度。
 

15.3.1.1.1 推荐算法作为评分预测模型

针对评分预测模型,可以评估的准确度指标主要有:RMSE(均方根误差)、MAE(平均绝对误差)。他们的计算公式分别是:
其中,u 代表用户,i 代表物品,T是所有有过评分的用户。 是用户 u 对物品 i 的真实评分,是推荐算法模型预测的评分。其中RMSE就是Netflix在2006年举办的Netflix Prize大赛的评估指标。常用的矩阵分解推荐算法(及矩阵分解算法的推广FM、FFM等)就是一种评分预测模型。
 

15.3.1.1.2 推荐算法作为分类模型

针对分类模型,评估推荐准确度的主要指标有:准确率(Precision)、召回率(Recall)。
假设给用户 u 推荐的候选集为 (通过算法模型为用户推荐的候选集),用户真正喜欢的物品集是(在测试集上用户真正喜欢的物品),总共可通过模型推荐的用户数为集合U。其中N是推荐的数量。准确率是指为用户推荐的候选集中有多少比例是用户真正感兴趣的(“消费”过物品),召回率是指用户真正感兴趣的物品中有多少比例是推荐系统推荐的。针对用户u,准确率()、召回率()的计算公式分别如下:
 
 
   
一般来说N越大(即推荐的物品越多),召回率越高,精确度越低,当N为所有物品时(即将所有物品都推荐给用户),召回率为1,而精确度接近0(一般推荐系统物品总量很大,而用户喜欢过的量有限,所以根据上面公式,精确度接近0)。
 
对推荐系统来说,当然这两个值都越大越好,最好是两个值都为1,但是实际情况是这两个值就类似量子力学中的测不准原理(你在同一时间无法同时测定粒子的位置和速度),你无法保证两者的值同时都很大,实际构建模型时需要权衡,一般我们可以用两者的调和平均数()来衡量推荐效果,做到两者的均衡。
 
 
上面只计算出了推荐算法对一个用户 u 的准确率、召回率、F1值。整个推荐算法的效果可以采用所有用户这些值的加权平均得到,具体计算公式如下:
 
 
 
 
另外一些常见的评估指标还包括ROC曲线等,关于分类问题更多的评估方法,可以参考周志华的《机器学习》第二章模型评估与选择,这里就不详细介绍了。
 

15.3.1.1.3 推荐算法作为排序学习模型

上面两类评估指标都没有考虑推荐系统在实际做推荐时将物品展示给用户的顺序,不同的排序方式用户的实际操作路径长度不一样。我们当然是希望将用户最可能会“消费”的物品放在用户操作路径最短的地方(一般是最前面)。所以,推荐的物品展示给用户的顺序对用户的决策和点击行为是有很大影响的,那怎么衡量这种不同排序产生的影响呢?这就需要借助排序指标,这类指标我们这里主要介绍MAP(Mean Average Precision),其他指标如NDCG(Normalized Discounted Cumulative Gain)、MRR(Mean Reciprocal Rank)等读者可以自行了解学习,这里不再介绍。
 
MAP的计算公式如下:
 
 
其中,
 
 
所以有,
 
 
其中,代表的是为用户 u 推荐的平均准确率,U是所有提供推荐服务的用户的集合,是推荐给用户 u ,而用户 u 喜欢的物品的数量(比如推荐20个视频给用户 u ,用户看了3个,那么=3);是用户 u 喜欢的第 i 个物品在推荐列表中的排序(比如给用户推荐20个视频,用户喜欢的第2个在这20个视频的推荐列表中排第8位,那么=8)。
 
为了方便读者理解,这里举个搜索排序的例子(MAP主要用于搜索、推荐排序的效果评估中)。假设有两个搜索关键词,关键词1有3个相关网页,关键词2有6个相关网页。某搜索系统对于关键词1检索出3个相关网页(将所有相关的都检索出来了),其在搜索结果中的排序分别为2、3、 6;对于关键词2检索出2个相关网页(6个相关中只检索出了2个),其在搜索列表中的排序分别为4、8。对于关键词1,平均准确率为(1/2+2/3+3/6)/3=0.56。对于关键词2,平均准确率为(1/4+2/8)/2=0.25。则MAP= (0.56+0.24)/2=0.405。
 
至此,关于离线评估的准确度指标已经介绍完了。下面介绍一下其他可以在离线阶段评估的指标。
 

15.3.1.2 覆盖率指标

对于任何推荐范式,覆盖率指标都可以直接计算出来。覆盖率(Coverage)的具体计算公式如下:
 
 
其中U是所有提供推荐服务的用户的集合, 是所有物品的集合,是给用户 u 推荐的物品构成的集合。
 

15.3.1.3 多样性指标

用户的兴趣往往是多样的,并且有些产品面对的用户也不止一个(比如智能电视前可能是一家人看电视),同时人在不同的时间段可能兴趣也不一样(如早上看新闻,晚上看电视剧),个人兴趣也会受心情、天气、节日等多种因素影响。所以我们在给用户做推荐时需要尽量推荐多样的物品,让用户从中找到自己感兴趣的,种类更多样的话,总有一款能够击中用户的兴趣点。
 
在具体推荐系统工程实现中,可以通过对物品聚类(可以用机器学习聚类或者根据标签等规则来分类),在推荐列表中插入不同类别的物品的方式来增加推荐系统推荐结果的多样性。
 

15.3.2 在线评估

在线评估是指推荐模型部署到线上提供真实的推荐服务后的评估。下面我们主要从如下4个维度来展开。在讲解之前说明一下,一般来说某个APP上是有多种推荐产品形态的,比如首页的信息流推荐、详情页的关联推荐等,所以下面的指标可以是针对某个推荐产品的,也可以是针对全体推荐产品的。
 

15.3.2.1 用户体验相关的指标

用户体验相关的指标主要是关于用户使用感受的指标,这里主要涉及到推荐系统部署成服务后针对服务质量的衡量,包括:
 
  • 服务的稳定性(高可用)
推荐系统本身就是一项软件服务,对于推荐系统来说,高可用就是推荐服务是否稳定高效的为用户提供服务。计算机行业的高可用一般是通过故障出现后的影响时长、等级及故障恢复的快慢来衡量一个软件系统是否高可用。如果故障不频繁、故障影响面不大、在很短的时间就恢复正常了就是高可用的系统,否则就不是高可用的系统。很多大型网站,比如淘宝、百度、微信基本达到了99.99%的高可用了,算下来一年大约只有0.88小时不可用。
 
  • 并发能力
并发能力是指推荐系统服务能同时支持多少用户同时访问,能支持的用户越多说明并发能力越强,一般并发能力用QPS\TPS来衡量。
 
  • 响应时长
该指标是指推荐接口可以在用户请求推荐服务时及时提供数据反馈,当然是响应时间越短越好,一般响应时间要控制在200ms之内,超过这个时间人肉眼就可以感受到慢了。
 

15.3.2.2 模型效果相关的指标

这里指的就是上面提到的各种离线评估指标,这些指标在在线阶段都是可以计算的,在线获得的评估结果会更真实、更可信(离线评估的指标可能跟在线的并不一致,比如离线评估准确率很高的,在线评估不一定高),这里就不再赘述了。
 

15.3.2.3 产品价值相关的指标

推荐系统本身就是一个产品,产品价值相关的指标是指那些衡量产品自身属性的指标。下面我们列举几个来说明:
 
  • 人均使用时长
就是人均在推荐系统这个产品上使用的时长(而不是在整个APP上的使用时长),这个使用时长越长,说明用户越依赖推荐系统,推荐系统的重要性越大。对于抖音或者今日头条这样的APP,可以用推荐系统人均播放时长或者人均阅读时长来衡量使用时长(虽然跟使用时长不是严格相等的,因为可能用户一直在刷,没有找到合适的,这时人均播放时长/人均使用时长这个比例就有价值了)。
 
  • 留存率
这里的留存率是指用户在推荐系统这个产品上的留存率,比如1日留存率是指昨天使用推荐系统的用户今天又多少比例的人还在用推荐系统,7日留存率、30日留存率计算类似,这里不赘述。
 
  • DAU
这里DAU是指每日使用推荐系统产品的人数,也可以用这个DAU与整个产品的DAU对比,比值说明推荐系统可以覆盖的用户规模。
 
  • 转化率
转化率是一种漏斗模型,衡量的是从漏斗顶端过滤到底部的比例,一般是根据用户使用链路的不同阶段来设置漏斗。比如用户曝光到进入详情页,从详情页浏览到购买等都是一种漏斗,对应的有曝光浏览转化率、浏览购买转化率。
 

15.3.2.4 商业化相关的指标

所谓商业化相关指标,是指推荐系统为公司收益带来的价值衡量指标,不同的APP可以衡量的收益是不一样的,下面我们从3个行业内主要的商业化维度来说明。
 
  • 客单价\总收益
针对类似京东这样的APP,主要是以商品售卖为主,所以推荐系统带来的客单价\总收益是非常重要的,另外推荐系统带来的收益与整体收益的占比也能说明推荐系统在促进销售上的重要程度。
 
  • 会员售卖收益
比如像爱奇艺这类付费视频网站,通过推荐系统推荐会员节目,然后用户为了看该节目而购买了会员,那么这块收益可以归结为推荐系统带来的。所有推荐系统带来的会员售卖收益就是推荐系统带来的商业价值。
 
  • 广告曝光\广告收益
像爱奇艺视频,在播放过程中会有贴片广告,那么用户在推荐系统中因为观看了推荐的视频带来的广告曝光收益应该归属于推荐系统,这部分收益就是广告曝光收益。类似抖音这种通过信息流广告来获取收益的产品,在推荐信息流中插入的广告带来的收益应该归属于推荐系统的功劳,这部分收益就是推荐系统带来的广告收益。

 

总结

本章我们重点探讨了推荐系统评估相关的话题,我们从评估的目的、评估方法的分类、常用评估方法3个维度来讲解评估相关的知识点。读者需要重点掌握的是离线评估和在线评估。
 
离线评估是模型训练过程中为选择合适的模型上线而进行的评估,目的是筛选模型,这里常用的评估指标有准确度、覆盖率、多样性等,其中召回率、准确率、MAP等是最常用的指标,读者需要好好掌握。在线评估是模型部署到线上后进行的评估,除了常规的准确度指标外,还需要从用户体验、产品价值、商业价值等几个维度来评估推荐系统。商业价值是公司赖以生存的资本,对于企业级推荐系统,能否带来商业价值是特别重要的。本章这里是简单列举了一些常见的商业化指标,读者可以基于具体的业务琢磨一下,看看还可以从哪些维度来衡量商业价值。
 

推荐系统评估是推荐系统量化的过程,只有客观、科学地量化了推荐系统,才能更好地优化推荐系统,才能更好地评估推荐系统真正的商业价值。所以,推荐系统的评估是企业级推荐系统中非常重要的主题,读者需要深刻领会和掌握。
  本文来自微信公众号【数据与智能】,未经许可谢绝二次转载至其他网站,如需转载请联系微信liuq4360。

我要收藏
本文为专栏作者授权科易网发表,版权归原作者所有。文章系作者个人观点,不代表科易网立场,转载请联系原作者。如有任何疑问,请联系ky@1633.com。

成果转化智能顾问

相关资源数据
北理工团队在二维呼吸笼目半导体的光学性质方面取得新进展
这篇文章主要研究了北京理工大学集成电路与电子学院孙家涛教授团队在二维呼吸型笼目材料Ta₃SBr₇的光学性质领域的理论研究。该材料具有特殊的原子排布构型,能产生多种新奇量子物态。研究基于第一性原理计算与多体微扰理论,发现该材料在光电器件领域具有潜在应用。研究还揭示了该材料在谷电子学与各向异性光电子器件中的应用前景。研究得到了科技部重点研发计划、国家自然科学基金等项目的资金支持。文章还附有相关的图像和链接。
发表时间: 2025-05-16 相关机构: 北京理工大学
我院科研团队在土壤水分产品优化和干旱监测方面取得系列研究成果
这篇文章主要研究了我国近年来受全球气候变化和人类活动影响的极端干旱事件频发问题。针对此现象,研究团队聚焦遥感土壤水分产品的精度提升、缺测重建及干旱识别等核心问题,进行了多源数据融合、模型优化与方法创新等系列研究。通过努力,取得了一系列创新性成果,这些成果对于提高我国水文水资源领域的科技水平,加强自然灾害防控和提升气候适应能力具有重要意义。
发表时间: 2025-05-15 相关机构: 河海大学
【院长谈】潘光:1→0反向基础研究驱动新概念水下航行器原始创新及海洋国防教育启示
这篇文章主要研究了新概念水下航行器的原始创新对反向基础研究的迫切需求。文章首先介绍了军事和民用领域对新概念水下航行器的需求,指出要从源头创新入手,开展反向基础研究。接着,文章阐述了当前科研面临的重要难题和如何开展反向基础研究,并强调了反向基础研究对新概念水下航行器设计的重要性。最后,文章提出了反向基础研究对海洋国防教育体系的重要启示,包括与时俱进的科研基础技能培养、导引面向重大需求的前沿理论工作和跨学科交叉融合等方面。
发表时间: 2025-05-15 相关机构: 西北工业大学
服务精选
服务案例
官方社群