王喆-深度学习推荐系统实战基础架构篇-(task1)dl推荐系统架构

奇跡の山 奇跡の山     2023-01-08     682

关键词:

学习心得

  • 通过task1的学习在脑海里建立DL背景的推荐系统架构:为了解决【在“信息过载”情况下,用户怎么高效获取感兴趣的信息】的问题,并且构建更好的拟合数据和表达能力的模型,深度学习上场了。其中DL推荐模型 = 召回层 + 排序层 + 补充策略与算法层 ,这里的模型指模型服务过程。
  • 推荐系统的逻辑架构:对于某个用户U(User),在特定场景C(Context)下,针对海量的“物品”构建一个函数 ,预测用户对特定候选物品I(Item)的喜好程度的过程。
  • 深度学习中 Embedding 技术在召回层的应用,做相关物品的快速召回,已经是业界非常主流的解决方案。排序层(也称精排层)是影响推荐效果的重中之重,也是深度学习模型大展拳脚的领域,因为深度学习模型灵活性高,表达能力强(因此非常适合于大数据量下的精确排序)。

PS:深度学习的发展,也推动着推荐系统数据流部分的革命(就是平时说的大数据开发岗了),让它能够更快、更强地处理推荐系统相关的数据。

回顾:

【王喆-深度学习推荐系统实战】开篇词

当学习一个全新领域,王喆大佬最想搞明白的是2个问题:
(1)这个领域能解决什么问题?
(2)这个领域有没有一个非常高角度的思维导图,让自己能了解该领域有哪些技术?
(3)针对深度学习,还有第三个问题:深度学习对推荐系统带来啥革命性变革?

一、推荐系统要解决的根本问题

无论什么推荐系统场景,如商品推荐、视频推荐、新闻推荐这些推荐场景,都有共同的逻辑框架,而推荐系统是“浩如烟海的互联网信息”和“用户兴趣点”之间的桥梁,我们的推荐系统要解决的就是在“信息过载”的情况下,用户如何高效获得感兴趣的信息

二、推荐系统的逻辑架构

推荐系统要解决“人”与“商品信息”之间的关系。

图1 推荐系统逻辑架构

2.1 三大信息

  • 用户信息:而从“人”角度看,为了精准推测出“人”的兴趣点,推荐系统需要利用大量与“人”相关的信息,即历史行为、人口属性、关系网络等,它们可以被统称为“用户信息”。
  • “场景信息”或“上下文信息”:在具体的推荐场景中,用户的最终选择一般会受时间、地点、用户的状态等一系列环境信息的影响。
  • “物品信息”:比如说,在商品推荐中指的是“商品信息”,在视频推荐中指的是“视频信息”,在新闻推荐中指的是“新闻信息”。

2.2 推荐系统要处理的问题:

结合上图:
(1)对于某个用户U(User),在特定场景C(Context)下,针对海量的“物品”信息构建一个函数 ;
(2)该函数预测用户对特定候选物品I(Item)的喜好程度;
(3)再根据喜好程度对所有候选物品进行排序,生成推荐列表的问题。

三、深度学习对推荐系统的革命

在上面图一的推荐系统逻辑架构图中,中间的函数 f ( U , I , C ) f(U,I,C) f(U,I,C)(一般称为推荐系统模型,后面直接说“推荐模型”)

3.1 传统的推荐模型

传统的推荐模型叠加了很多层,模型较为复杂,只能拟合出推荐函数的近似形式,而深度学习模型能最大程度的接近该最优形式。

图2 传统的矩阵分解模型和深度学习矩阵分解模型的对比图
来源:《Neural collaborative filtering》

3.2 深度学习推荐系统

  • 深度学习复杂的模型结构应用于推荐系统,能够极大地增强推荐模型的拟合能力和表达能力,即使得推荐函数具有最优的表达形式。
  • 深度学习模型的神经网络模拟很多用户兴趣的变迁过程,甚至用户做出决定的思考过程。比如阿里巴巴的深度学习模型——深度兴趣进化网络(如下图),它利用了三层序列模型的结构,模拟了用户在购买商品时兴趣进化的过程,如此强大的数据拟合能力和对用户行为的理解能力,是传统机器学习模型不具备的。

图3 阿里巴巴的深度兴趣进化网络
来源:《Deep Interest Evolution Network for Click-Through Rate Prediction》

四、深度学习推荐系统的技术架构

深度学习推荐系统不是完全创新搞一个技术架构出来,而是对以前的架构模块修改,使得能支持深度学习的应用(类似的应用思想可以想在其他领域,如智能金融,医疗病例NLP应用等blabla的)。

在实际的推荐系统中,工程师需要着重解决的问题有两类:

  • 与数据和信息相关,即“用户信息”“物品信息”“场景信息”分别是什么?如何存储、更新和处理数据?——数据和信息部分逐渐发展为推荐系统中融合了数据离线批处理、实时流处理的数据流框架。
  • 与推荐系统算法和模型相关,即推荐系统模型如何训练、预测,以及如何达成更好的推荐效果?——算法和模型部分则进一步细化为推荐系统中,集训练(Training)、评估(Evaluation)、部署(Deployment)、线上推断(Online Inference)为一体的模型框架。

图4 推荐系统技术架构示意图,源自王喆

4.1 数据部分

推荐系统的“数据部分”主要负责的是“用户”“物品”“场景”信息的收集与处理。根据处理数据量和处理实时性的不同,我们会用到三种不同的数据处理方式,按照实时性的强弱排序的话,它们依次:客户端与服务器端实时数据处理、流处理平台准实时数据处理、大数据平台离线数据处理

在实时性由强到弱递减的同时,三种平台的海量数据处理能力则由弱到强。因此,一个成熟推荐系统的数据流系统会将三者取长补短,配合使用。后面会提到具体的例子,比如使用 Spark 进行离线数据处理,使用 Flink 进行准实时数据处理等等。

大数据计算平台通过对推荐系统日志,物品和用户的元数据等信息的处理,获得了推荐模型的训练数据、特征数据、统计数据等。那这些数据都有什么用呢?具体说来,大数据平台加工后的数据出口主要有 3 个:

  • 生成推荐系统模型所需的样本数据,用于算法模型的训练和评估。
  • 生成推荐系统模型服务(Model Serving)所需的“用户特征”,“物品特征”和一部分“场景特征”,用于推荐系统的线上推断。
  • 生成系统监控、商业智能(Business Intelligence,BI)系统所需的统计型数据。

推荐系统的数据部分是整个推荐系统的“水源”:

  • 首先是水量要大,只有这样才能保证我们训练出的深度学习模型能够尽快收敛;
  • 其次是“水流”要快,让数据能够尽快地流到模型更新训练的模块,这样才能够让模型实时的抓住用户兴趣变化的趋势,这就推动了大数据引擎 Spark,以及流计算平台 Flink 的发展和应用。

4.2 模型部分

推荐系统的“模型部分”是推荐系统的主体。模型的结构一般由“召回层”、“排序层”以及“补充策略与算法层”组成。
模型服务过程:推荐系统模型接收所有候选物品集,到最后产生推荐列表。
通过模型的训练确定模型结构、结构中不同参数权重值,以及模型相关算法和策略中的参数取值。

图源:58同城推荐系统架构

(1)模型的结构组成

  • “召回层”一般由高效的召回规则、算法或简单的模型组成,这让推荐系统能快速从海量的候选集中召回用户可能感兴趣的物品。
  • “排序层”则是利用排序模型对初筛的候选集进行精排序。
  • “补充策略与算法层”,也被称为“再排序层”( r e r a n k rerank rerank),是在返回给用户推荐列表之前,为兼顾结果的“多样性”“流行度”“新鲜度”等指标,结合一些补充的策略和算法对推荐列表进行一定的调整,最终形成用户可见的推荐列表。

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

(2)模型训练方法的分类

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

  • 离线训练的特点是可以利用全量样本和特征,使模型逼近全局最优点。PS:可以看做是在线更新的预训练模型。
  • 在线更新则可以准实时地“消化”新的数据样本,更快地反应新的数据变化趋势,满足模型实时性的需求。

