1. 怎么简单衡量推荐算法的好坏?
首先我感觉从业务逻辑这里没有一个标准答案,因为大家各自公司的业务场景不一样。
比如电商类的平台(如拼夕夕、淘宝),他们可能最初看中的是转化率,也就是能否让用户购买商品,其次可能是平均的订单价值,也就是用户能购买多贵的商品,最后可能还会关注用户的复购率,毕竟哪怕价格低,要是买的多,那自然也就赚的多了。
又比如内容分发平台(如抖音、快手)可能着重于观看时长和重复观看率。正如你所说,这些指标有利于表明内容的吸引力和用户的黏性。同时,他们也可能关心用户的互动率,如点赞、评论数。
最后像微博豆瓣这种带有社交属性的平台,他们可能关注的是互动率(点赞评论转发),又或者是推荐系统带来的用户增长率。
那么如果我们暂时性的抛开业务场景,能否有一些通用的数据指标呢呢?
2. 衡量推荐算法好坏的一些数据指标?
2.1 Precision(精确率)
不管是什么业务场景,我们都需要考虑推荐的物品用户喜欢的概率,因为推荐位很宝贵,那量化这个概率的指标就是precision。为了更好理解,我们举例一个微信读书给我们推荐书籍的场景,推荐了5本书,我们喜欢其中2本。那么这个时候的precision就是40%。
公式化就是:
这里有一个问题就是我们完全看Precision就好了吗?假如现在微信读书有两个算法工程师,给出了两个算法
背景:用户有10本喜欢的书 第一个算法:给用户推荐了2本书,都是用户喜欢的。此时准确率100% 第二个算法:给用户推荐了10本书,里面有5本是用户喜欢的。此时准确率是50%
从上面的例子上来感受,我们好像不能说准确率高就一定好吧?因为第一种算法可能面临的业务场景是,用户阅读完两本喜欢的书他就走了。而应用第二个算法中,当推荐的结果用户不喜欢的时候,用户会跳过,再次刷到其他推荐的喜欢的书,总共可能会在app中阅读完5本书。结果好像反而是准确率高的,用户app活跃时长更短。
从这个对比我们也就引出了下一个计量指标,Recall(召回率)
2.2 Recall(召回率)
回忆一下前面的Precision代表的是,我们推荐的物品推的准不准,也就是推的物品用户喜欢的概率有多大。但前面也说到了准不准是一方面,另外一方面我们还要看我们推的全不全,而推的全不全,我们就可以用recall来代表。
具体公式:
还是拿微信读书举例: 背景:用户有10本喜欢的书 第一个算法:给用户推荐了20本书,里面有6本是用户喜欢的。此时召回率是60%、准确率是30% 第二个算法:给用户推荐了10本书,里面有4本是用户喜欢的。此时召回率是20%、准确率是40%
单看召回率我们可以看出来第一个算法更好,但同时两个算法召回率和准确率各有高低,那综合来说到底哪个算比较好呢?能不能有一个综合的指标来衡量呢?这里就引出了我们的F1了
2.3 F1
当需要结合两个数据指标precision和recall的时候,我们就可以用到F1这个数据,综合评估算法,具体F1的公式如下
还是用上面的例子 背景:用户有10本喜欢的书 第一个算法:给用户推荐了20本书,里面有6本是用户喜欢的。此时召回率是60%、准确率是30% 第二个算法:给用户推荐了10本书,里面有5本是用户喜欢的。此时召回率是50%、准确率是50%
则第一个算法的F1=0.4,第二个算法的F1=0.5,所以综合来看是第二个算法更加优秀。不过这里多说一句,我们具体还是要看具体的场景,来应用这些指标,比如一个推荐物品很少的推荐系统,那么我们应该更加看重什么呢?当是留下一个小问题,大家可以根据自己的业务场景联想一下。
2.4 NDCG
另外到这里,我们会发现上面的数据指标,我们都只是考虑推荐准不准,但我们没有考虑以下几点
1,推荐位置的影响:比如A算法把用户喜欢的2个商品都推荐到了前面,B算法把用户喜欢的3个商品推荐到了最后面,那怎么衡量两个算法的好坏呢
2,用户喜欢程度的影响:比如A算法把用户喜欢的2个商品都推荐到了前面,但是用户都一般喜欢,B算法把用户喜欢的3个商品推荐到了最后面,但用户都特别喜欢,那怎么衡量两个算法的好坏呢?
这里就可以用到NDCG来做一个综合评价,但是这里不细化了,大家可以看我另外一篇文章,有对NDCG的详细解释。
以上就是一些推荐系统最常见的数据评价指标,最后再尝试总结一下便于大家加深一下印象,总共介绍了四个数据指标,precision 量化我们推的准不准,recall 量化我们推的全不全,f1综合precision和recall,最后的NDCG则是考虑到了推荐位置,推荐物品用户喜欢程度等。