推荐系统实战_读书笔记_第一章_好的推荐系统

1.1 什么是推荐系统

information overload, 信息过载。比如你想看一部电影,打开豆瓣一搜,百年来上映的电影随你挑,这时候你很难做出一个选择,需要一个人或者一个工具为你做出推荐。
推荐系统的目的是解决两方面的问题,一是让用户发现对自己有价值的信息,另一方面是让信息出现在对自己感兴趣的用户面前。
搜索引擎推荐系统对于用户来讲是互补的工具。搜索引擎满足了用户有明确目的时的主动查找需求,而推荐系统则是在用户没有明确目的时帮助他们发现感兴趣的东西。
推荐系统可以更好地发掘物品的长尾(long tail),即一些很冷门的项目。比如购物时,主流商品代表了绝大多数用户的需求,而长尾商品则代表小部分人的个性化需求,在互联网日益发展的今天,这些长尾商品常常也能带来巨大的销售额。
我们以看电影为例,可能用如下几种方式决定看啥

  • 让朋友推荐。在推荐系统中这称为社会化推荐(social recommendation)
  • 通过分析用户曾经看过的电影找到他喜欢的演员、导演等来给用户推荐相同演员、导演参与的其他作品。这叫做基于内容的推荐(context-based)
  • 还有就是找一找与自己兴趣相似的用户,看看他们最近都看了啥。这叫做基于协同过滤的推荐(collaborative filtering)

1.2 个性化推荐系统的应用

1.2.1 Amazon

亚马逊商城中就有推荐算法的应用。一种是根据你浏览过的or喜欢的商品,推荐类似的其他商品;此外,它还会根据你的 Facebook 好友关系,把你朋友喜欢的东西推荐给你。这两种方法分别叫做 item-baseduser-based
此外,亚马逊还有相关推荐列表。当你买完一个商品后,它提供买过这个商品的其他人还买了什么,以及浏览过这个商品的人买了什么。这两种推荐的区别在于使用了不同的用户行为。此外,亚马逊以及一些国内的电商还使用了打包销售(cross selling):当你想要买一个商品时,电商会推荐给你相关的物品,如果你一起买的话,会有折扣。

1.2.2 电影和视频网站

Youtube 和 Hulu 等网站也有个性化的视频推荐系统。

1.2.3 个性化音乐网络电台

音乐的推荐显得有些特殊,它包含许多很好的特性使得它非常适合用来推荐

  • 物品空间大
  • 每首歌的消费代价小
  • 种类丰富
  • 每首歌耗时少
  • 物品重用率高。用户经常会反复听同一首歌
  • 上下文相关。用户的口味受到自己的心情、周围的环境等众多因素影响
  • 次序重要
  • 很多播放列表资源。每个用户会创建很多的个人播放列表
  • 不需要用户全神贯注
  • 高度社会化。好友之间频繁推荐自己喜欢的音乐

1.2.4 社交网络

包括给用户推荐好友等。

1.2.5 个性化阅读

1.2.6 基于位置的服务

位置是一种很重要的上下文信息,推荐给用户离他很近且感兴趣的服务时,他更容易去消费。

1.2.7 个性化邮件

1.2.8 个性化广告

广告推荐是以广告自身为核心的,目标是寻找它的潜在受众。目前的个性化广告投放技术主要分为3种

  • 上下文广告。分析用户正在浏览的网页内容进行推荐
  • 搜索广告。分析用户在当前会话中的搜索记录,判断用户的搜索目的
  • 个性化展示广告。根据用户的兴趣来投放不同的展示广告

1.3 推荐系统测评

一个完整的推荐系统一般存在3个参与方:用户提供推荐系统的网站物品提供者。好的推荐系统应该兼顾三方,力求三方共赢。

1.3.1 推荐系统实验方法

  1. 离线实验(offline experiment)
    离线实验的核心要素是全程在线下进行。一般是先构建数据集,然后划分为训练集和测试集,随后在训练集上训练、在测试集上测试,最后通过预先定义的指标在线下对算法在测试集上的表现进行评价。它的缺点在于无法计算CTR等商业指标。
  2. 用户调查(user study)
    由于离线指标和商业指标往往存在着很大的差距,最准确的评估方式应该是做线上的测试,但是风险比较大,所以上线之前一般会做一次用户调查的测试。
    用户调研能获得比较真实的用户体验的反馈,通常也会带来昂贵的开销,高昂的成本导致很难大规模地进行用户调查,而小规模的调研结果常常不具有统计意义。
  3. 在线实验(online experiment)
    在完成离线实验和必要的用户调查后,可以将推荐系统上线做AB测试。

它通过一定的规则将用户随机分成几组,并对不同组的用户采用不同的算法,然后通过统计不同组用户的各种不同的评测指标比较不同算法,比如可以统计不同组用户的点击率,通过点击率比较不同算法的性能。

