《FinalMLP: An Enhanced Two-Stream MLP Model for CTR Prediction》
虽然多层感知机 (multi-layer perceptron: MLP )是许多deep CTR 预测模型的核心组件,但人们普遍认为,单独应用简单的MLP 网络在学习乘性特征交互(multiplicative feature interactions )方面效率低下。因此,许多双流交互(two-stream interaction )模型(例如DeepFM 和DCN )已通过将MLP 网络与另一个专用网络(dedicated network )集成从而来增强CTR 预测。由于MLP stream 隐式学习特征交互(feature interactions ),现有研究主要侧重于提升complementary stream 中的显式特征交互(explicit feature interactions )。
相比之下,我们的实证研究表明,只需结合两个MLP 即可获得令人惊讶的良好性能,这是现有工作从未报道过的。基于这一观察,我们进一步提出了可以轻松插入的feature gating layers 和interaction aggregation layers ,从而得到enhanced two-stream MLP model 。这样,它不仅可以实现差异化的feature inputs ,还可以有效地融合两个streams 之间的stream-level interactions 。我们在四个开放benchmark datasets 上的评估结果,以及我们工业系统中的online A/B test 表明,FinalMLP 比许多复杂的two-stream CTR 模型取得了更好的性能。
CTR 预测的关键挑战之一是学习特征之间的复杂关系,使得模型能够在罕见的feature interactions 情况下仍能很好地泛化。
多层感知机作为深度学习中强大而通用的组件,已成为各种CTR 预测模型的核心构建块(building block)。尽管MLP 在理论上被认为是一种通用近似器,但人们普遍认识到,在实践中,应用简单的MLP 网络学习multiplicative feature interactions(例如,点乘dot )效率低下。
为了提升学习explicit feature interactions (二阶或三阶特征)的能力,人们已经提出了各种feature interaction 网络。典型的例子包括factorization machines: FM 、cross network 、compressed interaction network: CIN 、self-attention based interaction 、adaptive factorization network: AFN 等。
这些网络引入了inductive bias 来有效地学习feature interactions ,但失去了MLP 的expressiveness ,如Table 3 中的实验所示。因此,双流(two-stream )CTR 预测模型得到了广泛应用,例如DeepFM、DCN、xDeepFM 和AutoInt+,它们将MLP 网络和专用的feature interaction 网络集成在一起,以提升CTR 预测。具体来说,MLP stream 隐式地学习feature interactions ,而另一个stream 以互补的方式提升explicit feature interactions 。由于其有效性,双流模型已成为工业部署的热门选择。
尽管许多现有研究已经验证了双流模型相对于单个MLP 模型的有效性,但没有一项研究报告了双流模型与简单地并行组合两个MLP 网络的双流MLP 模型(记作DualMLP )的性能比较。因此,我们的工作首次尝试描述DualMLP 的性能。我们在开放benchmark datasets 上进行的经验研究表明,尽管DualMLP很简单,但可以实现令人惊讶的良好性能,与许多精心设计的双流模型相当甚至更好(参见我们的实验)。这一观察促使我们研究这种双流MLP 模型的潜力,并进一步扩展它以构建一个简单但强大的CTR 预测模型。
双流模型实际上可以看作是两个并行网络的ensemble 。这些双流模型的一个优点是每个流都可以从不同的角度学习feature interactions ,从而互补以实现更好的性能。例如:
Wide&Deep 和DeepFM 提出使用一个流来捕获低阶feature interactions ,另一个流来学习高阶feature interactions 。
DCN 和AutoInt+ 提倡分别在两个流中学习explicit feature interactions 和implicit feature interactions 。
xDeepFM 从vector-wise 和bit-wise 的角度进一步提升了feature interaction learning 。
这些先前的结果验证了两个network streams 的差异化(或多样性)对双流模型的有效性有很大影响。
与现有的通过设计不同的网络结构(例如,CrossNet、CIN)来实现stream differentiation 的双流模型相比,DualMLP 的局限性在于两个流都只是MLP 网络。我们的初步实验还表明,当针对两个MLP 使用不同的网络大小(如,不同的层数、不同的units 数量)来调优DualMLP 时,可以获得更好的性能。这一结果促使我们进一步探索如何扩大两个流的差异化,以改进DualMLP 作为base model 。
此外,现有的双流模型通常通过summation 或concatenation 来组合两个流,这可能会浪费对高阶(即stream-level ) 的feature interactions 进行建模的机会。如何更好地融合stream outputs 成为另一个值得进一步探索的研究问题。
为了解决这些问题,本文构建了一个增强型双流MLP 模型,即FinalMLP ,它在两个MLP module networks 之上集成了feature gating 层和interaction aggregation 。
更具体地说,我们提出了一个stream-specific 的feature gating layer ,它允许获得gating-based 的feature importance weights 从而用于soft feature selection 。也就是说,可以通过以learnable parameters 、用户特征、或item 特征为条件,从不同角度计算feature gating ,从而分别产生全局的、user-specific 、或item-specific 的feature importance weights 。通过灵活地选择不同的gating-condition features ,我们能够为每个流得出stream-specific features ,从而增强feature inputs的差异化,以实现两个流的complementary feature interaction learning 。
为了将stream outputs 以stream-level feature interaction 来融合,我们提出了一个基于二阶双线性融合(second-order bilinear fusion )的interaction aggregation 层 。为了降低计算复杂度,我们进一步将计算分解为 sub-groups ,从而实现高效的multi-head bilinear fusion 。
feature gating 层和interaction aggregation 层都可以轻松插入现有的双流模型中。我们在四个开放benchmark datasets 上的实验结果表明,FinalMLP 优于现有的双流模型,并达到了新的SOTA 。此外,我们通过离线评估和在线A/B testing 验证了其在工业环境中的有效性,其中FinalMLP 还显示出比所部署的baseline 显著的性能提升。我们设想,简单而有效的FinalMLP 模型可以作为未来开发双流CTR 模型的新的强大baseline 。
本文的主要贡献总结如下:
据我们所知,这是第一项通过实证证明双流MLP 模型令人惊讶的有效性的研究,这可能与文献中的普遍看法相反。
我们提出了FinalMLP ,这是一种增强型双流MLP 模型,具有pluggable feature gating and interaction aggregation layers 。
我们在benchmark datasets 上进行了离线实验,并在生产系统中进行了online A/B test ,以验证FinalMLP 的有效性。
双流MLP 模型:尽管双流MLP 模型很简单,但据我们所知,之前的研究尚未报道过这种模型。因此,我们首次尝试研究这种用于CTR 预测的模型,称为DualMLP ,它简单地将两个独立的MLP 网络组合成两个流。具体而言,双流MLP 模型可以表述如下:
其中:
MLP 网络。两个MLP 的规模(即,层数、隐层大小)可以根据数据进行不同的设置。
feature inputs ,而 output representations 。
在大多数以前的工作中,feature inputs feature embeddings 的拼接(可能包含一些池化操作) stream outputs 通常通过简单的操作进行融合,例如summation 和concatenation ,忽略stream-level interactions 。接下来,我们介绍两个可以分别被插入到inputs 中和outputs 中的模块,以提升双流MLP 模型。
许多现有研究强调了结合两种不同的feature interaction 网络(例如,implicit vs. explicit 、low-order vs. high-order, 、bit-wise vs. vector-wise )以有效地实现准确的CTR 预测。我们的工作不是设计专用的网络结构,而是旨在通过stream-specific 的feature selection 来扩大两个流之间的差异,从而产生差异化的feature inputs 。
受 MMOE 中使用的门控机制的启发,我们提出了一个stream-specific 的feature gating 模块来soft-select stream-specific features ,即为每个流不同地重新加权feature inputs 。在MMOE 中,gating weights 以task-specific features 为条件,从而重新加权expert outputs 。同样地,我们通过以learnable parameters, user features, or item features 为条件,从不同角度执行feature gating ,从而分别产生global, user-specific, or item-specific feature importance weights 。
具体来说,我们通过context-aware feature gating layer 进行stream-specific feature selection ,如下所示:
其中:
MLP 的门控网络,它以stream-specific conditional features element-wise gating weights user/item 的一组特征中选择 learnable parameters 。
feature importance weights 是通过使用sigmoid 函数 2 将其转换为[0, 2] 的范围从而获得的,使得权重的平均值为1 。
给定concatenated feature embeddings feature outputs
我们的feature gating 模块允许通过从不同角度设置conditional features feature inputs 。例如,Figure 1(a) 演示了user-specific 和item-specific 的feature gating 的案例,它分别从用户的角度和item 的角度来调制(modulate )每个流。这减少了两个相似的MLP streams 之间的“homogeneous” 学习,并能够实现feature interactions 的更多的complementary learning 。

