《深度学习推荐系统》——第三章2

3.3.2 Deep Crossing 模型的网络结构

  为完成端到端的训练,Deep Crossing 模型要在其内部网络中解决如下问题。
  (1)离散类特征编码后过于稀疏,不利于直接输⼈神经网络进⾏训练,如何解决稀疏特征向量稠密化的问题
  (2)如何解决特征⾃动交叉组合的问题。
  (3)如何在输出层中达成问题设定的优化⽬标。
  Deep Crossing 模型分别设置了不同的神经网络层来解决上述问题。如图 3-6所示,其网络结构主要包括 4层 Embedding 层、Stacking 层、Multiple Residual Units 层和 Scoring 层。接下来,从下⾄上依次介绍各层的功能和实现。
在这里插入图片描述
  Embedding 层:Embedding 层的作用是将稀疏的类别型特征转换成稠密的Embedding 向量。从图 3-6 中可以看到,每⼀个特征( 如 Feature#1 ,这⾥指的是经 one-hot 编码后的稀疏特征向量 )经过 Embedding 层后,会转换成对应的Embedding 向量( 如 Embedding#1 )。
  Embedding 层的结构以经典的全连接层( Fully Connected Layer )结构为主,但 Embedding 技术本身作为深度学习中研究非常⼴泛的话题,已经衍⽣出了Word2vec、Graph Embedding 等多种不同的 Embedding 方法,第 4章将对 Embedding的主流方法做更详尽的介绍。
  ⼀般来说,Embedding 向量的维度应远⼩于原始的稀疏特征向量,⼏⼗到上百维⼀般就能满⾜需求。这⾥补充⼀点,图 3-6中的 Feature#2 实际上代表了数值型特征,可以看到,数值型特征不需要经过 Embedding 层,直接进⼈了Stacking 层。
  Stacking 层:Stacking 层( 堆叠层 )的作用⽐᫾简单,是把不同的 Embedding特征和数值型特征拼接在⼀起,形成新的包含全部特征的特征向量,该层通常也被称为连接 concatenate )层。
  Multiple Residual Units 层:该层的主要结构是多层感知机,相⽐标准的以感知机为基本单元的神经网络 ,Deep Crossing 模型采用了多层残差网络( Multi-Layer Residual Network )作为 MLP 的具体实现。最著名的残差网络是在ImageNet ⼤赛中由微软研究员何恺明提岀的 152层残差网络[3]。在推荐模型中的应用,也是残差网络⾸次在图像识别领域之外的成功推⼴。
  通过多层残差网络对特征向量各个维度进⾏充分的交叉组合,使模型能够抓取到更多的非线性特征和组合特征的信息,进⽽使深度学习模型在表达能力上᫾传统机器学习模型⼤为增强
在这里插入图片描述
与传统的感知机不同,残差单元的特点主要有两个:
(1 )输⼊经过两层以 ReLU 为激活函数的全连接层后,⽣成输出向量。
(2)输⼊可以通过⼀个短路 (shortcut )通路直接与输出向量进⾏元素加(element-wise plus )操作,⽣成最终的输出向量。
  在这样的结构下,残差单元中的两层 ReLU 网络其实拟合的是输出和输⼊之间的“ 残差” xo-xi ), 这就是残差神经网络名称的由来。
  残差神经网络的诞⽣主要是为了解决两个问题:
  (1 )神经网络是不是越深越好?对于传统的基于感知机的神经网络,当网络加深之后,往往存在过拟合现象,即网络越深,在测试集上的表现越差。⽽在残差神经网络中,由于有输⼊向量短路的存在,很多时候可以越过两层 ReLU网络,减少过拟合现象的发⽣
  (2)当神经网络⾜够深时,往往存在严重的梯度消失现象。梯度消失现象是指在梯度反向传播过程中越靠近输⼈端梯度的幅度越⼩参数收敛的速度越慢。为了解决这个问题,残差单元使用了 ReLU 激活函数取代原来的sigmoid 激活函数。此外,输⼈向量短路相当于直接把梯度毫⽆变化地传递到下⼀层,这也使残差网络的收敛速度更快
  Scoring 层:Scoring 层作为输出层,就是为了拟合优化⽬标⽽存在的。对于CTR 预估这类⼆分类问题,Scoring 层往往使用的是逻辑回归模型,⽽对于图像分类等多分类问题,Scoring 层往往采用 softmax 模型。
  以上是 Deep Crossing 的模型结构,在此基础上采用梯度反向传播的方法进⾏训练,最终得到基于 Deep Crossing 的 CTR 预估模型

