一个推荐系统的好坏实实在在影响着用户使用产品的感受,我们如何判断推荐系统的好坏?一个好的推荐系统需要注意哪几点?
生活中,我们对推荐系统一点都不陌生,甚至会天天接触。相信我们很多人都有这样的体会:
我们经常信誓旦旦地说“就玩10分钟抖音吧”,但往往是一刷不知不觉2小时就过去了;
我们如果在淘宝上买过一件衣服,却总是能在首页或者详情页看到一些心仪的裙子、裤子,甚至鞋子,然后继续开启剁手党的买买买模式;
作为热爱流行歌曲的音乐发烧友,今天心情很好,但是却不知道听什么,我们点开了音乐app,打开里面的【推荐歌单】,每首都不一样,每首好像都能触达心灵。
这也许就是推荐系统的美和魅力吧!
什么是好的推荐系统?
一个推荐系统,往往存在3个参与方:用户、物品提供者、提供推荐系统的产品。
从用户角度说,好的推荐系统不仅仅能够准确预测用户的行为,而且能够扩展用户的视野,帮助用户发现那些他们感兴趣,但却不那么容易发现的东西。
从物品提供者角度说,好的推荐系统,能够帮助他们将那些被埋没在长尾中的好东西,介绍给可能会对他们感兴趣的用户。
好的推荐系统是一箭双雕的,能优雅的帮助用户和物品提供方解决问题。
作为推荐系统的产品经理,除了我们主观去评估推荐系统质量,那么还有哪些客观指标可以评估一个推荐系统的质量的?
1. 用户满意度
用户作为推荐系统的重要参与者 ,其满意度是评测推荐系统的重要指标,通常通过用户调查和用户在线行为分析获得。
(1) 用户调查
用户调查主要是通过问卷的形式进行,用户对推荐系统的满意度往往分为不同的层次。
我们之前做过对猎头推荐职位的调研,问卷中有个问题是,请问下面哪句话最能描述你看到推荐结果后的感受?
选项1,推荐的简历都是我非常想看的;
选项2,推荐的简历很多我都会看,确实符合我兴趣的不错简历;
选项3,推荐的简历和我负责的领域相关,但是不是我当前想找的候选人;
选项4,不知道为什么会推荐这些简历,都不是我感兴趣的。
调查问卷需要从不同的侧面询问用户对结果的不同感受。
如果只是问用户是否满意,用户可能心里会认为大体满意,但是对某个方面还是有点不满意,因而会很难回答这个问题,即使回答了,我们在统计分析结果的时候也会不知所措。
(2) 在线行为分析
在线行为分析,也就是常说的用户点击率、停留时间和转化率等指标来度量。
当我们闲来无事,想逛逛某宝的时候,首页会推荐一个商品列表,如果我们满意,我们就会点击某个商品,而且还很可能会购买商品。
用户的点击率、停留时间和购买转化率,都能很客观的反应我们的满意度。
很多做内容推荐的产品,比如头条,会主动提供用户是否满意的入口 ,用户可以直接反馈对该条内容不感兴趣。
反馈垃圾内容
拉黑作者
屏蔽等操作
2. 预测准确度
这个指标是推荐系统预测用户行为的能力,是一个非常重要的离线评测指标。
首先,准备一个离线的数据集,包括用户的历史行为记录;然后,将该数据集通过时间分成训练集和测试集;最后,通过在训练集上建立用户的行为和兴趣模型,预测用户在测试集上的行为,并且把计算预测行为和实际行为的重合度作为预测准确度。
(1)用得比较多的是我们常常见到的评分系统:
很多网站,不管是买了衣服,还是看了一部电影,都会提供一个让用户给物品打分的功能。这样我们就能知道用户对物品的历史评分,从中学习用户的兴趣模型,并预测该用户,会给没有评分过的物品打多少分。
(2) 还有一种比较常见的topN预测准确度:
假如我们已经获取到用户历史观看电影的记录数据:
集合B:用户在测试集上实际会点击的电影;
那么:
准确率=(A与B的交集)/ A
召回率=(A与B的交集)/ B
这个评估指标重点是:找出用户最有可能看的电影。
3. 覆盖率
描述一个推荐系统对物品长尾的发掘能力。
覆盖率=能够推荐出来的商品数量/总物品数量
以图书推荐为例,出版社可能会很关心,他们的书有没有被推荐给用户;覆盖率为100%的话,说明推荐系统可以将每个物品都推荐给至少一个用户。
除了图书都能被推荐出来,每本书被推荐出来的次数也是很关键的。如果所有的物品都有机会被推荐,且推荐次数差不多,那么说明覆盖率越好。
大家可能都听说过“马太效应”,就是所谓的强者更强,弱者更弱。一般的热门排行榜就有马太效应。
但是推荐系统的初衷是希望消除马太效应的,这个也是推荐系统魅力的体现。
4. 多样性
尽管用户的兴趣,在较长的时间跨度中是不一样的:在一个视频产品中,用户可能即会看《蜡笔小新》这样的动画片,也会看《权利的游戏》这样的史诗奇幻题材的电视剧。
但具体到用户访问推荐系统的某一刻:其兴趣往往是单一的,那么如果推荐列表只能覆盖用户的一个兴趣点,而这个兴趣点不是用户这个时刻的兴趣点,就不会让用户满意。
相反,如果推荐列表比较多样,覆盖了用户绝大多数的兴趣点,那么就会增加,用户找到感兴趣视频的概率。
这里就用到逆向思维来看!
我们通常会去计算物品和物品之间的相似性,因为多样性和相似性是对应的。而计算相似性,往往通过物品的以下几方面进行:
分类标签,比如电影的分类标签,是动作片、玄幻片还是古装剧,是搞笑的,还是写实的;
物品的提供者信息,比如电影的导演、主演、编剧等;
物品的上市时间;
那么多样性最好是到什么程度呢?
如果用户80%的时间都在看搞笑的综艺,20%的时间在看写实的节目。如果提供以下几个推荐列表,你会觉得哪个比较好呢:
A列表中有10部搞笑综艺;
B列表中有10部纪录片;
C列表中有8部搞笑综艺,2部纪录片;
D列表中是5补搞笑综艺,5部纪录片;
一般我们会认为C列表是最好的,因为他具有一定的多样性,又兼顾了用户的主要兴趣。推荐列表比较多样,会增加用户找到感兴趣物品的概率。
5. 新颖性
让用户觉得新颖,其实就是推荐那些他们感兴趣,但是以前没有听说过的物品。
最简单的方式,就是在推荐列表里,过滤掉用户历史产生过行为的物品,包括浏览过的、点击过的等等。
但是呢,因为现在内容很可能出现在多个产品里,在我们的产品里没有,不代表用户在其他产品也没见过。
所有会利用推荐结果的平均流行度,越不热门的物品越可能让用户觉得新颖,但是其实,这个方法也是很粗略的,很难准确做出评估,因为不同用户不知道的东西是不一样的。
所以现在没有一种比较好的统计方法,可以做到新颖性的评估。更多依赖于用户调查和线上实验测试。当我们推荐物品给用户后,可以观察用户的行为结果。
首先,去筛选跟用户兴趣匹配的技术文章,找出最近产生的,因为历史的很有可能会被看过了;然后,我们可以挑选非热门的,因为热门的也有可能被看过了;最后,在线上去观察用户的点击率,如果点击率比较高,则说明用户对这个文章感兴趣。
6. 惊喜度
我们经常在分析需求的时候,会把需求分为几个层次:
兴奋型需求
期望型需求
基本型需求
可有可无需求
反向型需求(有了反而不好)
也就是,推荐给用户潜意识里需要,但是又没有明确表达出来的。换句话说,跟用户历史行为不相似,但是用户却觉得满意的推荐。
如果用户历史上喜欢看刘德华的电影,然后我们推荐了《天下无贼》,如果用户没有看过这个电影,那么可以说这个推荐具有新颖性,但是不会有惊喜度,因为很大可能是他预期内的。
但是 ,如果我们一部周星驰的《美人鱼》给他,他看完电影后很满意,“竟然把这么好的电影推荐给我了”!那么这个时候他就会觉得惊喜了。
怎么去做呢?
提高推荐惊喜度,需要提高推荐结果的用户满意度,同时降低推荐结果和用户历史兴趣的相似度。
7. 信任度
人是社交型动物,喜欢熟悉的东西,喜欢熟悉的人 ,推荐系统也是一样,需要和人之间建立某种信任,那么就需要让用户了解推荐系统。
最简单的方式,就是增加推荐系统的透明度,也就是提供推荐解释,让用户知道这个推荐结果是怎么产生的,了解推荐系统运行机制。
其次是考虑用户的社交网络信息,利用用户的好友信息给用户做推荐,并且用好友进行推荐解释。
很早以前,我们经常会看到“你好友也关注”、“购买了相似物品”。
8. 实时性
想想:如果头条老是推荐前几天的新闻,我们会有多么的奔溃?如果淘宝老是推荐我一年前购买过的相似物品,我们会是什么心情?
实时性,包括两个方面:
一是,及时更新用户的兴趣,满足用户新的行为变化,我们现在在淘宝上,今天买了一本育儿绘本,如果再次访问淘宝,那么首页会推荐育儿相关的玩具、其他书籍;
二是,及时把新上架的物品推荐给用户 ,这个也主要解决了物品冷启动的问题,一个物品如果在平台里一直得不到推荐,那么物品肯定不会带来浏览和转化,那么物品提供方可能就没有太多心情,持续提供好的内容了。
9. 商业目标
我们评测一个推荐系统,很多时候更加注重商业目标是否达成。
因为任何一个成功的产品,除了解决用户的问题以外,还需要解决盈利的问题。
一般来说,商业目标就是一个用户给公司带来的盈利,电子商务产品的目标可能是销售额,内容消费产品可能是广告收入。