huawei团队在《FinalMLP: An Enhanced Two-Stream MLP Model for CTR Prediction》提出了一种FinalMLP方法。

摘要

点击率(CTR)预测是在线广告和推荐系统中的一项基本任务。多层感知器(MLP)作为许多深度CTR预测模型的核心组件,已被广泛认识到,单独使用一个vanilla MLP网络在学习乘法特征交叉方面是低效的。因此,许多双流交叉模型(例如DeepFM和DCN)通过将MLP网络与另一个专用网络集成,以增强CTR预测能力。由于MLP流(MLP stream)隐式地学习特征交叉,现有研究主要集中在增强补充流(complementary stream)中的显式特征交叉。相比之下,我们的实证研究表明,一个经过良好调整的双流MLP模型,简单地结合两个MLP,甚至可以实现令人惊讶的良好性能,这在现有工作中从未被报道过。基于这一观察,我们进一步提出了特征门控(feature gating)和交叉聚合层(interaction aggregation layers),这些层可以轻松地插入以构建增强的双流MLP模型,即FinalMLP。这样,它不仅支持差异化的特征输入,而且有效地融合了两个流之间的流级交互(stream-level interactions)。我们在四个开放基准数据集上的评估结果以及我们工业系统中的在线A/B测试表明,FinalMLP比许多复杂的双流CTR模型具有更好的性能。我们的源代码将在 https://reczoo.github.io/FinalMLP 上提供。

1.引言

点击率(CTR)预测是在线广告和推荐系统(Cheng et al. 2016; He et al. 2014)中的一项基本任务。CTR预测的准确性不仅直接影响用户参与度,而且显著影响商业提供商的收入。CTR预测的一个关键挑战在于学习特征之间的复杂关系,以便模型在罕见特征交叉的情况下仍然能够很好地泛化。多层感知器(MLP),作为深度学习中强大且多功能的组件,已经成为各种CTR预测模型(Zhu et al. 2021)的核心构建块。尽管理论上MLP被认为是通用逼近器,但实践中广泛认识到应用vanilla MLP网络学习乘法特征交叉(例如点积)是低效的(Wang et al. 2017, 2021; Rendle et al. 2020)

为了增强学习显式特征交叉(二阶或三阶特征)的能力,提出了多种特征交叉网络。典型的例子包括因子分解机(FM)(Rendle 2010)、交叉网络(Wang et al. 2017)、压缩交互网络(CIN)(Lian et al. 2018)、基于自注意力的交互(Song et al. 2019)、自适应因子分解网络(AFN)(Cheng, Shen, and Huang 2020)等。这些网络引入了学习特征交叉的归纳偏差,但根据我们在表3中的实验,它们失去了MLP的表达能力。因此,双流CTR预测模型已被广泛采用,如DeepFM(Guo et al. 2017)、DCN(Wang et al. 2017)、xDeepFM(Lian et al. 2018)和AutoInt+(Song et al. 2019),它们将MLP网络和专用特征交叉网络集成在一起,以增强CTR预测。具体来说,MLP流隐式地学习特征交叉,而另一流则以补充方式增强显式特征交叉。由于它们的有效性,双流模型已成为工业部署(Zhang et al. 2021)的流行选择。

尽管许多现有研究已经验证了双流模型相对于单个MLP模型的有效性,但没有一项研究报告了与简单并行组合两个MLP网络的双流MLP模型(称为DualMLP)的性能比较。因此,我们的工作首次努力描述DualMLP的性能。我们在开放基准数据集上的实证研究表明,尽管DualMLP简单,但可以实现令人惊讶的良好性能,这与许多精心设计的双流模型相当甚至更好(见我们的实验)。这一观察激发了我们研究这样一个双流MLP模型的潜力,并进一步将其扩展为CTR预测的简单而强大的模型。

事实上,双流模型可以被视为两个并行网络的集成。这些双流模型的一个优势是每个流可以从不同的角度学习特征交叉,从而互补以实现更好的性能。例如:

  • Wide&Deep(Cheng et al. 2016)和DeepFM(Guo et al. 2017)提出使用一个流来捕获低阶特征交叉,另一个流来学习高阶特征交叉。
  • DCN(Wang et al. 2017)和AutoInt+(Song et al. 2019)主张在两个流中分别学习显式特征交叉和隐式特征交叉。
  • xDeepFM(Lian et al. 2018)进一步从向量级和位级角度增强特征交叉学习。这些先前的结果验证了两个网络流的差异化(或多样性)对双流模型的有效性有重大影响。

与现有的依靠设计不同网络结构(例如,CrossNet(Wang et al. 2017)和CIN(Lian et al. 2018))以实现流差异化的双流模型相比,DualMLP的局限性在于两个流都是简单的MLP网络。我们的初步实验还表明,通过为两个MLP调整不同的网络大小(即,层数或单元数),DualMLP可以实现更好的性能。这一结果促使我们进一步探索如何扩大两个流的差异化,以改善作为基础模型的DualMLP。此外,现有的双流模型通常通过求和或连接的方式结合两个流,这可能浪费了对高级(即,流级)特征交叉进行建模的机会。如何更好地融合流输出成为另一个值得进一步探索的研究问题。

为了解决这些问题,在本文中,我们构建了一个增强的双流MLP模型,即FinalMLP,它在两个MLP模块网络上集成了特征门控和交叉聚合层。更具体地说,我们提出了一个流特定的特征门控层(stream-specific feature gating layer),允许获得基于门控的特征重要性权重进行软特征选择(soft feature selection)。也就是说,特征门控可以通过基于可学习参数、用户特征或item特征的条件来从不同视角计算,分别产生全局、user-specific或item-specific的特征重要性权重。通过灵活选择不同的门控条件特征,我们能够为每个流派生出流特定的特征,从而增强两个流的互补特征交叉学习的差异化特征输入。为了融合流输出与流级特征交叉,我们提出了一个基于二阶双线性融合(Lin, RoyChowdhury, 和 Maji 2015; Li et al. 2017)的交叉聚合层。为了降低计算复杂性,我们进一步将计算分解为k个子组,从而实现高效的多头双线性融合。特征门控和交叉聚合层都可以轻松地插入到现有的双流模型中。

我们的实验结果在四个开放基准数据集上显示,FinalMLP优于现有的双流模型,并达到了新的最先进性能。此外,我们通过离线评估和在线A/B测试在工业环境中验证了其有效性,其中FinalMLP也显示出比部署的基线显著的性能提升。我们设想,简单而有效的FinalMLP模型可以作为未来双流CTR模型发展的新强基线。本文的主要贡献总结如下:

  • 据我们所知,这是第一个实证研究双流MLP模型惊人有效性的工作,这可能与文献中的普遍观点相反。
  • 我们提出了FinalMLP,这是一个具有可插拔特征门控和交叉聚合层的增强型双流MLP模型。
  • 我们在基准数据集上进行了离线实验,并在生产系统中进行了在线A/B测试,以验证FinalMLP的有效性。

2.背景和相关工作

在这一部分,我们简要回顾了CTR预测的框架和代表性的双流模型。

2.1 双流CTR模型的框架

我们在图1(b)中展示了双流CTR模型的框架,它包括以下关键组件。

图片名称

图1 (a) 流特定特征选择的示意图。 (b) 双流CTR模型的通用框架。 (c) 多头双线性融合。

2.1.1 特征嵌入

嵌入是将高维和稀疏的原始特征映射到密集数值表示的常用方法。具体来说,假设原始输入特征是$x = {x_1, \cdots, x_M}$,有M个特征字段,其中:$x_i$是第i个字段的特征。一般来说,$x_i$可以是分类的、多值的或数值特征。每个都可以相应地转换为嵌入向量。感兴趣的读者可以参考(Zhu et al. 2021)以获取有关特征嵌入方法的更多细节。然后,这些特征嵌入将被连接并输入到下一层。

2.1.2 特征选择

特征选择是双流CTR模型框架中的一个可选层。在实践中,特征选择通常通过离线统计分析或通过差异比较的模型训练来执行(Pechuan, Ponce, 和 de Lourdes Mart ´ ´ınez-Villasenor ˜ 2016)。与硬特征选择不同,这项工作中,我们专注于通过特征门控机制进行软特征选择(Huang, Zhang, 和 Zhang 2019; Guan et al. 2021),其目的是获得特征重要性权重,以帮助放大重要特征,同时抑制噪声特征。在这项工作中,我们研究了流特定的特征门控,以实现差异化的流输入。

2.1.3 双流特征交叉

双流CTR模型的关键特点是:采用两个并行网络从不同视角学习特征交叉。基本上,每个流可以采用任何类型的特征交叉网络(例如,FM(Rendle 2010)、CrossNet(Wang et al. 2017)和MLP)。现有工作通常将两种不同的网络结构应用于两个流,以学习互补的特征交叉(例如,显式与隐式,位级与向量级)。在这项工作中,我们首次尝试使用两个MLP网络作为两个流。

2.1.4 流级融合

流级融合是必要的,以融合两个流的输出以获得最终预测的点击概率$\widehat{y}$。假设$o_1$和$o_2$作为两个输出表示,可以表示为:

\[\widehat{y} = σ(w^T F(o_1, o_2))\]

其中:

  • F:表示融合操作,通常设置为求和或连接(concatenation)。
  • w:表示在必要时将输出维度映射到1的线性函数。
  • σ:是sigmoid函数。

现有工作只对流输出进行一阶线性组合,因此无法挖掘流级特征交叉。在这项工作中,我们探索了二阶双线性函数用于流级交叉聚合。

2.1.5 代表性的双流CTR模型

我们总结了一些代表性的双流模型,这些模型涵盖了CTR预测研究的广泛领域:

  • Wide&Deep:Wide&Deep(Cheng et al. 2016)是一个经典的双流特征交叉学习框架,结合了广义线性模型(宽流)和MLP网络(深流)。
  • DeepFM:DeepFM(Guo et al. 2017)通过将wide流替换为FM来扩展Wide&Deep,以显式学习二阶特征交叉。
  • DCN:在DCN(Wang et al. 2017)中,提出了一个交叉网络作为一条流,以显式方式执行高阶特征交叉,而另一条MLP流隐式学习特征交叉。
  • xDeepFM:xDeepFM(Lian et al. 2018)采用压缩交互网络(CIN)以向量级方式捕获高阶特征交叉,并也采用MLP作为另一条流来学习位级特征交叉。
  • AutoInt+:AutoInt(Song et al. 2019)应用自注意力网络来学习高阶特征交叉。AutoInt+将AutoInt和MLP作为两个互补的流集成。
  • AFN+:AFN(Cheng, Shen, 和 Huang 2020)利用对数变换层来学习自适应阶数特征交叉。AFN+以双流方式将AFN与MLP结合。
  • DeepIM:在DeepIM(Yu et al. 2020)中,提出了一个交互机(IM)模块,以高效计算高阶特征交叉。它在两个流中分别使用IM和MLP。
  • MaskNet:在MaskNet(Wang, She, 和 Zhang 2021)中,提出了一个MaskBlock,通过结合层归一化、实例引导掩码和前馈层。并行的MaskNet是一个双流模型,它并行使用两个MaskBlocks。
  • DCN-V2:DCN-V2(Wang et al. 2021)通过更具表现力的交叉网络改进DCN,以更好地捕获显式特征交叉。它在并行版本中仍然使用MLP作为另一条流。
  • EDCN:EDCN(Chen et al. 2021)不是一个严格的双流模型,因为它提出了一个桥接模块和一个调节模块来桥接两个流的隐藏层之间的信息融合。然而,其操作限制了每个流具有相同大小的隐藏层和单元,降低了灵活性。

3.我们的模型

在这一部分,我们首先介绍简单的双流MLP基础模型,DualMLP。然后,我们描述两个可插拔模块,特征门控和交叉聚合层,这些模块构成了我们增强的模型,FinalMLP。

3.1 双流MLP模型

尽管简单,据我们所知,双流MLP模型以前没有被先前的工作报道过。因此,我们首次尝试研究这样一个模型用于CTR预测,称为DualMLP,它简单地将两个独立的MLP网络作为两个流组合起来。 具体来说,双流MLP模型可以表述如下:

\[o_1 = MLP_1(h_1), \\ o_2 = MLP_2(h_2),\]

其中:

  • $MLP_1$和$MLP_2$:是两个MLP网络。两个MLP的大小(关于隐藏层和单元)可以根据数据进行不同的设置。
  • $h_1$和$h_2$:表示特征输入
  • $o_1$和$o_2$:分别是两个流的输出表示

在大多数先前的工作(Wang et al. 2017; Guo et al. 2017; Cheng, Shen, 和 Huang 2020)中,特征输入$h_1$和$h_2$通常设置为相同的,即特征嵌入e的连接(可选地与一些池化操作一起),即,

