FFM

论文背景:

FFM(Field-aware Factorization Machine)最初的概念来自Yu-Chin Juan(阮毓钦,毕业于中国台湾大学,现在美国Criteo工作)与其比赛队员,是他们借鉴了来自Michael Jahrer的论文[14]中的field概念提出了FM的升级版模型。通过引入field的概念,FFM把相同性质的特征归于同一个field。

摘要

点击率(CTR)预测在计算式广告中起着重要的作用。基于2次多项式映射和因子分解机(FMs)的模型被广泛用于这一任务。最近,FMs的一个变种,fieldaware factorization machines (FFMs),在一些世界范围的ctr预测比赛中超过了现有的模型。基于我们赢得其中两项的经验,在本文中,我们建立FFMs作为一个有效的方法来分类大稀疏数据,包括那些来自CTR预测。首先,我们提出了培训FFMs的有效实现。然后对FFMs进行了全面的分析,并与竞争模型进行了比较。实验表明,FFMs对于某些分类问题是非常有用的。最后,我们发布了一个供公众使用的FFMs包。

1.介绍

点击率(CTR)预测在广告业中发挥着重要作用[1,2,3]。Logistic回归可能是这个任务[3]最广泛使用的模型。给定一个有m个实例的数据集(yi,xi),i = 1,…,m,其中yi为标签,xi为n维特征向量,通过求解以下优化问题得到模型w。
在这里插入图片描述
在这里插入图片描述
在问题(1)中,拟合参数是正则化参数,在损失函数中考虑线性模型
在这里插入图片描述
了解特征连词的影响似乎是CTR预测的关键;比如[1]。这里,我们考虑表1中的人工数据集,以便更好地理解特征连接。古驰的广告在《时尚》杂志上有特别高的点击率。然而这个信息对于线性模型来说是很难学习的,因为他们分别学习了两个权重Gucci和Vogue。为了解决这个问题,我们使用了两个模型来学习特征连接的效果。第一个模型是2阶多项式映射【 degree-2 polynomial mappings】(Poly2)[4,5],为每个特征连接学习一个专门的权重。第二个模型,因子分解机器(FMs)[6],通过将其分解为两个潜在向量的乘积来学习特征结合的效果。我们将在第2节讨论关于Poly2和FMs的细节。

   提出了一种基于相互作用张量因子分解(PITF)的个性化标签推荐方法。在2012年的KDD Cup中,Team Opera Solutions[8]提出了PITF的一种推广方法,称为factor model。由于这一术语过于笼统,容易与因子分解机混淆,因此在本文中我们将其称为场感知因子分解机(FFMs)。PITF与FFM的不同之处在于PITF考虑用户、项目和标签三个特殊字段,而FFM则更为通用。由于[8]是关于竞争的整体解决方案,对FFM的讨论是有限的。在[8]中我们可以得出以下结论:
【8】:协同过滤与特征工程模型的集成,用于点击率预测在这里插入图片描述
1.他们采用随机梯度法(SG)求解优化问题。为了避免过度拟合,他们只训练一个时期。
2.FFM在他们尝试的六种模型中表现最好

在本文中,我们旨在具体建立FFM作为CTR预测的一种有效方法。我们的主要研究结果如下。

  • 虽然FFM在[8]中被证明是有效的,但这项工作可能是唯一发表的将FFM应用于CTR预测问题的研究。为了进一步证明FFM在CTR预测方面的有效性,我们将FFM作为我们的主要模型,在Criteo和Avazu主办的两场全球CTR比赛中获胜。
  • 我们将FFMs与两种相关模型Poly2和FMs进行了比较。我们首先从概念上讨论为什么FFMs可能比它们更好,并进行实验来看看精确性和训练时间方面的差异。
  • 我们介绍了培训FFMs的技术。它们包括一个有效的FFMs并行优化算法和使用早期停止以避免过拟合。
  • 为了使FFMs能够供公众使用,我们发布了一个开源软件。

  本文组织如下。在第3节介绍FFMs及其实现之前,我们将在第2节讨论现有的两种模型Poly2和FMs。第四节是FFMs与其他模型的比较实验。最后,结论和未来的方向在第5节。
  本文实验使用的代码和LIBFFM包可在以下地址获得

http://www.csie.ntu.edu.tw/˜cjlin/ffm/exps
http://www.csie.ntu.edu.tw/˜cjlin/libffm

