01 | 技术架构:深度学习推荐系统的经典技术架构长啥样?
该思维导图由 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-22233 - 杜军请教大神,我们注意到 Flink 最近更新比较频繁,号称可以做到流批一体分析,甚至 ETL 领域好像也可以用起来,是不是可以在系统架构设计的时候直接用 Flink 取代 Spark,ETL 和实时部分统一到一个架构上来是否可行?谢谢
作者回复: 这是个很好的问题。其实也是大数据工程师们一直追求的批流一体的Kappa架构。 但实践中遇到的困难不少。一是一些历史遗留问题,比如当前很多公司的数据体系大部分是建立在spark基础上的,那直接用flink去替代肯定有风险,所以很多公司还沿用着混合的lambda架构。 另外是Spark和Flink发展的问题,Flink在进化的同时Spark也在发展,比如Structured Streaming的提出就是为了跟Flink竞争,而且Spark本身的社区成熟程度和这么多年的积累还是超过目前的Flink的。所以也难说Flink会完全替代Spark。 但毫无疑问,批流一体是未来的方向,大家也都在往这个方向努力。但我个人觉得Spark和Flink会长期共存,共同发展。
2020-09-27324 - Four y老师,请问关于大数据数据出口的那一部分,请问实时的用户推荐请求也是会先经过大数据处理,生成可供线上推理的数据吗?就是针对文中大数据出口的第二点。
作者回复: 这是个好问题,希望大家多提这样的思考。 在推荐服务器做线上推断时,实时用户请求里面包含的特征一般是直接在服务器内部提取出来的,所以肯定不需要再在数据流中走一遍。 但是线上请求数据最终还是会落盘,生成日志数据,这个过程中,一些流处理,和批处理的平台会对这些数据做进一步处理,生成今后可供使用的特征以及训练用样本。
2020-09-22422 - 飞逝@时间老师,请教几个实际生产问题(T表示当天,T-1表示昨天): 1)在召回阶段,不管是传统的CB/CF算法或者老师说深度学习中的Embedding技术,这部分由于拿的全量数据(T之前的所有数据)所以离线计算,但是由于训练的数据是按时间不断递增更新的,是需要每天都调度这些算法离线计算产生召回物品吗? 2)同样在精排阶段,由于数据每天按时间递增,那训练的模型是每天重新训练?还是按照一定的策略(比如积累一定程度的数据量)再重新训练模型?
作者回复: 一般不管召回模型,还是排序模型,都需要天级别更新。有些一线公司会用流的方式更新模型,可以做到分钟级别的增量更新。
2021-06-1913 - 张弛 Conor老师,想向您请教一下召回层和排序层除了结果上的“粗”和“精”是否还有其他的区别?另外就是二者在深度学习技术加持下能否实现端到端的排序呢?
作者回复: 我们在之后的召回层介绍中还会深入讲解召回层,所以期待之后的交流。 关于端到端排序是一个非常好的问题。其实我们理想状态下最好的结果就是不分召回层和排序层,实现端到端排序。但是工程上很难做到,因为排序层往往是复杂模型,大规模候选集情况下延迟较大。 但是也已经有不少业界团队在探索端到端排序的可能。我觉得是一个很好的值得改进的方向。
2020-09-2829 - fsc2016老师,这套课程侧重点和您的书《深度学习推荐系统》区别是什么了,更偏实战嘛
作者回复: 是的,专栏的名字是《深度学习推荐系统实战》,所以会更注重理论联系实际,用一套代码SparrowRecSys把所有重要的知识点实现一遍,最后串联成一套成型的推荐系统。
2020-09-229 - Geek_f676f3文章写得不错,赞!推荐是一个更复合的领域,在推荐系统实践中,整体的思考架构还可以增加产品、系统纬度;产品、数据、模型、系统四位一体,作为从业人员,也要学会从产品角度来思考问题
作者回复: 是这样,现在的要求越来越全面了。
2021-02-2328 - 西北小英雄老师您好,我去看了您的知乎专栏对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-028 - Sam请问王老师一个概念问题,落盘是什么意思?为什么要用落盘这个词?
作者回复: 落盘一般是指写入磁盘或者一些永久性存储的存储系统。
2020-10-2637 - 夜雨声烦推荐系统要解决的三个问题: 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-097