09 深度推荐模型演化中的“平衡与不平衡“规律

news2024/11/14 20:47:30

你好,我是大壮。08 讲我们介绍了深度推荐算法中的范式方法,并简单讲解了组合范式推荐方法,其中还提到了多层感知器(MLP)。因此,这一讲我们就以 MLP 组件为基础,讲解深度学习范式的其他组合推荐方法。

MLP 是一种非常简单、原汁原味的神经网络(DNN),它能够逼近任何可测函数并得到任何期望的精确度,简洁又有效。在推荐领域,MLP 由于能有效地建模高阶交互特征,所以成了深度推荐算法中最通用的组件。

下面我们看看在推荐系统中,如何使用 MLP 进行隐向量表征学习和推荐模型建立。

深度矩阵分解(DMF)模型(双塔结构)

深度矩阵分解模型(Deep Matrix Factorization Model,DMF)是以传统的矩阵分解(MF)模型为基础,再与 MLP 网络组合而成的一种模型。

DMF 模型的框架图如下所示:该模型的输入层为交互矩阵 Y,其行、列分别对应为对用户和对物品的打分,并采用 multi-hot 形式分别表征用户和物品。

  • Relevance measured by cosine similarity:余弦相似度计算

  • Latent representation:隐向量表征

  • Multi-layer non-linear projection:多层非线性投影

  • Interaction Matrix:交互矩阵

  • Layer1~N:层1~N

图片来自论文《Deep Matrix Factorization Models for Recommender Systems》(IJCAI 2017)

  • Yi* 指的是交互矩阵 Y 中的第 i 行,表示用户 i 对所有物品的评分,即用户 i 的表征;

  • Y*j指的是交互矩阵 Y 中的第 j 列,表示所有用户对物品 j 的评分,即物品 j 的表征。

  • 然后,我们将用户表征 Yi* 和物品表征 Y*j 分别送入 MLP 双塔结构,生成用户隐向量表征 Pi 和物品隐向量表征 qj;

  • 最后,对二者使用余弦点积匹配分数。

Tips:实际上,DMF 模型是由 MF+MLP 双塔串联而成的一种模型,其中 MF 主要负责线性部分,MLP 主要负责非线性部分。它主要以学习用户和物品的高阶表征向量为目标。

下面我们有必要简单说明下什么是双塔结构。

【双塔结构】

双塔结构是一种被广泛使用的采用深度模型进行表征学习的范式组合方式,因为这样的模型画出来像一个“塔”,所以称之为“双塔”。

关于双塔结构中所谓的“塔”指的是 DNN 结构,通过在模型中加入 DNN 结构实现“降维”。在双塔结构中,靠进输入侧的参数越多,靠近输出侧的参数越少。

我们主要使用“双塔”结构,各自构建两种类型的隐向量表征,例如用户和物品的隐向量表征、Query 和 Doc 的隐向量表征等,然后通过一定的计算方式(如点积)计算二者的匹配得分。

Tips:因为最后我们需要通过相对简单的计算方式,衡量两个向量之间的距离,所以两个塔输出的向量维度必须相同。而且因为双塔结构讲究两个塔之间的平衡性,所以两个塔的参数配置通常也需要保持相同。

双塔结构为什么只通过相对简单的计算方式衡量两个向量之间的距离呢?

这是因为复杂的神经网络计算一般使用离线的方式进行计算,再将双方的隐向量表征进行存储,而线上服务只计算向量之间的距离,这样就可以缩短线上服务的响应时间,从而减少线上服务的计算量。但这也不能一概而论,例如 Query 和 Doc 的匹配计算遇到长尾 Query 时,我们就需要实时计算 Query 的隐向量。

对于算法工程师而言,算法模型可谓是他们手中的一件强有力兵器。在十八般兵器中,有人使用双枪左右开弓,必然会有人使用单枪破双枪法。