\[h_1 = h_2 = e\]

同时,流输出通常通过简单的操作(如求和和连接)进行融合,忽略了流级交互。下面,我们将介绍两个可以分别插入到输入和输出中的模块,以增强双流MLP模型。

3.2 Stream-Specific特征选择

许多现有的研究(Guo et al. 2017; Lian et al. 2018; Wang et al. 2017; Song et al. 2019)强调了结合两种不同特征交叉网络(例如,隐式与显式,低阶与高阶,位级与向量级)的有效性,以实现准确的CTR预测。我们的目标不是设计专门的网络结构,而是通过流特定的特征选择来扩大两个流之间的差异,从而产生差异化的特征输入

受MMOE(Ma et al. 2018)中使用的门控机制的启发,我们提出了一个流特定的特征门控模块来软选择流特定的特征,即,为每个流不同地重新加权特征输入。在MMOE中,门控权重是根据特定任务的特征来重新加权专家输出的。同样,我们通过基于可学习参数、用户特征或item特征的条件来从不同视角进行特征门控,分别产生全局、user-specific或item-specific的特征重要性权重。

具体来说,我们通过上下文感知的特征门控层进行流特定的特征选择,如下所示。

\[g_1 = Gate_1(x_1), \quad g_2 = Gate_2(x_2), \\ h_1 = 2\sigma(g_1) \odot e, \quad h_2 = 2 \sigma(g_2) \odot e,\]

…(3)(4)

其中:

  • $Gate_i$:表示基于MLP的gating network
  • $x_i$:stream-specific的条件特征输入
  • $g_i$:逐元素门控权重输出
  • $\odot$: 逐元素乘(element-wise produc)

注意,从user/item特征集或将其设置为可学习参数中选择$x_i$是灵活的。通过使用sigmoid函数σ和一个乘数2将它们转换为[0, 2]范围内的值,平均值为1,我们可以获得特征重要性权重。给定连接的特征嵌入e,我们可以通过逐元素乘积⊙获得加权特征输出$h_1$和$h_2$。

我们的特征门控模块允许通过从不同视角设置条件特征$x_i$来为两个流制作差异化的特征输入。例如,图1(a)展示了一个关于user-和item-specific特征门控的案例,它分别从用户和item的视角调节每个流。这减少了两个相似MLP流之间的“同质”学习,并能够实现更互补的特征交叉学习。

3.3 Stream-Level交叉聚合

3.3.1 双线性融合(Bilinear Fusion)

如前所述,现有工作大多采用求和或concatenation作为fusion layer,但这些操作未能捕捉流级特征交叉。受计算机视觉领域广泛研究的bilinear pooling启发(Lin, RoyChowdhury, 和 Maji 2015; Li et al. 2017),我们提出了一个双线性交叉聚合层(bilinear interaction aggregation layer)来使用流级特征交叉来对流输出进行融合。如图1(c)所示,预测的点击概率公式如下。

\[\widehat{y} = \sigma(b + w_1^T o_1 + w_2^T o_2 + o_1^T W_3 o_2),\]

…(5)

其中:

  • $ b \in \mathbb{R}, w_1 \in \mathbb{R}^{d_1 \times 1}, w_2 \in \mathbb{R}^{d_2 \times 1}, W_3 \in \mathbb{R}^{d_1 \times d_2} $:是可学习的权重。
  • $d_1$和$d_2$: 分别表示 $ o_1 $ 和 $ o_2 $ 的维度。
  • $o_1^T W_3 o_2 $:是双线性项(bilinear item), 模拟了$o_1$和$o_2$之间的二阶交互。特别是,当$W_3$是一个单位矩阵时,该项模拟了点积。当将 $ W_3 $ 设置为零矩阵时,它退化为传统的连接融合与线性层,即 $ b + [w_1, w_2]^T [o_1, o_2]$

有趣的是,双线性融合与常用的FM模型也有联系。具体来说,FM通过以下方式为CTR预测对一个m维输入特征向量x(通过一位/多位特征编码和连接)进行二阶特征交叉建模:

\[\hat{y} = \sigma(b + w^Tx + x^T_{\text{upper}} P P^T)x\]

…(6)

其中:

  • $ b \in \mathbb{R}, w \in \mathbb{R}^{m \times 1}, P \in \mathbb{R}^{m \times d} $ 是可学习的权重,其中 $ d \ll m $,upper选择矩阵的严格上三角部分(Rendle 2010)。

正如我们所看到的,当$o_1=o_2$时,FM是双线性融合的一种特殊形式。

然而,当$o_1$和$o_2$是高维时,计算方程(5)的参数密集且计算成本高。例如,要融合两个1000维的输出,$ W_3 \in \mathbb{R}^{1000 \times 1000} $ 占用了100万个参数,其计算变得昂贵。为了降低计算复杂性,我们在下文中引入了我们的扩展多头双线性融合。

3.3.2 多头双线性融合(multi-head bilinear fusion)

多头注意力(multi-head attention)因其能够将来自不同的表征子空间的相同注意力池化(attention pooling)的知识进行组合,非常受欢迎。它在最近大获成功的transformer模型中带来了计算量的减少和一致的性能提升(Vaswani et al. 2017)。受其成功的启发,我们将双线性融合扩展到multi-head版本。具体来说,我们不是直接计算方程(5)中的bilinear项,而是将 $ o_1 $ 和 $ o_2 $ 分别分割成k个子空间:

\[o_1 = [o_{11}, \cdots, o_{1k}], \\ o_2 = [o_{21}, ..., o_{2k}],\]

其中:

  • k 是一个超参数
  • $ o_{ij} $ 表示第i个输出向量的第j个子空间表示(i ∈ {1, 2})。

类似于多头注意力,我们在每个子空间中执行双线性融合(bilinear fusion),将 $ o_{1j} $ 和 $ o_{2j} $ 配对为一组。然后,我们通过求和池化聚合子空间计算,得到最终预测的点击概率:

\[\hat{y} = \sigma(\sum_{j=1}^{k} BF(o_{1j}, o_{2j})),\]

其中:

  • BF 表示方程(5)中不带 sigmoid 激活的双线性融合。

通过与多头注意力相同的子空间计算,我们理论上可以通过 k 的因子减少双线性融合的参数数量和计算复杂性,即从 $ O(d_1d_2) $ 减少到 $ O(\frac{d_1d_2}{k}) $。特别是,当设置 $ k = d_1 = d_2 $ 时,它退化为逐元素乘积融合。如果 $k = 1$,则等于原始的双线性融合。 选择合适的k实现多头学习,以便模型可能获得更好的性能。在实践中,k 个子空间的多头融合在 GPU 中并行计算,这进一步提高了效率。

最后,我们的流特定特征门控和流级交互聚合模块可以插入,以产生增强的双流 MLP 模型,FinalMLP。

3.3.3 模型训练

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

\[L = -\frac{1}{N} \sum_{y} y \log(\hat{y}) + (1 - y) \log(1 - \hat{y})\]

其中:

  • y 和 $ \hat{y} $ 分别表示来自总共 N 个样本中的每个样本的真实标签和估计的点击概率。

4.实验

4.1 实验设置

数据集

我们使用四个开放基准数据集进行实验,包括 Criteo、Avazu、MovieLens 和 Frappe。我们重用(Cheng, Shen, 和 Huang 2020)预处理的数据,并遵循相同的数据分割和预处理设置。表1总结了数据集的统计信息。

评估指标

我们采用AUC作为CTR预测中最广泛使用的评估指标之一。此外,AUC提高0.1个百分点被认为是CTR预测中的显著改进(Cheng et al. 2016; Cheng, Shen, 和 Huang 2020; Wang et al. 2021)。

基线

首先,我们研究以下单一流显式特征交叉网络。

  • 一阶:逻辑回归(LR)(Richardson, Dominowska, 和 Ragno 2007)。
  • 二阶:FM(Rendle 2010)、AFM(Xiao et al. 2017)、FFM(Juan et al. 2016)、FwFM(Pan et al. 2018)和FmFM(Sun et al. 2021)。
  • 三阶:HOFM (3rd)(Blondel et al. 2016)、CrossNet (2L)(Wang et al. 2017)、CrossNetV2 (2L)(Wang et al. 2021)和CIN (2L)(Lian et al. 2018)。我们特别将最大阶数设置为“3rd”或将交互层数设置为“2L”,以获得三阶特征交叉。
  • 更高阶:CrossNet(Wang et al. 2017)、CrossNetV2(Wang et al. 2021)、CIN(Lian et al. 2018)、AutoInt(Song et al. 2019)、FiGNN(Li et al. 2019)、AFN(Cheng, Shen, 和 Huang 2020)和SAM(Cheng 和 Xue 2021),这些模型自动学习高阶特征交叉。

然后,我们研究相关工作部分介绍的一系列代表性双流CTR模型。

4.2 实现

我们重用基线模型,并基于FuxiCTR(Zhu et al. 2021),一个开源的CTR预测库,实现我们的模型。我们的评估遵循与AFN(Cheng, Shen, 和 Huang 2020)相同的实验设置,将嵌入维度设置为10,批量大小设置为4096,默认MLP大小设置为[400, 400, 400]。对于DualMLP和FinalMLP,我们将两个MLP调整为1到3层,以增强流多样性。我们将学习率设置为1e-3或5e-4。我们通过广泛的网格搜索(平均每模型约30次运行)调整所有研究模型的所有其他超参数(例如,嵌入正则化和dropout率)。我们注意到,通过优化的FuxiCTR实现和充分的超参数调整,我们获得了比(Cheng, Shen, 和 Huang 2020)报告的更好的模型性能。因此,我们报告自己的实验结果,而不是重用他们的数据,以便进行公平比较。为了促进可重复的研究,我们开源了FinalMLP和所有使用的基线代码和运行日志。

MLP与显式特征交叉

尽管特征交叉网络已被广泛研究,但MLP与精心设计的特征交叉网络之间缺乏比较。以前的工作提出了许多显式特征交叉网络,例如交叉网络(Wang et al. 2017)、CIN(Lian et al. 2018)、AutoInt(Song et al. 2019)和AFN(Cheng, Shen, 和 Huang 2020),以克服MLP在学习高阶特征交叉方面的局限性。然而,这些研究中的大多数未能直接将显式特征交叉网络与单独的MLP(即DNN或YouTubeDNN(Covington, Adams, 和 Sargin 2016))进行比较,而只是评估了双流模型变体(例如DCN、xDeepFM和AutoInt+)与MLP的有效性。在这项工作中,我们在表3中进行了这样的比较。我们列举了用于一阶、二阶、三阶和更高阶特征交叉的代表性方法。令人惊讶的是,我们观察到MLP可以与精心设计的特征交叉网络并驾齐驱甚至表现更好。例如,MLP在Criteo、MovieLens和Frappe上实现了最佳性能,而在Avazu上获得了次佳性能,与SAM相比AUC差距仅为0.02个百分点。这一观察结果也与(Wang et al. 2021)中报告的结果一致,其中显示经过良好调整的MLP模型(即DNN)能够获得与许多现有模型相当的表现。

总的来说,MLP所取得的强劲性能表明,尽管其结构简单,在学习乘性特征方面的弱点,MLP在隐式学习特征交叉方面非常具有表现力。这也部分解释了为什么现有研究倾向于将显式特征交叉网络与MLP结合作为双流模型用于CTR预测。不幸的是,其实力从未在任何现有工作中明确揭示过。受到上述观察的启发,我们进一步研究了一个未被探索的模型结构的潜力,该结构简单地采用两个MLP作为双流MLP模型。

DualMLP和FinalMLP与双流基线的比较

按照现有研究,我们对表2中所示的代表性双流模型进行了彻底比较。从结果中,我们有以下观察: 首先,我们可以看到双流模型通常优于表3中报告的单一流基线,特别是单个MLP模型。这符合现有工作,揭示了双流模型可以学习互补特征,从而实现更好的CTR预测建模。 其次,简单的双流模型DualMLP表现出乎意料地好。通过对两个流的MLP层进行精心调整,DualMLP可以实现与其他复杂双流基线相当甚至更好的性能。据我们所知,DualMLP的强劲性能在文献中从未被报道过。在我们的实验中,我们发现通过在两个流中设置不同的MLP大小来增加流网络多样性可以提高DualMLP的性能。

这激发了我们进一步开发一个增强的双流MLP模型FinalMLP。

第三,通过我们在特征门控和融合方面的可插拔扩展,FinalMLP在四个开放数据集上一致地优于DualMLP以及所有其他比较的双流基线。特别是,FinalMLP在Avazu、MovieLens和Frappe上的AUC分别显著超过了现有的最强双流模型0.12个百分点(DCNv2)、0.23个百分点(xDeepFM)和0.11个百分点(AutoInt+)。这证明了我们的FinalMLP的有效性。截至撰写本文时,FinalMLP在PapersWithCode4和BARS5(Zhu et al. 2022)的CTR预测排行榜上均名列第一。

