教程目录
阅读:
因子分解机(FM)及其模型详解
由于 Logistic Regression 算法简单、易于实现等特点,在工业界中得到了广泛使用,但是基本的 Logistic Regression 算法只能处理线性可分的二分类问题,对于如图 1 所示的非线性可分的二分类问题,基本的 Logistic Regression 算法却不能很好地进行分类。

图 1 非线性可分的数据
处理类似图 1 所示的非线性可分的问题,基本的 Logistic Regression 算法并不能很好地将上述的数据分开,为了能够利用 Logistic Regression 算法处理图 1 中所示的非线性可分的数据,通常有两种方法:
1) 利用人工对特征进行处理,如使用核函数对特征进行处理。对于图 1 中所示的数据,利用函数 f(x)=x2 进行特征处理,处理后的数据如图 2 所示。

图 2 人工处理后的特征
从图 2 中可以看出,非线性可分的数据经过人工特征处理后,变成了线性可分,此时,可以使用基本的 Logistic Regression 算法进行处理。但是,人工的特征处理需要有一些领域的知识,对初学者的难度比较大;
2) 对基本的 Logistic Regression 算法扩展,以适应更难的分类问题。
因子分解机(Factorization Machine,FM)算法是对 Logistic Regression 算法的扩展,在因子分解机 FM 模型中,不仅包含了 Logistic Regression 模型中的线性项,还包含了非线性的交叉项,利用矩阵分解的方法对模型中交叉项的系数学习,得到每一项的系数,而无需人工参与。
其中,参数 w0∈R,W∈Rn ,V∈Rn×k。<Vi,Vj> 表示的是两个大小为 k 的向量 Vi 和向量 Vj 的点积:
其中,Vi 表示的是系数矩阵 V 的第 i 维向量,且 Vi =(vi,1,vi,2,…,vi,k ),k∈N+ 称为超参数,且 k 的大小称为因子分解机 FM 算法的度。在因子分解机 FM 模型中,前面两部分是传统的线性模型,最后一部分将两个互异特征分量之间的相互关系考虑进来。
其中,σ 是阈值函数,通常取为 Sigmoid 函数:
本章中,主要是利用因子分解机 FM 算法处理二分类问题。在二分类问题中使用logit loss作为优化的标准,即:

图 1 非线性可分的数据
处理类似图 1 所示的非线性可分的问题,基本的 Logistic Regression 算法并不能很好地将上述的数据分开,为了能够利用 Logistic Regression 算法处理图 1 中所示的非线性可分的数据,通常有两种方法:
1) 利用人工对特征进行处理,如使用核函数对特征进行处理。对于图 1 中所示的数据,利用函数 f(x)=x2 进行特征处理,处理后的数据如图 2 所示。

图 2 人工处理后的特征
从图 2 中可以看出,非线性可分的数据经过人工特征处理后,变成了线性可分,此时,可以使用基本的 Logistic Regression 算法进行处理。但是,人工的特征处理需要有一些领域的知识,对初学者的难度比较大;
2) 对基本的 Logistic Regression 算法扩展,以适应更难的分类问题。
因子分解机(Factorization Machine,FM)算法是对 Logistic Regression 算法的扩展,在因子分解机 FM 模型中,不仅包含了 Logistic Regression 模型中的线性项,还包含了非线性的交叉项,利用矩阵分解的方法对模型中交叉项的系数学习,得到每一项的系数,而无需人工参与。
因子分解机 FM 模型
对于因子分解机 FM 模型,引入度的概念。对于度为 2 的因子分解机 FM 的模型为:
其中,参数 w0∈R,W∈Rn ,V∈Rn×k。<Vi,Vj> 表示的是两个大小为 k 的向量 Vi 和向量 Vj 的点积:

其中,Vi 表示的是系数矩阵 V 的第 i 维向量,且 Vi =(vi,1,vi,2,…,vi,k ),k∈N+ 称为超参数,且 k 的大小称为因子分解机 FM 算法的度。在因子分解机 FM 模型中,前面两部分是传统的线性模型,最后一部分将两个互异特征分量之间的相互关系考虑进来。
因子分解机 FM 可以处理的问题
因子分解机 FM 算法可以处理如下三类问题:- 回归问题(Regression)
- 二分类问题(Binary Classification)
- 排序(Ranking)

其中,σ 是阈值函数,通常取为 Sigmoid 函数:

本章中,主要是利用因子分解机 FM 算法处理二分类问题。在二分类问题中使用logit loss作为优化的标准,即:
