FM模型

·1183·3 分钟·
AI摘要: 本文介绍了FM模型,这是一种统计学模型,用于处理高维稀疏数据和特征交叉,能捕捉特征之间的关系。FM模型通过引入低秩因子向量来减少计算参数的数量,并增加对特征交互作用的捕捉,特别关注二阶相互作用。该模型采用梯度下降法优化损失函数,并通过因子向量学习用户与物品之间的相互作用。在推荐系统中,FM模型可用于预测用户对物品的评分或点击概率,通过分析用户与商品的特征相互作用来进行预测。

FM模型是一种统计学模型,适合处理高维稀疏数据和特征交叉,能够有效捕捉特征之间的关系。

原理

FM 模型可以看做线性模型的扩展,可以捕捉特征之间的二阶相互作用。

公式如下

y=w0+wixi+i=1j=i+1<vi,vj>xixj y = w_0 + \sum w_i x_i + \sum_{i = 1} \sum_{j = i + 1} <v_i, v_j> x_i x_j

其中,w_0是偏置项、w_i是特征i的权重,v_i为特征i的因子向量,x_i为特征i的值。

因子向量v_i用于捕捉特征i与其他特征之间的交互作用,又因为因子向量特征维度通常较小,因此有助于降低模型复杂度和过拟合风险。

v_i, v_j的内积反应了这两种特征之间的相互作用强度

总体来看,就是线性模型的基础上增加了特征交互部分,并且特征交互以因子向量的内积作为权重

处理高维稀疏数据

通过引入低秩的因子向量来处理稀疏数据,从而减少参数的数量,哪怕是成千上万维度的特征向量,用来计算特征交互的因子内积也是很小的

对比线性模型

线性模型只捕捉不同特征的一阶作用,而FM多了二阶特征相互作用

训练

和线性模型一样,采用梯度下降法来优化损失函数。

因子向量

因子向量是通过随机初始化得到的,通过梯度下降来优化

在推荐系统中的应用

FM模型可以预测用户对物品的评分或点击概率,通过学习用户特征和物品特征之间的相互作用来预测

因子向量的维度

通过交叉验证的方法来确定,在模型复杂度和泛化能力之间平衡

冷启动

与DIN,DIEN的不同

FM更加关注特征之间的交互作用,尤其是二阶交互,而DIN和DIEN更侧重于对用户兴趣的建模

例子

假设我们有一个用户行为数据集,其中每个用户可能与数千个商品发生过互动,但每个用户实际上只与少数几个商品发生了互动。这意味着用户-商品矩阵中的绝大多数元素都是0,这是一个典型的稀疏数据集。

在FM模型中,我们可以为每个用户和每个商品分配一个因子向量。当预测某个用户对某个商品的兴趣时,我们只需要考虑该用户和该商品对应的非零特征(即发生过互动的商品),并通过计算这两个因子向量的内积来估计它们之间的相互作用。这样,即使用户和商品的总数非常大,FM模型仍然可以高效地学习和预测。

Kaggle学习赛初探