08 模型演化根本 深度学习推荐算法的五大范式

news2024/9/22 23:25:19

易经》“九三:君于终日乾乾;夕惕若,厉无咎”。九三是指阳爻在卦中处于第三位,已经到达中位,惕龙指这个阶段逐渐理性,德才已经显现,会引人注目;但要反思自己的不足,努力不懈,日夜警惕戒备,即使处于危境,也可无咎。

模块三我们将讲解深度学习推荐算法,这部分近年来发展迅速,我们将学习和掌握最有影响力的深度学习推荐算法及其发展脉络。

上一课时《07 | 物以类聚,基于特征的七种算法模型》,我们讲到传统机器学习组合 GDBT+LR 模型开启了特征工程化和端到端学习的开端,而深度学习的发展将继续延续了这一趋势。

神经网络的结构更加复杂和灵活多变,所以复杂的网络结构就需要更多、更丰富的样本去拟合参数,这样对算力的要求也就高了很多。但是深度学习能够全自动从原有数据中提取到有用特征,而对于处理文本、图像、语音等非结构化数据,人工筛选是基本不可能完成,所以我们说深度学习具有传统机器学习无法比拟的优势。

因此,从这一讲开始我们进入激动人心的深度学习算法部分。

进入深度学习时代后,推荐模型主要有以下两个方面的进展:

  • 与传统模型相比,深度学习模型的表达能力更强,且能够从数据中挖掘出更多隐藏的模式;

  • 深度学习模型结构非常灵活,它能够根据业务场景和数据特点灵活调整模型结构,使得模型与应用场景实现完美契合。

《道德经》中“道之在天下,犹川谷之于江海;为天下谷,常德乃足,复归于朴。朴散则为器,圣人用之,则为官长,故大制不割。”这句话主要阐述了“见素抱朴”的思想。

在光怪陆离、纷繁芜杂的世界,我们只有剥离事物的表面现象,找到事物的本质,才能把握一切事物的变化规律,并据此预测事物的发展趋势,也就是所谓的“降维”思想。

而机器学习的过程就是对世界降维理解的过程,其中用户的隐向量是对用户的降维理解,物品的隐向量是对物品的降维理解,这就是我们说的“朴”。

那么,我们应该如何找到“朴”呢?也就是如何找到事物的本质呢?

在深度学习中,通过找到一些范式方法,并将这些范式方法应用到范式模型中,我们就可以得到“朴”。

所谓的范式模型,是指其他模型基于此范式演化的基础模型。

得到的“朴”如果不够精确,我们则可以通过改进范式与范式的组合方式,来拟合反馈更加精确的“朴”,这就形成了推荐系统的深度学习体系。

这也是这一讲的重点内容,下面我们着重介绍一下。在推荐系统中,深度学习的范式模型分为多层感知器(MLP)、自编码器(AE)、受限玻尔兹曼机(RBM)、卷积神经网络(CNN)、循环神经网络(RNN)这五种,下面我们逐一说明一下。

多层感知器(MLP)—— 最通用组件

目前多层感知器(Muti-Layer Perception)在推荐领域应用甚为广泛,它是一种简单、原汁原味的神经网络,能有效地建模高阶特征之间的交互,属于深度推荐算法中最通用的组件,并且其他的各种范式都是由此演变而来。

最典型的 MLP 包括三层:输入层、一个或多个隐藏层和输出层。MLP 神经网络的不同层之间是全连接的;每个神经元上面都有一个输入权重、偏置量和激活函数。

MLP 已被证明是一种通用的函数近似方法,可以拟合复杂的函数或解决分类问题。

自编码器(AE)—— 学习隐向量表征

自编码器(AutoEncoder)是最常见的神经网络无监督模型,主要用于特征降维或特征提取。

AE 一般由编码器(Encoder)和解码器(Decoder)组成,

  • 这里可以理解为学习到输入数据的隐向量表征称为编码;

  • 用隐向量表征重构出原始输入数据称为解码。

模型目的在于,使输入和输出无限逼近。学习数据的隐向量表征由最中间层计算输出。

自编码器在推荐领域,主要用于学习用户或物品的隐向量表征,然后基于表征预测用户对物品的偏好。需要说明的是,自编码器的适用场景与其训练数据强相关,且因为属于无监督模型,无需标注,可以自动进行样本学习。

受限玻尔兹曼机(RBM)—— 评分预测

受限玻尔兹曼机(Restricted Boltzmann Machine)是一个由可见层和隐藏层组成的双层神经网络无监督模型,两层内部不存在连接,两层之间进行全连接。

RBM 与玻尔兹曼机(Boltzmann Machine)的差别在于:RBM 不存在两层内部连接,而 BM 存在两层内部连接,因为去除了同层之间的连接,从而提高了训练效率。

RBM 在推荐领域,主要用于评分预测,通过学习用户对物品的评分数据进行预测。

卷积神经网络(CNN)—— 提取隐向量表征

卷积神经网络(Convolutional Neural Network)是一种特殊的前馈神经网络,基本结构上包含以下三层:

  • 卷积层,捕捉局部特征;

  • 池化层,可大幅降低模型参数量级,并有效避免过拟合;

  • 全连接层,根据不同的场景和任务输出模型的结果。

