-->

深度学习推荐系统实战_02_01_技术架构深度学习推荐系统的经典技术架构长啥样

你好,我是王哲。

从今天开始啊,我们就正式开始学习深度学习推荐系统了。

在开始之前呀,我想先问你一个问题,当你刚进入一个全新领域的时候,你想做的第一件事儿是什么?每个人可能都会有自己的答案,但对于我来说,我最想搞明白的是两个问题。

一个是这个领域到底要解决的问题是什么?第二个是这个领域有没有一个非常高角度的思维导图,让我能够了解这个领域的技术地图呢?在针对深度学习推荐系统这个领域,我们可能还会有第三个问题。

为什么我们一定要强调深度学习?深度学习到底对推荐系统有什么影响呢?相信听完了这一节课,你心中的这三个问题也都能迎刃而解。

我们先来解决第一个问题,推荐系统要解决的根本问题是什么?在开篇词中,我们提到,推荐醒的应用已经渗透到购物、娱乐、学习等生活的方方面面。

虽然商品推荐、视频推荐、新闻推荐等推荐场景可能完全不同,但既然他们都被称作推荐系统,那么他们解决的问题就一定是相通的,一定遵循着共通的逻辑框架。

这里我对推荐系统要解决的共通的问题。

用一句话总结就是在信息过载的情况下,用户怎么高效获取感兴趣信息的问题。

因此呀推荐系统就像是在浩如烟海的互联网信息和用户的兴趣点之间搭建起座桥梁。

那这座桥是怎么一步一步搭建起来的呢?接下来我们就一起来看看推荐系统比较抽象的逻辑架构是什么样的。

在由此一步步搭建它的技术架构,让你对推荐系统有一个整体上的印象。

从推荐系统的根本问题出发,我们可以清楚的知道,推荐系统要处理的其实是人和信息之间的关系问题,也就是基于人和信息构建出一个找到用户感兴趣信息的方法。

这里信息的定义非常多样,在不同场景下的具体含义也千差万别。

比如说在商品推荐中指的是商品信息,在视频推荐中指的是视频信息。

在新闻推荐中啊,指的就是新闻信息。

为了方便,我们可以把它通称为物品信息。

而从人的角度出发,为了更可靠的推测出人的兴趣点推荐系统啊,希望能利用大量与人相关的信息。

这类信息就包括历史行为、人口属性、关系、网络等等,他们可被统称为用户信息。

此外,在具体的推荐场景中,用户的最终选择一般会受时间、地点、用户的状态等一系列环境信息的影响,这些环境信息又可以被称为场景、信息或上下文信息。

清楚了这些信息的定义。

那推荐系统要处理的问题,就可以被定义成对于某个用户u在特定场景c下,针对海量的物品构建一个函数,预测用户对特定候选物品i的喜好程度,再根据喜好程度对所有候选物品进行排序,生成推荐列表的问题。

这样一来呀,我们就能抽象出推荐系统的逻辑架构了,我把它放在了文稿里。

虽然这个逻辑架构还比较简单,让我们正是在它的基础上,对各个模块进行了细化和扩展,才产生了推荐系统的整个技术体系。

有了推荐系统的逻辑架构,我就能回答刚开始的第三个问题了。

深度学习到底给推荐系统带来了什么影响?结合刚才的逻辑架构图,你会看到中心位置是一个抽象函数FUIC.他负责猜测用户的心,为用户可能感兴趣的物品打分,从而得出最终的推荐物品列表。

在推荐系统中,这个函数叫做推荐系统模型。

为了方便啊,之后我们去叫它推荐模型吧。

深度学习应用于推荐系统,能够极大的增强推荐模型的拟合能力和表达能力。

简单来说就是让推荐模型猜的更准,更能抓住用户的心。

这么说,你可能还没有一个清晰的概念。

接下来我们再从模型结构的角度出发,比较一下传统机器学习推荐模型和深度学习推荐模型的区别。

让你有一个更清晰的认识。

我在文稿中给出了一张模型结构对比图,它对比了传统的矩阵分解模型和深度学习矩阵分解模型。

我们先不说细节,你第一眼看上去有什么感觉,是不是觉得深度学习模型变得更复杂了,一层又一层层数增加了很多,你的感觉一点都没错。

其实就是因为深度学习模型结构比较较杂杂,所以它具备理理论上拟任何函数的能力。