Bilinear Fusion:如前所述,现有工作大多采用summation 或concatenation 作为融合层(fusion layer ),但这些操作无法捕stream-level feature interactions 。受到CV 领域中广泛研究的双线性池化(bilinear pooling )的启发,我们提出了一个双线性交互聚合层(bilinear interaction aggregation
layer ),通过用stream-level feature interaction 来融合stream outputs 。如Figure 1(c) 所示,所预测的点击率公式如下:
其中:
双线性项
当
当 concatenation fusion,即
有趣的是,bilinear fusion 也与常用的FM 模型有联系。具体来说,FM 通过以下公式来建模 one-hot/multi-hot feature encoding 和concatenation 来获得)之间的二阶特征交互,从而进行CTR 预测:
其中:
就是 embedding矩阵。
可以看出,当 FM 是bilinear fusion 的一种特殊形式。
然而,当 1000 维输出,1M 参数,计算成本高昂。为了降低计算复杂度,我们在下面介绍了扩展的多头双线性融合(multi-head bilinear fusion )。
通常
和 的维度和 embedding维度相等,都是选择较小的维度,如128。很少选择非常大的维度。
Multi-Head Bilinear Fusion:multi-head attention 之所以具有吸引力,是因为它能够将来自不同representation subspaces 并使用相同attention pooling 的知识结合起来。在最近成功的Transformer 模型中,它减少了计算量,并一致性地提高了性能。受Transformer 成功的启发,我们将bilinear fusion 扩展为多头的版本。具体来说,我们不是直接计算
其中:sub-space representation ,multi-head attention 类似,我们在每个子空间中执行bilinear fusion ,将 sum pooling 聚合subspace computation ,以得到最终的预测的点击率:
其中:sigmoid 激活函数的bilinear fusion 。
通过与multi-head attention 类似的subspace computation ,理论上我们可以将bilinear fusion 的参数数量和计算复杂度减少 element-wise product fusion 。如果 multi-head learning ,从而使模型获得更好的性能。实际上,multi-head fusions 在GPU 中并行计算,从而进一步提高效率。
最后,我们的stream-specific feature gating 模块和stream-level interaction aggregation 模块可以被插入到模型中,从而生成增强型的双流MLP 模型,即FinalMLP 。
为了训练FinalMLP ,我们应用了广泛使用的二元交叉熵损失:
数据集:Criteo, Avazu, MovieLens, and Frappe 。

