人工智能中文网
  • 主页
  • 线代考研视频
  • 线性代数
  • Python机器学习与算法
  • 大数据与机器学习
  • Python基础入门教程
  • 人工智能中文网
    教程目录
    阅读:

    因子分解机(FM)及其模型详解

    < 上一篇:softmax回归算法实践 下一篇: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 模型中的线性项,还包含了非线性的交叉项,利用矩阵分解的方法对模型中交叉项的系数学习,得到每一项的系数,而无需人工参与。

    因子分解机 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)
    上述的FM模型可以直接处理回归问题,对于二分类问题,其最终的形式为:


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


    本章中,主要是利用因子分解机 FM 算法处理二分类问题。在二分类问题中使用logit loss作为优化的标准,即:
    < 上一篇:softmax回归算法实践 下一篇:FM算法求解 >