在双塔模型大行其道之时,单塔同样不输双塔,这不有人总结出了“双枪发,单枪扎;双枪不发,单枪拉”的要义。

所以,接下来我们来看看单塔结构的相关模型。

神经网络协同过滤(NFC)模型(单塔结构)

神经网络协同过滤 (Neural Collaborative Filtering, NFC) 是一个端到端的模型。为了方便你理解这部分知识,我们先来看一下传统的矩阵分解模型(MF)。

传统的矩阵分解模型(MF)将用户物品交互矩阵分解为两个低秩稠密的矩阵p和q计算公式如下:

传统 MF 模型相当于把稀疏的用户和物品 ID 向量转化为了稠密的隐向量表征,模拟了浅层神经网络的作用。其中,p 代表用户的隐因子矩阵,q 代表物品的隐因子矩阵。通过这两个矩阵,我们就可以预测用户对物品的评分。

了解了传统的 MF 模型后,下面我们再来看看 NCF 模型,框架如下图所示:

  • Output Layer:输出层

  • Neural CF Layer:神经协同过滤层

  • mbedding Layer:表征层

  • Input Layer(Sparse):稀疏输入层

  • Training:训练

  • Target:目标

  • Score:分数

  • Layer1~X:层1~X

  • User:用户

  • Item:物品

  • User Latent Vector:用户隐向量

  • Item Latent Vector:物品隐向量

从图中可知,模型输入端利用类 MF 的浅层神经网络将稀疏的用户和物品 ID(one-hot)转化为用户隐向量和物品隐向量。

NCF 模型整体操作过程:首先,利用类 MF 的结构获得用户和物品交互关系的隐向量表征,并加上用户画像和物品画像特征的向量表征,二者连接后作为 MLP 的输入;然后,我们利用 MLP 拟合用户和物品间的非线性关系。

对比双塔结构使用 MLP 对用户和物品的特征进行了隐向量提取,NCF 模型对 MLP 的使用有了本质变化。

NCF 模型由 MF+MLP 单塔串联组合而成,并以精确拟合匹配分数为目标。其中,MF 之后添加辅助信息(side information),MLP 用来拟合打分。

相比于 DMF 模型的双塔结构而言,NCF 模型主要使用 MLP 单塔拟合效用函数,然后产出端到端的预测结果。虽然该模型丧失了一些表征学习的灵活性,却获得了精确拟合匹配分数的能力。

在刺击类武器中,最早出现的长矛能够在较远的距离杀伤敌人保护自己。而在砍击类武器中,最早大规模使用的戈能够钩开敌人的盾牌阵。后来又出现了一种结合了两者优势的武器——戟,它集刺、砍、钩能力于一身。

那么,有没有一种将单塔和双塔优势结合为一体的模型呢?

有的,在 NCF 模型的同一篇论文中,我就找到了这样一个混合模型——神经矩阵分解(NeuMF)模型,下面一起来看看。

说明:从严格意义上说,它不能算是单塔和双塔的结合,但是管他呢~道德经中说“是以圣人为腹不为目,故去彼取此”,实用才是目的。

神经矩阵分解(NeuMF)模型(混合结构)

神经矩阵分解 (Neural Matrix Factorization, NeuMF)模型在 NCF 模型的基础上增加了通用矩阵分解 GMF(General Matrix Factorization)部分。

关于 NeuMF 模型框架如下图所示:

NeuMF Layer:神经矩阵分解层

Concatenation:拼接

GMF Layer:通用矩阵分解层

Element-wise Product:点积

Training:训练

Target:目标

Score:分数

MLP Layer1~X:MLP层1~X

User:用户

Item:物品

MF User Vector:矩阵分解用户向量

MLP User Vector:MLP用户向量

MF Item Vector:矩阵分解物品向量

MLP Item Vector:MLP物品向量

图中左边为 GMF 部分,它是以用户 ID 和物品 ID 的 one-hot 形式进行输入,然后利用一层网络生成用户和物品的低阶隐向量表征,再通过向量点积和一层网络输出线性交互特征。

