综述
在计算广告中,CTR是非常重要的一环。对于特征组合来说,业界通用的做法主要有两大类:FM系列和Tree系列。这里我们来介绍一下FM系列。
在传统的线性模型中,每个特征都是独立的,如果需要考虑特征与特征之间的相互作用,可能需要人工对特征进行交叉组合。非线性SVM可以对特征进行核变换,但是在特征高度稀疏的情况下,并不能很好的进行学习。现在有很多分解模型可以学习到特征之间的交互隐藏关系,基本上每个模型都只适用于特定的输入和场景。推荐系统是一个高度系数的数据场景,由此产生了FM系列算法。
本文主要涉及三种FM系列算法:FM,FFM,DeepFM
一、FM算法(Factorization Machines)
背景
FM(Factorization Machine)主要是为了解决数据稀疏的情况下,特征怎样组合的问题。已一个广告分类的问题为例,根据用户与广告位的一些特征,来预测用户是否会点击广告。数据如下:
对于ctr点击的分类预测中,有些特征是分类变量,一般进行one-hot编码,以下是对组合特征的one-hot:
one-hot会带来数据的稀疏性,使得特征空间变大。
另外,对于普通的线性模型,我们将各个特征独立考虑,并没有考虑特征与特征之间的关系,因此有很多方法对特征进行组合,数据模型上表达特征xi,xj的组合用xixj表示,即所说的多项式模型,通常情况下只考虑两阶多项式模型,也就是特征两两组合的问题,模型表达如下:
其中n表示样本的特征数量,这里的特征是离散化后的特征。与线性模型相比,FM的模型多了后面的特征组合的部分。
FM求解
Wij求解的思路是通过矩阵分解的方法,为了求解Wij,我们队每一个特征分量xi引入辅助向量 Vi=(vi1,vi2,...,vik) V i = ( v i 1 , v i 2 , . . . , v i k )
然后用 vivTj v i v j T 对 wij w i j 进行求解
从上式可以看出二项式的参数数量由原来的 n(n−1)2 n ( n − 1 ) 2 个减少为nk个wik,远少于多项式模型的参数数量。另外,参数因子化使得 xhxi