3.3.3 Deep Crossing 模型对特征交叉方法的革命

  从⽬前的时间节点上看,Deep Crossing 模型是平淡⽆奇的,因为它没有引⼈任何诸如注意力机制 、序列模型等特殊的模型结构 ,只是采用了常规的“Embeddiiig+多层神经网络” 的经典深度学习结构。但从历史的尺度看,Deep Crossing 模型的出现是有⾰命意义的。Deep Crossing 模型中没有任何⼈⼯特征⼯程的参与,原始特征经 Embedding 后输入神经网络层,将全部特征交叉的任务交给模型。相⽐之前介绍的 FM、 FFM 模型只具备⼆阶特征交叉的能力,Deep Crossing 模型可以通过调整神经网络的深度进⾏特征之间的 “ 深度交叉”,这也是 Deep Crossing 名称的由来。

3.4 NeuralCF 模型——CF 与深度学习的结合

  2.2 节介绍了推荐系统的经典算法——协同过滤,2.3 节沿着协同过滤的思路,发展出了矩阵分解技术,将协同过滤中的共现矩阵分解为用户向量矩阵物品向量矩阵。其中,用户 u 隐向量和物品 i 隐向量的内积,就是用户 u 对物品 i 评分的预测。沿着矩阵分解的技术脉络,结合深度学习知识,新加坡国⽴⼤学的研究⼈员于 2017 年提出了基于深度学习的协同过滤模型 NeuralCF[4]。

3.4.1 从深度学习的视角重新审视矩阵分解模型

  在 3.3 节对 Deep Crossing 模型的介绍中提到,Embedding 层的主要作用是将稀疏向量转换成稠密向量。事实上,如果从深度学习的视⻆看待矩阵分解模型,那么矩阵分解层的用户隐向量和物品隐向量完全可以看作⼀种 Embedding 方法。最终的 “Scoring 层” 就是将用户隐向量和物品隐向量进⾏内积操作后得到 “ 相似度”,这⾥的 “ 相似度” 就是对评分的预测。综上,利用深度学习网络图的方式来描述矩阵分解模型的架构,如图 3-8 所示。
在这里插入图片描述
  在实际使用矩阵分解来训练和评估模型的过程中,往往会发现模型容易处于⽋拟合的状态,究其原因是因为矩阵分解的模型结构相对⽐较简单,特别是“ 输出层”( 也被称为 “Scoring 层” ),⽆法对优化⽬标进⾏有效的拟合。这就要求模型有更强的表达能力,在此动机的启发下,新加坡国⽴⼤学的研究⼈员提出了NeuralCF 模型。

3.4.2 NeuralCF 模型的结构

  如图 3-9所示,NeuralCF 用“ 多层神经网络+输出层” 的结构替代了矩阵分解模型中简单的内积操作。这样做的收益是直观的,⼀是让用户向量和物品向量做更充分的交叉,得到更多有价值的特征组合信息;⼆是引⼈更多的非线性特征让模型的表达能力更强