图中右边为多层感知器,它同样是以用户 ID 和物品 ID 的 one-hot 形式进行输入,然后经过多层网络输出非线性交互特征。最后,它将 GMF 和 MLP 的输出进行连接,并经过最后一个激活函数为 Sigmoid 的全连接层,输出推荐分数。

NeuMF 模型是在 MF 通过接入 GMF+MLP 模型并联而成,再接 FC 层进行输出。该模型

采用 GMF+MLP 的并联结构,使得模型同时具备低阶和高阶特征提取的双重能力,并以精确拟合匹配分数为目标。虽然这种并联结构不平衡,但是也有一定的好处。

说到不平衡的结构模型,其中影响最为深远的要数广深(Wide&Deep)模型了。

广深(Wide&Deep)模型(不平衡结构模型)

广深(Wide&Deep)模型最早由 Google 提出,自工业界诞生后,便为在范式组合方式基础上产生模型打开了一扇大门。因此,我们与其说广深(Wide&Deep)模型是一种模型,倒不如说是一套通用的范式框架。

通过名字我们就知道,Wide&Deep 模型是由 Wide 和 Deep 两大部分组成,它的框架图如下所示:

  • Output Units:输出单元

  • Hidden Layers:隐藏层

  • Dense Embeddings:稠密表征

  • Sparse Features:稀疏特征

Wide

属于广义线性部分,它对用户或者物品 ID 这类高频低阶特征使用少量参数即可学习,故记忆能力好;但是对没有见过的 ID 学习能力较差,故泛化能力差。这是因为特征从输入到输出比较通透,保留了大量的原始信息,因此模型捕捉的特征更加具体。

例如 58 同城 App 本地服务推荐业务中,如果训练数据中望京和酒仙桥的家政帖子共现频率较高,模型一旦记住了望京和酒仙桥这两个商圈 ID 的关联关系,那么就会在用户点击酒仙桥的家政帖子时,同时赋予望京的家政帖子更高的排序权重。而这种直接从历史数据挖掘的特征相关性,属于低层特征信息。当用户复现某个历史行为,模型能够拟合用户兴趣,这是对特征的良好记忆能力的一种体现。

Deep

属于神经网络 MLP 部分,它主要用于学习样本中的长尾部分,因为它对出现较少或者没有出现过的特征组合都能够做出预测,所以需要的人工参与较少,且泛化能力强。

例如App本地服务推荐业务中,家政的帖子信息进入 MLP 经过多层信息抽取后,模型挖掘到的用户兴趣会偏向高层特征信息抽象表征。如果用户产生的历史数据没有出现过新的行为,模型能够做到非零预测,这就是对特征的良好泛化能力的一种体现。

由此可见,Wide&Deep 模型同时具备记忆能力(Memorization)和泛化能力(Generalization)。

总结:Wide&Deep 模型由 LR+MLP 两部分并联组成,综合了传统机器学习和深度学习的长处。

Wide 部分根据历史行为数据推荐与用户已有行为直接相关的物品;

Deep 部分负责捕捉新的特征组合,从而提高推荐的多样性。

接下来,让我们一起看看出现的一种新模型。

1.深度因子分解机(DeepFM)模型

深度因子分解机(Deep Factorization Machine,DeepFM)模型是从广深(Wide&Deep)框架中演化出来的一种模型。

因为 Wide&Deep 模型的广义线性部分,挖掘到的用户兴趣对交叉信息仍然需要人工特征工程来人为构建特征和特征间的组合,所以过程相当繁琐且需要依赖人工经验。

那么,有没有一种办法可以避免人工特征工程呢?

答案是有的,在传统机器学习部分我们已经讲述了其解法,这就是 DeepFM 模型。它使用 FM 模型替换掉了 LR 部分,从而形成了 FM&Deep 结构。

