关闭

如何衡量推荐系统的好坏?

上篇文章有部分内容是关于推荐系统数据指标的,当时主要是从《推荐系统实践》那本书里直接搬运过来的,没有详细展开,所以就再补一篇如何衡量推荐系统好坏的文章。

上篇文章有部分内容是关于推荐系统数据指标的,当时主要是从《推荐系统实践》那本书里直接搬运过来的,没有详细展开,所以就再补一篇如何衡量推荐系统好坏的文章。

之前我们提到推荐系统存在有一个非常重要的前提,那就是信息过载,我们想做的事情是在满足用户个性化需求的基础上,充分挖掘长尾资源,提升整体资源利用效率。

如果把整体资源看作待开采的宝藏,那推荐系统就可以看作是矿机,要做的事情就是不断的挖掘宝藏,发挥宝藏应有的价值。

从这个角度来看,衡量推荐系统做的好不好可以从两方面来评估。

一方面是推荐系统本身做的好不好,开采效率高不高,另一方面就是推荐系统还能好多久,毕竟宝藏的开采也是需要长期可持续发展的。

下面我们分别从做的好不好与还能好多久这两个角度来看下如何衡量推荐系统的好坏。

做的好不好

可以从深度和广度这两个维度来进行评估。

先来看深度,主要是衡量推荐系统的结果,通常会有评分准确度、分类准确率、排序指标和商业指标等

评分准确度

在讨论这个指标之前,先来说下另一个问题。

推荐系统的预测一般分为两种,一种是评分预测,一种是行为预测

评分预测是根据用户以往对物品的打分情况,预测用户对新物品的打分,比如用户A之前看过3部电影,这时候想给用户推荐另外一部电影,评分预测就是预测用户A对这部电影可能的打分。

行为预测指的是直接预测行为本身发生的概率,比如用户有多大可能性产生点击、购买或者点赞、分享操作。

评分准确度是为了评估评分预测是否精准的指标,整体的思路是计算预测值和真实值之间的误差,然后把误差尽可能控制在可接受范围之内。

通常情况下会用均方根误差(RMSE)、均方误差(MSE)、平均绝对误差(MAE)来衡量。

具体计算方式不赘述,感兴趣的可以自行了解下。

分类准确率

主要是针对行为预测的,一般用TopN的准确率和召回率来进行衡量。

回率:希望覆盖的案例中,实际被覆盖的有多少

比如想从1万条新闻中识别所有的军事类新闻,召回率为80%意味着只识别出来了8000条新闻。

准确率:策略覆盖的案例中,真正希望被覆盖的有多少。

从1万条新闻中识别出100条军事类新闻,准确率为80%意味着只识别出来了80条军事新闻。

召回率和准确率是相互矛盾的,召回率高,准确率可能会低,准确度高,召回率可能会低,需要结合产品阶段和优化目标去找一个合适的平衡点。

排序指标

通常采用AUC值, AUC值在数学上等价于模型把关心的那一类样本排在其他样本前面的概率。

最大是1,完美结果,0.5就是随机排列,0就是完美地全部排错,最差的是接近0.5。

此外还可以通过目标值和AB测试来进行衡量,比如目标值是停留时长,那就用停留时长的大小来进行衡量,线上环境可以通过不同的流量对比效果。

商业指标

主要就是我们期望提升的一些目标值,比如

  • 比例类:点击率,转化率,留存率,完播率等;

  • 绝对值类:用户停留时长,GMV(成交金额),社交关系数量等。

再来看广度,通常会有覆盖率、失效率、新颖性、更新率、流行度等…

覆盖率

主要指的是推荐系统在多少用户身上成功运用了,比如总共有100W用户,A策略覆盖用户数量是10W,那覆盖率就是10%。

通常情况覆盖率为UV覆盖率或者PV覆盖率:

  • UV覆盖率:有效推荐覆盖UV/总UV

  • PV覆盖率:覆盖PV/总PV

失效率

主要是衡量不出推荐结果的情况,比如策略A覆盖了10W用户,有1W用户是没有推荐结果的,那对应的失效率就是10%。

失效率也分为UV失效率和PV失效率:

  • UV失效率:推荐结果列表长度为0覆盖的UV/整体UV

  • PV失效率:推荐结果列表长度为0覆盖的PV/整体PV

新颖性和惊喜性

直观上的理解就是用户没见过(新颖),最好还能是用户感兴趣或者喜欢的(惊喜)

这个时候需要把维度不断的细化,比如细化到主题、分类、标签等,然后再衡量每个维度上用户没见过物品的比例。

更新率

主要是衡量每个推荐周期和上个周期相比,推荐列表中不同物品的比例。这个周期,可以是每次刷新,也可以是每天。

通常情况下有离线计算、近线计算和实时计算这几种类型,不同类型的的复杂程度和实现成本不同,当然推荐的效果也是不同的…

流行度

主要是用来衡量推荐和热门的相似程度,流行度越大,结果就越趋近于全局热门的物品。

既然我们想挖掘长尾物品,那肯定不希望热门商品占据了太多的流量。

还能好多久

上一部分主要是从推荐本身的角度来衡量的,这部分主要是从全局的角度来衡量,主要有个性化、多样性和基尼系数这几个指标。

个性化

顾名思义就是推荐系统的个性化程度,如果没有很大差异的话,一方面推荐效果可能还有提升空间,另一方面对长尾物品的挖掘可能不那么充分。

可以取一天的日志,计算用户推荐列表的平均相似度,平均相似度越大,说明个性化程度越低,相似度越小,说明个性化程度越大。

如果用户量较大,可以考虑对用户抽样来进行计算。

多样性

推荐系统里面有个信息茧房问题,具体表现为推荐系统是基于用户已有的行为和偏好去寻找和推荐相关内容。然后就会出现你越看某类内容,推送给你这类内容就越多的情况…

多样性可以在一定程度上解决这个问题,在用户感兴趣内容的基础上,可以做一些其他兴趣的探索。

具体来说可以通过控制各类型的占比或者推荐理由的占比,再结合着一些其他产品策略来保证整体推荐结果的多样性。

基尼系数

首先需要知道什么是基尼系数,来看下百度百科的定义:

基尼系数是指国际上通用的、用以衡量一个国家或地区居民收入差距的常用指标。

基尼系数最大为“1”,最小等于“0”。基尼系数越接近0表明收入分配越是趋向平等。

基尼系数在推荐系统中的应用也是用来衡量平等程度的,越接近于0表示个性化程度越高,越接近于1表示马太效应越严重,即少数的物品占据了绝大多数的流量。

最后

除了上面列的一些指标,可能还会有时效性、健壮性、可解释性等其他指标,不再一一说明。

需要说明的是,不同阶段需要重点关注的数据指标是不同的,没必要上来就关注这么多指标,而且选择过多的指标也不利于进行观察和决策。

可以先定义清楚当前阶段迫切需要解决的问题,结合着业务特点和目标,再来选择几个合适的数据指标进行衡量。

以上,就是本文的主要内容,愿你有所收获,欢迎斧正、指点、拍砖…

本文作者:王家郴,微信公众号:产品经理从01

本文经作者授权发布与产品壹佰,未经授权禁止转载

0条评论 添加新讨论

登录后参与讨论
Ctrl+Enter 发表