评估指标:AUC 。此外,AUC 增加0.1 被认为是CTR 预测的显著改善。
baseline:
single-stream 的显式的feature interaction 网络:
一阶:Logistic Regression (LR)。
二阶:FM、AFM、FFM、FwFM 、FmFM 。
三阶:HOFM(3rd)、CrossNet(2L)、CrossNetV2(2L)和CIN(2L)。我们特意将最大阶次设置为“3rd” 、或将交互层数设置为“2L” ,从而获得三阶特征交互。
高阶:CrossNet、CrossNetV2、CIN、AutoInt、FiGNN、AFN 和SAM,可自动学习高阶feature interaction 。
双流CTR 模型:相关工作中所介绍的。
实现:
重用baseline 模型。
基于 FuxiCTR 实现我们的模型。
我们的评估遵循与AFN 相同的实验设置,将embedding 维度设置为10 ,将batch size 设置为4096,将默认MLP大小设置为[400, 400, 400] 。对于DualMLP和FinalMLP,我们调优在1∼3 层中的两个MLP 以增强stream diversity 。
我们将学习率设置为1e−3 或5e−4。我们通过广泛的网格搜索(平均每个模型约30 次运行)调优所有研究模型的所有其他超参数(例如,embedding regularization 和dropout rate )。我们注意到,通过优化后的FuxiCTR 实现和足够的超参数调优,我们获得的模型性能比AFT 原始论文中报告的要好得多。因此,我们报告自己的实验结果,而不是重复使用他们的实验结果来进行公平的比较。为了促进可重复的研究,我们开源了FinalMLP 的代码和running logs 以及所有使用的baseline 。
这里我们将MLP 与精心设计的feature interaction 网络进行比较,如下表所示。令人惊讶的是,我们观察到MLP 的表现可以与精心设计的显式feature interaction 网络不相上下,甚至超越它们。这一观察结果也与DCN-V2 论文中报告的结果一致,其中表明经过良好调优的MLP模型(即DNN )可获得与许多现有模型相当的性能。