DeepFM 模型框架如下图所示:

Output Units:输出单元

FM Layer:因子分解机层

Hidden Layer:隐藏层

Dense Embeddings:稠密表征

Sparse Features:稀疏特征

Addition:加

Inner Product:内积

Sigmoid Function:Sigmoid函数

Activation Function:激活函数

Weight-1 Connection:权重1连接

Normal Connection:正常连接

Embedding:隐向量

Field i~m:域 i~m

与 Wide&Deep 模型异曲同工,DeepFM 模型分为 FM 部分和 Deep 部分。

  • FM 部分:它可以自动提取特征交叉信息,其中包含了加权求和的一阶信息和向量内积的二阶信息。相比 Wide&Deep 模型而言,它在低层特征的使用上更合理。

  • Deep 部分:DeepFM 模型与 Wide&Deep 模型的 Deep 部分本质上并无区别,然而,Wide&Deep 模型中的 Embedding 层是为 Deep 部分专门设计的,而 DeepFM 模型中的Embedding 层由 Deep 部分与 FM 部分共享输出。

讲到使用 FM 替换了 LR,我们感觉传统机器学习算法那一套又来了一遍?是不是又要打 FM 模型只能进行二阶特征交叉这个缺点的主意了?

没错,接下来我们看看可以学习高于二阶特征交叉的推荐模型。

2.深度和交叉网络(DCN)模型

深度和交叉网络(Deep & Cross Network,DCN)模型是从广深(Wide&Deep)框架中演化出来的一个模型。

通过前面的学习,我们知道 Wide&Deep 在低层特征使用时,无法提供更高阶的特征,必须需要依赖人工构建交叉信息。而 DeepFM 模型中的 FM 部分虽然可以自动组合特征,但是仅限于二阶特征交叉,那么如何自动学习高于二阶特征交叉的特征组合呢?

DCN 模型将 Wide 部分替换为由特殊网络结构实现的特征交叉网络,它的框架如下图所示:左侧的交叉层除了接收前一层的输出外,还会同步接收原始输入层的特征,从而实现特征信息的高阶交叉。

Combination output layer:组合输出层Cross network:交叉网络

Deep network:深度网络

Embedding and stacking layer:表征和堆叠层

Dense feature:稠密特征

Sparse feature:稀疏特征

Embedding vec:表征向量

Cross Layer:交叉层

Deep Layer:深度层

Output:输出

对比 DeepFM 模型,DCN 模型在低层特征的信息提取上,不仅能够挖掘特征中更高阶的交叉信息,而且计算效率更有优势。

以上两个模型主要是对 Wide 部分进行改进,因此我们会很自然地想到是不是也可以对 Deep 部分进行改进?

没错,当然可以,接下来我们一起看看又演化了什么模型。

3.神经因子分解机(NFM)模型

神经因子分解机(Neural Factorization Machine)模型也是 Wide&Deep 框架中的一种。

NFM 模型把 Wide 部分放到一边不碰,Deep 部分在 FM 的基础上结合了 MLP 部分。其中,FM 部分能够提取二阶线性特征,MLP 部分能够提取高阶非线性特征,从而使模型具备捕捉高阶非线性特征的能力。

NFM 模型框架的 Deep 部分如下图所示,NFM 模型是在 Embedding 层后将 FM 的输出进行 Bi-Interaction Pooling 操作(将表征向量的两两元素相乘后,再将所有组合的结果进行求和),然后在后面接上 MLP。

Prediction Score:预测分数

Hidden Layers:隐藏层

B-Interaction Layer:双交互层

Embedding Layer:表征层

Input Feature Vector(sparse):稀疏输入特征向量

Layer 1~L:层 1~L

相比 DeepFM 的拼接操作而言,Bi-Interaction Pooling 操作使得特征之间可以强行交互。因此,我们可以说 NFM 模型的核心是在 Deep 部分中引入了 Bi-Interaction Pooling 操作,使得 Deep 部分通过浅层网络可以学习到包含更多信息的组合特征,而且性能更好、训练和调整参数更容易。

