1.因子分解机是构成特征组合的一种方法,主要用在高维离散特征之间
2.FM采取矩阵分解思维,假设特征之间组合由K个隐特征决定
3.FFM是更一般的FM,它认为特征之间可能归属一个类
4.通常采取随机梯度下降法求解FM模型
5.python包xlearn可以很好实现FM模型和FFM模型
我们在文章基于点击率预估的推荐中展示了基于GBDT构造特征的方法,今天我们介绍一种特征组合的方法——因子分解机(Factorization Machine,简称FM)。也是推荐算法中探索高维离散特征关系的常用方法。
问题背景
对于离散特征,最常用的转换方法是one-hot,但并没考虑到两两之间的组合,比如城市与性别的组合,“上海的女性”很可能就是一个有用的组合特征。因此,引入多项式模型来挖掘这种关系,考虑到计算效率, 我们只讨论二阶多项式模型:
从这个公式可以看出,组合特征的参数一共有n(n−1)/2个,任意两个参数都是独立的。只要经过大量样本的训练,模型会把那些无用的特征的系数训练为0,而有用的组合特征系数不为0.