背景

点击率预测在真实世界的商业推荐系统和在线广告系统中一直是一项至关重要的任务。它的目的是预测某个用户点击推荐项物品(如电影、广告)的概率。CTR预测的标准输入主要由一组组织为特征字段的分类特征组成。例如,在CTR预测中,每个样本包含一个特征字段性别,字段性别可能包括男性、女性和未知三个特征值。原文链接

点击率预测(CTR)模型将特征转换为潜在向量,并枚举可能的特征交互作用以改进性能,基于输入特征集。因此,在选择最佳特征集时,我们应考虑特征和它们之间交互的影响。但是,大多数先前的工作都集中在特征字段选择或仅根据固定特征集选择特征交互方面进行研究。前者将搜索空间限制在特征字段上,这太粗略了,无法确定微妙的特征。他们也没有过滤无用的特征交互,导致计算成本更高,模型性能降低。后者从所有可用特征中识别有用的特征交互,导致特征集中存在许多冗余特征。在这篇论文中,我们提出了一种名为OptFS的新方法来解决这些问题。为了统一特征和它们之间的选择,我们将每个特征交互的选择分解为两个相关特征的选择。这种分解使得模型可通过各种特征交互操作进行端到端训练。通过采用特征级别的搜索空间,我们设置一个可学习门,以确定每个特征是否应包含在特征集中。由于搜索空间很大,我们开发了一种学习-继续训练方案来学习这些门。因此,OptFS生成特征集,其中包含可提高最终预测结果的特征。在实验上,我们在三个公共数据集上评估OptFS,并证明它可以优化特征集,从而提高模型性能并进一步降低存储和计算成本。

引言

点击率预测一直是现实世界中商业推荐系统和在线广告系统中的关键任务。它旨在预测某个特定用户点击推荐项目(例如电影、广告)的概率。CTR预测的标准输入主要由大量分类特征组成,以特征字段的形式组织。例如,在CTR预测中,每个样本都包含一个性别特征字段,该字段可能包含三个特征值:男、女和未知。为避免歧义,我们将特征值以下简称为特征。

通常CTR预测模型首先通过嵌入表将特征集中的每个特征映射到唯一的实值密集向量上。然后,这些向量被馈送到特征交互层,通过枚举特征集明确建模低阶特征交互来提高预测效果。分类器的最终预测基于特征嵌入和特征交互,这两者都受输入特征集的重要影响。通用框架如图1所示。因此,输入特征集在CTR预测中扮演着重要角色。

image-20230520151935935

盲目地将所有可用特征输入到特征集中既不是有效的,也不是高效的。从有效性的角度来看,某些特征可能对模型性能有害。首先,这些特征本身可能只引入可学习参数,使预测模型容易出现过拟合。其次,某些无用的交互由这些特征引入,还会带来不必要的噪声并使训练过程变得复杂,这会降低最终的预测结果。请注意,在选择特征集时,这两个因素密切相关。如果将一个特征x𝑖从集合中过滤出去,则相关的所有交互也应在模型中排除。相应地,有信息量的交互$$是保留x𝑖在特征集中的强有力指标。从效率的角度来看,将冗余特征引入特征集可能在存储空间和计算成本方面效率低下。由于嵌入表在CTR模型中占主导地位,没有冗余特征的特征集将大大减少模型的大小。此外,具有有用特征的特征集可以使许多无用特征交互的计算为零,从而在实践中大大减少计算成本。一个最佳的特征集应该同时考虑有效性和效率

