本章涉及到的知识点清单:
1、LR模型方程
2、多项式模型方程
3、FM模型方程
4、矩阵分解
5、FM模型化简
6、损失函数
7、目标函数
8、最优化目标函数
9、FM模型的算法步骤
10、案例演示
11、FM模型的优势
一、LR模型方程
对于监督学习,机器学习模型的预测是一个估计函数(映射F)
其中属于n维特征向量,即,属于目标值,回归问题中,二分类问题中
我们首先回顾一般的线性回归方程LR,对于输入任意一个n维特征向量,建模估计函数为
LR模型的参数为:,
从LR模型方程中我们可以看到:
(1)各个特征分量和彼此之间是独立的
(2)将单个特征分量线性的组合起来,却忽略了特征分量彼此之间的相互组合关系
对于特征的组合关系,我们定义:
(1)一阶特征:即单个特征,不产生新特征,如
(2)二阶特征:即两个特征组合产生的新特征,如
(3)高阶特征:即两个以上的特征组合产生的新特征,如
所以LR模型只考虑了一阶特征的线性组合关系
二、多项式模型方程
为了克服模型欠缺二阶特征组合因素,我们将LR模型改写为二阶多项式模型
其中表示两个互异特征组合的二阶特征,表示二阶特征的交叉项系数
至此,该模型似乎已经加入了特征组合的因素,接下来只要学习参数即可
但是,上述二阶多项式模型却有一个致命的缺陷:
数据稀疏性普遍存在的实际应用场景中,二阶特征系数的训练是很困难的
造成学习困难的原因是:
(1)的学习需要大量特征分量和都非零的样本
(2)样本本身是稀疏的,同时满足的样本非常稀少
所以多项式模型虽然加入了二阶特征组合,却受到数据稀疏的影响
三、FM模型方程
为了克服模型无法在稀疏数据场景下学习二阶特征系数,我们需要将表示为另外一种形式
为此,针对样本的第i维特征分量,引入辅助隐向量
其中k为超参数,表示特征分量对应一个k维隐向量,则将表示为:
上式引入隐向量的含义为:
二阶特征系数等价于:特征分量和对应的隐向量和的内积,这就是FM模型的核心思想
则我们将二阶多项式模型改写为FM模型
从FM模型方程可知,FM模型的参数为:
各个参数的意义为:
(1)表示FM模型的偏置
(2)表示FM模型对一阶特征的建模
(3)表示FM模型对二阶特征的建模
参数的个数为:
模型的复杂度为:
下面我们从数学的角度来分析FM模型方程的可行性
四、矩阵分解
我们引入下面几个矩阵
(1)每个特征对应的隐向量组成的矩阵:
即矩阵的第i行表示:第i维特征的隐向量
则矩阵为:
(2)多项式模型的二阶特征系数组成的方阵
(3)FM模型的二阶特征系数组成的方阵
从上面三个矩阵,我们可以看到:
(1)方阵的非对角线上三角的元素,即为多项式模型的二阶特征系数:
(2)方阵的非对角线上三角的元素,即为FM模型的二阶特征系数:
由于,即隐向量矩阵的相乘结果,这是一种矩阵分解的方法
引用线性代数中的结论:
当k足够大时,对于任意对称正定的实矩阵,均存在实矩阵,使得
所以FM模型需要保证的正定性。由于FM只关心互异特征之间的关系(),因此的对角线元素可以任意取值,只需将它们取足够大(保证行元素严格对角占优),就可以保证的正定性
五、FM模型化简
从上述FM模型方程看,模型的复杂度的确是:
不过,数学是奇妙的,我们可以改写模型的二阶项系数项
对上述化简过程做一些解释:
第1个等号:对称方阵的所有元素之和减去主对角线元素之和
第2个等号:向量内积展开成累加形式
第3个等号:提出公共部分
第4个等号:表示为“和平方”减去“平方和”
带入化简后的表达式,FM模型方程为:
其中参数个数为:
模型的复杂度为:
可以看到通过数学上的化简,FM模型的复杂度降低到了线性级别
六、损失函数
利用FM模型方程,可以进行各种机器学习预测的任务,如回归、分类和排名等
对于回归问题,损失函数可以取最小平方误差函数
对于分类问题,损失函数可以取logit逻辑函数
七、目标函数
通过损失函数构造出目标函数为
其中包含具体的损失函数和估计函数。这里即FM模型方程,损失函数可以带入具体的可导函数(如logit函数)即可
八、最优化目标函数
最优化目标函数,即最优化模型方程的参数,即转化为下面最优化问题
目标函数对模型参数的偏导数通式为:
对于和或作为损失函数而言,对模型估计函数的偏导数为:
对于FM模型而言,优化的参数为:,则FM模型方程对各个参数的偏导数为:
于是对于FM模型的优化问题,我们可以采用SGD优化目标函数
九、FM模型的算法步骤
(1)初始化模型参数:
(2)遍历每个n维样本
(3)FM方程计算
(4)更新
(5)遍历样本中的每个特征,
(6)更新
(7)遍历的k维隐向量,
(8)更新
十、案例演示
最后我们用python实现FM算法,数据场景为二分类问题
损失函数我们使用函数
十一、FM模型的优势
最后我们总结出FM模型的优势:
(1)FM模型对特征的一阶组合和二阶组合都进行了建模
(2)FM模型通过MF思想,基于K维的Latent Factor Vector,处理因为数据稀疏带来的学习不足问题
(3)FM模型的训练和预测的时间复杂度是线性的
(4)FM模型可以用于DNN的embedding
案例代码见:FM模型的算法思想