小结与预告

道德经中“天之道,其犹张弓与!高者抑之,下者举之”。也就是说,万物都是在平衡和不平衡之中循环和轮回,算法模型的演化亦如此。

这一讲介绍了深度推荐范式的基于平衡与不平衡的组合规律,下一课时我们将继续介绍深度推荐模型的其他演化路径。

这里留一道思考题:你还能想到哪些模型符合深度推荐模型的平衡与不平衡演化路径?请在评论区与我交流。

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

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

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

相关文章

Why is LlamaCPP freezing during inference?

题意:为什么LlamaCPP在推理过程中会冻结 问题背景: Im using the following code to try and recieve a response from LlamaCPP, used through the LlamaIndex library. My model is stored locally in a gguf file. Im trying to do inference on the…

【数学建模】——多领域资源优化中的创新应用-六大经典问题解答

目录 题目1:截取条材 题目 1.1问题描述 1.2 数学模型 1.3 求解 1.4 解答 题目2:商店进货销售计划 题目 2.1 问题描述 2.2 数学模型 2.3 求解 2.4 解答 题目3:货船装载问题 题目 3.1问题重述 3.2 数学模型 3.3 求解 3.4 解…

Beelzebub过程记录及工具集

文章目录 靶场搭建靶场测试过程安装dirsearch扫描目录wpscan扫描破解 靶场搭建 https://download.vulnhub.com/beelzebub/Beelzebub.zip 下载解压镜像,从vmware打开。 一键式开机即可。 打开后配置网络。 确保网络可达。 靶场测试过程 首先使用nmap扫描网段的存…

为什么品牌需要做 IP 形象?

品牌做IP形象的原因有多方面,这些原因共同构成了IP形象在品牌建设中的重要性和价值,主要原因有以下几个方面: 增强品牌识别度与记忆点: IP形象作为品牌的视觉符号,具有独特性和辨识性,能够在消费者心中留…

提高自动化测试脚本编写效率 5大关键注意事项

提高自动化测试脚本编写效率能加速测试周期,减少人工错误,提升软件质量,促进项目按时交付,增强团队生产力和项目成功率。而自动化测试脚本编写效率低下,往往会导致测试周期延长,增加项目成本,延…

【C#】已知有三个坐标点:P0、P1、P2,当满足P3和P4连成的一条直线 与 P0和P1连成一条直线平行且长度一致,该如何计算P3、P4?

问题描述 已知有三个坐标点:P0、P1、P2,当满足P3和P4连成的一条直线 与 P0和P1连成一条直线平行且长度一致,该如何计算P3、P4? 解决办法 思路一:斜率及点斜式方程 # 示例坐标 x0, y0 1, 1 # P0坐标 x1, y1 4, 4 # …

MySQL执行状态查看与分析

当mysql出现性能问题时,一般会查看mysql的执行状态,执行命令: show processlist 各列的含义 列名含义id一个标识,你要kill一个语句的时候使用,例如 mysql> kill 207user显示当前用户,如果不是root&…

生信软件27 - 基于python的基因注释数据查询/检索库mygene

1. mygene库简介 MyGene.info提供简单易用的REST Web服务来查询/检索基因注释数据,具有以下特点: mygene技术文档: https://docs.mygene.info/en/latest/ 多物种支持: 包括人、小鼠、大鼠、斑马鱼等多个模式生物; 多数据源聚合…

mysql-事务的隔离界别

一.事务的隔离级别 二.查看事务的隔离级别 SELECT TRANSASCTION ISOLATION 三.设置事务隔离级别 SET [SESSION | GLOBAL] TRANSACTION ISOLATION LEVEL [READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE] 四.总结 1.事务简介 事务是一组操作的集合…

车载以太网交换机入门基本功(2)— 初识VLAN

