一、AutoDim [2021]

《AutoDim: Field-aware Embedding Dimension Search in Recommender Systems》

  1. 大多数现有的推荐系统为所有的 feature field 指定了固定的、统一的 embedding 维度,这可能会导致内存效率的降低。

    • 首先, embedding 维度往往决定了编码信息的能力。因此,为所有的 feature field 分配相同的维度可能会失去 highly predictive 特征的信息,而将内存浪费在 non-predictive 特征上。因此,我们应该给 highly informativehighly predictive的特征分配一个大的维度,例如,location-based 的推荐系统中的 "location" 特征。

    • 其次,不同的 feature field 有不同的 cardinality (即 unique value 的数量)。例如,性别特征只有两个(即 malefemale ),而 itemID 特征通常涉及数百万个 unique value 。直观而言,我们应该为具有较大 cardinalityfeature field 分配较大的维度从而编码它们与其他特征的复杂关系,并为具有较小 cardinalityfeature field 分配较小的维度从而避免由于过度参数化而产生的过拟合问题。

    根据上述原因,我们非常希望能以一种 memory-efficient 的方式为不同的 feature field 分配不同的 embedding 维度。

    在论文 《AutoDim: Field-aware Embedding Dimension Search in Recommender Systems》 中,作者的目标是为不同的 feature field 提供不同的 embedding 维度从而用于推荐。但是这里面临着几个巨大的挑战:

    • 首先,embedding 维度、特征分布、以及神经网络架构之间的关系是非常复杂的,这使得我们很难为每个feature field 手动分配 embedding 维度。

    • 其次,现实世界的推荐系统往往涉及成百上千的feature field 。由于难以置信的巨大搜索空间(NMN 为每个feature field 的候选维数,Mfeature field 的数量)带来的昂贵的计算成本,很难为所有 feature field 人为地选择不同的维度。

    作者试图解决这些挑战,从而得到一个端到端的可微的 AutoML-based 框架(AutoDim ),它可以通过自动化的、数据驱动的方式有效地分配 embedding 维度给不同的 feature field

    论文主要贡献:

    • 作者发现了将variousembedding 维度分配给不同的 feature field 可以提高推荐性能的现象。

    • 作者提出了一个 AutoML-based 的端到端框架 AutoDim ,它可以自动选择各种 embedding 维度到不同的 feature field

    • 作者在真实世界的 benchmark 数据集上证明了所提框架的有效性。

