深度学习推荐系统实战
王喆
Roku 推荐系统架构负责人,前 hulu 高级研究员,《深度学习推荐系统》作者
33298 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 44 讲
深度学习推荐系统实战
15
15
1.0x
00:00/00:00
登录|注册

01 | 技术架构:深度学习推荐系统的经典技术架构长啥样?

深度学习推荐系统的技术架构
深度学习对推荐系统的革命
推荐系统的逻辑架构
推荐系统要解决的根本问题
深度学习推荐系统的技术架构

该思维导图由 AI 生成,仅供参考

你好,我是王喆。从今天开始,我们正式开始学习“深度学习推荐系统”了。在开始之前,我想先问你一个问题:当你开始学习一个全新领域的时候,你想做的第一件事情是什么?
当然每个人可能都有自己的答案,但对于我自己来说,我最想搞明白的是两个问题。一个是,这个领域到底要解决什么问题?第二个是,这个领域有没有一个非常高角度的思维导图,让我能够了解这个领域有哪些主要的技术,做到心中有数?
针对“深度学习推荐系统”这个领域啊,可能还会有第三个问题,为什么我们要一直强调“深度学习”,深度学习到底给推荐系统带来了什么革命性的影响?相信听完了这一节课,你心中的这三个问题也都能迎刃而解。

推荐系统要解决的根本问题是什么?

在开篇词中我们提到,推荐系统的应用已经渗透到购物、娱乐、学习等生活的方方面面,虽然商品推荐、视频推荐、新闻推荐这些推荐场景可能完全不同,既然它们都被称为“推荐系统”,解决的本质问题一定是相通的,遵循着共通的逻辑框架。
推荐系统要解决的问题用一句话总结就是,在“信息过载”的情况下,用户如何高效获取感兴趣的信息。
因此,推荐系统正是在“浩如烟海的互联网信息”和“用户的兴趣点”之间,搭建起的一座桥梁。那这座桥是怎么一步步搭建起来的呢?下面,我们先来看看,推荐系统比较抽象的逻辑架构是什么样的,再一步步搭建起它的技术架构,让你对推荐系统有一个整体上的印象。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