消融研究

在这一部分,消融研究显示了对FinalMLP重要设计的调查。

特征选择和双线性融合的效果

具体来说,我们将FinalMLP与以下变体进行比较:

  • DualMLP:简单的双流MLP模型,简单地将两个MLP作为两个流。
  • w/o FS:没有通过上下文感知特征门控进行流特定特征选择模块的FinalMLP。
  • Sum:在FinalMLP中使用求和融合。
  • Concat:在FinalMLP中使用连接融合。
  • EWP:在FinalMLP中使用逐元素乘积(即哈达玛积)融合。

消融研究结果在图2中呈现。我们可以观察到,当移除特征选择模块或将双线性融合替换为其他常用的融合操作时,性能会下降。这验证了我们的特征选择和双线性融合模块的有效性。此外,我们注意到双线性融合比特征选择扮演了更重要的角色,因为替换前者会导致更多的性能下降。

图片名称

图2

多头双线性融合的效果:我们研究了我们的子空间分组技术对双线性融合的影响。表4显示了通过变化双线性融合的子空间数量(即头数k)来改变FinalMLP的性能。OOM表示在设置中发生了内存溢出错误。我们发现,使用更多的参数(即更小的k)进行融合并不总是导致更好的性能。这是因为适当的k可以帮助模型从多个视角学习流级别的特征交互,同时减少冗余交互,类似于多头注意力。通过在实践中调整k,可以在有效性和效率之间取得良好的平衡。

工业评估:我们进一步在为新闻推荐服务的生产系统中评估FinalMLP,该系统每天为数百万用户提供服务。我们首先使用3天用户点击日志的训练数据(包含12亿个样本)进行离线评估。表5显示了AUC结果。与在线部署的深度BaseModel相比,FinalMLP在AUC上提高了超过一个百分点。我们还与EDCN(Chen等人,2021年)进行了比较,EDCN是最近的一项工作,它通过两流网络之间的交互增强了DCN(Wang等人,2017年)。FinalMLP在AUC上比EDCN额外提高了0.44个百分点。此外,我们测试了从接收用户请求到返回预测结果的端到端推理延迟。我们可以看到,通过应用我们的多头双线性融合,延迟可以从使用1个头的70毫秒减少到使用8个头的47毫秒,实现了与在线部署的BaseModel(45毫秒)相同的延迟水平。此外,通过选择适当数量的头,AUC结果也略有提高。

我们最后报告了在7月18日至22日进行的在线A/B测试的结果,结果如表6所示。FinalMLP平均在CTR上实现了1.6%的改进,CTR衡量的是用户点击次数与新闻总展示次数的比率。在我们的生产系统中,这样的改进是显著的。

#

https://arxiv.org/pdf/2304.00902

meta在《Epinet for Content Cold Start》提出了一种内容冷启方法:Epinet。

摘要

在线内容及其用户基础的爆炸性增长,为现代推荐系统提出了日益严峻的匹配问题。与其他机器学习领域(如自然语言)不同,推荐系统负责收集自己的数据。仅仅利用当前知识可能导致有害的反馈循环,而盲目的探索可能会削弱用户体验,导致参与度降低。这种探索与利用之间的权衡在经典的多臂老虎机问题中得到了体现,其中算法如上置信界限(UCB)和汤普森采样(TS)展示了有效的性能。然而,在不表现出共轭先验结构的设置中,将这些方法扩展到大规模应用面临着许多挑战。最近通过epinets([22])进行不确定性量化的可扩展方法,使得即使学习模型是一个复杂的神经网络,也能有效地近似汤普森采样。在本文中,我们展示了epinets在在线推荐系统中的应用。我们的实验在Facebook Reels在线视频平台上展示了用户流量和参与效率的改进。

1 引言

随着在线内容的指数级增长,用户与内容匹配问题变得越来越具有挑战性。这描述了现代推荐系统的任务,幸运的是,这远非大海捞针的问题:用户过去的参与度往往预示着未来对某内容的参与度。此外,新内容通常仍然与过去的内容有相似之处。因此,智能算法设计应该使系统能够可靠地推荐每个用户个人发现吸引人的内容。

尽管自然语言等其他机器学习领域已经吸引了学者和行业实践者的注意,但推荐系统问题仍然是算法进步的一个强大前沿。与自然语言不同,推荐系统问题完全属于bandit学习或(更一般地)强化学习框架。bandit和强化学习问题与监督学习的不同之处在于,算法需要收集自己的数据。对于推荐系统来说,这意味着算法必须决定向每个用户推荐哪些内容,并且只会观察到它提出的用户/内容对的标签。虽然描述起来简单,但bandit问题展示了一个称为“探索与利用权衡”的深刻挑战。在任何时候,一个有效的算法都必须平衡通过利用已经收集的信息积累短期奖励的重要性,与探索未知以获取新信息的重要性。

尽管已知有算法可以最优地解决多臂bandit问题[9],但在所有最简单的问题实例之外,这些解决方案在计算上是不切实际的。因此,过去十年见证了对有效算法的兴趣激增,这些算法在探索和利用之间展现出有效的权衡。即使是最简单的多臂bandit问题设置的理论分析也表明,如𝜖-greedy和Boltzmann探索这样的简单探索方法会导致𝑂(𝑇)的遗憾(regret),其中:𝑇是环境交互的次数。由于遗憾(regret)衡量的是算法行动的奖励与最优奖励之间的差异,线性遗憾(regret)意味着即使在无限环境交互的情况下,代理也无法识别出最优臂。与此同时,如汤普森采样(TS)和上置信界限(UCB)这样的方法可以实现$𝑂(\sqrt{𝑇})$的遗憾(regret),这意味着:这些算法通过重复的环境交互可靠地识别出最佳的bandit臂。关键的洞察是,有效地利用其认知不确定性(TS的后验分布和UCB的置信区间)的算法能够提供富有成果的策略来对抗探索-利用权衡。虽然多臂bandit问题是与现代推荐系统的现实有所偏离的理想化设置,但它阐明了有效地表示和利用不确定性(uncertainty)的算法所提供的独特好处。

将UCB和TS适应于现代推荐系统的挑战在于,对于涉及神经网络的复杂模型,不确定性的表示变得难以处理。虽然在存在良好的共轭先验的情况下,后验分布展示了高效的更新,但这肯定不适用于涉及神经网络的可能性。然而,已经有几条研究线试图建立近似的后验采样方法。早期的工作之一是随机梯度Langevin动力学[29],它在随机梯度更新中添加噪声。在到达局部最小值时,噪声产生围绕后验模式的样本。然而,该算法对于在线方法在计算上是繁重的,因为它需要在每个timestep优化到收敛以产生后验样本。还有各种贝叶斯神经网络文献[5, 15]通过更新参数的后验分布来表示不确定性。然而,这些方法再次在计算上繁重,并且导致不充分的后验近似(在网络权重上的因子化分布在模型不确定性的表征上是不足的)。其他工作提出了MC Dropout作为后验采样近似,但[12, 20]已经证明后验近似的质量可能非常差。深度集成一直是通过从集成的粒子中采样来近似后验采样的可靠方法,但它们受到计算需求随着集成大小线性增长的事实的影响[16, 18]。最近,[22]提出了epinet,这是一种在计算上可行的方法,它以一小部分计算需求实现了集成级别的性能。[37]将epinet应用于离线推荐系统问题,但这种方法是否能在在线生产环境中产生有意义的改进仍然是一个开放的问题。

在本文中,我们提供了epinet在生产推荐系统中的首次在线实验部署。具体来说,我们使用一个由epinet提供的后验样本的汤普森采样算法,在Facebook的Reels推荐的内容冷启动检索阶段产生推荐。内容冷启动涉及对尚未有很多印象的新内容进行推荐。因此,它是一个需要有效导航探索/利用权衡的设置。我们的实验表明,在冷启动内容库中,总体流量和参与效率指标(如点赞率和视频观看完成率)有所提高。

2 相关工作

在推荐系统领域,特别是在内容冷启动方面,研究人员利用多臂bandit公式设计了能够有效权衡内容库的新探索和已经收集的信息利用的算法[4, 8, 19]。然而,随着内容库和用户基础的增长,无状态和独立臂的假设变得越来越不合理。因此,许多工作已经使用在臂之间具有泛化能力的概率模型,并反映不同用户的不同偏好的上下文化[10, 27, 28, 32]。然而,即使在这些问题表述中,设计能够有效解决这些问题的算法一直是一个活跃的研究领域。

如前所述,展示非平凡探索的最流行的算法是UCB[2, 3]和TS[26]。然而,这些算法是为涉及独立臂且没有状态概念的标准多臂bandit问题开发的。因此,将这些算法解决方案转化为涉及上下文化和泛化的问题设置一直是一个紧迫的挑战。特别是,随着深度神经网络提供的机器学习能力的急剧增加,许多方法已经尝试将UCB和TS的思想适应于与神经网络的计算[1, 6, 17, 21, 31, 34, 35]。然而,上述方法的主要缺点是,当计算成本被考虑在内时,它们是不切实际的。值得注意的是,随着推荐系统利用巨大的变换模型来通知预测[13, 25, 30, 33]的兴起,每个在模型或数据集大小之外的计算资源的消耗都是昂贵的[11, 14]。为了缓解这些关于计算资源的担忧,Osband等人[22]提出了epinet,这是一种在计算上可行的方法,它以一小部分计算需求实现了集成级别的性能。[37]将epinet应用于离线推荐系统问题,但我们的工作标志着这项技术在在线生产推荐系统设置中的首次应用。

3 问题表述

我们将推荐系统问题形式化为一个非稳态(non-stationary)contextual bandit问题。具体来说,非稳态contextual bandit问题可以通过一个元组 $ (O, A, V_t_{t \in N}, (\phi_t)_{t \in N}, \rho) $ 来识别,其中:

  • $O$ 表示观察集合,
  • $A$ 表示动作集合,
  • $(V_t)_{t \in N}$ 表示决定非稳态的随机过程,
  • $(\phi_t)_{t \in N}$ 表示决定上下文的随机过程,
  • $\rho$ 表示与观察 $o \in O$ 相关联的概率

在推荐系统问题中,

  • 上下文 $\phi_t$ 代表特定用户的原始特征
  • $V_t$ 代表可供推荐给该用户的可用内容的原始特征

我们下面详细介绍每个组成部分。

  • (1) 动作空间:我们取 $A$ 为固定集合 $\lbrace 1, 2, \ldots, N \rbrace$,其中 $N$ 表示可供选择的item数量。在推荐的检索阶段,算法每个timestep可以提出 M 个item。因此,对于所有 t,我们让随机变量 $A_t: \Omega \rightarrow A^M$ 表示我们的算法在时间 t 采取的动作。

  • (2) 非稳态item池:我们取 $( V_t ){t \in N}$ 作为代表变化item池的随机过程。对于所有t,$ V_t = (\phi{t,1}, \phi_{t,2}, \cdots, \phi_{t,N}) \in V $, 其中: $\phi_{t,i}$ 表示与时间 t 的item i 相关联的原始特征,V 表示 $V_t$ 的范围。由于我们专注于内容冷启动,item池不断通过添加新创建的内容和移除成熟内容来刷新

  • (3) 上下文:我们取 $(\theta_t)_{t \in N}$ 作为代表每个timestep用户上下文的随机过程。对于所有 $t$,$\theta_t \in \Psi$ 由与我们提供推荐的用户提供的原始特征组成。

  • (4) 观察空间:我们取 $O$ 作为关于用户和推荐item的观察集合。推荐系统通常利用多种信号,包括二进制信号(例如用户是否喜欢或分享item)和实值信号(例如视频完成的比例)。然而,为了制定下一个timestep的行动,算法必须能够访问后续的item池 $V_{t+1}$ 和上下文 $\theta_{t+1}$。因此,对于所有 $t$,我们让随机变量 $O_{t+1}: \Omega \rightarrow O^M \times V \times \Psi$ 表示与动作 $A_t$、后续item池 $V_{t+1}$ 和后续上下文 $\theta_{t+1}$ 相关的观察。$M$ 再次表示在动作 $A_t$ 中提出的item数量。

  • (5) 观察概率:我们让 $\rho(\cdot \mid O_t, A_t) = P(O_{t+1} \in \cdot \mid O_t, A_t)$ 表示在前一个观察和动作条件下的后续观察的概率。回想一下 $O_t$ 也包含item池 $V_t$ 和用户上下文 $\theta_t$。

通过 $\rho$ 捕获具有相似特征的用户和item之间的泛化。

