FM 原理与特点
适用场景
FM模型可以用于回归任务、二分类任务、排名任务,特别是在数据稀疏场景下,效果明显,广泛应用于推荐系统、广告系统等领域。
-
针对问题:
FM(Factorization Machine)主要是为了解决数据稀疏的情况下,特征怎样组合的问题。
不同特征之间非独立假设。
这个是它的原式,对于这个式子来说,前面两项的复杂度是O(n),我们可以先忽略,重点来看最后一项。我们要做的就是通过数学公式的变形来对这一项进行化简:
-
求解
-
多维扩展
> 2特征之间交互。
不好优化,三重特征交叉过度稀疏,意义不大。 FM 实现
libfm-C++的 自己看 懒得记。
http://www.libfm.org/
FFM
就是在FM模型上加field,效果优于FM,但是参数量太大,一般情况下不建议使用这种笨重的模型。
FFM是FM的一个特例,它更细致地刻画了这个特征。首先它做了任意两个特征组合,但是区别在于,怎么刻划这个特征?FM只有一个向量,但FFM现在有两个向量,也就意味着同一个特征,要和不同的fields进行组合的时候,会用不同的embedding去组合,它的参数量更多。对于一个特征来说,原先是一个vector,现在会拓成F个vector,F是特征fields的个数,只要有跟其它特征的任意组合,就有一个vector来代表,这就是FFM的基本思想。
为了改进FFM参数量巨大不适合线上训练的特点,双线性改进应运而生。
原理:共享参数矩阵W。
三种组合W
最优效果为组合方式。张俊林老师实验结果显示,随着参数逐渐增多,双线性FFM效果逐渐接近甚至赶超FFM。
结论与猜想:
- 共享参数矩阵,可以有效降低FFM的海量参数,提升模型效率。
- 随着共享矩阵参数逐渐复杂,模型效果提升就接近饱和,猜想可能存在一个共享参数矩阵的最优边界。
两条演进路线:
一种,设计有效的FM新func使得有效捕捉二姐特征组合,第二种,讨论高阶特征。一般应用中,第一种方式的收益,对于大多数场景,要优于第二种,不是高阶特征就一定有收益,除非高阶特征的组合,对目标预测的效果有正向收益,否则,一般来说二阶特征组合已经满足所需要的精度,且适合于实践与部署。
DeepFM
基础架构,基于W&D,LR替换为FM由人工交叉走向特征自动交叉。
FM部分:
sparsefeature做addition,共享的embedding之后的特征做隐向量点积。
Deep部分:
稀疏特征转换为低维稠密向量。通常随机初始化,
DeepCTR的方式,通过logistic loss function分别训练,合并输出。
实际上由三部分构成:linear+Second-order Interaction+DNN
xDeepFM 与特征交叉三巨头
特征交叉三巨头
理论上,XDeepFM更接近于DCN的模型结构,是DCN模型结构的改进,模型由三部分组成:linear+DNN+CIN
解决元素级特征交互中bit-wise方式,模型训练域概念丢失问题,如图所示
DCN的cross方式,先将field 的向量横向 concat,作为一个输入向量 x0,然后每层特征都会与 x0做内积,得到更高一阶的特征交互(DCN的Xl层输出与Xl+1层输出进行残差拟合)。
如何改进?
CIN:
CIN与corss的主要差异:
- 采用vector-wise的方式使同field特征权重得以保持一致。
- 在第l层,cross包含从1~l+1层的所有特征组合,而CIN只包含l+1层的特征组合,每层输出中间结果,然后X0再与每层做Hadamard乘积。
- 几个问题
- CIN与FM的关系?
FM为CIN单层且压缩矩阵W恒为1的特殊情况CIN。 -
W这个鬼东西貌似是关键?怎么求?
求解方式:一维卷积,deepctr里面实现可以去看类CIN下的call。
核心思想就是利用H^k+1 个尺寸为 m*H^k 的卷积核生成下一层隐层的状态,将三维矩阵压缩为二维。
curr_out的大小是 Batch * Embedding Size * Layer size。然后把curr_out按照direct或者非direct的方式作为下一个隐层向量的输入。filters采用默认glorot_uniform_initializer初始化。
纯属学习 不涉利益
ref:
https://zhuanlan.zhihu.com/p/343174108
*https://zhuanlan.zhihu.com/p/145436595
https://zhuanlan.zhihu.com/p/35526715
https://zhuanlan.zhihu.com/p/61096338
https://zhuanlan.zhihu.com/p/83784018
https://zhuanlan.zhihu.com/p/371849616
https://zhuanlan.zhihu.com/p/67795161
https://arxiv.org/pdf/1703.04247.pdf
https://zhuanlan.zhihu.com/p/154591869
https://zhuanlan.zhihu.com/p/109933924
https://zhuanlan.zhihu.com/p/45450361
https://www.cnblogs.com/talkaudiodev/p/14287562.html