如果说FUIC这个推荐函数具具有一个最优的表达式式传统的积器学习模型,只能够拟合出FFUIC近似形式,而深度学习模型则可以最大程度的接近它的最优形式。

此外呀深度学习模型非常灵活的模型结构,还让它具备了一个无法替代的优势。

就是我们可以让它模拟出很多用户兴趣的变迁过程,甚至模拟用户做出决定的过程。

比如,阿里巴巴的深度学习模型,深度兴趣进化网络,它就利用了三层序列模型的结构,模拟了用户在购买商品时兴趣进化的结程。

这么强大的数据拟合能力和对用户行为的理解能力,是传统机器学习模型不具备的。

但是啊深度学习对推荐系统的革命还远不止这些。

近几年啊由于深度学习模型的结构复杂度有了很大的提高,因此通过训练使模型收敛所需的数据量也大大的增加了。

这也反向推动了推荐系统大数据平台的发展,让推荐系统相关的大数据存储处理更新模块也一同迈入了深度学习时代。

那讲了这么多深度学习对推荐系统的影响,我们好像还没有看到一个完整的深度学习推荐系统架构。

别着急,接下来我们就来详细说说精简的深度学习推荐系统的技术架构是什么样的。

讲之前啊我还要说明一点,深度学习推荐系统的架构与经典的推荐系统架构其实是一脉相承的。

它对经典推荐系统架构中某些模块进行了改进,使之能够支持深度学习的应用。

所以我会先讲经典的推荐系统架构,再讲深度学习,对他们的改进。

在实际的推荐系统中,工程师需要着重解决的问题有两类,一类问题和数据和信息有关。

就是我们要找出用户信息、物品信息、场景、信息分别是什么?怎么存储、更新和处理这些数据。

另一类问题和推荐系统算法和模型相关,就是要搞清楚推荐系统模型是怎么训练预测,达到更好的推荐效果的。

一个工业级推荐系统的基术架构,其实也是按照这两部分展开的。

其中,数据和信息部分逐渐发展,为推荐系统中融合了数据离线、批处理实时流处理的数据流框架。

算法和模型部分呢就进一步细化为推荐系统中及训练评估、部署、线上推断为一体的模型框架。

基于此,我们就能总结出推荐系呃技术架构图,我把它放在了文稿里。

你可以看看你会发现,我把推荐系统的技术架构分为了数据部分和模型部分。

那他们的工作内容和作用分别是什么呢?深度学习对这两部分的影响又有哪些呢?你听我慢慢来说。

首先啊我们先来看推荐系统的数据部分,推荐系统的数据部分,主要负责用户物品、场景信息的收集和处理。

根据处理数据量的不同和处理实时性的不同,我们会用到三种不同的数据处理方式。

按照实时性的强弱排序的话,他们依次是客户端服务器端实时数据处理流处理平台、准实时数据处理、大数据平台、离线数据处理。

在实时性由强到弱递减的同时,三种平台的海量数据处理能力由弱到强。

因此呀一个成熟的数据流系统会让三者取长补短,配合使用。

我们也会在今后的课程中讲到具体的例子。

比如说使用spark进行离线数据处理,使用flink进行准实时数据处理等等。

大数据处理平台对推荐系统日志物品和用户的原数据等信息的处理,获得了推荐模型的训练、数据特征、数据统计数据等等。

那这些数据都有什么用呢?具体来说,大数据平台加工后的数据出口主要有三个。

第一个是生成推荐系统模型所需的样本,数据用于模型的训练和评估。

第二个是生成推荐系统模型服务需要的用户特征、物品特征和一部分场景特征。

他们会应用在推荐系统的线上推断,最后一个是生成系统监控商业智能系统所需要的统计型数据。

我可以这样,打个比方,推荐系统的数据部分就像是整个推荐系统的水源。

我们只有保证水源的持续纯净,才能不断的滋养推荐系统,让它能够高效的运转,并且准确的输出。

在深度学习时代,推荐学习模型对于水源的要求更高了。

首先是水量要大,只有这样才能保证训练出的深度,学习模型能够尽快收敛。

其次是水流要快,让数据能够尽快的流到模型更新训练的模块,这样才能够让模型实时的抓取到用户兴趣变化的趋势。

这就反向推动了大数据引擎、spark以及流计算平台flink发展和应用。

说完了数据部分,我们再来说说推荐系统的模型部分。