我们假设算法设计者有一个具体的目标。这个目标由一个(已知的)奖励函数 $R: O \rightarrow \mathbb{R}^+$ 表示,它将观察映射到一个标量目标值。在实践中,这是各种标签(如喜欢、分享等)的适当加权。我们让随机变量 $R_{t+1}$ 表示在 $O_{t+1}$ 中观察到的所有 $M$ 个标签的奖励总和。目标是最大化平均长期奖励:

\[\frac{1}{T} \sum_{t=0}^{T-1} \mathbb{E}[R_{t+1}]\]

4 内容冷启动的探索

冷启动内容由展示给少于10000名用户的短视频组成。请注意,即使视频展示给用户,这并不一定意味着用户有意义地与之互动。实际上,情况往往相反,例如,只有1%的推荐内容会得到用户的点赞。在这种稀疏的反馈信号下,高效学习的能力变得至关重要。探索效率低下的算法不仅会向用户提供较差的推荐,还会消耗宝贵的带宽,这些带宽本可以分配给更好地了解用户的偏好。

多臂bandit问题,尽管其简单性,评估了一个智能代理的核心能力:平衡即时奖励与获取新信息的能力(探索/利用权衡)。为了有效地指导内容库的探索,算法必须知道它不知道什么。在贝叶斯框架中,不确定性是使用概率工具建模的,并通过后验分布来表示。随着算法观察到更多的数据,这个分布将集中,反映出更大的确定性。这种可以通过观察更多数据来减少的不确定性通常被称为认知不确定性(epistemic uncertainty)。常见的算法,如汤普森采样和上置信界限,分别通过后验分布和置信区间来表示认知不确定性。

然而,许多生产推荐系统只保留点估计(point estimate)。点估计对应于一个分布,其中所有概率质量都放在一个单例上。这不会有效地建模认知不确定性,因为算法在所有时间上都是同样(并且绝对)确定的。这对于冷启动内容尤其成问题,因为它包含的item几乎没有或根本没有曝光数据。点估计模型对这类内容的评分基本上是无信息的。如果它低估了内容的值,它将永远不会被推荐给用户。这可能进一步加剧流行度偏见,即推荐系统倾向于简单地基于现有数据进行利用,而放弃探索。因此,推荐系统的探索可以归结为表示涉及深度神经网络的复杂现代系统中的认知不确定性。

4.1 汤普森采样

在本文中,我们专注于用近似后验分布来表示认知不确定性。因此,我们将算法重点限制在汤普森采样上,它从这个后验分布中采样以选择动作。在本节中,我们提供了汤普森采样的抽象概述,以框架我们最终的算法。

对于所有的 $t$,汤普森采样以近似后验分布 $P_t(\rho \in \cdot)$ 和之前的观察 $O_t$ 作为输入,并产生动作 $A_t$。回想一下,$\rho$ 是决定我们上下文bandit环境中观察的概率度量。以下伪代码抽象地描述了汤普森采样:

图片名称

算法1

因此,近似汤普森采样方法在以下两个方面有所不同:

1) 如何指定近似先验分布 $P_0(\cdot)$; 2) 如何近似贝叶斯更新。虽然简化假设,如独立的Beta先验/后验分布,可能允许精确的贝叶斯更新,但它们在无法考虑用户上下文 $\theta_t$ 和item特征 $V_t$ 中存在的信息方面受到极大的限制。

5 使用Epinet的近似汤普森采样

在本节中,我们介绍了我们的方法,该方法利用Epinet[22]在近似汤普森采样算法中模拟认知不确定性。我们首先介绍认知神经网络的背景,这是一类包含Epinet的近似后验方法。

5.1 认知神经网络

[23]定义了一类称为认知神经网络(ENNs)的神经网络。认知神经网络由参数化函数类$ f $和参考分布$ P_Z $指定。输出$ f_\theta(X, z) $依赖于输入$ X $和从参考分布$ P_Z $中抽取的认知索引$ z $。要为输入$ X $产生边际预测,认知神经网络对其认知索引进行积分:

\[\hat{P}(Y) = \int_z f_\theta(X, z) dP_Z(z).\]

许多现有的神经网络不确定性建模方法,包括BNNs、MC Dropout和Deep Ensembles,可以在适当的参考分布$ P_Z $下表示为ENNs。我们在下面实例化一些。

示例1.(点估计) 考虑一个参数化的神经网络$ g_\theta(·): \mathbb{R}^d \rightarrow \mathbb{R} $。让$ P_Z(·) $是任何分布。那么$ f_\theta(X, z) = g_\theta(X) $等同于只保留点估计的网络。

在我们的实验中,我们比较算法的基线是点估计。这是因为它是机器学习和推荐系统中的标准方法:提供根据学习模型最优的预测/推荐。虽然这在监督学习设置中是合理的,算法不控制它观察到的数据,但在bandit/强化学习问题中,这种利用行为可能导致反馈循环,如推荐系统中的流行度偏见。

示例2.(MC Dropout) 考虑一个参数化的神经网络$ g_\theta(·): \mathbb{R}^d \rightarrow \mathbb{R} $,对输入层应用dropout。让$ P_Z(·) = \text{Uniform} \lbrace 0, 1 \rbrace^d $。那么,$ f_\theta(X, z) = g_\theta(X \odot z) $等同于dropout。

我们没有直接将性能与MC dropout进行比较,因为理论上和实证上都表明它提供了认知不确定性的较差表示[20, 22]。看到这一点,只需注意到即使观察到的样本数量增加到∞,MC dropout的方差也不会趋近于0。Osband [20]指出,这是因为dropout近似的是不可减少的风险,而不是认知不确定性。这个区别很关键,因为使用前者指导探索是不一致的,而使用后者可以导致有效的探索。

示例3.(Deep Ensembles) 考虑一个由参数化模型$ g_{\theta_1}(·), g_{\theta_2}(·), \ldots, g_{\theta_N}(·): \mathbb{R}^d \rightarrow \mathbb{R} $组成的深度集成,大小为$ N $。让$ P_Z(·) = \text{Uniform}(\lbrace 1, \ldots, N \rbrace) $。那么,$ f_\theta(X, z) = g_{\theta_z}(X) $等同于深度集成。

深度集成已被证明在bandit和强化学习环境中提供了认知不确定性的有用表示[18, 24]。它们甚至在离线推荐系统环境中展示了良好的性能[36]。然而,它们的主要缺点是巨大的计算开销。计算资源与集成的大小成线性扩展。集成通常需要大约100个粒子才能有效工作,这个数字在每个基础模型都在Facebook推荐系统的规模上运行时,计算上是不可行的。因此,我们省略了与集成的实验,转而使用Epinet,这是一种承诺在没有集成级计算资源的情况下提供集成级性能的方法[22]。

5.2 Epinet

最近的工作表明,Epinet[22]能够在只有一小部分计算开销的情况下,实现与数百个粒子的深度集成相当的性能。我们在本节详细介绍Epinet的设计和实现。

为了将Epinet集成到Meta现有的冷启动检索模型中,我们对[22]和[37]的原始大纲进行了一些轻微的修改。系统由两个神经网络组成:一个用户塔$ g^u_{\gamma_u} $,参数为$ \gamma_u $,和一个item塔$ g^i_{\gamma_i} $,参数为$ \gamma_i $。系统在几个监督信号上进行训练,如点赞、分享等。让$ K $表示这样的信号数量。

item塔接受item的原始特征$ \phi_{t,a} $并输出嵌入向量$ g^i_{\gamma_i}(\phi_{t,a}) \in \mathbb{R}^d $。与此同时,用户塔接受用户上下文的原始特征$ \theta_t $并输出嵌入矩阵$ g^u_{\gamma_u}(\theta_t) \in \mathbb{R}^{d \times K} $。

这些用户和item嵌入被输入到一个包含Epinet的上层模型中。上层模型由一个基础mlp和Epinet组成。基础mlp$ g_\theta $由可训练参数$ \theta $组成,但不依赖于采样的认知索引$ z $。与此同时,Epinet$ \sigma_\beta $由可训练参数组成,并接受输入采样的认知索引$ z $。基础mlp和Epinet都接受作为输入的连接的用户和item嵌入,以及由item嵌入与$ K $个用户嵌入的连接元素乘积组成的交互项。因此,对于所有的$ t $,输入因此是一个向量$ x_t \in \mathbb{R}^{d(2K+1)} $。上层模型的输出如下:

\[f_{\theta,\beta}(x_t, z_t) = g_\theta(sg[x_t]) + \sigma_\beta(sg[x_t], z_t),\]

其中$ sg[\cdot] $表示停止梯度。停止梯度已被观察到可以改善训练稳定性[22]。

Epinet的加法形式受到两个因素的激励:1) 功能性不确定性估计和2) 高效的不确定性估计。功能性不确定性估计强调神经网络不确定性不是在模型参数上,而是在参数诱导的函数上。这是一个重要的区分,因为许多不同的参数排列导致相同的函数(例如神经元的适当排列)。如果Epinet小于基础模型,并且评估几个认知索引$ z_1, \ldots, z_n $的计算可以批量处理,那么高效的不确定性估计是可能的。对于MC dropout、深度集成和BNNs等方法,模型的禁止大小和/或无法执行批量计算使得不确定性计算变得繁重。我们现在提供Epinet的更多架构细节。

5.3 先验网络

在文献中,通常将Epinet进一步划分为可学习组件和称为先验网络的固定组件[22, 37]。Dwaracherla等人[7]已经证明,对于深度集成,先验函数在低数据环境中显著优于普通的深度集成[16]。具体来说,如果$ x_t $表示Epinet输入,$ z_t $表示认知索引,那么Epinet的形式如下:

\[\sigma_\beta(x_t, z_t) = \sigma_L^\beta(x_t, z_t) + \sigma_P(x_t, z_t)\]

我们假设Epinet产生标量输出,并且$ z_t $ i.i.d. $ \sim N(0, I_d) $。虽然嵌入在几个标签(如点赞、分享等)上进行训练,但在我们的实验中,我们将Epinet的训练限制为只有一个标签。我们注意到先验网络是不可训练的。

在深度集成和Epinet中,这些先验函数似乎是确保所代表分布中足够初始多样性($ z $的变异性)的关键算法补充。Epinet的架构选择相当奇特,但它从线性bandit中汲取灵感。[23]提供的扩展到神经网络是特别的,但他们仍然展示了良好的性能。推导出更适当的softmax/sigmoidal输出形式是未来工作的潜在方向。

可学习网络是一个标准的多层感知器(MLP),具有Glorot初始化:

\[\sigma_L^\beta(x_t, z_t) = \text{mlp}_\beta([x_t, z_t])^T z_t\]

其中mlp_\beta返回一个在$ \mathbb{R}^{d_z} $中的输出,$ [x_t, z_t] $是$ x_t $和$ z_t $的连接。与此同时,先验网络的典型选择包括从与$ \sigma_L $相同的架构中采样的$ \sigma_P $,但具有不同的参数初始化。

5.4 模型训练

让$ a \in A $表示由动作$ A_t $选择的item,让$ y_{t+1} $是向用户$ \theta_t $展示item$ a $的结果相关的标签。我们假设$ y_{t+1} \in [0, 1]^K $,并且我们让$ \tilde{y}_{t+1} \in [0, 1] $表示我们提供给Epinet的单个任务标签。然后我们从$ N(0, I_d) $中采样一个单一的认知索引$ z_t $。

损失函数$ L $定义为:

\[L(\gamma_u, \gamma_i, \theta, \beta, \phi_{t,a}, \theta_t, z_t) = \sum_{k=1}^K \text{BCE}(y_{t+1,k}, g^i_{\gamma_i}(\phi_{t,a}) \cdot g^u_{\gamma_u}(\theta_t)_k) + \text{BCE}(\tilde{y}_{t+1}, f_{\theta,\beta}(x_t, z_t))\]

其中:BCE表示二元交叉熵。在实践中,我们采样一个动作的小批量,并在取梯度步骤之前在小批量上平均损失。

图片名称

图1

5.5 Epinet汤普森采样算法

有了上述细节,我们现在介绍Epinet汤普森采样算法。注意,先验分布由涉及的各个神经网络的初始参数表示。对于Epinet,这个先验是神经网络函数上的分布。从这个分布中采样涉及首先从参考分布中采样一个认知索引$ z_t $,然后保持$ z_t $固定进行前向传播。与此同时,通过梯度下降在目标上执行近似后验更新。在下一节中,我们概述了我们在冷启动检索中使用Epinet汤普森采样的在线实验细节。

5.6 推荐流程

