FM 模型

it2026-09-03  1

FM 模型

在点击率预估任务中,原始数据集 大概是这种情况

点击性别地区频道1男天津相声0女甘肃体育1女云南电视剧

将字符串输入到模型中肯定是不现实的,因此对类别型属性做 one-hot 处理

点击性别=男性别=女地区=天津地区=甘肃地区=云南频道=相声频道=体育频道=电视剧110100100101010010101001101

这将会把数据集变得异常稀疏且庞大, 在某次任务中,在前一万条数据中,300维的原始数据就被扩充到将近10万维, 整理完300万条数据会发现扩充到了近120万维

线性回归/逻辑回归

线性回归 逻辑回归

这种传统而简单粗暴的方式简单实用,并且在很多生产环境中,确实就是这么做的, 但是这种模型只考虑了但一向特征自身对结果的影响性(权重*特征值求和),而 忽略了特征组合 对结果的影响

比如 < 地区=天津,频道=相声 > 或者 < 性别=女,频道=电视剧 > 等组合

二阶多项式核 SVM

既然 LR 们对特征的态度都是单打独斗性质的,那让特征两两组合手牵手不就考虑了特征组合因素了吗 在大部分数据中,两个特征值的乘积往往是0(两个特征都是1才会被学习到), 这就导致 Wij 这个权重项在大多数训练中都是无效的,没有被学习到, 因此这个模型 泛化能力差 (在生产环境下遇到xi * xj = 1 时就懵了)

因子分解机模型

弃用 SVM 的原因就是因为无法有效学习特征组合的权重,因为这个权重在训练的时候被太多的双0样本屏蔽掉了,因此就要选择方法去攻克这一问题 (下面公式推导在附录1) 根据数学性质运算将二次项再次化简 也就是说,现在我们只要训练向量 v 即可完成学习,并且只要 xi 不为0就可以有效学习(之前可是xi,xj都为1才是有效训练)

DeepFM,与深度学习的结合

神将网络模型可以你和任意曲线,随着训练平台的普及以及算力的不断增强,将神经网络模型与FM模型结合效率将会大大提升 在这里我们引入Field 这个概念

所谓 Field 即特征大类,比如:用户开的车型,用户性别,用户喜欢的明星,用户性别等

而用户性别=男 作为 one hot 之后的 feature,即特征

要知道,Field之间做降维是无意义的,再或者说v应该只与本 Field 内的特征相关,v也叫做Field 的 embedding向量

在 embedding 之后 无论Field 被 onehot 到多少维,最终都会以一个 k维的向量进行表示 embedding 本质上是个全连接的网络

如网络模型图所示,在得到向量v 之后,就可以进行 FM 模型的学习,是 0次项,1次项,2次项的求和,是一个数值

embedding之后还会传入 隐藏层,进行神经网络(DNN)的训练,最终输出的神经元只有一个,即也是分数值

最后将 FM 模型结果,与DNN的数值求和,通过sigmoid函数激活,得到最后预测值

附录1

从公式 到公式

https://www.jianshu.com/p/e7b2d53ec42b https://www.codercto.com/a/69752.html

最新回复(0)