当前位置: 首页 > 科技观察

如何评价推荐系统的结果质量

时间:2023-03-17 17:59:14 科技观察

推荐系统是互联网发展以来最普遍、最重要的技术之一。现在各种APP、网站、小程序等提供内容的地方,背后都有推荐系统。开发一个真正好的推荐系统非常有价值,但也非常困难。大观数据是国内推荐系统的主要第三方供应商,一直在探索中取得进展。在试图开发一个强大的推荐系统来很好地服务客户的时候,我一直在思考推荐系统的评价方法。众所周知,业内有一句话:“没有评价,就没有进步”,意思是如果没有科学的方法来评价推荐系统的有效性,就没有优化和改进的方向,并且创建一个优秀的推荐系统是不可能的。作者几年前写了一篇文章《怎样量化评价搜索引擎的结果质量》,发表在InfoQ上(另见知乎https://zhuanlan.zhihu.com/p/30910760)。与搜索引擎相比,移动互联网时代的推荐系统应用范围更广,评价指标也更复杂。评价指标就像一把尺子,指引着我们产品优化的方向。如何科学合理地评价推荐系统的结果质量?从各种文献和网络文章中可以看到几十种评价公式,看得人眼花缭乱。这些指标各有什么优缺点,应该如何选择?本文从我们的实践经验出发,对此进行一些深入的分析,希望对大家有所帮助。1.针对不同的推荐场景,要因地制宜选择合适的评价方式。推荐场景在制定评价指标时最为关键。没有推荐场景,谈评价指标就如鱼得水。所谓“推荐场景”,与推荐内容的类型、呈现方式、推荐满足的用户需求有很大关系,这种关系有时很微妙。比如,他们都推荐视频,但是在推荐电影(一般是长视频)和推荐短视频(一般只有几秒长)时,背后的用户需求是完全不同的。前者显示电影海报、片名、收视率、主要演员和故事大纲。用户观看这些内容的目的是尽快挑选出适合观看的电影。因此,推荐系统强调的是如何更快、更准确地给出高质量的结果。后者的短视频推荐(比如常见的抖音快手等)用户在浏览过程中目的性不是很强,而且因为时间短,决策成本低,所以用户浏览的目的性是消磨时间,而推荐系统的目的就是让用户在这个app上停留的时间足够长,粘性足够大。对于之前的场景,用户在推荐页面停留的时间越长(注意不是播放页面),满意度就会越低。没有人愿意花钱在一堆电影名+海报的选择页上。时间太多,如果挑了十几分钟都找不到接下来值得看的电影,用户肯定会对推荐系统产生不好的印象。但对于后者来说,推荐过程本身就是在不停地看短视频。为了满足用户打发时间的需求,多样性和新颖性更为重要。从评价方式来看,在推荐电影等长视频时,更看重的是上映时间足够短,满足用户持续观看,用户认为是“高分好片”的电影观看后不止一部电影。几个小时的观看时间是值得的,这是最理想的指标。对于后者来说,粘着用户、增加浏览时长、照顾?生产者在平台上的曝光度和健康生态是推荐系统的关键考核因素。通过这个简单的例子,我们大观想向读者说明的是,我们必须从产品的角度深刻理解推荐的作用,才能更好地选择评价方式,为广大推荐者找到合适的应用评价公式。土地。2.影响推荐系统评价方法的几类因素和场景的细微差别,决定了评价方法应有所不同。俗话说“什么场合穿什么样的衣服”,不管是西装还是运动装,都有适合的场合。根据我们对场合细微差别的理解,有以下几个因素在起作用:因素一:推荐的展示槽位是固定数量,还是在不断扩大的信息流中推荐固定数量的槽位,哪个更接近到搜索引擎或有针对性的广告的结果。因为展示的数量有限,可能会有顺序(类似于搜索结果从上到下排列),所以对推荐结果的准确率要求很高。这种场景称为Top-N推荐。这时候推荐结果的前N个结果的CTR(Click-Through-Rate)就是一个常用的指标(点击/曝光)。如果推荐结果有明显的顺序(比如在app上从上到下显示结果),那么往往可以考虑位置衰减因子,比如NDCG(NormalizedDiscountedCumulatieGain)、MRR(MeanReciprocalRank)),或MAP(meanaverageprecision)被整合到位置因子中)。右边的红框是常见的Top-N推荐结果。还有一种常见的展示推荐/广告,还有一种展示推荐,和经典的效果广告很像。唯一不同的是充电方式,如上图所示。在这种情况下,推荐系统可以借鉴广告系统常用的评价方法,如AUC、ROC等指标。但是,如果是移动端app上的普通feed流推荐,因为推荐展示槽位非常多(甚至是无穷大),而且用户可以轻松滑动屏幕,此时位置因素就不是特别重要了。Rate(点击/曝光)衡量推荐质量,PV点击(点击/总PV),UV点击(点击/总UV)也是Feed流中常用的方法。这时候首屏第一个结果没有Top-N推荐那么重要,所以评价指标也不一样。因素2:推荐背后的商业模式是很多基于电子商务交易或广告收入的推荐系统被用在电子商务平台上,以更好地促进买卖双方之间的交易,例如各大电子商务网站、外卖和生活APP等。推荐的核心目的是为了促成交易(例如,用户完成产品购买,或者用户点餐看电影,或者用户开始阅读小说);这时,推荐带来的交易量占总交易量的比例,或者说总交易额与GMV的比例,就是最直接的评价指标。因为从推荐来激发购物者的兴趣,到用户完成订单,有很长的操作链,所以也可以把动作分解,更好地衡量每个环节的效果。例如,添加购物车率(通过推荐引导添加的购物车数量/推荐曝光总数)、商品详情页面阅读率(通过推荐引导进入商品详情页面的人数/推荐总数)exposures)等。另一方面,一些平台依赖广告点击和曝光作为主要收入来源,比如常见的新闻资讯app,或者短视频和免费阅读(漫画,小说)app,广告是主要收入来源,那么预计推荐系统可以更好地延长用户在APP上的停留时间,增加用户点击次数等,这意味着平台可以获得更多的广告收入,因为越多用户活跃,无论是按CPM还是CPC收费的广告形式,浏览量越多,平均收入越高。在这种情况下,推荐系统努力满足的用户需求是消磨时间或“闲逛”的场景。此时用户的平均停留时长和推荐引导下的成功阅读数更符合需求。因素3:推荐评估是离线进行还是在线实时进行。离线评估和在线评估因数据准备条件不同而不同,适用的方法也不同。离线数据收集通常很难做到完全详尽全面(比如很难完整记录大量用户的隐性反馈数据,因为性能成本太高),离线评估方法会有所不同。典型的线下测评有著名的NetflixPrize竞赛、KDDCup,以及Kaggle上的一些大数据算法竞赛。这些比赛有固定的数据集,使用静态的评估方法。MSE(MeanAbsoluteError)均值绝对误差,RMSE(RootMeanSquaredError)均方根误差,或R-Squared(R平方):比如在电影和电视剧的推荐中,User-Item-Rating矩阵(User-Item-Rating)通常用于离线评估。在学术界尤为常见。由于高校和学术界难以接触到真实的线上环境,采用线下评价来评价算法的好坏更为方便,也算是学术界的无奈。但是我们都知道,用户真正给产品打分的显式数据(ExplicitFeedbacks)是非常稀缺的。有时候我们不得不拿一些评分映射关系,比如分享了多少分,映射了多少赞等等,来近似生成评价矩阵,计算出上面提到的这些静态指标。各种推荐效果指标在线实时计算和在线评估的优势在于可以随时进行AB测试拆分测试,效果一目了然。工程师们非常喜欢它。困难有二。首先是线上环境极其复杂,会受到很多其他因素的干扰,可能无法真正反映推荐算法的好坏。例如,一些指标容易受到攻击和作弊。其他业务活动也会干扰这种效果。尤其是提取对比的流量比例太小时,数据抖动非常大,AB测试的结果可能不能真正反映实际效果。第二个难点是评估数据往往反映的是最终的结果,而不是中间某个模块的直接好坏。如果要用AB测试迁移到更深层次的内部算法模块,往往需要在工程结构上做大量的开发,传递内部参数。例如,虽然通过在线评估很容易计算出推荐的排名策略(RankingStrategy)的优劣,但通过在线评估来分析之前的召回策略(RecallStrategy)是否更有效则困难得多。前向传参需要在大数据工程架构上下功夫,这也是我们大观一直致力于的。还有一个问题是一线算法工程师经常遇到的,就是离线评估的结果和在线测试的结果完全不一样。线下测得效果最好的算法,上线后可能会波澜不惊地消失。这也恰恰说明了正确评估方法的重要性。因素4:推荐系统目前的目标是最大化运营指标,或者考虑生态平衡和来源多样性。如果推荐的内容来自于平台本身,那么往往只需要关注平台最大最优的关键运营指标,比如实现更多的交易可以提高GMV,或者读者的留存率更高,或者可以提高整个平台的用户活跃度。但还有另一种复杂的情况。一些平台要推荐的内容来自各种UGC或PGC,这些内容提供者依靠平台的推荐进行内容曝光和盈利。在这种情况下,平台从自身生态平衡和系统长期健康的角度考虑,需要考虑放弃一些推荐的曝光机会给长尾UGC或PGC,避免“客big”是被少数顶级内容频道绑架造成的。解决“买店”问题,扶持更多中小内容创作者,才能让生态更健康、更繁荣。毕竟一棵草在大树下存活下来,一定不是平台愿意看到的现象。这时,推荐系统就是最重要的接力棒,其评价指标必须包括内容来源覆盖率(SourceCoverage)、多样性(Novelty)等指标。经济学中的基尼系数也可以作为评价生态健康程度的辅助指标。推荐系统的初衷是为了消除马太效应,让各种物品可以展示给特定的人群。但研究表明,主流的推荐算法(如协同过滤)都存在马太效应。基尼系数用于评价推荐系统马太效应的强弱。设Gini1为根据用户初始行为计算出的物品流行度基尼系数,Gini2为根据推荐列表计算出的物品流行度基尼系数,若Gini2>Gini1,则说明推荐算法具有马太效应。因素5:推荐结果应迎合人性或引导人性。推荐系统的本质是通过大规模的数据挖掘,让计算机系统“揣摩”出人性。但从稍微深一点的意义上来说,人性是最复杂、最矛盾的东西。既有理性的一面,也有感性的一面。如果推荐系统一味迎合人性,就会显得“媚俗”,最终会被用户唾弃。比如人性有好奇和贪婪的一面,人性通常是急躁的——这也证明了为什么几秒钟的越来越受欢迎,为什么连续剧有“倍速”功能,以及惊悚片的标题推荐时,短文总是比内容深刻的长文好看。人是群居动物,总是在乎同龄人在看什么。大量基于协同过滤思想的算法满足了相关需求。如果你充分迎合,你会发现大量人群喜欢看低俗、快餐的内容。如果不干预,色情、赌博、头条党、危言耸听、新奇刺激的内容,或者廉价劣质的产品往往会充斥在推荐结果中。但是,引导人性,提倡更高质量的内容,是推荐系统的职责。这时候的评价指标不能只关注点击率、转化率等量化指标,因为如果只用这些指标来优化算法,最后的结果一定是劣质内容会填满版面,降低整个平台的风格。在对推荐系统进行评价时,常常会从人的推测的角度去探究往往含糊不清的“意外发现”(Serendipity)和“新颖性”(Novelty)等。这些指标计算的最大难点在于评价指标具有主观性,难以直接使用上网行为计算。一般只能通过事后问卷调查或用户评价、评分、转发等行为间接支持。或者用7天或N天留存率来判断用户对推荐结果的整体满意度。3、实战中常用的推荐评价指标设置方法方法一:针对不同的细分人群设置不同的评价指标推荐算法会根据用户的整体评价,得出符合“大多数人口味”的推荐结果,但是这会产生偏差源于千人千面个性化的初衷。我们期望社区中的不同人群可以通过推荐形成满意的体验。一小部分人的偏好往往淹没在整体数据中。我们一线算法工程师经常会遇到,一个新的推荐算法上线后,整体指标明显好很多,但是你的领导/客户可能会来投诉。说推给他的东西感觉比以前好多了。个人和群体往往有相似的矛盾。一个推荐算法可能对整体有好处,但不一定对另一群人有好处。理想的方法是对人群进行细分。比如电商网站既有对价格敏感的大众用户,也有追求品质的高端用户。在计算指标时,如果分成不同的人群来计算,更能体现推荐效果后的具体差异。比如我们期望新用户能够快速完成交易并落户,那么针对这群人的推荐指标,下单率和次日留存或者7日留存就非常重要。对于高端人群来说就不一样了。需要更多地关注个体差异和小众口味。方法二:根据不同的推荐位置制定不同的指标在同一个推荐的APP或产品中,需要针对不同的位置进行推荐,从而设置推荐评价指标。针对上述不同地点、不同场景,推荐指标的制定规则可以不同。例如计算首页首屏banner推荐(Top-N推荐)、信息流推送推荐、内容详情页下方相关推荐(常用于precision-recall或F1-score).还有没有搜索结果的页面、购物车页面、退出确认页面等,需要在不同的位置因地制宜地选择合适的评价指标。方法三:结合几个不同的评价指标,得到整体数据指标每个指标都有局限性。推荐系统需要平衡很多因素(业务、用户体验、技术实现、资金、人力资源等),如何平衡是一种哲学。通常,可以将几个因素的加权和作为综合指标。指标的选择与产品的主要定位有关。比如特别强调内容快、内容新鲜的APP,那么结果的时效性就应该占更大的比重。而对于一款讲究格调和品位的APP来说,单篇文章的阅读时间就更加宝贵了。另一方面,强调社区活跃度、用户对内容的分享率、互动率等的平台,应该在整体指标上更加突出。在产品运行的不同阶段,选择不同倾向的指标也应有所不同。在产品上线初期,可能需要兼顾用户体验,大力拓展新用户。当用户量足够大时,可能会着眼于商业变现(推荐付费视频、在列表中插入更多广告等),通过推荐尽快想方设法让产品盈利。如果是电商推荐,仔细考虑用户购买前后的差异,以及标品和非标品的区别。在购买之前,往往可以推荐更多类似的产品,更好地让用户进行比较和选择。当购买动作完成后,尤其是耐用消费品,继续推荐会适得其反。灵活选择各种推荐算法和指标4.推荐指标总结推荐系统的本质是让每一个消费者满意。这些指标只是从不同角度衡量“满意”的程度。本总结下常见的指标类型包括以下几种:场景转化指标:曝光点击率、PV点击率、UV点击率、UV转化率、购物车率、分享率、收藏率、购买率、点击次数人均、CTR、AUC等推荐内容质量指标:结果多样性(Diversity)、结果新颖性(Novelty)、结果及时性(timeliness)、结果信任度(Confidence&Trust)等内容消费者满意度指标:留存率、停留时间、播放完成率、平均阅读时长、交易量、沉浸度(Engagement)、惊喜感(Serendipity)等。在同一个推荐场景下,指标不宜过多,指标过多不利于最终的优化决策.掌握每个场景所起的核心作用的几个推荐指标就足够了。但是不能只有一个指标,太单一的指标会导致推荐算法的优化误入歧途。迷信的是,单一指标的表现并不代表产品好,事与愿违。过度优化后的指标虽然上去了,但往往会降低用户体验。很多推荐评价指标也很脆弱,不堪一击。如果一些推荐算法严重依赖各种反馈指标来自动优化结果,往往会被恶意利用。因此,要灵活运用推荐评价指标,不要完全迷信技术指标。因为指标的背后是用户的人性。在商业利益和人性之间找到最佳平衡点,是推荐系统开发和推荐效果评价的最高境界。作者简介:陈允文:大观数据创始人&CEO,博士。复旦大学计算机专业博士,国家“万人计划”专家,上海市第九届青年科技英才,复旦大学、上海财经大学校外研究生导师。在人工智能领域有着丰富的研究成果。在IEEETransactions、SIGKDD等国际顶级学术期刊和会议上发表高水平科研论文数十篇。在ACMKDDCUP、CIKM、EMIHackathon等世界顶级数据挖掘大赛中获得一、二等奖。曾任盛大文学首席数据官、腾讯文学高级总监、百度核心技术研发工程师。在机器学习、自然语言处理、搜索推荐等领域拥有丰富的研究和工程经验。【本文为专栏作者“大观数据”原创稿件,如需转载可通过专栏取得联系】点此查看该作者更多好文