查看原文
其他

【RS】推荐系统的评估

机智的叉烧 CS的陋室 2022-08-08

收费音乐,不知道大家能不能听得到额T T

【RS】

本栏目是结合我最近上的七月在线的课、自己自学、以及一些个人的经验推出的专栏,从推荐系统的基础到一些比较好的case,我都会总结发布,当然,按照我往期的风格,更加倾向于去讨论一些网上其实讲得不够的东西,非常推荐大家能多看看并且讨论,欢迎大家给出宝贵意见,觉得不错请点击推文最后的好看,感谢各位的支持。

原来的【NLP.TM】会保留,随着自己的学习进度择快更新!

往期回顾:

上期提到,推荐系统建立和核心利益是从平台角度建立的,所为平台,就是建立多方联系,借助多放在平台上的流量创造收益,因此,在考虑平台的本身利益的基础上,需要从用户出发,考虑用户的综合需求,使之得到更好的体验,从而体现为用户的留存和转化,达到共赢。而在算法的角度,肯定就是考虑多方的利益,对于一般地推荐系统,例如今日头条,那就是内容生产者、平台和读者三方,因此考虑评估指标的时候,就要从这三个方面去入手,本文就一些个人的学习以及个人经验,总结一下评估指标的建立思路以及在推荐系统中的常用指标,供大家参考,欢迎提出宝贵意见。

懒人目录

  • 个人经验

  • 评估方向

  • 评估指标

  • 参考文献

个人经验

我个人一般喜欢把评估指标分为两种,一种是性能指标,一种是业务指标。性能指标很简单,就是从模型角度去考虑的指标,precision、recall、F1等,就是典型的性能指标,这些指标最突出的特点就是抽象,不会随着问题背景的变化而变化,例如这里,无论是做垃圾邮件分类,还是做点击率预估,其实都是分类问题,那F1,AUC之类的指标都还是能用;业务指标直接面对问题面向问题本身,需要根据问题背景和核心目标而改变,例如做淘宝商品的推荐可能要考虑用户的下单取消率,做广告的要考虑商家广告的覆盖率等等,相比比较常见的性能指标,业务指标的设计和检验将会更加复杂,然而在现实应用中,业务指标的重要性及其实际意义要比性能指标要高和大很多。

当然的,很多时候这两个东西很多时候很难分开,但是非常建议大家分开去思考,分得越细,自己越不容易漏掉,在设计和监控的时候不会因为实验做完了,少收集数据,少埋点导致实验失败或者要延长时间之类的,因为这样的损失还是不小的,哪怕是AB,实验组也要承担不小的风险,在大部分业务里,因为竞争的激烈,有些客人一旦走了就很难再回头了。

另外是需要思考不同指标、或者评价目标的主次关系,推荐系统整体是一个多目标的问题,但是在迭代的时候很可能只是看其中的一个或者是几个指标,这些是主要指标,要求进行优化的,然后会有次要指标,这些指标往往是可能要牺牲的指标,很多时候进行优化会付出一定的代价,但是我们希望代价能尽可能少,而衡量这个代价就需要一些次要指标去检测,大部分人时候,次要指标主要可能是两种,一种是整个推荐系统的核心指标,例如GMV,用户留存,转化率等,另一种是可能成为跷跷板另一侧的指标,例如这次目标要优化商家的覆盖率,这时候就要检测用户的停留时间、转化率等问题。

评估方向

系统在古希腊文中是指“部分组成的整体”,推荐系统能称为系统,评价一个系统好,需要衡量他的各个部分以及各个部分的合作情况是否能够满足需求,在衡量的时候就需要考虑下面这些内容(包括但不限于,欢迎补充)。

准确性

准确性是一个非常熟悉的问题了,简单地说就是看推荐的对不对,从CTR(点击率)预估这个小问题来看,就是推荐的内容最后用户到底点没点,那么这个事情其实就已经抽象成很简单的分类问题了,那么常见的不外乎就是precision、recall、F1、AUC,当然的,由于很多时候要保证这个率要尽可能地接近实际结果——即0和1,所以还会考察RMSE和MAE(甚至是重点考虑)。

满意度

用户角度,对推荐内容的满意程度。这是一个非常笼统且不具有很强的个性化的监控指标,单纯看用户满不满意,而不同用户偏好可能有区别,有的人可能倾向于看特定的东西,有的人则喜欢探索新的内容,这个指标一般是通过线上的用户评价以及线下调查得到。

覆盖度

生产者角度,希望自己的内容能在平台更多的出现,对单个生产者而言,就有覆盖率coverage;而对于所有生产者,平台希望的是大家出现的能尽可能平均,消除马太效应(强者更强,弱者更弱),对应的就应该是基尼指数、信息熵,当然的,可以直接看分层流量占比。

多样性

用户角度,首先可以这么理解,所谓的多样性,其实是不同用户之间的推荐的内容应该尽可能不同,这个可以用用户推荐内容的不同来体现,一般用汉明距离来体现;而另一个角度,从用户内的角度,考虑为用户推荐的商品的差异性即可。

新颖性

用户角度,能让用户看到一些平时看不到或者是不熟悉的东西,因此可以理解为越是不流行的商品对用户而言越新颖,此时考虑推荐的商品的平均流行度即可。

惊喜度

用户角度,新颖的不见得是好的,如果又新又能另用户喜欢,那就是惊喜了。

信任度

用户角度,用户对推荐内容的信任程度,例如魏泽西事件令百度的相关推荐内容信任度下降,用户并不信任这些内容。

实时性

用户角度,实时性的理解有很多,响应速度,但是在推荐系统里面,更多的是对新产品、新用户的识别,如何在一个已经训练好的模型中加入这些新的元素,例如微博热门能迅速识别并且能够放到推荐的内容中。

鲁棒性

系统本身的角度出发,应对外界的干扰能力。在推荐系统中,会遇到各种影响推荐结果的事件,常见的就是哈利波特效应,然后还有一些攻击或者异常事件,例如爬虫(爬虫可能会影响一些内容的流行度)等攻击行为。

其他

另外还会有一些商业目标,然后还有一些诸如用户留存、用户转化等的内容需要思考。

常见指标

简单说几个比较常见的,参考了很多博客,参考文献中会有详细的解释,这里只是列举和简单介绍(嗯。公式比较多偷个懒哈哈哈),理解含义并懂得分析比只懂得公式本身重要。

  • 精确率、召回率、F1、AUC:常见的分类指标,大家都懂得。在衡量分类模型时,衡量的是预测结果和实际结果的差距,在推荐系统中,考虑的是用户的相关item集和推荐产品集之间的差距,此时精确率就是衡量推荐产品中是相关的比例,召回率就是相关产品被推荐的比例。

  • RMSE、MAE:常见分类指标,可以用在对用户打分的预估中,例如豆瓣打分。

  • Hit Ratio(HR):LTR(learning to rank)中使用的指标,是指推荐的前N个items中,能够命中用户实际偏好的比例。

  • Mean Average Precision(MAP):同样是LTR中使用的指标,所有用户的AP(Average Precision),可以理解为对顺序敏感的recall。

  • Normalized Discounted Cummulative Gain(NDCG):同样是LTR中使用的指标,表示的是累计收益,这里的收益主要考虑的使用户和item之间的关系,以及item本身在推荐列表中的位置,按照用户的角度,更相关的item应该排在更前,此时NDCG会更大。

  • Mean Reciprocal Rank (MRR):要求每个用户的第一个相关item尽可能排在前面。

  • ILS:衡量推荐多样性的指标,推荐内容两两的差距尽可能大,多样性高。

  • Hamming distance:汉明距离,来自信息论的概念,衡量两个用户推荐列表的差异,该值越大越说明用户之间的推荐结果越不相同,差异性越大。

参考文献:

  • 部分内容来自【七月在线】的推荐系统实战课程,感谢老师和助教啦!

  • 项亮《推荐系统实践》

  • 【推荐系统】评估指标总结: https://www.cnblogs.com/wzyj/p/8976185.html

  • 推荐系统遇上深度学习(十六)--详解推荐系统中的常用评测指标:公众号-小小挖掘机

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存