这是最早的一篇YouTube的推荐系统的文章,原文来自The YouTube Video Recommendation System。发表于2010年。
YouTube拥有世界上最大的视频推荐系统之一,在2010年,整个系统还比较简略,不过也值得了解一下。
用户使用YouTube时一般有三种目的:1. 观看特定的video;2.观看特定topic的video;3.浏览并寻找感兴趣的视频。推荐系统主要为第三种需求服务,因此,推荐系统的目标是为用户推荐高质量并贴合他们的兴趣的视频,推荐结果应该随时间和用户最近的行为更新。
在YouTube的推荐应用中,存在一些特殊的挑战:
这是YouTube的推荐和普通视频网站的推荐不一样的地方,也是现在的很多段视频公司会关注的问题。
推荐系统的输入主要由内容相关的信息和用户行为相关的信息组成。其中,用户行为包括explicit和implicit feedback。前者是指用户评分、明确表示喜欢、不喜欢等行为,后者是浏览、观看等行为。原始数据中还含有非常多的噪声,很多不可控因素会影响原始数据的质量。
为了确定要推荐哪些视频,文章给出了相关视频的定义:视频v的相关视频是指可能在视频v之后被用户观看的视频。两个视频的相关性由关联规则挖掘方法来确定。视频i和j的相关性定义为:
r ( v i , v j ) = c i , j / f ( v i , v j ) r(v_i, v_j) = c_{i,j} / f(v_i, v_j) r(vi,vj)=ci,j/f(vi,vj),其中 c i , j c_{i,j} ci,j表示 v i v_i vi和 v j v_j vj共同出现的次数, f ( v i , v j ) f(v_i, v_j) f(vi,vj)是一个和视频 v i v_i vi和 v j v_j vj的出现次数相关的函数,最简单的一个此类函数为 f ( v i , v j ) = c i ∗ c j f(v_i, v_j) = c_i *c_j f(vi,vj)=ci∗cj。利用这个相关系数可以选出与种子视频 v i v_i vi相关的视频集合 R i = r ( v i , v j ) R_i = r(v_i, v_j) Ri=r(vi,vj)。简单地说,这个视频集合是由一个threshold确定的。
将用户观看过的视频、喜欢过的视频、收藏过的视频等等作为种子集合,再把它们的相关视频集合合并到一起,就得到了一个最简单的召回策略。但实际上,由于用户的口味在一定时期往往保持一致,这些种子视频的范围往往很狭窄。
为了扩大多样性,YouTube选择召回的不是1步相关视频,而是n-步相关视频,即种子视频迭代n次后得到的相关视频集合。
在得到召回的视频集合以后,需要对这些相关视频进行排序。
用于排序的数据主要包括:
这些数据最终被线性组合起来,得到ranking的评分。
文章还提到了其他一些细节: