基础架构篇

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

当你开始学习一个全新领域的时候,先思考两个问题。一个是,这个领域到底要解决什么问题?第二个是,这个领域有没有一个非常高角度的思维导图,让我能够了解这个领域有哪些主要的技术,做到心中有数?针对“深度学习推荐系统”这个领域,可能还会有第三个问题,为什么我们要一直强调“深度学习”,深度学习到底给推荐系统带来了什么革命性的影响?

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

推荐系统要解决的问题用一句话总结就是,在“信息过载”的情况下,用户如何高效获取感兴趣的信息。推荐系统正是在“浩如烟海的互联网信息”和“用户的兴趣点”之间,搭建起的一座桥梁。

  • 推荐系统的逻辑架构
    在这里插入图片描述
    清楚了这些信息的定义,推荐系统要处理的问题就可以被形式化地定义为:对于某个用户U(User),在特定场景C(Context)下,针对海量的“物品”信息构建一个函数 ,预测用户对特定候选物品I(Item)的喜好程度,再根据喜好程度对所有候选物品进行排序,生成推荐列表的问题。
    推荐系统逻辑架构
深度学习对推荐系统的革命

在推荐系统逻辑架构图中,居于中心位置的是一个抽象函数f(U,I,C),它负责“猜测”用户的心,为用户可能感兴趣的物品打分,从而得出最终的推荐物品列表。在推荐系统中,这个函数一般被称为“推荐系统模型”(今后简称*“推荐模型”*)

  • 深度学习复杂的模型结构,让深度学习模型具备了理论上拟合任何函数的能力。如果说f(U,I,C) 这个推荐函数具有一个最优的表达形式,那传统的机器学习模型只能够拟合出f(U,I,C) 这个推荐函数的近似形式,而深度学习模型则可以最大程度地接近这个最优形式。
    传统的矩阵分解模型和深度学习矩阵分解模型的对比图

  • 深度学习模型非常灵活的模型结构还让它具备了一个无法替代的优势,就是我们可以让深度学习模型的神经网络模拟很多用户兴趣的变迁过程,甚至用户做出决定的思考过程。如此强大的数据拟合能力和对用户行为的理解能力,是传统机器学习模型不具备的。
    阿里巴巴的深度兴趣进化网络

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

深度学习推荐系统的架构与经典的推荐系统架构其实是一脉相承的,它对经典推荐系统架构中某些特定模块进行了改进,使之能够支持深度学习的应用。先讲经典的推荐系统架构,再讲深度学习对它们的改进。
在这里插入图片描述
基于此,我们就能总结出推荐系统的技术架构图。
推荐系统技术架构示意图
1.第一部分:推荐系统的数据部分
数据部分”主要负责的是“用户”“物品”“场景”信息的收集与处理
三种不同的数据处理方式,按照实时性的强弱排序的话,它们依次是客户端与服务器端实时数据处理流处理平台准实时数据处理大数据平台离线数据处理。在实时性由强到弱递减的同时,三种平台的海量数据处理能力则由弱到强。一个成熟推荐系统的数据流系统会将三者取长补短,配合使用。比如使用 Spark 进行离线数据处理,使用 Flink 进行准实时数据处理等等。
大数据平台加工后的数据出口主要有 3 个: 1.生成推荐系统模型所需的样本数据,用于算法模型的训练和评估。 2.生成推荐系统模型服务(Model Serving)所需的“用户特征”,“物品特征”和一部分“场景特征”,用于推荐系统的线上推断。 3.生成系统监控、商业智能(Business Intelligence,BI)系统所需的统计型数据。

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

  • 模型训练
    模型的训练方法根据环境的不同,可以分为“离线训练”和“在线更新”两部分。其中,离线训练的特点是可以利用全量样本和特征,使模型逼近全局最优点,而在线更新则可以准实时地“消化”新的数据样本,更快地反应新的数据变化趋势,满足模型实时性的需求。

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

最典型的深度学习应用总结( 3 点)
  1. 深度学习中 Embedding 技术在召回层的应用。作为深度学习中非常核心的 Embedding 技术,将它应用在推荐系统的召回层中,做相关物品的快速召回,已经是业界非常主流的解决方案了。
  2. 不同结构的深度学习模型在排序层的应用。排序层(也称精排层)是影响推荐效果的重中之重,也是深度学习模型大展拳脚的领域。深度学习模型的灵活性高,表达能力强的特点,这让它非常适合于大数据量下的精确排序。深度学习排序模型毫无疑问是业界和学界都在不断加大投入,快速迭代的部分
  3. 增强学习在模型更新、工程模型一体化方向上的应用。增强学习可以说是与深度学习密切相关的另一机器学习领域,它在推荐系统中的应用,让推荐系统可以在实时性层面更上一层楼。
    在这里插入图片描述

02 | Sparrow RecSys:我们要实现什么样的推荐系统?

从 GitHub 中 clone 代码,在本地以 maven project 的形式安装,运行 RecSysServer 主函数启动推荐服务器。

  • 首先,从 GitHub 中 clone 代码。这里,我直接给出了 Sparrow Recsys 开源项目的地址:https://github.com/wzhe06/SparrowRecSys。点击之后,你需要使用git clone https://github.com/wzhe06/SparrowRecSys.git命令,或者从 Web 端下载的方式,把代码下载到本地。
  • 然后,你可以在本地以 maven project 的形式安装,也就是导入项目到 IDE。我推荐你使用 IntelliJ IDEA 为本项目的 IDE。这样,我们直接使用 IDEA,打开本地的 Sparrow Recsys 项目根目录就能导入项目。不过有一点需要注意,如果项目没有自动识别为 maven project,你还需要右键点击 pom.xml 文件,选择将该项目设置为 maven project 才能进行后面的操作。
  • 最后,运行 RecSysServer。等到所有库文件自动下载完毕,项目编译完毕后,我们找到项目的主函数com.wzhe.sparrowrecsys.online.RecSysServer,右键点击运行。因为推荐服务器默认运行在 6010 端口,所以我们打开浏览器,输入http://localhost:6010/,就能看到整个推荐系统的前端效果了。
Sparrow Recsys 的功能有哪些

parrow RecSys 是一个电影推荐系统(数据集:来自于著名的电影开源数据集MovieLens,MovieLens 的数据集包括三部分,分别是 movies.csv(电影基本信息数据)、ratings.csv(用户评分数据)和 links.csv(外部链接数据)。下面,我就具体说说它们分别长什么样。),像所有经典的推荐系统一样,它具备“相似推荐”“猜你喜欢”等经典的推荐功能,在页面设置上,主要由“首页”“电影详情页”和“为你推荐页”组成。

  • 当用户首次访问首页时,系统默认以历史用户的平均打分从高到低排序,随着当前用户不断为电影打分,系统会对首页的推荐结果进行个性化的调整,比如电影类型的排名会进行个性化调整,每个类型内部的影片也会进行个性化推荐。
  • 电影详情页可以看到除了罗列出电影的一些基本信息,最关键的部分是相似影片的推荐。相似内容推荐是几乎所有推荐系统非常重要的功能,传统的推荐系统基本依赖于基于内容(Content based)的推荐方法,而我们这门课程会更多地讲解基于深度学习 Embedding 的相似内容推荐方法。
  • 为你推荐页这一部分也是整个推荐系统中最重要的部分,是用户的个性化推荐页面。这个页面会根据用户的点击、评价历史进行个性化推荐。这几乎是所有推荐系统最经典和最主要的应用场景。我希望在这门课程中,你能够动手完成个性化推荐中的每个关键步骤,包括但不限于特征的处理候选集的召回排序层主要模型等等。
Sparrow Recsys 涵盖的技术点

在这里插入图片描述
它一共分为三个模块,分别是数据、模型和前端。其中每个部分都用业界推荐系统的主流技术,比如数据部分我们会用 Spark,Flink 进行样本和特征的处理,模型部分我们会使用 TensorFlow 训练深度神经网络、Wide&Deep、PNN 等模型。
在这里插入图片描述
。。。。。。。。。我想去把代码跑起来

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值