总体而言,MLP 取得的出色表现表明,尽管其结构简单且在学习multiplicative features 方面较弱,但MLP在以隐式方式学习feature interactions 方面非常具有表达能力。这也部分解释了为什么现有研究双流模型,其中双流模型将显式feature interaction 网络与MLP结合起来作为CTR 预测。不幸的是,MLP 的优势从未在任何现有工作中得到明确揭示。受上述观察的启发,我们更进一步研究一种未经探索的模型结构的潜力,该模型结构简单地将两个MLP 作为双流MLP 模型。
我们对下表中所示的代表性的双流模型进行了全面比较。从结果中,我们得出以下观察结果:
首先,我们可以看到双流模型通常优于Table 3 中报告的单流模型,尤其是单个MLP 模型。这符合现有工作,表明双流模型可以学习互补的特征,从而能够更好地建模CTR prediction。
其次,简单的双流模型DualMLP 表现得出奇地好。通过仔细调优两个流的MLP layers,DualMLP 可以实现与其他复杂的双流baseline 相当甚至更好的性能。据我们所知,DualMLP 的强大性能从未在文献中报道过。在我们的实验中,我们发现通过在两个流中设置不同的MLP size 来增加stream network 的多样性可以提高DualMLP 的性能。这促使我们进一步开发增强的双流MLP 模型,即FinalMLP 。/
第三,通过我们在feature gating 和fusion 方面的可插入式扩展,FinalMLP 在四个开放数据集上的表现始终优于DualMLP 以及所有其他的双流基线。这证明了我们的FinalMLP 的有效性。截至撰写本文时,FinalMLP 在Criteo 上的PapersWithCode 和BARS 的CTR prediction 排行榜上排名第一。

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 fusion 比feature selection 起着更重要的作用,因为替换前者会导致更多的性能下降。

Multi-Head Bilinear Fusion 的效果:我们研究了subspace grouping 技术对bilinear fusion 的影响。下表显示了通过改变子空间数量(即heads 数量 bilinear fusion 时FinalMLP 的性能。OOM 表示在设置中发生Out-Of-Memory 错误。
我们发现使用更多参数(即较小的 stream-level 特征交互,同时减少冗余的特征交互,类似于multi-head attention 。在实践中,可以通过调优 effectiveness 和efficiency 之间的良好平衡。

Industrial Evaluation:我们进一步在新闻推荐生产系统中评估FinalMLP ,该系统每天为数百万用户提供服务。我们首先使用来自3天的用户点击日志(包含1.2B 个样本)的训练数据进行离线评估。AUC 结果如Table 5 所示。
与在线部署的deep BaseModel 相比,FinalMLP 在AUC 上获得了超过一个点的改进。
我们还将其与EDCN进行了比较,这是一项最近的工作,它通过双流网络之间的交互增强了DCN。FinalMLP在AUC上比EDCN获得了额外的0.44 个点的改进。
此外,我们测试了接收用户请求和返回预测结果之间的端到端的推理延迟(inference latency )。我们可以看到,通过应用我们的multi-head bilinear fusion ,延迟可以从70 毫秒(使用1 head )减少到47毫秒(使用8 heads ),与在线部署的BaseModel(45 毫秒)达到相同的延迟水平。此外,通过选择适当的head num ,AUC 结果也会略有改善。
我们最终报告了7月18日至22日进行的在线A/B test 的结果,结果显示在Table 6 中。FinalMLP 平均实现了1.6% 的CTR改进。这样的改进对我们的生产系统意义重大。
