明天我们将回顾一篇2016年在YouTube发布的关于深度学习应用于视频推荐的论文。尽管从算法结构上看,这篇论文并没有太多创新之处,但它在工程实现和用户体验方面的贡献却非常显著。下面让我们一起重温这篇经典之作。
这篇论文主要探讨了YouTube视频推荐系统面临的三大挑战:用户基数庞大、数据量巨大,需要平衡新旧内容,以及用户行为数据稀疏且存在噪声。为了应对这些挑战,YouTube构建了一个高效且复杂的推荐系统架构。
YouTube的推荐系统架构分为两个主要部分:召回和排序。召回模块负责快速筛选出符合条件的候选视频,而排序模块则对这些候选视频进行精细化排序。召回模型相对简单,主要依赖少量特征,以确保时效性;排序模型则更加复杂,引入了更多特征,以提高个性化程度。
召回模型的核心在于特征提取。YouTube使用用户观看记录和搜索记录进行嵌入(embedding),并将这些嵌入向量进行平均,从而生成用户特征。此外,YouTube还考虑了视频的上传时间,将其作为特征之一,以解决“位置偏差”问题。这种做法有助于推荐系统更好地识别新视频,从而满足推荐新内容的需求。
召回模型中的特征集包括用户观看记录的嵌入、用户搜索记录的嵌入以及用户的基本信息。这些特征被用来生成用户向量,以便进行视频推荐。此外,视频的年龄也被纳入特征集合,以反映视频的流行度。
在训练过程中,YouTube采用了非推荐视频的观看记录作为负样本,以避免兴趣学习偏差。同时,每个用户的数据量被固定,以确保所有用户的损失影响均衡。此外,还引入了不对称的共看模式,以更好地模拟用户实际观看顺序。
增加特征和网络深度可以显著提高推荐效果,但并非一直有效。在实验中,作者发现当DNN层数达到三层时,效果已经趋于稳定。
在离线训练阶段,YouTube首先将特征进行拼接,然后输入到三层DNN中进行训练。最终,通过softmax层输出视频分类结果。
在线服务模块需要在短时间内返回结果。为此,YouTube采用了哈希算法来加速视频推荐过程。
在排序阶段,引入了更多的特征,如视频的观看时长作为目标函数,以更精确地评估视频的质量。排序模型采用类似的网络结构,但使用逻辑回归对视频进行打分。
排序模型中的特征集包括当前视频的嵌入、用户观看过的视频嵌入、用户搜索关键词的嵌入、自上次观看同频道视频的时间间隔,以及该视频已经被曝光给用户的次数。
YouTube选择了观看时长作为推荐系统的目标函数,而不是点击率。这是因为观看时长更能反映用户的真实兴趣,并且更符合商业价值。训练时采用加权逻辑回归,而在线上服务时,则使用指数函数计算期望观看时长。
这篇论文展示了如何利用深度学习解决大规模推荐系统中的挑战,并提供了宝贵的工程实践指导。希望这些信息对你有所帮助。