Facebook Reels推荐系统涉及多个阶段,在这些阶段中,推荐提案被生成、汇集,然后排名,之后才提供给用户。由于我们的item探索内容冷启动,我们的方法在推荐的提案阶段运作。在提案呈现给排名器之前,它们会与其他来源的提案混合,这些来源将运行自己的独立推荐算法。因此,即使我们的算法向特定用户推荐了某个内容,除非排名器预测我们的内容比其他来源的内容更有前景,否则它也不会被提供给该用户。然而,为了减轻流行度偏见,为冷启动内容设置了配额。将Epinet应用于推荐排名阶段的应用仍然是未来研究的一个有趣方向。

图片名称

图2

6 实验

我们进行了为期5天的在线A/B测试,以测试我们提出的方法的有效性。对于上下文bandit实验,这是一个标准持续时间,因为结果不需要很长时间就能收敛。我们在每天服务数亿用户的Facebook Reels推荐系统上运行我们的测试。我们的方法应用于推荐的检索阶段。我们部署实验的生成器每天服务约1.2亿用户。对于测试和控制组,我们分配了约1200万用户的组。

6.1 实施细节

用户/item嵌入被训练以最小化4个不同任务的损失:观看分数(ws)、点赞、分享和视频观看秒数(vvs)。观看分数定义如下:

\[ws = \begin{cases} 1 & \text{如果视频长度 < 10秒且用户多次完成视频观看} \\ 0.5 & \text{如果视频长度 ≥ 10秒且 < 20秒且用户完成视频观看} \\ 0.1 & \text{如果视频长度 ≥ 20秒且用户观看至少20秒} \\ 0 & \text{其他情况} \end{cases}\]

点赞和分享是二进制信号,如果用户点赞/分享视频则为1,否则为0。视频观看秒数定义如下:

\[vvs = \begin{cases} 0 & \text{如果视频观看时间 < 10秒} \\ \frac{9}{10} & \text{如果视频观看时间 ≥ 10秒且 < 20秒} \\ \vdots & \vdots \\ 1 & \text{如果视频观看时间 ≥ 90秒} \end{cases}\]

虽然用户和item嵌入在上述4个标签上进行训练,但上层模型仅在ws上进行训练。控制组仅保持点估计,不包括上层组件。因此,它被训练以最小化上述信号的BCE损失,并根据其当前点估计贪婪地推荐内容。两个模型每小时训练一次,从最近的检查点初始化。它们在所有其他生成器聚合的新数据池上进行训练。因此,我们的算法对聚合池的数据贡献非常微小。这引发了两个问题1)处理组之间的数据泄露,2)我们的方法收集的数据被其他生成器的数据稀释。然而,在检查后,每个用户的嵌入差异足够大。因此,1)没有跨处理组的用户之间有意义的泛化,2)由于其他生成器的数据在嵌入空间中足够不相交,因此对稀释的担忧较小。我们假设这些是我们的方法尽管有上述担忧,但我们观察到显著性能改进的原因。

每个嵌入的维度为$ d = 128 $,认知索引的维度为$ d_z = 5 $。在上层模型中,我们对Epinet和基础mlp使用2隐藏层MLP,隐藏维度分别为[384, 256],使用Glorot初始化。如前所述,我们仅对训练和推理采样单一认知索引。

6.2 实验结果

我们现在概述在线实验的结果。如果推荐在用户的屏幕上显示至少250毫秒,则计为“展示”。由于我们对冷启动内容的性能感兴趣,我们衡量展示次数少于10000的内容的性能。我们进一步通过视频展示次数桶[0:100, 100:200, 200:400, 400:1000, 1000:2000, 2000:3000, 3000:4000, 4000:5000, 5000:10000]对性能进行分层统计。我们报告了上述3个效率指标的改进:每次展示的点赞数、每次展示的视频完成数和每次展示的观看分数。视频完成是1如果用户观看了整个视频,否则为0。

图3、图4和图5显示了我们的Epinet算法与对照组相比在各种上述效率指标上的百分比变化。我们为每个指标和展示次数桶绘制了95%的置信区间。因此,如果误差条没有穿过0,则变化是显著的。图3展示了每次展示的点赞数的大幅改进,特别是对于展示次数较低的内容。这表明,通过智能探索,系统可以更可靠地探索冷启动内容,并提供用户喜欢的视频。图4展示了每次展示的视频观看完成数的显著改进,表明Epinet算法成功地能够推荐用户喜欢到足以观看完成的内容。

图片名称

图3

图片名称

图4

图片名称

图5

最后,我们分析了我们的方法如何在展示次数桶之间重新分配推荐。图6显示了我们的方法极大地提高了展示次数较少内容的展示次数,并适度地从展示次数较多的内容中吸引流量。我们还注意到,我们的方法在所有展示次数的内容聚合时展示了总体17%的展示次数提升。

这项实证调查的结果表明,将Epinet应用于近似汤普森采样可以在在线生产系统中提供具体的改进。

#

https://arxiv.org/pdf/2412.04484

Netflix团队发了篇paper《Is Cosine-Similarity of Embeddings Really About Similarity?》,对cosine相似度做了相应的研究。

摘要

余弦相似度(cosine similarity)是指两个向量间夹角的余弦值,或者等价于:归一化后的点积。一种常见的应用是:通过将余弦相似度应用于学习到的低维特征embedding,来量化高维对象之间的语义相似性。这种方法在实践中可能比未归一化的嵌入向量之间的点积效果更好,但也可能更差。为了深入了解这一经验观察,我们研究了从正则化线性模型派生的embedding,其中闭式解有助于分析洞察。我们从理论上推导了余弦相似度如何产生任意且因此无意义的“相似性”。对于某些线性模型,相似性甚至不是唯一的,而对于其他模型,它们则由正则化隐式控制。我们讨论了超出线性模型的含义:在学习深度模型时采用了不同正则化的组合;当对结果embedding取余弦相似度时,这些正则化具有隐式和非预期的影响,使结果变得不透明且可能是任意的。基于这些见解,我们警告:不要盲目使用cosine相似度,并概述了替代方案。

1.引言

离散实体通常通过学习的映射嵌入到各种领域的稠密实值向量(dense real-valued vector)中。例如,在大语言模型(LLM)中,单词基于其周围上下文进行嵌入,而推荐系统通常根据用户消费的方式学习item(和user)的embedding。这样的embedding有多方面的优点。特别是,它们可以直接作为(冻结或微调的)输入用于其它模型,它们提供了一种数据驱动的(语义)相似性概念,用来表示之前是原子和离散的实体。

虽然“余弦相似度(cosine similarity)”中的相似性指的是:与距离度量中的较大值表示更接近(较小值则相反),但它也已成为衡量感兴趣实体之间语义相似性的非常流行的度量方法。其动机在于,学习到的embedding vector的范数并不如embedding vector间的方向对齐那么重要。尽管有无数的论文报告了余弦相似度在实际应用中的成功使用,但也有人发现它在某些情况下不如其它方法,例如学习embedding间的(未归一化的)点积,参见[3, 4, 8]

在本文中,我们尝试阐明这些不一致的经验观察。我们发现,学习到的embedding余弦相似度实际上可以产生任意结果。我们发现,根本原因不在于余弦相似度本身,而在于学习到的embedding具有一定程度自由度,即使它们的(未归一化的)点积是明确定义且唯一,也可以产生任意的余弦相似度。为了获得更具一般性的见解,我们推导出解析解,这对于线性矩阵分解(MF)模型是可能的——这将在下一节详细概述。在第3节中,我们提出了可能的解决方案。第4节中的实验说明了我们在本文中得出的发现。

2.矩阵分解模型

在本文中,我们关注线性模型,因为它们允许闭式解(closed-form solutions),从而可以从理论上理解应用于学习embedding的余弦相似度度量的局限性。给定:

  • 一个矩阵$X \in R^{n × p}$
  • 包含n个数据点和p个特征(例如,在推荐系统中分别是user和item)

矩阵分解(MF)模型(或等效地在线性自编码器中)的目标是:估计一个低秩矩阵$AB^T \in R^{p×p}$

其中:

  • $A, B \in R^{p×k}, k \leq p$

使得乘积$XAB^⊤$是${X:}^1 X \approx XAB^⊤$的好的近似。

给定:

  • X是一个user-item矩阵
  • B的行:$\overset{\rightarrow}{b_i}$,通常被称为k维的item embedding
  • XA的行:$\overset{\rightarrow}{x_u} \cdot A$,可以解释为user embeddings,其中用户u的embedding是该用户消费的item embeddings $\overset{\rightarrow}{a_j}$的总和。

请注意,该模型是根据user和item embeddings之间的(未归一化的)点积定义的:

\[(XAB^T)_{u,i} = < \overset{\rightarrow}{x_u} \cdot A, \overset{\rightarrow}{b_i} >\]

然而,一旦学习了embedd,常见的做法是:考虑它们之间的余弦相似度,例如:

  • 两个item间:$cosSim(\overset{\rightarrow}{b_i}, \overset{\rightarrow}{b’_i})$
  • 两个user间:$cosSim(\overset{\rightarrow}{x_u} \cdot A, \overset{\rightarrow}{x_u’} \cdot A)$
  • user与item间:$cosSim(\overset{\rightarrow}{x_u} \cdot A, \overset{\rightarrow}{b_i})$

在下文中,我们将展示这可能导致任意结果,并且它们甚至可能不是唯一的。

2.1 训练

影响余弦相似度metric的实效(utility)的一个关键因素是:当在学习A、B的embedding时使用的正则化方法,如下所述。

考虑以下两种常用的正则化方案(它们都有封闭形式的解,见第2.2节和第2.3节):

\[\underset{A,B}{min} ||X − XAB^⊤||^2_F + λ||AB^⊤||^2_F \\ \underset{A,B}{min} ||X − XAB^⊤||^2_F + λ(||XA||^2_F + ||B||^2_F )\]

… (1) (2)

这两个训练目标在L2范数正则化方面显然有所不同:

在第一个目标中,$|AB^⊤|^2_F$ 应用于它们的乘积。在线性模型中,这种L2范数正则化可以证明等同于:使用去噪学习,即在输入层进行dropout,例如,见[6]。 此外,实验发现,在保留的测试数据上得到的预测准确率优于第二个目标的准确率[2]。 不仅在MF模型中,而且在深度学习中,通常观察到去噪或dropout(这个目标)比权重衰减(第二个目标)在保留的测试数据上带来更好的结果。

第二个目标等价于:常规的矩阵分解目标:

\[{min}_W \| X − P Q^T \|^2_F + λ(\|P\|^2_F + \|Q\|^2_F)\]

其中:

  • X被分解为$P Q^⊤$,且P = XA和Q = B。

这种等价性在 [2]中有所概述。这里的关键是,每个矩阵P和Q分别进行正则化,类似于深度学习中的权重衰减。

  • $\widehat{A}$和$\widehat{B}$:是任一目标的解(solution)
  • $R \in R^{k×k}$:任意旋转矩阵

那么众所周知,具有任意旋转矩阵$R \in R^{k×k}$ 的$\widehat{A}R$和$\widehat{B}R$也是解(solution),因为余弦相似度在这种旋转R下是不变的,本文的一个关键见解是:

  • 第一个(但不是第二个)目标对于A和B的列(即嵌入的不同潜在维度)的重缩放也是不变的:如果$\widehat{A} \widehat{B}^⊤$是第一目标的解,那么$\widehat{A}DD^−1 \widehat{B}^⊤$也是,其中D ∈ R k×k 是任意对角矩阵。

因此,我们可以定义一个新的解决方案(作为D的函数)如下:

\[\widehat{A}^{(D)} := \widehat{A}D \\ \widehat{B}^{(D)} := \widehat{B}D^{−1}\]

…(3)

反过来,这个对角矩阵D会影响学习到的user和item embedding(即:行)的归一化:

\[(X\widehat{A}^{(D)})_{(normalized)} = Ω_AX\widehat{A}^{(D)} = Ω_AX\widehat{A}D \\ \widehat{B}^{(D)}_{(normalized)} = Ω_BBˆ(D) = ΩBBDˆ −1,(4)\]

其中$Ω_A$和$Ω_B$是适当的对角矩阵,用于将每个学习到的嵌入(行)归一化为单位欧几里得范数。注意,一般来说这些矩阵不可交换,因此不同的D选择不能(精确地)通过归一化矩阵$Ω_A$和$Ω_B$来补偿。由于它们依赖于D,我们通过$Ω_A(D)$和$Ω_B(D)$明确表示这一点。因此,嵌入的余弦相似性也取决于这个任意矩阵D。

当人们考虑两个项目之间、两个用户之间或用户和项目之间的余弦相似性时,这三种组合分别为:

  • item-item:
\[cosSim(\widehat{B}^(D), \widehat{B}^(D)) = Ω_B(D) \cdot \widehat{B} \cdot D^{−2} \cdot \widehat{B}^T \cdot Ω_B(D)\]
  • user-user:
\[cosSim(X\widehat{A}^(D), X\widehat{A}^(D)) = Ω_A(D) \cdot X\widehat{A}^ \cdot D^2 \cdot (X\widehat{A})^T \cdot Ω_A(D)\]
  • user-item:
\[cosSim(X\widehat{A}^(D), \widehat{B}^(D)) = Ω_A(D) \cdot X\widehat{A} \cdot \widehat{B}^T \cdot Ω_B(D)\]

显然,所有三种组合的余弦相似性都取决于任意对角矩阵D:虽然它们都间接依赖于D,因为它影响了归一化矩阵$Ω_A(D)$和$Ω_B(D)$,但请注意,(特别受欢迎的)item-item余弦相似性(第一行)还直接依赖于D(user-user余弦相似性也是如此,见第二项)。

2.2 First Objective (Eq. 1)详述

当我们考虑全秩MF模型的特殊情况,即k = p时,余弦相似性的任意性在这里变得尤为明显。这可以通过以下两种情况来说明:

第一种:

如果我们选择: \(D = dMat(..., 1/(1+λ/σ^2)^i, ...)^(1/2)\)

那么我们有: \(\widehat{A}_{(1)}^{(D)} = \widehat{A}_{(1)} \cdot D \\ = V · dMat(\cdots, \frac{1}{(1+λ/\sigma_i^2)}, \cdots)\)

\[\widehat{B}_{(1)}^{(D)} = \widehat{B}_{(1)} \cdot D^{-1} = V\]

由于奇异向量矩阵V已经是标准化的(关于列和行),归一化$Ω_B = I$因此等于单位矩阵I。因此,关于item-item余弦相似性,我们得到:

\[cosSim(\widehat{B}_{(1)}^{(D)}, \widehat{B}_{(1)}^{(D)}) = V V^T = I\]

这是一个相当奇怪的结果,因为这意味着任何一对(不同的)项目嵌入之间的余弦相似性为零,即一个item只与自己相似,而不与任何其他item相似!

另一个显著的结果是关于user-item余弦相似性:

\[cosSim(X \widehat{A}_{(1)}^{(D)}, \widehat{B}_{(1)}^{(D)}) = Ω_A \cdot X \cdot V \cdot dMat(\cdots, \frac{1}{1 + λ/\sigma_i^2}, \cdots) · V^T \\ = Ω_A · X · \widehat{A}_{(1)}\widehat{B}_{(1)}^T\]

因为与(未归一化的)点积相比,唯一的区别在于矩阵$Ω_A$,它归一化了行——因此,当我们考虑基于预测分数为给定用户对项目进行排序时,余弦相似性和(未归一化的)点积会导致完全相同的项目的排序,因为在这种情况下行归一化只是一个无关紧要的常数。

第2种:

  • 如果我们选择:
\[D = dMat(\cdots, \frac{1}{(1+λ/σ_i^2)}, \cdots)^{-\frac{1}{2}}\]

那么我们类似于前一种情况有:

\[\widehat{B}_{(1)}^{(D)} = V \cdot dMat(\cdots, \frac{1}{1+λ/σ_i^2}, \cdots)\]

并且$\widehat{A}_{(1)}^{(D)} = V$是正交的。我们现在得到关于user-user余弦相似性:

\[cosSim(X \widehat{A}_{(1)}^{(D)}, X\widehat{A}_{(1)}^{(D)}) = Ω_A · X · X^T · Ω_A\]

即,现在用户相似性仅仅基于原始数据矩阵X,即没有任何由于学习到的嵌入而产生的平滑。关于user-item余弦相似性,我们现在得到:

\[cosSim(X\widehat{A}_{(1)}^{(D)}, \widehat{B}_{(1)}^{(D)}) = Ω_A \cdot X \cdot \widehat{A}_{(1)} \cdot \widehat{B}_{(1)}^T \cdot Ω_B\]

即,现在$Ω_B$归一化了B的行,这是我们在之前选择D时所没有的。同样,item-item余弦相似性

\[cosSim(\widehat{B}_{(1)}^{(D)}, B_{(1)}^{(D)}) = Ω_B · V · dMat(\cdots, \frac{1}{1 + λ/σ_i^2}, \cdots)^2 \cdot V^T \cdot Ω_B\]

与我们之前在D的选择中得到的奇怪结果大不相同。

总的来说,这两种情况表明,对于D的不同选择会导致不同的余弦相似性,即使学习到的模型

\[\widehat{A}_{(1)}^{(D)} \widehat{B}_{(1)}^{(D)T} = \widehat{A}_{(1)} \widehat{B}_{(1)}^T\]

对于D是不变的。换句话说,余弦相似性的结果是任意的,对这个模型来说并不是唯一的。

2.3 关于第二个目标

(公式2)的细节

公式2中的训练目标的解决方案在[7]中推导出来,读作

\[\widehat{A}_{(2)} = V_k \cdot dMat(\cdots, \sqrt{\frac{1}{σ_i} \cdot (1 - λ/σ_i)+}, \cdots)_k \\ \widehat{B}_{(2)} = V_k \cdot dMat(\cdots, \sqrt{σ_i \cdot (1 - λ/σ_i)+}, \cdots)_k\]

… (6)

其中:

  • $(y)+ = max(0, y)$
  • $X =: U \Sigma V^T$: 是训练数据X的SVD
  • $\Sigma = dMat(\cdots, σ_i, \cdots)$

注意,如果我们使用MF中常用的符号,其中:$P = XA$和$Q = B$,我们得到:

\[\widehat{P} = X\widehat{A}_{(2)} = U_k \cdot dMat(\cdots, \sqrt{σ_i \cdot (1 - \frac{λ}{σ_i})+}, \cdots)_k\]

在这里我们可以看到,在公式6中,对角矩阵:

\[dMat(..., \sqrt{σ_i \cdot (1 - \frac{λ}{σ_i})+}, \cdots)_k\]

对于user embedding和item embedding是相同的,这是由于在公式2的训练目标中的L2范数正则化 $|P|_F + |Q|_F$的对称性所预期的。

与第一个训练目标(见公式1)的关键区别在于,这里的L2范数正则化$|P|_F + |Q|_F$是分别应用于每个矩阵的,因此这个解决方案是唯一的(如上所述,直到不相关的旋转),即在这种情况没有办法将任意的对角矩阵D引入到第二个目标的解决方案中。因此,应用于这个MF变体的学习嵌入的余弦相似性产生唯一的结果。

虽然这个解决方案是唯一的,但它仍然是一个悬而未决的问题,这个关于用户和项目嵌入的唯一对角矩阵 $dMat(\cdots, \sqrt{σ_i \cdot (1 - λ/σ_i)+}, \cdots)_k$是否在实践中产生最佳可能的语义相似性。然而,如果我们相信这种正则化使得余弦相似性在语义相似性方面有用,我们可以比较两个变体中对角矩阵的形式,即比较公式6和公式5,这表明在第一个变体中任意的对角矩阵D(见上面的部分)类似地可以选择为: $D = dMat(…, p1/σi, …)k$

3.针对余弦相似性的补救措施和替代方法

正如我们上面分析的那样,当一个模型针对点积进行训练时,其对余弦相似性的影响可能是模糊的,有时甚至不是唯一的。一个显而易见的解决方案是针对余弦相似性训练模型,层归一化[1]可能会有所帮助。另一种方法是避免使用导致上述问题的嵌入空间,并将其投影回原始空间,然后在那里应用余弦相似性。例如,使用上述模型,并给定原始数据X,可以将$X\widehat{A}\widehat{B}^T$视为其平滑版本,将$X\widehat{A}\widehat{B}^T$的行视为原始空间中的user embedding,然后可以应用余弦相似性。

除此之外,同样重要的是要注意,在余弦相似性中,只有在学习了嵌入之后才应用归一化。与在学习之前或期间应用某种归一化或减少流行度偏差相比,这可能会显著降低结果的(语义)相似性。这可以通过几种方式完成。例如,统计学中的一种默认方法是标准化数据X(使每列均值为零且方差为单位)。深度学习中的常见方法包括使用负采样或逆倾向缩放(IPS)来考虑不同项目的流行度(和用户活动水平)。例如,在word2vec [5]中,通过按照它们在训练数据中的频率(流行度)的β = 3/4次幂的概率采样负样本,训练了一个矩阵分解模型,这在当时产生了令人印象深刻的词相似性。

https://arxiv.org/pdf/2403.05440v1.pdf

meta在《AdaTT: Adaptive Task-to-Task Fusion Network for Multitask Learning in Recommendations》提出了AdaTT的多任务建模方法。

摘要

多任务学习(MTL)旨在通过同时在多个任务上训练机器学习模型来提高它们的性能和效率。然而,MTL研究面临两个挑战:

  • 1)有效地建模任务之间的关系以便实现知识共享,
  • 2)共同学习任务特定(task-specific)知识和共享知识

本文提出了一种名为自适应任务融合网络(AdaTT:Adaptive Task-to-Task Fusion Network)的新模型,以解决这两个挑战。AdaTT是一个深度融合网络,具有多个levels上的专有任务单元(task-specific unit)和可选共享融合单元。通过利用一个残差机制(residual)和一个门控机制(gating)来进行任务间融合(task-to-task fusion),这些单元可以自适应地同时学习共享知识和专有任务知识。为了评估AdaTT的性能,我们使用各种任务组在公共基准和工业推荐数据集上进行实验。结果表明,AdaTT明显优于现有的最先进基线。此外,我们的端到端实验表明,与替代方案相比,该模型表现更好。

1.引言

在线推荐系统旨在为用户生成个性化的高质量推荐。这些系统的有效性通常取决于它们准确学习用户偏好的能力,这通常需要同时优化多个目标。例如,一个短视频推荐系统应该考虑用户观看视频(watch)的可能性(likelihood)和他们喜欢视频(like)的可能性(likelihood)。多任务学习(MTL)是这些用例的典型解决方案。通过在单个框架内联合训练多个任务,MTL提供了几个好处:

  • 首先,它增加了计算效率,这对于大规模在线推荐系统非常重要
  • 此外,它通过跨任务正则化(cross-task regularization)知识共享(knowledge sharing),增强了模型表现

然而,MTL也面临着独特的挑战。其中一个主要挑战是建模任务之间的关系。由于每个任务可能与其他任务具有不同程度的相关性,仅仅建模所有任务的一般共性是不够的。这个问题的复杂性随着任务数量的增加而增加。有效的任务关系建模是实现任务自适应知识共享(task-adaptive knowledge sharing)的关键。例如,“分享视频(share)”任务共享的知识可以在类似于“喜欢视频(like)”的任务中得到很大的权重,同时也可以从具有丰富示例的其它任务中吸取不同方面的知识,例如“观看视频(watch)”。另一方面,它会最小化与高度不相关的任务的共享学习(shared learning)。

  • 先前的工作[2、19]通常采用静态共享表示(static shared representations)
  • 其他工作,如cross-stitch network[24](如图2(c)所示),学习矩阵来建模多个子网络之间的关系。然而,权重对于所有样本保持不变,子网络只是松散的特定任务。
  • 最近的方法,如MMoE[22](如图2(b)所示)和PLE[29](如图2(e)所示),使用专门的门控网络(gating networks)来动态组合共享的子模块以实现灵活的共享,但是这些方法建模的任务之间的关系是模糊和间接的。

图片名称

图2 我们实验中使用的MTL模型。在多级MTL模型中,使用两个融合level来说明它们的设计。模块用不同的颜色表示:共享模块为蓝色,任务A特定模块为黄色,任务B特定模块为紫色

除了共享学习,专有任务学习(task-specific learning)也是多任务学习的一个重要组成部分。在两者之间取得适当的平衡对于解决任务冲突(task conflicts)和实现跨任务正则化(cross-task regularization)非常重要。

  • 一方面,MTL可能会遇到,负迁移(negative transfer)的问题:其中对一个任务的优化会对另一个任务的性能产生负面影响,特别是当任务具有冲突的目标时。在这种情况下,MTL模型应该自适应地强调专有任务学习。
  • 另一方面,专有任务学习过度和共享不足可能会导致过拟合,降低跨任务正则化的效益。每个任务的训练数据的数量和分布也会影响学习的重点:具有更多数据的任务可以更多地依赖于它们的专有学习,而那些具有较少数据或高度倾斜数据的任务可以更多地集中于共享学习

考虑到样本之间的差异可以使两者之间的权衡更加动态。因此,自动学习平衡这两种类型的学习非常重要。许多软参数共享模型(soft parameter sharing)可以在不需要繁琐的手动调整[2]或学习所有样本的静态结构。然而,进一步的研究是 需要理解:如何建模在共享任务学习与专有任务学习间的交互,以便提升效果。