2. POLY2ANDFM

  Chang等人的研究表明,2度多项式映射通常可以有效地捕捉特征连接信息。此外,他们还表明,通过在显式形式的2度映射上应用线性模型,训练和测试时间可以比使用核方法快得多。这种方法被称为Poly2,为每个特征对学习一个权值
在这里插入图片描述
其中h(j1,j2)是将j1和j2编码为自然数的函数。计算(2)的复杂度为O(n2),其中n为每个实例非零元素的平均个数。
  [6]中提出的FMs隐式地为每个特征学习一个潜在的向量。每个潜在向量包含k个潜在因子,其中k是用户指定的参数。然后,利用两个潜在向量的内积来模拟特征连接的效果
在这里插入图片描述
变量的数量是n k,所以直接计算(3)花费O(n2k)时间。跟随[6],通过重写(3)到
在这里插入图片描述
在这里插入图片描述
  Rendle[6]解释了为什么在数据集稀疏的情况下,FMs可以比Poly2更好。这里我们使用表1中的数据集给出一个类似的示例。例如,这两家公司只有一个负面的训练数据(ESPN和Adidas)。对于Poly2,一个负权重的 wESPN,Adidas ,阿迪达斯可能会为这双鞋学习。对于FMs来说,因为(ESPN, Adidas)的预测是由y wESPN ·wAdidas决定的,而且wESPN和wAdidas也是从其他配对(如(ESPN, Nike), (NBC, Adidas))中学习的,所以预测可能更准确。另一个例子是没有针对这对组合(NBC, Gucci)的训练数据。对于Poly2,对这对的预测是微不足道的,但是对于FMs,因为wNBC和wGucci可以从其他对中学习,所以仍然有可能做有意义的预测。(ploy2是求两个特征关联的一个W,但FM求得是所有两个关联的W,对于W来说FM会有更多的数据集来学习)
  注意,在Poly2中,实现h(j1,j2)的简单方法是将每一对特性看作[4]的新特性。1这种方法需要O(n2)这么大的模型,因为n非常大,所以对于CTR的预测通常是不切实际的。Vowpal Wabbit (VW)[9]是一个广泛使用的机器学习包,它通过哈希j1和j2.2来解决这个问题。具体地说
在这里插入图片描述
模型尺寸B是用户指定的参数
  在本文中,为了简化公式,我们不包括线性项和偏置项。然而,在第4节中,我们将它们包括在一些实验中。

3 FFM

  FFM的思想源于PITF[7]为个性化标签推荐系统提出的建议。在PITF中,它们假设三个可用字段,包括User、Item和Tag,并将(User、Item)、(User、Tag)和(Item、Tag)分解到不同的潜在空间中。在[8]中,他们将PITF推广到更多的字段(如AdID, ads serid, UserID, QueryID),并有效地应用于CTR预测。由于[7]针对的是推荐系统,且仅限于三个特定领域(User, Item, Tag),而[8]缺乏对FFM的详细讨论,因此在本节中我们将对FFMs在CTR预测方面进行更全面的研究。对于像表1中这样的大多数CTR数据集,可以将特性分组到字段中。在我们的示例中,ESPN、Vogue和NBC这三个特性属于field Publisher,而其他三个特性Nike、Gucci和Adidas则属于field Advertiser。FFM是FM的一个变体,它利用了这些信息。为了解释FFM是如何工作的,我们考虑下面的新示例
在这里插入图片描述
  在FMs中,每个特征只有一个潜在的向量来学习与其他特征的潜在效应。以ESPN为例,我们使用wESPN来学习耐克(wESPN·wNike)和Male (wESPN·wMale)的潜在效应。但是,由于Nike和Male属于不同的领域,(EPSN, Nike)和(EPSN, Male)的潜在效应可能不同。
  在FFMs中,每个特性都有几个潜在的向量。根据其他特征的场,其中一个用来做内积。在我们的例子中,是
在这里插入图片描述
我们看到,为了了解(ESPN, NIKE), wESPN的潜在效应,使用A是因为NIKE属于field Advertiser,使用wNike,P是因为ESPN属于field Publisher。再次,为了了解(EPSN, Male)的潜在影响,我们使用wESPN,G,因为Male属于字段的性别,使用wMale,P,因为ESPN属于字段的发布者。在数学上
在这里插入图片描述
式中,f1、f2分别为j1、j2的字段。如果f是字段的数量,则FFMs的变量数量为nfk,计算(4)的复杂度为O(n2k)。值得注意的是,在FFMs中,每个潜在向量通常只需要学习特定场的效果
在这里插入图片描述
表2比较了不同模型的变量数量和计算复杂度。
在这里插入图片描述