(3)三点总结

  • 深度学习中 Embedding 技术在召回层的应用。作为深度学习中非常核心的 Embedding 技术,将它应用在推荐系统的召回层中,做相关物品的快速召回,已经是业界非常主流的解决方案了。
  • 不同结构的深度学习模型在排序层的应用。排序层(也称精排层)是影响推荐效果的重中之重,也是深度学习模型大展拳脚的领域。深度学习模型灵活性高,表达能力强(因此非常适合于大数据量下的精确排序)。工业界和学业界都在不断投入和迭代深度学习排序模型。
  • 增强学习在模型更新、工程模型一体化方向上的应用,它让推荐系统可以在实时性层面更强。

PS:推荐系统的模型(策略层)一般分三个阶段,召回层(Embeding技术)、排序层(精排-深度模型)、增强学习。

五、作业

下面是 Netflix(一家流媒体公司) 的推荐系统的经典架构图,结合所学的推荐系统技术架构,问:哪些是数据部分,哪些是模型部分。

数据部分:event distribution, hadoop, query results, netflex.hermes, user event queue, netflix.manhattan.
模型部分:model training, models, online computation, online service, algorithm service.
nearline computation也属于数据部分,正中央的evcache等几个数据库可以看作数据部分和模型部分的接口。

Reference

《深度学习推荐系统实战》——王喆

传统机器学习和前沿深度学习推荐模型演化关系介绍

本文来自王喆老师《深度学习推荐系统》一书,如果有一定的推荐系统基础的话,建议读一读,当然如果只是初学者的话还是建议从基础的开始学起,比如《推荐系统开发实战》。传统机器学习推荐模型演化简单... 查看详情

王喆-推荐系统复习篇-相似电影推荐功能(代码片段)

学习总结(1)在sparrowRecSys中使用Embedding方法准备好了食材,使用Redis把食材下锅,做菜的步骤稍微复杂一点,分为建立候选集、实现召回层、实现排序层这3个步骤。最后我们用HTML+Ajax的方式把相似电影推... 查看详情

学习tf:《tensorflow技术解析与实战》pdf+代码

TensorFlow是谷歌公司开发的深度学习框架,也是目前深度学习的主流框架之一。《TensorFlow技术解析与实战》从深度学习的基础讲起,深入TensorFlow框架原理、模型构建、源代码分析和网络实现等各个方面。分为基础篇、实战篇和提... 查看详情

王喆:工作近十年的方向思考

《DataFun·5周年系列技术文章》专栏·第02篇作者|王喆 策划 | Hoh导读:大家好,我是《深度学习推荐系统》的作者王喆,很多同行可能读过这本系统性介绍推荐系统的书,但大多数人可能不知道我职业生涯的头四... 查看详情

王喆-推荐系统线上服务篇-(task5)部署离线模型(代码片段)

学习总结(1)业界主流的模型服务方法有4种,分别是预存推荐结果或Embeding结果、预训练Embeding+轻量级线上模型、利用PMML转换和部署模型以及TensorFlowServing。(2)重点使用基于Docker的TensorFlowServing服务࿰... 查看详情

bp神经网络分类实战项目(深度学习笔记)原创!基础篇

查看详情

推荐系统遇上深度学习--gbdt+lr融合方案实战

推荐系统遇上深度学习(十)--GBDT+LR融合方案实战0.8012018.05.1916:17:18字数2068阅读22568推荐系统遇上深度学习系列:推荐系统遇上深度学习(一)--FM模型理论和实践:https://www.jianshu.com/p/152ae633fb00推荐系统遇上深度学习(二)--FFM模型理论... 查看详情

人脸识别完整项目实战:完整项目案例运行演示

...的算法原理和实现机制,让大家对人脸识别与机器学习、深度学习进行有效关联;学习框架篇:系统介绍主流深度学习框架,重点就本课程用到Dlib深度学习框架进行介绍,通过dlib深度学习实战案例1和dlib深度学习实战案例2,两... 查看详情