本文提出了一种名为OptFS的方法,用于解决搜索最佳特征集的问题。我们的OptFS面临两个主要挑战。第一个挑战是如何联合选择特征及其交互,给定各种特征交互操作。如上所述,最佳特征集应该排除在模型中引入无用交互的特征。我们通过将每个特征交互的选择分解为两个相关特征的选择来解决这个挑战。因此,OptFS减少了特征交互的搜索空间,并通过各种特征交互操作对模型进行端到端训练。第二个挑战是大规模数据集中的特征数。请注意,我们研究考虑的可能特征数可以达到10^6,这比之前的工作中使用的100个特征字段要大得多。为了在庞大的搜索空间中进行导航,我们为每个特征引入一个可学习门,并采用学习-继续训练(learning-by-continuation)的训练方案。我们的主要贡献总结如下:

  • 本文首先区分了最佳特征集问题,它聚焦于特征级别,并考虑了特征和特征交互的有效性,提高模型性能和计算效率。
  • 我们提出了一种名为OptFS的新方法来优化特征集。OptFS采用高效的学习-继续训练方案,以端到端方式训练预测模型和特征交互操作。
  • 我们在三个大规模公共数据集上进行了广泛的实验。实验结果表明,所提出的方法具有高效性和有效性。

方法

Problem Formulation

在本小节中,我们提供了特征集优化问题的公式化表述。在CTR模型中,通常认为对准确预测有用的特征是有用的。在我们的设置中,将所有可能的特征表示为$X = {x1, x_2, · · · , x𝑚}$。$x_i$是一种one-hot表示,非常稀疏和高维的。正如先前讨论的,特征集优化问题旨在从所有可能的特征中确定有用的特征,这可以定义为找到最佳特征集$X^g ⊂ X$。这可以表示如下:

image-20230520153440234

Feature Selection

首先定义$z_t$为特征字段,可以看做是某一组特征的集合。

这表明字段和特征之间的关系是一对多映射。在实际中,字段数𝑛远小于特征数𝑚。例如,在线广告系统通常有$𝑛≤100$且$𝑚 ≈ 10^6$。因此,从特征和字段的角度来看,CTR模型的输入可以重写为:

其中第二个等号表示对于输入z,字段$z𝑖$的相应特征为$x{𝑘𝑖}$,如公式所示。通常,我们使用嵌入表将$z𝑖$转换为低维和密集的实值向量。这可以表示为$e𝑖 = E × z𝑖 = E × x{𝑘𝑖},1≤𝑖≤𝑛,1≤𝑘𝑖≤𝑚$,其中$E∈R^{𝑚×D}$是嵌入表,𝑚是特征值的数量,𝐷是嵌入的大小。然后将嵌入堆叠在一起形成一个嵌入向量$\text{e}=[e_1,e_2,⋯,e𝑛]$。在我们的工作中,我们提出特征级别选择。我们不是进行字段级别的选择,而是将选择定义为为每个特征嵌入$e{𝑘𝑖}$分配一个二进制门$g{𝑘𝑖}∈{0,1}$。选择后,可以将特征嵌入表示为:

当$g{𝑘𝑖} = 1$时,代表该特征$x{𝑘𝑖}$在最佳特征集$X^g$中,反之则不在。请注意,先前的工作分配字段级别的特征选择。这意味着对于每个字段$𝑧𝑖,g{𝑘𝑖}≡g𝑖∈{0,1}$,表示保留或丢弃相应字段中所有可能的特征{$x{𝑘𝑖}$}。然后,将这些嵌入堆叠在一起形成一个特征选择的嵌入向量$e^𝑔=[e^g{𝑘_1},e^g{𝑘2},⋯,e^g{𝑘_𝑛}]$。最终的预测可以表示为

上式中,$g \in {0,1}^m$是一个门向量,代表最后是否选择该特征,$E^g = g \odot \times E$表示选择后的特征经过embedding后的表达。

Feature Interaction Selection

特征交互选择旨在选择有益的特征交互以进行显式建模。主流CTR模型中的特征交互层将基于e执行。先前的研究中存在几种类型的特征交互,例如内积。之后通过某种方式将特征从嵌入空间到特征交互空间进行转换。最后进行预测,主流模型中转换函数G(·)、特征交互方式O(·)和预测函数H(·)的组合如表1所示。