1.1 模型

  1. AutoDim 是一个 AutoML-based 框架,它可以为不同 feature field 自动分配不同的 embedding 维度。框架如下图所示,其中包括维度搜索阶段、参数重训练阶段。

    AutoDim 的思想和 AutoEmb 类似,也是为每个 id 分配 N 个候选的 embedding size,然后用强化学习进行择优。但是,AutoDim 相对容易落地,因为 AutoDim 本质上是寻找每个词表的最佳维度,是一个超参数调优工具,找到最佳维度之后应用到目标模型中。二者不同的地方:

    • AutoEmb 使用 popularity 信息作为特征来获得筛选概率,而 AutoDim 仅依靠特征本身的 embedding 来获得筛选概率。

    • AutoDim 有一个重训练阶段。实际上也可以在 AutoEmb 中引入重训练。

  1. Embedding Lookup:对于每个 user-item 交互样本,我们有 M 个输入特征 (x1,,xM) ,每个特征 xm 属于一个特定的 feature field ,如性别、年龄等等。对于第 mfeature field,我们分配了 N 个候选的 emebdding 空间 {Xm1,,XmN} ,这些 embedding 空间的维度分别为 d1,,dN ,其中 d1<<dN 。这些 embedding 空间的 cardinality 是该 feature fieldunique feature value 的数量。

    相应地,我们定义 {xm1,,xmN} 为给定特征 xm 在所有 embedding 空间的候选 embedding 的集合,如下图所示。因此,分配给特征 xm 的总空间的维度是 n=1Ndn。注意,为了简单起见,我们给所有的 feature field 分配相同的候选维度集合,但引入不同的候选集合是很直接的。

  2. 统一各种维度:由于现有的 DLRS 中第一层 MLP 的输入维度通常是固定的,所以它们很难处理各种候选维度。因此,我们需要将 embedding 向量 {xm1,,xmN} 统一为同一维度。下图给出了处理方法,其中我们引入了 N 个全连接层,将 embedding 向量 {xm1,,xmN} 转换为相同的维度 dN

    x~mnWnxmn+bn,1nN

    其中:WnRdn×dN 为权重向量,bnRdNbias 向量。对于不同的feature field ,所有具有相同维度的候选 embedding 都共享相同的权重矩阵和 bias 向量,这可以减少模型参数的数量。

    过线性变换,我们将原始 embedding 向量 {xm1,,xmN} 映射到同一维度的空间,即 {x~m1,,x~mN}RdN 。在实践中,我们可以观察到,转换后的 embedding {x~m1,,x~mN} 的幅度(magnitude)方差很大,这使得它们变得不可比 incomparable 。为了解决这一难题,我们对转换后的嵌入进行 BatchNorm

    x^mnx~mnμBn(σBn)2+ϵ,1nN

    其中:μBnx~mnmini-batch 的均值,(σBn)2x~mnmini-batch 的方差,ϵ 为一个小的正数从而用于数值稳定性。

  3. Dimension Selection:我们通过引入 Gumbel-softmax 操作,对不同维度的 hard selection 进行了近似处理(因为 hard selection 是不可微的)。具体而言,假设权重 {αm1,,αmN} 是不同维度上的概率。那么,可以通过 Gumbel-max 技巧得到一个 hard selection z ,即:

    z=one-hot(argmax1nN[gn+logαmn])gn=log(logun),unU(0,1)

    其中:U(0,1)0-1 之间的均匀分布,{gn}n=1N 为独立同分布的 gumbel 噪声(用于扰动 logαmn ,使得 argmax 操作等价于通过 {αmn}n=1N 权重来采样)。

    然而,由于 argmax 操作,这个技巧是不可的。为了解决这个问题,我们使用 softmax 函数作为 argmax 操作的连续的、可微的近似,即 gumbel-softmax

    pmn=exp(gn+logαmnτ)i=1Nexp(gi+logαmiτ)

    其中:

    • τ 是温度参数,它控制着 gumbel-softmax 操作的输出的平滑度。当 τ 接近零时,gumbel-softmax 的输出就会变得更接近于 ont-hot 向量。

    • pmn 是选择特征 xm 的第 n 个候选 embedding 维度的概率。

    为什么要用 gumble-softmax 操作?直接用 softmax 操作如何?作者并未说明原因。

    xmembedding xm 可以表述为 {x^m1,,x^mN} 的加权和(如下图所示):

    xm=n=1Npmn×x^mn,1mM

  4. 然后我们拼接所有特征的 embedding ,即 h0=[x1,,xM] ,然后将 h0 馈入 L 层的感知机:

    hl=σ(Wlhl1+bl),1lL

    其中:Wl,bl 为第 l 层感知机的权重和 biasσ() 为激活函数。

    感知机的输出馈入 output layer ,得到最终预测:

    y^=σ(WohL+bo)

    其中:Wo,booutput layer 的权重和 biasσ() 为激活函数。

    目标函数为负的对数似然:

    L(y^,y)=ylogy^(1y)log(1y^)

    其中:yground-truth

