YouTube推荐系统(上):The YouTube Video Recommendation System

这是最先的一篇YouTube的推荐系统的文章,原文来自The YouTube Video Recommendation System。发表于2010年。session

YouTube拥有世界上最大的视频推荐系统之一,在2010年,整个系统还比较简略,不过也值得了解一下。ide

Goal

用户使用YouTube时通常有三种目的:1. 观看特定的video;2.观看特定topic的video;3.浏览并寻找感兴趣的视频。推荐系统主要为第三种需求服务,所以,推荐系统的目标是为用户推荐高质量并贴合他们的兴趣的视频,推荐结果应该随时间和用户最近的行为更新。 在YouTube的推荐应用中,存在一些特殊的挑战:函数

  • 用户在YouTube上传的视频通常没有很是全的metadata,不少除了题目之外就没有什么有价值的信息。
  • YouTube上的视频通常很短(小于10分钟),所以用户行为也短暂、多变并且噪声不少。
  • YouTube上的视频生命周期很短。

这是YouTube的推荐和普通视频网站的推荐不同的地方,也是如今的不少段视频公司会关注的问题。测试

系统设计

推荐系统的输入主要由内容相关的信息和用户行为相关的信息组成。其中,用户行为包括explicit和implicit feedback。前者是指用户评分、明确表示喜欢、不喜欢等行为,后者是浏览、观看等行为。原始数据中还含有很是多的噪声,不少不可控因素会影响原始数据的质量。网站

为了肯定要推荐哪些视频,文章给出了相关视频的定义:视频v的相关视频是指可能在视频v以后被用户观看的视频。两个视频的相关性由关联规则挖掘方法来肯定。视频i和j的相关性定义为: r(v_i, v_j) = c_{i,j} / f(v_i, v_j),其中c_{i,j}表示v_iv_j共同出现的次数,f(v_i, v_j)是一个和视频v_iv_j的出现次数相关的函数,最简单的一个此类函数为f(v_i, v_j) = c_i *c_j。利用这个相关系数能够选出与种子视频v_i相关的视频集合R_i = r(v_i, v_j)。简单地说,这个视频集合是由一个threshold肯定的。设计

Generating Recommendation Candidates

将用户观看过的视频、喜欢过的视频、收藏过的视频等等做为种子集合,再把它们的相关视频集合合并到一块儿,就获得了一个最简单的召回策略。但实际上,因为用户的口味在必定时期每每保持一致,这些种子视频的范围每每很狭窄。视频

为了扩大多样性,YouTube选择召回的不是1步相关视频,而是n-步相关视频,即种子视频迭代n次后获得的相关视频集合。排序

Ranking

在获得召回的视频集合之后,须要对这些相关视频进行排序。 用于排序的数据主要包括:生命周期

  • 视频质量:包括观看次数、视频评分、评论、喜欢和分享次数等等
  • 用户数据:视频和当前用户的兴趣的match程度
  • 多样性:要在被推荐的视频集合的类别中作一个平衡,以保持结果的多样性

这些数据最终被线性组合起来,获得ranking的评分。ci

其余

文章还提到了其余一些细节:

  • 推荐理由:推荐视频时会给出相关种子视频的连接,以解释为何推荐了该视频
  • 底层使用了BigTable和MapReduce
  • 使用A/B测试系统来测试结果
  • 使用click through rate (CTR), long CTR (only counting clicks that led to watches of a substantial fraction of the video), session length, time until first long watch, 和recommendation coverage (the fraction of logged in users with recommendations)等做为评价指标。
相关文章
相关标签/搜索