推荐系统-FM(Factorization Machine)模型

2019-07-27  本文已影响0人  菜鸡不得行

1. 介绍

在进行CTR(click through rate)预估时,除了单个特征外,通常要进行特征组合,FM算法是进行特征组合时的常见算法。

2. one-hot的问题

FM主要是为了解决数据稀疏的情况下,特征组合问题。一般categories特征经过one-hot编码以后,样本数据会变得很稀疏,假设有10万个item,如果对item的这个维度进行one-hot编码,这个维度的数据稀疏性就是十万分之一,所以数据的稀疏性是,是实际应用中常见的挑战。

one-hot编码的另一个问题是特征空间变大,上面的10万个item,编码后样本空间有一个categories会变成10万维,特征空间会暴增。

3. 特征组合

普通的线性模型,各个特征都是独立考虑的,没有考虑到特征之间的相关性,如果能找出有关联的特征,会有很大的帮助。一般的线性模型为:


从上面公式中看出,一般的线性模型是不考虑特征间的关联的,为了描述特征间的多样性,我们采用多项式模型。在多项式中,特征x_ix_j 的组合用x_ix_j 表示,现在讨论二阶多项式模型。

其中,n表示样本的特征数量,x_i 表示第i个特征。公式的第三项就是加入了特征组合的部分。

4. FM求解

从上面的多项式可以看出,特征组合的部分,特征相关参数有n(n-1)/2 个。但是在数据很稀疏的情况下,x_i,x_j 都不为0的情况非常少,这样使得w_{ij} 无法通过训练得出。

为了求出w_{ij} , 对每一个特征分量x_i 引入隐向量V_i=(v_{i1},v_{i2}...v_{ik}) 。将每个w_{ij} 用隐向量的内积<v_i,v_j> 表示,然后利用v_i,v_j^Tw_{ij}​ 进行矩阵求解。

那么w_{ij} 可以表示为:

具体过程:


5. FM总结

FM是一个可以表示特征之间关系的函数表达式,可以推广到更高阶,将多个特征之间的关联信息考虑进来。

参考资料

http://www.52caml.com/head_first_ml/ml-chapter9-factorization-family/

上一篇下一篇

猜你喜欢

热点阅读