本文介绍Field-aware Factorization Machines for CTR Prediction,简称为FFM,其原文Paper传送门。
摘要
计算广告中CTR预估有着很重要的作用,其中二阶映射的FM常被使用,但提出的FFM在比赛中优于FM,因此引出FFM;
一、介绍
通常用LR处理分类问题,其模型是用来解决如下最优化问题:
min w λ 2 ∥ w ∥ 2 2 + ∑ i = 1 m log ( 1 + exp ( − y i ϕ L M ( w , x i ) ) ) \mathop {\min }\limits_w {\lambda \over 2}{\left\| w \right\|_2}^2 + \sum\limits_{i = 1}^m {\log (1 + \exp ( - {y_i}{\phi _{LM}}(w,{x_i})))} wmin2λ∥w∥22+i=1∑mlog(1+exp(−yiϕLM(w,xi)))
在LR中 ϕ ( w , x ) = w x \phi(w,x)=wx ϕ(w,x)=wx且 λ \lambda λ是正则化参数;其余的介绍同以前文章的介绍,就不展开叙述了,下面具体介绍FFM模型原理;
二、POLY2 和 FM模型
论文 “Training and testing low-degree polynomial data mappings via linear SVM" 提出二阶映射可以有效捕捉特征信息,其Poly2模型如下(为了偷懒,就直接截图了):
其中 h ( j 1 , j 2 ) h(j_1,j_2) h(j1,j2)是一个将 j 1 和 j 2 j_1和j_2 j1和j2编码到自然数的函数,其时间复杂度为 O ( n ˉ 2 ) O({
{\bar n}^2}) O(nˉ2), n ˉ {\bar n} nˉ是每个实例平均的非0元素个数;
FM是一个对每个特征学习隐层向量的模型,假设每个特征映射为k维隐层向量,其计算公式如下:
变量的数目是 n × k n\times k n×k,所以直接计算的时间复杂度是 O ( n ˉ 2 k ) O({
{\bar n}^2k}) O(nˉ2k),重写上面的公式为: ϕ F M ( w , x ) = 1 2 ∑ j = 1 n ( s − w j x j ) ⋅ w j x j {\phi _{FM}}(w,x) = {1 \over 2}\sum\limits_{j = 1}^n {(s - {w_j}{x_j}) \cdot {w_j}{x_j}} ϕFM(w,x)=21j=1∑n(s−wjxj)⋅wjxj其中 s = ∑ j = 1 n w j x j s = \sum\limits_{j = 1}^n {
{w_j}{x_j}} s=j=1∑nwjxj,此时时间复杂度变为 O ( n ˉ k ) O({
{\bar n}k}) O(nˉk);为什么FM要优于Poly2呢?见