一、FwFM [2018]

《Field-weighted Factorization Machines for Click-Through Rate Prediction in Display Advertising》

  1. CTR 预估所涉及的数据通常是 multi-field categorical data,这类数据具有以下特性:

    • 首先,所有的特征都是 categorical 的,并且是非常稀疏的,因为其中许多是 id 。因此,特征的总数很容易达到数百万或数千万。

    • 其次,每个特征都唯一地属于一个 field ,而且可能有几十到几百个 field

    下表是一个用于 CTR 预估的现实世界 multi-field categorical data set 的例子。

    multi-field categorical data 的特性对建立有效的机器学习模型进行 CTR 预测提出了几个独特的挑战:

    • 特征交互(feature interaction)是普遍存在的,需要专门建模。在和标签关联方面,特征拼接(feature conjunction)与单个特征不同。例如,nba.com 上展示的耐克广告的点击率,通常比所有网站上耐克广告的平均点击率、或 nba.com 上展示的所有广告的平均点击率高很多。这种现象在文献中通常被称为特征交互。

    • 来自一个 field 的特征往往与来自其他不同 field 的特征有不同的交互。例如,我们观察到,来自 field GENDER 的特征通常与 field ADVERTISER 的特征有很强的交互,而它们与 field DEVICE_TYPE 的特征交互却相对较弱。这可能是由于具有特定性别的用户更偏向于他们正在观看的广告,而不是他们正在使用的设备类型。

    • 需要注意潜在的高模型复杂性。由于实践中通常有数以百万计的特征,模型的复杂性需要精心设计和调整,以适应模型到内存中。

    为了解决这些挑战的一部分,研究人员已经建立了几个解决方案,Factorization Machine: FMField-aware Factorization Machine: FFM 是其中最成功的:

    • FM 通过将 pairwise 特征交互的影响建模为两个 embedding 向量的内积来解决第一个挑战。然而, field 信息在 FM 中根本没有被利用。

    • 最近,FFM 已经成为 CTR 预估中表现最好的模型之一。FFM 为每个特征学习不同的 embedding 向量,从而用于当特征与其他不同 field 的特征进行交互。通过这种方式,第二个挑战被显式地解决了。然而,FFM 的参数数量是特征数量乘以 field 数量的数量级,很容易达到数千万甚至更多。这在现实世界的生产系统中是不可接受的。

    在论文 《Field-weighted Factorization Machines for Click-Through Rate Prediction in Display Advertising》 中,作者引入了 Field-weighted Factorization Machines: FwFM 来同时解决所有这些挑战。论文贡献:

    • 经验表明,不同的 field pairslabel 的关联程度明显不同。按照同样的惯例,论文称它为 field pair interaction

    • 基于上述观察,论文提出了 Field-weighted Factorization Machine: FwFM 。通过引入和学习 field pair weight matrixFwFM 可以有效地捕获 field pair interaction 的异质性。此外,FwFM 中的参数比 FFM 中的参数少几个数量级,这使得 FwFM 成为现实世界生产系统中的首选。

    • FwFM 通过用 embedding vector representation 取代线性项的 binary representation 而得到进一步的增强。这种新的处理方法可以有效地帮助避免过拟合,提高预测性能。

    • 论文在两个真实世界的 CTR 预估数据集上进行了综合实验,以评估 FwFM 与现有模型的性能。实验结果表明:FwFM 仅用FFM4% 的参数就能达到有竞争力的预测性能。当使用相同数量的参数时,FwFMFFMAUC 提升了 0.9%