在现实中,探索所有可能的特征交互的一种直接方法是引入一个特征交互矩阵${g’{(𝑘𝑖, 𝑘𝑗)}}$来表示2阶特征交互${x{𝑘𝑖}, x{𝑘𝑗}}$。但是这是不可能的,因为我们将会有$C^2_m ≈ 10^{12}$个门变量。为了高效地缩小如此庞大的空间,先前的工作将搜索空间限制在特征字段交互上,将变量数量减少到$C^2_n ≈ 1000$。可以将其表述为$g’(𝑖,𝑗)≡g’(𝑘𝑖,𝑘_𝑗)$。然而,这种松弛可能无法区分同一字段内有用和无用特征交互之间的差异。因为已经证明,特征之间的信息交互往往来自于信息低阶交互,所以我们将特征交互分解如下:

这表明,仅当两个特征都是有用的时,特征交互才被认为是有用的。如图2所示,对分解进行了说明。因此,最终预测可以表示为:

这意味着,选择特征的门控向量g也可以根据O(·)选择特征交互。这种设计可以减少搜索空间,并以端到端的方式获取最佳特征集。

Learning by Continuation

尽管在第上节中,搜索空间已经从$C^2_m + m$缩小到了$m$,但我们仍需要确定是否保留特征集中的每个特征。这可以表示为一个l0规范化问题。然而,二元门控向量𝑚很难计算有效梯度。此外,l0优化被认为是一个NP难问题。为了高效地训练整个模型,我们引入了一个连续学习训练方案。这种训练方案已被证明是逼近$L_0$规范化的有效方法,与我们的目标相关。learning-by-continuation方案由两部分组成:确定门控向量g的搜索阶段和确定嵌入表$e$和其他参数$W$的倒带阶段。我们将分别在以下几节中介绍它们。

Searching

为了高效地优化具有特征级别粒度的特征集,我们引入一个连续门$g_𝑐∈R^𝑚$。在搜索阶段,我们引入一个指数增加的温度值$𝜏$来逼近$L_0$规范化。具体而言,实际门控g计算如下:

其中,$g^{(0)}_c$是连续门控向量$g_c$的初始值, $σ$是作用在每个元素上的sigmoid函数$σ(x)=1/(1+e^{-x})$, t是当前的训练epoch数,T是总的训练epoch数,$γ$是训练T epoch后$𝜏$的最终值。这样可以使得连续门控向量 $g_c$ 在早期阶段就可以收到有效的梯度,随着epoch数 t的增加而越来越逼近二元门控向量。上式的说明如图3(a)所示。

最终的损失函数采用的是改进的交叉熵:

改进版如下:

其中D是训练数据集,W是除了嵌入表E以外的网络参数。因此,最终的训练目标变成了:

其中,$\lambda$时正则惩罚项,$∥·∥_1$表示l1范数以鼓励稀疏性。这里我们重新将l0范数表示为l1范数,因为对于二元门控向量g而言$∥g∥_0=∥g∥_1$。

在训练T个epoch后,最终的门控向量g通过一个单位阶跃函数计算如下:

Retraining

在搜索阶段,所有可能的特征都被输入到模型中来探索最佳特征集$X^g$。因此,无用的特征可能会损害模型的性能。为了解决这个问题,在获得最佳特征集$X^g$之后,我们需要重新训练模型。确定门控向量g之后,我们将模型参数$E$和$W$重新训练为$𝑇_𝑐$ epoch时相应的值,该值在我们的设置中进行了精心调整。这是因为大多数CTR模型在几个epoch后就早停了,使得它们对初始化更加敏感,并容易过拟合。最终的参数E和W的训练如下:

整体的算法流程如下图:

结论

本文首先区分了特征集优化问题。这种问题统一了两个相互影响的问题:特征选择和特征交互。据我们所知,之前没有任何工作以统一的方式考虑这两个问题。此外,我们还将问题的粒度从字段级别升级到特征级别。为了高效地解决这个特征集优化问题,我们提出了一种名为OptFS的新方法,为每个特征分配一个门控值来确定其有用性,并采用连续学习方法进行高效优化。对三个大型数据集进行的广泛实验表明了OptFS在模型性能和特征减少方面的优越性。多项消融研究也说明了我们设计的必要性。此外,我们还解释了特征字段及其交互的结果,突显了我们的方法如何妥善解决特征集优化问题。