现如今,推荐系统几乎无处不在。
推荐系统火爆的背后,是信息过载的现状下,人们需要通过算法,来帮助自己找到恰当的内容。
每个人的兴趣和需求不同,每个内容的特点也各不相同。如何在内容和用户之间,根据不同的场景环境做出恰当的匹配,也就是推荐系统的核心任务。
举个简单的例子,你平时用美团点餐,它推荐的可能都是你常吃的附近美食,而如果你去了一个新的旅游地,它会给你推荐当地的热门特色餐饮。
精准识别并满足用户不同需求的能力,构成了推荐系统的能力壁垒。
那么,我们该如何量化评估这种差异呢?
推荐得好不好,大家最容易想到的指标,就是点击率。
如果我推荐的内容,就是你满意的,你肯定会点击使用。理论上来说,完美的推荐系统,似乎应该做到100%的点击率。
以资讯产品举例,你每次刷新,刷出来的10条内容你都很喜欢,全都点开看了,这说明我们的推荐非常准。
但这样会带来明显的问题,因为我们追求高点击率,所以会减少冒险尝试,任何不确定的内容,我们都不敢推给用户。结果就是我们只能把用户曾经点过的品类,反复推给他,形成信息茧房,造成用户审美疲劳,然后离开。
这样,尽管我们的点击率上去了,用户留存率却下降了,商业收入也自然而然下降了。
此外,如果我们只关注点击率,就很容易忽略点击质量。举个例子,推荐系统追求点击率的结果,自然就是推荐更多的标题党内容,造成用户点击率很高,阅读时长却非常短。用户被忽悠了两三次以后,很可能愤而离开。
同样的,如果我们只追求阅读时长,可能会推出来大量的长时视频内容,减少短内容的曝光机会。
甚至在产品商业化阶段,我们有时候为了提升广告收益,还愿意牺牲一点点击率、阅读时长等用户指标...
显然,单一的衡量标准,无法确保推荐系统满足我们的需要。
推荐系统通常服务于某个具体业务,业务在不同的时间阶段、场景、用户群体下,都有不同的目标,需要灵活考虑。
下面以资讯类APP举例说明:
考虑到各种不同的诉求,我们的评估方式也要灵活变化。
对不同的场景和用户模型,设定单独的衡量标准。对不同的业务指标,拆解出推荐系统的上线与评估标准。
所谓拆解,其实就是用高频变化的指标,去近似代表我们追求的长期业务指标。
举个例子,在资讯类APP发展早期,我们希望提升日活用户数,提升用户的使用时长。但是只看这些结果指标,并不能指导我们改进业务。
因此,我们可以把这些指标拆解成一些日常容易衡量评估的指标。比如日活用户数等于新增*留存,新增不是推荐系统直接影响的,这里暂不考虑。而留存取决于用户对我们产品的满意度,而满意度又近似等于人均PV(点击)、CTR(点击率)、阅读时长、播放完成率、评论、分享、收藏、点赞等等指标。
由此,我们把推荐系统的评价指标,就拆成了以下这些:
具体在日常工作中,我们每次迭代推荐系统,通常都会进行AB实验,考虑对以上指标的影响,如果实验整体正向并且效果显著,那么我们会考虑把实验策略推全到全部用户上。
当然,除了业务指标外,我们还需要考虑算法本身的评估方式。毕竟推荐系统的主体是算法模型,在日常的系统迭代中,有大量的离线场景,需要评估算法效果好坏。
一般而言,算法是用模型去拟合训练数据,然后去预测新数据。它的评估方式也很直接,即预测的准确性。具体来说有召回率、精准率、准确率、F1值、AUC、RMSE...
从日常的工作流程上来说,我们会先考核算法模型的AUC,AUC比以往模型有所增长时,我们再做线上AB实验,判断业务指标的增减。
通过灵敏的业务拆解指标,来反映我们对业务目标的迫近。
随着业务的发展,推荐系统越大,它的评估复杂度也会跟着提升。
许多新的目标、特殊的场景都需要纳入考虑范围。
比如推荐系统的健壮性(是否容易被攻击)、推荐时效性、推荐地域性、推荐内容质量高低、推荐重复度、用户投诉率等等...
因此,推荐系统的评估方式也需要动态调整。
灵活调整评价体系,让推荐系统更好的服务业务发展,才能让推荐系统永葆生机。
作者:Nemo
本文为 @ 21CTO 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。