推荐性统模型部分是推荐性的主体,模型的结构一般由召回层、排序层还有补充策略与算法层组成。

其中啊召回层一般是由高效的召回规则算法或者简单的模型组成的这能让推荐系统快速从海量的候选集中召回用户可能感兴趣的物品。

排序层是利用排序模型对出差的候选集进行精排序,而补充策略与算法层也被称为再排序层是在返回给用户推荐列表之前,为了同时保证结果的多样性、流行度、新鲜度,这些指标结合一些补充的策略和算法,对推荐列表进行一定的调整,最终形成用户能够看见的推荐列表。

从推荐系统模型接收到所有候选物品集,到最后产生推荐列表这一过程,我们叫它模型服务过程。

为了生成模型服务过程所需的模型参数,我们需要通过模型训练来确定这些参数的取值。

那这里我们就讲一讲模型训练模型的训练方法。

根据环境的不同,分为离线训练和在线更新两部分。

其中,离线训练的特点是可以根据全量样本和特征,使模型逼近全局最优点,而在线更新则可以准实时的消化新的数据样本,更快的反映新的数据变化趋势,满足模型实时性的需求。

除此之外,为了评估推荐系统模型的效果以及模型的迭代优化,推荐系统的模型部分还包括离线评估和线上AB测试等多种评估模块,用来得出线下和线上的评估指标,指导下一步的模型迭代优化。

我们刚才说过,深度学习对于推荐系统的革命正式集中在模型部分。

那具体都有什么呢?我把最典型的深度学习应用总结成了三点。

第一点,深度学习中inmbedding技术在召回层应用作为深度学习中非常核心的inmbedding技技术,把它应用在深度学习的召回层中,做相关物品的快速召回,已经是业界非常主流的解决方案了啊。

第二点,不同结构的深度学习模型,在排序层的应用排序层是影响推荐效果的重中之重,也是深度学习模型大展拳脚的领域。

深度学习模型有灵活性、高、表达能力强的特点,这样它非常适用于大数据量下的精确排序。

深度学习排序模型,毫无疑问是业界和学界都在不断加大投入、快速迭代的部分。

第三点,增强学习在模型更新工程模型一体化方向上的应用。

增强学习,可以说是与深度学习密切相关的。

另一机器学习领域,它在推荐系统中的应用,让推荐系统在实施性上更上一层楼。

好了,今天的主要内容就讲完了,我们来做个总结。

这节课我带你熟悉了深度学习推荐系统的技术架构。

虽然涉及的内容非常多,但如果没有记住的话,也完全不用慌张,只需要在心中留下这个框架的印象就可以了。

你完全可以把这节课的内容当做整个课程的技术索引,让它成为属于你自己的一张知识图谱。

形象点说,你可以把这节课的内容想象成一棵知识树,它有根有干有枝有叶,还有花。

其中推荐系统的根就是推荐系统要解决的根本性问题。

在信息过载的情况下,用户怎么高效获取感兴趣信息的问题。

而推荐性的干就是推荐性的逻辑架构。

对于某个用户,u在特定场景c下,针对海量的物品构建一个函数,预测用户对特定候选物品的喜好程度的过程。

枝和叶呀就是推荐系统的各个推荐模块以及各模块的技术选型。

技术模块撑起了推荐系统的技术架构。

技术选型又让我们可以在技术架构上实现各种细节开枝散叶。

最后,深度学习在推荐系统的应用,无疑是当前推荐系统技术架构上的明珠。

它就像这棵大树上开出的花,是最精彩的点睛之笔。

深度学习的模型结构复杂,数据拟合能力和表达能力更强,能够让推荐模型更好的模拟用户的兴趣变现过程,甚至是做决定的过程。

而深度学习的发展,也推动着推荐系统数据流部分的革命,让它能够更快、更强的处理推荐系统相关的书籍。

好了,这节课我们就讲到这里,希望你能牢牢记住深度学习推荐系统的架构,播撒下这一棵种子,然后跟随我们后面的课程,让它长大成为一棵属于你自己的参天大树。

最后我给你留了一道思考题,我在文稿中给出了netflix推荐系统的经典架构图。

你能结合我这节课讲的推荐系统技术架构,说说netflix架构图中哪些是数据部分,哪些是模型部分吗?好了,这样的深度学习推荐系统和你想的是一样的吗?如果今天的课程对你有帮助,也欢迎你把它转发出去,我们下节课见。