在《交换机入门基本功 -上》提到,交换机在物理层面划分通信区域并产生局域网(Local Area Network, LAN)。局域网具有一个特点:连线拓扑一旦确定,一定时间内不会发生通信区域的变动。在实际通信过程中,广播报…

MKS流量计软件MFC通讯驱动使用于C和P系列MFC控制USB接口W10系统

MKS流量计软件MFC通讯驱动使用于C和P系列MFC控制USB接口W10系统

国产精品ORM框架-SqlSugar详解 SqlSugar初识 附案例源码 云草桑 专题一

国产精品ORM框架-SqlSugar详解 1、SqlSugar初识 2、开始实操 3、增删改操作 4、进阶功能 5、集成整合 6、脚手架应用 sqlsugar 官网-CSDN博客 国产精品ORM框架-SqlSugar详解 SqlSugar初识 专题二-CSDN博客 1、SqlSugar初识 1.1 基本概念和历史 SqlSugar 是一款 老牌 …

论文复现丨物流中心选址问题:蜘蛛猴算法求解

路径优化系列文章: 1、路径优化历史文章2、物流中心选址问题论文复现丨改进蜘蛛猴算法求解 物流中心选址问题 一般物流中心选址问题是指:在有限的用户(即需求点)中找出一定数量的地点建立配送中心,实现从物流中心到用户之间的配送&#xf…

实验3.mbr读取硬盘

简介 实验:编写 mbr,读取0盘0道2扇区的内容写入内存,然后跳转执行写好的loader.s 代码 boot/mbr.s ; boot/mbr.s ; 功能:读取磁盘,加载loader到内存并跳转到loader%include "boot.inc" SECTION MBR vsta…

【Python 基础】方法

方法 方法和函数是一回事,只是它是调用在一个值上。例如,如果一个列表值存储在 spam 中,你可以在这个列表上调用 index()列表方法(稍后我会解释),就像spam.index(‘hello’)一样。方法部分跟在这个值后面,以一个句点分隔。 每种数据类型都有它自己的一组方法。例如,列…

Qt5.12.2安装教程

文章目录 文章介绍下载连接安装教程 文章介绍 安装Qt5.12.2 下载连接 点击官网下载 安装包下载完毕 安装教程 点开设置,添加临时储存库,复制连接“https://download.qt.io/online/qtsdkrepository/windows_x86/root/qt/” 点击测试&#xff0…

航空航天用电机控制器和车规级电机控制器有什么区别?

航空航天用电机控制器和车规级电机控制器有什么区别? 1.标准与认证要求2.工作环境与温度范围3.可靠性与容错性4.性能要求5.使用寿命与维护6.成本与批量生产 最近遇到这样一个问题,处在航空航天动力系统行业中,也会经常遇到类似的问题&#xf…

Spring框架(三)——AOP--基础部分

1、概括 将与核心业务无关的代码独立的抽取出来,形成一个独立的组件(抽取公共代码的过程),然后以横向交叉的方式应用到业务流程当中的过程被称为AOP优点 代码复用性强 代码易维护 使开发者更专注于业务逻辑 2、AOP的底层原理&…

探索APP开发中的主流版式设计与应用实践

在当今移动互联网高速发展的时代,APP已成为人们日常生活中不可或缺的一部分。无论是社交娱乐、购物支付还是工作学习,各类APP都以其独特的界面设计和用户体验赢得了用户的青睐。而APP开发的版式设计和页面规范,则是决定用户体验好坏的关键因素…

打卡第15天------二叉树

最近公司给我派活儿太多了,要干好多活儿,好多工作任务要处理,我都没时间刷题了。leetcode上的题目通过数量一直停留在原地不动,我真的很着急呀,我现在每天过的都有一种紧迫感,很着急,有一种与时间赛跑的感觉,真的时间过的太快了,没有任何人能够阻挡住时间的年轮向前推…