在这里插入图片描述
  以此类推,事实上,用户和物品向量的互操作层可以被任意的互操作形式所代替,这就是所谓的 “ ⼴义矩阵分解” 模型 Generalized Matrix Factorization )。
  原始的矩阵分解使用“ 内积” 的方式让用户和物品向量进⾏交互,为了进⼀步让向量在各维度上进⾏充分交叉,可以通过 “ 元素积” element-wise product,⻓度相同的两个向量的对应维相乘得到另⼀向量 )的方式进⾏互操作,再通过逻辑回归等输出层拟合最终预测⽬标。NeuralCF 中利用神经网络拟合互操作函数的做法是⼴义的互操作形式。在介绍 PNN 模型、Deep&Cross 模型的章节中,还会介绍更多可⾏的互操作形式。
  再进⼀步,可以把通过不同互操作网络得到的特征向量拼接起来交由输出层进⾏⽬标拟合。NeuralCF 的论⽂[4]中给出了整合两个网络的例⼦( 如图 3-10所示 )。可以看出,NeuralCF 混合模型整合了上⾯提出的原始 NeuralCF 模型和以元素积为互操作的⼴义矩阵分解模型。这让模型具有了更强的特征组合和非线性能力。
在这里插入图片描述

再看看下面的

—————————————————————————————————————————
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

——————————————————————————————————

3.4.3 NeuralCF 模型的优势和局限性

  NeuralCF 模型实际上提出了⼀个模型框架,它基于⽤户向量和物品向量这两个 Embedding 层,利⽤不同的互操作层进⾏特征的交叉组合,并且可以灵活地进⾏不同互操作层的拼接。从这⾥可以看出深度学习构建推荐模型的优势——利⽤神经网络理论上能够拟合任意函数的能力灵活地组合不同的特征按需增加或减少模型的复杂度
  在实践中要注意:并不是模型结构越复杂、特征越多越好。⼀是要防⽌过拟合的⻛险,⼆是往往需要更多的数据和更⻓的训练时间才能使复杂的模型收敛,这需要算法⼯程师在模型的实⽤性、实时性和效果之间进⾏权衡。
  NeumlCF 模型也存在局限性。由于是基于协同过滤的思想进⾏构造的,所以NeuralCF 模型并没有引⼈更多其他类型的特征,这在实际应⽤中⽆疑浪费了其他有价值的信息。此外,对于模型中互操作的种类并没有做进⼀步的探究和说明。这都需要后来者进⾏更深⼊的探索。

3.5 PNN 模型——加强特征交叉能力

  3.4节介绍的 NeuralCF 模型的主要思想是利⽤多层神经网络替代经典协同过滤的点积操作加强模型的表达能力。⼴义上,任何向量之间的交互计算方式都可以⽤来替代协同过滤的内积操作,相应的模型可称为⼴义的矩阵分解模型。但NeuralCF 模型只提到了⽤户向量和物品向量两组特征向量,如果加⼊多组特征向量⼜该如何设计特征交互的方法呢?2016 年,上海交通⼤学的研究⼈员提出的PNN[5]模型,给出了特征交互方式的⼏种设计思路

3.5.1 PNN 模型的网络架构

  PNN 模型的提出同样是为了解决 CTR 预估和推荐系统的问题,因此不再赘述模型的应⽤场景,直接进⼈模型架构的部分。图 3-12 所示为模型结构图,相⽐ Deep Crossing 模型 (如图 3-6所示 ),PNN 模型在输⼈、Embedding 层、多层神经网络,以及最终的输出层部分并没有结构上的不同,唯⼀的区别在于 PNN模型⽤乘积层( Product Layer )代替了 Deep Crossing 模型中的 Stacking 层。也就是说,不同特征的 Embedding 向量不再是简单的拼接,⽽是⽤ Product 操作进⾏两两交互,更有针对性地获取特征之间的交叉信息。
在这里插入图片描述
  另外,相⽐ NeuralCF, PNN 模型的输⼊不仅包括⽤户和物品信息,还可以有更多不同形式、不同来源的特征,通过 Embedding 层的编码⽣成同样⻓度的稠密特征 Embedding 向量。针对特征的交叉方式,PNN 模型也给出了更多具体的互操作方法。

3.5.2 Product 的多种特征交叉方式

  PNN 模型对于深度学习结构的创新主要在于乘积层的引⼈。具体地说,PNN模型的乘积层由线性操作部分( 图 3-12 中乘积层的 z 部分,对各特征向量进⾏线性拼接 )和乘积操作部分( 图 3-12 中乘积层的 p 部分 )组成。其中,乘积特征交叉部分⼜分为内积操作和外积操作,使⽤内积操作的 PNN 模型被称为 IPNN( Inner Product-based Neural Network ), 使⽤外积操作的 PNN 模型被称为 OPNN(Outer Product-based Neural Network )。
  ⽆论是内积操作还是外积操作,都是对不同的特征 Embedding 向量进⾏两两组合。为保证乘积操作能够顺利进⾏,各 Embedding 向量的维度必须相同。
在这里插入图片描述
在这里插入图片描述

3.5.3 PNN 模型的优势和局限性

  PNN 的结构特点在于强调了特征 Embedding 向量之间的交叉⽅式是多样化的,相⽐于简单的交由全连接层进⾏⽆差别化的处理,PNN 模型定义的内积和外积操作显然更有针对性地强调了不同特征之间的交互,从⽽让模型更容易捕获特征的交叉信息。
  但 PNN 模型同样存在着⼀些局限性,例如在外积操作的实际应⽤中,为了优化训练效率进⾏了⼤量的简化操作。此外,对所有特征进⾏⽆差别的交叉,在⼀定程度上忽略了原始特征向量中包含的有价值信息。如何综合原始特征及交叉特征,让特征交叉的⽅式更加⾼效,后续的 Wide&Deep 模型和基于 FM 的各类深度学习模型将给出它们的解决⽅案。

3.6 Wide&Deep 模型—记忆能⼒和泛化能⼒的综合

  本节介绍的是⾃提出以来就在业界发挥着巨⼤影响⼒的模型——⾕歌于2016年提出的 Wide&Deep 模型[6]。Wide&Deep 模型的主要思路正如其名,是由单层的 Wide 部分和多层的 Deep 部分组成的混合模型。其中,Wide 部分的主要作⽤是让模型具有较强的“ 记忆能⼒” (memorization );Deep 部分的主要作⽤是让模型具有 “ 泛化能⼒” (generalization ),正是这样的结构特点,使模型兼具了逻辑回归和深度神经⽹络的优点——能够快速处理并记忆⼤量历史⾏为特征,并且具有强⼤的表达能⼒,不仅在当时迅速成为业界争相应⽤的主流模型,⽽且衍⽣出了⼤量以 Wide&Deep 模型为基础结构的混合模型,影响⼒⼀直延续到⾄今。