3.模型结构

为了共同学习自适应共享表示并增强专有任务学习,我们提出了一个新模型:自适应任务融合网络(AdaTT)。AdaTT利用门控和残差机制来自适应地融合多个融合层中的专家(experts)。考虑一个具有两个预测任务的多任务学习场景。我们使用两个融合层在图1中说明了AdaTT的架构。AdaTT由多层融合网络(multi-level fusion network)任务塔(task towers)组成。融合网络(fusion networks)由任务特定和可选共享融合单元构成,而任务塔建立在融合网络之上,并与最终融合层中的任务特定单元相连。我们的框架是通用的,支持灵活选择专家模块、任务塔网络、门控模块和可配置数量的专家和融合层。 在接下来的章节中,我们首先介绍AdaTT的一个特殊case:称为AdaTT-sp,它仅使用任务特定融合单元(如图1(a)所示)。然后,我们将描述通用的AdaTT设计,如图1(b)所示。

图片名称

图1 AdaTT-sp和具有2个fusion levels的通用AdaTT。任务A和B的特定和共享模块通过颜色区分:A为黄色,B为紫色,共享为蓝色。为了说明,我们为每个任务特定单元使用了2个专家。在通用AdaTT中,我们添加了一个共享融合单元,其中只有一个专家作为示例。请注意,通用AdaTT中的共享模块并不是必需的,因此使用虚线表示。当不存在共享模块时,通用AdaTT会回退到AdaTT-sp。

3.1 AdaTT-sp

AdaTT-sp的详细设计如下所示。给定输入𝑥用于𝑇个任务,任务𝑡(𝑡=1,2,…,𝑇)的预测被公式化为:

\[y_t=h_t(𝑓_𝑡^L(𝑥))\]

…(1)

其中:

  • L:是融合层数量
  • $h_t$:表示任务𝑡的任务塔
  • $𝑓_t^L$:表示在第𝐿个融合层产生任务𝑡的融合单元的函数

这里,$𝑓_𝑡^L(𝑥)$通过使用等式(2)和(3),从底部到顶部应用融合层来计算:

\[𝑓_1^0(𝑥)=𝑓_2^0(𝑥)=\cdots=𝑓_T^0(𝑥)=𝑥\]

…(2)

\[𝑓_𝑡^l(𝑥)=𝐹𝑈_𝑡^l(𝑓_1^{(𝑙−1)}(𝑥), 𝑓_2^{𝑙−1}(𝑥), \cdots, 𝑓_𝑇^{l-1}(𝑥)), 𝑙=1 \cdots L\]

…(3)

这里,FU表示融合单元。

3.1.1 融合单元(fusion unit)

下面我们详细介绍引入等式(3)中的$𝐹𝑈_𝑡^l$的构造。对于任务𝑡,在接收到前一个融合层(fusion level)的所有输出后,我们首先会使用函数$e_{𝑡,𝑖}^l$,和输入$𝑓_t^{l-1}(𝑥)$,来为该任务构造$𝑚_𝑡$个本地专家(naive experts),表示为$𝐸_{𝑡,𝑖}^l$,即:

\[𝐸_{𝑡,𝑖}^l=e_{𝑡,𝑖}^l(f_𝑡^{l-1}(𝑥))\]

…(4)

其中:

  • $i=1,2,\cdots,𝑚_t$
  • $𝐸_{𝑡,𝑖}^l \in R^{1×𝑑^𝑙}$

在第𝑙层,每个专家网络(expert network)会产生长度为$𝑑^𝑙$的向量。为了简化表示,在第𝑙层,我们使用:

  • $𝐸_𝑡^l$:表示属于任务𝑡的experts的所有垂直拼接(vertical concatenation)
  • $𝐸^𝑙$:表示跨任务的所有experts的所有垂直拼接

具体而言,$𝐸_𝑡^l$ 和$𝐸^𝑙$表示为:

\[𝐸_𝑡^l=[𝐸_{𝑡,1}^l, 𝐸_{𝑡,2}^l,\cdots,𝐸_{𝑡,𝑚_t}^l]\]

…(5)

\[𝐸^𝑙=[𝐸_1^l,𝐸_2^l, \cdots, 𝐸_𝑇^l]\]

…(6)

其中:

  • $𝐸_𝑡^l \in R^{𝑚_t \times 𝑑^𝑙}$
  • $𝐸^𝑙 \in R^{(𝑚_1+𝑚_2+…+𝑚_𝑇)×𝑑^𝑙}$

在上述等式中:

  • $[,]$:表示将向量或子矩阵垂直堆叠成较大矩阵的操作。

由于任务可能与其他任务具有不同的相关性,$𝐹𝑈_𝑡^l$直接使用门控模块$𝐴𝑙𝑙𝐸𝑥𝑝𝑒𝑟𝑡𝐺𝐹_𝑡^l$来结合所有任务的专家$𝐸^𝑙$来模拟任务间的知识融合。此外,我们利用轻量级线性组合$𝑁𝑎𝑡𝑖𝑣𝑒𝐸𝑥𝑝𝑒𝑟𝑡𝐿𝐹_𝑡^l$来融合任务𝑡的本地专家,即$𝐸_𝑡^l$。概念上,门控模块模拟共享学习,本地专家的线性组合模拟专有任务学习。具体而言,任务𝑡在第𝑙层的特定单元的输出被公式化为:

\[𝑓_𝑡^l(𝑥) = AllExpertGF_𝑡^l(𝐸^𝑙, 𝐺_𝑡^l) + NativeExpertLF_t^l(𝐸_𝑡^l)\]

…(7)

在公式7中,专家被融合如下:

\[𝑁𝑎𝑡𝑖𝑣𝑒𝐸𝑥𝑝𝑒𝑟𝑡𝐿𝐹_t^l(𝐸_𝑡^l)=(𝑣_𝑡^l)^T 𝐸^{𝑡^l}\]

…(8)

其中:

  • 在𝐴𝑙𝑙𝐸𝑥𝑝𝑒𝑟𝑡𝐺𝐹中,$𝐸^𝑙$ 乘以由一个函数$𝑔_𝑡^l$生成的门控权重$𝐺_𝑡^l \in R^{(𝑚_1+𝑚_2+\cdots+𝑚_𝑇)\times 1}$
  • 在𝑁𝑎𝑡𝑖𝑣𝑒𝐸𝑥𝑝𝑒𝑟𝑡𝐿𝐹中,相似的,$𝐸_𝑡^l$仅由一个可学习的向量$v_𝑡^l \in R^{𝑚_𝑡 \times 1}$组合在一起

当$𝑚_1=𝑚_2=\cdots=𝑚_𝑇=1$时,即所有融合单元仅有一个专家时,为了简化起见,$𝑁𝑎𝑡𝑖𝑣𝑒𝐸𝑥𝑝𝑒𝑟𝑡 𝐿𝐹_𝑡^l(𝐸_t^l)$回退到$𝐸_𝑡^l$,将一个单位权重分配给本地专家。有许多设计选项可用于$𝑔_𝑡^l$。常见的一种是使用由softmax激活的单层MLP:

\[𝑔_𝑡^l(𝑓_𝑡^{𝑙−1}(𝑥))=𝑠𝑜𝑓𝑡𝑚𝑎𝑥(𝑊_𝑡^l 𝑓_𝑡^{𝑙−1}(𝑥)^T)\]

…(10)

这里:

  • $𝑊_𝑡^l \in R^{(𝑚_1+𝑚_2+\cdots+𝑚_𝑇)} × 𝑑^{𝑙−1}$是一个学习的矩阵。

3.1.2 简化

为了实现效率,考虑到公式8和公式9,我们实际上可以用零填充$(𝑣_𝑡^l)^T$以匹配$(𝐺_t^l)^T$的大小,加权并执行单个乘法来组合所有专家。因此,公式7可以简化为:

\[𝑓_𝑡^l(𝑥)=(𝑝𝑎𝑑(𝑣_𝑡^{lT} )+𝐺_𝑡^{lT}) 𝐸^𝑙\]

… (11)

正如我们所看到的,包含线性融合模块会导致计算量的最小增加。

3.2 常规版本的AdaTT

在其一般形式中,如图1(b)所示,AdaTT采用可选的共享融合单元(shared fusion units)。从概念上讲,专有任务模块pairs间的融合模拟了细粒度共享(fine-grained sharing),而专有任务模块和共享模块间的融合则传递了适用于所有任务的广泛知识。这导致了高效灵活的任务间知识共享。通用AdaTT的计算方式与AdaTT-sp类似,除了最后一个fusion level,共享融合单元不执行任何融合操作,只为专有任务融合单元产生专家输出进行处理。

总之,AdaTT明确地学习任务特定知识并自适应地与共享知识融合。融合是任务自适应的,因为:

  • 1.门控模块学习与任务本地专家相关的残差。
  • 2.每个任务特定单元使用特定的门控模块融合专家,该门控模块以输入为条件(从第二个融合级别开始是唯一的)。

通过允许每个任务直接而灵活地从其他任务中学习共享知识,AdaTT相比于仅依赖于共享专家作为媒介的PLE具有更大的灵活性。此外,AdaTT可以选择仅使用任务特定专家。与PLE不同,它在每个融合单元内的不同线性融合模块中单独融合本地专家,而不是在单个门控模块中处理所有选定的专家。这种设计增强了每个融合级别后任务特定学习的鲁棒性。尽管它很简单,但我们的实验表明,它胜过了PLE,后者将选择应用于不同的融合单元中的专家,并使用不同的路由路径来区分这些专家。

4.实验

https://arxiv.org/pdf/2304.04959.pdf

pinterest在《Improving feature interactions at Pinterest under industry constraints》提出了一种特征交叉的新思路。

摘要

在工业环境中采用推荐系统的先进成果常常面临挑战,因为存在独特的约束条件。本文旨在通过特征交互的视角来突出这些约束。特征交互对于准确预测推荐系统和在线广告中的用户行为至关重要。尽管许多新颖的技术在Criteo等基准数据集上显示出优越的性能,但由于模型延迟、GPU内存限制和模型可复制性等约束,它们的直接应用在工业环境中受到阻碍。在本文中,我们分享了在这些约束下改进Pinterest首页排序模型中特征交互的经验。我们提供了遇到的特定挑战、为解决这些挑战而采取的策略以及为平衡性能与实际限制所做的权衡的详细信息。此外,我们展示了一组学习实验,这些实验有助于指导特征交互架构的选择。我们相信这些见解对于有兴趣通过更好的特征交互学习来改进模型的工程师将是有用的。

1 引言

Pinterest是最大的内容分享平台之一,拥有超过5亿的月活跃用户[9]。如图1所示的Homefeed是大多数用户的首要入口点,也是主要的灵感来源,占据了平台上用户参与度的大部分。Pinterest上的用户可以通过保存、放大、隐藏等多样的操作与Pin进行互动。

图片名称

图1

为了增强用户在Homefeed上的体验,我们使用推荐系统确保为用户提供最相关的Pin。我们使用的是基于标准的检索、排名和混合的推荐系统。排序模型负责预测不同用户行为的概率。这是通过多任务建模方法实现的。

我们的排序模型可以分为三个部分:特征预处理、特征交互和任务预测。特征交互是模型的关键部分,对于有效捕捉特征和标签之间的复杂关系至关重要。

近年来[11][14][8][17],提出了许多架构来高效学习这些关系。然而,这些架构通常在基准数据集的离线设置中进行评估,并没有考虑到工业推荐系统面临的现实世界约束。过多的超参数和高内存使用等限制使得这些技术在工业环境中不切实际。应对这些约束是改进我们的模型并为用户提供价值的关键。

本文的核心贡献总结如下:

  • 我们详细描述了工业环境中面临的约束,并将其与学术研究进行对比。
  • 我们提出了一组学习实验,以帮助指导选择合适的交互架构和超参数。
  • 我们分享了在这些特定行业约束下,通过学习实验改进排序模型中特征交互的经验。 本文的其余部分组织如下:第2节回顾相关工作。第3节描述了Homefeed排序模型。我们在第4节详细说明了我们工作的约束。第5节报告了使用不同特征交互层的学习实验和实验结果。最后,我们在第6节总结我们的工作。

2 相关工作

当今大多数工业推荐系统都基于深度神经网络模型,这些模型的大部分关键部分是有效地学习特征交互。像Wide & Deep[1]和DeepFM[5]这样的架构表明,学习低阶和高阶特征交互是有用的。[2]显示,随着更好的特征交互架构的出现,Criteo数据集上的点击率预测逐年变得更好。 多层感知机(MLP)允许隐式建模高阶特征交互。DCN[12]及其后继者DCNv2[13]增加了一个显式的特征交叉来学习更好的交互。同样,xDeepFM[7]使用压缩交互网络(CIN)以显式方式学习低阶和高阶特征交互。AutoInt[10]提出了一个基于注意力的机制,在低维空间中显式建模特征交互。