可以看出,CNN 把大量参数降维成少量参数再做处理,简化问题域的同时,又不会影响结果。

CNN 在推荐领域,主要用于从图像、文本、音频中提取物品的隐向量表征,并结合用户的隐向量表征进行推荐。

循环神经网络(RNN)—— 序列数据建模

循环神经网络(Recurrent Neural Network)是一种含有反馈结构的神经网络,模型输出不但与当前输入相关,与之前的输入也相关,适用于对序列数据建模。

RNN 在网络各隐层之间的节点是具有连接的,可根据输入层的输出和前一时刻的隐层状态来计算当前时刻的隐层输出,从而具备对过去信息的记忆。

RNN 本身存在梯度消失和梯度爆炸的问题,经过改进网络结构后,如长短时记忆网络(LSTM)和门控循环单元(GRU)等采用了特殊的隐层结构,使得模型具备有效建模长程依赖关系的能力。

RNN 在推荐领域,主要用于对用户行为序列的建模,以及对用户或物品相关文本信息序列的建模等。

【其他范式还有哪些?】

除了上述 5 种常用范式之外,还包括神经自回归分布估计(Neural Autoregressive Distribution Estimation)、对抗网络(Adversarial Networks)等范式。

由于它们在推荐领域的应用比较有限,这一讲中我们就不一一介绍了。

此外,目前注意力机制、深度强化学习等在深度学习领域中发展迅速,在推荐领域深度模型中也有普遍化的趋势,这类模型我们将在“10 | 更深、更专注的 7 种深度推荐范式组合算法”中介绍。

【从 深度网络范式 到 深度学习推荐模型】

利用以上深度网络范式来构成深度学习推荐模型主要有以下两种方法。

1、利用深度网络范式进行用户和物品的表征或者高阶交互特征提取(双塔模型),再将隐向量表征集成到推荐系统模型当中,这里集成方式又分为以下两种。

松耦合:信息呈单向流动,将隐向量表征作为推荐模型的输入。

紧耦合:将深度学习部分作为单独的组件接入模型,再加上其他传统或者深度模型组件,同时进行学习和预测。这种情况下,隐向量表征是跟随模型学习而变化的。

2、利用深度网络范式直接拟合效用函数,这种方式直接利用一个或多个深度网络范式,产出预测结果。

以上方法我们将在后续的课程中逐步讲解。

本节小结

道德经中“道生一,一生二,二生三,三生万物”,说的是“道”的诞生,从无到有产生阴阳二气,阴阳二气相交而形成了“三”,“三”即是万物的范式,通过范式的循环往复地叠加组合产生了万物。

本节介绍了深度推荐方法中的范式,下一节开始我们将逐个介绍基于这些范式方法的深度学习模型。那么关于深度推荐算法,你了解哪些?它们的关系是什么?欢迎与我讨论。

另外,如果你觉得本专栏有价值,欢迎分享给更多好友~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1930132.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

昇思25天学习打卡营|MQ(mindquantum)编程实践

学AI还能赢奖品?每天30分钟,25天打通AI任督二脉 (qq.com) 安装 Packages # 安装 mindquantum, networkx !pip install mindquantum -i https://pypi.mirrors.ustc.edu.cn/simple !pip install networkx -i https://pypi.mirrors.ustc.edu.cn/simple 安装…

脸书登录指南:如何在同一台设备登录多个Facebook账号?

海外社媒营销人员和跨境卖家现在越来越依赖社交媒体平台来拓展业务和接触潜在客户,尤其是Facebook。然而,在进行脸书登录时,你可能会问:如何在同一台设备上登录多个Facebook账号,而不违反Facebook的使用条款&#xff1…

指针与数组笔试题解析

文章目录 1.一维数组1.1 整型数组1.2 字符数组 2. 二维数组3.指针笔试题3.1 练习13.2 练习23.3 练习3 数组名的意义: 1.sizeof(数组名),这里的数组表示整个数组,计算的整个数组的大小 2.&数组名,这里的数组名表示整个数组的&a…

【Diffusion学习】【生成式AI】Stable Diffusion、DALL-E、Imagen 背後共同的套路

文章目录 图片生成Framework 需要3个组件:相关论文【Stable Diffusion,DALL-E,Imagen】 具体介绍三个组件1. Text encoder介绍【结论:文字的encoder重要,Diffusion的模型不是很重要!】评估指标:…

用go实现限流算法

文章目录 固定窗口优缺点:适用场景:总结: 滑动窗口优缺点:适用场景:总结: 漏桶限流器优缺点:适用场景:总结: 令牌桶优缺点:适用场景:总结&#xf…

定义损失函数并以此训练和评估模型

基础神经网络模型搭建 【Pytorch】数据集的加载和处理(一) 【Pytorch】数据集的加载和处理(二) 损失函数计算模型输出和目标之间的距离。通过torch.nn 包可以定义一个负对数似然损失函数,负对数似然损失对于训练具有多…

炎炎夏日,这份锂电AGV叉车保养指南赶紧收藏!

