目录:
- 推荐系统是啥
- 目前比较成功的推荐系统
- 如何评判一个推荐系统的好坏
正文
什么是推荐系统
信息过载的时代
问题一:如果我打开一个电影网站,但并没有明确的目的看哪一部电影时,面对数不胜数的电影,我该看什么?
问题一:当去图书馆找书,就算我们有自己的目的,找到的也许也并不是我们感兴趣的。
因为用户找不到关键字,缺乏明确目的或无法对现有资源加以全部比较的时候,如果某个有经验的人来指导用户选择,甚至直接将选择结果提供给用户,那这个人就是推荐人。
一般这个人根据什么理由来推荐好的电影给别人呢?
- 影评
- 导演和演员
- 根据用户喜好(过往喜欢的类型)
- 排行榜
...等等
通过以上方式将电影和用户产生联系,再推荐给用户供其选择。
如果这个人由机器充当,这个机器就称为 推荐系统
。只需要让机器来根据以上的条件来做选择给用户就可以了。
目前比较成功的推荐系统
1、亚马逊-被RWW(读写网)称为“推荐系统之王”
据说亚马逊35%的收益由推荐系统产生
- 根据相关物品推荐,如下图:
- 根据facebook的好友喜欢的产品推荐
亚马逊CEO Jeff Bezos在接受采访时曾经说过,相对于其他电子商务网站的最大优势就在于个性化推荐系统,该系统让每个用户都能拥有一个自己的在线商店,并且能在商店中找到自己感兴趣的商品。
2、youtube
用户在YouTube中面临着严重的信息过载问题。为此,YouTube在个性化推荐领域也进行了深入研 究,尝试了很多算法。在YouTube最新的论文中,他们的研究人员表示现在使用的也是基于物品的推荐算法。
为了证明个性化推荐的有效性,YouTube曾经做个一个实验,比较了个性化推荐的点击率和热门视频列表的点击率,实验结果表明个性化推荐的点击率是 热门视频点击率的两倍。(所以如果我们直接使用youtube推荐的视频也是一种不错的选择)
3、pandora:个性化推荐音乐网
Pandora的算法主要基于内容, 其音乐家和研究人员亲自听了上万首来自不同歌手的歌,然后对歌曲的不同特性(比如旋律、节奏、编曲和歌词等)进行标注,这些标注被称为音乐的基因。然后,Pandora会根据专家标注的基因计算歌曲的相似度,并给用户推荐和他之前喜欢的音乐在基因上相似的其他音乐
4、facebook
Facebook推出了一个推荐API,称为Instant Personalization。该工具根据用户好友喜欢的信 息,给用户推荐他们的好友最喜欢的物品。
5、基于位置的服务
美团、淘宝票等具有位置优先的服务
6、个性化广告
facebook基于上下文广告、搜索广告、个性化展示广告等
什么是好的推荐系统
一个完整的推荐系统一般存在3个参与方
以图书推荐为例:
- 推荐系统需要满足用户的需求,给用户推荐那些令他们感兴趣的图书
- 其次,推荐系统要让各出版社的书都能够被推荐给对其感兴趣的用户,而不是只推荐几个大型出版社的书。
- 好的推荐系统设计,能够让推荐系统本身收集到高质量的用户反馈,不断完善推荐的质量,增加用户和网站的交互,提高网站的收入。
因此在评测一个推荐算法时,需要同时考虑三方的利益, 一个好的推荐系统是能够令三方共赢的系统。
错误的评判?
很多人将好的推荐系统定义为能够作出准确预测的推荐系统。
比如:
1、一个图书推荐系统预测一个用户将来会购买《C++ Primer中文版》这本书,而用户后来确实购买了,那么这就被看做一次准确的预测。
但是,很多研究表明,准确的预测并不代表好的推荐。比如说,该用户早就准备买《C++ Primer中文版》了,无论是否给他推荐,他都准备购买,那么这个推荐结果显然是不好的,因为它并未使用户购买更多的书,而仅仅是方便用户购买一本他本来就准备买的书。 那么,对于用户来说,他会觉得这个推荐结果很不新颖,不能令他惊喜。
2、举一个更极端的例子,某推测系统预测明天太阳将从东方升起,虽然预测准确率是100%,却是一种没有意义的预测。
好的推荐系统不仅仅能够准确预测用户的行为,而且能够扩展用户的视野,帮助用户
发现那些他们可能会感兴趣,但却不那么容易发现的东西。
同时,推荐系统还要能够帮助商家,将那些被埋没在长尾中的好商品介绍给可能会对它们感兴趣的用户。
推荐系统的试验方法
1、离线实验
(1) 通过日志系统获得用户行为数据,并按照一定格式生成一个标准的 数据集;
(2) 将数据集 按照一定的规则 分成训练集和测试集;
(3) 在训练集上训练用户兴趣模型,在测试集上进行预测;
(4) 通过事先定义的离线指标评测算法在测试集上的预测结果。
优点:
不需要真实用户参与,可以直接快速地计算出来,从而方便、快速地测试大量不同的算法。缺点:
无法获得很多商业上关注的指标,如点击率、转化率等,而找到和商业指标非相关的离线指标也是很困难的事情。
- 用户调查
高预测准确率不等于高用户满意度,很多离线时没有办法评测的与用户主观感受有关的指标都可以通过用户调查获得
- 优点:
是可以获得很多体现用户主观感受的指标,相对在线实验风险很低,出现错误后很容易弥补。 - 缺点:
是招募测试用户代价较大,很难组织大规模的测试用户,因此会使测试结果的统计意义不足。
3、在线实验
在完成离线实验和必要的用户调查后,可以将推荐系统上线做AB测试,将它和旧的算法进行比较。
- AB测试的优点:
是可以公平获得不同算法实际在线时的性能指标,包括商业上关注的指标。 - AB测试的缺点:
主要是周期比较长,必须进行长期的实验才能得到可靠的结果。因此一般不会用 AB测试测试所有的算法,而只是用它测试那些在离线实验和用户调查中表现很好的算法。其次, 一个大型网站的AB测试系统的设计也是一项复杂的工程。
关于Yeecall内容思考:
- 首先,已经有大量报表,需要通过离线实验分析,找出更优化的方案
- 然后,需要通过用户调查确定它的用户满意度不低于现有的算法。(可能不太现实)
- 最后,通过在线的AB测试确定新方法和旧版本方法的差异再做调整
评测指标
用户满意度
主要是通过调查问卷的形式
在线系统中,用户满意度主要通过一些对用户行为的统计得到。预测准确度
预测用户行为的能力,在计算该指标时需要有一个离线的数据集,该数据集包含用户的历史行为记录。然后,将该
数据集通过时间分成训练集和测试集。最后,通过在训练集上建立用户的行为和兴趣模型预测用
户在测试集上的行为,并计算预测行为和测试集上实际行为的重合度作为预测准确度
- 评分预测
- TopN推荐(已有)
网站在提供推荐服务时,一般是给用户一个个性化的推荐列表,这种推荐叫做TopN推荐。
TopN推荐的预测准确率一般通过准确率(precision)/召回率(recall)度量。
令R(u)是根据用户在训练集上的行为给用户作出的推荐列表,而T(u)是用户在测试集上的行
为列表。那么,推荐结果的召回率定义为:
覆盖率
以图书推荐为例,出版社可能会很关心他们的书有没有被推荐给用户。覆盖率为100%的推荐系统可以将每个物品都推荐给至少一个用户。
此外,从上面的定义也可以看到,热门排行榜的推荐覆盖率是很低的,它只会 推荐那些热门的物品,这些物品在总物品中占的比例很小。一个好的推荐系统不仅需要有比较高的用户满意度,也要有较高的覆盖率。以消除马太效应。-
多样性
假设用户喜欢动作片和动画片,且用户80%的时间在看动作片,20%的时间在看动画片。那么,可以提供4种不同的推荐列表:- A: 列表中有10部动作片,没有动画片;
- B: 列表中有10部动画片,没有动作片;
- C: 列表中有8部动作片和2部动画片;
- D: 列表有5部动作片和5部动画片。
一般认为:
- C是最好的,因为它具有一定的多样性,但又考虑到了用户的主要兴趣。
- A满足了用户的主要兴趣,但缺少多样性,
- D 列表过于多样,没有考虑到用户的主要兴趣。
- B 列表即没有考虑用户的主要兴趣,也没有多样性,因此是最差的。
新颖性
新颖的推荐是指给用户推荐那些他们以前没有听说过的物品。在一个网站中实现新颖性的最简单办法是,把那些用户之前在网站中对其有过行为的物品从推荐列表中过滤掉。
评测新颖度的最简单方法是利用推荐结果的平均流行度,因为越不热门的物品越可能让用户觉得新颖。因此,如果推荐结果中物品的平均热门程度较低,那么推荐结果就可能有比较高的新颖性。
但是,用推荐结果的平均流行度度量新颖性比较粗略,因为不同用户不知道的东西是不同的。因此,要准确地统计新颖性需要做用户调查。-
惊喜度
如果推荐结果和用户的历史兴趣不相似,但却让用户觉得满意,那么就可以说推荐结果的惊喜度很高,而推荐的新颖性仅仅取决于用户是否听说过这个推荐结果。新颖+满意=惊喜度
信任度
度量推荐系统的信任度只能通过问卷调查的方式;
增加推荐系统的透明度,而增加推荐系统透明度的主要办法是提供推荐解释。实时性
健壮性
商业目标