1.1.2 优化

  1. AutoDim 中需要优化的参数有两个方面:

    • WDLRS 的参数,包括 embedding 部分和 MLP 部分。

    • α={αmn}n=1N :不同 embedding 维度的权重。

    DLRS 参数 W 和权重 α 不能像传统的监督注意力机制那样在训练数据集上同时进行优化,因为它们的优化高度依赖于彼此。换句话说,同时对训练数据集进行优化可能会导致模型对训练数据集的样本过拟合。

    受可微分架构搜索(differentiable architecture search: DARTS )技术的启发, W 和权重 α 通过梯度下降交替优化。具体而言,我们通过优化训练数据上的损失 Ltrain 来更新 W 、通过优化验证数据上的损失 Lval 来更新 α

    minαLval(W,α)s.t.W=argminWLtrain(W,α)

    这种优化形成了一个 bilevel 的优化问题,其中权重 αDLRS 参数 W 被确定为外层变量和内层变量。由于内层变量 W 的优化成本太高,因此我们利用了 DARTS 的近似方案:

    W=argminWLtrain(W,α)WξWLtrain(W,α)

    其中:ξ 为学习率。

    在近似方案中,当更新 α 时,我们通过单步的梯度下降来估计 W ,而不是彻底优化 W=argminWLtrain(W,α)

    优化方法与 AutoEmb 完全相同。

  2. AutoDimDARTS based 优化算法:

    • 输入:特征 (x1,,xM)ground-truth label y

    • 输出:训练好的 DLRS 参数 W ,训练好的权重 α

    • 算法步骤:

      迭代直到收敛,迭代步骤为:

      • 从验证数据集中采样一个 mini-batch 的数据。

      • 通过 αLval(W,α) 来更新 α ,其中 WWξWLtrain(W,α)

      • 收集一个 mini-batch 的训练数据。

      • 基于当前的 Wα 来生成预测 y^

      • 通过 WLtrain(W,α) 来更新 W

1.1.3 参数重训练

  1. 由于 dimensionality search 阶段的次优 embedding 维度也会影响模型的训练,所以希望有一个重训练阶段,只用最优维度训练模型,消除这些次优的影响。

  2. Deriving Discrete Dimensions:在重训练过程中,每个 feature field 的最佳 embedding 空间(维度)被选择为与最大权重相对应的维度:

    Xm=Xmk,k=argmax1nNαmn,1mM

    Figure 2(a) 给出了一个示例,红色箭头表示所选中的 embedding 维度。

  3. Model Re-training:给定所选的 embedding 空间,我们可以为特征 (x1,,xM) 获得 uniqueembedding 向量 (x1,,xM)。 然后将这些 embedding 拼接起来再馈入隐层。最后,DLRS 的所有参数,包括 embeddingMLP ,将通过反向传播使监督损失函数 L(y,y^) 最小化从而被更新。

    注意:

    • 现有的大多数深度推荐算法都是通过交互操作(如内积)来捕获 feature field 之间的交互。这些交互操作要求所有 fieldembedding 向量具有相同的尺寸。因此,被选中的 embedding 仍然被映射到相同的维度。

    • 在重训练阶段,不再使用 Batch-Norm 操作,因为每个 field 的候选 embedding 之间没有竞争。

  4. DLRS 重训练阶段的优化过程:

    • 输入:特征 (x1,,xM)ground-truth label y

    • 输出:训练好的 DLRS 参数 W

    • 算法步骤:

      迭代直到收敛,迭代步骤为:

      • 采样一个 mini-batch 的训练数据。

      • 基于当前的 W 来生成预测 y^

      • 通过 WLtrain(W) 来更新 W

