FM算法是进行特征组合时的常见算法。
1. FM要解决的问题
FM主要是为了解决数据稀疏的情况下,特征组合问题。
one-hot编码存在的两个问题:1.样本数据会变得很稀疏,2.特征空间变大
普通的线性模型,各个特征都是独立考虑的,没有考虑到特征之间的相关性,如果能找出有关联的特征,会有很大的帮助。一般的线性模型为:
在实践经验中,对特征进行交叉组合往往能够更好地提升模型效果。
2. FM定义
M以特征组合进行切入点,在公式定义中引入特征交叉项,弥补了一般线性模型未考虑特征间关系的缺憾。公式如下(FM模型可拓展到高阶,但为简化且不失一般性,这里只讨论二阶交叉)
与一般线性模型相比,公式(1)仅多了一个二阶交叉项,模型参数多了
个。虽然这种显式交叉的方式能够刻画特征间关系,但是对公式求解带来困难。
3. FM公式推导
1公式改写
2.预备知识
1
2.
添加的F在vi中是行向量,句vj中表示的是列向量
3 公式推导
参考文章:https://zhuanlan.zhihu.com/p/89639306