FM模型的算法思想

本章涉及到的知识点清单:

1、LR模型方程

2、多项式模型方程

3、FM模型方程

4、矩阵分解

5、FM模型化简

6、损失函数

7、目标函数

8、最优化目标函数

9、FM模型的算法步骤

10、案例演示

11、FM模型的优势

一、LR模型方程

对于监督学习,机器学习模型的预测是一个估计函数(映射F)

监督学习

其中属于n维特征向量,即,属于目标值,回归问题中,二分类问题中

我们首先回顾一般的线性回归方程LR,对于输入任意一个n维特征向量,建模估计函数为

LR模型方程

LR模型的参数为:,

从LR模型方程中我们可以看到:

(1)各个特征分量和彼此之间是独立的

(2)将单个特征分量线性的组合起来,却忽略了特征分量彼此之间的相互组合关系

对于特征的组合关系,我们定义:

(1)一阶特征:即单个特征,不产生新特征,如

(2)二阶特征:即两个特征组合产生的新特征,如

(3)高阶特征:即两个以上的特征组合产生的新特征,如

所以LR模型只考虑了一阶特征的线性组合关系

二、多项式模型方程

为了克服模型欠缺二阶特征组合因素,我们将LR模型改写为二阶多项式模型

二阶多项式模型

其中表示两个互异特征组合的二阶特征,表示二阶特征的交叉项系数

至此,该模型似乎已经加入了特征组合的因素,接下来只要学习参数即可

但是,上述二阶多项式模型却有一个致命的缺陷:

数据稀疏性普遍存在的实际应用场景中,二阶特征系数的训练是很困难的

造成学习困难的原因是:

(1)的学习需要大量特征分量和都非零的样本

(2)样本本身是稀疏的,同时满足的样本非常稀少

所以多项式模型虽然加入了二阶特征组合,却受到数据稀疏的影响

三、FM模型方程

为了克服模型无法在稀疏数据场景下学习二阶特征系数,我们需要将表示为另外一种形式

为此,针对样本的第i维特征分量,引入辅助隐向量

辅助隐向量

其中k为超参数,表示特征分量对应一个k维隐向量,则将表示为:

二阶特征系数

上式引入隐向量的含义为:

二阶特征系数等价于:特征分量和对应的隐向量和的内积,这就是FM模型的核心思想

则我们将二阶多项式模型改写为FM模型

FM模型方程

从FM模型方程可知,FM模型的参数为:

FM模型的参数

各个参数的意义为:

(1)表示FM模型的偏置

(2)表示FM模型对一阶特征的建模

(3)表示FM模型对二阶特征的建模

参数的个数为:

模型的复杂度为:

下面我们从数学的角度来分析FM模型方程的可行性

四、矩阵分解

我们引入下面几个矩阵

(1)每个特征对应的隐向量组成的矩阵:

FM模型的算法思想_第1张图片
V矩阵

即矩阵的第i行表示:第i维特征的隐向量

则矩阵为:

FM模型的算法思想_第2张图片
V矩阵转置

(2)多项式模型的二阶特征系数组成的方阵

FM模型的算法思想_第3张图片
多项式模型的W方阵

(3)FM模型的二阶特征系数组成的方阵

FM模型的算法思想_第4张图片
FM模型的W方阵

从上面三个矩阵,我们可以看到:

(1)方阵的非对角线上三角的元素,即为多项式模型的二阶特征系数:

(2)方阵的非对角线上三角的元素,即为FM模型的二阶特征系数:

由于,即隐向量矩阵的相乘结果,这是一种矩阵分解的方法

引用线性代数中的结论:

当k足够大时,对于任意对称正定的实矩阵,均存在实矩阵,使得

所以FM模型需要保证的正定性。由于FM只关心互异特征之间的关系(),因此的对角线元素可以任意取值,只需将它们取足够大(保证行元素严格对角占优),就可以保证的正定性

五、FM模型化简

从上述FM模型方程看,模型的复杂度的确是:

不过,数学是奇妙的,我们可以改写模型的二阶项系数项

FM模型的算法思想_第5张图片
改写模型的二阶项系数项

对上述化简过程做一些解释:

第1个等号:对称方阵的所有元素之和减去主对角线元素之和

第2个等号:向量内积展开成累加形式

第3个等号:提出公共部分

第4个等号:表示为“和平方”减去“平方和”

带入化简后的表达式,FM模型方程为:

FM模型方程

其中参数个数为:

模型的复杂度为:

可以看到通过数学上的化简,FM模型的复杂度降低到了线性级别

六、损失函数

利用FM模型方程,可以进行各种机器学习预测的任务,如回归、分类和排名等

对于回归问题,损失函数可以取最小平方误差函数

最小平方误差函数

对于分类问题,损失函数可以取logit逻辑函数

logit逻辑函数

七、目标函数

通过损失函数构造出目标函数为

目标函数

其中包含具体的损失函数和估计函数。这里即FM模型方程,损失函数可以带入具体的可导函数(如logit函数)即可

八、最优化目标函数

最优化目标函数,即最优化模型方程的参数,即转化为下面最优化问题

优化目标函数

目标函数对模型参数的偏导数通式为:

目标函数对模型参数的偏导数

对于和或作为损失函数而言,对模型估计函数的偏导数为:

loss对模型估计函数的偏导数

对于FM模型而言,优化的参数为:,则FM模型方程对各个参数的偏导数为:

FM模型方程对参数的偏导数

于是对于FM模型的优化问题,我们可以采用SGD优化目标函数

九、FM模型的算法步骤

(1)初始化模型参数:

(2)遍历每个n维样本

(3)FM方程计算

(4)更新

(5)遍历样本中的每个特征,

(6)更新

(7)遍历的k维隐向量,

(8)更新

十、案例演示

最后我们用python实现FM算法,数据场景为二分类问题

FM模型的算法思想_第6张图片
数据场景

损失函数我们使用函数

FM模型的算法思想_第7张图片
损失函数
FM模型的算法思想_第8张图片
FM模型方程
FM模型的算法思想_第9张图片
SGD更新FM模型的参数列表
FM模型的算法思想_第10张图片
模型分类结果

十一、FM模型的优势

最后我们总结出FM模型的优势:

(1)FM模型对特征的一阶组合和二阶组合都进行了建模

(2)FM模型通过MF思想,基于K维的Latent Factor Vector,处理因为数据稀疏带来的学习不足问题

(3)FM模型的训练和预测的时间复杂度是线性的

(4)FM模型可以用于DNN的embedding

案例代码见:FM模型的算法思想

你可能感兴趣的:(FM模型的算法思想)