3.6.1 模增的记忆能⼒与泛化能⼒

  Wide&Deep 模型的设计初衷和其最⼤的价值在于同时具备较强的 “ 记忆能⼒” 和“ 泛化能⼒”。“ 记忆能⼒” 是⼀个新的概念,“ 泛化能⼒” 虽在之前的章节中屡有提及,但从没有给出详细的解释,本节就对这两个概念进⾏详细的解释。
  “ 记忆能⼒”可以被理解为模型直接学习并利⽤历史数据中物品或者特征的“ 共现频率”的能⼒。⼀般来说,协同过滤、逻辑回归等简单模型有较强的 “ 记忆能⼒”。 由于这类模型的结构简单,原始数据往往可以直接影响推荐结果,产⽣类似于“ 如果点击过 A 就推荐 B” 这类规则式的推荐,这就相当于模型直接记住了历史数据的分布特点,并利⽤这些记忆进⾏推荐
  因为 Wide&Deep 是由⾕歌应⽤商店 (Google Play )推荐团队提出的,所以这⾥以 App 推荐的场景为例,解释什么是模型的 “ 记忆能⼒”。
  假设在 Google Play 推荐模型的训练过程中,设置如下组合特征:AND(user_installed_app=netflix,impression_app=pandora)( 简称 netflix&pandora ), 它代表⽤户已经安装了 netflix 这款应⽤,⽽且曾在应⽤商店中看到过 pandora 这款应⽤。如果以“ 最终是否安装 pandora” 为数据标签 ( label ),则可以轻⽽易举地统计出 netflix&pandora 这个特征和安装 pandora 这个标签之间的共现频率。假设⼆者的共现频率⾼达 10%( 全局的平均应⽤安装率为 1%), 这个特征如此之强,以⾄于在设计模型时,希望模型⼀发现有这个特征,就推荐 pandora 这款应⽤( 就像⼀个深刻的记忆点⼀样印在脑海⾥ ),这就是所谓的模型的“ 记忆能⼒”。像逻辑回归这类简单模型,如果发现这样的 “ 强特征”,则其相应的权重就会在模型训练过程中被调整得⾮常⼤,这样就实现了对这个特征的直接记忆。相反,对于多层神经⽹络来说,特征会被多层处理,不断与其他特征进⾏交叉,因此模型对这个强特征的记忆反⽽没有简单模型深刻。
  “泛化能⼒” 可以被理解为模型传递特征的相关性,以及发掘稀疏甚⾄从未出现过的稀有特征与最终标签相关性的能⼒。矩阵分解⽐协同过滤的泛化能⼒强,因为矩阵分解引⼈了隐向量这样的结构,使得数据稀少的⽤户或者物品也能⽣成隐向量,从⽽获得有数据⽀撑的推荐得分,这就是⾮常典型的将全局数据传递到稀疏物品上,从⽽提⾼泛化能⼒的例⼦。再⽐如,深度神经⽹络通过特征的多次⾃动组合,可以深度发掘数据中潜在的模式即使是⾮常稀疏的特征向量输⼊,也能得到较稳定平滑的推荐概率,这就是简单模型所缺乏的 “ 泛化能⼒”。

3.6.2 Wide&Deep 模型的结构

  既然简单模型的“ 记忆能⼒” 强,深度神经⽹络的“ 泛化能⼒” 强,那么设计 Wide&Deep 模型的直接动机就是将⼆者融合,具体的模型结构如图 3-13 所示。
在这里插入图片描述
  Wide&Deep 模型把单输⼊层的 Wide 部分由 Embedding 层和多隐层组成的Deep 部分连接起来,⼀起输⼈最终的输出层单层的 Wide 部分善于处理⼤量稀疏的 id 类特征;Deep 部分利⽤神经⽹络表达能⼒强的特点,进⾏深层的特征交叉,挖掘藏在特征背后的数据模式。最终,利⽤逻辑回归模型,输出层将 Wide部分和 Deep 部分组合起来,形成统⼀的模型
  在具体的特征⼯程和输⼊层设计中,展现了 Google Play 的推荐团队对业务场景的深刻理解。从图 3-14中可以详细地了解到 Wide&Deep 模型到底将哪些特征作为 Deep 部分的输⼈,将哪些特征作为 Wide 部分的输⼈。
