FM 模型

FM 模型

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

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

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

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

这将会把数据集变得异常稀疏且庞大,
在某次任务中,在前一万条数据中,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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值