0. 导言
最近在参加IJCAI18的pCVR预估比赛,比赛到了复赛也是真正比拼模型和算法的时候了。初赛90%的时间都在做一个勤劳的”挖掘机”,但是到了复赛,光挖特征已经无法做到很好的提升了,这时候就是拼模型了。做CTR模型的人,FFM一定是绕不过去的,因此借此机会,在这里按照论文[1]仔细的推敲(翻译:p)下FFM背后的数学原理。
field-aware factorization machines(FFM)是基于FM和二阶多项式模型的扩展。在大量的CTR预估比赛中大放异彩。FFM在处理海量稀疏数据的分类问题时十分有效。
我们定义数据集为 (yi,xi),i=1,...,n ( y i , x i ) , i = 1 , . . . , n ,其中 xi x i 为 p p 维特征向量。我们知道带
正则的Logistic regression可以表示为这样的一个优化问题:
maxwλ2∥w∥22+∑i=1nlog(1+exp(−yiϕLM(w,xi))) max w λ 2 ‖ w ‖ 2 2 + ∑ i = 1 n l o g ( 1 + e x p ( − y i ϕ L M ( w , x i ) ) )
其中 ϕLM(w,xi)=w⋅xi ϕ L M ( w , x i ) = w ⋅ x i
然而在CTR预估任务中,特征之间的相互作用是绝不能忽视的,甚至能表达出单个特征无法表达出的信息(见论文中Table 1的例子)。为了学习到特征交互项之前的系数,我们可以用两种方法。第一个方法就是将原始的线性部分 ϕLM ϕ L M 进行二阶多项式 (Poly2) ( P o l y 2 ) 转换,而第二个方法就是用FM模型。如果我们将两个模型做一些适当的结合,当当当~就出来了我们的FFM。接下来我们将详细介绍下这两个方法和他们是如何结合的具体细节。
1. POLY2
多项式模型(二阶)其实我们中学就学过,现在我们用更专业的语言定义一下
ϕPoly2(w,x)=∑j1=1p∑j2=j1