1.1 模型

  1. 假设有 munique 特征 {f1,,fm},以及 n 个不同的 fields {F1,,Fn} 。每个特征 fi 仅属于一个 field,记做 F(i)

    给定数据集 S={y(s),x(s)}s=1N ,其中: y(s){1,1}label 表示是否点击; x(s){0,1}m 为二元特征向量,xi(s)=1 表示特征 fiactive 的。

    例如,假设有两个 field :性别、学历,那么 n=2 。假设有六个特征:f1=,f2=,f3=,f4=,f5=,f6= ,那么 f1,f2 属于性别这个 fieldf3f6 属于学历这个 field,它们的取值都是 01

    • LR 模型为:

      minwλw22+s=1Nlog(1+exp(y(s)ΦLR(w,x(s))))

      其中:λ 为正则化系数,w 为模型权重,ΦLR(w,x)=w0+i=1mxiwi

      注意,因为这里将 label 取值空间设为 {1, -1} 而不是 {1, 0} ,因此这个损失函数与交叉熵不同,而是指数损失函数。

    • Poly2:然而,线性模型对于诸如 CTR 预估这样的任务来说是不够的,在这些任务中,特征交互是至关重要的。解决这个问题的一般方法是增加 feature conjunction 。已有研究表明,Degree-2 Polynomial: Poly2 模型可以有效地捕获特征交互。Poly2 模型考虑将 ΦLR 替换为:

      ΦPoly2(w,x)=w0+i=1mxiwi+i=1mj=i+1mxixjwh(i,j)

      其中:h(i,j) 是一个哈希函数,它将 ij 哈希到位于哈希空间 H 中的一个自然数,从而减少参数规模。否则,模型中的参数数量将达到 O(m2) 的数量级。

    • FMFactorization Machine: FM 为每个特征学习一个 embedding 向量 viRK ,其中 K 为一个小的整数(如 K=10 )。FM 将两个特征 ij 之间的交互建模为它们相应的 embedding 向量 vivj 之间的内积:

      ΦFM((w,v),x)=w0+i=1mxiwi+i=1mj=i+1mxixj<vi,vj>

      其中:<,> 为向量的内积。

      在涉及稀疏数据的应用中(如 CTR 预估),FM 的表现通常优于 Poly2 模型。原因是,只要特征本身在数据中出现的次数足够多,FM 总能为每个特征学习到一些有意义的 embedding 向量,这使得内积能很好地估计两个特征的交互效应(interaction effect),即使两个特征在数据中从未或很少一起出现。

    • FFM:然而,FM 忽略了这样一个事实:当一个特征与其他不同 field 的特征交互时,其行为可能是不同的。Field-aware Factorization Machines: FFM 通过为每个特征(如 i )学习 n1embedding 向量来显式地建模这种差异,并且只使用相应的 embedding 向量 vi,F(j) 与来自 field F(j) 的另一个特征 j 交互:

      ΦFM((w,v),x)=w0+i=1mxiwi+i=1mj=i+1mxixj<vi,F(j),vj,F(i)>

      虽然 FFMFM 有明显的性能改进,但其参数数量是 O(mnK) 的数量级。在现实世界的生产系统中,FFM 的巨大参数数量是不可取的。因此,设计具有竞争力的和更高内存效率的替代方法是非常有吸引力的。

  2. field pair 的交互强度:我们特别感兴趣的是,在 field level ,交互强度是否不同。即,不同 feature pair 的平均交互强度是否不同。这里的平均交互强度指的是:给定一个 field pair,它包含的所有 feature pair 的平均交互强度。

    例如,在CTR 预估数据中,来自 field ADVERTISER 的特征通常与来自 field PUBLISHER 的特征有很强的交互,因为 advertiser 通常针对一群有特定兴趣的人,而 PUBLISHER 的受众自然也是按兴趣分组的。另一方面, field HOUR_OF_DAY 的特征往往与 field DAY_OF_WEEK 的特征没有什么交互,这不难理解,因为凭直觉,它们的交互对点击量没有什么贡献。

    为了验证 field pair interaction 的异质性,我们使用 field pair (Fk,Fl) 和标签变量 Y 之间的互信息来量化 field pair 的交互强度:

    MI((Fk,Fl),Y)=(i,j)(Fk,Fl)yYp((i,j),y)logp((i,j),y)p(i,j)p(y)

    其中:

    • p(i,j) 表示所有样本中,特征 fi=1 且特征 fj=1 的概率。

    • p(y) 表示所有样本中, y=1 的概率。

    • p((i,j),y) 表示所有样本中,特征 fi=1 且特征 fj=1y=1 的概率。

    下图是每个 field pair 和标签之间的互信息的可视化,由 Oath CTR 数据计算得出。不出所料,不同 field pair 的交互强度是相当不同的。一些 field pair 有非常强的交互,如 (AD_ID,SUBDOMAIN)(CREATIVE_ID,PAGE_TLD),而其他一些 field pair 有非常弱的交互,如 (LAYOUT_ID,GENDER)(Day_OF_WEEK,AD_POSITION_ID)

    虽然分析结果并不令人惊讶,但我们注意到,现有的模型都没有考虑到这种 field level interaction 的异质性 。这促使我们建立一个有效的机器学习模型来捕获不同 field pair 的不同交互强度。

  3. FwFM:我们提出对不同 field pair 的不同交互强度进行显式的建模,其中 feature pair (i,j) 的交互被建模为:

    xixj<vi,vj>rF(i),F(j)

    其中:rF(i),F(j)R 是用于建模 field pair (F(i),F(j)) 之间交互强度的权重。

    核心要点:在 FM 基础上乘以 rF(i),F(j) 。实现简单,效果好。

    进一步地,我们是否可以在 field 的概念之上继续遵循这种做法。比如,可以把 field 进行分组:用户年龄、性别等等 field 是一组,item 类别、品牌等等是另一组、用户历史行为序列是其它一组,然后设定 field group 的权重:

    xixj<vi,vj>rF(i),F(j)×rG(i),G(j)

    其中 rG(i),G)jfield group 之间的权重。

    我们将得到的模型称为 Field-weighted Factorization Machine: FwFM

    • 模型复杂度:FM 的参数数量为 m+mK ,其中 m 为线性部分的参数数量,mKembedding 向量的参数数量。FwFM 使用了额外的 n(n1)/2 个参数用于每个 field pair,因此总的参数数量为 m+mK+n(n1)/2 。相比之下,FFM 的参数数量为 m+m(n1)K ,因为每个特征有 n1embedding 向量。

      考虑到通常 nm ,因此 FwFM 的参数与 FM 相当,显著少于 FFM

    • 线性项:我们认为,embedding 向量 vi 捕获到关于特征 i 的更多信息,因此我们提出使用 xivi 来在线性项中代表每个特征。

      我们为每个特征学习一个线性权重 wi ,因此 FwFM 的线性项变为:

      i=1mxi<vi,wi>

      这需要 mK 个参数。因此,FwFM 的总参数数量为 2mK+n(n1)/2 ,记做 FwFM_FeLV

      这相当于为每个特征学习两个 embeddingembedding vi 用于建模特征交互,embedding wi 用于建模线性项。好处有两个:

      • 首先,这种方法的表达能力更强。

      • 其次,实现起来更简单。原始的线性项需要把特征表示成 sparse 形式从而节省内存和计算量(大量的零存在),在实现的时候需要特殊的逻辑(稀疏张量的转换和计算)。而这里直接用 embedding lookup,与现有的逻辑保持一致。

      或者,我们为每个 field 学习一个线性权重 wF(i) ,此时线性项变为:

      i=1mxi<vi,wF(i)>

      此时总的参数数量为 nK+mK+n(n1)/2 ,记做 FwFM_FiLV

      这相当于为每个 field 学习一个 embedding

      原始线性权重的 FwFM 记做 FwFM_LW

      或者我们是否可以用 wi=s=1dvi,d 来作为权重?这相当于将 wF(i) 固定为全 1 的向量,一定程度上降低了参数规模同时缓解过拟合。原因如下:考虑 <vi,wi>+<vi,vj>+<vj,wj> ,如果 v 放大 10 倍、w 缩小 10 倍,则结果完全相同。因此这种方式的自由度太大,需要打破这种对称性,例如: <vi,1>+<vi,vj>+<vj,1> ,此时 v 方法或缩小会完全影响最终结果。

      在后面的实验部分,确实发现参数更少的 FwFM_FiLV 的测试 AUC 更高。那么是否 wF(i) 固定为全 1 的向量时效果还要好?