在这里插入图片描述
  Deep 部分的输⼈是全量的特征向量,包括⽤户年龄( Age ) 已安装应⽤数量 (# App Installs )、设备类型 (Device Class )、已安装应⽤ (User Installed App )、曝光应⽤ (Impression App )等特征。已安装应⽤、曝光应⽤等类别型特征,需要经过 Embedding 层输⼈连接层 Concatenated Embedding ), 拼接成 1200维的Embedding 向量,再依次经过 3层 ReLU 全连接层,最终输⼈ LogLoss 输出层。
  Wide 部分的输⼈仅仅是已安装应⽤和曝光应⽤两类特征,其中已安装应⽤代表⽤户的历史⾏为,⽽曝光应⽤代表当前的待推荐应⽤。选择这两类特征的原因是充分发发挥 Wide 部分“ 记忆能⼒” 强的优势。正如 3.6.1 节所举的“ 记忆能⼒”的例⼦,简单模型善于记忆⽤户⾏为特征中的信息,并根据此类信息直接影响推荐结果
  Wide 部分组合“ 已安装应⽤” 和 “ 曝光应⽤” 两个特征的函数被称为交叉积变换 ( Cross Product Transformation )函数,其形式化定义如 ( 式 3-8)所示。
在这里插入图片描述
在这里插入图片描述
  在通过交叉积变换层操作完成特征组合之后,Wide 部分将组合特征输⼈最终的 LogLoss 输出层,与 Deep 部分的输出⼀同参与最后的⽬标拟合,完成 Wide与 Deep 部分的融合。

3.6.3 Wide&Deep 模型的进化—Deep&Cross 模型

  Wide&Deep 模型的提出不仅综合了“ 记忆能⼒” 和 “ 泛化能⼒”,⽽且开启了不同⽹络结构融合的新思路。在 Wide&Deep 模型之后,有越来越多的⼯作集中于分别改进 Wide&Deep模型的 Wide部分或是 Deep部分。较典型的⼯作是 2017年由斯坦福⼤学和⾕歌的研究⼈员提出的 Deep&Cross 模型( 简称 DCN )[7]。
  Deep&Cross 模型的结构图如图 3-15 所示,其主要思路是使⽤ Cross ⽹络替代原来的 Wide 部分。由于 Deep 部分的设计思路并没有本质的改变,所以本节着重介绍 Cross 部分的设计思路和具体实现。
在这里插入图片描述
在这里插入图片描述
  可以看出,交叉层在增加参数⽅⾯是比较“ 克制” 的,每⼀层仅增加了⼀个n维的权重向量wl,(n维输⼈向量维度),并且在每⼀层均保留了输⼊向量,因此输出与输⼈之间的变化不会特别明显。由多层交叉层组成的 Cross ⽹络在Wide&Deep 模型中 Wide 部分的基础上进⾏特征的⾃动化交叉,避免了更多基于业务理解的⼈⼯特征组合。同 Wide&Deep 模型⼀样,Deep&Cross 模型的 Deep部分相⽐ Cross 部分表达能⼒更强,使模型具备更强的⾮线性学习能⼒。

3.6.4 Wide&Deep 模型的影响⼒

  Wide&Deep 模型的影响⼒⽆疑是巨⼤的,不仅其本身成功应⽤于多家⼀线互联⽹公司,⽽且其后续的改进创新⼯作也延续⾄今。事实上,DeepFM NFM 等模型都可以看成 Wide&Deep 模型的延伸。
  Wide&Deep 模型能够取得成功的关键在于:
  (1)抓住了业务问题的本质特点,能够融合传统模型记忆能⼒和深度学习模型泛化能⼒的优势。
  (2)模型的结构并不复杂,比较容易在⼯程上实现、训练和上线,这加速了其在业界的推⼴应⽤。
  也正是从 Wide&Deep 模型之后,越来越多的模型结构被加⼊推荐模型中,深度学习模型的结构开始朝着多样化、复杂化的⽅向发展。

3.7 FM 与深度学习模型的结合

  2.5 节详细介绍了 FM 模型族的演化过程。在进⼊深度学习时代后,FM 的演化过程并没有停⽌,本节将介绍的 FNN、 DeepFM 及 NFM 模型,使⽤不同的⽅式应⽤或改进了 FM 模型,并融合进深度学习模型中,持续发挥着其在特征组合上的优势。

3.7.1 FNN——⽤ FM 的隐向量完成 Embedding 层初始化

  FNN[8]由伦敦⼤学学院的研究⼈员于 2016年提出,其模型的结构( 如图 3-17所示)初步看是⼀个类似 Deep Crossing 模型的经典深度神经⽹络,从稀疏输⼈向量到稠密向量的转换过程也是经典的 Embedding 层的结构。那么,FNN 模型到底在哪⾥与 FM 模型进⾏了结合呢?
在这里插入图片描述
  问题的关键还在于 Embedding 层的改进。在神经⽹络的参数初始化过程中,往往采⽤随机初始化这种不包含任何先验信息的初始化⽅法。由于 Embedding 层的输⼊极端稀疏化,导致 Embedding 层的收敛速度⾮常缓慢。再加上 Embedding层的参数数量往往占整个神经⽹络参数数量的⼤半以上,因此模型的收敛速度往往受限于 Embedding 层


基础知识——为什么 Embedding 层的收敛速度往往很慢

  在深度学习⽹络中,Embedding 层的作⽤是将稀疏输⼈向量转换成稠密向量,但 Embedding 层的存在往往会拖慢整个神经⽹络的收敛速度,原因有两个:
  (1 )Embedding 层的参数数量巨⼤。这⾥可以做⼀个简单的计算。假设输⼈层的维度是 100,000, Embedding 层输出维度是 32, 上层再加 5层 32维的全连接层,最后输出层维度是 10, 那么输⼈层到 Embedding 层的参数数量是32x100,000= 3,200,000, 其余所有层的参数总数是(32x32)x4+32x10=4416。那么,Embedding 层的权重总数占⽐是 3,200,000/(3,200,000+4416)=99. 86%。
  也就是说,Embedding 层的权重占了整个⽹络权重的绝⼤部分。那么,训练过程可想⽽知,⼤部分的训练时间和计算开销都被 Embedding 层占据。
  (2)由于输⼊向量过于稀疏,在随机梯度下降的过程中,只有与⾮零特征相连的 Embedding 层权重会被更新( 请参照随机梯度下降的参数更新公式理解 ),这进⼀步降低了 Embedding 层的收敛速度。



在这里插入图片描述
  需要说明的是,在训练 FM 的过程中,并没有对特征域进⾏区分,但在 FNN模型中,特征被分成了不同特征域,因此每个特征域具有对应的 Embedding 层,并且每个特征域 Embedding 的维度都应与 FM 隐向量维度保持⼀致。
  FNN 模型除了可以使⽤ FM 参数初始化 Embedding 层权重,也为另⼀种Embedding 层的处理⽅式——Embedding 预训练提供了借鉴思路。具体内容将在第 4章详细的介绍。

3.7.2 DeepFM—⽤ FM 代替 Wide 部分

  FNN把FM的训练结果作为初始化权重,并没有对神经⽹络的结构进⾏调整,⽽ 2017年由哈尔滨⼯业⼤学和华为公司联合提出的 DeepFM[9]则将 FM 的模型结构与 Wide&Deep 模型进⾏了整合,其模型结构图如图 3-19 所示。
在这里插入图片描述
  3.6 节曾经提到,在 Wide&Deep 模型之后,诸多模型延续了双模型组合的结构,DeepFM 就是其中之⼀。DeepFM 对 Wide&Deep 模型的改进之处在于,它⽤FM 替换了原来的 Wide 部分,加强了浅层⽹络部分特征组合的能⼒。如图 3-19所示,左边的 FM 部分与右边的深度神经⽹络部分共享相同的 Embedding 层。左侧的FM部分对不同的特征域的Embedding进⾏了两两交叉,也就是将 Embedding向量当作原 FM 中的特征隐向量。最后将 FM 的输出与 Deep 部分的输出⼀同输⼊最后的输出层,参与最后的⽬标拟合。
  与 Wide&Deep 模型相⽐,DeepFM 模型的改进主要是针对 Wide&Deep 模型的 Wide 部分不具备⾃动的特征组合能⼒的缺陷进⾏的。这⾥的改进动机与Deep&Cross模型的完全⼀致,唯⼀的不同就在于 Deep&Cross模型利⽤多层 Cross⽹络进⾏特征组合,⽽ DeepFM 模型利⽤ FM 进⾏特征组合。当然,具体的应⽤效果还需要通过实验进⾏比重。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值