3.1 Solving the Optimization Problem

  所述优化问题与(1)相同,只是用 φFFM(w,x). 代替了φLM(w,x) ,在[7,8]之后,我们使用随机梯度方法(SG)。最近,一些自适应学习率调度如[10,11]被提出来促进SG的训练过程。我们使用AdaGrad[10]是因为[12]已经证明了它对矩阵分解的有效性,这是FFMs的一种特殊情况。
看不懂
在这里插入图片描述
其中,η为用户指定的学习率。w的初始值从[0,1/√k]. 之间的均匀分布中随机采样。G的初始值设为1,以防止(Gj1,f2) 12
值过大。算法1给出了整个过程。

通过实验,我们发现将每个实例归一化为单位长度使测试精度稍好,且对参数不敏感。

3.2 Parallelization on Shared-memory Systems

现代计算机广泛地配备了多核cpu。如果充分利用这些核心,训练时间可以显著减少。许多关于SG的并行化方法已经被提出。在本文中,我们应用Hogwild![13],它允许每个线程独立运行,而不需要任何锁。具体来说,算法1的第3行for循环被并行化。
在4.4节中,我们进行了大量的实验来研究并行化的有效性。

3.3 Adding Field Information

考虑一下广泛使用的LIBSVM数据格式
在这里插入图片描述
每个(feat,val)对表示特征索引和值。对于FFMs,我们将上述格式扩展为
在这里插入图片描述
也就是说,我们必须为每个特征分配相应的字段。对于某些类型的特性,任务是容易的,但是对于其他的特性可能不可能。我们将在三个典型的特征类别上讨论这个问题。

3.3.1Categorical Features

对于线性模型,通常将一个分类特征转化为几个二进制特征。对于一个数据实例
在这里插入图片描述
注意,根据分类特征中可能值的数量,生成相同数量的二进制特征,每次只有一个特征的值为1。在LIBSVM格式中,不存储值为零的特征。因此,本文将每一个分类特征转化为若干个二值特征。要添加字段信息,我们可以将每个类别视为一个字段。那么,上述实例变为
在这里插入图片描述

3.3.2Numerical Features

考虑下面的例子来预测一篇论文是否会被会议接受。我们使用会议接受率(AR)、作者h指数(Hidx)和作者被引用次数(Cite)三个数字特征:
在这里插入图片描述
有两种可能的方式来分配字段。一种幼稚的方法是将每个特征视为虚拟字段,因此生成的数据就是虚拟字段
在这里插入图片描述
然而,虚拟字段可能没有信息,因为它们只是特征的重复

另一种可能的方法是将每个数字特征离散为分类特征。然后,我们可以对分类特征使用相同的设置来添加字段信息。生成的数据如下所示
在这里插入图片描述
其中AR特征四舍五入为整数。主要缺点是通常不容易确定最佳离散化设置。例如,我们可以将45.73转换为45.7、45、40,甚至int(log(45.73))。另外,离散化后可能会丢失一些信息。

3.3.3Single-field Features

在一些数据集中,所有的特征都属于一个字段,因此为特征分配字段是没有意义的。这种情况通常发生在NLP数据集上。看看下面这个例子,预测一个句子是否表达了一种好心情
在这里插入图片描述
在这个例子中,唯一的字段是句子。如果我们将该字段分配给所有单词,那么FFMs就会简化为FMs。读者可能会问如何分配虚拟字段,就像我们对数字特征所做的那样。回想一下,FFMs的模型大小是O(nfk)。使用哑字段是不切实际的,因为f = n和n通常很大。

5结论与未来工作

  在本文中,我们讨论了FFMs的有效实现。我们演示了对于某些类型的数据集,就logloss而言,FFMs的表现优于三种著名的模型:LM、Poly2和FM,但训练时间更长。
 &emsp在未来的工作中,我们计划研究第4.3节中讨论的过拟合问题。此外,为了便于实现,我们采用SG作为优化方法。看看其他优化方法(如牛顿法、坐标下降法)如何在FFMs上工作是很有趣的。

猜你喜欢

转载自blog.csdn.net/qq_39091546/article/details/108636266
FFM
今日推荐