YouTube推荐系统

The YouTube Video Recommendation System, RecSys2010

实际的YouTube推荐系统在不断的改进。我们这里看到的是2010年RecSys会议上YouTube的一篇关于推荐的文章,事实上在2008的WWW会议上有另一篇YouTube采用random walk的方法讨论的推荐,所以可以想象他们的推荐系统是在不断变化。最新的路边消息是,YouTube又换了新的算法只是没有发表文章,感兴趣的同学可以找找看。

 

目标:

用户访问youtube视频有多种情况:1)直接访问,2)搜索/目标导向的浏览,3)被感兴趣的内容吸引。个性化视频推荐是为了增强最后一种情况。所以其目的是为了帮助用户找到与他们兴趣最相关的高质量的视频。

推荐分类:

top-N recommender

挑战:

视频由用户上传;视频数量庞大;用户与视频的互动短暂且充满噪声(缺乏明确意图信息相对于netflix的视频租赁服务);视频生命周期短。

系统设计:

推荐内容足够新、丰富并且贴近用户最新动作。而且能让用户理解为什么一个视频推荐给他们。

推荐视频集合时有用户个人动作产生,包括观看、收藏、喜欢的视频作为种子视频,并找到扩展视频集合。

从工程角度出发,希望系统的每个部分彼此独立。

输入数据:

1)内容数据-如视频信息数据:标题、描述等等。

2)用户行为数据-分为显式和隐式两类,显式包含用户主动评分、收藏/点赞、订阅;隐式包含用户观看视频过程中的互动,如长观看等。

两类数据都充满噪声,特别是隐式数据可能不完整(在收到长观看上报前用户已关闭浏览器)。

 

相关视频:

要找到一个视频v_i的相关视频R_i,这里定义“相关”的意思为用户看了种子视频v后喜欢看的视频。寻找相关视频的算法属于规则挖掘或称为共同访问计数。例如:在给定时间段里(如24小时),计数两个视频一同被看的次数,即共同访问计数:c_ij。定义视频v_j相对于视频v_i的相关得分为:

clip_image002

其中f(v_i,v_j)为归一化全局热门程度,一个简单的归一化方法是clip_image004

本质而言,这个方法会倾向于较不热门的视频,因为分母其影响作用的是待选视频j的播放次数。

然后,基于相关得分r(v_i, v_j)用top-N的方法,对种子视频v_i选择相关视频集合R_i。注意,这里会增加一个最小得分临界。因为有很多视频播放量太少,共同访问次数也很少,无法计算一个可靠的相关集合。

除此以外,还有很多问题需要解决,如描述偏向、噪声观看数据等等。另外额外一些数据也可以被使用,如视频观看的顺序和时间戳等。相关视频可以被看作视频集合的有向图

生成推荐候选:

合并用户行为和相关视频的关联规则。对给定种子视频集合S,为了获得推荐候选,该算法沿相关视频图的边扩展种子视频。对种子视频集合中的v_i,考虑它的相关视频R_i,并求相关视频的合集

clip_image006

在多数情况下,计算C_1已经足够用于生成推荐候选。然而,在实际中相关视频可能相对于种子视频范围很窄,这样虽然符合接近用户兴趣的推荐目标,但是对用户而言不一定最够新。

为了扩展推荐候选的范围,使用在距离n范围内的作为视频集合:

clip_image008

其中,C_0 = S作为回归的根。因此,最终的推荐候选集合为:

clip_image010

在实践中发现,使用很小的距离就可以产生一个足够大并且丰富的推荐候选集合。

排名:

基于信息1)视频质量;2)用户特征;3)多样性,进行排名。

视频质量用来衡量视频被接受的程度,包括:播放量,评分,评论,收藏,分享,以及上传时间等。

用户特征是用户的口味和喜好的量化,如用户的观看历史(其中每个视频的播放量和观看时长)等。

使用线性合并的方法可以对候选视频生成一个列表,因为最终只显示小部分推荐视频,所以要从候选列表中选合适的子集。这里的算法不选择最相关的,而是在相关性和多样性之间优化平衡。因为用户在不同的时间会有多样的兴趣,所以在候选集合里彼此特别相似的视频会被去掉先。一个简单的实现方法是限制来自同一频道的被推荐的(同类里特别相似的)视频数量。更为复杂的方案有主题聚类和内容分析。

 

用户界面:

所有推荐视频会显示缩略图、标题、上传时间、播放量。Youtube增加了在推荐视频上的解释连接说明被推荐的视频与种子视频的关系。同时,Youtube给予用户选择推荐多少和在什么位置推荐的选项。

执行:

分为三个主要部分:1)数据收集;2)推荐生成;3)推荐服务。

Youtube使用预先计算而非按需计算推荐。好处是在推荐生成的步骤可以访问大量数据,并且在推荐时的延迟很短。不足之处在于推荐生成和推荐服务之间的时延。加速的办法可以是一天里多次更新,并行处理。

原始数据收集上后,会进行有效数据提取,然后按用户维度存储在bigtable。推荐生成基于mapreduce计算,并且处理所有用户/视频图关系。生成的数据相对较小,作为只读集合放入web服务器。获取推荐结果的请求时间基本上取决于网络传输时间。

评价:

使用A/B testing。实时流量会被导入不同组,每个组会曝光一个新特征,如数据或UI。不足之处是合理的控制分组,而且每组要有足够的流量产生统计结果。

主要的衡量指标包括

· CTR

· Long CTR(只计算被观看的部分)

· Session length

· Time until first long watch

· Recommendation coverage

结果:

Youtube的推荐占了总视频点击的60%。表现偏见是衡量结果时需要考虑的因素,如从首页的推荐和在其他位置的推荐结果会有偏颇。为了调整这个,可以观察从浏览页来的CTR,并且比较其他算法生成的视频集合,如a)最多观看;b)最多收藏;c)最高评分等。

在测量21天的结果中,可以看到所提出算法的CTR是最多观看的视频集合的207%。而最多收藏和最高评分都远低于最多观看的。

clip_image012

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页