从这9点去看,什么才是好的推荐系统?
一个推荐系统的好坏实实在在影响着用户使用产品的感受,我们如何判断推荐系统的好坏?一个好的推荐系统需要注意哪几点?
生活中,我们对推荐系统一点都不陌生,甚至会天天接触。相信我们很多人都有这样的体会:
- 我们经常信誓旦旦地说“就玩10分钟抖音吧”,但往往是一刷不知不觉2小时就过去了;
- 我们如果在淘宝上买过一件衣服,却总是能在首页或者详情页看到一些心仪的裙子、裤子,甚至鞋子,然后继续开启剁手党的买买买模式;
- 作为热爱流行歌曲的音乐发烧友,今天心情很好,但是却不知道听什么,我们点开了音乐app,打开里面的【推荐歌单】,每首都不一样,每首好像都能触达心灵。
这也许就是推荐系统的美和魅力吧!
什么是好的推荐系统?
一个推荐系统,往往存在3个参与方:用户、物品提供者、提供推荐系统的产品。
- 从用户角度说,好的推荐系统不仅仅能够准确预测用户的行为,而且能够扩展用户的视野,帮助用户发现那些他们感兴趣,但却不那么容易发现的东西。
- 从物品提供者角度说,好的推荐系统,能够帮助他们将那些被埋没在长尾中的好东西,介绍给可能会对他们感兴趣的用户。
好的推荐系统是一箭双雕的,能优雅的帮助用户和物品提供方解决问题。
作为推荐系统的产品经理,除了我们主观去评估推荐系统质量,那么还有哪些客观指标可以评估一个推荐系统的质量的?
1. 用户满意度
用户作为推荐系统的重要参与者 ,其满意度是评测推荐系统的重要指标,通常通过用户调查和用户在线行为分析获得。
(1) 用户调查
用户调查主要是通过问卷的形式进行,用户对推荐系统的满意度往往分为不同的层次。
我们之前做过对猎头推荐职位的调研,问卷中有个问题是,请问下面哪句话最能描述你看到推荐结果后的感受?
- 选项1,推荐的简历都是我非常想看的;
- 选项2,推荐的简历很多我都会看,确实符合我兴趣的不错简历;
- 选项3,推荐的简历和我负责的领域相关,但是不是我当前想找的候选人;
- 选项4,不知道为什么会推荐这些简历,都不是我感兴趣的。
调查问卷需要从不同的侧面询问用户对结果的不同感受。
如果只是问用户是否满意,用户可能心里会认为大体满意,但是对某个方面还是有点不满意,因而会很难回答这个问题,即使回答了,我们在统计分析结果的时候也会不知所措。
(2) 在线行为分析
在线行为分析,也就是常说的用户点击率、停留时间和转化率等指标来度量。
当我们闲来无事,想逛逛某宝的时候,首页会推荐一个商品列表,如果我们满意,我们就会点击某个商品,而且还很可能会购买商品。
用户的点击率、停留时间和购买转化率,都能很客观的反应我们的满意度。
很多做内容推荐的产品,比如头条,会主动提供用户是否满意的入口 ,用户可以直接反馈对该条内容不感兴趣。
- 反馈垃圾内容
- 拉黑作者
- 屏蔽等操作
通过用户的直接反馈,也可以度量系统的用户满意度。
2. 预测准确度
这个指标是推荐系统预测用户行为的能力,是一个非常重要的离线评测指标。
首先,准备一个离线的数据集,包括用户的历史行为记录;然后,将该数据集通过时间分成训练集和测试集;最后,通过在训练集上建立用户的行为和兴趣模型,预测用户在测试集上的行为,并且把计算预测行为和实际行为的重合度作为预测准确度。
(1)用得比较多的是我们常常见到的 评分系统 :
很多网站,不管是买了衣服,还是看了一部电影,都会提供一个让用户给物品打分的功能。这样我们就能知道用户对物品的历史评分,从中学习用户的兴趣模型,并预测该用户,会给没有评分过的物品打多少分。
(2) 还有一种比较常见的 topN预测准确 度:
假如我们已经获取到用户历史观看电影的记录数据:
- 集合A:根据用户训练集上的行为,给出的推荐电影列表;
- 集合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. 商业目标
我们评测一个推荐系统,很多时候更加注重商业目标是否达成。
因为任何一个成功的产品,除了解决用户的问题以外,还需要解决盈利的问题。
一般来说,商业目标就是一个用户给公司带来的盈利,电子商务产品的目标可能是销售额,内容消费产品可能是广告收入。
而好的推荐系统一定是用户问题和商业目标平衡做的很好的。
本文由 @杭熹 原创发布于人人都是产品经理,未经作者许可,禁止转载。
题图来自Unsplash,基于CC0协议。
作者暂无likerid, 赞赏暂由本网站代持,当作者有likerid后会全部转账给作者(我们会尽力而为)。Tips: Until now, everytime you want to store your article, we will help you store it in Filecoin network. In the future, you can store it in Filecoin network using your own filecoin.
Support author:
Author's Filecoin address:
Or you can use Likecoin to support author: