5.4.4 推荐结果排序
通过5.4.3节的介绍,我们可以为用户生成推荐候选集,将用户更愿意点击的排在前面。那么这些候选集中的视频是怎么推荐给用户的呢?也即我们怎么对这些候选视频排序呢?
我们可以从视频质量、用户对视频的偏好度、多样性等几个维度来考虑。
视频质量是指视频本身的吸引力,比如视频的海报清晰度、视频播放次数、视频被点赞的次数、视频被转载的次数、视频被收藏的次数等。这些不同维度的视频质量,可以通过打分获得一个固定的质量得分,具体打分方式可以多种多样,这里不再细说。这里记视频v的质量为Qv。
通过前面的介绍我们知道,每个候选视频是通过某个种子视频沿着有向图通过若干步的拓展获得的。如下所示,假设候选视频vk是通过种子视频v0经过k步获得的,箭头上方的s1,s2,s3,…,sk是相邻两个视频的相似度。
那么用户对视频vk的偏好度可以用如下公式来计算
其中,R0是用户对视频v0的偏好度及它自身的受欢迎程度,我们可以通过用户播放视频v0的时长或者v0的总播放量等数值来度量。
如果从v0到vk有多条路径,可以选择最短的路径,这是因为我们是一步一步拓展获取候选集的,如果某个视频被某一步拓展了,当被再次拓展时,就可延用前面的结果而不必再计算。
上面介绍了视频得分及用户对视频的偏好度,那么用户u对视频vk最终的评分可以用下面公式来计算:
通过将所有候选视频按照上述公式降序排列就可以得到候选视频的排序了。利用上面公式可知,距离用户种子视频集S越远的视频,通过公式的相似性连乘得到的值也越小,那么该候选视频就有可能排在后面了。要怎样解决这个问题,从而获得多样性呢?一般可以通过限制由同一种子视频生成的候选视频的数量来获得多样性(因为同一种子视频生成的视频多少是有一些相似度的),或者限制由同一渠道产生的视频数量(比如由同一个用户上传的视频)。通过在上述排好序的推荐列表中剔除掉部分由同一种子视频生成的视频或者同一渠道产生的视频,就可以获得最终的推荐结果。
上面介绍的就是YouTube基于视频被用户共同观看的次数获得视频之间的相似度,进而通过视频相似度传递获得最终推荐的方法。该方法本质上就是利用关联规则的思路,只用到了用户的播放行为信息,因此也是一种协同过滤算法。