【推荐系统】YouTube推荐系统架构的十大工程问题

简介: 【推荐系统】YouTube推荐系统架构的十大工程问题

YouTube是世界上最大的创建、分享和发现视频内容的平台。YouTube的建议负责帮助超过10亿用户从不断增长的视频语料库中发现个性化内容。在本文中,我们将重点关注深度学习最近对YouTube视频推荐系统所产生的巨大影响。该图说明了在YouTube移动应用程序主页上的建议。从三个主要的角度来看,推荐YouTube上的视频是极具挑战性的:

  • 规模:许多现有的推荐算法被证明适用于小问题,但都不能在我们的规模上运行。高度专业化的分布式学习算法和高效的服务系统对于处理YouTube庞大的用户群和语料库至关重要。
  • 新鲜度:YouTube有一个非常动态的语料库,每秒可以上传很多小时的视频。推荐系统应该有足够的响应能力,以模拟新上传的内容以及用户所采取的最新行动。平衡新内容有了完善的视频,就可以从探索/开发的角度来理解。
  • 噪声:由于稀疏性和各种难以观察到的外部因素,在YouTube上的历史用户行为本质上难以预测。我们很少得到用户满意度的基本真相,而是建模有噪声的隐式反馈信号。此外,与内容相关联的元数据结构不佳,而没有一个定义良好的本体。我们的算法需要对我们的训练数据的这些特殊特征具有鲁棒性。

YouTube推荐系统架构如下:

  • Candidate Generation:这个部分相当于召回层,从几亿视频语料库中筛选出几百个候选视频
  • Ranking:这个部分对于海选出的几百个视频进行精排,加入更加细粒化的特征用于构建模型,进而找出评分最高的topN视频推荐给用户

Candidate Generation DNN模型

DNN输入层的特征总共分为3个部分:

  • embedde video watches:该特征为所有video的特征信息,这里为了将其统一输入模型进行了Embedding处理,然后使用平均池化Embedding
  • embedded search tokens:该特征使用户搜索词进行Embedding处理
  • 用户特征:包括用户的年龄、性别等粗粒化的特征信息

之后将这3部分的Embedding向量进行横向拼接,然后送入后面的MLP层,进行训练,这里YouTube是将预测作为多分类,分别对应几百万个视频的概率情况,也就是SoftMax。

Ranking DNN模型

DNN输入层的特征总共分为5个部分:

  • impression video ID:候选视频的特征信息,这里将其进行Embedding
  • watched video IDs:用户已经看过的视频的特征信息,将每个看过的视频进行平均化Embedding
  • language embedding:该特征是候选视频的语言和用户的语言的Embedding
  • time since last watch:用户上次看相似视频的时间
  • previous impressions:用户先前看过的候选视频

YouTube推荐模型架构的十大工程问题

这里是看了王喆老师的文章获得的感想,将其总结记录

1、文中把推荐问题转换成多分类问题,在next watch的场景下,每个video都会是一个分类,因此总共的分类将会有数百万之巨,这在使用softmax训练时无疑是非常低效的,这个问题YouTube是如何解决的?

YouTube团队进行了负采样并采用importance weighting的方法对采用进行calibration。

2、在candidate generation model的serving过程中,YouTube为什么不直接采用训练时的model进行预测,而是采用了一种最近邻搜索的方法?

由于在model serving过程中对几百万个候选集逐一跑一遍模型的时间开销显然太大了,因此在通过candidate generation model得到user 和 video的embedding之后,通过最近邻搜索的方法的效率高很多,只需要将用户和视频的Embedding存到内存即可。

3、Youtube的用户对新视频有偏好,那么在模型构建的过程中如何引入这个feature?

模型引入了“Example Age”这个特征,它代表着视频距离当前的发布时间间隔。

4、在对训练集的预处理过程中,YouTube没有采用原始的用户日志,而是对每个用户提取等数量的训练样本,这是为什么?

这是为了减少高度活跃用户对于loss的过度影响。

5、YouTube为什么不采取类似RNN的Sequence model,而是完全摒弃了用户观看历史的时序特征,把用户最近的浏览历史等同看待,这不会损失有效信息吗?

会导致模型过度拟合上个时间段的数据,如果一个用户刚刚点开某个领域的视频,会导致模型过度推荐这个领域的视频给用户造成不好的体验感。

