《Field-weighted Factorization Machines for Click-Through Rate Prediction in Display Advertising》
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: FM
和 Field-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 pairs
与 label
的关联程度明显不同。按照同样的惯例,论文称它为 field pair interaction
。
基于上述观察,论文提出了 Field-weighted Factorization Machine: FwFM
。通过引入和学习 field pair weight matrix
,FwFM
可以有效地捕获 field pair interaction
的异质性。此外,FwFM
中的参数比 FFM
中的参数少几个数量级,这使得 FwFM
成为现实世界生产系统中的首选。
FwFM
通过用 embedding vector representation
取代线性项的 binary representation
而得到进一步的增强。这种新的处理方法可以有效地帮助避免过拟合,提高预测性能。
论文在两个真实世界的 CTR
预估数据集上进行了综合实验,以评估 FwFM
与现有模型的性能。实验结果表明:FwFM
仅用FFM
的 4%
的参数就能达到有竞争力的预测性能。当使用相同数量的参数时,FwFM
比 FFM
的 AUC
提升了 0.9%
。
假设有 unique
特征 fields
field
,记做
给定数据集 label
表示是否点击; active
的。
例如,假设有两个
field
:性别、学历,那么。假设有六个特征: ,那么 属于性别这个 field
,属于学历这个 field
,它们的取值都是0
或1
。
LR
模型为:
其中:
注意,因为这里将
label
取值空间设为{1, -1}
而不是{1, 0}
,因此这个损失函数与交叉熵不同,而是指数损失函数。
Poly2
:然而,线性模型对于诸如 CTR
预估这样的任务来说是不够的,在这些任务中,特征交互是至关重要的。解决这个问题的一般方法是增加 feature conjunction
。已有研究表明,Degree-2 Polynomial: Poly2
模型可以有效地捕获特征交互。Poly2
模型考虑将
其中:
FM
:Factorization Machine: FM
为每个特征学习一个 embedding
向量 FM
将两个特征 embedding
向量
其中:
在涉及稀疏数据的应用中(如 CTR
预估),FM
的表现通常优于 Poly2
模型。原因是,只要特征本身在数据中出现的次数足够多,FM
总能为每个特征学习到一些有意义的 embedding
向量,这使得内积能很好地估计两个特征的交互效应(interaction effect
),即使两个特征在数据中从未或很少一起出现。
FFM
:然而,FM
忽略了这样一个事实:当一个特征与其他不同 field
的特征交互时,其行为可能是不同的。Field-aware Factorization Machines: FFM
通过为每个特征(如 embedding
向量来显式地建模这种差异,并且只使用相应的 embedding
向量 field
虽然 FFM
比 FM
有明显的性能改进,但其参数数量是 FFM
的巨大参数数量是不可取的。因此,设计具有竞争力的和更高内存效率的替代方法是非常有吸引力的。
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
field pair
的交互强度:
其中:
下图是每个 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
的不同交互强度。
FwFM
:我们提出对不同 field pair
的不同交互强度进行显式的建模,其中 feature pair
其中:field pair
核心要点:在
FM
基础上乘以。实现简单,效果好。 进一步地,我们是否可以在
field
的概念之上继续遵循这种做法。比如,可以把field
进行分组:用户年龄、性别等等field
是一组,item
类别、品牌等等是另一组、用户历史行为序列是其它一组,然后设定field group
的权重:其中
为 field group
之间的权重。
我们将得到的模型称为 Field-weighted Factorization Machine: FwFM
。
模型复杂度:FM
的参数数量为 embedding
向量的参数数量。FwFM
使用了额外的 field pair
,因此总的参数数量为 FFM
的参数数量为 embedding
向量。
考虑到通常 FwFM
的参数与 FM
相当,显著少于 FFM
。
线性项:我们认为,embedding
向量
我们为每个特征学习一个线性权重 FwFM
的线性项变为:
这需要 FwFM
的总参数数量为 FwFM_FeLV
。
这相当于为每个特征学习两个
embedding
:embedding
用于建模特征交互, embedding
用于建模线性项。好处有两个:
首先,这种方法的表达能力更强。
其次,实现起来更简单。原始的线性项需要把特征表示成
sparse
形式从而节省内存和计算量(大量的零存在),在实现的时候需要特殊的逻辑(稀疏张量的转换和计算)。而这里直接用embedding lookup
,与现有的逻辑保持一致。
或者,我们为每个 field
学习一个线性权重
此时总的参数数量为 FwFM_FiLV
。
这相当于为每个
field
学习一个embedding
。
原始线性权重的 FwFM
记做 FwFM_LW
。
或者我们是否可以用
来作为权重?这相当于将 固定为全 1
的向量,一定程度上降低了参数规模同时缓解过拟合。原因如下:考虑,如果 放大 倍、 缩小 倍,则结果完全相同。因此这种方式的自由度太大,需要打破这种对称性,例如: ,此时 方法或缩小会完全影响最终结果。 在后面的实验部分,确实发现参数更少的
FwFM_FiLV
的测试AUC
更高。那么是否固定为全 1
的向量时效果还要好?
数据集:
Criteo CTR
数据集:我们将数据按 60%: 20%: 20%
随机分成训练集、验证集和测试集。
Oath CTR
数据集:我们使用两周的点击日志作为训练集,下一天的数据作为验证集、下下一天的数据作为测试集。
对于 Oath CTR
数据集,正样本的比例通常小于 1%
。我们对负样本进行降采样,使正负样本更加平衡。对验证集和测试集不做降采样,因为评估应该在反映实际流量分布的数据集上进行。
对于这两个数据集,我们过滤掉所有在训练集中出现少于 NULL
特征代替,其中 Criteo
数据集中被设置为20
,在 Oath
数据集中为10
。
这两个数据集的统计数字如下表所示:
实现:我们使用 LibLinear
来训练 Poly2
,并使用哈希技巧将 feature conjunctions
哈希到 Tensorflow
中实现。Tensorflow
中 FwFM
的结构如下图所示。
输入是一个稀疏的二元向量 field
。对每个样本而言每个 field
都有一个且只有一个活跃的特征。
FwFM
和已有模型的比较:我们评估了带原始线性项的 FwFM
,即 FwFM_LW
。对于所有的超参数,我们在验证集上进行调优,然后在测试集上进行评估。可以看到:
在两个数据集上,FwFM
都能取得比 LR
、Poly2
和 FM
更好的性能。这种改进来自于 FwFM
显式地建模了 field pair
的不同交互强度。
FFM
总是在验证集和测试集上获得最佳性能。然而,FwFM
的性能相比 FFM
具有相当的竞争力。
FwFM
与 FFM
在具有相同参数规模的情况下的比较:
FFM
的一个关键缺点是其参数数量在 FFM
的参数数量:使用较小的 《Field-aware factorization machines in a real-world online advertising system》
提出对 FFM
使用较小的
这里我们通过选择合适的 FFM
和 FwFM
的参数数量相同。我们不计算线性项的参数,因为它们与交互项的数量相比可以忽略。我们选择 FwFM
在 Criteo
和Oath
数据集的测试集上得到更好的表现,提升幅度分别为 0.70%
和 0.45%
。
具有不同线性项的 FwFM
:下表给出了不同线性项的 FwFM
的性能。可以看到:
FwFM_LW
和 FwFM_FeLV
在训练和验证集上比 FwFM_FiLV
能取得更好的性能。原因是这两个模型的线性项(FwFM_FiLV
(FwFM_FiLV
更好地拟合训练集和验证集。
然而,FwFM_FiLV
在测试集上得到了最好的结果,这表明它有更好的泛化性能。
此外,当我们使用相同数量的参数将 FwFM_FiLV
与 FFM
进行比较时,在Oath
数据集和Criteo
数据集上的AUC
提升分别为0.92%
和 0.47%
。
超参数调优:以下所有的评估都是 FwFM_FiLV
模型在 Oath
验证集上进行的。
L2
正则化系数 Figure3
所示,
正则化系数作用于所有的
parameters
。
学习率 Figure4
所示,我们选择
embedding
维度
学到的 field
交互强度:这里我们比较了 FM
、FFM
和 FwFM
在捕获不同 field pair
的交互强度方面的能力。我们的结果表明,由于 field pair
交互权重 FwFM
可以比 FM
和 FFM
更好地建模交互强度。
field pair
的交互强度通过互信息( field pair
和标签之间的互信息 Figure 5(a)
中通过热力图进行了可视化。
为了衡量学到的 field
交互强度,我们定义了以下指标:
其中:
feature pair
feature pair
对于 FM
,
对于 FFM
,
对于 FwFM
,
注意,我们将内积项的绝对值相加,否则正值和负值会相互抵消。
如果一个模型能够很好地捕捉到不同 field pair
的交互强度,我们期望其学习到的 field
交互强度接近于互信息 Figure 5
中以热力图的形式绘制了由 FM, FFM, FwFM
学到的field
交互强度,以及 field pair
和标签之间的互信息 field
交互强度与互信息的匹配程度。
从 Figure 5(b)
中我们观察到:FM
学到的交互强度与互信息完全不同。这并不奇怪,因为 FM
在建模特征交互强度时没有考虑 field
信息。
从 Figure 5(c)
中我们观察到:FFM
能够学习与互信息更相似的交互强度。
从 Figure 5(d)
中我们观察到:FwFM
学到的交互强度的热力图与互信息的热力图非常相似。
为了了解权重 field pair
的交互强度方面的重要性,我们在 Figure 6
中绘制了 FwFM
(退化回 FM
)的学到的 field
交互强度。可以看到: Figure 5(a)
的互信息热力图、Figure 5(d)
的 FwFM
学到的 field
交互强度都非常相似。这意味着 field pair
的不同交互强度。