Masknet[14]使用实例引导的掩码来辅助交互学习。FinalMLP[8]表明,一个经过良好调整的双流MLP模型可以胜过显式交叉。GDCN[11]使用门控来过滤掉嘈杂的特征交互,允许更高阶的特征交互。DHEN[16]提出了一个结合多种特征交互的框架。SDCNv3[6]提出使用浅层和深层交叉网络,整合了低阶和高阶特征交互。尽管这些新架构提高了准确性,但它们增加了模型的延迟和内存消耗,这使得在工业环境中更难使用。

DeepLight[3]提出通过使用一种机制来剪枝神经网络,以减少推理时间同时保持模型性能,从而缓解这个问题。然而,剪枝引入了失去可复制性的风险,这在工业环境中很重要。使用多头注意力机制的Transformer架构已被证明在特征交互学习方面是有效的[4]。

3 首页feeds排序模型(HOMEFEED RANKING MODEL)

Homefeed排序模型是一个深度学习模型,负责预测用户参与度概率的点估计。给定一个用户 u 和一个Pin p,模型预测 K 个概率——每个我们关心的用户行为(如保存、放大、隐藏等)都有一个。我们使用dense特征、sparse特征和嵌入特征的组合来表示用户、Pin和上下文。

  • dense特征被标准化以确保数值稳定性。
  • 我们使用可学习的嵌入来表示sparse特征,并根据特征的基数选择嵌入大小。我们将较大的嵌入特征投影到较小的维度,然后再输入到模型中。
  • 最重要的嵌入特征之一是我们的用户序列嵌入。它是使用基于Transformer的架构[15]学习得到的,输入是用户过去的参与情况。这个Transformer的输出被汇总到一个嵌入特征中

。稀疏和嵌入特征在与dense特征连接成一个单一特征嵌入之前被L2标准化。这个特征嵌入被用作特征交互层的输入。我们使用4个堆叠的全秩DCNv2[13]层来模拟特征交互。我们在将交叉特征嵌入和输入特征嵌入连接后,再传递到MLP层。我们使用一个共享的MLP,它有多个隐藏层,并预测对应于K个任务的K个输出。模型是使用用户过去的参与数据进行训练的,使用加权交叉熵损失。损失中的权重是根据业务需求选择的。我们将图2a中显示的架构作为我们所有实验的基线。

图片名称

图2 Homefeed ranking model

4 约束(CONSTRAINTS)

在迭代工业推荐系统时,考虑排序模型的各种约束至关重要。以下是其中一些约束,特别关注与我们的特征交互实验相关的,并与学术界进行对比。这不是一个详尽的列表,因为它不包括其他重要的考虑因素,如多样性和平衡业务指标。

4.1 内存

为了有效地利用我们的计算资源,我们选择的模型训练batch大小使得模型训练期间分配的最大内存大约是总可用内存的60%。这种分配为系统内存、内存碎片和可能增加内存使用的潜在未来项目留出了空间。尽管我们观察到进一步增加这个比例可以提高我们的模型质量,但如果最大分配内存超过75%,我们在模型重新训练期间会遇到间歇性的内存不足(OOM)错误。为了缓解这个问题,我们可以减少batch大小,但这是以牺牲模型质量和引入实验中的混杂变量为代价的。因此,任何需要大量额外内存的新技术都必须显著提高模型质量,以抵消因减少batch大小而造成的损失。

这通常不是学术研究的考虑因素,在那里batch大小可能被调整以最大化目标指标和训练时间。

4.2 延迟

模型推理延迟是我们整体系统延迟的重要组成部分。任何这种延迟的增加都会降低我们分布式服务系统的吞吐量。因此,我们然后需要增加额外的机器以获得相同的服务吞吐量,导致更高的运营成本。必须确保模型的任何改进都证明这些额外成本是合理的。此外,增加的模型延迟可以延长训练时间,从而影响开发速度。

在学术研究中,5%的延迟增加可能不会有关键影响,但在工业应用中,它会显著增加服务成本。话虽如此,由于可以轻松获得额外的计算资源,这是最容易权衡的约束之一。

4.3 超参数

使用具有众多超参数的模型架构会增加需要训练的模型数量,以确定最优配置。随着我们用户兴趣的变化,我们的数据分布也在变化。这要求我们定期调整这些超参数,以优化模型以适应最新的数据分布。

学术论文通常会进行广泛的超参数调整,以确定表现最佳的变体。由于这是一次性成本,减少模型中的超参数数量通常不是考虑因素。

4.4 可复制性

确保我们的模型可以使用相同的数据重新训练并产生一致的结果至关重要。没有这种一致性,就很难确定观察到的指标变化是给定变化的真实改进,还是模型内的简单变化。因此,任何纳入模型的特征交互都不应降低其可复制性。

我们通过计算使用相同配置的运行中HIT@3/save指标的标准差来衡量可复制性。一个可复制的模型应该有低标准差。

在学术界,可复制性不是一个重要因素。指标通常被报告为使用相同配置的几次运行的指标均值,但标准差通常不被比较。

4.5 稳定性

我们使用分布式训练方法来训练我们的模型,其中数值不稳定性可能导致模型失败。这要求我们从之前的检查点重新开始或完全放弃运行,导致计算资源浪费。任何纳入模型的新特征交互都不应影响其稳定性。

由于我们不断在新数据上重新训练我们的模型,跨不同数据分布的稳定性很重要。学术界通常使用固定的基准数据集来报告指标,所以通常不跟踪稳定性。

5 实验

5.1 指标

我们使用以下指标来评估我们的模型:

  • HIT@3/save指标[15]:尽管我们的模型预测多种行为,我们使用最重要的动作——保存(save),来进行模型的离线评估。我们根据新的预测结果对每个用户会话记录的结果进行排序,并计算前3个Pin中的保存(save)量。我们将这个指标与基线模型进行比较,并以百分比增益或损失的形式报告。
  • 内存:这是训练期间分配的峰值内存,作为总可用GPU内存的百分比。
  • 延迟:这是与基线模型相比,在大量batch中模型推理时间的增加或减少。

5.2 学习实验

在本节中,我们展示了我们进行的一系列学习实验,以确定哪些架构更改对模型有益。这些学习实验的结果在表1中。

表1

5.2.1 交互的顺序

我们评估了模型对增加交互顺序的反应,通过堆叠额外的特征交互层。在我们的实验中,我们成功地使用了多达8个堆叠的DCNv2层,而没有遇到内存不足(OOM)问题,并观察到了指标的改进。这告诉我们,我们的模型从更高阶的交互中受益。

5.2.2 平行交互

我们检查了模型对设计用来学习相似交互的平行层的反应。例如,平行的DCN层可能分别捕获不同的交互模式。在我们的实验中,同时运行多个堆叠的DCNv2层提高了模型性能。这告诉我们,我们的模型从学习同一阶的多个特征交互中受益。

5.2.3 交互的非线性

DCNv2在其架构中不包含非线性。在DCNv2中添加非线性的一种方式是使用低秩(LR)版本,在两个低秩全连接层之间使用非线性。我们将全秩DCNv2层替换为低秩层作为基线,并使用ReLU层作为非线性进行实验。我们比较了具有不同秩值的模型,并观察到我们的模型随着非线性交互的包含而改进。

5.3 变体(Variants)

我们选择了几种声称比DCNv2表现更好的特征交互架构进行实验。我们提供了以下架构的实现细节,并讨论了它们如何适应我们的约束。我们还提到了学习实验的结果如何指导我们进行最终模型选择。这些实验的结果在表2中。不同架构相对于不同约束的性能总结在表3中。

5.3.1 Transformer

要使用Transformer进行特征交互,我们首先将我们的S 个sparse特征投影到共同的维度 D。我们将我们的dense特征分组,并将其C次投影到维度D。我们将嵌入特征投影到维度D。此外,我们将用户序列Transformer的输出U次投影到维度D。这导致最终特征集包含(S+C+U) 个tokens,每个token的维度为 D。

然后我们应用多个Transformer编码器层进行特征交互。Transformer输出token被连接并使用MLP处理。

在我们的实验中,我们设置 C = 4 和 U = 4。我们使用了不同数量的头、令牌维度和层数,如表2所示。Transformer对内存需求很大,因此我们只能训练一个2层Transformer编码器模型而不会遇到OOM错误。这限制了特征交互的顺序为2,这很糟糕,因为我们的模型更喜欢更高阶的特征交互。我们不能减少batch大小以适应更多层,因为参与度指标与基线相比不够高。延迟和超参数的数量也使我们不再进一步探索这种架构。

5.3.2 FinalMLP

我们进行了实验,重点关注调整超参数,如层数、隐藏层的大小和头的数量,即 k。我们在 k 的较小值时遇到了OOM错误。尽管我们的模型更喜欢平行交互,但我们无法使用FinalMLP获得与基线相同的性能。随着我们增加潜在维度,内存使用和延迟都增加了,而性能却没有超过基线。这使我们得出结论,基线方法在学习特征交互方面比多头双线性融合技术要好得多。

5.3.3 GDCN

我们唯一需要调整的GDCN超参数是层数。我们在每个GDCN层中使用的参数数量大约是DCNv2的两倍。这限制了我们可以学习的交互顺序,因为参数使用的额外内存。我们知道我们的模型从更高阶的特征交互中受益,所以GDCN提供的门控并不有用。

5.3.4 Masknet

我们尝试了两种配置:顺序堆叠MaskNet层和并行运行它们。需要调整的关键超参数包括投影比率、块的数量和输出维度。在我们的实验中,我们使用投影比率 = 2.0 和输出维度 = 512,只调整了块的数量。我们知道我们的模型从平行特征交互和交互中的非线性中受益。两者结合,平行MaskNet层的表现超过了基线。

这带来了3个需要调整的超参数而不是一个,但这并不是很限制。我们使用这种架构大大增加了内存消耗和延迟,但模型质量的提高是值得的。

5.3.5 SDCNv3

我们将特征交互层中的4个堆叠DCNv2层替换为声称性能更好的堆叠SDCNv3层。我们堆叠了$ d \times d/2 $特征交叉层,并尝试改变层数。我们注意到,尽管SDCNv3提高了延迟,但它在我们的数据集上收敛得不好,从而降低了save@3的离线评估。我们相信这些特征交互层,如SDCNv3,需要广泛的超参数调整,以使模型性能与我们的基线模型相似,所以我们没有进一步探索它。

5.3.6 DeepLight

DeepLight使用轻量级交互层。为了使比较公平,我们扩大了DeepLight模型的MLP组件。尽管如此,模型无法像基线那样学习有用的表示。此外,我们注意到,该模型报告的延迟数字是在他们论文中指定的剪枝过程之前。我们没有调整所有所需的超参数进行他们指定的剪枝过程,因为未剪枝的模型性能远低于我们的基线。

5.3.7 DHEN

由于我们的模型更喜欢平行交互和更高阶的交互,我们尝试使用DHEN架构结合多个特征交互层。鉴于涉及的超参数数量庞大,在计算预算内进行广泛的搜索是不可行的。我们需要调整的超参数包括层数、每层中使用的具体交互、每层的输出大小,以及与Transformer中使用的类似的输入转换。表2显示了我们尝试的一些变体。配置呈现为列表的列表,其中第一个列表代表每层,第二个列表代表层内的交互。

我们注意到DCNv2层与平行MaskNet层的结合有很好的参与度指标增益。但是DHEN框架很笨重,因为它涉及在模型的每一层之间进行分割和连接。这导致不必要的GPU内存消耗和延迟。我们还遇到了模型稳定性问题,这使我们不再进一步追求这种架构。

5.4 结果

从表3中我们可以看到,运行多个MaskNet层并行实现了所有约束的良好权衡,除了延迟。为了降低模型的延迟,我们停止了在将特征交互层的输入和输出连接后传递给MLP层之前的操作。我们还减少了MLP中隐藏层的大小。这导致指标增益略有减少,与基线相比延迟总体减少。 由于我们知道模型更喜欢更高阶的特征交互,我们在平行MaskNet层之上堆叠了4个DCNv2层。我们调整了MaskNet模型的超参数,以实现延迟不增加和参数数量净零增加,同时只增加5%的绝对内存消耗,使我们能够使用相同的batch大小。我们还使用这种新架构进行了在线A/B测试,结果在表4中。最终配置有3个平行MaskNet块,投影比率为2.0,输出维度为512,如图2b所示。我们确认这种架构不会降低可复制性,并且在我们的任何运行中都没有观察到模型稳定性问题。

https://arxiv.org/pdf/2412.01985