1.2 实验

  1. 数据集:

    • Criteo CTR 数据集:我们将数据按 60%: 20%: 20% 随机分成训练集、验证集和测试集。

    • Oath CTR 数据集:我们使用两周的点击日志作为训练集,下一天的数据作为验证集、下下一天的数据作为测试集。

      对于 Oath CTR 数据集,正样本的比例通常小于 1% 。我们对负样本进行降采样,使正负样本更加平衡。对验证集和测试集不做降采样,因为评估应该在反映实际流量分布的数据集上进行。

    对于这两个数据集,我们过滤掉所有在训练集中出现少于 τ 次的特征,用一个 NULL 特征代替,其中 τCriteo 数据集中被设置为20 ,在 Oath 数据集中为10

    这两个数据集的统计数字如下表所示:

  2. 实现:我们使用 LibLinear来训练 Poly2 ,并使用哈希技巧将 feature conjunctions 哈希到 107 的哈希空间。所有其他的模型都在 Tensorflow 中实现。TensorflowFwFM 的结构如下图所示。

    输入是一个稀疏的二元向量 xRm,只有 n 个非零项,因为有 nfield 。对每个样本而言每个 field 都有一个且只有一个活跃的特征。

  3. FwFM 和已有模型的比较:我们评估了带原始线性项的 FwFM ,即 FwFM_LW 。对于所有的超参数,我们在验证集上进行调优,然后在测试集上进行评估。可以看到:

    • 在两个数据集上,FwFM 都能取得比 LRPoly2FM 更好的性能。这种改进来自于 FwFM 显式地建模了 field pair 的不同交互强度。

    • FFM 总是在验证集和测试集上获得最佳性能。然而,FwFM 的性能相比 FFM 具有相当的竞争力。

  4. FwFMFFM 在具有相同参数规模的情况下的比较:

    FFM的一个关键缺点是其参数数量在 O(mnK) 的规模。有两种解决方案可以减少 FFM 的参数数量:使用较小的 K 、或者使用哈希技巧(具有较小的哈希空间 H )。《Field-aware factorization machines in a real-world online advertising system》 提出对 FFM 使用较小的 KFFM=2 ,以及通过使用较小的哈希空间 HFFM 从而将参数规模进一步减少到 O(nmFFMKFFM)

    这里我们通过选择合适的 KFFMHFFM ,使得 FFMFwFM 的参数数量相同。我们不计算线性项的参数,因为它们与交互项的数量相比可以忽略。我们选择 KFwFM=10KFFM=2 以及 KFFM=4 。实验结果如下表所示。可以看到:当使用相同数量的参数时,FwFMCriteoOath 数据集的测试集上得到更好的表现,提升幅度分别为 0.70%0.45%

  5. 具有不同线性项的 FwFM:下表给出了不同线性项的 FwFM 的性能。可以看到:

    • FwFM_LWFwFM_FeLV 在训练和验证集上比 FwFM_FiLV 能取得更好的性能。原因是这两个模型的线性项(mmK )比FwFM_FiLVnK )有更多的参数,所以它们能比 FwFM_FiLV 更好地拟合训练集和验证集。

    • 然而,FwFM_FiLV 在测试集上得到了最好的结果,这表明它有更好的泛化性能。

    • 此外,当我们使用相同数量的参数将 FwFM_FiLVFFM 进行比较时,在Oath 数据集和Criteo 数据集上的AUC 提升分别为0.92%0.47%

  6. 超参数调优:以下所有的评估都是 FwFM_FiLV 模型在 Oath 验证集上进行的。

    • L2 正则化系数 λ :如 Figure3 所示,λ=105 在验证集上得到最好的性能。

      正则化系数作用于所有的 parameters

    • 学习率 η:如 Figure4 所示,我们选择 η=104

    • embedding 维度 K :如下表所示,我们选择 K=10

  7. 学到的 field 交互强度:这里我们比较了 FMFFMFwFM 在捕获不同 field pair 的交互强度方面的能力。我们的结果表明,由于 field pair 交互权重 rFk,Fl 的存在,FwFM 可以比 FMFFM 更好地建模交互强度。

    field pair 的交互强度通过互信息( field pair 和标签之间的互信息 MI((Fk,Fl),Y) )进行量化,并在 Figure 5(a) 中通过热力图进行了可视化。

    为了衡量学到的 field 交互强度,我们定义了以下指标:

    (i,j)(Fk,Fl)I(i,j)×#(i,j)(i,j)(Fk,Fl)#(i,j)

    其中:

    • #(i,j)feature pair (i,j) 在训练数据中出现的次数。

    • I(i,j)feature pair (i,j) 学到的交互强度。

      • 对于 FMI(i,j)=|<vi,vj>|

      • 对于 FFMI(i,j)=|<vi,Fl,vj,Fk>|

      • 对于 FwFMI(i,j)=|<vi,vj>×rFk,Fl|

    注意,我们将内积项的绝对值相加,否则正值和负值会相互抵消。

    如果一个模型能够很好地捕捉到不同 field pair 的交互强度,我们期望其学习到的 field 交互强度接近于互信息 MI((Fk,Fl),Y) 。为了便于比较,我们在 Figure 5 中以热力图的形式绘制了由 FM, FFM, FwFM 学到的field 交互强度,以及 field pair 和标签之间的互信息 MI((Fk,Fl),Y)。我们还计算了皮尔逊相关系数,以定量地衡量所学到的 field 交互强度与互信息的匹配程度。

    • Figure 5(b) 中我们观察到:FM 学到的交互强度与互信息完全不同。这并不奇怪,因为 FM 在建模特征交互强度时没有考虑 field 信息。

    • Figure 5(c) 中我们观察到:FFM 能够学习与互信息更相似的交互强度。

    • Figure 5(d) 中我们观察到:FwFM 学到的交互强度的热力图与互信息的热力图非常相似。

    为了了解权重 rFk,Fl 在建模 field pair 的交互强度方面的重要性,我们在 Figure 6 中绘制了 rFk,Fl 的热力图,以及没有 rFk,FlFwFM (退化回 FM )的学到的 field 交互强度。可以看到: rFk,Fl 的热力图与 Figure 5(a) 的互信息热力图、Figure 5(d)FwFM 学到的 field 交互强度都非常相似。这意味着 rFk,Fl 确实可以学到不同 field pair 的不同交互强度。