1.3.2 评价指标

  • 用户满意度
    只能通过用户调查或者在线实验获得。
    在用户调查中,满意度主要是通过问卷等的形式获取。而在在线实验中,用户满意度主要通过一些对用户行为的统计得到。
  • 预测准确度
    这是一种常用的离线方法。对数据集做训练&测试的划分,然后进行评估。它有几个可选用的具体指标
    • 评分预测。用模型去拟合 user 对 item 的评分,用 RMSE, MAE 等损失函数。
    • TopN 推荐。根据用户的兴趣给出一个个性化推荐的列表,然后计算 Precision/Recall 等指标
  • 覆盖率
    覆盖率(coverage)描述一个推荐系统对物品长尾的发掘能力。假设系统的用户集合为U,推荐系统给每个用户推荐一个长度为N的物品列表R(u)。
    C o v e r a g e = ⋃ u ∈ U R ( u ) I Coverage=\frac {\bigcup_{u\in U} R(u)} {I} Coverage=IuUR(u)以图书推荐为例,出版社可能会很关心他们的书有没有被推荐给用户。覆盖率为100%的推荐系统可以将每个物品都推荐给至少一个用户。如果所有的物品都出现在推荐列表中,且出现的次数差不多,那么推荐系统发掘长尾的能力就很好。
    另外,我们还常用信息熵和基尼系数来度量覆盖率
    H = − ∑ i = 1 n p ( i ) l o g ( p i ) G = 1 n − 1 ∑ j = 1 n ( 2 j − n − 1 ) p ( i j ) \begin{aligned} H=&-\sum_{i=1}^np(i)log(p_i) \\ G=&\frac 1 {n-1} \sum_{j=1}^n (2j-n-1)p(i_j) \end{aligned} H=G=i=1np(i)log(pi)n11j=1n(2jn1)p(ij)
    i j i_j ij是按照物品流行度p()从小到大排序的物品列表中第j个物品。
  • 多样性
    假设 s ( i , j ) ∈ [ 0 , 1 ] s(i, j)\in[0,1] s(i,j)[0,1]定义了物品i和j之间的相似度,那么用户u的推荐列表R(u)的多样性定义如下:
    D i v e r s i t y = 1 − ∑ i , j ∈ R ( u ) , i = ̸ j s ( i , j ) 1 2 ∣ R ( u ) ∣ ( ∣ R ( u ) ∣ − 1 ) Diversity = 1 - \frac {\sum _ {i,j \in R(u),i =\not j } s(i,j)} {\frac 1 2 |R(u)|(|R(u)|-1)} Diversity=121R(u)(R(u)1)i,jR(u),i≠js(i,j)上式对用户取平均值对于所有用户的多样性平均值
    D i v e r s i t y = 1 ∣ U ∣ ∑ u ∈ U D i v e r s i t y ( R ( u ) ) Diversity = \frac 1 {|U|} \sum_{u\in U}Diversity(R(u)) Diversity=U1uUDiversity(R(u))
  • 新颖性
    新颖的推荐是指给用户推荐那些他们以前没有听说过的物品。
  • 惊喜度
    如果推荐结果和用户的历史兴趣不相似,但却让用户觉得满意,那么就可以说推荐结果的惊喜度很高,而推荐的新颖性仅仅取决于用户是否听说过这个推荐结果。

假设一名用户喜欢周星驰的电影,然后我们给他推荐了一部叫做《临歧》的电影(该电影是1983年由刘德华、周星驰、梁朝伟合作演出的,很少有人知道这部有周星驰出演的电影),而该用户不知道这部电影,那么可以说这个推荐具有新颖性。但是,这个推荐并没有惊喜度,因为该用户一旦了解了这个电影的演员,就不会觉得特别奇怪。

  • 信任度
    如果用户很相信一个推荐系统,那么他们购买商品的欲望or可能性会更强。就类似于你一个靠谱的朋友向你推荐的电影更容易让你买票。
    提升推荐系统的信任度有两种常用方法。一是透明化,让推荐系统为推荐结果提供解释/理由;另一种是让用户的好友提供推荐理由。
  • 实时性
    一方面是系统要实时地更新推荐列表来满足用户的行为变化,比如用户买完手机后马上就推荐手机壳之类的配件,大概率比第二天再推荐要好;另一方面是说系统要及时地把新加入系统的商品推荐给用户,这考察了系统的冷启动能力。
  • 鲁棒性
    系统要能应对攻击。比如商品恶意刷单、电影恶意刷分等。
    判定鲁棒性的方法主要是注入攻击,我们对数据集加入一定的噪声,如果加入前后系统的推荐结果没有发生大的变化,则认为系统是鲁棒的。
    提升系统鲁棒性的鲁棒性有若干常用方法
    • 一是使用代价比较高的用户行为,比如用户购买记录和用户浏览记录中应尽量使用前者。
    • 二是进行攻击检测,对数据集进行清洗然后再进行使用。
  • 商业目标

最本质的商业目标就是平均一个用户给公司带来的盈利。
不同的网站具有不同的商业目标。比如电子商务网站的目标可能是销售额,基于展示广告盈
利的网站其商业目标可能是广告展示总数,基于点击广告盈利的网站其商业目标可能是广告点击总数。

1.3.3 评测维度

  • 用户维度。人口统计学信息、活跃度等
  • 物品维度。属性、平均分等
  • 时间维度。季节、工作日等
    一个算法可能整体上不太好,但是在某些维度表现还不错,这时候我们就可以根据具体的情况进行算法的融合,提升系统的整体性能。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值