keras深度学习实战——推荐系统数据编码(代码片段)

Keras深度学习实战——推荐系统数据编码0.前言1.推荐系统数据编码的必要性2.推荐系统数据编码2.1在推荐系统中对用户和电影进行编码2.2数据集介绍2.3用于推荐系统的编码策略2.4实现推荐系统编码模型相关链接0.前言在《自编码... 查看详情

深度学习核心技术精讲100篇(五十九)-多业务融合推荐策略实战应用

前言58同城作为分类信息网站,服务覆盖多个领域,如房屋租售、招聘求职、二手买卖等等,不同的业务有不同的特点,这使得多业务融合推荐成为一大挑战。如何准确挖掘用户的需求?如何平衡各业务之间的流量分配?如何增... 查看详情

《深度学习与计算机视觉算法原理框架应用》pdf+《深度学习之pytorch实战计算机视觉》pdf

下载:https://pan.baidu.com/s/12-s95JrHek82tLRk3UQO_w《深度学习与计算机视觉算法原理、框架应用》PDF,带书签,347页。《大数据架构详解:从数据获取到深度学习》PDF,带书签,373页。配套源代码。下载:https://pan.baidu.com/s/1P0-o29x0ZrXp8Wo... 查看详情

蘑菇街推荐算法架构实战

机器不学习jqbxx.com-专注机器学习,深度学习,自然语言处理,大数据,个性化推荐,搜索算法,知识图谱推荐一直是电商平台的重要流量入口。以往在电商平台上,推荐的场景更多的覆盖在交易的各个环节,比如详情页、购物车、订单... 查看详情

深度学习核心技术精讲100篇(七十七)-主流推荐引擎技术及优缺点分析

前言在本文中,将详细介绍多种类型的推荐系统,具体介绍基于近邻算法的推荐引擎、个性化推荐引擎、基于模型的推荐系统和混合推荐引擎等,并分析介绍每种推荐系统的优缺点。主要介绍的不同类型的推荐系统包括:近邻算... 查看详情

推荐系统推荐系统数据流的经典技术架构+微软阿里微软等10大深度学习ctr模型最全演化图谱

...数据部分2.2模型部分2.3推荐系统数据流的技术架构图三、深度学习推荐模型的演化趋势3.1前深度学习时代CTR预估模型的演化之路3.2谷歌、阿里、微软等10大深度学习CTR模型最全演化图谱【推荐、广告、搜索领域】3.3CTR基本模型结... 查看详情

opencv-python实战(18)——深度学习简介与入门示例(快来一起推开深度学习的大门吧)(代码片段)

OpenCV-Python实战(18)——深度学习简介与入门示例(快来一起推开深度学习的大门吧)0.前言1.计算机视觉中的深度学习简介1.1深度学习的特点1.2深度学习大爆发2.用于图像分类的深度学习简介3.用于目标检测的深... 查看详情

学习keras:《keras快速上手基于python的深度学习实战》pdf代码+mobi

...部分可以作为入门人的参考。《Keras快速上手基于Python的深度学习实战》系统地讲解了深度学习的基本知识、建模过程和应用,并以深度学习在推荐系统、图像识别、自然语言处理、文字生成和时间序列中的具体应用为案例,详... 查看详情

免费的中文深度学习全书:《深度学习理论与实战:提高篇》

在线阅读:深度学习理论与实战:提高篇序言16年9月的时候我在CSDN发了一些深度学习的文章,主要是面向没有太多经验的开发者。达文读了后觉得我的文章比较通俗易懂,邀请我写一本书,当时头脑一热就答应下来。虽然现在... 查看详情

推荐系统基础之介绍入门篇(代码片段)

大家好,我是辣条。今天给大家带来推荐系统介绍入门。目录一、推荐系统简介二、推荐系统设计2.1推荐系统要素2.2推荐系统架构三、推荐算法一推荐模型构建流程二最经典的推荐算法:协同过滤推荐算法(Collaborativ... 查看详情