AGV 随着工厂自动化、计算机集成制造系统技术的逐步发展以及柔性制造系统、自动化立体仓库的广泛应用,AGV(Automatic GuidedVehicle)即自动导引车作为联系和调节离散型物流系统以使其作业连续化的必要的自动化搬运装卸手段,其应用范围和技术水平得到了迅…

云服务器实际内存与购买不足量问题

君衍 一、本篇缘由二、问题研究1、dmidecode2、dmesg | grep -i memory 三、kdump四、解决方案1、卸载kdump-tools2、清理依赖包3、修改配置文件4、重新生成配置文件5、重启服务器6、再次查看 一、本篇缘由 本篇由于最近买了云服务器,之前基本在本地使用VMware进行虚…

初识单片机之点亮LED灯

1、前言 如果说编程的开始是Hello world,那么单片机的开始就是点亮LED灯,这个操作最直接的展示了单片机强大的控制功能,这里我就以直接点亮指定位置的LED灯的形式演示这个功能。 2、原理介绍 我的单片机的LED灯都是接在单片机的P1口,从P10~P…

【数据结构(邓俊辉)学习笔记】高级搜索树02——B树

文章目录 1. 大数据1.1 640 KB1.2 越来越大的数据1.3 越来越小的内存1.4 一秒与一天1.5 分级I/O1.6 1B 1KB 2. 结构2.1 观察体验2.2 多路平衡2.3 还是I/O2.4 深度统一2.5 阶次含义2.6 紧凑表示2.7 BTNode2.8 BTree 3. 查找3.1 算法过程3.2 操作实例3.3 算法实现3.4 主次成本3.…

YOLOv8白皮书-第Y8周:yolov8.yaml文件解读

本文为365天深度学习训练营中的学习记录博客 原作者:K同学啊|接辅导、项目定制 请根据YOLOv8n、YOLOv8s模型的结构输出,手写出YOLOv8l的模型输出 文件位置:./ultralytics/cfg/models/v8/yolov8.yaml 一、参数配置 # Parameters nc: 80 # n…

Bug:时间字段显示有问题

Bug:时间字段显示有问题 文章目录 Bug:时间字段显示有问题1、问题2、解决方法一:添加注解3、解决方法二:消息转换器自定义对象映射器配置消息转换器 1、问题 ​ 在后端传输时间给前端的时候,发现前端的时间显示有问题…

设计模式总结(设计模式的原则及分类)

1.什么是设计模式? 设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结…

自动化任务调度,轻松管理海量数据采集项目

摘要: 本文深入探讨了在数据驱动时代,如何通过自动化任务调度轻松驾驭海量数据采集项目,提升工作效率,确保数据处理的准确性和及时性。我们分享了一系列实用策略与工具推荐,帮助企业和开发者优化数据采集流程&#xf…

SQL 中的 EXISTS 子句:探究其用途与应用

目录 EXISTS 子句简介语法 EXISTS 与 NOT EXISTSEXISTS 子句的工作原理实际应用场景场景一:筛选存在关联数据的记录场景二:优化查询性能 EXISTS 与其他 SQL 结构的比较EXISTS vs. JOINEXISTS vs. IN 多重 EXISTS 条件在 UPDATE 语句中使用 EXISTS常见问题…

基于 AntV F2 的雷达图组件开发

本文由ScriptEcho平台提供技术支持 项目地址:传送门 基于 AntV F2 的雷达图组件开发 应用场景介绍 雷达图是一种多变量统计图表,用于可视化展示多个维度的数据。它通常用于比较不同对象的多个属性或指标,直观地反映各维度之间的差异和整体…

LoRaWAN协议

目录 一、介绍 1、LPWA是什么? 2、LoRa是什么? 3、LoRaWAN是什么? 4、浅谈LoRa与LoRaWAN的区别 5、LoRaWAN开发背景 6、LoRaWAN与NB-IOT如何选择? 二、LoRaWAN网络结构 1、组网结构 2、星型拓扑结构 三、数据格式 1、…

golang AST语法树解析

1. 源码示例 package mainimport ("context" )// Foo 结构体 type Foo struct {i int }// Bar 接口 type Bar interface {Do(ctx context.Context) error }// main方法 func main() {a : 1 }2. Golang中的AST golang官方提供的几个包,可以帮助我们进行A…

代码随想录算法训练营第五十五天|101.孤岛的总面积、102.沉没孤岛、103.水流问题、104.建造最大岛屿

101.孤岛的总面积 题目链接:101.孤岛的总面积沉没孤岛 文档讲解:代码随想录 状态:不会 思路: 步骤1:将边界上的陆地变为海洋 步骤2:计算孤岛的总面积 题解: public class Main {// 保存四个方…

【UE5.1】NPC人工智能——02 NPC移动到指定位置

效果 步骤 1. 新建一个蓝图,父类选择“AI控制器” 这里命名为“BP_NPC_AIController”,表示专门用于控制NPC的AI控制器 2. 找到我们之前创建的所有NPC的父类“BP_NPC” 打开“BP_NPC”,在类默认值中,将“AI控制器类”一项设置为“…