一、FinalMLP [2023]

《FinalMLP: An Enhanced Two-Stream MLP Model for CTR Prediction》

  1. 虽然多层感知机 (multi-layer perceptron: MLP )是许多deep CTR 预测模型的核心组件,但人们普遍认为,单独应用简单的MLP 网络在学习乘性特征交互(multiplicative feature interactions )方面效率低下。因此,许多双流交互(two-stream interaction )模型(例如DeepFMDCN )已通过将MLP 网络与另一个专用网络(dedicated network )集成从而来增强CTR 预测。由于MLP stream 隐式学习特征交互(feature interactions ),现有研究主要侧重于提升complementary stream 中的显式特征交互(explicit feature interactions )。

    相比之下,我们的实证研究表明,只需结合两个MLP 即可获得令人惊讶的良好性能,这是现有工作从未报道过的。基于这一观察,我们进一步提出了可以轻松插入的feature gating layersinteraction aggregation layers ,从而得到enhanced two-stream MLP model 。这样,它不仅可以实现差异化的feature inputs ,还可以有效地融合两个streams 之间的stream-level interactions 。我们在四个开放benchmark datasets 上的评估结果,以及我们工业系统中的online A/B test 表明,FinalMLP 比许多复杂的two-stream CTR 模型取得了更好的性能。

  2. CTR 预测的关键挑战之一是学习特征之间的复杂关系,使得模型能够在罕见的feature interactions 情况下仍能很好地泛化。

    • 多层感知机作为深度学习中强大而通用的组件,已成为各种CTR 预测模型的核心构建块(building block)。尽管MLP 在理论上被认为是一种通用近似器,但人们普遍认识到,在实践中,应用简单的MLP 网络学习multiplicative feature interactions(例如,点乘dot )效率低下。

    • 为了提升学习explicit feature interactions (二阶或三阶特征)的能力,人们已经提出了各种feature interaction 网络。典型的例子包括factorization machines: FMcross networkcompressed interaction network: CINself-attention based interactionadaptive factorization network: AFN 等。

      这些网络引入了inductive bias 来有效地学习feature interactions ,但失去了MLPexpressiveness ,如Table 3 中的实验所示。因此,双流(two-streamCTR 预测模型得到了广泛应用,例如DeepFMDCNxDeepFMAutoInt+,它们将MLP 网络和专用的feature interaction 网络集成在一起,以提升CTR 预测。具体来说,MLP stream 隐式地学习feature interactions ,而另一个stream 以互补的方式提升explicit feature interactions 。由于其有效性,双流模型已成为工业部署的热门选择。

    • 尽管许多现有研究已经验证了双流模型相对于单个MLP 模型的有效性,但没有一项研究报告了双流模型与简单地并行组合两个MLP 网络的双流MLP 模型(记作DualMLP )的性能比较。因此,我们的工作首次尝试描述DualMLP 的性能。我们在开放benchmark datasets 上进行的经验研究表明,尽管DualMLP很简单,但可以实现令人惊讶的良好性能,与许多精心设计的双流模型相当甚至更好(参见我们的实验)。这一观察促使我们研究这种双流MLP 模型的潜力,并进一步扩展它以构建一个简单但强大的CTR 预测模型。

  3. 双流模型实际上可以看作是两个并行网络的ensemble 。这些双流模型的一个优点是每个流都可以从不同的角度学习feature interactions ,从而互补以实现更好的性能。例如:

    • Wide&DeepDeepFM 提出使用一个流来捕获低阶feature interactions ,另一个流来学习高阶feature interactions

    • DCNAutoInt+ 提倡分别在两个流中学习explicit feature interactionsimplicit feature interactions

    • xDeepFMvector-wisebit-wise 的角度进一步提升了feature interaction learning

    这些先前的结果验证了两个network streams 的差异化(或多样性)对双流模型的有效性有很大影响。

    与现有的通过设计不同的网络结构(例如,CrossNetCIN)来实现stream differentiation 的双流模型相比,DualMLP 的局限性在于两个流都只是MLP 网络。我们的初步实验还表明,当针对两个MLP 使用不同的网络大小(如,不同的层数、不同的units 数量)来调优DualMLP 时,可以获得更好的性能。这一结果促使我们进一步探索如何扩大两个流的差异化,以改进DualMLP 作为base model

    此外,现有的双流模型通常通过summationconcatenation 来组合两个流,这可能会浪费对高阶(即stream-level ) 的feature interactions 进行建模的机会。如何更好地融合stream outputs 成为另一个值得进一步探索的研究问题。

    为了解决这些问题,本文构建了一个增强型双流MLP 模型,即FinalMLP ,它在两个MLP module networks 之上集成了feature gating 层和interaction aggregation

    • 更具体地说,我们提出了一个stream-specificfeature gating layer ,它允许获得gating-basedfeature importance weights 从而用于soft feature selection 。也就是说,可以通过以learnable parameters 、用户特征、或item 特征为条件,从不同角度计算feature gating ,从而分别产生全局的、user-specific 、或item-specificfeature importance weights 。通过灵活地选择不同的gating-condition features ,我们能够为每个流得出stream-specific features ,从而增强feature inputs的差异化,以实现两个流的complementary feature interaction learning

    • 为了将stream outputsstream-level feature interaction 来融合,我们提出了一个基于二阶双线性融合(second-order bilinear fusion )的interaction aggregation 层 。为了降低计算复杂度,我们进一步将计算分解为 ksub-groups ,从而实现高效的multi-head bilinear fusion

    feature gating 层和interaction aggregation 层都可以轻松插入现有的双流模型中。我们在四个开放benchmark datasets 上的实验结果表明,FinalMLP 优于现有的双流模型,并达到了新的SOTA 。此外,我们通过离线评估和在线A/B testing 验证了其在工业环境中的有效性,其中FinalMLP 还显示出比所部署的baseline 显著的性能提升。我们设想,简单而有效的FinalMLP 模型可以作为未来开发双流CTR 模型的新的强大baseline

  4. 本文的主要贡献总结如下:

    • 据我们所知,这是第一项通过实证证明双流MLP 模型令人惊讶的有效性的研究,这可能与文献中的普遍看法相反。

    • 我们提出了FinalMLP ,这是一种增强型双流MLP 模型,具有pluggable feature gating and interaction aggregation layers

    • 我们在benchmark datasets 上进行了离线实验,并在生产系统中进行了online A/B test ,以验证FinalMLP 的有效性。

1.1 模型

  1. 双流MLP 模型:尽管双流MLP 模型很简单,但据我们所知,之前的研究尚未报道过这种模型。因此,我们首次尝试研究这种用于CTR 预测的模型,称为DualMLP ,它简单地将两个独立的MLP 网络组合成两个流。具体而言,双流MLP 模型可以表述如下:

    o1=MLP1(h1),o2=MLP2(h2)

    其中:

    • MLP1()MLP2() 是两个MLP 网络。两个MLP 的规模(即,层数、隐层大小)可以根据数据进行不同的设置。

    • h1h2 表示两个流的feature inputs ,而 o1o2 分别是两个流的output representations

    在大多数以前的工作中,feature inputs h1h2 通常设置为同一个,它是feature embeddings 的拼接(可能包含一些池化操作) e ,即 h1=h2=e。同时,stream outputs 通常通过简单的操作进行融合,例如summationconcatenation ,忽略stream-level interactions 。接下来,我们介绍两个可以分别被插入到inputs 中和outputs 中的模块,以提升双流MLP 模型。

1.1.1 Stream-Specific Feature Selection

  1. 许多现有研究强调了结合两种不同的feature interaction 网络(例如,implicit vs. explicitlow-order vs. high-order,bit-wise vs. vector-wise )以有效地实现准确的CTR 预测。我们的工作不是设计专用的网络结构,而是旨在通过stream-specificfeature selection 来扩大两个流之间的差异,从而产生差异化的feature inputs MMOE 中使用的门控机制的启发,我们提出了一个stream-specificfeature gating 模块来soft-select stream-specific features ,即为每个流不同地重新加权feature inputs 。在MMOE 中,gating weightstask-specific features 为条件,从而重新加权expert outputs 。同样地,我们通过以learnable parameters, user features, or item features 为条件,从不同角度执行feature gating ,从而分别产生global, user-specific, or item-specific feature importance weights

  2. 具体来说,我们通过context-aware feature gating layer 进行stream-specific feature selection ,如下所示:

    g1=Gate1(x1),g2=Gate2(x2)h1=2σ(g1)e,h2=2σ(g2)e

    其中:

    • Gate1() 表示基于MLP 的门控网络,它以stream-specific conditional features xi 作为输入,并输出element-wise gating weights gi 。请注意,可以灵活地从user/item 的一组特征中选择 xi ,或将 xi 设置为learnable parameters

    • feature importance weights 是通过使用sigmoid 函数 σ() 和乘子2 将其转换为[0, 2] 的范围从而获得的,使得权重的平均值为1

    • 给定concatenated feature embeddings e ,我们可以通过逐元素乘积 获得加权的feature outputs h1h2

    我们的feature gating 模块允许通过从不同角度设置conditional features xi ,从而为两个流制作差异化的feature inputs 。例如,Figure 1(a) 演示了user-specificitem-specificfeature gating 的案例,它分别从用户的角度和item 的角度来调制(modulate )每个流。这减少了两个相似的MLP streams 之间的“homogeneous” 学习,并能够实现feature interactions 的更多的complementary learning

1.1.2 Stream-Level Interaction Aggregation

  1. Bilinear Fusion:如前所述,现有工作大多采用summationconcatenation 作为融合层(fusion layer ),但这些操作无法捕stream-level feature interactions 。受到CV 领域中广泛研究的双线性池化(bilinear pooling )的启发,我们提出了一个双线性交互聚合层(bilinear interaction aggregation layer ),通过用stream-level feature interaction 来融合stream outputs 。如Figure 1(c) 所示,所预测的点击率公式如下:

    y^=σ(b+w1o1+w2o2+o1W3o2)

    其中:

    • bR,w1Rd1×1,w2Rd2×1,W3Rd1×d2 为可学习的权重,d1d2 表示 o1o2 的维度。

    • 双线性项 o1W3o2 建模了 o1o2 之间的二阶交互。具体而言:

      • W3 是单位矩阵时,该项模拟了内积操作。

      • W3 为零矩阵时,点击率公式会退化为具有线性层的传统的concatenation fusion,即 b+[w1,w2][o1,o2] 。其中 [,] 表示向量拼接操作。

  2. 有趣的是,bilinear fusion 也与常用的FM 模型有联系。具体来说,FM 通过以下公式来建模 m 维输入特征向量 x (该特征向量通过one-hot/multi-hot feature encodingconcatenation 来获得)之间的二阶特征交互,从而进行CTR 预测:

    y^=σ(b+wx+xupper(PP)x)

    其中:

    • bR,wRm×1,PRm×d 为可学习的权重, dmupper() 函数获取矩阵的严格的上三角部分。

    P 就是 embedding 矩阵。

    可以看出,当 o1=o2 时,FMbilinear fusion 的一种特殊形式。

  3. 然而,当 o1o2 是高维时,计算 y^ 需要大量参数且计算成本高昂。例如,要融合两个1000 维输出,W3R1000×1000 需要1M 参数,计算成本高昂。为了降低计算复杂度,我们在下面介绍了扩展的多头双线性融合(multi-head bilinear fusion )。

    通常 o1o2 的维度和 embedding 维度相等,都是选择较小的维度,如 128 。很少选择非常大的维度。

  4. Multi-Head Bilinear Fusionmulti-head attention 之所以具有吸引力,是因为它能够将来自不同representation subspaces 并使用相同attention pooling 的知识结合起来。在最近成功的Transformer 模型中,它减少了计算量,并一致性地提高了性能。受Transformer 成功的启发,我们将bilinear fusion 扩展为多头的版本。具体来说,我们不是直接计算 o1W3o2 ,而是将 o1o2分别分成 k 个子空间:

    o1=[o1,1,,o1,k]o2=[o2,1,,o2,k]

    其中:k 是超参数,oi,j 表示第 i 个输出向量的第 jsub-space representationi{1,2},1jk multi-head attention 类似,我们在每个子空间中执行bilinear fusion ,将 o1,jo2,j 配对为一组。然后,我们通过sum pooling 聚合subspace computation ,以得到最终的预测的点击率:

    y^=σ(j=1kBF(o1,j,o2,j))

    其中:BF() 表示没有sigmoid 激活函数的bilinear fusion

    通过与multi-head attention 类似的subspace computation ,理论上我们可以将bilinear fusion 的参数数量和计算复杂度减少 k 倍,即从 O(d1d2) 减少到 O(d1d2k)。特别是,当设置 k=d1=d2 时,它会退化为element-wise product fusion 。如果 k=1 ,则等于原始双线性融合。选择合适的 k 可以实现multi-head learning ,从而使模型获得更好的性能。实际上,k 个子空间的multi-head fusionsGPU 中并行计算,从而进一步提高效率。

  5. 最后,我们的stream-specific feature gating 模块和stream-level interaction aggregation 模块可以被插入到模型中,从而生成增强型的双流MLP 模型,即FinalMLP

1.1.3 模型训练

  1. 为了训练FinalMLP ,我们应用了广泛使用的二元交叉熵损失:

    L=1N(ylogy^+(1y)log(1y^))

1.2 实验

  1. 数据集:Criteo, Avazu, MovieLens, and Frappe

  2. 评估指标:AUC 。此外,AUC 增加0.1 被认为是CTR 预测的显著改善。

  3. baseline

    • single-stream 的显式的feature interaction 网络:

      • 一阶:Logistic Regression (LR)

      • 二阶:FMAFMFFMFwFMFmFM

      • 三阶:HOFM(3rd)CrossNet(2L)CrossNetV2(2L)CIN(2L)。我们特意将最大阶次设置为“3rd” 、或将交互层数设置为“2L” ,从而获得三阶特征交互。

      • 高阶:CrossNetCrossNetV2CINAutoIntFiGNNAFNSAM,可自动学习高阶feature interaction

    • 双流CTR 模型:相关工作中所介绍的。

  4. 实现:

    • 重用baseline 模型。

    • 基于 FuxiCTR 实现我们的模型。

    • 我们的评估遵循与AFN 相同的实验设置,将embedding 维度设置为10 ,将batch size 设置为4096,将默认MLP大小设置为[400, 400, 400] 。对于DualMLPFinalMLP,我们调优在1∼3 层中的两个MLP 以增强stream diversity 我们将学习率设置为1e−35e−4。我们通过广泛的网格搜索(平均每个模型约30 次运行)调优所有研究模型的所有其他超参数(例如,embedding regularizationdropout rate )。我们注意到,通过优化后的FuxiCTR 实现和足够的超参数调优,我们获得的模型性能比AFT 原始论文中报告的要好得多。因此,我们报告自己的实验结果,而不是重复使用他们的实验结果来进行公平的比较。为了促进可重复的研究,我们开源了FinalMLP 的代码和running logs 以及所有使用的baseline

1.2.1 MLP vs. Explicit Feature Interaction

  1. 这里我们将MLP 与精心设计的feature interaction 网络进行比较,如下表所示。令人惊讶的是,我们观察到MLP 的表现可以与精心设计的显式feature interaction 网络不相上下,甚至超越它们。这一观察结果也与DCN-V2 论文中报告的结果一致,其中表明经过良好调优的MLP模型(即DNN )可获得与许多现有模型相当的性能。

  2. 总体而言,MLP 取得的出色表现表明,尽管其结构简单且在学习multiplicative features 方面较弱,但MLP在以隐式方式学习feature interactions 方面非常具有表达能力。这也部分解释了为什么现有研究双流模型,其中双流模型将显式feature interaction 网络与MLP结合起来作为CTR 预测。不幸的是,MLP 的优势从未在任何现有工作中得到明确揭示。受上述观察的启发,我们更进一步研究一种未经探索的模型结构的潜力,该模型结构简单地将两个MLP 作为双流MLP 模型。

1.2.2 DualMLP and FinalMLP vs. Two-Stream Baselines

  1. 我们对下表中所示的代表性的双流模型进行了全面比较。从结果中,我们得出以下观察结果:

    • 首先,我们可以看到双流模型通常优于Table 3 中报告的单流模型,尤其是单个MLP 模型。这符合现有工作,表明双流模型可以学习互补的特征,从而能够更好地建模CTR prediction

    • 其次,简单的双流模型DualMLP 表现得出奇地好。通过仔细调优两个流的MLP layersDualMLP 可以实现与其他复杂的双流baseline 相当甚至更好的性能。据我们所知,DualMLP 的强大性能从未在文献中报道过。在我们的实验中,我们发现通过在两个流中设置不同的MLP size 来增加stream network 的多样性可以提高DualMLP 的性能。这促使我们进一步开发增强的双流MLP 模型,即FinalMLP 。/

    • 第三,通过我们在feature gatingfusion 方面的可插入式扩展,FinalMLP 在四个开放数据集上的表现始终优于DualMLP 以及所有其他的双流基线。这证明了我们的FinalMLP 的有效性。截至撰写本文时,FinalMLPCriteo 上的PapersWithCodeBARSCTR prediction 排行榜上排名第一。

1.2.3 消融研究

  1. Feature Selection and Bilinear Fusion 的效果:具体来说,我们将FinalMLP 与以下变体进行比较:

    • DualMLP :简单的双流MLP模型,仅将两个MLP作为两个流。

    • w/o FS :缺乏通过context-aware feature gating 实现stream-specific 的特征选择模块的FinalMLP

    • Sum:在FinalMLP 中使用summation 融合。

    • Concat:在FinalMLP 中使用concatenation 融合。

    • EWP:在FinalMLP 中使用Element-Wise Product (即Hadamard 乘积)融合。

    消融研究结果如Figure 2 所示。我们可以看到:

    • 当删除feature selection 模块、或用其他常用融合操作替换bilinear fusion 时,性能会下降。这验证了我们的feature selection 模块和bilinear fusion 模块的有效性。

    • 此外,我们观察到bilinear fusionfeature selection 起着更重要的作用,因为替换前者会导致更多的性能下降。

  2. Multi-Head Bilinear Fusion 的效果:我们研究了subspace grouping 技术对bilinear fusion 的影响。下表显示了通过改变子空间数量(即heads 数量 k)进行bilinear fusionFinalMLP 的性能。OOM 表示在设置中发生Out-Of-Memory 错误。

    我们发现使用更多参数(即较小的 k )进行融合,并不总是会带来更好的性能。这是因为合适的 k 可以帮助模型从多个视图中学习stream-level 特征交互,同时减少冗余的特征交互,类似于multi-head attention 。在实践中,可以通过调优 k 来实现effectivenessefficiency 之间的良好平衡。

  3. Industrial Evaluation:我们进一步在新闻推荐生产系统中评估FinalMLP ,该系统每天为数百万用户提供服务。我们首先使用来自3天的用户点击日志(包含1.2B 个样本)的训练数据进行离线评估。AUC 结果如Table 5 所示。

    • 与在线部署的deep BaseModel 相比,FinalMLPAUC 上获得了超过一个点的改进。

    • 我们还将其与EDCN进行了比较,这是一项最近的工作,它通过双流网络之间的交互增强了DCNFinalMLPAUC上比EDCN获得了额外的0.44 个点的改进。

    此外,我们测试了接收用户请求和返回预测结果之间的端到端的推理延迟(inference latency )。我们可以看到,通过应用我们的multi-head bilinear fusion ,延迟可以从70 毫秒(使用1 head )减少到47毫秒(使用8 heads ),与在线部署的BaseModel45 毫秒)达到相同的延迟水平。此外,通过选择适当的head numAUC 结果也会略有改善。

    我们最终报告了718日至22日进行的在线A/B test 的结果,结果显示在Table 6 中。FinalMLP 平均实现了1.6%CTR改进。这样的改进对我们的生产系统意义重大。