6、在处理测试集的时候,YouTube为什么不采用经典的随机留一法(random holdout),而是一定要把用户最近的一次观看行为作为测试集?

主要是为了避免引入future information,产生与事实不符的数据穿越。

7、在确定优化目标的时候,YouTube为什么不采用经典的CTR,或者播放率(Play Rate),而是采用了每次曝光预期播放时间(expected watch time per impression)作为优化目标?

因为 watch time更能反应用户的真实兴趣,从商业模型角度出发,因为watch time越长,YouTube获得的广告收益越多。而且增加用户的watch time也更符合一个视频网站的长期利益和用户粘性。

8、在进行video embedding的时候,为什么要直接把大量长尾的video直接用0向量代替?

把大量长尾的video截断掉,主要还是为了节省online serving中宝贵的内存资源。

9、针对某些特征,比如#previous impressions,为什么要进行开方和平方处理后,当作三个特征输入模型?

这是为了引入非线性特征,提高模型的拟合能力。

10、为什么ranking model不采用经典的logistic regression当作输出层,而是采用了weighted logistic regression?

我们已经知道模型采用了expected watch time per impression作为优化目标,所以如果简单使用LR就无法引入正样本的watch time信息。因此采用weighted LR,将watch time作为正样本的weight,在线上serving中使用e(Wx+b)做预测可以直接得到expected watch time的近似,完美。

参考文章

王喆-YouTube推荐系统


目录
相关文章
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
536 0
|
机器学习/深度学习 搜索推荐 算法
深度学习推荐系统架构、Sparrow RecSys项目及深度学习基础知识
深度学习推荐系统架构、Sparrow RecSys项目及深度学习基础知识
459 0
|
SQL 分布式计算 搜索推荐
【推荐系统】推荐业务架构介绍(一)
【推荐系统】推荐业务架构介绍(一)
574 0
|
机器学习/深度学习 搜索推荐 算法
优秀的推荐系统架构与应用:从YouTube到Pinterest、Flink和阿里巴巴
优秀的推荐系统架构与应用:从YouTube到Pinterest、Flink和阿里巴巴
560 0
|
存储 人工智能 架构师
ChatGPT 与软件架构 (4) - 架构师提示工程指南
ChatGPT 与软件架构 (4) - 架构师提示工程指南
506 0
|
6月前
|
机器学习/深度学习 人工智能 搜索推荐
从零构建短视频推荐系统:双塔算法架构解析与代码实现
短视频推荐看似“读心”,实则依赖双塔推荐系统:用户塔与物品塔分别将行为与内容编码为向量,通过相似度匹配实现精准推送。本文解析其架构原理、技术实现与工程挑战,揭秘抖音等平台如何用AI抓住你的注意力。
1534 7
从零构建短视频推荐系统:双塔算法架构解析与代码实现
|
11月前
|
监控 NoSQL 算法
百万级URL重定向工程:大规模网站架构设计与性能优化实战
本文深入探讨了大规模重定向系统的核心挑战与解决方案,涵盖技术瓶颈分析、分布式架构设计、十亿级URL处理策略、全球化部署方案及全链路监控体系。通过数学建模与性能优化,提出三层架构模型,并结合一致性哈希分片算法实现高效路由。同时,对比不同架构的吞吐量与容灾能力,分享某电商平台实践案例,展示性能显著提升。最后展望重定向即服务(RaaS)未来趋势,包括AI动态路由、量子安全跳转和边缘智能等关键技术,为企业提供扩展性强、稳定性高的系统设计参考。
403 25
|
12月前
|
运维 安全 弹性计算
基于阿里云的开源应用智能管理架构设计与工程实践
本文以Websoft9技术方案为例,探讨企业级应用管理的范式。通过解析开源应用管理面临的部署复杂性、运维低效性和知识碎片化三大挑战,提出基于阿里云的三层架构:智能应用管理门户、核心功能层和基础设施层。文章详细阐述了应用编排标准化(IaC实践)、智能运维体系构建及知识资产数字化的技术实现路径,并结合金融与制造行业的案例,展示解决方案的实际效果。最后提供开发者资源与工具链支持,助力企业高效管理应用。
423 1
|
存储 运维 关系型数据库
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
|
负载均衡 数据库 开发工具

热门文章

最新文章