深度学习推荐系统的技术架构是本文的主要内容。文章首先介绍了推荐系统要解决的根本问题,即在信息过载的情况下,如何高效获取感兴趣的信息。然后,从推荐系统的逻辑架构出发,详细阐述了推荐系统处理“人”和“信息”之间关系的方法。接着,文章探讨了深度学习对推荐系统的革命性影响,强调了深度学习模型的拟合能力和表达能力,以及其对用户行为的理解能力。最后,文章介绍了深度学习推荐系统的技术架构,包括数据部分和模型部分的工作内容和影响。 在数据部分,推荐系统的“数据部分”主要负责的是“用户”“物品”“场景”信息的收集与处理。根据处理数据量和处理实时性的不同,会用到三种不同的数据处理方式,包括客户端与服务器端实时数据处理、流处理平台准实时数据处理、大数据平台离线数据处理。大数据计算平台通过对推荐系统日志、物品和用户的元数据等信息的处理,获得了推荐模型的训练数据、特征数据、统计数据等。 在模型部分,推荐系统的“模型部分”是推荐系统的主体,由“召回层”、“排序层”以及“补充策略与算法层”组成。深度学习在推荐系统中的应用包括Embedding技术在召回层的应用、不同结构的深度学习模型在排序层的应用以及增强学习在模型更新、工程模型一体化方向上的应用。 总的来说,本文深入浅出地解释了深度学习推荐系统的技术特点和架构,为读者提供了全面的了解和认识。深度学习在推荐系统中的应用为推荐系统带来了革命性的影响,提高了模型的拟合能力和表达能力,同时推动了数据处理平台的发展和应用。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深度学习推荐系统实战》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(41)

  • 最新
  • 精选
  • 朱月俊
    数据部分:event distribution, hadoop, query results, netflex.hermes, user event queue, netflix.manhattan. 模型部分:model training, models, online computation, online service, algorithm service.

    作者回复: 赞,完全正确。另外nearline computation也属于数据部分,正中央的evcache等几个数据库可以看作数据部分和模型部分的接口。

    2020-09-22
    2
    33
  • 杜军
    请教大神,我们注意到 Flink 最近更新比较频繁,号称可以做到流批一体分析,甚至 ETL 领域好像也可以用起来,是不是可以在系统架构设计的时候直接用 Flink 取代 Spark,ETL 和实时部分统一到一个架构上来是否可行?谢谢

    作者回复: 这是个很好的问题。其实也是大数据工程师们一直追求的批流一体的Kappa架构。 但实践中遇到的困难不少。一是一些历史遗留问题,比如当前很多公司的数据体系大部分是建立在spark基础上的,那直接用flink去替代肯定有风险,所以很多公司还沿用着混合的lambda架构。 另外是Spark和Flink发展的问题,Flink在进化的同时Spark也在发展,比如Structured Streaming的提出就是为了跟Flink竞争,而且Spark本身的社区成熟程度和这么多年的积累还是超过目前的Flink的。所以也难说Flink会完全替代Spark。 但毫无疑问,批流一体是未来的方向,大家也都在往这个方向努力。但我个人觉得Spark和Flink会长期共存,共同发展。

    2020-09-27
    3
    24
  • Four y
    老师,请问关于大数据数据出口的那一部分,请问实时的用户推荐请求也是会先经过大数据处理,生成可供线上推理的数据吗?就是针对文中大数据出口的第二点。

    作者回复: 这是个好问题,希望大家多提这样的思考。 在推荐服务器做线上推断时,实时用户请求里面包含的特征一般是直接在服务器内部提取出来的,所以肯定不需要再在数据流中走一遍。 但是线上请求数据最终还是会落盘,生成日志数据,这个过程中,一些流处理,和批处理的平台会对这些数据做进一步处理,生成今后可供使用的特征以及训练用样本。

    2020-09-22
    4
    22
  • 飞逝@时间
    老师,请教几个实际生产问题(T表示当天,T-1表示昨天): 1)在召回阶段,不管是传统的CB/CF算法或者老师说深度学习中的Embedding技术,这部分由于拿的全量数据(T之前的所有数据)所以离线计算,但是由于训练的数据是按时间不断递增更新的,是需要每天都调度这些算法离线计算产生召回物品吗? 2)同样在精排阶段,由于数据每天按时间递增,那训练的模型是每天重新训练?还是按照一定的策略(比如积累一定程度的数据量)再重新训练模型?

    作者回复: 一般不管召回模型,还是排序模型,都需要天级别更新。有些一线公司会用流的方式更新模型,可以做到分钟级别的增量更新。

    2021-06-19
    13
  • 张弛 Conor
    老师,想向您请教一下召回层和排序层除了结果上的“粗”和“精”是否还有其他的区别?另外就是二者在深度学习技术加持下能否实现端到端的排序呢?

    作者回复: 我们在之后的召回层介绍中还会深入讲解召回层,所以期待之后的交流。 关于端到端排序是一个非常好的问题。其实我们理想状态下最好的结果就是不分召回层和排序层,实现端到端排序。但是工程上很难做到,因为排序层往往是复杂模型,大规模候选集情况下延迟较大。 但是也已经有不少业界团队在探索端到端排序的可能。我觉得是一个很好的值得改进的方向。

    2020-09-28
    2
    9
  • fsc2016
    老师,这套课程侧重点和您的书《深度学习推荐系统》区别是什么了,更偏实战嘛

    作者回复: 是的,专栏的名字是《深度学习推荐系统实战》,所以会更注重理论联系实际,用一套代码SparrowRecSys把所有重要的知识点实现一遍,最后串联成一套成型的推荐系统。

    2020-09-22
    9
  • Geek_f676f3
    文章写得不错,赞!推荐是一个更复合的领域,在推荐系统实践中,整体的思考架构还可以增加产品、系统纬度;产品、数据、模型、系统四位一体,作为从业人员,也要学会从产品角度来思考问题

    作者回复: 是这样,现在的要求越来越全面了。

    2021-02-23
    2
    8
  • 西北小英雄
    老师您好,我去看了您的知乎专栏对Netflix推荐系统架构图的讲解,对下面部分有点疑问。(可能我是推荐系统新手,没有工程经验对架构不太懂,如果的问题不是很营养,望谅解) 比如从online 到nearline和offline通过用户消息队列(User Event Queue,现在基本都使用Kafka)来缓存数据流,这是连接online和其他层的接口。 而从nearline和offline中连接online的接口则是algorithm service,online data service,以及model到online层的接口。 1.单从图中也看不出User Event Queue和offline层有关系, 2.nearline层是把计算结果存入mysql等数据库后给online层的algorithm service使用了吗?

    作者回复: 1、User Event Queue就拿用kafka举例,跟offline的关系确实不强,唯一的关系就是数据经kafka最终会落盘到离线的存储系统。所以这一点你的理解没错 2、nearline的理解也没错,一般来说nearline处理好的数据、特征会存储到evcache,redis等内存数据库供online service使用。

    2020-10-02
    8
  • Sam
    请问王老师一个概念问题,落盘是什么意思?为什么要用落盘这个词?

    作者回复: 落盘一般是指写入磁盘或者一些永久性存储的存储系统。

    2020-10-26
    3
    7
  • 夜雨声烦
    推荐系统要解决的三个问题: 1,推荐系统要解决的问题是什么? 在“信息过载”的情况下,用户如何高效获取感兴趣的信息。 2,有没有一个非常高角度的思维导图,让我能够了解这个领域有哪些主要的技术,做到心中有数? 上面的树结构,以及根、枝干、叶子代表的含义; 3,为什么我们要一直强调“深度学习”,深度学习到底给推荐系统带来了什么革命性的影响? 深度学习的模型结构复杂,数据拟合能力和表达能力更强,能够让推荐模型更好的模拟用户的兴趣变迁过程,甚至是做决定的过程。而深度学习的发展,也推动着推荐系统数据流部分的革命,让它能够更快、更强地处理推荐系统相关的数据。 作业: 数据部分:event distribution,user event queue,Netflix.Manhattan,Cassandra,mysql,EVcache,Online Data Service;Query result,Offline data,Nearline Computation; 模型部分:model training,Models,online computation,online data service,Algorithm Service,Machine Learning Algorithm

    作者回复: 作业部分回答的非常好。

    2020-10-09
    7
收起评论
显示
设置
留言
41
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部