特征组合之因子分解机(FM)

特征组合之因子分解机(FM)

1. 为什么需要因子分解机?

在上一篇博客特征组合中提到,暴力交叉会导致特征组合的特征稀疏的问题,所以FM(Factorization Machine)主要目标是:解决数据稀疏的情况下,特征怎样组合的问题。

核心:
对于因子分解机FM来说,最大的特点是对于稀疏的数据具有很好的学习能力。

2.什么是FM因子分解机?
FM因式分解机是一种基于LR模型的高效的学习特征间相互关系的模型。
一般的线性回归模型:
在这里插入图片描述
度为2的因子分解机,这里的度指的是特征组合的度
在这里插入图片描述
与线性模型相比,因子分解机多了后面的特征组合项
在这里插入图片描述
3.FM的推导
FM是将简单的线性模型加上特征组合项,增强学习模型的复杂度和学习能力。所以引入交叉项后如下:
在这里插入图片描述
因为两两之间作组合,所以特征组合部分一共 (n-1)+(n-2)+…+1=(n-1)n/2项。
但是在数据很稀疏的情况下,满足xi, xj都不为0的情况非常少,这样将导致ωij无法通过训练得出,无法对相应的参数进行估计。

核心思想: Wij的稀疏导致训练效率极其低下,用<Vi,Vj>来逼近拟合Wij。

这里采用的方式是:对每一个特征分量Xi引入辅助向量Vi,Vj进行估计。
在这里插入图片描述

注:这里的V是隐向量
因子机分解模型中,作者通过借鉴了矩阵分解的思想,对权值矩阵进行低秩约束表达: ,将每一维特征分解为k维隐向量,这里的k是超参数,是需要用户自己训练调参的,k<<n。至于隐向量的理解,我认为是不可观测的随机变量构成的向量,通过当前的已有样本进行推断,随着k的设置不同,隐向量也在发生变化,不太好从业务角度解释里面的数值。

实践中,也是去看特征隐向量相乘后看交叉项参数的大小,来看交叉项特征对模型的贡献这样带来的好处有:1、训练的交叉项参数从n*(n-1)/2降低到了n*k个,提高了模型训练效率;另外,也降低了模型交叉项学习不充分的影响;
2、交叉项的参数将分别通过对应两个特征的隐向量的内积得到,一些在新数据中出现的交叉项特征也能进行预测,提升了模型预测能力。

所以FM可以表示为:
在这里插入图片描述

所以求解交叉项:
在这里插入图片描述

对于最终的FM运用SGD可以得到;
在这里插入图片描述

参考博客:
FM介绍1

FM介绍2

FM,FFM,DeepFM

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值