1.2 实验

  1. 数据集:Criteo 。每个样本包含 13 个数值 feature field26categorical feature field

    我们按照 Criteo 竞赛获胜者的建议,将数值特征归一化:

    v={log(v)2, if v>2v, else 

    然后将数值特征进行分桶从而转换为 categorical feature

    我们使用 90% 的数据作为训练集/验证集(8:1 ),其余 10% 作为测试集。

  2. 实现细节:

    • DLRS

      • embedding 组件:在我们的 GPU 内存限制下,我们将最大的 embedding 维度设置为 32 。对于每个 feature field ,我们从 N=5 个候选 embedding 维度 {2, 8, 16, 24, 32} 中选择。

      • MLP 组件:我们有两个隐层,形状分别为 |h0|×128128×128,其中 |h0| 是第一个隐层的输入大小。|h0|=32×MM=39Criteo 数据集的 feature field 数量。我们对两个隐层使用 batch normalizationdropoutdropout rate = 0.2 )和 ReLU 激活。输出层为 128×1 ,采用 Sigmoid 激活函数。

    • α :第 mfeature field{αm1,,αmN} 是在一个可训练的、长度为 N 的向量上通过 softmax 激活来产生的。对于 Gumbel-Softmax ,我们使用退火温度 τ=max(0.01,10.00005×t) 用于,其中 ttraining step

    更新 DLRSα 的学习率分别为 0.0010.001batch size = 2000 。我们的模型可以应用于任何具有 embedding layer 的深度推荐系统。在本文中,我们展示了在著名的 FMW&D、以及 DeepFM 上应用 AutoDim 的性能。

  3. 评估指标:AUC, Logloss, Params

    Params 指标是该模型的 embedding 参数数量。我们省略了 MLP 参数的数量,因为 MLP 参数仅占模型总参数的一小部分。

  4. baseline 方法:

    • Full Dimension Embedding: FDE :所有的 feature field 分配了最大的候选维度,即 32

    • Mixed Dimension Embedding: MDE:参考论文 《Mixed Dimension Embeddings with Application to Memory-Efficient Recommendation Systems》

    • Differentiable Product Quantization: DPQ:参考 《Differentiable product quantization for end-to-end embedding compression》

    • Neural Input Search: NIS:参考 《Neural input search for large scale recommendation models》

    • Multi-granular quantized embeddings: MGQE:参考 《Learning Multi-granular Quantized Embeddingsfor Large-Vocab Categorical Features in Recommender Systems》

    • Automated Embedding Dimensionality Search: AEmb:参考 《AutoEmb: Automated Embedding Dimensionality Search in Streaming Recommendations》

    • Random Search: RaS:随机搜索是神经网络搜索的强大 baseline。我们应用相同的候选 embedding 维度,在每个实验时间随机分配维度到 feature field ,并报告最佳性能。

    • AD-s:它与 AutoDim 共享相同的架构,同时我们在同一 training batch 上以端到端反向传播的方式同时更新 DLRS 参数和 α ,即通过监督学习(而不是强化学习)来训练 AutoDim

  5. 实验结果如下表所示,可以看到:

    • FDE 实现了最差的推荐性能和最大的 Params ,其中 FDE 对所有 feature field 分配了最大的 embedding 维度 32 。这一结果表明,为所有 feature field 分配相同的维度,不仅内存效率低下,而且会在模型中引入许多噪音。

    • RaS, AD-s, AutoDimMDE, DPQ, NIS, MGQE, AEmb 表现得更好,这两组方法的主要区别在于:

      • 第一组方法旨在为不同的 feature field 分配不同的 embedding 维度,而相同 feature field 中的 embedding 共享同一维度。

      • 第二组方法试图为同一 feature field 中的不同特征取值分配不同的 embedding 维度,分配方式基于特征取值的popularity

      第二组方法具有几个方面的挑战:

      • 每个 feature field 都有许多 unique 值。例如,在 Criteo 数据集中,每个 feature field 平均有 2.7×104unique值。这导致每个 feature field 的搜索空间非常大(即使在分桶之后),这就很难找到最优解。而在 AutoDim 中,每个 feature field 的搜索空间为 N=5

      • 仅根据popularity(即一个特征取值在训练集中出现的次数)来分配维度可能会失去该特征的其他重要特性。

      • 在实时推荐系统中,特征取值的popularity通常是动态的,预先未知。例如,冷启动的 user/item

    • AutoDim 优于 RaSAD-s

      • AutoDim 在验证集的 mini-batch 上更新 α ,可以增强泛化能力。

      • AD-s 在同一训练集 mini-batch 上同时更新 αDLRS ,可能导致过拟合。

      • RaS 随机搜索维度,其中搜索空间很大。

      AD-sParamsAutoDim 大得多,这说明更大的维度能更有效地减少训练损失。

      因为 AD-s 是监督学习训练的,目标是最小化训练损失,最终筛选到的维度更大。而 AutoDim 是强化学习训练的,奖励是最小化验证损失,最终筛选到的维度更小。

    综上所述,与有代表性的 baseline 相比,AutoDim 取得了明显更好的推荐性能,并节省了 70%∼80%embedding 参数。这些结果证明了AutoDim 框架的有效性。

  6. 效率分析:本节研究了在 Criteo 数据集上对 DeepFM 应用搜索方法的效率(在一个 Tesla K80 GPU 上),如下图所示。可以看到:

    • 对于训练时间(图 (a)):

      • AutoDimAD-s 具有很快的训练速度,原因是它们的搜索空间比其他 baseline 小。

      • FDE 的训练速度最快,因为我们直接把它的 embedding 维度设置为 32 ,即没有搜索阶段。然而它的推荐效果是所有方法中最差的。

    • 对于推理时间(图 (b)):AutoDim 实现了最少的推理时间,因为 AutoDim 最终选择的推荐模型的 embedding 参数最少(即 Params 指标)。

  7. 超参数研究:除了深度推荐系统常见的超参数(如隐层的数量,由于篇幅有限,我们省略这种常规超参数的分析),我们的模型有一个特殊的超参数,即更新 α 的频率,简称为 f 。在 AutoDim 优化过程中,我们交替地在训练数据上更新 DLRS 的参数、在验证数据上更新 α 。在实践中,我们发现:更新 α 的频率可以低于更新 DLRS 的参数,这显然减少了大量的计算,也提高了性能。

    为了研究 f 的影响,我们研究了在固定其他超参数的情况下,随着 f 的变化,带有 AutoDimDeepFMCriteo 数据集上的表现如何。结果如下表所示,x 轴上,f=i 意味着更新一次 α ,然后更新 iDLRS 参数。

    • 从图 (a), (b) 可以看到,当 f=10 时,AutoDim 达到了最佳 AUC/Logloss 。换句话说,更新 α 过于频繁/不频繁会导致次优的性能。

    • 从图 (d) 可以看到,与设置 f=1 相比,设置 f=10 可以减少 50%∼ 的训练时间。

    • 从图 (c) 可以看到,较低的 f 会导致较低的 Params ,反之亦然。原因是 AutoDim 通过最小化验证损失来更新 α ,从而提高模型的泛化能力。

      • 当频繁更新 α 时(如 f=1),AutoDim 倾向于选择较小的 embedding size ,具有更好的泛化能力,同时可能存在欠拟合问题。

      • 而当不频繁地更新 α 时(如 f=20),AutoDim 倾向于选择较大的 embedding size ,在训练集上表现更好,但可能导致过拟合问题。

  8. 案例研究:这里我们研究 AutoDim 是否可以为更重要的特征分配更大的 embedding 维度。由于 Criteofeature field 是匿名的,我们在 MovieLens-1m 数据集上应用具有 AutoDimW&DMovieLens-1m 数据集有 M=8categorical feature fieldmovieId, year, genres, userId, gender, age, occupation, zip 。由于 MovieLens-1mCriteo 小得多,我们将候选 embedding 维度设定为 {2, 4, 8, 16}

    为了衡量一个 feature field 对最终预测的贡献,我们只用这个 field 建立一个 W&D 模型,训练这个模型并在测试集上评估。较高的 AUC 和较低的 Logloss 意味着该 feature field 更有 predictive

    然后,我们建立一个包含所有 feature field 的、全面的 W&D 模型,并应用 AutoDim 来选择维度。结果如下表所示:

    • 没有一个 feature field 被分配到 16 维的 embedding 空间,这意味着候选 embedding 维度 {2, 4, 8, 16} 足以覆盖所有可能的选择。

    • 对比每个 feature fieldW&DAUC/Logloss ,我们可以发现,AutoDim 为重要的(高预测性的) feature field 分配了较大的 embedding 维度,如 movieIduserId ,反之亦然。

    • 我们建立了一个 full dimension embedding: FDE 版本的 W&D ,其中所有的 feature field 都被分配为最大维度 16 。其表现为 AUC=0.8077, Logloss=0.5383 ,而带有 AutoDimW&D 的表现为 AUC=0.8113, Logloss=0.5242 ,并且后者节省了57%embedding 参数。

    总之,上述观察结果验证了 AutoDim 可以将更大的 embedding 维度分配给更 predictivefeature field